agentbyte 0.22.4__tar.gz → 0.22.6__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 (344) hide show
  1. {agentbyte-0.22.4 → agentbyte-0.22.6}/CHANGELOG.md +19 -0
  2. {agentbyte-0.22.4 → agentbyte-0.22.6}/PKG-INFO +7 -2
  3. {agentbyte-0.22.4 → agentbyte-0.22.6}/README.md +1 -1
  4. {agentbyte-0.22.4 → agentbyte-0.22.6}/pyproject.toml +10 -1
  5. agentbyte-0.22.6/src/agentbyte/__about__.py +2 -0
  6. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/skills/sources.py +2 -9
  7. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/skills/test_sources.py +16 -0
  8. agentbyte-0.22.4/src/agentbyte/__about__.py +0 -2
  9. agentbyte-0.22.4/src/agentbyte/microwebui/__init__.py +0 -9
  10. agentbyte-0.22.4/src/agentbyte/microwebui/server.py +0 -312
  11. agentbyte-0.22.4/src/agentbyte/microwebui/ui/index.html +0 -1499
  12. agentbyte-0.22.4/tests/webui/test_microwebui_server.py +0 -27
  13. {agentbyte-0.22.4 → agentbyte-0.22.6}/.gitignore +0 -0
  14. {agentbyte-0.22.4 → agentbyte-0.22.6}/LICENSE +0 -0
  15. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/__init__.py +0 -0
  16. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/agents/__init__.py +0 -0
  17. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/agents/agent.py +0 -0
  18. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/agents/agent_as_tool.py +0 -0
  19. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/agents/base.py +0 -0
  20. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/agents/embedding_agent.py +0 -0
  21. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/agents/types.py +0 -0
  22. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/cancellation_token.py +0 -0
  23. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/catalog.py +0 -0
  24. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/cli/__init__.py +0 -0
  25. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/cli/main.py +0 -0
  26. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/component.py +0 -0
  27. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/context.py +0 -0
  28. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/context_providers/__init__.py +0 -0
  29. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/context_providers/base.py +0 -0
  30. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/context_providers/skill_tools.py +0 -0
  31. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/context_providers/skills.py +0 -0
  32. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/dataset/__init__.py +0 -0
  33. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/dataset/base.py +0 -0
  34. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/dataset/config.py +0 -0
  35. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/dataset/importer.py +0 -0
  36. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/dataset/json.py +0 -0
  37. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/dataset/loader.py +0 -0
  38. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/dataset/publish.py +0 -0
  39. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/dataset/publish_config.py +0 -0
  40. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/dataset/publishers.py +0 -0
  41. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/dataset/sources.py +0 -0
  42. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/dataset/sqlite.py +0 -0
  43. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/dataset/sqlite_db.py +0 -0
  44. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/dataset/write_config.py +0 -0
  45. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/dataset/writers.py +0 -0
  46. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/entity.py +0 -0
  47. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/eval/__init__.py +0 -0
  48. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/eval/base.py +0 -0
  49. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/eval/checks/__init__.py +0 -0
  50. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/eval/checks/decorator.py +0 -0
  51. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/eval/checks/keyword.py +0 -0
  52. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/eval/checks/local.py +0 -0
  53. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/eval/checks/tool.py +0 -0
  54. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/eval/checks/types.py +0 -0
  55. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/eval/comparison.py +0 -0
  56. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/eval/eval_dataset.py +0 -0
  57. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/eval/judges/__init__.py +0 -0
  58. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/eval/judges/base.py +0 -0
  59. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/eval/judges/composite.py +0 -0
  60. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/eval/judges/llm.py +0 -0
  61. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/eval/judges/pairwise.py +0 -0
  62. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/eval/judges/reference.py +0 -0
  63. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/eval/pairwise.py +0 -0
  64. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/eval/report.py +0 -0
  65. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/eval/runner.py +0 -0
  66. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/eval/targets/__init__.py +0 -0
  67. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/eval/targets/agent.py +0 -0
  68. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/eval/targets/model.py +0 -0
  69. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/eval/targets/multi_turn.py +0 -0
  70. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/eval/targets/orchestrator.py +0 -0
  71. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/eval/types.py +0 -0
  72. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/llm/__init__.py +0 -0
  73. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/llm/_retry_observability.py +0 -0
  74. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/llm/auth.py +0 -0
  75. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/llm/azure/__init__.py +0 -0
  76. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/llm/azure/auth.py +0 -0
  77. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/llm/azure/chat.py +0 -0
  78. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/llm/azure/embedding.py +0 -0
  79. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/llm/azure/settings.py +0 -0
  80. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/llm/azure_openai.py +0 -0
  81. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/llm/azure_openai_embedding.py +0 -0
  82. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/llm/base.py +0 -0
  83. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/llm/embeddings_base.py +0 -0
  84. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/llm/openai/__init__.py +0 -0
  85. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/llm/openai/chat.py +0 -0
  86. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/llm/openai/embedding.py +0 -0
  87. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/llm/openai/settings.py +0 -0
  88. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/llm/openai.py +0 -0
  89. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/llm/openai_embedding.py +0 -0
  90. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/llm/pricing.py +0 -0
  91. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/llm/retry_policy.py +0 -0
  92. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/llm/settings.py +0 -0
  93. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/llm/types.py +0 -0
  94. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/logger.py +0 -0
  95. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/memory/__init__.py +0 -0
  96. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/memory/base.py +0 -0
  97. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/messages.py +0 -0
  98. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/middleware/__init__.py +0 -0
  99. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/middleware/base.py +0 -0
  100. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/middleware/otel.py +0 -0
  101. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/middleware/retry.py +0 -0
  102. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/middleware/sql_usage.py +0 -0
  103. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/middleware/usage_logger.py +0 -0
  104. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/notebook.py +0 -0
  105. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/orchestration/__init__.py +0 -0
  106. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/orchestration/ai.py +0 -0
  107. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/orchestration/base.py +0 -0
  108. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/orchestration/handoff.py +0 -0
  109. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/orchestration/plan.py +0 -0
  110. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/orchestration/policies.py +0 -0
  111. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/orchestration/round_robin.py +0 -0
  112. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/presets/__init__.py +0 -0
  113. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/presets/agents.py +0 -0
  114. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/presets/clients.py +0 -0
  115. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/presets/instruction_registry.py +0 -0
  116. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/presets/instructions/orchestrator.yaml +0 -0
  117. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/presets/instructions/query_rewriter.yaml +0 -0
  118. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/presets/instructions/researcher.yaml +0 -0
  119. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/presets/instructions/reviewer.yaml +0 -0
  120. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/presets/instructions/writer.yaml +0 -0
  121. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/presets/orchestration.py +0 -0
  122. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/presets/skills/contracts-analyst/SKILL.md +0 -0
  123. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/presets/skills/hr-analyst/SKILL.md +0 -0
  124. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/presets/skills/hr-analyst/resources/departments.md +0 -0
  125. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/presets/skills/hr-analyst/resources/employees.md +0 -0
  126. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/presets/skills/hr-analyst/resources/payroll.md +0 -0
  127. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/presets/streaming.py +0 -0
  128. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/presets/workflow.py +0 -0
  129. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/session_store.py +0 -0
  130. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/skills/__init__.py +0 -0
  131. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/skills/base.py +0 -0
  132. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/skills/resources.py +0 -0
  133. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/skills/scripts.py +0 -0
  134. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/termination/__init__.py +0 -0
  135. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/termination/base.py +0 -0
  136. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/termination/cancellation.py +0 -0
  137. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/termination/composite.py +0 -0
  138. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/termination/consecutive_agent.py +0 -0
  139. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/termination/external.py +0 -0
  140. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/termination/function_call.py +0 -0
  141. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/termination/handoff.py +0 -0
  142. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/termination/max_message.py +0 -0
  143. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/termination/predicate.py +0 -0
  144. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/termination/source.py +0 -0
  145. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/termination/text_mention.py +0 -0
  146. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/termination/timeout.py +0 -0
  147. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/termination/token_usage.py +0 -0
  148. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/tools/__init__.py +0 -0
  149. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/tools/base.py +0 -0
  150. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/tools/coding_tools.py +0 -0
  151. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/tools/core_tools.py +0 -0
  152. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/tools/decorator.py +0 -0
  153. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/tools/memory_tool.py +0 -0
  154. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/tools/research_tools.py +0 -0
  155. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/types.py +0 -0
  156. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/__init__.py +0 -0
  157. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/discovery.py +0 -0
  158. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/execution.py +0 -0
  159. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/.gitignore +0 -0
  160. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/README.md +0 -0
  161. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/components.json +0 -0
  162. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/eslint.config.js +0 -0
  163. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/index.html +0 -0
  164. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/package-lock.json +0 -0
  165. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/package.json +0 -0
  166. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/plan.md +0 -0
  167. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/public/vite.svg +0 -0
  168. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/App.css +0 -0
  169. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/App.tsx +0 -0
  170. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/assets/react.svg +0 -0
  171. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/components/agent/agent-view.tsx +0 -0
  172. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/components/message_renderer/ContentRenderer.tsx +0 -0
  173. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/components/message_renderer/MessageRenderer.tsx +0 -0
  174. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/components/message_renderer/index.ts +0 -0
  175. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/components/message_renderer/types.ts +0 -0
  176. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/components/mode-toggle.tsx +0 -0
  177. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/components/orchestrator/orchestrator-view.tsx +0 -0
  178. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/components/shared/app-header.tsx +0 -0
  179. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/components/shared/chat-base.tsx +0 -0
  180. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/components/shared/context-inspector.tsx +0 -0
  181. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/components/shared/debug-panel.tsx +0 -0
  182. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/components/shared/entity-selector.tsx +0 -0
  183. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/components/shared/example-tasks-display.tsx +0 -0
  184. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/components/shared/session-switcher.tsx +0 -0
  185. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/components/shared/tool-approval-banner.tsx +0 -0
  186. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/components/theme-provider.tsx +0 -0
  187. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/components/ui/attachment-gallery.tsx +0 -0
  188. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/components/ui/badge.tsx +0 -0
  189. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/components/ui/button.tsx +0 -0
  190. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/components/ui/card.tsx +0 -0
  191. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/components/ui/dialog.tsx +0 -0
  192. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/components/ui/dropdown-menu.tsx +0 -0
  193. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/components/ui/file-upload.tsx +0 -0
  194. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/components/ui/input.tsx +0 -0
  195. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/components/ui/label.tsx +0 -0
  196. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/components/ui/loading-spinner.tsx +0 -0
  197. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/components/ui/loading-state.tsx +0 -0
  198. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/components/ui/message-input.tsx +0 -0
  199. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/components/ui/scroll-area.tsx +0 -0
  200. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/components/ui/slider.tsx +0 -0
  201. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/components/ui/tabs.tsx +0 -0
  202. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/components/ui/textarea.tsx +0 -0
  203. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/components/workflow/workflow-result-renderer.tsx +0 -0
  204. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/components/workflow/workflow-view.tsx +0 -0
  205. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/hooks/messageHandlers.ts +0 -0
  206. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/hooks/useEntityExecution.ts +0 -0
  207. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/index.css +0 -0
  208. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/lib/format-utils.ts +0 -0
  209. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/lib/user-id.ts +0 -0
  210. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/lib/utils.ts +0 -0
  211. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/main.tsx +0 -0
  212. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/services/api.ts +0 -0
  213. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/types/index.ts +0 -0
  214. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/types/picoagents.ts +0 -0
  215. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/utils/message-utils.ts +0 -0
  216. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/src/vite-env.d.ts +0 -0
  217. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/tsconfig.app.json +0 -0
  218. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/tsconfig.json +0 -0
  219. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/tsconfig.node.json +0 -0
  220. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/vite.config.ts +0 -0
  221. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/frontend/yarn.lock +0 -0
  222. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/models.py +0 -0
  223. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/registry.py +0 -0
  224. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/server.py +0 -0
  225. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/session_store.py +0 -0
  226. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/sessions.py +0 -0
  227. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/ui/assets/index-DDp5MYFO.js +0 -0
  228. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/ui/assets/index-ar5tOeqt.css +0 -0
  229. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/ui/index.html +0 -0
  230. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/webui/ui/vite.svg +0 -0
  231. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/workflow/__init__.py +0 -0
  232. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/workflow/agent.py +0 -0
  233. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/workflow/core/__init__.py +0 -0
  234. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/workflow/core/_structure_hash.py +0 -0
  235. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/workflow/core/checkpoint.py +0 -0
  236. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/workflow/core/models.py +0 -0
  237. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/workflow/core/runner.py +0 -0
  238. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/workflow/core/workflow.py +0 -0
  239. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/workflow/defaults.py +0 -0
  240. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/workflow/loader.py +0 -0
  241. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/workflow/schema.py +0 -0
  242. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/workflow/schema_utils.py +0 -0
  243. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/workflow/steps/__init__.py +0 -0
  244. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/workflow/steps/agentbyte_agent.py +0 -0
  245. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/workflow/steps/echo.py +0 -0
  246. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/workflow/steps/function.py +0 -0
  247. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/workflow/steps/http.py +0 -0
  248. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/workflow/steps/step.py +0 -0
  249. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/workflow/steps/subworkflow.py +0 -0
  250. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/workflow/steps/transform.py +0 -0
  251. {agentbyte-0.22.4 → agentbyte-0.22.6}/src/agentbyte/workflow/visualizer.py +0 -0
  252. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/agents/test_agent_as_tool.py +0 -0
  253. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/agents/test_agent_basic.py +0 -0
  254. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/agents/test_agent_context_providers.py +0 -0
  255. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/agents/test_agent_event_types.py +0 -0
  256. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/agents/test_agent_memory_integration.py +0 -0
  257. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/agents/test_agent_middleware_integration.py +0 -0
  258. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/agents/test_agent_response_accessors.py +0 -0
  259. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/agents/test_agent_retry_middleware.py +0 -0
  260. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/agents/test_agent_stream_events.py +0 -0
  261. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/agents/test_embedding_agent.py +0 -0
  262. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/agents/test_tool_approval.py +0 -0
  263. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/cli/test_registry_check.py +0 -0
  264. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/context_providers/__init__.py +0 -0
  265. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/context_providers/test_skill_tools.py +0 -0
  266. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/context_providers/test_skills_provider.py +0 -0
  267. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/dataset/test_loader.py +0 -0
  268. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/dataset/test_multi_table.py +0 -0
  269. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/dataset/test_publish.py +0 -0
  270. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/dataset/test_sqlite_db.py +0 -0
  271. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/eval/test_eval_dataset.py +0 -0
  272. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/eval/test_multi_turn.py +0 -0
  273. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/eval/test_pairwise.py +0 -0
  274. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/eval/test_phase1_runner_and_targets.py +0 -0
  275. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/eval/test_phase2_checks_and_reports.py +0 -0
  276. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/eval/test_types_and_judges.py +0 -0
  277. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/llm/test_azure_client.py +0 -0
  278. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/llm/test_azure_embedding_client.py +0 -0
  279. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/llm/test_llm_types.py +0 -0
  280. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/llm/test_openai_client.py +0 -0
  281. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/llm/test_openai_embedding_client.py +0 -0
  282. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/llm/test_retry_observability.py +0 -0
  283. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/llm/test_retry_policy_api.py +0 -0
  284. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/memory/test_memory.py +0 -0
  285. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/middleware/test_middleware_chain.py +0 -0
  286. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/middleware/test_otel.py +0 -0
  287. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/middleware/test_retry_middleware.py +0 -0
  288. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/middleware/test_sql_usage.py +0 -0
  289. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/middleware/test_usage_logger.py +0 -0
  290. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/orchestration/test_ai_orchestrator.py +0 -0
  291. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/orchestration/test_base_orchestrator.py +0 -0
  292. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/orchestration/test_handoff_orchestrator.py +0 -0
  293. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/orchestration/test_plan_orchestrator.py +0 -0
  294. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/orchestration/test_round_robin.py +0 -0
  295. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/presets/test_agents.py +0 -0
  296. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/presets/test_clients.py +0 -0
  297. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/presets/test_instruction_registry.py +0 -0
  298. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/presets/test_orchestration.py +0 -0
  299. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/presets/test_streaming.py +0 -0
  300. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/presets/test_workflow.py +0 -0
  301. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/skills/__init__.py +0 -0
  302. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/skills/test_base.py +0 -0
  303. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/skills/test_resources.py +0 -0
  304. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/skills/test_scripts.py +0 -0
  305. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/termination/test_base.py +0 -0
  306. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/termination/test_cancellation.py +0 -0
  307. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/termination/test_composite.py +0 -0
  308. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/termination/test_consecutive_agent.py +0 -0
  309. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/termination/test_external.py +0 -0
  310. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/termination/test_function_call.py +0 -0
  311. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/termination/test_handoff.py +0 -0
  312. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/termination/test_max_message.py +0 -0
  313. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/termination/test_predicate.py +0 -0
  314. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/termination/test_source.py +0 -0
  315. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/termination/test_text_mention.py +0 -0
  316. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/termination/test_timeout.py +0 -0
  317. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/termination/test_token_usage.py +0 -0
  318. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/test_cancellation_token.py +0 -0
  319. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/test_context.py +0 -0
  320. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/test_logger.py +0 -0
  321. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/test_messages.py +0 -0
  322. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/test_package_api.py +0 -0
  323. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/test_session_store.py +0 -0
  324. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/test_types.py +0 -0
  325. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/tools/test_coding_tools.py +0 -0
  326. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/tools/test_memory_tool.py +0 -0
  327. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/tools/test_research_tools.py +0 -0
  328. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/tools/test_tools.py +0 -0
  329. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/webui/__init__.py +0 -0
  330. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/webui/helpers.py +0 -0
  331. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/webui/test_execution.py +0 -0
  332. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/webui/test_package_api.py +0 -0
  333. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/webui/test_registry.py +0 -0
  334. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/webui/test_server.py +0 -0
  335. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/webui/test_sessions.py +0 -0
  336. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/workflow/test_checkpoint.py +0 -0
  337. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/workflow/test_subworkflow_step.py +0 -0
  338. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/workflow/test_workflow_agent.py +0 -0
  339. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/workflow/test_workflow_class.py +0 -0
  340. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/workflow/test_workflow_models.py +0 -0
  341. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/workflow/test_workflow_runner.py +0 -0
  342. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/workflow/test_workflow_schema.py +0 -0
  343. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/workflow/test_workflow_steps.py +0 -0
  344. {agentbyte-0.22.4 → agentbyte-0.22.6}/tests/workflow/test_workflow_visualizer.py +0 -0
