agentbyte 0.32.2__tar.gz → 0.33.0__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 (366) hide show
  1. {agentbyte-0.32.2 → agentbyte-0.33.0}/CHANGELOG.md +30 -0
  2. {agentbyte-0.32.2 → agentbyte-0.33.0}/PKG-INFO +36 -65
  3. {agentbyte-0.32.2 → agentbyte-0.33.0}/README.md +31 -42
  4. agentbyte-0.33.0/pyproject.toml +112 -0
  5. agentbyte-0.33.0/src/agentbyte/__about__.py +2 -0
  6. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/__init__.py +2 -0
  7. agentbyte-0.33.0/src/agentbyte/_optional.py +39 -0
  8. agentbyte-0.33.0/src/agentbyte/cli/__main__.py +6 -0
  9. agentbyte-0.33.0/src/agentbyte/cli/eval_commands.py +245 -0
  10. agentbyte-0.33.0/src/agentbyte/cli/loading.py +49 -0
  11. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/cli/main.py +59 -28
  12. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/compaction/counters.py +3 -3
  13. agentbyte-0.33.0/src/agentbyte/dataset/_aiosqlite.py +31 -0
  14. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/dataset/importer.py +5 -3
  15. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/dataset/publish.py +2 -2
  16. agentbyte-0.33.0/src/agentbyte/dataset/publishers.py +84 -0
  17. agentbyte-0.33.0/src/agentbyte/dataset/s3.py +71 -0
  18. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/dataset/sources.py +22 -75
  19. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/dataset/sqlite.py +2 -3
  20. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/dataset/sqlite_db.py +6 -9
  21. agentbyte-0.33.0/src/agentbyte/dataset/writers.py +70 -0
  22. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/eval/eval_dataset.py +3 -3
  23. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/eval/history/recorder.py +81 -18
  24. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/eval/history/sql.py +10 -3
  25. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/eval/history/sqlite.py +2 -1
  26. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/eval/history/transitions.py +5 -0
  27. agentbyte-0.33.0/src/agentbyte/eval/workbench/__init__.py +42 -0
  28. agentbyte-0.33.0/src/agentbyte/eval/workbench/coordinator.py +249 -0
  29. agentbyte-0.33.0/src/agentbyte/eval/workbench/jobs.py +291 -0
  30. agentbyte-0.33.0/src/agentbyte/eval/workbench/smoke.py +89 -0
  31. agentbyte-0.33.0/src/agentbyte/eval/workbench/smoke_tasks.json +11 -0
  32. agentbyte-0.33.0/src/agentbyte/eval/workbench/suite.py +151 -0
  33. agentbyte-0.33.0/src/agentbyte/eval/workbench/verdict.py +172 -0
  34. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/llm/__init__.py +4 -8
  35. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/llm/azure/auth.py +5 -10
  36. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/llm/azure/chat.py +3 -3
  37. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/llm/azure/embedding.py +3 -3
  38. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/middleware/otel.py +2 -2
  39. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/middleware/sql_usage.py +10 -3
  40. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/optim/gepa.py +2 -5
  41. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/tools/research_tools.py +4 -7
  42. agentbyte-0.33.0/src/agentbyte/webui/eval_routes.py +178 -0
  43. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/webui/server.py +86 -14
  44. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/workflow/sqlite_checkpoint.py +2 -1
  45. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/workflow/visualizer.py +3 -4
  46. agentbyte-0.33.0/tests/cli/test_loading.py +65 -0
  47. agentbyte-0.33.0/tests/dataset/fake_s3.py +92 -0
  48. agentbyte-0.33.0/tests/dataset/test_dataset_exit.py +66 -0
  49. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/dataset/test_loader.py +11 -25
  50. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/dataset/test_publish.py +81 -58
  51. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/dataset/test_sqlite_db.py +5 -19
  52. agentbyte-0.33.0/tests/eval/test_eval_jobs.py +391 -0
  53. agentbyte-0.33.0/tests/eval/test_eval_workbench.py +455 -0
  54. agentbyte-0.33.0/tests/test_optional_extras.py +139 -0
  55. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/test_package_api.py +1 -2
  56. agentbyte-0.33.0/tests/webui/test_eval_routes.py +316 -0
  57. agentbyte-0.32.2/pyproject.toml +0 -224
  58. agentbyte-0.32.2/src/agentbyte/__about__.py +0 -2
  59. agentbyte-0.32.2/src/agentbyte/dataset/publishers.py +0 -131
  60. agentbyte-0.32.2/src/agentbyte/dataset/writers.py +0 -99
  61. {agentbyte-0.32.2 → agentbyte-0.33.0}/.gitignore +0 -0
  62. {agentbyte-0.32.2 → agentbyte-0.33.0}/LICENSE +0 -0
  63. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/agents/__init__.py +0 -0
  64. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/agents/agent.py +0 -0
  65. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/agents/agent_as_tool.py +0 -0
  66. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/agents/base.py +0 -0
  67. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/agents/embedding_agent.py +0 -0
  68. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/agents/types.py +0 -0
  69. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/cancellation_token.py +0 -0
  70. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/catalog.py +0 -0
  71. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/cli/__init__.py +0 -0
  72. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/compaction/__init__.py +0 -0
  73. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/compaction/errors.py +0 -0
  74. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/compaction/grouping.py +0 -0
  75. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/compaction/strategies.py +0 -0
  76. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/component.py +0 -0
  77. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/context.py +0 -0
  78. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/context_providers/__init__.py +0 -0
  79. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/context_providers/base.py +0 -0
  80. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/context_providers/skill_tools.py +0 -0
  81. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/context_providers/skills.py +0 -0
  82. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/dataset/__init__.py +0 -0
  83. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/dataset/base.py +0 -0
  84. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/dataset/config.py +0 -0
  85. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/dataset/json.py +0 -0
  86. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/dataset/loader.py +0 -0
  87. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/dataset/publish_config.py +0 -0
  88. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/dataset/write_config.py +0 -0
  89. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/entity.py +0 -0
  90. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/eval/__init__.py +0 -0
  91. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/eval/base.py +0 -0
  92. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/eval/checks/__init__.py +0 -0
  93. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/eval/checks/decorator.py +0 -0
  94. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/eval/checks/keyword.py +0 -0
  95. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/eval/checks/local.py +0 -0
  96. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/eval/checks/process.py +0 -0
  97. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/eval/checks/tool.py +0 -0
  98. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/eval/checks/types.py +0 -0
  99. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/eval/comparison.py +0 -0
  100. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/eval/history/__init__.py +0 -0
  101. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/eval/history/conformance.py +0 -0
  102. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/eval/history/errors.py +0 -0
  103. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/eval/history/models.py +0 -0
  104. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/eval/history/store.py +0 -0
  105. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/eval/judges/__init__.py +0 -0
  106. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/eval/judges/base.py +0 -0
  107. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/eval/judges/composite.py +0 -0
  108. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/eval/judges/llm.py +0 -0
  109. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/eval/judges/pairwise.py +0 -0
  110. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/eval/judges/reference.py +0 -0
  111. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/eval/judges/trajectory.py +0 -0
  112. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/eval/judges/validation.py +0 -0
  113. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/eval/pairwise.py +0 -0
  114. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/eval/report.py +0 -0
  115. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/eval/runner.py +0 -0
  116. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/eval/splitting.py +0 -0
  117. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/eval/targets/__init__.py +0 -0
  118. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/eval/targets/agent.py +0 -0
  119. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/eval/targets/model.py +0 -0
  120. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/eval/targets/multi_turn.py +0 -0
  121. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/eval/targets/orchestrator.py +0 -0
  122. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/eval/targets/runtime.py +0 -0
  123. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/eval/targets/workflow.py +0 -0
  124. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/eval/types.py +0 -0
  125. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/execution_trace/__init__.py +0 -0
  126. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/execution_trace/collector.py +0 -0
  127. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/execution_trace/models.py +0 -0
  128. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/llm/_retry_observability.py +0 -0
  129. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/llm/auth.py +0 -0
  130. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/llm/azure/__init__.py +0 -0
  131. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/llm/azure/settings.py +0 -0
  132. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/llm/azure_openai.py +0 -0
  133. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/llm/azure_openai_embedding.py +0 -0
  134. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/llm/base.py +0 -0
  135. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/llm/embeddings_base.py +0 -0
  136. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/llm/openai/__init__.py +0 -0
  137. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/llm/openai/chat.py +0 -0
  138. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/llm/openai/embedding.py +0 -0
  139. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/llm/openai/settings.py +0 -0
  140. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/llm/openai_embedding.py +0 -0
  141. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/llm/pricing.py +0 -0
  142. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/llm/retry_policy.py +0 -0
  143. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/llm/settings.py +0 -0
  144. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/llm/types.py +0 -0
  145. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/logger.py +0 -0
  146. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/memory/__init__.py +0 -0
  147. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/memory/base.py +0 -0
  148. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/messages.py +0 -0
  149. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/middleware/__init__.py +0 -0
  150. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/middleware/base.py +0 -0
  151. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/middleware/retry.py +0 -0
  152. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/middleware/usage_logger.py +0 -0
  153. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/notebook.py +0 -0
  154. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/optim/__init__.py +0 -0
  155. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/optim/base.py +0 -0
  156. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/optim/config.py +0 -0
  157. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/optim/mipro.py +0 -0
  158. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/optim/pareto.py +0 -0
  159. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/optim/reflective.py +0 -0
  160. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/optim/spec.py +0 -0
  161. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/optim/trace.py +0 -0
  162. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/orchestration/__init__.py +0 -0
  163. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/orchestration/ai.py +0 -0
  164. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/orchestration/base.py +0 -0
  165. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/orchestration/handoff.py +0 -0
  166. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/orchestration/plan.py +0 -0
  167. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/orchestration/policies.py +0 -0
  168. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/orchestration/round_robin.py +0 -0
  169. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/presets/__init__.py +0 -0
  170. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/presets/agents.py +0 -0
  171. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/presets/clients.py +0 -0
  172. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/presets/instruction_registry.py +0 -0
  173. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/presets/instructions/orchestrator.yaml +0 -0
  174. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/presets/instructions/query_rewriter.yaml +0 -0
  175. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/presets/instructions/researcher.yaml +0 -0
  176. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/presets/instructions/reviewer.yaml +0 -0
  177. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/presets/instructions/writer.yaml +0 -0
  178. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/presets/orchestration.py +0 -0
  179. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/presets/skills/contracts-analyst/SKILL.md +0 -0
  180. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/presets/skills/hr-analyst/SKILL.md +0 -0
  181. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/presets/skills/hr-analyst/resources/departments.md +0 -0
  182. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/presets/skills/hr-analyst/resources/employees.md +0 -0
  183. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/presets/skills/hr-analyst/resources/payroll.md +0 -0
  184. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/presets/streaming.py +0 -0
  185. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/presets/workflow.py +0 -0
  186. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/session_store.py +0 -0
  187. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/skills/__init__.py +0 -0
  188. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/skills/base.py +0 -0
  189. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/skills/resources.py +0 -0
  190. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/skills/scripts.py +0 -0
  191. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/skills/sources.py +0 -0
  192. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/skills/validation.py +0 -0
  193. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/termination/__init__.py +0 -0
  194. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/termination/base.py +0 -0
  195. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/termination/cancellation.py +0 -0
  196. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/termination/composite.py +0 -0
  197. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/termination/consecutive_agent.py +0 -0
  198. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/termination/external.py +0 -0
  199. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/termination/function_call.py +0 -0
  200. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/termination/handoff.py +0 -0
  201. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/termination/max_message.py +0 -0
  202. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/termination/predicate.py +0 -0
  203. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/termination/source.py +0 -0
  204. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/termination/text_mention.py +0 -0
  205. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/termination/timeout.py +0 -0
  206. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/termination/token_usage.py +0 -0
  207. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/tools/__init__.py +0 -0
  208. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/tools/base.py +0 -0
  209. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/tools/coding_tools.py +0 -0
  210. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/tools/core_tools.py +0 -0
  211. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/tools/decorator.py +0 -0
  212. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/tools/memory_tool.py +0 -0
  213. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/types.py +0 -0
  214. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/webui/__init__.py +0 -0
  215. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/webui/discovery.py +0 -0
  216. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/webui/execution.py +0 -0
  217. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/webui/models.py +0 -0
  218. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/webui/registry.py +0 -0
  219. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/webui/session_store.py +0 -0
  220. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/webui/sessions.py +0 -0
  221. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/webui/ui/assets/index-BF3DwXaF.js +0 -0
  222. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/webui/ui/assets/index-ar5tOeqt.css +0 -0
  223. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/webui/ui/index.html +0 -0
  224. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/webui/ui/vite.svg +0 -0
  225. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/workflow/__init__.py +0 -0
  226. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/workflow/agent.py +0 -0
  227. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/workflow/core/__init__.py +0 -0
  228. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/workflow/core/_structure_hash.py +0 -0
  229. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/workflow/core/checkpoint.py +0 -0
  230. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/workflow/core/models.py +0 -0
  231. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/workflow/core/runner.py +0 -0
  232. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/workflow/core/workflow.py +0 -0
  233. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/workflow/defaults.py +0 -0
  234. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/workflow/errors.py +0 -0
  235. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/workflow/loader.py +0 -0
  236. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/workflow/schema.py +0 -0
  237. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/workflow/schema_utils.py +0 -0
  238. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/workflow/steps/__init__.py +0 -0
  239. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/workflow/steps/agent.py +0 -0
  240. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/workflow/steps/echo.py +0 -0
  241. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/workflow/steps/function.py +0 -0
  242. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/workflow/steps/http.py +0 -0
  243. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/workflow/steps/step.py +0 -0
  244. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/workflow/steps/subworkflow.py +0 -0
  245. {agentbyte-0.32.2 → agentbyte-0.33.0}/src/agentbyte/workflow/steps/transform.py +0 -0
  246. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/agents/test_agent_as_tool.py +0 -0
  247. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/agents/test_agent_basic.py +0 -0
  248. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/agents/test_agent_context_providers.py +0 -0
  249. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/agents/test_agent_error_response.py +0 -0
  250. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/agents/test_agent_event_types.py +0 -0
  251. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/agents/test_agent_memory_integration.py +0 -0
  252. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/agents/test_agent_middleware_integration.py +0 -0
  253. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/agents/test_agent_response_accessors.py +0 -0
  254. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/agents/test_agent_retry_middleware.py +0 -0
  255. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/agents/test_agent_stream_events.py +0 -0
  256. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/agents/test_embedding_agent.py +0 -0
  257. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/agents/test_tool_approval.py +0 -0
  258. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/agents/test_tool_batch_resolution.py +0 -0
  259. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/agents/test_tool_metadata.py +0 -0
  260. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/cli/test_registry_check.py +0 -0
  261. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/compaction/test_compaction.py +0 -0
  262. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/context_providers/__init__.py +0 -0
  263. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/context_providers/test_skill_tools.py +0 -0
  264. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/context_providers/test_skills_provider.py +0 -0
  265. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/dataset/test_multi_table.py +0 -0
  266. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/eval/test_eval_dataset.py +0 -0
  267. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/eval/test_eval_history.py +0 -0
  268. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/eval/test_eval_history_backends.py +0 -0
  269. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/eval/test_execution_trajectories.py +0 -0
  270. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/eval/test_multi_turn.py +0 -0
  271. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/eval/test_pairwise.py +0 -0
  272. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/eval/test_phase1_runner_and_targets.py +0 -0
  273. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/eval/test_phase2_checks_and_reports.py +0 -0
  274. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/eval/test_score_integrity.py +0 -0
  275. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/eval/test_splitting.py +0 -0
  276. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/eval/test_types_and_judges.py +0 -0
  277. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/examples/test_compaction_webapp.py +0 -0
  278. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/llm/test_azure_client.py +0 -0
  279. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/llm/test_azure_embedding_client.py +0 -0
  280. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/llm/test_llm_types.py +0 -0
  281. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/llm/test_openai_client.py +0 -0
  282. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/llm/test_openai_embedding_client.py +0 -0
  283. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/llm/test_pricing.py +0 -0
  284. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/llm/test_retry_observability.py +0 -0
  285. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/llm/test_retry_policy_api.py +0 -0
  286. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/llm/test_retryable_error_substrings.py +0 -0
  287. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/memory/test_memory.py +0 -0
  288. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/middleware/test_context_compaction.py +0 -0
  289. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/middleware/test_deduplicate_tool_result.py +0 -0
  290. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/middleware/test_middleware_chain.py +0 -0
  291. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/middleware/test_otel.py +0 -0
  292. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/middleware/test_retry_middleware.py +0 -0
  293. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/middleware/test_sql_usage.py +0 -0
  294. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/middleware/test_usage_logger.py +0 -0
  295. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/optim/__init__.py +0 -0
  296. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/optim/test_base.py +0 -0
  297. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/optim/test_base_integration.py +0 -0
  298. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/optim/test_config.py +0 -0
  299. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/optim/test_gepa.py +0 -0
  300. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/optim/test_mipro.py +0 -0
  301. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/optim/test_pareto.py +0 -0
  302. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/optim/test_reflective.py +0 -0
  303. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/optim/test_score_integrity.py +0 -0
  304. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/optim/test_spec.py +0 -0
  305. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/optim/test_trace.py +0 -0
  306. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/orchestration/test_ai_orchestrator.py +0 -0
  307. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/orchestration/test_base_orchestrator.py +0 -0
  308. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/orchestration/test_handoff_orchestrator.py +0 -0
  309. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/orchestration/test_orchestrator_finalization.py +0 -0
  310. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/orchestration/test_plan_orchestrator.py +0 -0
  311. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/orchestration/test_round_robin.py +0 -0
  312. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/presets/test_agents.py +0 -0
  313. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/presets/test_clients.py +0 -0
  314. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/presets/test_instruction_registry.py +0 -0
  315. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/presets/test_orchestration.py +0 -0
  316. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/presets/test_streaming.py +0 -0
  317. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/presets/test_workflow.py +0 -0
  318. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/skills/__init__.py +0 -0
  319. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/skills/test_base.py +0 -0
  320. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/skills/test_resources.py +0 -0
  321. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/skills/test_scripts.py +0 -0
  322. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/skills/test_sources.py +0 -0
  323. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/termination/test_base.py +0 -0
  324. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/termination/test_cancellation.py +0 -0
  325. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/termination/test_composite.py +0 -0
  326. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/termination/test_consecutive_agent.py +0 -0
  327. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/termination/test_external.py +0 -0
  328. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/termination/test_function_call.py +0 -0
  329. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/termination/test_handoff.py +0 -0
  330. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/termination/test_max_message.py +0 -0
  331. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/termination/test_predicate.py +0 -0
  332. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/termination/test_source.py +0 -0
  333. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/termination/test_text_mention.py +0 -0
  334. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/termination/test_timeout.py +0 -0
  335. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/termination/test_token_usage.py +0 -0
  336. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/test_cancellation_token.py +0 -0
  337. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/test_context.py +0 -0
  338. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/test_logger.py +0 -0
  339. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/test_messages.py +0 -0
  340. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/test_session_store.py +0 -0
  341. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/test_types.py +0 -0
  342. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/test_vanilla_chunker.py +0 -0
  343. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/tools/test_coding_tools.py +0 -0
  344. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/tools/test_memory_tool.py +0 -0
  345. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/tools/test_research_tools.py +0 -0
  346. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/tools/test_tools.py +0 -0
  347. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/webui/__init__.py +0 -0
  348. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/webui/helpers.py +0 -0
  349. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/webui/test_execution.py +0 -0
  350. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/webui/test_package_api.py +0 -0
  351. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/webui/test_registry.py +0 -0
  352. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/webui/test_server.py +0 -0
  353. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/webui/test_sessions.py +0 -0
  354. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/webui/test_workflow_streaming.py +0 -0
  355. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/workflow/recovery_worker.py +0 -0
  356. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/workflow/test_agent_step_imports.py +0 -0
  357. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/workflow/test_checkpoint.py +0 -0
  358. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/workflow/test_subworkflow_step.py +0 -0
  359. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/workflow/test_workflow_agent.py +0 -0
  360. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/workflow/test_workflow_class.py +0 -0
  361. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/workflow/test_workflow_models.py +0 -0
  362. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/workflow/test_workflow_reliability.py +0 -0
  363. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/workflow/test_workflow_runner.py +0 -0
  364. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/workflow/test_workflow_schema.py +0 -0
  365. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/workflow/test_workflow_steps.py +0 -0
  366. {agentbyte-0.32.2 → agentbyte-0.33.0}/tests/workflow/test_workflow_visualizer.py +0 -0
