agentbyte 0.4.2__tar.gz → 0.4.3__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 (222) hide show
  1. {agentbyte-0.4.2 → agentbyte-0.4.3}/.github/skills/agentbyte-llm-client/SKILL.md +25 -6
  2. agentbyte-0.4.3/.github/skills/agentbyte-plan-based-orchestration/SKILL.md +205 -0
  3. {agentbyte-0.4.2 → agentbyte-0.4.3}/CHANGELOG.md +8 -0
  4. {agentbyte-0.4.2 → agentbyte-0.4.3}/PKG-INFO +8 -3
  5. {agentbyte-0.4.2 → agentbyte-0.4.3}/README.md +7 -2
  6. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/__about__.py +1 -1
  7. {agentbyte-0.4.2 → agentbyte-0.4.3}/.github/skills/agentbyte-agent-as-tool/SKILL.md +0 -0
  8. {agentbyte-0.4.2 → agentbyte-0.4.3}/.github/skills/agentbyte-ai-driven-orchestration/SKILL.md +0 -0
  9. {agentbyte-0.4.2 → agentbyte-0.4.3}/.github/skills/agentbyte-dataset/SKILL.md +0 -0
  10. {agentbyte-0.4.2 → agentbyte-0.4.3}/.github/skills/agentbyte-function-tools/SKILL.md +0 -0
  11. {agentbyte-0.4.2 → agentbyte-0.4.3}/.github/skills/agentbyte-list-memory/SKILL.md +0 -0
  12. {agentbyte-0.4.2 → agentbyte-0.4.3}/.github/skills/agentbyte-memory-tool/SKILL.md +0 -0
  13. {agentbyte-0.4.2 → agentbyte-0.4.3}/.github/skills/agentbyte-middleware/SKILL.md +0 -0
  14. {agentbyte-0.4.2 → agentbyte-0.4.3}/.github/skills/agentbyte-multi-turn-context/SKILL.md +0 -0
  15. {agentbyte-0.4.2 → agentbyte-0.4.3}/.github/skills/agentbyte-otel-tracing/SKILL.md +0 -0
  16. {agentbyte-0.4.2 → agentbyte-0.4.3}/.github/skills/agentbyte-round-robin-orchestration/SKILL.md +0 -0
  17. {agentbyte-0.4.2 → agentbyte-0.4.3}/.github/skills/agentbyte-simple-agent/SKILL.md +0 -0
  18. {agentbyte-0.4.2 → agentbyte-0.4.3}/.github/skills/agentbyte-tool-approval/SKILL.md +0 -0
  19. {agentbyte-0.4.2 → agentbyte-0.4.3}/.github/skills/skill-authoring/SKILL.md +0 -0
  20. {agentbyte-0.4.2 → agentbyte-0.4.3}/.gitignore +0 -0
  21. {agentbyte-0.4.2 → agentbyte-0.4.3}/LICENSE +0 -0
  22. {agentbyte-0.4.2 → agentbyte-0.4.3}/pyproject.toml +0 -0
  23. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/__init__.py +0 -0
  24. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/agents/__init__.py +0 -0
  25. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/agents/agent.py +0 -0
  26. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/agents/agent_as_tool.py +0 -0
  27. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/agents/base.py +0 -0
  28. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/agents/types.py +0 -0
  29. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/cancellation_token.py +0 -0
  30. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/cli/__init__.py +0 -0
  31. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/cli/main.py +0 -0
  32. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/component.py +0 -0
  33. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/context.py +0 -0
  34. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/dataset/__init__.py +0 -0
  35. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/dataset/base.py +0 -0
  36. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/dataset/json.py +0 -0
  37. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/dataset/loader.py +0 -0
  38. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/dataset/loaders.py +0 -0
  39. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/dataset/sqlite.py +0 -0
  40. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/entity.py +0 -0
  41. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/llm/__init__.py +0 -0
  42. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/llm/auth.py +0 -0
  43. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/llm/azure_openai.py +0 -0
  44. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/llm/azure_openai_embedding.py +0 -0
  45. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/llm/base.py +0 -0
  46. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/llm/embeddings_base.py +0 -0
  47. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/llm/openai.py +0 -0
  48. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/llm/openai_embedding.py +0 -0
  49. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/llm/pricing.py +0 -0
  50. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/llm/settings.py +0 -0
  51. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/llm/types.py +0 -0
  52. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/memory/__init__.py +0 -0
  53. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/memory/base.py +0 -0
  54. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/messages.py +0 -0
  55. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/middleware/__init__.py +0 -0
  56. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/middleware/base.py +0 -0
  57. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/middleware/otel.py +0 -0
  58. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/notebook.py +0 -0
  59. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/orchestration/__init__.py +0 -0
  60. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/orchestration/ai.py +0 -0
  61. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/orchestration/base.py +0 -0
  62. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/orchestration/plan.py +0 -0
  63. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/orchestration/round_robin.py +0 -0
  64. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/session.py +0 -0
  65. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/termination/__init__.py +0 -0
  66. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/termination/base.py +0 -0
  67. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/termination/cancellation.py +0 -0
  68. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/termination/composite.py +0 -0
  69. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/termination/external.py +0 -0
  70. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/termination/function_call.py +0 -0
  71. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/termination/handoff.py +0 -0
  72. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/termination/max_message.py +0 -0
  73. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/termination/text_mention.py +0 -0
  74. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/termination/timeout.py +0 -0
  75. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/termination/token_usage.py +0 -0
  76. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/tools/__init__.py +0 -0
  77. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/tools/base.py +0 -0
  78. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/tools/core_tools.py +0 -0
  79. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/tools/decorator.py +0 -0
  80. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/tools/memory_tool.py +0 -0
  81. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/types.py +0 -0
  82. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/__init__.py +0 -0
  83. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/agent_framework_devui/ui/assets/index-BzhEszHZ.css +0 -0
  84. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/agent_framework_devui/ui/assets/index-DByFJNGD.js +0 -0
  85. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/agent_framework_devui/ui/index.html +0 -0
  86. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/agent_framework_devui/ui/vite.svg +0 -0
  87. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/discovery.py +0 -0
  88. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/execution.py +0 -0
  89. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/.gitignore +0 -0
  90. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/README.md +0 -0
  91. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/components.json +0 -0
  92. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/eslint.config.js +0 -0
  93. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/index.html +0 -0
  94. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/package.json +0 -0
  95. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/plan.md +0 -0
  96. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/public/vite.svg +0 -0
  97. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/App.css +0 -0
  98. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/App.tsx +0 -0
  99. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/assets/react.svg +0 -0
  100. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/components/agent/agent-view.tsx +0 -0
  101. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/components/message_renderer/ContentRenderer.tsx +0 -0
  102. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/components/message_renderer/MessageRenderer.tsx +0 -0
  103. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/components/message_renderer/index.ts +0 -0
  104. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/components/message_renderer/types.ts +0 -0
  105. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/components/mode-toggle.tsx +0 -0
  106. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/components/orchestrator/orchestrator-view.tsx +0 -0
  107. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/components/shared/app-header.tsx +0 -0
  108. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/components/shared/chat-base.tsx +0 -0
  109. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/components/shared/context-inspector.tsx +0 -0
  110. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/components/shared/debug-panel.tsx +0 -0
  111. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/components/shared/entity-selector.tsx +0 -0
  112. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/components/shared/example-tasks-display.tsx +0 -0
  113. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/components/shared/examples-gallery.tsx +0 -0
  114. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/components/shared/session-switcher.tsx +0 -0
  115. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/components/shared/tool-approval-banner.tsx +0 -0
  116. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/components/theme-provider.tsx +0 -0
  117. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/components/ui/attachment-gallery.tsx +0 -0
  118. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/components/ui/badge.tsx +0 -0
  119. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/components/ui/button.tsx +0 -0
  120. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/components/ui/card.tsx +0 -0
  121. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/components/ui/dialog.tsx +0 -0
  122. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/components/ui/dropdown-menu.tsx +0 -0
  123. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/components/ui/file-upload.tsx +0 -0
  124. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/components/ui/input.tsx +0 -0
  125. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/components/ui/label.tsx +0 -0
  126. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/components/ui/loading-spinner.tsx +0 -0
  127. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/components/ui/loading-state.tsx +0 -0
  128. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/components/ui/message-input.tsx +0 -0
  129. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/components/ui/scroll-area.tsx +0 -0
  130. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/components/ui/slider.tsx +0 -0
  131. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/components/ui/tabs.tsx +0 -0
  132. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/components/ui/textarea.tsx +0 -0
  133. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/components/workflow/workflow-view.tsx +0 -0
  134. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/hooks/messageHandlers.ts +0 -0
  135. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/hooks/useEntityExecution.ts +0 -0
  136. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/index.css +0 -0
  137. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/main.tsx +0 -0
  138. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/services/api.ts +0 -0
  139. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/types/index.ts +0 -0
  140. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/types/picoagents.ts +0 -0
  141. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/utils/message-utils.ts +0 -0
  142. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/src/vite-env.d.ts +0 -0
  143. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/tsconfig.app.json +0 -0
  144. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/tsconfig.json +0 -0
  145. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/tsconfig.node.json +0 -0
  146. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/vite.config.ts +0 -0
  147. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/frontend/yarn.lock +0 -0
  148. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/models.py +0 -0
  149. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/registry.py +0 -0
  150. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/server.py +0 -0
  151. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/session_store.py +0 -0
  152. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/sessions.py +0 -0
  153. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/ui/assets/index-CWk64UM3.js +0 -0
  154. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/ui/assets/index-vt1cujlT.css +0 -0
  155. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/ui/index.html +0 -0
  156. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/webui/ui/vite.svg +0 -0
  157. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/workflow/__init__.py +0 -0
  158. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/workflow/core/__init__.py +0 -0
  159. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/workflow/core/checkpoint.py +0 -0
  160. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/workflow/core/models.py +0 -0
  161. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/workflow/core/runner.py +0 -0
  162. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/workflow/core/workflow.py +0 -0
  163. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/workflow/defaults.py +0 -0
  164. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/workflow/schema_utils.py +0 -0
  165. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/workflow/steps/__init__.py +0 -0
  166. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/workflow/steps/agentbyte_agent.py +0 -0
  167. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/workflow/steps/echo.py +0 -0
  168. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/workflow/steps/function.py +0 -0
  169. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/workflow/steps/http.py +0 -0
  170. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/workflow/steps/step.py +0 -0
  171. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/workflow/steps/transform.py +0 -0
  172. {agentbyte-0.4.2 → agentbyte-0.4.3}/src/agentbyte/workflow/visualizer.py +0 -0
  173. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/agents/test_agent_as_tool.py +0 -0
  174. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/agents/test_agent_basic.py +0 -0
  175. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/agents/test_agent_event_types.py +0 -0
  176. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/agents/test_agent_memory_integration.py +0 -0
  177. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/agents/test_agent_middleware_integration.py +0 -0
  178. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/agents/test_agent_stream_events.py +0 -0
  179. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/agents/test_tool_approval.py +0 -0
  180. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/cli/test_create_skills.py +0 -0
  181. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/llm/test_azure_client.py +0 -0
  182. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/llm/test_azure_embedding_client.py +0 -0
  183. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/llm/test_llm_types.py +0 -0
  184. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/llm/test_openai_client.py +0 -0
  185. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/llm/test_openai_embedding_client.py +0 -0
  186. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/memory/test_memory.py +0 -0
  187. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/middleware/test_middleware_chain.py +0 -0
  188. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/middleware/test_otel.py +0 -0
  189. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/orchestration/test_ai_orchestrator.py +0 -0
  190. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/orchestration/test_base_orchestrator.py +0 -0
  191. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/orchestration/test_plan_orchestrator.py +0 -0
  192. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/orchestration/test_round_robin.py +0 -0
  193. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/termination/test_base.py +0 -0
  194. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/termination/test_cancellation.py +0 -0
  195. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/termination/test_composite.py +0 -0
  196. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/termination/test_external.py +0 -0
  197. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/termination/test_function_call.py +0 -0
  198. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/termination/test_handoff.py +0 -0
  199. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/termination/test_max_message.py +0 -0
  200. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/termination/test_text_mention.py +0 -0
  201. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/termination/test_timeout.py +0 -0
  202. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/termination/test_token_usage.py +0 -0
  203. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/test_cancellation_token.py +0 -0
  204. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/test_context.py +0 -0
  205. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/test_messages.py +0 -0
  206. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/test_package_api.py +0 -0
  207. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/test_session.py +0 -0
  208. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/test_types.py +0 -0
  209. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/tools/test_memory_tool.py +0 -0
  210. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/tools/test_tools.py +0 -0
  211. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/webui/__init__.py +0 -0
  212. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/webui/helpers.py +0 -0
  213. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/webui/test_execution.py +0 -0
  214. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/webui/test_package_api.py +0 -0
  215. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/webui/test_registry.py +0 -0
  216. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/webui/test_server.py +0 -0
  217. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/workflow/test_checkpoint.py +0 -0
  218. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/workflow/test_workflow_class.py +0 -0
  219. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/workflow/test_workflow_models.py +0 -0
  220. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/workflow/test_workflow_runner.py +0 -0
  221. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/workflow/test_workflow_steps.py +0 -0
  222. {agentbyte-0.4.2 → agentbyte-0.4.3}/tests/workflow/test_workflow_visualizer.py +0 -0