@@ -4,6 +4,25 @@ 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
+ ## [Unreleased]
8
+
9
+ ### Removed
10
+
11
+ - Removed `agentbyte.microwebui` (`MicroWebUIServer`, `create_app`, `serve`) — the lightweight single-file demo UI is superseded by `agentbyte.webui` (Playground), which supports agents, orchestrators, and workflows with a React frontend and typed session management. Callers using `from agentbyte.microwebui import serve` should migrate to `agentbyte.webui`.
12
+
13
+ ## [0.22.6] - 2026-07-09
14
+
15
+ ### Fixed
16
+
17
+ - Fixed packaging extras so `agentbyte[sql]` explicitly installs `sqlalchemy` alongside `sqlmodel`, `asyncpg`, and `aiosqlite`, and the `all` extra includes that same SQL stack.
18
+ - Fixed the FastAPI example dependency surface to use `agentbyte[sql,azureopenai]` for Agentbyte-managed SQL and Azure OpenAI support, while removing redundant direct `azure-identity` and `greenlet` declarations.
19
+
20
+ ## [0.22.5] - 2026-07-08
21
+
22
+ ### Fixed
23
+
24
+ - Fixed file-backed skill resources to load eagerly during `FileSkillsSource.get_skills()`, so runtime `read_skill_resource` calls return the agent-owned snapshot instead of rereading mutable files from disk.
25
+
7
26
  ## [0.22.4] - 2026-07-07