@@ -6,6 +6,36 @@ The format follows Keep a Changelog principles and semantic versioning.
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.33.0] - 2026-10-01
10
+
11
+ Upgrade notes (breaking):
12
+
13
+ - Removed the `test`, `dev` and `coding` extras; they only held contributor tooling. Contributors use `uv sync --all-extras --all-groups`.
14
+ - S3 datasets use native async `aioboto3` (`aws` extra) instead of synchronous `boto3`. `DatasetWriter.write_files`/`dataset_exists`, `DatasetPublisher.publish_dataset` and `agentbyte.dataset.publish_dataset` are now coroutines: `await` them, and make custom writers/publishers `async def`. A `client=` passed to `S3DatasetSource`, `S3DatasetWriter` or `S3DatasetPublisher` must be an async S3 client; it is used as-is and never closed.
15
+ - A missing optional dependency now raises `agentbyte.MissingExtraError` (a `ModuleNotFoundError`) everywhere. The WebUI and `WorkflowVisualizer.to_dot()` previously raised `RuntimeError`.
16
+
17
+ ### Added
18
+
19
+ - Evaluation workbench, step 1 (spec 0052): `agentbyte.eval.workbench` with `EvalSuite`, `EvalSuiteRegistry`, `EvalSuiteCoordinator` and pass/fail verdicts (`SuiteRunSummary`); an item passes only when execution completed, the judge scored it and `overall >= min_score`. New CLI `agentbyte eval list|run|results` (exit codes 0 passed, 1 failed/incomplete, 2 configuration/storage error, 130 interrupted) and a packaged, provider-free `smoke` suite. `EvalRunRecorder.evaluate`/`evaluate_stream` accept `on_start`. `python -m agentbyte.cli` works.
20
+ - Evaluation workbench, step 2 (spec 0052): HTTP job lifecycle. `EvalJobManager` runs suites in the background (one active, ten queued); admission is idempotent per owner and key and atomic in the store, a full queue is rejected without a record, cancel is idempotent, shutdown commits owned jobs as `cancelled` and startup marks leftovers `interrupted`. WebUI routes under `/api/eval` (suites, runs, items, SSE `snapshot` events keyed by run revision, cancel), enabled by `AgentbyteWebUIServer(eval_store=... | eval_history=..., eval_registry=...)` or `agentbyte webui --eval-history PATH [--eval-catalog module:registry]`. `EvalRunRecorder.admit()`/`execute_stream()` split admission from execution; `SuiteRunSummary.revision`.
21
+ - Evaluation workbench docs: study guide `docs/study/05-eval_topics/05_topic_eval_workbench.md`, offline example catalog `examples/eval/workbench_catalog.py` and notebook `notebooks/usecases/eval/05-eval-workbench.ipynb`.
22
+ - `tiktoken` extra for `TiktokenCounter`.
23
+ - `agentbyte.MissingExtraError`: one error type and message format ("<feature> needs the '<extra>' extra: pip install 'agentbyte[<extra>]'") for every optional dependency, via `agentbyte._optional.require`.
24
+ - `agentbyte.cli.loading.import_object(reference, expected_type)`: one loader for `module.path:object` CLI arguments.
25
+
26
+ ### Changed
27
+
28
+ - CLI `--catalog` / `registry check` references are imported like `python -m`: modules in the current working directory are found without installing them.
29
+ - Evaluation history idempotency: reusing a key now also requires the same capture, criteria, labels, judge and target fingerprint; otherwise `EvalHistoryConflictError`.
30
+ - README "Installation" is now one table of extras, what they install and which features need them.
31
+ - The S3 dataset importer no longer wraps writer calls in `asyncio.to_thread`.
32
+ - `all` (and `sql`) are composed from the other extras by reference, so they can no longer drift. Dependency groups now hold only local tooling (`test`, `dev`, `experiment`); groups that mirrored extras and the unused `extlib` group (Microsoft Agent Framework packages) were removed.
33
+
34
+ ### Fixed
35
+
36
+ - SQLite datasets (`sqlite`, `sqlite_db` engines) no longer keep a script from exiting when they are not closed: their cached aiosqlite connection runs on a daemon thread. `aclose()` / `async with` remain the way to release them promptly.
37
+ - Use-case notebooks (eval 01–04, workflow 01–02) updated for the current async dataset, eval-dataset and judge-integrity APIs; the repository's `contracting/metadata26` eval dataset was re-saved with the current schema (`metadata` column). OTel install hints now say `uv sync --extra otel`.
38
+
9
39
  ## [0.32.2] - 2026-10-01