@@ -106,22 +106,41 @@ provider, embedding_client = build_embedding_client()
106
106
  ### 4. Embedding result usage (current API)
107
107
 
108
108
  ```python
109
- result = await embedding_client.create_batch(["alpha", "beta"])
109
+ single = await embedding_client.create("alpha")
110
+ vector = single.embedding
111
+ all_vectors = single.embeddings
112
+ tokens = single.usage.tokens_input
113
+ cost = single.usage.cost_estimate
114
+ ```
115
+
116
+ For batch input, use `embeddings`:
117
+
118
+ ```python
119
+ batch = await embedding_client.create_batch(["alpha", "beta"])
110
120
 
111
- vectors = result.embeddings
112
- tokens = result.usage.tokens_input
113
- cost = result.usage.cost_estimate
121
+ first_vector = batch.embedding
122
+ vectors = batch.embeddings
123
+ tokens = batch.usage.tokens_input
124
+ cost = batch.usage.cost_estimate
114
125
  ```
115
126
 
116
127
  `create(...)` and `create_batch(...)` return `EmbeddingResult`.
117
128
 
129
+ `EmbeddingResult` has this invariant:
130
+
131
+ - `result.embedding == result.embeddings[0]`
132
+ - `create(...)` returns one vector in `result.embeddings`, and the same vector is also exposed as `result.embedding`
133
+ - `create_batch(...)` returns all vectors in `result.embeddings`, and `result.embedding` is just the first vector for convenience
134
+
118
135
  ## Guardrails