8
27
 
9
28
  ### Fixed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentbyte
3
- Version: 0.22.4
3
+ Version: 0.22.6
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
@@ -12,7 +12,9 @@ Requires-Dist: pydantic>=2.12.5
12
12
  Requires-Dist: pyyaml>=6.0.3
13
13
  Provides-Extra: all
14
14
  Requires-Dist: aioboto3>=15.5.0; extra == 'all'
15
+ Requires-Dist: aiosqlite>=0.22.1; extra == 'all'
15
16
  Requires-Dist: arxiv>=2.1; extra == 'all'
17
+ Requires-Dist: asyncpg>=0.31.0; extra == 'all'
16
18
  Requires-Dist: azure-identity>=1.25.1; extra == 'all'
17
19
  Requires-Dist: beautifulsoup4>=4.12; extra == 'all'
18
20
  Requires-Dist: fastapi>=0.135.2; extra == 'all'
@@ -22,6 +24,8 @@ Requires-Dist: openai>=1.107.1; extra == 'all'
22
24
  Requires-Dist: opentelemetry-api>=1.39.1; extra == 'all'
23
25
  Requires-Dist: opentelemetry-exporter-otlp-proto-http>=1.39.1; extra == 'all'
24
26
  Requires-Dist: opentelemetry-sdk>=1.39.1; extra == 'all'