10
40
 
11
41
  ### Fixed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: agentbyte
3
- Version: 0.32.2
3
+ Version: 0.33.0
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
@@ -27,22 +27,14 @@ Requires-Dist: opentelemetry-exporter-otlp-proto-http>=1.39.1; extra == 'all'
27
27
  Requires-Dist: opentelemetry-sdk>=1.39.1; extra == 'all'
28
28
  Requires-Dist: sqlalchemy[asyncio]>=2.0.43; extra == 'all'
29
29
  Requires-Dist: sqlmodel>=0.0.38; extra == 'all'
30
- Requires-Dist: uvicorn>=0.42.0; extra == 'all'
30
+ Requires-Dist: tiktoken>=0.9.0; extra == 'all'
31
+ Requires-Dist: uvicorn[standard]>=0.44.0; extra == 'all'
31
32
  Requires-Dist: youtube-transcript-api>=0.6; extra == 'all'
32
33
  Provides-Extra: aws
33
34
  Requires-Dist: aioboto3>=15.5.0; extra == 'aws'
34
35
  Provides-Extra: azureopenai
35
36
  Requires-Dist: azure-identity>=1.25.1; extra == 'azureopenai'
36
37
  Requires-Dist: openai>=1.107.1; extra == 'azureopenai'
37
- Provides-Extra: coding
38
- Provides-Extra: dev
39
- Requires-Dist: ipykernel>=7.1.0; extra == 'dev'
40
- Requires-Dist: nbclient>=0.10.4; extra == 'dev'
41
- Requires-Dist: nbformat>=5.10.4; extra == 'dev'
42
- Requires-Dist: picoagents>=0.4.0; extra == 'dev'
43
- Requires-Dist: pydantic-settings>=2.13.0; extra == 'dev'
44
- Requires-Dist: pymupdf-layout>=1.26.6; extra == 'dev'
45
- Requires-Dist: pymupdf4llm>=0.2.9; extra == 'dev'
46
38
  Provides-Extra: openai