119
136
 
120
137
  - **Environment Loading:** Always use `load_dotenv(find_dotenv(), override=True)` before initializing clients in scripts or notebooks.
121
138
  - **Client Reuse:** Prefer creating one client instance and reusing it instead of re-initializing for each call.
122
139
  - **Factory vs. Constructor:** Use factory methods (`from_api_key`, `from_certificate`) for standard auth. Use constructor injection only for custom-configured SDK instances.
123
140
  - **Single-provider init for embeddings:** In notebooks/demos, initialize OpenAI **or** Azure (not both) to avoid missing-env failures.
124
- - **Embedding API shape:** Do not expect raw `list[float]` from `create(...)`; read vectors from `EmbeddingResult.embeddings`.
141
+ - **Embedding API shape:** Do not expect raw `list[float]` from `create(...)`; read vectors from `EmbeddingResult`.
142
+ - **Preferred field choice:** Use `result.embedding` when you expect exactly one vector. Use `result.embeddings` when you need batch-shaped output or want code that treats single and batch calls uniformly.
143
+ - **Do not assume `embedding` is batch output:** `result.embedding` is only the first vector, even for `create_batch(...)`.
125
144
  - **Cost precision:** `usage.cost_estimate` is rounded to 15 decimals; tiny single-call embedding costs can still be very small.
