agentbyte 0.22.1__tar.gz → 0.22.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {agentbyte-0.22.1 → agentbyte-0.22.3}/CHANGELOG.md +18 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/PKG-INFO +2 -2
- {agentbyte-0.22.1 → agentbyte-0.22.3}/README.md +1 -1
- agentbyte-0.22.3/src/agentbyte/__about__.py +2 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/agents/types.py +19 -1
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/middleware/sql_usage.py +8 -1
- agentbyte-0.22.3/tests/agents/test_agent_response_accessors.py +57 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/middleware/test_sql_usage.py +29 -0
- agentbyte-0.22.1/src/agentbyte/__about__.py +0 -2
- {agentbyte-0.22.1 → agentbyte-0.22.3}/.gitignore +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/LICENSE +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/pyproject.toml +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/__init__.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/agents/__init__.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/agents/agent.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/agents/agent_as_tool.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/agents/base.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/agents/embedding_agent.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/cancellation_token.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/catalog.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/cli/__init__.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/cli/main.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/component.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/context.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/context_providers/__init__.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/context_providers/base.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/context_providers/skill_tools.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/context_providers/skills.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/dataset/__init__.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/dataset/base.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/dataset/config.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/dataset/importer.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/dataset/json.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/dataset/loader.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/dataset/publish.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/dataset/publish_config.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/dataset/publishers.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/dataset/sources.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/dataset/sqlite.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/dataset/sqlite_db.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/dataset/write_config.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/dataset/writers.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/entity.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/eval/__init__.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/eval/base.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/eval/checks/__init__.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/eval/checks/decorator.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/eval/checks/keyword.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/eval/checks/local.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/eval/checks/tool.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/eval/checks/types.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/eval/comparison.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/eval/eval_dataset.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/eval/judges/__init__.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/eval/judges/base.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/eval/judges/composite.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/eval/judges/llm.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/eval/judges/pairwise.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/eval/judges/reference.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/eval/pairwise.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/eval/report.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/eval/runner.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/eval/targets/__init__.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/eval/targets/agent.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/eval/targets/model.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/eval/targets/multi_turn.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/eval/targets/orchestrator.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/eval/types.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/llm/__init__.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/llm/_retry_observability.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/llm/auth.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/llm/azure/__init__.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/llm/azure/auth.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/llm/azure/chat.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/llm/azure/embedding.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/llm/azure/settings.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/llm/azure_openai.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/llm/azure_openai_embedding.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/llm/base.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/llm/embeddings_base.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/llm/openai/__init__.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/llm/openai/chat.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/llm/openai/embedding.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/llm/openai/settings.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/llm/openai.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/llm/openai_embedding.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/llm/pricing.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/llm/retry_policy.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/llm/settings.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/llm/types.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/logger.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/memory/__init__.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/memory/base.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/messages.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/microwebui/__init__.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/microwebui/server.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/microwebui/ui/index.html +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/middleware/__init__.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/middleware/base.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/middleware/otel.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/middleware/retry.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/middleware/usage_logger.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/notebook.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/orchestration/__init__.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/orchestration/ai.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/orchestration/base.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/orchestration/handoff.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/orchestration/plan.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/orchestration/policies.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/orchestration/round_robin.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/presets/__init__.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/presets/agents.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/presets/clients.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/presets/instruction_registry.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/presets/instructions/orchestrator.yaml +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/presets/instructions/query_rewriter.yaml +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/presets/instructions/researcher.yaml +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/presets/instructions/reviewer.yaml +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/presets/instructions/writer.yaml +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/presets/orchestration.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/presets/skills/contracts-analyst/SKILL.md +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/presets/skills/hr-analyst/SKILL.md +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/presets/skills/hr-analyst/resources/departments.md +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/presets/skills/hr-analyst/resources/employees.md +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/presets/skills/hr-analyst/resources/payroll.md +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/presets/streaming.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/presets/workflow.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/session_store.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/skills/__init__.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/skills/base.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/skills/resources.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/skills/scripts.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/skills/sources.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/termination/__init__.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/termination/base.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/termination/cancellation.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/termination/composite.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/termination/consecutive_agent.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/termination/external.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/termination/function_call.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/termination/handoff.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/termination/max_message.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/termination/predicate.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/termination/source.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/termination/text_mention.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/termination/timeout.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/termination/token_usage.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/tools/__init__.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/tools/base.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/tools/coding_tools.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/tools/core_tools.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/tools/decorator.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/tools/memory_tool.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/tools/research_tools.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/types.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/__init__.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/discovery.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/execution.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/.gitignore +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/README.md +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/components.json +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/eslint.config.js +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/index.html +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/package-lock.json +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/package.json +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/plan.md +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/public/vite.svg +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/App.css +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/App.tsx +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/assets/react.svg +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/components/agent/agent-view.tsx +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/components/message_renderer/ContentRenderer.tsx +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/components/message_renderer/MessageRenderer.tsx +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/components/message_renderer/index.ts +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/components/message_renderer/types.ts +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/components/mode-toggle.tsx +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/components/orchestrator/orchestrator-view.tsx +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/components/shared/app-header.tsx +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/components/shared/chat-base.tsx +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/components/shared/context-inspector.tsx +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/components/shared/debug-panel.tsx +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/components/shared/entity-selector.tsx +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/components/shared/example-tasks-display.tsx +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/components/shared/session-switcher.tsx +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/components/shared/tool-approval-banner.tsx +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/components/theme-provider.tsx +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/components/ui/attachment-gallery.tsx +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/components/ui/badge.tsx +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/components/ui/button.tsx +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/components/ui/card.tsx +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/components/ui/dialog.tsx +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/components/ui/dropdown-menu.tsx +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/components/ui/file-upload.tsx +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/components/ui/input.tsx +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/components/ui/label.tsx +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/components/ui/loading-spinner.tsx +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/components/ui/loading-state.tsx +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/components/ui/message-input.tsx +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/components/ui/scroll-area.tsx +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/components/ui/slider.tsx +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/components/ui/tabs.tsx +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/components/ui/textarea.tsx +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/components/workflow/workflow-result-renderer.tsx +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/components/workflow/workflow-view.tsx +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/hooks/messageHandlers.ts +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/hooks/useEntityExecution.ts +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/index.css +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/lib/format-utils.ts +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/lib/user-id.ts +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/lib/utils.ts +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/main.tsx +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/services/api.ts +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/types/index.ts +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/types/picoagents.ts +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/utils/message-utils.ts +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/src/vite-env.d.ts +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/tsconfig.app.json +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/tsconfig.json +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/tsconfig.node.json +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/vite.config.ts +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/frontend/yarn.lock +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/models.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/registry.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/server.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/session_store.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/sessions.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/ui/assets/index-DDp5MYFO.js +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/ui/assets/index-ar5tOeqt.css +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/ui/index.html +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/webui/ui/vite.svg +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/workflow/__init__.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/workflow/agent.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/workflow/core/__init__.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/workflow/core/_structure_hash.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/workflow/core/checkpoint.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/workflow/core/models.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/workflow/core/runner.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/workflow/core/workflow.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/workflow/defaults.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/workflow/loader.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/workflow/schema.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/workflow/schema_utils.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/workflow/steps/__init__.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/workflow/steps/agentbyte_agent.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/workflow/steps/echo.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/workflow/steps/function.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/workflow/steps/http.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/workflow/steps/step.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/workflow/steps/subworkflow.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/workflow/steps/transform.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/workflow/visualizer.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/agents/test_agent_as_tool.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/agents/test_agent_basic.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/agents/test_agent_context_providers.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/agents/test_agent_event_types.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/agents/test_agent_memory_integration.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/agents/test_agent_middleware_integration.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/agents/test_agent_retry_middleware.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/agents/test_agent_stream_events.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/agents/test_embedding_agent.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/agents/test_tool_approval.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/cli/test_registry_check.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/context_providers/__init__.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/context_providers/test_skill_tools.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/context_providers/test_skills_provider.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/dataset/test_loader.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/dataset/test_multi_table.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/dataset/test_publish.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/dataset/test_sqlite_db.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/eval/test_eval_dataset.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/eval/test_multi_turn.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/eval/test_pairwise.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/eval/test_phase1_runner_and_targets.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/eval/test_phase2_checks_and_reports.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/eval/test_types_and_judges.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/llm/test_azure_client.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/llm/test_azure_embedding_client.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/llm/test_llm_types.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/llm/test_openai_client.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/llm/test_openai_embedding_client.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/llm/test_retry_observability.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/llm/test_retry_policy_api.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/memory/test_memory.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/middleware/test_middleware_chain.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/middleware/test_otel.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/middleware/test_retry_middleware.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/middleware/test_usage_logger.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/orchestration/test_ai_orchestrator.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/orchestration/test_base_orchestrator.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/orchestration/test_handoff_orchestrator.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/orchestration/test_plan_orchestrator.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/orchestration/test_round_robin.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/presets/test_agents.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/presets/test_clients.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/presets/test_instruction_registry.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/presets/test_orchestration.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/presets/test_streaming.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/presets/test_workflow.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/skills/__init__.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/skills/test_base.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/skills/test_resources.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/skills/test_scripts.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/skills/test_sources.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/termination/test_base.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/termination/test_cancellation.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/termination/test_composite.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/termination/test_consecutive_agent.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/termination/test_external.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/termination/test_function_call.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/termination/test_handoff.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/termination/test_max_message.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/termination/test_predicate.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/termination/test_source.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/termination/test_text_mention.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/termination/test_timeout.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/termination/test_token_usage.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/test_cancellation_token.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/test_context.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/test_logger.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/test_messages.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/test_package_api.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/test_session_store.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/test_types.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/tools/test_coding_tools.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/tools/test_memory_tool.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/tools/test_research_tools.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/tools/test_tools.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/webui/__init__.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/webui/helpers.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/webui/test_execution.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/webui/test_microwebui_server.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/webui/test_package_api.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/webui/test_registry.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/webui/test_server.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/webui/test_sessions.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/workflow/test_checkpoint.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/workflow/test_subworkflow_step.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/workflow/test_workflow_agent.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/workflow/test_workflow_class.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/workflow/test_workflow_models.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/workflow/test_workflow_runner.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/workflow/test_workflow_schema.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/workflow/test_workflow_steps.py +0 -0
- {agentbyte-0.22.1 → agentbyte-0.22.3}/tests/workflow/test_workflow_visualizer.py +0 -0
|
@@ -4,6 +4,24 @@ All notable changes to Agentbyte are documented in this file.
|
|
|
4
4
|
|
|
5
5
|
The format follows Keep a Changelog principles and semantic versioning.
|
|
6
6
|
|
|
7
|
+
## [0.22.3] - 2026-07-07
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- Fixed `SqlUsageBackend` Postgres writes by normalizing timezone-aware `recorded_at` timestamps to naive UTC before persistence, avoiding asyncpg datetime binding errors that left `llm_usage_events` empty on PostgreSQL-backed runtimes while SQLite continued to work.
|
|
12
|
+
|
|
13
|
+
## [0.22.2] - 2026-07-05
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
|
|
17
|
+
- Added `AgentResponse.final_message` and `AgentResponse.structured_output` convenience accessors for consuming final assistant output without manually indexing `response.messages[-1]`.
|
|
18
|
+
- Added the FastAPI agent API frontend integration updates, including the API-loaded agent landing page, contracting workspace routing, feedback UI flow, tool-step rendering, and context inspector refinements.
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
- Updated the FastAPI agent API example to consume structured output through the new `AgentResponse.structured_output` accessor.
|
|
23
|
+
- Updated the FastAPI study docs and UI developer guide to match the integrated API, session history, feedback, citation, and frontend behavior.
|
|
24
|
+
|
|
7
25
|
## [0.22.1] - 2026-06-30
|
|
8
26
|
|
|
9
27
|
### Added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agentbyte
|
|
3
|
-
Version: 0.22.
|
|
3
|
+
Version: 0.22.3
|
|
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
|
|
@@ -78,7 +78,7 @@ Description-Content-Type: text/markdown
|
|
|
78
78
|
|
|
79
79
|
Agentbyte is an observability-first agentic AI framework for building and studying multiagent systems with a learning-first, implementation-oriented workflow.
|
|
80
80
|
|
|
81
|
-
Current release: **0.22.
|
|
81
|
+
Current release: **0.22.3**
|
|
82
82
|
|
|
83
83
|
## Current Capabilities
|
|
84
84
|
|
|
@@ -8,7 +8,7 @@ from typing import Any, Dict, List, Literal, Optional, Sequence, Union
|
|
|
8
8
|
from pydantic import BaseModel, ConfigDict, Field
|
|
9
9
|
|
|
10
10
|
from agentbyte.context import AgentContext, ToolApprovalRequest
|
|
11
|
-
from agentbyte.messages import Message, Usage
|
|
11
|
+
from agentbyte.messages import AssistantMessage, Message, Usage
|
|
12
12
|
from agentbyte.types import ToolResult
|
|
13
13
|
|
|
14
14
|
|
|
@@ -213,6 +213,24 @@ class AgentResponse(BaseModel):
|
|
|
213
213
|
return ""
|
|
214
214
|
return self.context.messages[-1].content
|
|
215
215
|
|
|
216
|
+
@property
|
|
217
|
+
def final_message(self) -> AssistantMessage | None:
|
|
218
|
+
"""Final assistant message if the run ended with one."""
|
|
219
|
+
if not self.context.messages:
|
|
220
|
+
return None
|
|
221
|
+
message = self.context.messages[-1]
|
|
222
|
+
if isinstance(message, AssistantMessage):
|
|
223
|
+
return message
|
|
224
|
+
return None
|
|
225
|
+
|
|
226
|
+
@property
|
|
227
|
+
def structured_output(self) -> BaseModel | None:
|
|
228
|
+
"""Structured output attached to the final assistant message, if any."""
|
|
229
|
+
final_message = self.final_message
|
|
230
|
+
if final_message is None:
|
|
231
|
+
return None
|
|
232
|
+
return final_message.structured_content
|
|
233
|
+
|
|
216
234
|
def __str__(self) -> str:
|
|
217
235
|
"""Returns a user-friendly string representation with messages and usage."""
|
|
218
236
|
# Concat all message str representations
|
|
@@ -39,6 +39,13 @@ from sqlmodel import Field, SQLModel
|
|
|
39
39
|
from .usage_logger import UsageEvent, UsagePersistenceBackend
|
|
40
40
|
|
|
41
41
|
|
|
42
|
+
def _normalize_recorded_at(value: datetime) -> datetime:
|
|
43
|
+
"""Store usage timestamps as naive UTC for cross-database compatibility."""
|
|
44
|
+
if value.tzinfo is None:
|
|
45
|
+
return value
|
|
46
|
+
return value.astimezone(timezone.utc).replace(tzinfo=None)
|
|
47
|
+
|
|
48
|
+
|
|
42
49
|
class LlmUsageEvent(SQLModel, table=True):
|
|
43
50
|
"""SQLModel table that stores one row per LLM call.
|
|
44
51
|
|
|
@@ -132,7 +139,7 @@ class SqlUsageBackend(UsagePersistenceBackend):
|
|
|
132
139
|
tool_calls=event.tool_calls,
|
|
133
140
|
memory_operations=event.memory_operations,
|
|
134
141
|
cost_estimate=event.cost_estimate,
|
|
135
|
-
recorded_at=event.recorded_at,
|
|
142
|
+
recorded_at=_normalize_recorded_at(event.recorded_at),
|
|
136
143
|
)
|
|
137
144
|
session.add(row)
|
|
138
145
|
await session.commit()
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"""AgentResponse convenience accessor tests."""
|
|
2
|
+
|
|
3
|
+
from pydantic import BaseModel
|
|
4
|
+
|
|
5
|
+
from agentbyte.agents.types import AgentResponse
|
|
6
|
+
from agentbyte.context import AgentContext
|
|
7
|
+
from agentbyte.messages import AssistantMessage, Message, UserMessage
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class ExampleOutput(BaseModel):
|
|
11
|
+
value: str
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def _response_with(*messages: Message) -> AgentResponse:
|
|
15
|
+
context = AgentContext()
|
|
16
|
+
for message in messages:
|
|
17
|
+
context.add_message(message)
|
|
18
|
+
return AgentResponse(context=context, source="test-agent", finish_reason="stop")
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def test_agent_response_accessors_empty_context() -> None:
|
|
22
|
+
response = _response_with()
|
|
23
|
+
|
|
24
|
+
assert response.final_message is None
|
|
25
|
+
assert response.structured_output is None
|
|
26
|
+
assert response.final_content == ""
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def test_agent_response_accessors_non_assistant_final_message() -> None:
|
|
30
|
+
response = _response_with(UserMessage(content="question", source="user"))
|
|
31
|
+
|
|
32
|
+
assert response.final_message is None
|
|
33
|
+
assert response.structured_output is None
|
|
34
|
+
assert response.final_content == "question"
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def test_agent_response_accessors_plain_assistant_final_message() -> None:
|
|
38
|
+
assistant = AssistantMessage(content="answer", source="assistant")
|
|
39
|
+
response = _response_with(UserMessage(content="question", source="user"), assistant)
|
|
40
|
+
|
|
41
|
+
assert response.final_message is assistant
|
|
42
|
+
assert response.structured_output is None
|
|
43
|
+
assert response.final_content == "answer"
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
def test_agent_response_accessors_structured_assistant_final_message() -> None:
|
|
47
|
+
structured = ExampleOutput(value="answer")
|
|
48
|
+
assistant = AssistantMessage(
|
|
49
|
+
content="",
|
|
50
|
+
source="assistant",
|
|
51
|
+
structured_content=structured,
|
|
52
|
+
)
|
|
53
|
+
response = _response_with(UserMessage(content="question", source="user"), assistant)
|
|
54
|
+
|
|
55
|
+
assert response.final_message is assistant
|
|
56
|
+
assert response.structured_output is structured
|
|
57
|
+
assert response.final_content == ""
|
|
@@ -9,6 +9,7 @@ from __future__ import annotations
|
|
|
9
9
|
|
|
10
10
|
import asyncio
|
|
11
11
|
from collections.abc import AsyncGenerator
|
|
12
|
+
from datetime import datetime, timezone
|
|
12
13
|
from typing import Any
|
|
13
14
|
|
|
14
15
|
import pytest
|
|
@@ -188,6 +189,34 @@ async def test_multiple_calls_write_multiple_rows(middleware, model_ctx, engine)
|
|
|
188
189
|
assert len(await _rows(engine)) == 3
|
|
189
190
|
|
|
190
191
|
|
|
192
|
+
@pytest.mark.asyncio
|
|
193
|
+
async def test_timezone_aware_recorded_at_is_normalized_for_storage(backend, engine) -> None:
|
|
194
|
+
from agentbyte.middleware.usage_logger import UsageEvent
|
|
195
|
+
|
|
196
|
+
await backend.write(
|
|
197
|
+
UsageEvent(
|
|
198
|
+
session_id="sess-aware",
|
|
199
|
+
user_id="user-aware",
|
|
200
|
+
identifier="test-app",
|
|
201
|
+
agent_name="test-agent",
|
|
202
|
+
model="gpt-4o",
|
|
203
|
+
duration_ms=1,
|
|
204
|
+
llm_calls=1,
|
|
205
|
+
tokens_input=1,
|
|
206
|
+
tokens_output=1,
|
|
207
|
+
tool_calls=0,
|
|
208
|
+
memory_operations=0,
|
|
209
|
+
cost_estimate=0.001,
|
|
210
|
+
recorded_at=datetime(2026, 7, 7, 12, 0, tzinfo=timezone.utc),
|
|
211
|
+
)
|
|
212
|
+
)
|
|
213
|
+
|
|
214
|
+
rows = await _rows(engine)
|
|
215
|
+
assert len(rows) == 1
|
|
216
|
+
assert rows[0].recorded_at.tzinfo is None
|
|
217
|
+
assert rows[0].recorded_at == datetime(2026, 7, 7, 12, 0)
|
|
218
|
+
|
|
219
|
+
|
|
191
220
|
@pytest.mark.asyncio
|
|
192
221
|
async def test_run_id_injected_by_agent_run() -> None:
|
|
193
222
|
"""agent.run() must stamp run_id when not already present."""
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/presets/instructions/query_rewriter.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/presets/skills/contracts-analyst/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/presets/skills/hr-analyst/resources/employees.md
RENAMED
|
File without changes
|
{agentbyte-0.22.1 → agentbyte-0.22.3}/src/agentbyte/presets/skills/hr-analyst/resources/payroll.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|