47
39
  Requires-Dist: openai>=1.107.1; extra == 'openai'
48
40
  Provides-Extra: optim
@@ -67,18 +59,8 @@ Requires-Dist: sqlalchemy[asyncio]>=2.0.43; extra == 'sql'
67
59
  Requires-Dist: sqlmodel>=0.0.38; extra == 'sql'
68
60
  Provides-Extra: sqlite
69
61
  Requires-Dist: aiosqlite>=0.22.1; extra == 'sqlite'
70
- Provides-Extra: test
71
- Requires-Dist: aiosqlite>=0.22.1; extra == 'test'
72
- Requires-Dist: arxiv>=2.1; extra == 'test'
73
- Requires-Dist: beautifulsoup4>=4.12; extra == 'test'
74
- Requires-Dist: greenlet>=3.0.0; extra == 'test'
75
- Requires-Dist: html2text>=2024.2; extra == 'test'
76
- Requires-Dist: pytest-asyncio>=1.3.0; extra == 'test'
77
- Requires-Dist: pytest-cov>=7.0.0; extra == 'test'
78
- Requires-Dist: pytest>=9.0.1; extra == 'test'
79
- Requires-Dist: ruff>=0.15.0; extra == 'test'
80
- Requires-Dist: sqlmodel>=0.0.38; extra == 'test'
81
- Requires-Dist: youtube-transcript-api>=0.6; extra == 'test'
62
+ Provides-Extra: tiktoken
63
+ Requires-Dist: tiktoken>=0.9.0; extra == 'tiktoken'
82
64
  Provides-Extra: viz