126
145
 
127
- ````
146
+ ````
@@ -0,0 +1,205 @@
1
+ ---
2
+ name: agentbyte-plan-based-orchestration
3
+ description: Guide for creating Plan-Based multi-agent orchestration in Agentbyte (Chapter 7.5). Use this when a task should be decomposed into explicit steps, assigned to specialist agents, and retried based on structured evaluation.
4
+ license: MIT
5
+ ---
6
+
7
+ Use this skill when implementing multi-agent collaboration with an explicit plan up front, step-by-step execution, evaluator-driven retries, and focused context per step.
8
+
9
+ ## Pattern: Basic Plan-Based Orchestration
10
+
11
+ ```python
12
+ import asyncio
13
+ from agentbyte import Agent, PlanBasedOrchestrator, UserMessage
14
+ from agentbyte.llm import OpenAIChatCompletionClient
15
+ from agentbyte.termination import MaxMessageTermination
16
+
17
+
18
+ async def main():
19
+ # 1. Create one chat model client for planning, evaluation, and agents
20
+ client = OpenAIChatCompletionClient.from_api_key(
21
+ model="gpt-4.1-mini",
22
+ config={"temperature": 0.2, "max_tokens": 600},
23
+ )
24
+
25
+ # 2. Create specialists with clear descriptions
26
+ researcher = Agent(
27
+ name="researcher",
28
+ description="Research specialist for concise factual context",
29
+ instructions=(
30
+ "Gather only the facts needed for the current step and keep them concise."
31
+ ),
32
+ model_client=client,
33
+ )
34
+
35
+ writer = Agent(
36
+ name="writer",
37
+ description="Writing specialist for polished user-facing prose",
38
+ instructions=(
39
+ "Turn available material into concise, clear writing for the user."
40
+ ),
41
+ model_client=client,
42
+ )
43
+
44
+ reviewer = Agent(
45
+ name="reviewer",
46
+ description="Quality reviewer for clarity, completeness, and accuracy",
47
+ instructions=(
48
+ "Check whether the current draft satisfies the step goal and suggest "
49
+ "precise improvements when needed."
50
+ ),
51
+ model_client=client,
52
+ )
53
+
54
+ # 3. Initialize the plan-based orchestrator
55
+ orchestrator = PlanBasedOrchestrator(
56
+ agents=[researcher, writer, reviewer],
57
+ termination=MaxMessageTermination(12),
58
+ model_client=client, # Required: used for planning and evaluation
59
+ max_iterations=10, # Safety limit for total agent turns
60
+ max_step_retries=2, # Retry failed steps with evaluator feedback
61
+ recent_messages_limit=5, # Focus context on the latest shared history
62
+ )
63
+
64
+ # 4. Run the task
65
+ task = UserMessage(
66
+ content="Create a short user note explaining why solar energy is beneficial.",
67
+ source="user",
68
+ )
69
+ result = await orchestrator.run(task)
70
+
71
+ print(f"Stop reason: {result.stop_message.content}")
72
+ print(f"Steps completed: {result.pattern_metadata.get('steps_completed')}")
73
+ print(f"Steps failed: {result.pattern_metadata.get('steps_failed')}")
74
+ print(f"Total retries: {result.pattern_metadata.get('total_retries')}")
75
+ print(f"Plan: {result.pattern_metadata.get('execution_plan')}")
76
+ print(f"Total tokens: {result.usage.total_tokens}")
77
+
78
+
79
+ asyncio.run(main())
80
+ ```
81
+
82
+ ## Pattern: Streaming Plan-Based Orchestration
83
+
84
+ ```python
85
+ from agentbyte.messages import Message
86
+ from agentbyte.types import OrchestrationEvent, OrchestrationResponse
87
+
88
+ async for item in orchestrator.run_stream(task, verbose=True):
89
+ if isinstance(item, Message):
90
+ print(f"[MSG][{item.source}] {item.content}")
91
+ elif isinstance(item, OrchestrationEvent):
92
+ print(f"[EVENT][{item.__class__.__name__}] {item}")
93
+ elif isinstance(item, OrchestrationResponse):
94
+ print(f"Complete: {item.stop_message.content}")
95
+ print(f"Steps completed: {item.pattern_metadata.get('steps_completed')}")
96
+ ```
97
+
98
+ ## How Plan-Based Orchestration Works
99
+
100
+ 1. The orchestrator creates a structured `ExecutionPlan`.
101
+ 2. Each `PlanStep` assigns one step to one named agent.
102
+ 3. The assigned agent receives focused context plus the current step instruction.
103
+ 4. The orchestrator evaluates the step with structured `StepProgressEvaluation`.
104
+ 5. If the step fails and retries remain, the orchestrator injects targeted retry instructions.
105
+ 6. When all steps are exhausted or completed, the orchestration stops cleanly.
106
+
107
+ ## Structured Models
108
+
109
+ Plan-based orchestration relies on these public models:
110
+
111
+ ```python
112
+ from agentbyte.orchestration.plan import (
113
+ ExecutionPlan,
114
+ PlanStep,
115
+ StepProgressEvaluation,
116
+ )
117
+ ```
118
+
119
+ ```python
120
+ class PlanStep(BaseModel):
121
+ task: str
122
+ agent_name: str
123
+ reasoning: str
124
+
125
+
126
+ class ExecutionPlan(BaseModel):
127
+ steps: list[PlanStep]
128
+
129
+
130
+ class StepProgressEvaluation(BaseModel):
131
+ step_completed: bool
132
+ failure_reason: str
133
+ confidence_score: float
134
+ suggested_improvements: list[str]
135
+ ```
136
+
137
+ ## Configuration Options
138
+
139
+ ```python
140
+ orchestrator = PlanBasedOrchestrator(
141
+ agents=[agent1, agent2, agent3], # Required: specialist agents
142
+ termination=termination_condition, # Required: stop condition
143
+ model_client=planner_client, # Required: plan + evaluation model client
144
+ max_iterations=50, # Optional: total agent-turn safety limit
145
+ max_step_retries=3, # Optional: retries per failed step
146
+ recent_messages_limit=5, # Optional: focused context window
147
+ )
148
+ ```
149
+
150
+ ## Pattern Metadata
151
+
152
+ After completion, `result.pattern_metadata` contains plan-aware state such as:
153
+
154
+ - `execution_plan`: Serialized plan steps and assignments
155
+ - `steps_completed`: Number of successful steps
156
+ - `steps_failed`: Number of steps exhausted after retries
157
+ - `total_retries`: Total retry attempts across all steps
158
+ - `current_step_index`: Final step index reached
159
+ - `current_step_retry_count`: Retry count for the active step
160
+ - `planner_model`: Model name used for plan/evaluation calls
161
+ - `planner_calls`: Number of planning calls made
162
+ - `evaluation_calls`: Number of step evaluations made
163
+
164
+ ## Usage Tracking
165
+
166
+ Final `result.usage` includes:
167
+
168
+ - all agent execution usage
169
+ - the planning model call
170
+ - step evaluation model calls
171
+
172
+ This makes plan-based orchestration more expensive than simpler patterns, but much easier to inspect and control.
173
+
174
+ ## When to Use Plan-Based vs Other Patterns
175
+
176
+ | Use Plan-Based When | Use AI-Driven When | Use Round-Robin When |
177
+ |---------------------|--------------------|----------------------|
178
+ | Work has clear phases | Routing should adapt turn by turn | Agents should alternate in fixed order |
179
+ | You want explicit step decomposition | You want flexible specialist selection | You want deterministic sequencing |
180
+ | Step verification matters | Flow is exploratory | Flow is simple and cyclical |
181
+ | Retry feedback should be structured | Agent order is not known up front | Every agent should always get a turn |
182
+
183
+ ## Guardrails
184
+
185
+ - **Model Client Required:** `PlanBasedOrchestrator` requires `model_client` for both plan generation and step evaluation.
186
+ - **Agent Names Must Match:** `PlanStep.agent_name` must match an actual agent name. Matching is case-insensitive, but the name still has to exist.
187
+ - **Descriptions Matter:** Agent descriptions should clearly state specialization because the planner uses them to assign steps.
188
+ - **Termination Still Required:** Even though the pattern can stop when the plan completes, still provide a real termination condition as a safety boundary.
189
+ - **Retries Are Bounded:** Use `max_step_retries` to keep failed steps from looping forever.
190
+ - **Focused Context:** Plan-based orchestration intentionally sends only recent shared context plus the current step task. Do not assume every step sees the full history.
191
+ - **Fallback Behavior Exists:** If structured planning or evaluation fails, the orchestrator falls back to safe default behavior instead of crashing.
192
+
193
+ ## Common Use Cases
194
+
195
+ 1. Research -> write -> review workflows
196
+ 2. Draft -> critique -> revise pipelines
197
+ 3. Gather evidence -> synthesize -> present answer
198
+ 4. Multi-step analyst/reporter/editor collaboration
199
+ 5. Quality-sensitive tasks where each phase should be checked before moving on
200
+
201
+ ## Examples
202
+
203
+ - Basic: `examples/orchestration/plan_based_basic.py`
204
+ - Streaming: `examples/orchestration/plan_based_stream.py`
205
+ - With OTel: `examples/orchestration/plan_based_with_otel.py`
@@ -4,6 +4,14 @@ 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.4.3] - 2026-03-26
8
+
9
+ ### Added
10
+ - Added a new Copilot skill: `agentbyte-plan-based-orchestration` for `PlanBasedOrchestrator` setup, retries, metadata, and examples.
11
+
12
+ ### Changed
13
+ - Updated the `agentbyte-llm-client` skill to explain when to use `EmbeddingResult.embedding` versus `EmbeddingResult.embeddings`.
14
+
7
15
  ## [0.4.2] - 2026-03-25