27
+ Requires-Dist: sqlalchemy>=2.0.43; extra == 'all'
28
+ Requires-Dist: sqlmodel>=0.0.38; extra == 'all'
25
29
  Requires-Dist: uvicorn>=0.42.0; extra == 'all'
26
30
  Requires-Dist: youtube-transcript-api>=0.6; extra == 'all'
27
31
  Provides-Extra: aws
@@ -54,6 +58,7 @@ Requires-Dist: youtube-transcript-api>=0.6; extra == 'research'
54
58
  Provides-Extra: sql
55
59
  Requires-Dist: aiosqlite>=0.22.1; extra == 'sql'
56
60
  Requires-Dist: asyncpg>=0.31.0; extra == 'sql'
61
+ Requires-Dist: sqlalchemy>=2.0.43; extra == 'sql'
57
62
  Requires-Dist: sqlmodel>=0.0.38; extra == 'sql'
58
63
  Provides-Extra: test
59
64
  Requires-Dist: aiosqlite>=0.22.1; extra == 'test'
@@ -78,7 +83,7 @@ Description-Content-Type: text/markdown
78
83
 
79
84
  Agentbyte is an observability-first agentic AI framework for building and studying multiagent systems with a learning-first, implementation-oriented workflow.
80
85
 
81
- Current release: **0.22.4**
86
+ Current release: **0.22.6**
82
87
 