83
65
  Requires-Dist: graphviz>=0.21; extra == 'viz'
84
66
  Provides-Extra: webui
@@ -90,12 +72,16 @@ Description-Content-Type: text/markdown
90
72
 
91
73
  Agentbyte is an observability-first agentic AI framework for building and studying multiagent systems with a learning-first, implementation-oriented workflow.
92
74
 
93
- Current release: **0.32.2**
75
+ Current release: **0.33.0**
94
76
 
95
77
  ## Building an Agent
96
78
 
97
79
  Every example below builds on the same domain: a customer **support agent**. Start with a plain agent and a model client — no tools, no middleware:
98
80
 
81
+ ```bash
82
+ pip install "agentbyte[openai]" # the model client lives in an extra; see Install below
83
+ ```
84
+
99
85
  ```python
100
86
  from agentbyte import Agent
101
87
  from agentbyte.llm import OpenAIChatCompletionClient
@@ -302,56 +288,39 @@ Reading a trace: `chat gpt-4.1-mini` spans show **per-call** usage/cost/finish r
302
288
 
303
289
  Python requirement: **3.11+**
304
290
 
305
- ```bash
306
- uv sync --all-groups
307
- ```
308
-
309
- Optional extras:
310
-
311
- ```bash
312
- uv sync --extra openai # OpenAI client
313
- uv sync --extra azureopenai # Azure OpenAI client + azure-identity
314
- uv sync --extra aws # S3 datasets (aioboto3)
315
- uv sync --extra otel # OpenTelemetry export
316
- uv sync --extra webui # WebUI playground (FastAPI)
317
- uv sync --extra sqlite # SQLite stores: datasets, workflow checkpoints, eval history
318
- uv sync --extra postgres # PostgreSQL stores: usage logging, eval history
319
- uv sync --extra sql # sqlite + postgres
320
- uv sync --extra optim # prompt optimization (GEPA)
321
- uv sync --extra viz # workflow diagrams (graphviz)
322
- uv sync --extra research # research tools
323
- ```
324
-
325
- ### Install in another project (pip / uv add)
326
-
327
- Use extras to enable provider + telemetry support:
328
-
329
- ```bash
330
- pip install "agentbyte[azureopenai,otel]"
331
- ```
332
-
333
- ```bash
334
- uv add "agentbyte[azureopenai,otel]"
335
- ```
336
-
337
- For the browser WebUI:
291
+ The base package (`pip install agentbyte`) has no model provider or storage driver. Add the
292
+ extras for the features you use. Using a feature without its extra raises
293
+ `MissingExtraError` (an `ImportError`) that names the extra to install.
338
294
 
339
295
  ```bash