8
16
 
9
17
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentbyte
3
- Version: 0.4.2
3
+ Version: 0.4.3
4
4
  Summary: A toolkit for designing multiagent systems
5
5
  Project-URL: Homepage, https://gitlab.com/pyninja/aiengineering/agentbyte
6
6
  Project-URL: Repository, https://gitlab.com/pyninja/aiengineering/agentbyte
@@ -36,17 +36,22 @@ Requires-Dist: uvicorn>=0.42.0; extra == 'webui'
36
36
  Description-Content-Type: text/markdown
37
37
 
38
38
  <p align="center">
39
- <img src="https://gitlab.com/pyninja/aiengineering/agentbyte/-/raw/v0.4.2/logo/agent-byte-avatar-low.png" alt="Agentbyte" width="200"/>
39
+ <img src="https://gitlab.com/pyninja/aiengineering/agentbyte/-/raw/v0.4.3/logo/agent-byte-avatar-low.png" alt="Agentbyte" width="200"/>
40
40
  </p>
41
41
 
42
42
  # Agentbyte
43
43
 
44
44
  Agentbyte is an observability-first agentic AI framework for building and studying multiagent systems with a learning-first, implementation-oriented workflow.
45
45
 
46
- Current release: **0.4.2**
46
+ Current release: **0.4.3**
47
47
 