83
88
  ## Current Capabilities
84
89
 
@@ -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.22.4**
5
+ Current release: **0.22.6**
6
6
 
7
7
  ## Current Capabilities
8
8
 
@@ -42,6 +42,7 @@ dataset = [
42
42
  "aiosqlite>=0.22.1",
43
43
  ]
44
44
  sql = [
45
+ "sqlalchemy>=2.0.43",
45
46
  "sqlmodel>=0.0.38",
46
47
  "asyncpg>=0.31.0",
47
48
  "aiosqlite>=0.22.1",
@@ -82,6 +83,10 @@ all = [
82
83
  "openai>=1.107.1",
83
84
  "azure-identity>=1.25.1",
84
85
  "aioboto3>=15.5.0",
86
+ "sqlalchemy>=2.0.43",
87
+ "sqlmodel>=0.0.38",
88
+ "asyncpg>=0.31.0",
89
+ "aiosqlite>=0.22.1",
85
90
  "opentelemetry-api>=1.39.1",
86
91
  "opentelemetry-exporter-otlp-proto-http>=1.39.1",
87
92
  "opentelemetry-sdk>=1.39.1",
@@ -109,7 +114,7 @@ path = "src/agentbyte/__about__.py"
109
114
  packages = ["src/agentbyte"]
110
115
 
111
116
  [tool.hatch.build.targets.sdist]
112
- include = ["/src", "/tests", "/README.md", "/LICENSE", "/CHANGELOG.md", "/src/agentbyte/webui/ui", "/src/agentbyte/microwebui/ui"]
117
+ include = ["/src", "/tests", "/README.md", "/LICENSE", "/CHANGELOG.md", "/src/agentbyte/webui/ui"]
113
118
 
114
119
  [dependency-groups]
115
120
  openai = [
@@ -146,6 +151,7 @@ dataset = [
146
151
  "aiosqlite>=0.22.1",
147
152
  ]
148
153
  sql = [
154
+ "sqlalchemy>=2.0.43",
149
155
  "sqlmodel>=0.0.38",
150
156
  "asyncpg>=0.31.0",
151
157
  "aiosqlite>=0.22.1",
@@ -181,6 +187,9 @@ all = [
181
187
  "openai>=1.107.1",
182
188
  "azure-identity>=1.25.1",
183
189
  "aioboto3>=15.5.0",
190
+ "sqlalchemy>=2.0.43",
191
+ "sqlmodel>=0.0.38",
192
+ "asyncpg>=0.31.0",
184
193
  "aiosqlite>=0.22.1",
185
194
  "opentelemetry-api>=1.39.1",
186
195
  "opentelemetry-exporter-otlp-proto-http>=1.39.1",
@@ -0,0 +1,2 @@
1
+ __version__ = "0.22.6"
2
+ VERSION = __version__
@@ -5,7 +5,7 @@ import os
5
5
  import re
6
6
  from abc import ABC, abstractmethod
7
7
  from pathlib import Path
8
- from typing import Any, Callable, Sequence
8
+ from typing import Callable, Sequence
9
9
 
10
10
  from agentbyte.skills.base import FileSkill, Skill
11
11
  from agentbyte.skills.resources import InlineSkillResource
@@ -79,7 +79,7 @@ class FileSkillsSource(SkillsSource):
79
79
  resources = [
80
80
  InlineSkillResource(
81
81
  name=rf,
82
- function=self._make_file_reader(os.path.join(skill_dir, rf)),
82
+ content=Path(os.path.join(skill_dir, rf)).read_text(encoding="utf-8"),
83
83
  )
84
84
  for rf in resource_files
85
85
  ]
@@ -101,13 +101,6 @@ class FileSkillsSource(SkillsSource):
101
101
  )
102
102
  return list(skills.values())
103
103
 
104
- @staticmethod
105
- def _make_file_reader(full_path: str) -> Callable[..., Any]:
106
- def read(**kwargs: Any) -> str:
107
- with open(full_path, encoding="utf-8") as f:
108
- return f.read()
109
- return read
110
-
111
104
  @staticmethod
112
105
  def _discover_skill_directories(root_paths: list[str]) -> list[str]:
113
106
  discovered: list[str] = []
@@ -107,6 +107,22 @@ class TestFileSkillsSource:
107
107
  skills = await source.get_skills()
108
108
  assert len(skills[0].resources) == 1
109
109
 
110
+ @pytest.mark.asyncio
111
+ async def test_resource_content_is_loaded_once_when_skills_are_created(
112
+ self, tmp_path: Path
113
+ ) -> None:
114
+ skill_dir = _write_skill_md(tmp_path, "sql-query", "SQL")
115
+ resource_path = skill_dir / "tables.json"
116
+ resource_path.write_text('{"version": 1}')
117
+
118
+ source = FileSkillsSource(str(tmp_path))
119
+ skills = await source.get_skills()
120
+
121
+ resource_path.write_text('{"version": 2}')
122
+
123
+ content = await skills[0].resources[0].read()
124
+ assert content == '{"version": 1}'
125
+
110
126
  @pytest.mark.asyncio
111
127
  async def test_auto_discovers_script_files(self, tmp_path: Path) -> None:
112
128
  skill_dir = _write_skill_md(tmp_path, "sql-query", "SQL")
@@ -1,2 +0,0 @@
1
- __version__ = "0.22.4"
2
- VERSION = __version__
@@ -1,9 +0,0 @@
1
- """Minimal built-in web UI for small Agentbyte demos."""
2
-
3
- from agentbyte.microwebui.server import MicroWebUIServer, create_app, serve
4
-
5
- __all__ = [
6
- "MicroWebUIServer",
7
- "create_app",
8
- "serve",
9
- ]
@@ -1,312 +0,0 @@
1
- """Minimal FastAPI-based web UI for small Agentbyte demos."""
2
-
3
- from __future__ import annotations
4
-
5
- import json
6
- from collections.abc import Iterable, Sequence
7
- from pathlib import Path
8
- from typing import Any
9
- from uuid import uuid4
10
-
11
- from agentbyte import InMemorySessionStore
12
- from agentbyte.agents import Agent, AgentResponse
13
- from agentbyte.context import AgentContext
14
- from pydantic import BaseModel
15
-
16
- EVENT_STREAM_KEY = "microwebui_event_stream"
17
- RUN_COUNTER_KEY = "microwebui_run_counter"
18
- UI_INDEX = Path(__file__).resolve().parent / "ui" / "index.html"
19
- NO_CACHE_HEADERS = {
20
- "Cache-Control": "no-store, no-cache, must-revalidate, max-age=0",
21
- "Pragma": "no-cache",
22
- "Expires": "0",
23
- }
24
-
25
-
26
- def _require_fastapi() -> tuple[Any, Any, Any, Any, Any]:
27
- try:
28
- from fastapi import FastAPI, HTTPException
29
- from fastapi.responses import FileResponse
30
- from fastapi.sse import EventSourceResponse, ServerSentEvent
31
- except ImportError as exc:
32
- raise RuntimeError(
33
- "Agentbyte microwebui requires optional dependencies. "
34
- "Install with `uv sync --extra webui` or `pip install agentbyte[webui]`."
35
- ) from exc
36
- return FastAPI, HTTPException, FileResponse, EventSourceResponse, ServerSentEvent
37
-
38
-
39
- class ChatRequest(BaseModel):
40
- """Incoming chat payload."""
41
-
42
- message: str
43
- session_id: str | None = None
44
- agent_name: str | None = None
45
- user_id: str | None = None
46
-
47
-
48
- class AgentSummary(BaseModel):
49
- """Compact agent metadata for the discovery dropdown."""
50
-
51
- name: str
52
- description: str
53
- default: bool = False
54
-
55
-
56
- class SessionSummary(BaseModel):
57
- """Compact session metadata for the session picker."""
58
-
59
- session_id: str
60
- message_count: int
61
- created_at: str | None = None
62
- updated_at: str | None = None
63
- preview: str | None = None
64
-
65
-
66
- class SessionEvent(BaseModel):
67
- """Stored SSE-style event payload for a past run."""
68
-
69
- run_index: int
70
- run_label: str
71
- prompt: str
72
- agent_name: str
73
- event: dict[str, Any]
74
-
75
-
76
- def _serialize_stream_item(item: Any) -> str:
77
- """Serialize Agentbyte stream items to JSON for SSE output."""
78
- if hasattr(item, "model_dump_json"):
79
- return item.model_dump_json()
80
-
81
- if hasattr(item, "model_dump"):
82
- return json.dumps(item.model_dump(mode="json"))
83
-
84
- return json.dumps(
85
- {
86
- "event_type": "unknown",
87
- "content": str(item),
88
- "python_type": type(item).__name__,
89
- }
90
- )
91
-
92
-
93
- def _parse_stream_item(item: Any) -> dict[str, Any]:
94
- """Parse a stream item into a JSON-friendly dict."""
95
- return json.loads(_serialize_stream_item(item))
96
-
97
-
98
- def _iter_visible_messages(context: AgentContext) -> Iterable[dict[str, Any]]:
99
- """Yield user/assistant/tool messages with JSON-friendly shape."""
100
- for message in context.messages:
101
- if hasattr(message, "model_dump"):
102
- yield message.model_dump(mode="json")
103
-
104
-
105
- def _session_preview(context: AgentContext) -> str | None:
106
- """Return a short preview for a stored session."""
107
- for message in context.messages:
108
- role = getattr(message, "role", None)
109
- content = getattr(message, "content", None)
110
- if role == "user" and content:
111
- return str(content)[:72]
112
- return None
113
-
114
-
115
- def _stored_event_stream(context: AgentContext) -> list[dict[str, Any]]:
116
- """Return the stored event stream list from session metadata."""
117
- events = context.metadata.get(EVENT_STREAM_KEY, [])
118
- return events if isinstance(events, list) else []
119
-
120
-
121
- def _next_run_index(context: AgentContext) -> int:
122
- """Return the next run index for this stored session."""
123
- current_value = context.metadata.get(RUN_COUNTER_KEY, 0)
124
- return int(current_value) + 1
125
-
126
-
127
- class MicroWebUIServer:
128
- """Serve a small multi-agent web UI from a list of Agent objects."""
129
-
130
- def __init__(self, entities: Sequence[Agent]) -> None:
131
- if not entities:
132
- raise ValueError("microwebui requires at least one agent")
133
-
134
- self.entities = list(entities)
135
- self.entity_lookup = {entity.name: entity for entity in self.entities}
136
- self.session_store = InMemorySessionStore()
137
-
138
- def default_agent(self) -> Agent:
139
- """Return the first registered agent as the default selection."""
140
- return self.entities[0]
141
-
142
- def resolve_agent(self, agent_name: str | None, http_exception: Any) -> Agent:
143
- """Resolve a requested agent name or fall back to the default agent."""
144
- if agent_name is None:
145
- return self.default_agent()
146
-
147
- agent = self.entity_lookup.get(agent_name)
148
- if agent is None:
149
- raise http_exception(status_code=404, detail=f"Unknown agent: {agent_name}")
150
- return agent
151
-
152
- async def stream_agent_events(
153
- self,
154
- message: str,
155
- session_id: str | None,
156
- agent_name: str | None,
157
- user_id: str | None,
158
- http_exception: Any,
159
- server_sent_event: Any,
160
- ):
161
- """Stream agent execution as SSE and persist emitted events in memory."""
162
- selected_agent = self.resolve_agent(agent_name, http_exception)
163
- effective_session_id = session_id or str(uuid4())
164
- context = await self.session_store.get(effective_session_id)
165
- if context is None:
166
- context = AgentContext(session_id=effective_session_id, user_id=user_id)
167
- else:
168
- context.session_id = effective_session_id
169
- if user_id is not None:
170
- context.user_id = user_id
171
-
172
- current_run_index = _next_run_index(context)
173
- current_run_events: list[SessionEvent] = []
174
-
175
- async for event in selected_agent.run_stream(
176
- message,
177
- context=context,
178
- verbose=True,
179
- stream_tokens=True,
180
- ):
181
- event_payload = _parse_stream_item(event)
182
- current_run_events.append(
183
- SessionEvent(
184
- run_index=current_run_index,
185
- run_label=f"Run {current_run_index}",
186
- prompt=message,
187
- agent_name=selected_agent.name,
188
- event=event_payload,
189
- )
190
- )
191
- if isinstance(event, AgentResponse):
192
- event.context.metadata[EVENT_STREAM_KEY] = [
193
- *_stored_event_stream(event.context),
194
- *(stored_event.model_dump(mode="json") for stored_event in current_run_events),
195
- ]
196
- event.context.metadata[RUN_COUNTER_KEY] = current_run_index
197
- await self.session_store.save(effective_session_id, event.context)
198
- yield server_sent_event(data=event_payload)
199
-
200
- def create_app(self) -> Any:
201
- """Build the FastAPI application for the microwebui server."""
202
- FastAPI, HTTPException, FileResponse, EventSourceResponse, ServerSentEvent = (
203
- _require_fastapi()
204
- )
205
-
206
- app = FastAPI(title="Agentbyte MicroWebUI")
207
-
208
- @app.post("/chat/stream", response_class=EventSourceResponse)
209
- async def chat_stream(request: ChatRequest) -> Any:
210
- async for event in self.stream_agent_events(
211
- request.message,
212
- request.session_id,
213
- request.agent_name,
214
- request.user_id,
215
- HTTPException,
216
- ServerSentEvent,
217
- ):
218
- yield event
219
-
220
- @app.get("/api/agents")
221
- async def list_agents() -> list[AgentSummary]:
222
- default_name = self.default_agent().name
223
- return [
224
- AgentSummary(
225
- name=agent.name,
226
- description=getattr(agent, "description", "") or "",
227
- default=agent.name == default_name,
228
- )
229
- for agent in self.entities
230
- ]
231
-
232
- @app.get("/api/sessions")
233
- async def list_sessions(user_id: str | None = None) -> list[SessionSummary]:
234
- session_items = (
235
- await self.session_store.list_by_user(user_id)
236
- if user_id
237
- else await self.session_store.list()
238
- )
239
- sessions = [
240
- SessionSummary(
241
- session_id=session_id,
242
- message_count=len(context.messages),
243
- created_at=context.created_at.isoformat() if context.created_at else None,
244
- updated_at=context.updated_at.isoformat() if context.updated_at else None,
245
- preview=_session_preview(context),
246
- )
247
- for session_id, context in session_items
248
- ]
249
- sessions.sort(
250
- key=lambda session: session.updated_at or session.created_at or "",
251
- reverse=True,
252
- )
253
- return sessions
254
-
255
- @app.get("/api/sessions/{session_id}")
256
- async def get_session(session_id: str) -> dict[str, Any]:
257
- context = await self.session_store.get(session_id)
258
- if context is None:
259
- raise HTTPException(status_code=404, detail="Session not found")
260
-
261
- return {
262
- "session_id": session_id,
263
- "message_count": len(context.messages),
264
- "context": context.model_dump(mode="json"),
265
- "visible_messages": list(_iter_visible_messages(context)),
266
- }
267
-
268
- @app.get("/api/sessions/{session_id}/events")
269
- async def get_session_events(session_id: str) -> dict[str, Any]:
270
- context = await self.session_store.get(session_id)
271
- if context is None:
272
- raise HTTPException(status_code=404, detail="Session not found")
273
-
274
- events = _stored_event_stream(context)
275
- return {
276
- "session_id": session_id,
277
- "event_count": len(events),
278
- "events": events,
279
- }
280
-
281
- @app.get("/")
282
- async def serve_frontend() -> Any:
283
- return FileResponse(UI_INDEX, headers=NO_CACHE_HEADERS)
284
-
285
- return app
286
-
287
- def serve(self, host: str = "127.0.0.1", port: int = 8070) -> None:
288
- """Run the microwebui application with uvicorn."""
289
- try:
290
- import uvicorn
291
- except ImportError as exc:
292
- raise RuntimeError(
293
- "Agentbyte microwebui requires optional dependencies. "
294
- "Install with `uv sync --extra webui` or `pip install agentbyte[webui]`."
295
- ) from exc
296
-
297
- print(f"Starting Agentbyte MicroWebUI on http://{host}:{port}/")
298
- uvicorn.run(self.create_app(), host=host, port=port)
299
-
300
-
301
- def create_app(entities: Sequence[Agent]) -> Any:
302
- """Create a FastAPI app for the given list of agents."""
303
- return MicroWebUIServer(entities).create_app()
304
-
305
-
306
- def serve(
307
- entities: Sequence[Agent],
308
- host: str = "127.0.0.1",
309
- port: int = 8070,
310
- ) -> None:
311
- """Serve a minimal built-in web UI for the given list of agents."""
312
- MicroWebUIServer(entities).serve(host=host, port=port)