340
- pip install "agentbyte[webui]"
296
+ pip install "agentbyte[openai,sqlite]"
341
297
  # or
342
- uv add "agentbyte[webui]"
298
+ uv add "agentbyte[openai,sqlite]"
343
299
  ```
344
300
 
345
- Install all optional features:
301
+ | Extra | Installs | Needed for |
302
+ | --- | --- | --- |
303
+ | `openai` | `openai` | `OpenAIChatCompletionClient`, `OpenAIEmbeddingClient` |
304
+ | `azureopenai` | `openai`, `azure-identity` | Azure OpenAI clients and Entra ID credentials |
305
+ | `aws` | `aioboto3` | S3 dataset sources, writers and publishers |
306
+ | `otel` | OpenTelemetry API, SDK, OTLP exporter | OpenTelemetry tracing and metrics |
307
+ | `webui` | `fastapi`, `uvicorn` | `agentbyte webui` |
308
+ | `sqlite` | `aiosqlite` | SQLite datasets, workflow checkpoints, evaluation history |
309
+ | `postgres` | `sqlalchemy[asyncio]`, `sqlmodel`, `asyncpg` | `SqlUsageBackend`, `SqlEvalRunStore` |
310
+ | `sql` | `sqlite` + `postgres` | Both SQL backends |
311
+ | `tiktoken` | `tiktoken` | `TiktokenCounter` for exact compaction token counts |
312
+ | `optim` | `gepa` | `optimize_with_gepa()` |
313
+ | `viz` | `graphviz` | `WorkflowVisualizer.to_dot()` |
314
+ | `research` | `beautifulsoup4`, `html2text`, `arxiv`, `youtube-transcript-api` | `agentbyte.tools.research_tools` |
315
+ | `all` | every extra above | Everything |
316
+
317
+ Contributors working in this repository install every extra plus the local tooling groups
318
+ (`test`, `dev`, `experiment`):
346
319
 
347
320
  ```bash
348
- pip install "agentbyte[all]"
349
- # or
350
- uv add "agentbyte[all]"
321
+ uv sync --all-extras --all-groups
351
322
  ```
352
323
 
353
- Note: the Azure extra is `azureopenai`.
354
-
355
324
  ## Run The WebUI
356
325
 
357
326
  ### Option 1: Run the preset-backed app
@@ -410,6 +379,8 @@ Useful variants:
410
379
  ```bash
411
380
  uv run agentbyte webui --dir . --port 8080 --host 127.0.0.1 --no-open
412
381
  uv run agentbyte webui --dir examples --port 8090
382
+ # evaluation API under /api/eval (needs the sqlite extra; default suite: built-in smoke)
383
+ uv run agentbyte webui --eval-history ./eval.sqlite --eval-catalog myapp.evaluations:registry
413
384
  ```
414
385
 
415
386
  For this repository, the most reliable first-run path is the preset-backed launcher:
@@ -2,12 +2,16 @@
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.32.2**
5
+ Current release: **0.33.0**
6
6
 
7
7
  ## Building an Agent
8
8
 
9
9
  Every example below builds on the same domain: a customer **support agent**. Start with a plain agent and a model client — no tools, no middleware:
10
10
 
11
+ ```bash
12
+ pip install "agentbyte[openai]" # the model client lives in an extra; see Install below
13
+ ```
14
+
11
15
  ```python