48
48
  Repository: [gitlab.com/pyninja/aiengineering/agentbyte](https://gitlab.com/pyninja/aiengineering/agentbyte)
49
49
 
50
+ ## What's New in 0.4.3
51
+
52
+ - Added a new `agentbyte-plan-based-orchestration` Copilot skill for Chapter 7.5 plan-based orchestration.
53
+ - Updated the `agentbyte-llm-client` skill to document `EmbeddingResult.embedding` versus `EmbeddingResult.embeddings`.
54
+
50
55
  ## What's New in 0.4.2
51
56
 
52
57
  - Rebased the WebUI source frontend on the picoagents frontend snapshot copied into `src/agentbyte/webui/frontend/`.
@@ -1,15 +1,20 @@
1
1
  <p align="center">
2
- <img src="https://gitlab.com/pyninja/aiengineering/agentbyte/-/raw/v0.4.2/logo/agent-byte-avatar-low.png" alt="Agentbyte" width="200"/>
2
+ <img src="https://gitlab.com/pyninja/aiengineering/agentbyte/-/raw/v0.4.3/logo/agent-byte-avatar-low.png" alt="Agentbyte" width="200"/>
3
3
  </p>
4
4
 
5
5
  # Agentbyte
6
6
 
7
7
  Agentbyte is an observability-first agentic AI framework for building and studying multiagent systems with a learning-first, implementation-oriented workflow.
8
8
 
9
- Current release: **0.4.2**
9
+ Current release: **0.4.3**
10
10
 
11
11
  Repository: [gitlab.com/pyninja/aiengineering/agentbyte](https://gitlab.com/pyninja/aiengineering/agentbyte)
12
12
 
13
+ ## What's New in 0.4.3
14
+
15
+ - Added a new `agentbyte-plan-based-orchestration` Copilot skill for Chapter 7.5 plan-based orchestration.
16
+ - Updated the `agentbyte-llm-client` skill to document `EmbeddingResult.embedding` versus `EmbeddingResult.embeddings`.
17
+
13
18
  ## What's New in 0.4.2
14
19
 
15
20
  - Rebased the WebUI source frontend on the picoagents frontend snapshot copied into `src/agentbyte/webui/frontend/`.
@@ -1,2 +1,2 @@
1
- __version__ = "0.4.2"
1
+ __version__ = "0.4.3"
2
2
  VERSION = __version__
File without changes
File without changes
File without changes