openagentd 1.76.2__tar.gz → 1.78.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.
- openagentd-1.78.0/.openagentd/skills/oad/debug/SKILL.md +56 -0
- openagentd-1.78.0/.openagentd/skills/oad/debug/reference/backend.md +66 -0
- openagentd-1.78.0/.openagentd/skills/oad/debug/reference/frontend.md +83 -0
- openagentd-1.78.0/.openagentd/skills/oad/debug/reference/tauri.md +131 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/PKG-INFO +1 -1
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/errors.py +25 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/googlegenai/schemas.py +1 -1
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/registry.py +6 -2
- {openagentd-1.76.2 → openagentd-1.78.0}/app/api/routes/agents.py +2 -4
- {openagentd-1.76.2 → openagentd-1.78.0}/app/api/routes/team/files.py +34 -27
- {openagentd-1.76.2 → openagentd-1.78.0}/app/api/schemas/base.py +1 -1
- {openagentd-1.76.2 → openagentd-1.78.0}/app/api/schemas/team.py +1 -0
- openagentd-1.78.0/app/version.txt +1 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/Cargo.lock +5 -5
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/Cargo.toml +1 -1
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/src/main.rs +11 -24
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/tauri.conf.json +1 -1
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/agent/tools.md +27 -5
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/desktop.md +1 -1
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/features.md +26 -2
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/web/chrome.md +4 -2
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/web/workspace-files.md +7 -1
- {openagentd-1.76.2 → openagentd-1.78.0}/mobile/src-tauri/Cargo.lock +3 -3
- {openagentd-1.76.2 → openagentd-1.78.0}/mobile/src-tauri/Cargo.toml +1 -1
- {openagentd-1.76.2 → openagentd-1.78.0}/mobile/src-tauri/tauri.conf.json +1 -1
- {openagentd-1.76.2 → openagentd-1.78.0}/pyproject.toml +1 -1
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/googlegenai/test_googlegenai.py +85 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/tools/test_registry.py +196 -0
- openagentd-1.78.0/tests/api/schemas/test_base.py +145 -0
- openagentd-1.78.0/tests/core/test_errors.py +313 -0
- openagentd-1.78.0/tests/services/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/uv.lock +1 -1
- {openagentd-1.76.2 → openagentd-1.78.0}/web/AGENTS.md +4 -3
- {openagentd-1.76.2 → openagentd-1.78.0}/web/bun.lock +3 -352
- {openagentd-1.76.2 → openagentd-1.78.0}/web/package.json +1 -6
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/AGENTS.md +25 -0
- openagentd-1.78.0/web/src/__tests__/components/CodingWorkspacePanel.commits.test.tsx +199 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/DateTimePicker.test.tsx +4 -1
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/UserBubbleCollapse.test.tsx +122 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/api/types.ts +1 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/AgentPane.tsx +31 -16
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/AgentTopbar.tsx +5 -1
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/AgentView/UserBubble.tsx +33 -3
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/AgentView.tsx +24 -24
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/CodingSidebar.tsx +6 -6
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/CodingWorkspacePanel.tsx +14 -7
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/TeamChatView/TeamChatHeader.tsx +1 -1
- openagentd-1.78.0/web/src/components/ui/_use-deferred-unmount.ts +41 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ui/agent-chip.tsx +21 -34
- openagentd-1.78.0/web/src/components/ui/button.tsx +110 -0
- openagentd-1.78.0/web/src/components/ui/dialog.tsx +244 -0
- openagentd-1.78.0/web/src/components/ui/dropdown.tsx +237 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ui/long-press-button.tsx +2 -3
- openagentd-1.78.0/web/src/components/ui/popover.tsx +266 -0
- openagentd-1.78.0/web/src/components/ui/sheet.tsx +236 -0
- openagentd-1.78.0/web/src/components/ui/switch.tsx +61 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ui/tabs.tsx +7 -17
- openagentd-1.78.0/web/src/components/ui/tooltip.tsx +177 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/index.css +5 -68
- openagentd-1.78.0/web/src/lib/utils.ts +21 -0
- openagentd-1.78.0/web/src/lib/window-title.ts +34 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/cockpit.tsx +3 -6
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/settings.index.tsx +1 -1
- openagentd-1.76.2/.openagentd/skills/oad/debug/SKILL.md +0 -46
- openagentd-1.76.2/app/version.txt +0 -1
- openagentd-1.76.2/tests/core/test_errors.py +0 -100
- openagentd-1.76.2/web/components.json +0 -25
- openagentd-1.76.2/web/src/components/ui/button.tsx +0 -125
- openagentd-1.76.2/web/src/components/ui/dialog.tsx +0 -160
- openagentd-1.76.2/web/src/components/ui/dropdown.tsx +0 -189
- openagentd-1.76.2/web/src/components/ui/popover.tsx +0 -88
- openagentd-1.76.2/web/src/components/ui/sheet.tsx +0 -136
- openagentd-1.76.2/web/src/components/ui/switch.tsx +0 -57
- openagentd-1.76.2/web/src/components/ui/tooltip.tsx +0 -64
- openagentd-1.76.2/web/src/lib/utils.ts +0 -6
- openagentd-1.76.2/web/src/lib/window-title.ts +0 -71
- {openagentd-1.76.2 → openagentd-1.78.0}/.env.example +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/.gitattributes +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/.github/ISSUE_TEMPLATE/known_issue.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/.github/ISSUE_TEMPLATE/roadmap_item.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/.github/dependabot.yml +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/.github/pull_request_template.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/.github/workflows/core.yml +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/.github/workflows/publish-homebrew-cask.yml +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/.github/workflows/publish-homebrew.yml +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/.github/workflows/release-desktop.yml +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/.github/workflows/release.yml +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/.github/workflows/tauri.yml +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/.github/workflows/version-check.yml +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/.github/workflows/web.yml +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/.gitignore +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/.openagentd/commands/oad/debug.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/.openagentd/commands/oad/release.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/.openagentd/skills/oad/commit/SKILL.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/.openagentd/skills/oad/docs/SKILL.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/.openagentd/skills/oad/frontend-debug/SKILL.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/.openagentd/skills/oad/release/SKILL.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/.openagentd/snippets/oad/debug.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/.openagentd/snippets/oad/release.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/.openagentd/snippets/oad.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/.opencode/commands/pr.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/.opencode/commands/release.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/.pre-commit-config.yaml +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/AGENTS.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/CODE_OF_CONDUCT.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/CONTRIBUTING.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/LICENSE +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/MIGRATION.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/Makefile +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/NOTICE +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/README.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/SECURITY.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/AGENTS.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/AGENTS.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/agent_loop/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/agent_loop/core.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/agent_loop/retry.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/agent_loop/streaming.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/agent_loop/tool_dispatch.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/agent_loop/tool_executor.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/artifacts.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/builtin_prompts.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/builtin_skills/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/builtin_skills/browser-use/SKILL.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/builtin_skills/mcp-installer/SKILL.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/builtin_skills/mcp-installer/mcp_apply.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/builtin_skills/plugin-installer/SKILL.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/builtin_skills/self-healing/SKILL.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/builtin_skills/skill-installer/SKILL.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/checkpointer.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/drift.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/hooks/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/hooks/base.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/hooks/continuation.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/hooks/dynamic_prompt.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/hooks/otel.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/hooks/session_log.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/hooks/stream_publisher.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/hooks/streaming.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/hooks/summarization.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/hooks/telemetry.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/hooks/title_generation.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/hooks/tool_result_offload.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/hooks/workspace_instructions.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/loader.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/mcp/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/mcp/config.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/mcp/manager.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/mcp/oauth.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/mcp/tools.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/mode/team/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/mode/team/hooks/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/mode/team/hooks/queued_injection.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/mode/team/hooks/team_inbox.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/mode/team/hooks/team_prompt.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/mode/team/mailbox.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/mode/team/manage.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/mode/team/member.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/mode/team/team.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/mode/team/tools.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/multimodal.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/permission.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/plugins/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/plugins/events.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/plugins/loader.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/plugins/role.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/anthropic/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/anthropic/anthropic.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/base.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/bedrock/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/bedrock/bedrock.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/capabilities.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/catalog.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/codex/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/codex/codex.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/codex/oauth.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/codex/usage.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/copilot/USAGE.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/copilot/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/copilot/copilot.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/copilot/oauth.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/copilot/schemas.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/copilot/usage.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/deepseek/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/deepseek/deepseek.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/deepseek/schemas.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/factory.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/googlegenai/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/googlegenai/googlegenai.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/model_discovery.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/model_metadata.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/model_registry.json +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/model_registry.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/ollama/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/ollama/ollama.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/openai/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/openai/compatible.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/openai/compatible_provider.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/openai/completions.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/openai/openai.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/openai/responses.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/openai/sanitization.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/openai/schemas.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/plugin_api.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/plugin_registry.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/router9/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/router9/router9.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/streaming.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/unconfigured.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/vertexai/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/vertexai/vertexai.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/xai/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/xai/xai.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/zai/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/zai/zai.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/sandbox.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/sandbox_config.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/schemas/agent.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/schemas/chat.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/schemas/events.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/state.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tool_id_resolver.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/builtin/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/builtin/date.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/builtin/filesystem/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/builtin/filesystem/_config_watch.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/builtin/filesystem/_ignore.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/builtin/filesystem/edit.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/builtin/filesystem/glob.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/builtin/filesystem/grep.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/builtin/filesystem/handlers.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/builtin/filesystem/ls.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/builtin/filesystem/patch.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/builtin/filesystem/read.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/builtin/filesystem/rm.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/builtin/filesystem/write.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/builtin/schedule.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/builtin/shell.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/builtin/shell_runtime.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/builtin/skill.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/builtin/todo.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/builtin/web.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/multimodalities/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/multimodalities/_config.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/multimodalities/_metrics.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/multimodalities/backends/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/multimodalities/backends/codex.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/multimodalities/backends/googlegenai.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/multimodalities/backends/googlegenai_video.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/multimodalities/backends/openai.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/multimodalities/image.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/multimodalities/video.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/usage.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/alembic.ini +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/api/AGENTS.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/api/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/api/app.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/api/deps.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/api/routes/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/api/routes/auth.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/api/routes/commands.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/api/routes/diagnostics.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/api/routes/health.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/api/routes/mcp.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/api/routes/observability.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/api/routes/quote.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/api/routes/scheduler.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/api/routes/settings.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/api/routes/skills.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/api/routes/snippets.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/api/routes/team/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/api/routes/team/_helpers.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/api/routes/team/chat.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/api/routes/team/permissions.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/api/routes/team/todos.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/api/routes/team/worktrees.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/api/schemas/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/api/schemas/agents.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/api/schemas/chat.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/api/schemas/commands.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/api/schemas/mcp.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/api/schemas/sessions.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/api/schemas/settings.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/api/schemas/skills.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/api/schemas/snippets.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/__main__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/commands/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/commands/address.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/commands/auth.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/commands/cleanup.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/commands/doctor.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/commands/health.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/commands/init.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/commands/logs.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/commands/migrate.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/commands/restart.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/commands/serve.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/commands/start.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/commands/status.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/commands/stop.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/commands/upgrade.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/commands/version.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/firstrun.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/main.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/net.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/paths.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/pids.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/seed.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/server.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/ui.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/core/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/core/config.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/core/db.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/core/desktop_auth.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/core/exception_handlers.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/core/jsonl_writer.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/core/logging_config.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/core/metrics.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/core/middlewares.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/core/otel.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/core/otel_retention.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/core/paths.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/core/runtime_settings.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/core/version.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/core/workspace_init.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/migrations/README +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/migrations/env.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/migrations/script.py.mako +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/migrations/versions/00000001_create_chat_sessions.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/migrations/versions/00000002_create_session_messages.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/migrations/versions/00000003_create_scheduled_task.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/migrations/versions/00000004_create_dream_log.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/migrations/versions/00000005_add_session_mode_workspace.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/migrations/versions/00000006_scheduled_task_mode_workspace.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/migrations/versions/00000007_add_chat_session_revert.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/migrations/versions/00000008_add_session_model_settings.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/migrations/versions/00000009_create_memory_processed_sources.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/migrations/versions/00000010_create_coding_workspaces.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/migrations/versions/00000011_add_scheduled_task_max_runs.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/migrations/versions/00000012_drop_dream_and_memory_tables.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/migrations/versions/00000013_add_scheduled_task_slug.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/models/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/models/chat.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/scheduler/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/scheduler/cron.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/scheduler/models.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/scheduler/scheduler.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/scheduler/schemas.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/scheduler/utils.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/server.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/services/AGENTS.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/services/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/services/_tool_state.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/services/agent_fs.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/services/agent_service.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/services/artifact_cleanup.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/services/chat_service.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/services/chat_service_messages.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/services/chat_service_queue.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/services/chat_service_revert.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/services/coding_workspace_service.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/services/commands.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/services/memory_stream_store.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/services/observability_service.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/services/provider_usage.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/services/quote_service.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/services/shell_service.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/services/snapshot_service.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/services/snippets.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/services/stream_envelope.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/services/team_manager.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/app/services/title_service.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/AGENTS.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/Makefile +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/README.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/scripts/INSTALL.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/scripts/install.sh +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/AGENTS.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/Info.plist +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/build.rs +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/capabilities/default.json +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/entitlements.plist +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/128x128.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/128x128@2x.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/32x32.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/64x64.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/README.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/Square107x107Logo.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/Square142x142Logo.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/Square150x150Logo.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/Square284x284Logo.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/Square30x30Logo.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/Square310x310Logo.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/Square44x44Logo.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/Square71x71Logo.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/Square89x89Logo.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/StoreLogo.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/android/mipmap-anydpi-v26/ic_launcher.xml +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/android/values/ic_launcher_background.xml +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/icon.icns +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/icon.ico +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/icon.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/ios/AppIcon-20x20@1x.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/ios/AppIcon-20x20@2x-1.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/ios/AppIcon-20x20@2x.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/ios/AppIcon-20x20@3x.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/ios/AppIcon-29x29@1x.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/ios/AppIcon-29x29@2x-1.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/ios/AppIcon-29x29@2x.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/ios/AppIcon-29x29@3x.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/ios/AppIcon-40x40@1x.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/ios/AppIcon-40x40@2x-1.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/ios/AppIcon-40x40@2x.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/ios/AppIcon-40x40@3x.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/ios/AppIcon-512@2x.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/ios/AppIcon-60x60@2x.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/ios/AppIcon-60x60@3x.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/ios/AppIcon-76x76@1x.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/ios/AppIcon-76x76@2x.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/permissions/autogenerated/app_backend_status.toml +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/permissions/autogenerated/app_new_window.toml +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/permissions/autogenerated/app_remove_backend_server.toml +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/permissions/autogenerated/app_save_backend_server.toml +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/permissions/autogenerated/app_stop_bundled_backend.toml +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/permissions/autogenerated/app_use_bundled_backend.toml +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/permissions/autogenerated/app_use_external_backend.toml +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/permissions/autogenerated/backend_health.toml +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/permissions/autogenerated/backend_logs_path.toml +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/permissions/autogenerated/reapply_window_chrome.toml +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/permissions/autogenerated/request_voice_permissions.toml +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/permissions/autogenerated/save_workspace_file.toml +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/permissions/autogenerated/set_tray_session.toml +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/permissions/autogenerated/updater_check.toml +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/permissions/autogenerated/updater_download.toml +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/permissions/autogenerated/updater_install.toml +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/permissions/autogenerated/updater_release_notes.toml +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/src/sidecar.rs +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/tauri.dev-bundled.conf.json +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/tauri.dev.conf.json +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/AGENTS.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/assets/.gitkeep +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/assets/brand/README.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/assets/brand/octobot-agentd-source.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/assets/brand/openagentd-app-icon.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/assets/brand/openagentd-hero-annotated.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/assets/brand/openagentd-primary-lockup.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/assets/brand/openagentd-social-header.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/assets/brand/openagentd-stacked-badge.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/assets/openagentd-agent-architecture.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/assets/openagentd-install.gif +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/assets/screenshots/coding-screen-with-2sidebars.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/assets/screenshots/homepage.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/assets/screenshots/settings-agents.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/assets/screenshots/settings-sandbox.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/assets/screenshots/settings-voice.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/assets/screenshots/telemetry.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/assets/team-unified.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/assets/tool-call-inspector.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/AGENTS.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/agent/context.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/agent/hooks.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/agent/index.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/agent/loop.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/agent/plugins.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/agent/summarization.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/agent/team-lazy-spawn.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/agent/teams.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/api/index.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/architecture.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/cli.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/commands.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/comparison.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/configuration/agents.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/configuration/env.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/configuration/paths.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/configuration/providers.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/configuration/sandbox.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/configuration/skills.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/configuration/tools.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/configuration.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/guidelines.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/index.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/install.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/logging.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/mobile.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/observability.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/roadmap.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/shell-commands.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/testing/team.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/title-generation.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/troubleshooting.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/web/chat-input.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/web/coding-sessions.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/web/mobile.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/web/performance.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/web/todos.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/web/tool-results.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/web/voice-input.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/styling-specs/applications.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/styling-specs/colors.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/styling-specs/imagery.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/styling-specs/index.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/styling-specs/interaction.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/styling-specs/layout.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/styling-specs/logo.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/styling-specs/motion.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/styling-specs/typography.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/techdebts/app-wide-optimization-backlog.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/techdebts/distribution-coverage.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/documents/techdebts/model-capabilities-registry.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/install.sh +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/AGENTS.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/_common.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/backend_log.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/bang_shell.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/cancel_queued_message.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/compaction_cache.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/continue_smoketest.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/fast_mode.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/health.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/image_edit_smoketest.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/image_tool_smoketest.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/inspect_prompt.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/mention_attachments.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/otel_inspect.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/patch_tool.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/provider_models.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/queued_injection.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/scheduler.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/session_resolve.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/shell_output_delta.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/skill_dedupe.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/skill_tool_analytics.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/stop_additive.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/stop_mid_stream.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/summarization_improvements_test.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/summarization_max_tokens_test.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/summarization_sse.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/summarization_test.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/support_interrupt.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/team_chat.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/team_history.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/team_history_n1_verify.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/team_message_idempotency.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/team_open_task_nudge.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/team_roster_lifecycle.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/team_sessions.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/team_spawn.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/team_sse.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/team_timeline.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/team_todos.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/team_usage.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/tool_result_offload_test.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/try_providers/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/try_providers/_common.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/try_providers/_tools_common.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/try_providers/try_bedrock.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/try_providers/try_codex.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/try_providers/try_continue_probe.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/try_providers/try_copilot.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/try_providers/try_deepseek.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/try_providers/try_googlegenai.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/try_providers/try_ollama.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/try_providers/try_openai.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/try_providers/try_openai_chat_completions_tools.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/try_providers/try_openai_responses_tools.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/try_providers/try_openrouter.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/try_providers/try_vertexai.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/try_providers/try_zai.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/undo_mid_second_turn.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/manual/video_smoketest.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/mobile/Makefile +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/mobile/README.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/mobile/src-tauri/Info.ios.plist +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/mobile/src-tauri/build.rs +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/mobile/src-tauri/capabilities/default.json +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/mobile/src-tauri/icons/README.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/mobile/src-tauri/icons/icon.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/mobile/src-tauri/permissions/autogenerated/app_backend_status.toml +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/mobile/src-tauri/permissions/autogenerated/app_remove_backend_server.toml +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/mobile/src-tauri/permissions/autogenerated/app_save_backend_server.toml +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/mobile/src-tauri/permissions/autogenerated/app_use_external_backend.toml +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/mobile/src-tauri/src/lib.rs +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/mobile/src-tauri/src/main.rs +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/pytest.ini +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/scripts/AGENTS.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/scripts/build_sidecar.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/scripts/bump_version.sh +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/scripts/check_version_consistency.sh +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/scripts/codehealth/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/scripts/codehealth/__main__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/scripts/codehealth/model.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/scripts/codehealth/py_analyzer.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/scripts/codehealth/scoring.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/scripts/codehealth/ts_analyzer.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/scripts/generate_icons.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/scripts/generate_updater_keys.sh +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/scripts/make_updater_manifest.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/scripts/render_release_install_block.sh +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/scripts/update_model_registry.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/seed/AGENTS.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/seed/README.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/seed/agents/coding/coder.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/seed/agents/coding/explorer.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/seed/agents/coding/openagentd.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/seed/agents/executor.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/seed/agents/explorer.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/seed/agents/openagentd.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/seed/mcp.json +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/AGENTS.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/agent_loop/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/agent_loop/test_streaming_tool_args.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/agent_loop/test_tool_executor.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/hooks/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/hooks/test_base_hook.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/hooks/test_build_summarization_hook.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/hooks/test_database_hook.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/hooks/test_database_hook_usage.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/hooks/test_dynamic_prompt_hook.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/hooks/test_otel_hook.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/hooks/test_queued_injection_hook.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/hooks/test_session_log_hook.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/hooks/test_stream_publisher_hook.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/hooks/test_stream_publisher_usage.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/hooks/test_streaming_hook.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/hooks/test_summarization_extra.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/hooks/test_summarization_hook.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/hooks/test_summarization_sse.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/hooks/test_team_inbox_hook.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/hooks/test_team_prompt_hook.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/hooks/test_telemetry_hook.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/hooks/test_title_generation_hook.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/hooks/test_tool_result_offload.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/hooks/test_workspace_instructions_hook.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/mcp/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/mcp/test_config.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/mcp/test_manager.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/mcp/test_mcp_apply.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/mcp/test_oauth.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/mcp/test_tools.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/mode/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/mode/team/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/mode/team/conftest.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/mode/team/test_activation.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/mode/team/test_done_detection.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/mode/team/test_mailbox.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/mode/team/test_member_drift.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/mode/team/test_member_extra.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/mode/team/test_member_worker.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/mode/team/test_team.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/mode/team/test_team_continue.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/mode/team/test_team_extra.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/mode/team/test_team_message_tool.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/mode/team/test_team_spawn.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/mode/team/test_tools.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/plugins/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/plugins/test_loader.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/anthropic/test_anthropic.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/anthropic/test_anthropic_streaming.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/bedrock/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/bedrock/test_bedrock.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/codex/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/codex/test_codex.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/codex/test_oauth.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/copilot/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/copilot/test_copilot.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/copilot/test_oauth.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/copilot/test_usage.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/deepseek/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/deepseek/test_deepseek.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/googlegenai/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/ollama/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/ollama/test_ollama.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/openai/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/openai/test_compatible_provider.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/openai/test_completions_handler.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/openai/test_provider.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/openai/test_responses_handler.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/openai/test_responses_streaming.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/openai/test_routing.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/openai/test_schemas.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/test_anthropic_cache_payload.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/test_anthropic_usage.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/test_capabilities.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/test_model_discovery.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/test_model_registry.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/test_multimodal_tool_message.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/test_plugin_registry.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/test_router9.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/test_streaming.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/test_unconfigured.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/vertexai/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/vertexai/test_vertexai.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/xai/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/xai/test_xai.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/zai/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/zai/test_schemas.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/zai/test_zai.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/schemas/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/schemas/test_chat_schemas.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/test_agent_identity.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/test_agent_loop.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/test_agent_run.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/test_agent_run_extra.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/test_jsonl_writer.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/test_loader.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/test_loader_drift.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/test_multimodal.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/test_permission.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/test_sandbox.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/test_sandbox_commands.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/test_sandbox_config.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/test_sandbox_patterns.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/test_support_interrupt.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/test_usage.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/tools/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/tools/multimodalities/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/tools/multimodalities/test_config.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/tools/multimodalities/test_googlegenai_backend.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/tools/multimodalities/test_googlegenai_video_backend.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/tools/multimodalities/test_openai_backend.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/tools/multimodalities/test_telemetry.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/tools/test_date_tools.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/tools/test_edit_file.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/tools/test_filesystem.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/tools/test_multimodal_read.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/tools/test_multimodal_read_gaps.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/tools/test_patch_tool.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/tools/test_schedule_tool.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/tools/test_shell.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/tools/test_shell_runtime.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/tools/test_skill_loader.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/tools/test_todo_manage.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/tools/test_web_tools.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/routes/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/routes/test_agents.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/routes/test_commands.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/routes/test_observability_route.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/routes/test_scheduler.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/routes/test_skills.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/routes/test_snippets.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/routes/test_team.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/routes/test_team_commands.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/routes/test_team_db.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/routes/test_team_files.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/routes/test_team_media.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/routes/test_team_mention_attachments.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/routes/test_team_permissions.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/routes/test_team_routes_extra.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/routes/test_team_todos.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/routes/test_team_worktrees.py +0 -0
- {openagentd-1.76.2/tests/cli → openagentd-1.78.0/tests/api/schemas}/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/test_app_lifespan.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/test_app_startup_imports.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/test_auth.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/test_auth_routes.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/test_diagnostics.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/test_health_endpoints.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/test_mcp_routes.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/test_settings_routes.py +0 -0
- {openagentd-1.76.2/tests/core → openagentd-1.78.0/tests/cli}/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/cli/test_cli.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/cli/test_firstrun.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/cli/test_migrate.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/cli/test_serve.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/conftest.py +0 -0
- {openagentd-1.76.2/tests/desktop → openagentd-1.78.0/tests/core}/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/core/test_config_plugin_dirs.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/core/test_db.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/core/test_db_extra.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/core/test_desktop_auth.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/core/test_exception_handlers.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/core/test_logging_config.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/core/test_metrics.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/core/test_middlewares.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/core/test_otel_retention.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/core/test_otel_tiering.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/core/test_paths.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/core/test_workspace_init.py +0 -0
- {openagentd-1.76.2/tests/models → openagentd-1.78.0/tests/desktop}/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/desktop/test_install_sh.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/desktop/test_mcp_app_csp.py +0 -0
- {openagentd-1.76.2/tests/scheduler → openagentd-1.78.0/tests/models}/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/models/test_chat_model.py +0 -0
- {openagentd-1.76.2/tests/services → openagentd-1.78.0/tests/scheduler}/__init__.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/scheduler/test_cron.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/scheduler/test_scheduler.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/scheduler/test_schemas.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/scripts/test_make_updater_manifest.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/scripts/test_manual_compaction_cache.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/services/test_agent_fs.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/services/test_agent_service.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/services/test_artifact_cleanup.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/services/test_chat_service.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/services/test_chat_service_messages_helpers.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/services/test_chat_service_queue_helpers.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/services/test_checkpointer.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/services/test_commands.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/services/test_deserialize_partial_tool_calls.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/services/test_memory_stream_store.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/services/test_observability_service.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/services/test_provider_usage.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/services/test_quote.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/services/test_snapshot_service.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/services/test_snippets.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/services/test_team_manager.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/services/test_title_service.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/test_model_metadata.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/test_security_dependency_floors.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/tests/test_server.py +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/.gitignore +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/Makefile +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/bunfig.toml +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/eslint.config.js +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/index.html +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/public/brand-assets/openagentd-app-icon.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/public/notification.wav +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/public/theme-init.js +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/App.css +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/App.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/api/auth.test.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/api/base-url.test.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/api/client.test.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/api/sse.test.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/bun-test.d.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/AgentCapabilities.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/AgentPane.footer.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/AgentPane.pending.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/AgentView.error.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/AgentView.footer.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/AgentView.scroll.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/App.bootstrap.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/AppBackendDialog.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/AssistantTurnFooter.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/CodingSidebar.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/CodingWorkspacePanel.filepreview.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/CommandPalette.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/DiffView.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/FileCard.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/FloatingInputBar.filesBelow.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/FloatingInputBar.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/ImageAttachment.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/ImageLightbox.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/InboxBubble.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/InputBar.fileRefs.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/InputBar.filesBelow.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/InputBar.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/LongPressButton.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/MCPAppResult.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/MacTitleBar.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/PendingMessageQueue.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/ReadView.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/SchedulerPanel.edit.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/SchedulerPanel.modeWorkspace.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/SchedulerPanel.scope.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/SchedulerPanel.slugAndSession.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/SessionModelSettings.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/Sidebar.edit-title.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/Sidebar.title.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/SplitGrid.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/StatusBar.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/TeamChatHeader.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/TeamChatView.session-draft.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/TeamChatView.todos.README.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/TeamChatView.todos.render.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/TeamChatView.todos.test.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/TeamStatusBar.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/TextPreview.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/ThemeToggle.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/Thinking.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/TodosPopover.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/ToolCall.generate_image.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/ToolCall.team_message.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/ToolCall.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/ToolResult.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/UpdateCard.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/VoiceMicButton.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/WorkspaceFilesPanel.copy.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/WorkspaceFilesPanel.download.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/agent-view-scroll.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/frontmatter.test.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/mobileOverlays.test.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/performance.memo.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/schema.test.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/scroll-chaining.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/settings/AgentForm.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/settings/McpServerDraft.test.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/settings/McpServerForm.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/settings/SettingsListView.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/sidebar-item.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/tool-call-generate-video.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/useTeamCommands.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/hooks/use-mobile-viewport.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/hooks/use-platform.test.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/hooks/useEdgeSwipe.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/hooks/useKeyboardShortcuts.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/hooks/useProximity.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/hooks/useTeamSessionTitleMutation.test.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/hooks/useTeamSessionsQuery.test.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/lib/desktop-commands.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/lib/desktop-notifications.isolated.test.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/lib/desktop-notifications.worker.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/lib/haptics.test.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/lib/open-external.test.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/lib/theme.test.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/lib/window-title.test.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/lib/workspace-download.test.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/queries/useAgentFilesQuery.test.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/queries/useMcpQuery.test.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/queries/useSchedulerQuery.test.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/queries/useUpdateScheduledTaskMutation.test.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/quote.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/routes/root-route.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/routes/settings.index.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/routes/settings.mcp.detail.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/routes/settings.multimodal.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/routes/settings.notifications.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/routes/settings.providers.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/routes/settings.sandbox.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/routes/settings.title-generation.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/routes/telemetry.chrome.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/routes/telemetry.span-detail.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/routes/telemetry.summary.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/routes/telemetry.waterfall.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/sandbox.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/setup.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/stores/cache-invalidation-bridge.coding.test.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/stores/cache-invalidation-bridge.test.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/stores/useGitPanelStore.test.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/stores/useTeamStore.async.test.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/stores/useTeamStore.codingWorkspace.test.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/stores/useTeamStore.error.test.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/stores/useTeamStore.revertBoundary.test.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/stores/useTeamStore.scheduler.test.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/stores/useTeamStore.test.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/stores/useTeamStore.todos.test.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/stores/useUIStore.test.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/utils/blocks.test.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/utils/format.test.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/utils/markdown-image.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/utils/markdown-link.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/utils/markdown-video.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/utils/markdown.test.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/utils/messages.test.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/utils/telemetryFormat.test.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/utils/traceTree.test.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/utils/turns.test.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/utils/workspace.test.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/api/auth.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/api/base-url.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/api/client/_shared.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/api/client/agents.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/api/client/index.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/api/client/mcp.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/api/client/misc.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/api/client/observability.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/api/client/scheduler.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/api/client/settings.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/api/client/team.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/api/sse.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/assets/brand/README.md +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/assets/brand/octobot-agentd-source.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/assets/brand/openagentd-app-icon.png +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/AppBackendDialog.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/AppHeader.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/AssistantTurnFooter.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/CodingFileViewerPanel.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/CodingSidebar/WorkspaceSessionList.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/CodingSidebar/utils.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/CodingSidebar.browser.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/CodingSidebar.helpers.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/CodingSidebar.sessions.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/CodingSidebar.trust.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/CodingSidebar.window.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/CodingSidebar.workspace.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/CodingSidebar.worktree-dialog.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/CodingSidebar.worktrees.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/CommandPalette.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/CompactionDivider.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/FileCard.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/FilePreviewStrip.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/FileTypeIcon.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/FloatingInputBar.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/HealthDot.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ImageAttachment.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ImageLightbox.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/InboxBubble.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/InputBar.files.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/InputBar.helpers.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/InputBar.mentions.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/InputBar.menus.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/InputBar.overlay.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/InputBar.suggestions.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/InputBar.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/MCPAppResult.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/MacTitleBar.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/PendingMessageQueue.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/RevertNotice.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/SchedulerPanel/CreateTaskForm.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/SchedulerPanel/EditTaskForm.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/SchedulerPanel/ModeBadge.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/SchedulerPanel/ModeWorkspaceFields.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/SchedulerPanel/ScheduleTypeSegmented.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/SchedulerPanel/TaskDetailView.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/SchedulerPanel/TaskListItem.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/SchedulerPanel/utils.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/SchedulerPanel.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/SessionModelSettings.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/SessionSettingsPanel.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/SessionSettingsPanelTools.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/SettingsModal.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/Sidebar.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/StatusBar.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/TeamChatView/AgentTabs.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/TeamChatView/MobileChatActions.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/TeamChatView/MobileHeaderAction.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/TeamChatView/SplitGrid.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/TeamChatView/TeamChatPanels.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/TeamChatView/agentDots.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/TeamChatView/index.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/TeamChatView/mobileOverlays.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/TeamChatView/types.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/TeamChatView/useTeamCommands.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/TeamStatusBar.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ThemeToggle.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/Thinking.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ToastStack.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/TodosPopover.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ToolCall/DiffView.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ToolCall/ReadView.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ToolCall/StatusDot.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ToolCall/diffUtils.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ToolCall/display.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ToolCall/displayText.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ToolCall/index.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ToolCall/types.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ToolResult.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/UpdateCard.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/VoiceMicButton.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/Welcome.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/WorkspaceFilesPanel.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/WorkspaceInfoCard.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/motion/SkipLink.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/motion/ThinkingDots.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/motion/index.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/previews/AgentTopbarPreview.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/previews/FormPrimitivesPreview.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/previews/ToolCallPreview.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/settings/AgentForm/FormFields.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/settings/AgentForm/ModelCombobox.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/settings/AgentForm/utils.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/settings/AgentForm.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/settings/DetailEmptyState.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/settings/EditorSubHeader.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/settings/McpServerDraft.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/settings/McpServerForm.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/settings/MultiSelect.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/settings/SettingsField.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/settings/SettingsListView.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/settings/SettingsSection.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/settings/frontmatter.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/settings/schema.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ui/brand-header.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ui/calendar.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ui/checkbox.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ui/date-time-picker.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ui/dropdown-menu.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ui/input.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ui/number-input.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ui/queue-banner.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ui/radio-group.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ui/search-bar.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ui/section-card.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ui/select.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ui/sidebar-item.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ui/skeleton.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ui/textarea.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ui/token-meter.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ui/topbar-action.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ui/view-toggle.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/hooks/use-app-backend-bootstrap.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/hooks/use-edge-swipe.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/hooks/use-mobile-viewport.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/hooks/use-mobile.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/hooks/use-platform.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/hooks/use-resizable-width.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/hooks/use-tauri-drag.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/hooks/useAgentCapabilities.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/hooks/useKeyboardShortcuts.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/hooks/useModalFocus.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/hooks/useProximity.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/hooks/useReducedMotion.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/hooks/useThemePreference.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/lib/agent-roles.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/lib/app-backend.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/lib/coding-workspace-download.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/lib/desktop-commands.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/lib/desktop-notifications.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/lib/haptics.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/lib/motion.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/lib/open-external.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/lib/query-client.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/lib/route-restore.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/lib/speech-recognition.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/lib/theme.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/lib/tray.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/lib/updater.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/lib/workspace-download.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/main.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/index.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/keys.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/session-cache.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/useAgentFilesQuery.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/useAgentsQuery.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/useCommandsQuery.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/useFileRefsQuery.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/useHealthQuery.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/useMcpQuery.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/useMultimodalSettingsQuery.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/useObservabilitySummaryQuery.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/useProvidersQuery.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/useQuoteQuery.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/useSandboxSettingsQuery.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/useSchedulerQuery.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/useSessionsQuery.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/useSkillFilesQuery.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/useSnippetsQuery.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/useTeamStatusQuery.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/useTitleGenerationSettingsQuery.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/useTodosQuery.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/useTracesQuery.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/useWorkspaceFilesQuery.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/router.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/__root.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/index.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/scheduler.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/settings.agents.$name.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/settings.agents.new.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/settings.agents.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/settings.mcp.$name.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/settings.mcp.new.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/settings.mcp.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/settings.multimodal.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/settings.notifications.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/settings.providers/ModelsPanel.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/settings.providers/OAuthLoginDialog.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/settings.providers/ProviderCard.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/settings.providers/UsagePanel.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/settings.providers/providerUtils.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/settings.providers.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/settings.sandbox.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/settings.skills.$name.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/settings.skills.new.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/settings.skills.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/settings.title-generation.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/telemetry/chrome.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/telemetry/index.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/telemetry/primitives.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/telemetry/summary/DailyBars.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/telemetry/summary/SummaryView.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/telemetry/traces/TracesSection.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/telemetry/traces/TracesTable.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/telemetry/waterfall/SpanDetailPanel.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/telemetry/waterfall/Waterfall.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/telemetry/waterfall/categories.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/stores/cache-invalidation-bridge.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/stores/useGitPanelStore.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/stores/useSettingsStore.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/stores/useTeamStore/defaults.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/stores/useTeamStore/helpers.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/stores/useTeamStore/index.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/stores/useTeamStore/sse-reducer.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/stores/useTeamStore/types.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/stores/useToastStore.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/stores/useUIStore.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/utils/LazyMarkdownBlock.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/utils/blocks.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/utils/errors.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/utils/format.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/utils/markdown.tsx +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/utils/mcp-app-artifacts.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/utils/messages.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/utils/telemetryFormat.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/utils/thinking.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/utils/traceTree.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/utils/turns.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/utils/workspace.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/src/vite-env.d.ts +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/tsconfig.app.json +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/tsconfig.json +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/tsconfig.node.json +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/tsconfig.test.json +0 -0
- {openagentd-1.76.2 → openagentd-1.78.0}/web/vite.config.ts +0 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: oad/debug
|
|
3
|
+
description: OpenAgentd workflow for investigating bugs, regressions, sessions, and runtime issues.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Debug the reported issue across any surface of the OpenAgentd stack.
|
|
7
|
+
|
|
8
|
+
## 1. Triage the report
|
|
9
|
+
|
|
10
|
+
Extract: symptom, expected behavior, reproduction steps, **affected surface** (backend / frontend / desktop / mobile / agent / provider), session id, workspace, model, logs, and timing clues.
|
|
11
|
+
|
|
12
|
+
If the report is ambiguous, inspect available evidence first; ask only when a missing decision blocks safe progress.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## 2. Route to the right reference
|
|
17
|
+
|
|
18
|
+
Load the surface-specific reference for deeper commands, file maps, and gotchas:
|
|
19
|
+
|
|
20
|
+
- **Backend / API / agent / provider** → `oad/debug/reference/backend`
|
|
21
|
+
- **Frontend (web UI)** → `oad/debug/reference/frontend`
|
|
22
|
+
- **Desktop or mobile (Tauri / Rust)** → `oad/debug/reference/tauri`
|
|
23
|
+
|
|
24
|
+
When the issue spans multiple surfaces, load all relevant references.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## 3. Reproduce narrowly
|
|
29
|
+
|
|
30
|
+
- Recreate the smallest scenario that demonstrates the bug.
|
|
31
|
+
- Match the user's mode / workspace / model / message sequence when relevant.
|
|
32
|
+
- Capture durable evidence: raw HTTP response, persisted history, SSE events, logs, failing test output, or UI state snapshot.
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## 4. Diagnose from code and evidence
|
|
37
|
+
|
|
38
|
+
- Search for existing patterns before editing.
|
|
39
|
+
- Identify the boundary that failed: route validation, persistence, queueing, stream emission, agent loop, hook, tool, provider, frontend store, renderer, or Rust process.
|
|
40
|
+
- Preserve unrelated work; do not reset or overwrite changes you did not make.
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## 5. Fix surgically
|
|
45
|
+
|
|
46
|
+
- Make the smallest change that addresses the proven root cause.
|
|
47
|
+
- Add or update focused regression coverage at the closest layer.
|
|
48
|
+
- Update related docs only when behavior, API contract, or operator workflow changed.
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## 6. Verify and report
|
|
53
|
+
|
|
54
|
+
- Re-run the reproduction and focused tests / checks for the touched areas.
|
|
55
|
+
- If feasible, run the repository's standard lint / type / test commands for the changed surface.
|
|
56
|
+
- Report: root cause, changed files, checks run with results, and any remaining risk or unverified area.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Debug reference: Backend / API / agent / provider
|
|
2
|
+
|
|
3
|
+
Use when the symptom is in API routes, persistence, queueing, SSE streaming, agent loops, tool execution, or provider calls.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Evidence commands
|
|
8
|
+
|
|
9
|
+
Start with no-server diagnostics, then live ones:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
uv run python -m manual.backend_log # scan app.log for WARNING/ERROR (no server needed)
|
|
13
|
+
uv run python -m manual.health # server liveness + agent roster
|
|
14
|
+
uv run python -m manual.team_history <SESSION_ID>
|
|
15
|
+
uv run python -m manual.team_timeline <SESSION_ID> --full
|
|
16
|
+
uv run python -m manual.team_sse "message" --session <SESSION_ID>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
See `manual/AGENTS.md` for the full catalogue — every script supports `-h`.
|
|
20
|
+
|
|
21
|
+
Provider smoke tests:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
uv run python -m manual.try_providers.<provider> # e.g. manual.try_providers.anthropic
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## File map
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
app/
|
|
33
|
+
server.py FastAPI app entry, route registration
|
|
34
|
+
api/ Route handlers (sessions, agents, messages, tools, …)
|
|
35
|
+
core/ Business logic, agent runner, session manager
|
|
36
|
+
core/desktop_auth.py Desktop token validation
|
|
37
|
+
providers/ LLM provider adapters
|
|
38
|
+
db/ SQLModel models, migrations, session factories
|
|
39
|
+
manual/ Diagnostic scripts (no prod impact)
|
|
40
|
+
tests/ pytest coverage — match test to the layer you changed
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Common failure boundaries
|
|
46
|
+
|
|
47
|
+
| Boundary | What to inspect |
|
|
48
|
+
|---|---|
|
|
49
|
+
| Route validation | Pydantic schema, FastAPI dependency, HTTP status returned |
|
|
50
|
+
| Persistence | SQLModel model, Alembic migration, `db/` session factory |
|
|
51
|
+
| Queueing / ordering | Message queue in `core/`, SSE event emission order |
|
|
52
|
+
| Agent loop | `core/` agent runner, tool dispatch, compaction logic |
|
|
53
|
+
| SSE stream | `api/` stream route, `Emitter`, client reconnect behavior |
|
|
54
|
+
| Provider call | `providers/` adapter, env vars, retry/timeout config |
|
|
55
|
+
| Desktop auth | `core/desktop_auth.py`, token header, sidecar handshake |
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Verification
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
uv run pytest tests/ -x -q # full suite, stop on first fail
|
|
63
|
+
uv run pytest tests/path/to/test.py -x -v # focused
|
|
64
|
+
uv run ruff check app/ && uv run ruff format --check app/
|
|
65
|
+
uv run mypy app/
|
|
66
|
+
```
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Debug reference: Frontend (web UI)
|
|
2
|
+
|
|
3
|
+
Use when the symptom is in the React app — rendering, state, hooks, API calls, or live UI behavior.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Evidence commands
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
cd web
|
|
11
|
+
|
|
12
|
+
bun run typecheck # TypeScript errors across all source
|
|
13
|
+
bun run lint # ESLint (catches unused vars, hook rules, a11y)
|
|
14
|
+
bun test --reporter=verbose # full test suite
|
|
15
|
+
bun test <path/to/test> # focused test file
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
For live UI issues (visual regression, interaction bugs, DOM/CSS state) load and follow the **`oad/frontend-debug`** skill — it drives the real UI via browser-use and can screenshot, inspect state, and simulate mobile keyboard.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## File map
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
web/src/
|
|
26
|
+
components/ UI components
|
|
27
|
+
ui/ Zero-dep primitives (button, dialog, sheet, popover,
|
|
28
|
+
dropdown, tooltip, switch, tabs — no shadcn/Base UI/CVA)
|
|
29
|
+
_use-deferred-unmount.ts Exit-animation hook; must be called before any return null
|
|
30
|
+
AgentView/
|
|
31
|
+
UserBubble.tsx User message bubble (mention highlighting, collapse, copy)
|
|
32
|
+
InboxBubble.tsx Inter-agent inbox messages
|
|
33
|
+
InputBar.tsx Composer (file attach, mentions, submit)
|
|
34
|
+
FloatingInputBar.tsx Floating variant
|
|
35
|
+
ToolCall/ Tool call display components
|
|
36
|
+
…
|
|
37
|
+
hooks/ React hooks (session, streaming, settings, …)
|
|
38
|
+
stores/ Zustand stores (session, UI, pending messages, …)
|
|
39
|
+
queries/ TanStack Query factories (sessions, agents, messages)
|
|
40
|
+
api/ Typed API client + generated types
|
|
41
|
+
utils/
|
|
42
|
+
LazyMarkdownBlock.tsx Lazy markdown renderer (used in assistant + inbox bubbles)
|
|
43
|
+
routes/ TanStack Router pages
|
|
44
|
+
__tests__/ Vitest + RTL tests — mirror the component path
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Common failure boundaries
|
|
50
|
+
|
|
51
|
+
| Boundary | What to inspect |
|
|
52
|
+
|---|---|
|
|
53
|
+
| Render bug | Component file + its `__tests__/` counterpart |
|
|
54
|
+
| State desync | Zustand store (`stores/`) + TanStack Query key factory |
|
|
55
|
+
| API shape mismatch | `api/types.ts`, query/mutation in `queries/` |
|
|
56
|
+
| Hook misfire | Custom hook in `hooks/` + React rules (StrictMode double-invoke) |
|
|
57
|
+
| CSS / layout | Tailwind classes, `index.css` design tokens, dark-mode variants |
|
|
58
|
+
| UI primitive bug | `components/ui/*.tsx`; check portal positioning, `useDeferredUnmount` hook order, `tw-animate-css` classes |
|
|
59
|
+
| Streaming / SSE | `hooks/` streaming hook, `stores/` pending message queue |
|
|
60
|
+
| Mention / file ref | `InputBar.mentions.ts`, `UserBubble.tsx` → `renderMentionSegments` |
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Tauri-aware patterns in the frontend
|
|
65
|
+
|
|
66
|
+
Some behaviors differ between **web browser** and **Tauri webview**:
|
|
67
|
+
|
|
68
|
+
- **Opening URLs externally** — in a browser use `window.open(url, '_blank')`; in Tauri use `@tauri-apps/plugin-opener` → `openUrl`. Detect with `window.__TAURI_INTERNALS__` or the `isTauri()` helper.
|
|
69
|
+
- **File system access** — only available via Tauri commands, not the browser File API.
|
|
70
|
+
- **Auth token injection** — desktop injects `X-Desktop-Token` via the Tauri sidecar handshake; web relies on cookie/session.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Verification
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
cd web
|
|
78
|
+
bun run typecheck
|
|
79
|
+
bun run lint
|
|
80
|
+
bun test --reporter=verbose
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
For visual sign-off after a component change, take a screenshot via `oad/frontend-debug`.
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
# Debug reference: Tauri / Rust (desktop & mobile)
|
|
2
|
+
|
|
3
|
+
Use when the symptom is in the Rust layer — sidecar lifecycle, window management, tray, IPC, permissions, CSP, or native plugin behavior.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Surface overview
|
|
8
|
+
|
|
9
|
+
| Shell | Path | Role |
|
|
10
|
+
|---|---|---|
|
|
11
|
+
| Desktop | `desktop/src-tauri/` | Sidecar supervisor, tray, multi-window, auto-update |
|
|
12
|
+
| Mobile | `mobile/src-tauri/` | Minimal shell, no sidecar, remote API only |
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Evidence commands
|
|
17
|
+
|
|
18
|
+
### Fast Rust checks (no full Tauri build)
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# Desktop
|
|
22
|
+
cd desktop/src-tauri && cargo check
|
|
23
|
+
cd desktop/src-tauri && cargo clippy -- -D warnings
|
|
24
|
+
|
|
25
|
+
# Mobile
|
|
26
|
+
cd mobile/src-tauri && cargo check
|
|
27
|
+
cd mobile/src-tauri && cargo clippy -- -D warnings
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Run in dev mode (see live logs)
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
# Desktop — requires root `make dev` already running
|
|
34
|
+
make -C desktop dev # against external backend + Vite
|
|
35
|
+
make -C desktop dev-bundled # against bundled sidecar
|
|
36
|
+
|
|
37
|
+
# Mobile
|
|
38
|
+
make -C mobile dev # Android
|
|
39
|
+
make -C mobile ios-dev # iOS simulator
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Tauri dev mode prints Rust `log::` output to the terminal and writes to the platform log file. Filter with `RUST_LOG=debug` for verbose output.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## File map — desktop
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
desktop/src-tauri/
|
|
50
|
+
src/
|
|
51
|
+
main.rs App entry, AppState, tray, window lifecycle, updater, IPC commands
|
|
52
|
+
sidecar.rs Sidecar process supervisor, auth-token handshake
|
|
53
|
+
Cargo.toml Deps: tauri 2, tokio, anyhow, serde, plugins
|
|
54
|
+
tauri.conf.json Production config (updater endpoint, asset-protocol scope, bundles)
|
|
55
|
+
tauri.dev.conf.json Dev against external backend + Vite
|
|
56
|
+
tauri.dev-bundled.conf.json Dev against bundled sidecar
|
|
57
|
+
capabilities/ Tauri capability definitions (which commands/plugins frontend can call)
|
|
58
|
+
permissions/ Fine-grained permission sets
|
|
59
|
+
build.rs Tauri build integration
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## File map — mobile
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
mobile/src-tauri/
|
|
66
|
+
src/
|
|
67
|
+
main.rs Minimal app entry — no sidecar, no tray
|
|
68
|
+
Cargo.toml Minimal deps (no updater, no sidecar plugins)
|
|
69
|
+
tauri.conf.json Window size (390×844 default), CSP, iOS/Android bundle config
|
|
70
|
+
build.rs Tauri build integration
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## Common failure boundaries
|
|
76
|
+
|
|
77
|
+
| Symptom | Where to look |
|
|
78
|
+
|---|---|
|
|
79
|
+
| Sidecar won't start / crashes | `src/sidecar.rs` — spawn args, env vars, port detection |
|
|
80
|
+
| Auth token missing / rejected | `src/sidecar.rs` token generation, `core/desktop_auth.py` validation |
|
|
81
|
+
| Window not appearing / wrong size | `src/main.rs` `WebviewWindowBuilder` + all three Tauri configs |
|
|
82
|
+
| Tray icon / menu broken | `src/main.rs` `build_tray` / menu builders |
|
|
83
|
+
| URL not opening in browser | `OpenerExt::open_url` — check `tauri-plugin-opener` is registered and permission granted |
|
|
84
|
+
| IPC command not found | Missing `#[tauri::command]` + `invoke_handler` registration + capability entry |
|
|
85
|
+
| CSP blocking a resource | `tauri.conf.json` → `app.security.csp` (update all config variants) |
|
|
86
|
+
| Permission denied in webview | `capabilities/` — add the required permission set |
|
|
87
|
+
| Auto-update not triggering | Updater endpoint URL, `pubkey`, `createUpdaterArtifacts: true` in production config |
|
|
88
|
+
| iOS signing error | `mobile/ios-team.txt` (git-ignored) must contain valid Apple team ID |
|
|
89
|
+
| Process not cleaned up on quit | `src/main.rs` `RunEvent::ExitRequested` / `WindowEvent::CloseRequested` handlers |
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Config variants — keep all three consistent (desktop)
|
|
94
|
+
|
|
95
|
+
When changing window config, CSP, plugin config, or permissions, touch:
|
|
96
|
+
1. `tauri.conf.json` — production
|
|
97
|
+
2. `tauri.dev.conf.json` — external dev
|
|
98
|
+
3. `tauri.dev-bundled.conf.json` — bundled dev
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## Tauri ↔ frontend IPC patterns
|
|
103
|
+
|
|
104
|
+
- **Rust → JS events**: `app_handle.emit("event-name", payload)` / `window.emit(...)`
|
|
105
|
+
- **JS → Rust commands**: `invoke("command_name", args)` — requires `#[tauri::command]`, `invoke_handler`, and a `capabilities/` entry.
|
|
106
|
+
- **Detect Tauri in frontend**: check `window.__TAURI_INTERNALS__` or use an `isTauri()` utility.
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## Gotchas
|
|
111
|
+
|
|
112
|
+
- `#[cfg(test)]` dialog stubs in `main.rs` — keep in sync with plugin API signatures.
|
|
113
|
+
- Windows, macOS, and Linux have different process cleanup lifecycle events — test all three mentally before changing exit handlers.
|
|
114
|
+
- Never commit `target/`, generated sidecar bundles, or machine-local `.openagentd/` state.
|
|
115
|
+
- Mobile has **no sidecar** — always connects to an external API server.
|
|
116
|
+
- `cargo check` is fast; `cargo tauri build` is slow — always verify with `check` first.
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Verification
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
cd desktop/src-tauri && cargo check && cargo clippy -- -D warnings
|
|
124
|
+
cd mobile/src-tauri && cargo check && cargo clippy -- -D warnings
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
For a full build smoke test:
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
make -C desktop build # release bundle (slow — only when packaging)
|
|
131
|
+
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openagentd
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.78.0
|
|
4
4
|
Summary: Self-hosted AI agents — streaming chat, tool use, persistent memory, multi-agent teams
|
|
5
5
|
Project-URL: Repository, https://github.com/lthoangg/openagentd
|
|
6
6
|
Project-URL: Bug Tracker, https://github.com/lthoangg/openagentd/issues
|
|
@@ -27,6 +27,31 @@ Hierarchy::
|
|
|
27
27
|
|
|
28
28
|
from __future__ import annotations
|
|
29
29
|
|
|
30
|
+
from typing import TYPE_CHECKING
|
|
31
|
+
|
|
32
|
+
if TYPE_CHECKING:
|
|
33
|
+
from pydantic import ValidationError
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def format_validation_error(exc: "ValidationError") -> str:
|
|
37
|
+
"""Return a clean, single-line summary of a Pydantic ValidationError.
|
|
38
|
+
|
|
39
|
+
Strips the docs URL, type codes, and raw input values that Pydantic
|
|
40
|
+
appends by default — leaving only the field path and human message,
|
|
41
|
+
which is all an LLM (or a user) needs to self-correct.
|
|
42
|
+
|
|
43
|
+
Example output::
|
|
44
|
+
|
|
45
|
+
members: Input should be a valid list
|
|
46
|
+
a -> 0 -> value: Input should be a valid integer; b: Field required
|
|
47
|
+
"""
|
|
48
|
+
return "; ".join(
|
|
49
|
+
f"{' -> '.join(str(loc) for loc in e['loc'])}: {e['msg']}"
|
|
50
|
+
if e.get("loc")
|
|
51
|
+
else e["msg"]
|
|
52
|
+
for e in exc.errors(include_url=False)
|
|
53
|
+
)
|
|
54
|
+
|
|
30
55
|
|
|
31
56
|
class OpenAgentdError(Exception):
|
|
32
57
|
"""Base exception for all OpenAgentd domain errors."""
|
|
@@ -78,7 +78,11 @@ from pydantic import BaseModel, ValidationError, create_model
|
|
|
78
78
|
|
|
79
79
|
from loguru import logger
|
|
80
80
|
|
|
81
|
-
from app.agent.errors import
|
|
81
|
+
from app.agent.errors import (
|
|
82
|
+
ToolArgumentError,
|
|
83
|
+
ToolExecutionError,
|
|
84
|
+
format_validation_error,
|
|
85
|
+
)
|
|
82
86
|
|
|
83
87
|
|
|
84
88
|
class InjectedArg:
|
|
@@ -259,7 +263,7 @@ class Tool:
|
|
|
259
263
|
validated_model = self._model(**llm_kwargs)
|
|
260
264
|
except ValidationError as exc:
|
|
261
265
|
raise ToolArgumentError(
|
|
262
|
-
f"Invalid arguments for tool '{self.name}': {exc}"
|
|
266
|
+
f"Invalid arguments for tool '{self.name}': {format_validation_error(exc)}"
|
|
263
267
|
) from exc
|
|
264
268
|
if self._model_param is not None:
|
|
265
269
|
# The function wants the validated model as a single argument.
|
|
@@ -30,6 +30,7 @@ from app.api.routes.settings import (
|
|
|
30
30
|
_provider_is_configured,
|
|
31
31
|
_provider_saved_overrides,
|
|
32
32
|
)
|
|
33
|
+
from app.api.schemas.base import _validation_detail
|
|
33
34
|
from app.api.schemas.agents import (
|
|
34
35
|
AgentDeleteResponse,
|
|
35
36
|
AgentDetail,
|
|
@@ -147,10 +148,7 @@ def _parse_content(name: str, content: str) -> AgentConfig:
|
|
|
147
148
|
try:
|
|
148
149
|
return AgentConfig.model_validate(raw_meta)
|
|
149
150
|
except ValidationError as exc:
|
|
150
|
-
|
|
151
|
-
f"{'.'.join(str(p) for p in e['loc'])}: {e['msg']}" for e in exc.errors()
|
|
152
|
-
)
|
|
153
|
-
raise ValueError(errors) from exc
|
|
151
|
+
raise ValueError(_validation_detail(exc)) from exc
|
|
154
152
|
|
|
155
153
|
|
|
156
154
|
def _require_frontmatter_name(name: str, content: str) -> None:
|
|
@@ -590,7 +590,11 @@ async def get_coding_workspace_git_history(
|
|
|
590
590
|
graph="",
|
|
591
591
|
)
|
|
592
592
|
|
|
593
|
-
# 1. Fetch structured commits (limit + 1 to detect next page)
|
|
593
|
+
# 1. Fetch structured commits (limit + 1 to detect next page).
|
|
594
|
+
# Fields: sha, short_sha, author_name, author_email, timestamp, subject,
|
|
595
|
+
# body, refs — separated by NUL (\x00). Each *record* ends with
|
|
596
|
+
# the ASCII Record Separator (\x1e) so that multi-line body text doesn't
|
|
597
|
+
# break parsing.
|
|
594
598
|
log_args = ["log"]
|
|
595
599
|
if cursor:
|
|
596
600
|
log_args.extend([cursor, "--skip=1"])
|
|
@@ -598,7 +602,7 @@ async def get_coding_workspace_git_history(
|
|
|
598
602
|
[
|
|
599
603
|
"-n",
|
|
600
604
|
str(limit + 1),
|
|
601
|
-
"--pretty=format:%H%x00%h%x00%an%x00%ae%x00%at%x00%s%x00%d",
|
|
605
|
+
"--pretty=format:%H%x00%h%x00%an%x00%ae%x00%at%x00%s%x00%b%x00%d%x1e",
|
|
602
606
|
]
|
|
603
607
|
)
|
|
604
608
|
if all_branches:
|
|
@@ -607,33 +611,36 @@ async def get_coding_workspace_git_history(
|
|
|
607
611
|
commits_out = await _run_git(resolved, *log_args)
|
|
608
612
|
commits = []
|
|
609
613
|
if commits_out:
|
|
610
|
-
# Split
|
|
611
|
-
|
|
612
|
-
|
|
614
|
+
# Split records on \x1e (each record ends with it, so the last split
|
|
615
|
+
# element will be an empty string — skip it).
|
|
616
|
+
for record in commits_out.split("\x1e"):
|
|
617
|
+
record = record.strip("\n")
|
|
618
|
+
if not record:
|
|
613
619
|
continue
|
|
614
|
-
parts =
|
|
615
|
-
if len(parts)
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
620
|
+
parts = record.split("\x00")
|
|
621
|
+
if len(parts) < 6:
|
|
622
|
+
continue
|
|
623
|
+
try:
|
|
624
|
+
timestamp = int(parts[4])
|
|
625
|
+
except ValueError:
|
|
626
|
+
timestamp = 0
|
|
627
|
+
|
|
628
|
+
body_raw = parts[6].strip() if len(parts) > 6 else ""
|
|
629
|
+
refs = (
|
|
630
|
+
parts[7].strip(" ()\n") if len(parts) > 7 and parts[7].strip() else None
|
|
631
|
+
)
|
|
632
|
+
commits.append(
|
|
633
|
+
GitCommit(
|
|
634
|
+
sha=parts[0],
|
|
635
|
+
short_sha=parts[1],
|
|
636
|
+
author_name=parts[2],
|
|
637
|
+
author_email=parts[3],
|
|
638
|
+
timestamp=timestamp,
|
|
639
|
+
subject=parts[5],
|
|
640
|
+
body=body_raw or None,
|
|
641
|
+
refs=refs,
|
|
636
642
|
)
|
|
643
|
+
)
|
|
637
644
|
|
|
638
645
|
# 2. Determine next_cursor and slice
|
|
639
646
|
next_cursor = None
|
|
@@ -21,4 +21,4 @@ class _ExcludeNoneModel(BaseModel):
|
|
|
21
21
|
|
|
22
22
|
def _validation_detail(exc: ValidationError) -> str:
|
|
23
23
|
"""Extract a human-readable detail string from a Pydantic ValidationError."""
|
|
24
|
-
return "; ".join(e["msg"] for e in exc.errors())
|
|
24
|
+
return "; ".join(e["msg"] for e in exc.errors(include_url=False))
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.78.0
|
|
@@ -403,9 +403,9 @@ checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649"
|
|
|
403
403
|
|
|
404
404
|
[[package]]
|
|
405
405
|
name = "byte-unit"
|
|
406
|
-
version = "5.2.
|
|
406
|
+
version = "5.2.5"
|
|
407
407
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
408
|
-
checksum = "
|
|
408
|
+
checksum = "4a813de7f2bbedb7dce265b64f1cf5908ebe4d56281ece8d847e98113788b9b0"
|
|
409
409
|
dependencies = [
|
|
410
410
|
"rust_decimal",
|
|
411
411
|
"schemars 1.2.1",
|
|
@@ -483,9 +483,9 @@ dependencies = [
|
|
|
483
483
|
|
|
484
484
|
[[package]]
|
|
485
485
|
name = "camino"
|
|
486
|
-
version = "1.2.
|
|
486
|
+
version = "1.2.4"
|
|
487
487
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
488
|
-
checksum = "
|
|
488
|
+
checksum = "5f2d30e4173c4026932d51d31d6b0613b1fd3014bf3f9f8943d4ba139c437ba0"
|
|
489
489
|
dependencies = [
|
|
490
490
|
"serde_core",
|
|
491
491
|
]
|
|
@@ -2603,7 +2603,7 @@ dependencies = [
|
|
|
2603
2603
|
|
|
2604
2604
|
[[package]]
|
|
2605
2605
|
name = "openagentd-desktop"
|
|
2606
|
-
version = "1.
|
|
2606
|
+
version = "1.78.0"
|
|
2607
2607
|
dependencies = [
|
|
2608
2608
|
"anyhow",
|
|
2609
2609
|
"block2",
|
|
@@ -177,28 +177,6 @@ fn configure_window_chrome(
|
|
|
177
177
|
}
|
|
178
178
|
}
|
|
179
179
|
|
|
180
|
-
/// Re-assert the macOS overlay title-bar chrome on `window`.
|
|
181
|
-
///
|
|
182
|
-
/// New windows occasionally lose their traffic-light vertical centring after
|
|
183
|
-
/// the webview triggers an AppKit relayout (e.g. navigating into
|
|
184
|
-
/// cockpit/coding mode). Re-applying ``TitleBarStyle::Overlay`` toggles the
|
|
185
|
-
/// window style mask (tao `set_style_mask_sync`), which forces AppKit to
|
|
186
|
-
/// recompute the standard window buttons and marks the content view for
|
|
187
|
-
/// redraw. tao's `draw_rect` then re-runs its stored `inset_traffic_lights`,
|
|
188
|
-
/// restoring the configured 12/22 pt position. No-op off macOS.
|
|
189
|
-
#[tauri::command]
|
|
190
|
-
fn reapply_window_chrome(window: tauri::WebviewWindow) -> Result<(), String> {
|
|
191
|
-
#[cfg(target_os = "macos")]
|
|
192
|
-
{
|
|
193
|
-
use tauri::TitleBarStyle;
|
|
194
|
-
window
|
|
195
|
-
.set_title_bar_style(TitleBarStyle::Overlay)
|
|
196
|
-
.map_err(|e| format!("{e:#}"))?;
|
|
197
|
-
}
|
|
198
|
-
#[cfg(not(target_os = "macos"))]
|
|
199
|
-
let _ = window;
|
|
200
|
-
Ok(())
|
|
201
|
-
}
|
|
202
180
|
|
|
203
181
|
#[derive(Clone, Serialize)]
|
|
204
182
|
struct BackendReady {
|
|
@@ -1205,7 +1183,17 @@ async fn run_update_install(app: AppHandle) -> Result<(), String> {
|
|
|
1205
1183
|
|
|
1206
1184
|
update_tray_status(&app, "Status: Installing update…");
|
|
1207
1185
|
log::info!("updater install applying version={}", update.version);
|
|
1208
|
-
|
|
1186
|
+
// `tauri_plugin_updater`'s `install()` performs heavy filesystem work
|
|
1187
|
+
// (decompression, bundle copy, codesign verification on macOS). Running it
|
|
1188
|
+
// directly on an async task blocks the tokio thread, which can starve the
|
|
1189
|
+
// logger and prevent the subsequent `run_on_main_thread` closure from being
|
|
1190
|
+
// scheduled — causing `restart()` to never fire and the 60 s frontend
|
|
1191
|
+
// timeout to trigger. Off-load to a dedicated blocking thread so the async
|
|
1192
|
+
// runtime stays responsive throughout the install.
|
|
1193
|
+
let install_result = tokio::task::spawn_blocking(move || update.install(bytes))
|
|
1194
|
+
.await
|
|
1195
|
+
.map_err(|e| format!("Install task panicked: {e}"))?;
|
|
1196
|
+
install_result.map_err(|e| {
|
|
1209
1197
|
update_tray_status(&app, "Status: Running");
|
|
1210
1198
|
format!("Failed to install update: {e}")
|
|
1211
1199
|
})?;
|
|
@@ -2190,7 +2178,6 @@ fn main() {
|
|
|
2190
2178
|
app_use_bundled_backend,
|
|
2191
2179
|
app_stop_bundled_backend,
|
|
2192
2180
|
app_new_window,
|
|
2193
|
-
reapply_window_chrome,
|
|
2194
2181
|
set_tray_session,
|
|
2195
2182
|
updater_check,
|
|
2196
2183
|
updater_download,
|