12
16
  from agentbyte import Agent
13
17
  from agentbyte.llm import OpenAIChatCompletionClient
@@ -214,56 +218,39 @@ Reading a trace: `chat gpt-4.1-mini` spans show **per-call** usage/cost/finish r
214
218
 
215
219
  Python requirement: **3.11+**
216
220
 
217
- ```bash
218
- uv sync --all-groups
219
- ```
220
-
221
- Optional extras:
222
-
223
- ```bash
224
- uv sync --extra openai # OpenAI client
225
- uv sync --extra azureopenai # Azure OpenAI client + azure-identity
226
- uv sync --extra aws # S3 datasets (aioboto3)
227
- uv sync --extra otel # OpenTelemetry export
228
- uv sync --extra webui # WebUI playground (FastAPI)
229
- uv sync --extra sqlite # SQLite stores: datasets, workflow checkpoints, eval history
230
- uv sync --extra postgres # PostgreSQL stores: usage logging, eval history
231
- uv sync --extra sql # sqlite + postgres
232
- uv sync --extra optim # prompt optimization (GEPA)
233
- uv sync --extra viz # workflow diagrams (graphviz)
234
- uv sync --extra research # research tools
235
- ```
236
-
237
- ### Install in another project (pip / uv add)
238
-
239
- Use extras to enable provider + telemetry support:
240
-
241
- ```bash
242
- pip install "agentbyte[azureopenai,otel]"
243
- ```
244
-
245
- ```bash
246
- uv add "agentbyte[azureopenai,otel]"
247
- ```
248
-
249
- For the browser WebUI:
221
+ The base package (`pip install agentbyte`) has no model provider or storage driver. Add the
222
+ extras for the features you use. Using a feature without its extra raises
223
+ `MissingExtraError` (an `ImportError`) that names the extra to install.
250
224
 
251
225
  ```bash
252
- pip install "agentbyte[webui]"
226
+ pip install "agentbyte[openai,sqlite]"
253
227
  # or
254
- uv add "agentbyte[webui]"
228
+ uv add "agentbyte[openai,sqlite]"
255
229
  ```
256
230
 
257
- Install all optional features:
231
+ | Extra | Installs | Needed for |
232
+ | --- | --- | --- |
233
+ | `openai` | `openai` | `OpenAIChatCompletionClient`, `OpenAIEmbeddingClient` |
234
+ | `azureopenai` | `openai`, `azure-identity` | Azure OpenAI clients and Entra ID credentials |
235
+ | `aws` | `aioboto3` | S3 dataset sources, writers and publishers |
236
+ | `otel` | OpenTelemetry API, SDK, OTLP exporter | OpenTelemetry tracing and metrics |
237
+ | `webui` | `fastapi`, `uvicorn` | `agentbyte webui` |
238
+ | `sqlite` | `aiosqlite` | SQLite datasets, workflow checkpoints, evaluation history |
239
+ | `postgres` | `sqlalchemy[asyncio]`, `sqlmodel`, `asyncpg` | `SqlUsageBackend`, `SqlEvalRunStore` |
240
+ | `sql` | `sqlite` + `postgres` | Both SQL backends |
241
+ | `tiktoken` | `tiktoken` | `TiktokenCounter` for exact compaction token counts |
242
+ | `optim` | `gepa` | `optimize_with_gepa()` |
243
+ | `viz` | `graphviz` | `WorkflowVisualizer.to_dot()` |
244
+ | `research` | `beautifulsoup4`, `html2text`, `arxiv`, `youtube-transcript-api` | `agentbyte.tools.research_tools` |
245
+ | `all` | every extra above | Everything |
246
+
247
+ Contributors working in this repository install every extra plus the local tooling groups
248
+ (`test`, `dev`, `experiment`):
258
249
 
259
250
  ```bash
260
- pip install "agentbyte[all]"
261
- # or
262
- uv add "agentbyte[all]"
251
+ uv sync --all-extras --all-groups
263
252
  ```
264
253
 
265
- Note: the Azure extra is `azureopenai`.
266
-
267
254
  ## Run The WebUI
268
255
 
269
256
  ### Option 1: Run the preset-backed app
@@ -322,6 +309,8 @@ Useful variants:
322
309
  ```bash
323
310
  uv run agentbyte webui --dir . --port 8080 --host 127.0.0.1 --no-open
324
311
  uv run agentbyte webui --dir examples --port 8090
312
+ # evaluation API under /api/eval (needs the sqlite extra; default suite: built-in smoke)
313
+ uv run agentbyte webui --eval-history ./eval.sqlite --eval-catalog myapp.evaluations:registry
325
314
  ```
326
315
 
327
316
  For this repository, the most reliable first-run path is the preset-backed launcher:
@@ -0,0 +1,112 @@
1
+ [project]
2
+ name = "agentbyte"
3
+ dynamic = ["version"]
4
+ description = "A toolkit for designing multiagent systems"
5
+ readme = "README.md"
6
+ license = "LicenseRef-Proprietary"
7
+ authors = [
8
+ { name = "MrDataPsycho", email = "mr.data.psycho@gmail.com" }
9
+ ]
10
+ requires-python = ">=3.11"
11
+ dependencies = [
12
+ "httpx>=0.28.1",
13
+ "pydantic>=2.12.5",
14
+ "pydantic-settings>=2.13.0",
15
+ "pyyaml>=6.0.3",
16
+ ]
17
+
18
+ [project.optional-dependencies]
19
+ # Published feature extras: `pip install "agentbyte[openai,sqlite]"`.
20
+ openai = [
21
+ "openai>=1.107.1",
22
+ ]
23
+ azureopenai = [
24
+ "openai>=1.107.1",
25
+ "azure-identity>=1.25.1",
26
+ ]
27
+ aws = [
28
+ "aioboto3>=15.5.0",
29
+ ]
30
+ otel = [
31
+ "opentelemetry-api>=1.39.1",
32
+ "opentelemetry-exporter-otlp-proto-http>=1.39.1",
33
+ "opentelemetry-sdk>=1.39.1",
34
+ ]
35
+ webui = [
36
+ "fastapi>=0.135.2",
37
+ "uvicorn[standard]>=0.44.0",
38
+ ]
39
+ sqlite = [
40
+ "aiosqlite>=0.22.1",
41
+ ]
42
+ postgres = [
43
+ "sqlalchemy[asyncio]>=2.0.43",
44
+ "sqlmodel>=0.0.38",
45
+ "asyncpg>=0.31.0",
46
+ ]
47
+ sql = [
48
+ "agentbyte[sqlite,postgres]",
49
+ ]
50
+ tiktoken = [
51
+ "tiktoken>=0.9.0",
52
+ ]
53
+ optim = [
54
+ "gepa>=0.1",
55
+ ]
56
+ viz = [
57
+ "graphviz>=0.21",
58
+ ]
59
+ research = [
60
+ "beautifulsoup4>=4.12",
61
+ "html2text>=2024.2",
62
+ "arxiv>=2.1",
63
+ "youtube-transcript-api>=0.6",
64
+ ]
65
+ all = [
66
+ "agentbyte[openai,azureopenai,aws,otel,webui,sql,tiktoken,optim,viz,research]",
67
+ ]
68
+
69
+
70
+ [project.scripts]
71
+ agentbyte = "agentbyte.cli:main"
72
+
73
+ [build-system]
74
+ requires = ["hatchling"]
75
+ build-backend = "hatchling.build"
76
+
77
+ [tool.hatch.version]
78
+ path = "src/agentbyte/__about__.py"
79
+
80
+ [tool.hatch.build.targets.wheel]
81
+ packages = ["src/agentbyte"]
82
+
83
+ [tool.hatch.build.targets.sdist]
84
+ include = ["/src", "/tests", "/README.md", "/LICENSE", "/CHANGELOG.md", "/src/agentbyte/webui/ui"]
85
+
86
+ [dependency-groups]
87
+ # Local-only tooling, never published. Contributors: `uv sync --all-extras --all-groups`.
88
+ test = [
89
+ "pytest>=9.0.1",
90
+ "pytest-asyncio>=1.3.0",
91
+ "pytest-cov>=7.0.0",
92
+ "ruff>=0.15.0",
93
+ ]
94
+ dev = [
95
+ "fastexcel>=0.19.0",
96
+ "ipykernel>=7.1.0",
97
+ "nbclient>=0.10.4",
98
+ "nbformat>=5.10.4",
99
+ "polars>=1.40.0",
100
+ "pymupdf-layout>=1.26.6",
101
+ "pymupdf4llm>=0.2.9",
102
+ ]
103
+ experiment = [
104
+ "tiktoken>=0.9.0",
105
+ "yake>=0.4.8",
106
+ ]
107
+
108
+ [tool.pytest.ini_options]
109
+ testpaths = ["tests"]
110
+ norecursedirs = ["external_lib"]
111
+ # Dump every thread's stack if a test stalls, instead of hanging silently.
112
+ faulthandler_timeout = 60
@@ -0,0 +1,2 @@
1
+ __version__ = "0.33.0"
2
+ VERSION = __version__
@@ -14,6 +14,7 @@ Architecture Layers:
14
14
  """
15
15
 
16
16
  from agentbyte.__about__ import VERSION
17
+ from agentbyte._optional import MissingExtraError
17
18
  from agentbyte.agents import Agent
18
19
  from agentbyte.context_providers import (
19
20
  ContextProvider,
@@ -129,6 +130,7 @@ except Exception:
129
130
 
130
131
  __all__ = [
131
132
  "VERSION",
133
+ "MissingExtraError",
132
134
  "Agent",
133
135
  "Entity",
134
136
  "configure_notebook_logging",
@@ -0,0 +1,39 @@
1
+ """One way to import optional dependencies and report the extra that provides them."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import importlib
6
+ from types import ModuleType
7
+
8
+
9
+ class MissingExtraError(ModuleNotFoundError):
10
+ """An optional dependency is not installed; the message names the extra to install."""
11
+
12
+ def __init__(self, feature: str, extra: str, *, name: str | None = None) -> None:
13
+ super().__init__(
14
+ f"{feature} needs the '{extra}' extra: pip install 'agentbyte[{extra}]' "
15
+ f"(in this repository: uv sync --extra {extra})",
16
+ name=name,
17
+ )
18
+ self.feature = feature
19
+ self.extra = extra
20
+
21
+
22
+ def require(module: str, *, extra: str, feature: str) -> ModuleType:
23
+ """Import ``module`` or raise ``MissingExtraError`` naming ``extra``.
24
+
25
+ Only a missing ``module`` (or one of its parent packages) is reported as a
26
+ missing extra; an installed package that fails on its own imports re-raises.
27
+ """
28
+ try:
29
+ return importlib.import_module(module)
30
+ except ModuleNotFoundError as exc:
31
+ if not is_missing(exc, module):
32
+ raise
33
+ raise MissingExtraError(feature, extra, name=exc.name) from exc
34
+
35
+
36
+ def is_missing(exc: ModuleNotFoundError, module: str) -> bool:
37
+ """Whether ``exc`` means ``module`` itself (or a parent package) is not installed."""
38
+ missing = exc.name or ""
39
+ return bool(missing) and (module == missing or module.startswith(f"{missing}."))
@@ -0,0 +1,6 @@
1
+ """Allow ``python -m agentbyte.cli``."""
2
+
3
+ from agentbyte.cli.main import main
4
+
5
+ if __name__ == "__main__":
6
+ main()