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.
Files changed (1221) hide show
  1. openagentd-1.78.0/.openagentd/skills/oad/debug/SKILL.md +56 -0
  2. openagentd-1.78.0/.openagentd/skills/oad/debug/reference/backend.md +66 -0
  3. openagentd-1.78.0/.openagentd/skills/oad/debug/reference/frontend.md +83 -0
  4. openagentd-1.78.0/.openagentd/skills/oad/debug/reference/tauri.md +131 -0
  5. {openagentd-1.76.2 → openagentd-1.78.0}/PKG-INFO +1 -1
  6. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/errors.py +25 -0
  7. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/googlegenai/schemas.py +1 -1
  8. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/registry.py +6 -2
  9. {openagentd-1.76.2 → openagentd-1.78.0}/app/api/routes/agents.py +2 -4
  10. {openagentd-1.76.2 → openagentd-1.78.0}/app/api/routes/team/files.py +34 -27
  11. {openagentd-1.76.2 → openagentd-1.78.0}/app/api/schemas/base.py +1 -1
  12. {openagentd-1.76.2 → openagentd-1.78.0}/app/api/schemas/team.py +1 -0
  13. openagentd-1.78.0/app/version.txt +1 -0
  14. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/Cargo.lock +5 -5
  15. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/Cargo.toml +1 -1
  16. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/src/main.rs +11 -24
  17. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/tauri.conf.json +1 -1
  18. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/agent/tools.md +27 -5
  19. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/desktop.md +1 -1
  20. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/features.md +26 -2
  21. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/web/chrome.md +4 -2
  22. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/web/workspace-files.md +7 -1
  23. {openagentd-1.76.2 → openagentd-1.78.0}/mobile/src-tauri/Cargo.lock +3 -3
  24. {openagentd-1.76.2 → openagentd-1.78.0}/mobile/src-tauri/Cargo.toml +1 -1
  25. {openagentd-1.76.2 → openagentd-1.78.0}/mobile/src-tauri/tauri.conf.json +1 -1
  26. {openagentd-1.76.2 → openagentd-1.78.0}/pyproject.toml +1 -1
  27. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/googlegenai/test_googlegenai.py +85 -0
  28. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/tools/test_registry.py +196 -0
  29. openagentd-1.78.0/tests/api/schemas/test_base.py +145 -0
  30. openagentd-1.78.0/tests/core/test_errors.py +313 -0
  31. openagentd-1.78.0/tests/services/__init__.py +0 -0
  32. {openagentd-1.76.2 → openagentd-1.78.0}/uv.lock +1 -1
  33. {openagentd-1.76.2 → openagentd-1.78.0}/web/AGENTS.md +4 -3
  34. {openagentd-1.76.2 → openagentd-1.78.0}/web/bun.lock +3 -352
  35. {openagentd-1.76.2 → openagentd-1.78.0}/web/package.json +1 -6
  36. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/AGENTS.md +25 -0
  37. openagentd-1.78.0/web/src/__tests__/components/CodingWorkspacePanel.commits.test.tsx +199 -0
  38. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/DateTimePicker.test.tsx +4 -1
  39. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/UserBubbleCollapse.test.tsx +122 -0
  40. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/api/types.ts +1 -0
  41. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/AgentPane.tsx +31 -16
  42. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/AgentTopbar.tsx +5 -1
  43. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/AgentView/UserBubble.tsx +33 -3
  44. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/AgentView.tsx +24 -24
  45. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/CodingSidebar.tsx +6 -6
  46. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/CodingWorkspacePanel.tsx +14 -7
  47. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/TeamChatView/TeamChatHeader.tsx +1 -1
  48. openagentd-1.78.0/web/src/components/ui/_use-deferred-unmount.ts +41 -0
  49. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ui/agent-chip.tsx +21 -34
  50. openagentd-1.78.0/web/src/components/ui/button.tsx +110 -0
  51. openagentd-1.78.0/web/src/components/ui/dialog.tsx +244 -0
  52. openagentd-1.78.0/web/src/components/ui/dropdown.tsx +237 -0
  53. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ui/long-press-button.tsx +2 -3
  54. openagentd-1.78.0/web/src/components/ui/popover.tsx +266 -0
  55. openagentd-1.78.0/web/src/components/ui/sheet.tsx +236 -0
  56. openagentd-1.78.0/web/src/components/ui/switch.tsx +61 -0
  57. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ui/tabs.tsx +7 -17
  58. openagentd-1.78.0/web/src/components/ui/tooltip.tsx +177 -0
  59. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/index.css +5 -68
  60. openagentd-1.78.0/web/src/lib/utils.ts +21 -0
  61. openagentd-1.78.0/web/src/lib/window-title.ts +34 -0
  62. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/cockpit.tsx +3 -6
  63. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/settings.index.tsx +1 -1
  64. openagentd-1.76.2/.openagentd/skills/oad/debug/SKILL.md +0 -46
  65. openagentd-1.76.2/app/version.txt +0 -1
  66. openagentd-1.76.2/tests/core/test_errors.py +0 -100
  67. openagentd-1.76.2/web/components.json +0 -25
  68. openagentd-1.76.2/web/src/components/ui/button.tsx +0 -125
  69. openagentd-1.76.2/web/src/components/ui/dialog.tsx +0 -160
  70. openagentd-1.76.2/web/src/components/ui/dropdown.tsx +0 -189
  71. openagentd-1.76.2/web/src/components/ui/popover.tsx +0 -88
  72. openagentd-1.76.2/web/src/components/ui/sheet.tsx +0 -136
  73. openagentd-1.76.2/web/src/components/ui/switch.tsx +0 -57
  74. openagentd-1.76.2/web/src/components/ui/tooltip.tsx +0 -64
  75. openagentd-1.76.2/web/src/lib/utils.ts +0 -6
  76. openagentd-1.76.2/web/src/lib/window-title.ts +0 -71
  77. {openagentd-1.76.2 → openagentd-1.78.0}/.env.example +0 -0
  78. {openagentd-1.76.2 → openagentd-1.78.0}/.gitattributes +0 -0
  79. {openagentd-1.76.2 → openagentd-1.78.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  80. {openagentd-1.76.2 → openagentd-1.78.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  81. {openagentd-1.76.2 → openagentd-1.78.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  82. {openagentd-1.76.2 → openagentd-1.78.0}/.github/ISSUE_TEMPLATE/known_issue.md +0 -0
  83. {openagentd-1.76.2 → openagentd-1.78.0}/.github/ISSUE_TEMPLATE/roadmap_item.md +0 -0
  84. {openagentd-1.76.2 → openagentd-1.78.0}/.github/dependabot.yml +0 -0
  85. {openagentd-1.76.2 → openagentd-1.78.0}/.github/pull_request_template.md +0 -0
  86. {openagentd-1.76.2 → openagentd-1.78.0}/.github/workflows/core.yml +0 -0
  87. {openagentd-1.76.2 → openagentd-1.78.0}/.github/workflows/publish-homebrew-cask.yml +0 -0
  88. {openagentd-1.76.2 → openagentd-1.78.0}/.github/workflows/publish-homebrew.yml +0 -0
  89. {openagentd-1.76.2 → openagentd-1.78.0}/.github/workflows/release-desktop.yml +0 -0
  90. {openagentd-1.76.2 → openagentd-1.78.0}/.github/workflows/release.yml +0 -0
  91. {openagentd-1.76.2 → openagentd-1.78.0}/.github/workflows/tauri.yml +0 -0
  92. {openagentd-1.76.2 → openagentd-1.78.0}/.github/workflows/version-check.yml +0 -0
  93. {openagentd-1.76.2 → openagentd-1.78.0}/.github/workflows/web.yml +0 -0
  94. {openagentd-1.76.2 → openagentd-1.78.0}/.gitignore +0 -0
  95. {openagentd-1.76.2 → openagentd-1.78.0}/.openagentd/commands/oad/debug.md +0 -0
  96. {openagentd-1.76.2 → openagentd-1.78.0}/.openagentd/commands/oad/release.md +0 -0
  97. {openagentd-1.76.2 → openagentd-1.78.0}/.openagentd/skills/oad/commit/SKILL.md +0 -0
  98. {openagentd-1.76.2 → openagentd-1.78.0}/.openagentd/skills/oad/docs/SKILL.md +0 -0
  99. {openagentd-1.76.2 → openagentd-1.78.0}/.openagentd/skills/oad/frontend-debug/SKILL.md +0 -0
  100. {openagentd-1.76.2 → openagentd-1.78.0}/.openagentd/skills/oad/release/SKILL.md +0 -0
  101. {openagentd-1.76.2 → openagentd-1.78.0}/.openagentd/snippets/oad/debug.md +0 -0
  102. {openagentd-1.76.2 → openagentd-1.78.0}/.openagentd/snippets/oad/release.md +0 -0
  103. {openagentd-1.76.2 → openagentd-1.78.0}/.openagentd/snippets/oad.md +0 -0
  104. {openagentd-1.76.2 → openagentd-1.78.0}/.opencode/commands/pr.md +0 -0
  105. {openagentd-1.76.2 → openagentd-1.78.0}/.opencode/commands/release.md +0 -0
  106. {openagentd-1.76.2 → openagentd-1.78.0}/.pre-commit-config.yaml +0 -0
  107. {openagentd-1.76.2 → openagentd-1.78.0}/AGENTS.md +0 -0
  108. {openagentd-1.76.2 → openagentd-1.78.0}/CODE_OF_CONDUCT.md +0 -0
  109. {openagentd-1.76.2 → openagentd-1.78.0}/CONTRIBUTING.md +0 -0
  110. {openagentd-1.76.2 → openagentd-1.78.0}/LICENSE +0 -0
  111. {openagentd-1.76.2 → openagentd-1.78.0}/MIGRATION.md +0 -0
  112. {openagentd-1.76.2 → openagentd-1.78.0}/Makefile +0 -0
  113. {openagentd-1.76.2 → openagentd-1.78.0}/NOTICE +0 -0
  114. {openagentd-1.76.2 → openagentd-1.78.0}/README.md +0 -0
  115. {openagentd-1.76.2 → openagentd-1.78.0}/SECURITY.md +0 -0
  116. {openagentd-1.76.2 → openagentd-1.78.0}/app/AGENTS.md +0 -0
  117. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/AGENTS.md +0 -0
  118. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/__init__.py +0 -0
  119. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/agent_loop/__init__.py +0 -0
  120. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/agent_loop/core.py +0 -0
  121. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/agent_loop/retry.py +0 -0
  122. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/agent_loop/streaming.py +0 -0
  123. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/agent_loop/tool_dispatch.py +0 -0
  124. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/agent_loop/tool_executor.py +0 -0
  125. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/artifacts.py +0 -0
  126. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/builtin_prompts.py +0 -0
  127. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/builtin_skills/__init__.py +0 -0
  128. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/builtin_skills/browser-use/SKILL.md +0 -0
  129. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/builtin_skills/mcp-installer/SKILL.md +0 -0
  130. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/builtin_skills/mcp-installer/mcp_apply.py +0 -0
  131. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/builtin_skills/plugin-installer/SKILL.md +0 -0
  132. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/builtin_skills/self-healing/SKILL.md +0 -0
  133. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/builtin_skills/skill-installer/SKILL.md +0 -0
  134. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/checkpointer.py +0 -0
  135. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/drift.py +0 -0
  136. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/hooks/__init__.py +0 -0
  137. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/hooks/base.py +0 -0
  138. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/hooks/continuation.py +0 -0
  139. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/hooks/dynamic_prompt.py +0 -0
  140. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/hooks/otel.py +0 -0
  141. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/hooks/session_log.py +0 -0
  142. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/hooks/stream_publisher.py +0 -0
  143. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/hooks/streaming.py +0 -0
  144. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/hooks/summarization.py +0 -0
  145. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/hooks/telemetry.py +0 -0
  146. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/hooks/title_generation.py +0 -0
  147. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/hooks/tool_result_offload.py +0 -0
  148. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/hooks/workspace_instructions.py +0 -0
  149. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/loader.py +0 -0
  150. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/mcp/__init__.py +0 -0
  151. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/mcp/config.py +0 -0
  152. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/mcp/manager.py +0 -0
  153. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/mcp/oauth.py +0 -0
  154. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/mcp/tools.py +0 -0
  155. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/mode/team/__init__.py +0 -0
  156. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/mode/team/hooks/__init__.py +0 -0
  157. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/mode/team/hooks/queued_injection.py +0 -0
  158. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/mode/team/hooks/team_inbox.py +0 -0
  159. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/mode/team/hooks/team_prompt.py +0 -0
  160. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/mode/team/mailbox.py +0 -0
  161. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/mode/team/manage.py +0 -0
  162. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/mode/team/member.py +0 -0
  163. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/mode/team/team.py +0 -0
  164. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/mode/team/tools.py +0 -0
  165. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/multimodal.py +0 -0
  166. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/permission.py +0 -0
  167. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/plugins/__init__.py +0 -0
  168. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/plugins/events.py +0 -0
  169. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/plugins/loader.py +0 -0
  170. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/plugins/role.py +0 -0
  171. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/__init__.py +0 -0
  172. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/anthropic/__init__.py +0 -0
  173. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/anthropic/anthropic.py +0 -0
  174. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/base.py +0 -0
  175. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/bedrock/__init__.py +0 -0
  176. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/bedrock/bedrock.py +0 -0
  177. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/capabilities.py +0 -0
  178. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/catalog.py +0 -0
  179. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/codex/__init__.py +0 -0
  180. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/codex/codex.py +0 -0
  181. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/codex/oauth.py +0 -0
  182. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/codex/usage.py +0 -0
  183. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/copilot/USAGE.md +0 -0
  184. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/copilot/__init__.py +0 -0
  185. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/copilot/copilot.py +0 -0
  186. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/copilot/oauth.py +0 -0
  187. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/copilot/schemas.py +0 -0
  188. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/copilot/usage.py +0 -0
  189. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/deepseek/__init__.py +0 -0
  190. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/deepseek/deepseek.py +0 -0
  191. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/deepseek/schemas.py +0 -0
  192. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/factory.py +0 -0
  193. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/googlegenai/__init__.py +0 -0
  194. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/googlegenai/googlegenai.py +0 -0
  195. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/model_discovery.py +0 -0
  196. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/model_metadata.py +0 -0
  197. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/model_registry.json +0 -0
  198. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/model_registry.py +0 -0
  199. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/ollama/__init__.py +0 -0
  200. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/ollama/ollama.py +0 -0
  201. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/openai/__init__.py +0 -0
  202. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/openai/compatible.py +0 -0
  203. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/openai/compatible_provider.py +0 -0
  204. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/openai/completions.py +0 -0
  205. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/openai/openai.py +0 -0
  206. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/openai/responses.py +0 -0
  207. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/openai/sanitization.py +0 -0
  208. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/openai/schemas.py +0 -0
  209. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/plugin_api.py +0 -0
  210. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/plugin_registry.py +0 -0
  211. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/router9/__init__.py +0 -0
  212. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/router9/router9.py +0 -0
  213. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/streaming.py +0 -0
  214. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/unconfigured.py +0 -0
  215. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/vertexai/__init__.py +0 -0
  216. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/vertexai/vertexai.py +0 -0
  217. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/xai/__init__.py +0 -0
  218. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/xai/xai.py +0 -0
  219. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/zai/__init__.py +0 -0
  220. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/providers/zai/zai.py +0 -0
  221. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/sandbox.py +0 -0
  222. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/sandbox_config.py +0 -0
  223. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/schemas/agent.py +0 -0
  224. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/schemas/chat.py +0 -0
  225. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/schemas/events.py +0 -0
  226. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/state.py +0 -0
  227. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tool_id_resolver.py +0 -0
  228. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/__init__.py +0 -0
  229. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/builtin/__init__.py +0 -0
  230. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/builtin/date.py +0 -0
  231. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/builtin/filesystem/__init__.py +0 -0
  232. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/builtin/filesystem/_config_watch.py +0 -0
  233. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/builtin/filesystem/_ignore.py +0 -0
  234. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/builtin/filesystem/edit.py +0 -0
  235. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/builtin/filesystem/glob.py +0 -0
  236. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/builtin/filesystem/grep.py +0 -0
  237. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/builtin/filesystem/handlers.py +0 -0
  238. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/builtin/filesystem/ls.py +0 -0
  239. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/builtin/filesystem/patch.py +0 -0
  240. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/builtin/filesystem/read.py +0 -0
  241. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/builtin/filesystem/rm.py +0 -0
  242. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/builtin/filesystem/write.py +0 -0
  243. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/builtin/schedule.py +0 -0
  244. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/builtin/shell.py +0 -0
  245. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/builtin/shell_runtime.py +0 -0
  246. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/builtin/skill.py +0 -0
  247. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/builtin/todo.py +0 -0
  248. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/builtin/web.py +0 -0
  249. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/multimodalities/__init__.py +0 -0
  250. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/multimodalities/_config.py +0 -0
  251. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/multimodalities/_metrics.py +0 -0
  252. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/multimodalities/backends/__init__.py +0 -0
  253. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/multimodalities/backends/codex.py +0 -0
  254. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/multimodalities/backends/googlegenai.py +0 -0
  255. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/multimodalities/backends/googlegenai_video.py +0 -0
  256. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/multimodalities/backends/openai.py +0 -0
  257. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/multimodalities/image.py +0 -0
  258. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/tools/multimodalities/video.py +0 -0
  259. {openagentd-1.76.2 → openagentd-1.78.0}/app/agent/usage.py +0 -0
  260. {openagentd-1.76.2 → openagentd-1.78.0}/app/alembic.ini +0 -0
  261. {openagentd-1.76.2 → openagentd-1.78.0}/app/api/AGENTS.md +0 -0
  262. {openagentd-1.76.2 → openagentd-1.78.0}/app/api/__init__.py +0 -0
  263. {openagentd-1.76.2 → openagentd-1.78.0}/app/api/app.py +0 -0
  264. {openagentd-1.76.2 → openagentd-1.78.0}/app/api/deps.py +0 -0
  265. {openagentd-1.76.2 → openagentd-1.78.0}/app/api/routes/__init__.py +0 -0
  266. {openagentd-1.76.2 → openagentd-1.78.0}/app/api/routes/auth.py +0 -0
  267. {openagentd-1.76.2 → openagentd-1.78.0}/app/api/routes/commands.py +0 -0
  268. {openagentd-1.76.2 → openagentd-1.78.0}/app/api/routes/diagnostics.py +0 -0
  269. {openagentd-1.76.2 → openagentd-1.78.0}/app/api/routes/health.py +0 -0
  270. {openagentd-1.76.2 → openagentd-1.78.0}/app/api/routes/mcp.py +0 -0
  271. {openagentd-1.76.2 → openagentd-1.78.0}/app/api/routes/observability.py +0 -0
  272. {openagentd-1.76.2 → openagentd-1.78.0}/app/api/routes/quote.py +0 -0
  273. {openagentd-1.76.2 → openagentd-1.78.0}/app/api/routes/scheduler.py +0 -0
  274. {openagentd-1.76.2 → openagentd-1.78.0}/app/api/routes/settings.py +0 -0
  275. {openagentd-1.76.2 → openagentd-1.78.0}/app/api/routes/skills.py +0 -0
  276. {openagentd-1.76.2 → openagentd-1.78.0}/app/api/routes/snippets.py +0 -0
  277. {openagentd-1.76.2 → openagentd-1.78.0}/app/api/routes/team/__init__.py +0 -0
  278. {openagentd-1.76.2 → openagentd-1.78.0}/app/api/routes/team/_helpers.py +0 -0
  279. {openagentd-1.76.2 → openagentd-1.78.0}/app/api/routes/team/chat.py +0 -0
  280. {openagentd-1.76.2 → openagentd-1.78.0}/app/api/routes/team/permissions.py +0 -0
  281. {openagentd-1.76.2 → openagentd-1.78.0}/app/api/routes/team/todos.py +0 -0
  282. {openagentd-1.76.2 → openagentd-1.78.0}/app/api/routes/team/worktrees.py +0 -0
  283. {openagentd-1.76.2 → openagentd-1.78.0}/app/api/schemas/__init__.py +0 -0
  284. {openagentd-1.76.2 → openagentd-1.78.0}/app/api/schemas/agents.py +0 -0
  285. {openagentd-1.76.2 → openagentd-1.78.0}/app/api/schemas/chat.py +0 -0
  286. {openagentd-1.76.2 → openagentd-1.78.0}/app/api/schemas/commands.py +0 -0
  287. {openagentd-1.76.2 → openagentd-1.78.0}/app/api/schemas/mcp.py +0 -0
  288. {openagentd-1.76.2 → openagentd-1.78.0}/app/api/schemas/sessions.py +0 -0
  289. {openagentd-1.76.2 → openagentd-1.78.0}/app/api/schemas/settings.py +0 -0
  290. {openagentd-1.76.2 → openagentd-1.78.0}/app/api/schemas/skills.py +0 -0
  291. {openagentd-1.76.2 → openagentd-1.78.0}/app/api/schemas/snippets.py +0 -0
  292. {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/__init__.py +0 -0
  293. {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/__main__.py +0 -0
  294. {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/commands/__init__.py +0 -0
  295. {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/commands/address.py +0 -0
  296. {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/commands/auth.py +0 -0
  297. {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/commands/cleanup.py +0 -0
  298. {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/commands/doctor.py +0 -0
  299. {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/commands/health.py +0 -0
  300. {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/commands/init.py +0 -0
  301. {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/commands/logs.py +0 -0
  302. {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/commands/migrate.py +0 -0
  303. {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/commands/restart.py +0 -0
  304. {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/commands/serve.py +0 -0
  305. {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/commands/start.py +0 -0
  306. {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/commands/status.py +0 -0
  307. {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/commands/stop.py +0 -0
  308. {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/commands/upgrade.py +0 -0
  309. {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/commands/version.py +0 -0
  310. {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/firstrun.py +0 -0
  311. {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/main.py +0 -0
  312. {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/net.py +0 -0
  313. {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/paths.py +0 -0
  314. {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/pids.py +0 -0
  315. {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/seed.py +0 -0
  316. {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/server.py +0 -0
  317. {openagentd-1.76.2 → openagentd-1.78.0}/app/cli/ui.py +0 -0
  318. {openagentd-1.76.2 → openagentd-1.78.0}/app/core/__init__.py +0 -0
  319. {openagentd-1.76.2 → openagentd-1.78.0}/app/core/config.py +0 -0
  320. {openagentd-1.76.2 → openagentd-1.78.0}/app/core/db.py +0 -0
  321. {openagentd-1.76.2 → openagentd-1.78.0}/app/core/desktop_auth.py +0 -0
  322. {openagentd-1.76.2 → openagentd-1.78.0}/app/core/exception_handlers.py +0 -0
  323. {openagentd-1.76.2 → openagentd-1.78.0}/app/core/jsonl_writer.py +0 -0
  324. {openagentd-1.76.2 → openagentd-1.78.0}/app/core/logging_config.py +0 -0
  325. {openagentd-1.76.2 → openagentd-1.78.0}/app/core/metrics.py +0 -0
  326. {openagentd-1.76.2 → openagentd-1.78.0}/app/core/middlewares.py +0 -0
  327. {openagentd-1.76.2 → openagentd-1.78.0}/app/core/otel.py +0 -0
  328. {openagentd-1.76.2 → openagentd-1.78.0}/app/core/otel_retention.py +0 -0
  329. {openagentd-1.76.2 → openagentd-1.78.0}/app/core/paths.py +0 -0
  330. {openagentd-1.76.2 → openagentd-1.78.0}/app/core/runtime_settings.py +0 -0
  331. {openagentd-1.76.2 → openagentd-1.78.0}/app/core/version.py +0 -0
  332. {openagentd-1.76.2 → openagentd-1.78.0}/app/core/workspace_init.py +0 -0
  333. {openagentd-1.76.2 → openagentd-1.78.0}/app/migrations/README +0 -0
  334. {openagentd-1.76.2 → openagentd-1.78.0}/app/migrations/env.py +0 -0
  335. {openagentd-1.76.2 → openagentd-1.78.0}/app/migrations/script.py.mako +0 -0
  336. {openagentd-1.76.2 → openagentd-1.78.0}/app/migrations/versions/00000001_create_chat_sessions.py +0 -0
  337. {openagentd-1.76.2 → openagentd-1.78.0}/app/migrations/versions/00000002_create_session_messages.py +0 -0
  338. {openagentd-1.76.2 → openagentd-1.78.0}/app/migrations/versions/00000003_create_scheduled_task.py +0 -0
  339. {openagentd-1.76.2 → openagentd-1.78.0}/app/migrations/versions/00000004_create_dream_log.py +0 -0
  340. {openagentd-1.76.2 → openagentd-1.78.0}/app/migrations/versions/00000005_add_session_mode_workspace.py +0 -0
  341. {openagentd-1.76.2 → openagentd-1.78.0}/app/migrations/versions/00000006_scheduled_task_mode_workspace.py +0 -0
  342. {openagentd-1.76.2 → openagentd-1.78.0}/app/migrations/versions/00000007_add_chat_session_revert.py +0 -0
  343. {openagentd-1.76.2 → openagentd-1.78.0}/app/migrations/versions/00000008_add_session_model_settings.py +0 -0
  344. {openagentd-1.76.2 → openagentd-1.78.0}/app/migrations/versions/00000009_create_memory_processed_sources.py +0 -0
  345. {openagentd-1.76.2 → openagentd-1.78.0}/app/migrations/versions/00000010_create_coding_workspaces.py +0 -0
  346. {openagentd-1.76.2 → openagentd-1.78.0}/app/migrations/versions/00000011_add_scheduled_task_max_runs.py +0 -0
  347. {openagentd-1.76.2 → openagentd-1.78.0}/app/migrations/versions/00000012_drop_dream_and_memory_tables.py +0 -0
  348. {openagentd-1.76.2 → openagentd-1.78.0}/app/migrations/versions/00000013_add_scheduled_task_slug.py +0 -0
  349. {openagentd-1.76.2 → openagentd-1.78.0}/app/models/__init__.py +0 -0
  350. {openagentd-1.76.2 → openagentd-1.78.0}/app/models/chat.py +0 -0
  351. {openagentd-1.76.2 → openagentd-1.78.0}/app/scheduler/__init__.py +0 -0
  352. {openagentd-1.76.2 → openagentd-1.78.0}/app/scheduler/cron.py +0 -0
  353. {openagentd-1.76.2 → openagentd-1.78.0}/app/scheduler/models.py +0 -0
  354. {openagentd-1.76.2 → openagentd-1.78.0}/app/scheduler/scheduler.py +0 -0
  355. {openagentd-1.76.2 → openagentd-1.78.0}/app/scheduler/schemas.py +0 -0
  356. {openagentd-1.76.2 → openagentd-1.78.0}/app/scheduler/utils.py +0 -0
  357. {openagentd-1.76.2 → openagentd-1.78.0}/app/server.py +0 -0
  358. {openagentd-1.76.2 → openagentd-1.78.0}/app/services/AGENTS.md +0 -0
  359. {openagentd-1.76.2 → openagentd-1.78.0}/app/services/__init__.py +0 -0
  360. {openagentd-1.76.2 → openagentd-1.78.0}/app/services/_tool_state.py +0 -0
  361. {openagentd-1.76.2 → openagentd-1.78.0}/app/services/agent_fs.py +0 -0
  362. {openagentd-1.76.2 → openagentd-1.78.0}/app/services/agent_service.py +0 -0
  363. {openagentd-1.76.2 → openagentd-1.78.0}/app/services/artifact_cleanup.py +0 -0
  364. {openagentd-1.76.2 → openagentd-1.78.0}/app/services/chat_service.py +0 -0
  365. {openagentd-1.76.2 → openagentd-1.78.0}/app/services/chat_service_messages.py +0 -0
  366. {openagentd-1.76.2 → openagentd-1.78.0}/app/services/chat_service_queue.py +0 -0
  367. {openagentd-1.76.2 → openagentd-1.78.0}/app/services/chat_service_revert.py +0 -0
  368. {openagentd-1.76.2 → openagentd-1.78.0}/app/services/coding_workspace_service.py +0 -0
  369. {openagentd-1.76.2 → openagentd-1.78.0}/app/services/commands.py +0 -0
  370. {openagentd-1.76.2 → openagentd-1.78.0}/app/services/memory_stream_store.py +0 -0
  371. {openagentd-1.76.2 → openagentd-1.78.0}/app/services/observability_service.py +0 -0
  372. {openagentd-1.76.2 → openagentd-1.78.0}/app/services/provider_usage.py +0 -0
  373. {openagentd-1.76.2 → openagentd-1.78.0}/app/services/quote_service.py +0 -0
  374. {openagentd-1.76.2 → openagentd-1.78.0}/app/services/shell_service.py +0 -0
  375. {openagentd-1.76.2 → openagentd-1.78.0}/app/services/snapshot_service.py +0 -0
  376. {openagentd-1.76.2 → openagentd-1.78.0}/app/services/snippets.py +0 -0
  377. {openagentd-1.76.2 → openagentd-1.78.0}/app/services/stream_envelope.py +0 -0
  378. {openagentd-1.76.2 → openagentd-1.78.0}/app/services/team_manager.py +0 -0
  379. {openagentd-1.76.2 → openagentd-1.78.0}/app/services/title_service.py +0 -0
  380. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/AGENTS.md +0 -0
  381. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/Makefile +0 -0
  382. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/README.md +0 -0
  383. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/scripts/INSTALL.md +0 -0
  384. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/scripts/install.sh +0 -0
  385. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/AGENTS.md +0 -0
  386. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/Info.plist +0 -0
  387. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/build.rs +0 -0
  388. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/capabilities/default.json +0 -0
  389. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/entitlements.plist +0 -0
  390. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/128x128.png +0 -0
  391. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/128x128@2x.png +0 -0
  392. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/32x32.png +0 -0
  393. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/64x64.png +0 -0
  394. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/README.md +0 -0
  395. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/Square107x107Logo.png +0 -0
  396. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/Square142x142Logo.png +0 -0
  397. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/Square150x150Logo.png +0 -0
  398. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/Square284x284Logo.png +0 -0
  399. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/Square30x30Logo.png +0 -0
  400. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/Square310x310Logo.png +0 -0
  401. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/Square44x44Logo.png +0 -0
  402. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/Square71x71Logo.png +0 -0
  403. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/Square89x89Logo.png +0 -0
  404. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/StoreLogo.png +0 -0
  405. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/android/mipmap-anydpi-v26/ic_launcher.xml +0 -0
  406. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png +0 -0
  407. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png +0 -0
  408. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png +0 -0
  409. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png +0 -0
  410. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png +0 -0
  411. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png +0 -0
  412. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png +0 -0
  413. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png +0 -0
  414. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png +0 -0
  415. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png +0 -0
  416. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png +0 -0
  417. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png +0 -0
  418. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png +0 -0
  419. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png +0 -0
  420. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
  421. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/android/values/ic_launcher_background.xml +0 -0
  422. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/icon.icns +0 -0
  423. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/icon.ico +0 -0
  424. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/icon.png +0 -0
  425. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/ios/AppIcon-20x20@1x.png +0 -0
  426. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/ios/AppIcon-20x20@2x-1.png +0 -0
  427. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/ios/AppIcon-20x20@2x.png +0 -0
  428. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/ios/AppIcon-20x20@3x.png +0 -0
  429. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/ios/AppIcon-29x29@1x.png +0 -0
  430. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/ios/AppIcon-29x29@2x-1.png +0 -0
  431. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/ios/AppIcon-29x29@2x.png +0 -0
  432. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/ios/AppIcon-29x29@3x.png +0 -0
  433. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/ios/AppIcon-40x40@1x.png +0 -0
  434. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/ios/AppIcon-40x40@2x-1.png +0 -0
  435. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/ios/AppIcon-40x40@2x.png +0 -0
  436. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/ios/AppIcon-40x40@3x.png +0 -0
  437. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/ios/AppIcon-512@2x.png +0 -0
  438. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/ios/AppIcon-60x60@2x.png +0 -0
  439. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/ios/AppIcon-60x60@3x.png +0 -0
  440. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/ios/AppIcon-76x76@1x.png +0 -0
  441. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/ios/AppIcon-76x76@2x.png +0 -0
  442. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png +0 -0
  443. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/permissions/autogenerated/app_backend_status.toml +0 -0
  444. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/permissions/autogenerated/app_new_window.toml +0 -0
  445. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/permissions/autogenerated/app_remove_backend_server.toml +0 -0
  446. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/permissions/autogenerated/app_save_backend_server.toml +0 -0
  447. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/permissions/autogenerated/app_stop_bundled_backend.toml +0 -0
  448. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/permissions/autogenerated/app_use_bundled_backend.toml +0 -0
  449. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/permissions/autogenerated/app_use_external_backend.toml +0 -0
  450. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/permissions/autogenerated/backend_health.toml +0 -0
  451. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/permissions/autogenerated/backend_logs_path.toml +0 -0
  452. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/permissions/autogenerated/reapply_window_chrome.toml +0 -0
  453. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/permissions/autogenerated/request_voice_permissions.toml +0 -0
  454. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/permissions/autogenerated/save_workspace_file.toml +0 -0
  455. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/permissions/autogenerated/set_tray_session.toml +0 -0
  456. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/permissions/autogenerated/updater_check.toml +0 -0
  457. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/permissions/autogenerated/updater_download.toml +0 -0
  458. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/permissions/autogenerated/updater_install.toml +0 -0
  459. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/permissions/autogenerated/updater_release_notes.toml +0 -0
  460. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/src/sidecar.rs +0 -0
  461. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/tauri.dev-bundled.conf.json +0 -0
  462. {openagentd-1.76.2 → openagentd-1.78.0}/desktop/src-tauri/tauri.dev.conf.json +0 -0
  463. {openagentd-1.76.2 → openagentd-1.78.0}/documents/AGENTS.md +0 -0
  464. {openagentd-1.76.2 → openagentd-1.78.0}/documents/assets/.gitkeep +0 -0
  465. {openagentd-1.76.2 → openagentd-1.78.0}/documents/assets/brand/README.md +0 -0
  466. {openagentd-1.76.2 → openagentd-1.78.0}/documents/assets/brand/octobot-agentd-source.png +0 -0
  467. {openagentd-1.76.2 → openagentd-1.78.0}/documents/assets/brand/openagentd-app-icon.png +0 -0
  468. {openagentd-1.76.2 → openagentd-1.78.0}/documents/assets/brand/openagentd-hero-annotated.png +0 -0
  469. {openagentd-1.76.2 → openagentd-1.78.0}/documents/assets/brand/openagentd-primary-lockup.png +0 -0
  470. {openagentd-1.76.2 → openagentd-1.78.0}/documents/assets/brand/openagentd-social-header.png +0 -0
  471. {openagentd-1.76.2 → openagentd-1.78.0}/documents/assets/brand/openagentd-stacked-badge.png +0 -0
  472. {openagentd-1.76.2 → openagentd-1.78.0}/documents/assets/openagentd-agent-architecture.png +0 -0
  473. {openagentd-1.76.2 → openagentd-1.78.0}/documents/assets/openagentd-install.gif +0 -0
  474. {openagentd-1.76.2 → openagentd-1.78.0}/documents/assets/screenshots/coding-screen-with-2sidebars.png +0 -0
  475. {openagentd-1.76.2 → openagentd-1.78.0}/documents/assets/screenshots/homepage.png +0 -0
  476. {openagentd-1.76.2 → openagentd-1.78.0}/documents/assets/screenshots/settings-agents.png +0 -0
  477. {openagentd-1.76.2 → openagentd-1.78.0}/documents/assets/screenshots/settings-sandbox.png +0 -0
  478. {openagentd-1.76.2 → openagentd-1.78.0}/documents/assets/screenshots/settings-voice.png +0 -0
  479. {openagentd-1.76.2 → openagentd-1.78.0}/documents/assets/screenshots/telemetry.png +0 -0
  480. {openagentd-1.76.2 → openagentd-1.78.0}/documents/assets/team-unified.png +0 -0
  481. {openagentd-1.76.2 → openagentd-1.78.0}/documents/assets/tool-call-inspector.png +0 -0
  482. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/AGENTS.md +0 -0
  483. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/agent/context.md +0 -0
  484. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/agent/hooks.md +0 -0
  485. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/agent/index.md +0 -0
  486. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/agent/loop.md +0 -0
  487. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/agent/plugins.md +0 -0
  488. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/agent/summarization.md +0 -0
  489. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/agent/team-lazy-spawn.md +0 -0
  490. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/agent/teams.md +0 -0
  491. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/api/index.md +0 -0
  492. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/architecture.md +0 -0
  493. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/cli.md +0 -0
  494. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/commands.md +0 -0
  495. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/comparison.md +0 -0
  496. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/configuration/agents.md +0 -0
  497. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/configuration/env.md +0 -0
  498. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/configuration/paths.md +0 -0
  499. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/configuration/providers.md +0 -0
  500. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/configuration/sandbox.md +0 -0
  501. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/configuration/skills.md +0 -0
  502. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/configuration/tools.md +0 -0
  503. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/configuration.md +0 -0
  504. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/guidelines.md +0 -0
  505. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/index.md +0 -0
  506. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/install.md +0 -0
  507. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/logging.md +0 -0
  508. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/mobile.md +0 -0
  509. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/observability.md +0 -0
  510. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/roadmap.md +0 -0
  511. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/shell-commands.md +0 -0
  512. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/testing/team.md +0 -0
  513. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/title-generation.md +0 -0
  514. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/troubleshooting.md +0 -0
  515. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/web/chat-input.md +0 -0
  516. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/web/coding-sessions.md +0 -0
  517. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/web/mobile.md +0 -0
  518. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/web/performance.md +0 -0
  519. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/web/todos.md +0 -0
  520. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/web/tool-results.md +0 -0
  521. {openagentd-1.76.2 → openagentd-1.78.0}/documents/docs/web/voice-input.md +0 -0
  522. {openagentd-1.76.2 → openagentd-1.78.0}/documents/styling-specs/applications.md +0 -0
  523. {openagentd-1.76.2 → openagentd-1.78.0}/documents/styling-specs/colors.md +0 -0
  524. {openagentd-1.76.2 → openagentd-1.78.0}/documents/styling-specs/imagery.md +0 -0
  525. {openagentd-1.76.2 → openagentd-1.78.0}/documents/styling-specs/index.md +0 -0
  526. {openagentd-1.76.2 → openagentd-1.78.0}/documents/styling-specs/interaction.md +0 -0
  527. {openagentd-1.76.2 → openagentd-1.78.0}/documents/styling-specs/layout.md +0 -0
  528. {openagentd-1.76.2 → openagentd-1.78.0}/documents/styling-specs/logo.md +0 -0
  529. {openagentd-1.76.2 → openagentd-1.78.0}/documents/styling-specs/motion.md +0 -0
  530. {openagentd-1.76.2 → openagentd-1.78.0}/documents/styling-specs/typography.md +0 -0
  531. {openagentd-1.76.2 → openagentd-1.78.0}/documents/techdebts/app-wide-optimization-backlog.md +0 -0
  532. {openagentd-1.76.2 → openagentd-1.78.0}/documents/techdebts/distribution-coverage.md +0 -0
  533. {openagentd-1.76.2 → openagentd-1.78.0}/documents/techdebts/model-capabilities-registry.md +0 -0
  534. {openagentd-1.76.2 → openagentd-1.78.0}/install.sh +0 -0
  535. {openagentd-1.76.2 → openagentd-1.78.0}/manual/AGENTS.md +0 -0
  536. {openagentd-1.76.2 → openagentd-1.78.0}/manual/__init__.py +0 -0
  537. {openagentd-1.76.2 → openagentd-1.78.0}/manual/_common.py +0 -0
  538. {openagentd-1.76.2 → openagentd-1.78.0}/manual/backend_log.py +0 -0
  539. {openagentd-1.76.2 → openagentd-1.78.0}/manual/bang_shell.py +0 -0
  540. {openagentd-1.76.2 → openagentd-1.78.0}/manual/cancel_queued_message.py +0 -0
  541. {openagentd-1.76.2 → openagentd-1.78.0}/manual/compaction_cache.py +0 -0
  542. {openagentd-1.76.2 → openagentd-1.78.0}/manual/continue_smoketest.py +0 -0
  543. {openagentd-1.76.2 → openagentd-1.78.0}/manual/fast_mode.py +0 -0
  544. {openagentd-1.76.2 → openagentd-1.78.0}/manual/health.py +0 -0
  545. {openagentd-1.76.2 → openagentd-1.78.0}/manual/image_edit_smoketest.py +0 -0
  546. {openagentd-1.76.2 → openagentd-1.78.0}/manual/image_tool_smoketest.py +0 -0
  547. {openagentd-1.76.2 → openagentd-1.78.0}/manual/inspect_prompt.py +0 -0
  548. {openagentd-1.76.2 → openagentd-1.78.0}/manual/mention_attachments.py +0 -0
  549. {openagentd-1.76.2 → openagentd-1.78.0}/manual/otel_inspect.py +0 -0
  550. {openagentd-1.76.2 → openagentd-1.78.0}/manual/patch_tool.py +0 -0
  551. {openagentd-1.76.2 → openagentd-1.78.0}/manual/provider_models.py +0 -0
  552. {openagentd-1.76.2 → openagentd-1.78.0}/manual/queued_injection.py +0 -0
  553. {openagentd-1.76.2 → openagentd-1.78.0}/manual/scheduler.py +0 -0
  554. {openagentd-1.76.2 → openagentd-1.78.0}/manual/session_resolve.py +0 -0
  555. {openagentd-1.76.2 → openagentd-1.78.0}/manual/shell_output_delta.py +0 -0
  556. {openagentd-1.76.2 → openagentd-1.78.0}/manual/skill_dedupe.py +0 -0
  557. {openagentd-1.76.2 → openagentd-1.78.0}/manual/skill_tool_analytics.py +0 -0
  558. {openagentd-1.76.2 → openagentd-1.78.0}/manual/stop_additive.py +0 -0
  559. {openagentd-1.76.2 → openagentd-1.78.0}/manual/stop_mid_stream.py +0 -0
  560. {openagentd-1.76.2 → openagentd-1.78.0}/manual/summarization_improvements_test.py +0 -0
  561. {openagentd-1.76.2 → openagentd-1.78.0}/manual/summarization_max_tokens_test.py +0 -0
  562. {openagentd-1.76.2 → openagentd-1.78.0}/manual/summarization_sse.py +0 -0
  563. {openagentd-1.76.2 → openagentd-1.78.0}/manual/summarization_test.py +0 -0
  564. {openagentd-1.76.2 → openagentd-1.78.0}/manual/support_interrupt.py +0 -0
  565. {openagentd-1.76.2 → openagentd-1.78.0}/manual/team_chat.py +0 -0
  566. {openagentd-1.76.2 → openagentd-1.78.0}/manual/team_history.py +0 -0
  567. {openagentd-1.76.2 → openagentd-1.78.0}/manual/team_history_n1_verify.py +0 -0
  568. {openagentd-1.76.2 → openagentd-1.78.0}/manual/team_message_idempotency.py +0 -0
  569. {openagentd-1.76.2 → openagentd-1.78.0}/manual/team_open_task_nudge.py +0 -0
  570. {openagentd-1.76.2 → openagentd-1.78.0}/manual/team_roster_lifecycle.py +0 -0
  571. {openagentd-1.76.2 → openagentd-1.78.0}/manual/team_sessions.py +0 -0
  572. {openagentd-1.76.2 → openagentd-1.78.0}/manual/team_spawn.py +0 -0
  573. {openagentd-1.76.2 → openagentd-1.78.0}/manual/team_sse.py +0 -0
  574. {openagentd-1.76.2 → openagentd-1.78.0}/manual/team_timeline.py +0 -0
  575. {openagentd-1.76.2 → openagentd-1.78.0}/manual/team_todos.py +0 -0
  576. {openagentd-1.76.2 → openagentd-1.78.0}/manual/team_usage.py +0 -0
  577. {openagentd-1.76.2 → openagentd-1.78.0}/manual/tool_result_offload_test.py +0 -0
  578. {openagentd-1.76.2 → openagentd-1.78.0}/manual/try_providers/__init__.py +0 -0
  579. {openagentd-1.76.2 → openagentd-1.78.0}/manual/try_providers/_common.py +0 -0
  580. {openagentd-1.76.2 → openagentd-1.78.0}/manual/try_providers/_tools_common.py +0 -0
  581. {openagentd-1.76.2 → openagentd-1.78.0}/manual/try_providers/try_bedrock.py +0 -0
  582. {openagentd-1.76.2 → openagentd-1.78.0}/manual/try_providers/try_codex.py +0 -0
  583. {openagentd-1.76.2 → openagentd-1.78.0}/manual/try_providers/try_continue_probe.py +0 -0
  584. {openagentd-1.76.2 → openagentd-1.78.0}/manual/try_providers/try_copilot.py +0 -0
  585. {openagentd-1.76.2 → openagentd-1.78.0}/manual/try_providers/try_deepseek.py +0 -0
  586. {openagentd-1.76.2 → openagentd-1.78.0}/manual/try_providers/try_googlegenai.py +0 -0
  587. {openagentd-1.76.2 → openagentd-1.78.0}/manual/try_providers/try_ollama.py +0 -0
  588. {openagentd-1.76.2 → openagentd-1.78.0}/manual/try_providers/try_openai.py +0 -0
  589. {openagentd-1.76.2 → openagentd-1.78.0}/manual/try_providers/try_openai_chat_completions_tools.py +0 -0
  590. {openagentd-1.76.2 → openagentd-1.78.0}/manual/try_providers/try_openai_responses_tools.py +0 -0
  591. {openagentd-1.76.2 → openagentd-1.78.0}/manual/try_providers/try_openrouter.py +0 -0
  592. {openagentd-1.76.2 → openagentd-1.78.0}/manual/try_providers/try_vertexai.py +0 -0
  593. {openagentd-1.76.2 → openagentd-1.78.0}/manual/try_providers/try_zai.py +0 -0
  594. {openagentd-1.76.2 → openagentd-1.78.0}/manual/undo_mid_second_turn.py +0 -0
  595. {openagentd-1.76.2 → openagentd-1.78.0}/manual/video_smoketest.py +0 -0
  596. {openagentd-1.76.2 → openagentd-1.78.0}/mobile/Makefile +0 -0
  597. {openagentd-1.76.2 → openagentd-1.78.0}/mobile/README.md +0 -0
  598. {openagentd-1.76.2 → openagentd-1.78.0}/mobile/src-tauri/Info.ios.plist +0 -0
  599. {openagentd-1.76.2 → openagentd-1.78.0}/mobile/src-tauri/build.rs +0 -0
  600. {openagentd-1.76.2 → openagentd-1.78.0}/mobile/src-tauri/capabilities/default.json +0 -0
  601. {openagentd-1.76.2 → openagentd-1.78.0}/mobile/src-tauri/icons/README.md +0 -0
  602. {openagentd-1.76.2 → openagentd-1.78.0}/mobile/src-tauri/icons/icon.png +0 -0
  603. {openagentd-1.76.2 → openagentd-1.78.0}/mobile/src-tauri/permissions/autogenerated/app_backend_status.toml +0 -0
  604. {openagentd-1.76.2 → openagentd-1.78.0}/mobile/src-tauri/permissions/autogenerated/app_remove_backend_server.toml +0 -0
  605. {openagentd-1.76.2 → openagentd-1.78.0}/mobile/src-tauri/permissions/autogenerated/app_save_backend_server.toml +0 -0
  606. {openagentd-1.76.2 → openagentd-1.78.0}/mobile/src-tauri/permissions/autogenerated/app_use_external_backend.toml +0 -0
  607. {openagentd-1.76.2 → openagentd-1.78.0}/mobile/src-tauri/src/lib.rs +0 -0
  608. {openagentd-1.76.2 → openagentd-1.78.0}/mobile/src-tauri/src/main.rs +0 -0
  609. {openagentd-1.76.2 → openagentd-1.78.0}/pytest.ini +0 -0
  610. {openagentd-1.76.2 → openagentd-1.78.0}/scripts/AGENTS.md +0 -0
  611. {openagentd-1.76.2 → openagentd-1.78.0}/scripts/build_sidecar.py +0 -0
  612. {openagentd-1.76.2 → openagentd-1.78.0}/scripts/bump_version.sh +0 -0
  613. {openagentd-1.76.2 → openagentd-1.78.0}/scripts/check_version_consistency.sh +0 -0
  614. {openagentd-1.76.2 → openagentd-1.78.0}/scripts/codehealth/__init__.py +0 -0
  615. {openagentd-1.76.2 → openagentd-1.78.0}/scripts/codehealth/__main__.py +0 -0
  616. {openagentd-1.76.2 → openagentd-1.78.0}/scripts/codehealth/model.py +0 -0
  617. {openagentd-1.76.2 → openagentd-1.78.0}/scripts/codehealth/py_analyzer.py +0 -0
  618. {openagentd-1.76.2 → openagentd-1.78.0}/scripts/codehealth/scoring.py +0 -0
  619. {openagentd-1.76.2 → openagentd-1.78.0}/scripts/codehealth/ts_analyzer.py +0 -0
  620. {openagentd-1.76.2 → openagentd-1.78.0}/scripts/generate_icons.py +0 -0
  621. {openagentd-1.76.2 → openagentd-1.78.0}/scripts/generate_updater_keys.sh +0 -0
  622. {openagentd-1.76.2 → openagentd-1.78.0}/scripts/make_updater_manifest.py +0 -0
  623. {openagentd-1.76.2 → openagentd-1.78.0}/scripts/render_release_install_block.sh +0 -0
  624. {openagentd-1.76.2 → openagentd-1.78.0}/scripts/update_model_registry.py +0 -0
  625. {openagentd-1.76.2 → openagentd-1.78.0}/seed/AGENTS.md +0 -0
  626. {openagentd-1.76.2 → openagentd-1.78.0}/seed/README.md +0 -0
  627. {openagentd-1.76.2 → openagentd-1.78.0}/seed/agents/coding/coder.md +0 -0
  628. {openagentd-1.76.2 → openagentd-1.78.0}/seed/agents/coding/explorer.md +0 -0
  629. {openagentd-1.76.2 → openagentd-1.78.0}/seed/agents/coding/openagentd.md +0 -0
  630. {openagentd-1.76.2 → openagentd-1.78.0}/seed/agents/executor.md +0 -0
  631. {openagentd-1.76.2 → openagentd-1.78.0}/seed/agents/explorer.md +0 -0
  632. {openagentd-1.76.2 → openagentd-1.78.0}/seed/agents/openagentd.md +0 -0
  633. {openagentd-1.76.2 → openagentd-1.78.0}/seed/mcp.json +0 -0
  634. {openagentd-1.76.2 → openagentd-1.78.0}/tests/AGENTS.md +0 -0
  635. {openagentd-1.76.2 → openagentd-1.78.0}/tests/__init__.py +0 -0
  636. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/__init__.py +0 -0
  637. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/agent_loop/__init__.py +0 -0
  638. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/agent_loop/test_streaming_tool_args.py +0 -0
  639. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/agent_loop/test_tool_executor.py +0 -0
  640. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/hooks/__init__.py +0 -0
  641. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/hooks/test_base_hook.py +0 -0
  642. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/hooks/test_build_summarization_hook.py +0 -0
  643. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/hooks/test_database_hook.py +0 -0
  644. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/hooks/test_database_hook_usage.py +0 -0
  645. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/hooks/test_dynamic_prompt_hook.py +0 -0
  646. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/hooks/test_otel_hook.py +0 -0
  647. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/hooks/test_queued_injection_hook.py +0 -0
  648. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/hooks/test_session_log_hook.py +0 -0
  649. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/hooks/test_stream_publisher_hook.py +0 -0
  650. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/hooks/test_stream_publisher_usage.py +0 -0
  651. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/hooks/test_streaming_hook.py +0 -0
  652. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/hooks/test_summarization_extra.py +0 -0
  653. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/hooks/test_summarization_hook.py +0 -0
  654. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/hooks/test_summarization_sse.py +0 -0
  655. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/hooks/test_team_inbox_hook.py +0 -0
  656. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/hooks/test_team_prompt_hook.py +0 -0
  657. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/hooks/test_telemetry_hook.py +0 -0
  658. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/hooks/test_title_generation_hook.py +0 -0
  659. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/hooks/test_tool_result_offload.py +0 -0
  660. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/hooks/test_workspace_instructions_hook.py +0 -0
  661. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/mcp/__init__.py +0 -0
  662. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/mcp/test_config.py +0 -0
  663. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/mcp/test_manager.py +0 -0
  664. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/mcp/test_mcp_apply.py +0 -0
  665. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/mcp/test_oauth.py +0 -0
  666. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/mcp/test_tools.py +0 -0
  667. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/mode/__init__.py +0 -0
  668. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/mode/team/__init__.py +0 -0
  669. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/mode/team/conftest.py +0 -0
  670. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/mode/team/test_activation.py +0 -0
  671. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/mode/team/test_done_detection.py +0 -0
  672. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/mode/team/test_mailbox.py +0 -0
  673. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/mode/team/test_member_drift.py +0 -0
  674. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/mode/team/test_member_extra.py +0 -0
  675. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/mode/team/test_member_worker.py +0 -0
  676. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/mode/team/test_team.py +0 -0
  677. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/mode/team/test_team_continue.py +0 -0
  678. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/mode/team/test_team_extra.py +0 -0
  679. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/mode/team/test_team_message_tool.py +0 -0
  680. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/mode/team/test_team_spawn.py +0 -0
  681. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/mode/team/test_tools.py +0 -0
  682. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/plugins/__init__.py +0 -0
  683. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/plugins/test_loader.py +0 -0
  684. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/__init__.py +0 -0
  685. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/anthropic/test_anthropic.py +0 -0
  686. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/anthropic/test_anthropic_streaming.py +0 -0
  687. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/bedrock/__init__.py +0 -0
  688. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/bedrock/test_bedrock.py +0 -0
  689. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/codex/__init__.py +0 -0
  690. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/codex/test_codex.py +0 -0
  691. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/codex/test_oauth.py +0 -0
  692. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/copilot/__init__.py +0 -0
  693. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/copilot/test_copilot.py +0 -0
  694. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/copilot/test_oauth.py +0 -0
  695. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/copilot/test_usage.py +0 -0
  696. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/deepseek/__init__.py +0 -0
  697. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/deepseek/test_deepseek.py +0 -0
  698. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/googlegenai/__init__.py +0 -0
  699. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/ollama/__init__.py +0 -0
  700. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/ollama/test_ollama.py +0 -0
  701. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/openai/__init__.py +0 -0
  702. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/openai/test_compatible_provider.py +0 -0
  703. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/openai/test_completions_handler.py +0 -0
  704. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/openai/test_provider.py +0 -0
  705. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/openai/test_responses_handler.py +0 -0
  706. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/openai/test_responses_streaming.py +0 -0
  707. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/openai/test_routing.py +0 -0
  708. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/openai/test_schemas.py +0 -0
  709. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/test_anthropic_cache_payload.py +0 -0
  710. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/test_anthropic_usage.py +0 -0
  711. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/test_capabilities.py +0 -0
  712. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/test_model_discovery.py +0 -0
  713. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/test_model_registry.py +0 -0
  714. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/test_multimodal_tool_message.py +0 -0
  715. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/test_plugin_registry.py +0 -0
  716. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/test_router9.py +0 -0
  717. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/test_streaming.py +0 -0
  718. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/test_unconfigured.py +0 -0
  719. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/vertexai/__init__.py +0 -0
  720. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/vertexai/test_vertexai.py +0 -0
  721. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/xai/__init__.py +0 -0
  722. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/xai/test_xai.py +0 -0
  723. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/zai/__init__.py +0 -0
  724. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/zai/test_schemas.py +0 -0
  725. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/providers/zai/test_zai.py +0 -0
  726. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/schemas/__init__.py +0 -0
  727. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/schemas/test_chat_schemas.py +0 -0
  728. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/test_agent_identity.py +0 -0
  729. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/test_agent_loop.py +0 -0
  730. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/test_agent_run.py +0 -0
  731. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/test_agent_run_extra.py +0 -0
  732. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/test_jsonl_writer.py +0 -0
  733. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/test_loader.py +0 -0
  734. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/test_loader_drift.py +0 -0
  735. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/test_multimodal.py +0 -0
  736. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/test_permission.py +0 -0
  737. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/test_sandbox.py +0 -0
  738. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/test_sandbox_commands.py +0 -0
  739. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/test_sandbox_config.py +0 -0
  740. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/test_sandbox_patterns.py +0 -0
  741. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/test_support_interrupt.py +0 -0
  742. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/test_usage.py +0 -0
  743. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/tools/__init__.py +0 -0
  744. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/tools/multimodalities/__init__.py +0 -0
  745. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/tools/multimodalities/test_config.py +0 -0
  746. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/tools/multimodalities/test_googlegenai_backend.py +0 -0
  747. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/tools/multimodalities/test_googlegenai_video_backend.py +0 -0
  748. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/tools/multimodalities/test_openai_backend.py +0 -0
  749. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/tools/multimodalities/test_telemetry.py +0 -0
  750. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/tools/test_date_tools.py +0 -0
  751. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/tools/test_edit_file.py +0 -0
  752. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/tools/test_filesystem.py +0 -0
  753. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/tools/test_multimodal_read.py +0 -0
  754. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/tools/test_multimodal_read_gaps.py +0 -0
  755. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/tools/test_patch_tool.py +0 -0
  756. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/tools/test_schedule_tool.py +0 -0
  757. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/tools/test_shell.py +0 -0
  758. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/tools/test_shell_runtime.py +0 -0
  759. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/tools/test_skill_loader.py +0 -0
  760. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/tools/test_todo_manage.py +0 -0
  761. {openagentd-1.76.2 → openagentd-1.78.0}/tests/agent/tools/test_web_tools.py +0 -0
  762. {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/__init__.py +0 -0
  763. {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/routes/__init__.py +0 -0
  764. {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/routes/test_agents.py +0 -0
  765. {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/routes/test_commands.py +0 -0
  766. {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/routes/test_observability_route.py +0 -0
  767. {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/routes/test_scheduler.py +0 -0
  768. {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/routes/test_skills.py +0 -0
  769. {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/routes/test_snippets.py +0 -0
  770. {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/routes/test_team.py +0 -0
  771. {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/routes/test_team_commands.py +0 -0
  772. {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/routes/test_team_db.py +0 -0
  773. {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/routes/test_team_files.py +0 -0
  774. {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/routes/test_team_media.py +0 -0
  775. {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/routes/test_team_mention_attachments.py +0 -0
  776. {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/routes/test_team_permissions.py +0 -0
  777. {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/routes/test_team_routes_extra.py +0 -0
  778. {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/routes/test_team_todos.py +0 -0
  779. {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/routes/test_team_worktrees.py +0 -0
  780. {openagentd-1.76.2/tests/cli → openagentd-1.78.0/tests/api/schemas}/__init__.py +0 -0
  781. {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/test_app_lifespan.py +0 -0
  782. {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/test_app_startup_imports.py +0 -0
  783. {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/test_auth.py +0 -0
  784. {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/test_auth_routes.py +0 -0
  785. {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/test_diagnostics.py +0 -0
  786. {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/test_health_endpoints.py +0 -0
  787. {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/test_mcp_routes.py +0 -0
  788. {openagentd-1.76.2 → openagentd-1.78.0}/tests/api/test_settings_routes.py +0 -0
  789. {openagentd-1.76.2/tests/core → openagentd-1.78.0/tests/cli}/__init__.py +0 -0
  790. {openagentd-1.76.2 → openagentd-1.78.0}/tests/cli/test_cli.py +0 -0
  791. {openagentd-1.76.2 → openagentd-1.78.0}/tests/cli/test_firstrun.py +0 -0
  792. {openagentd-1.76.2 → openagentd-1.78.0}/tests/cli/test_migrate.py +0 -0
  793. {openagentd-1.76.2 → openagentd-1.78.0}/tests/cli/test_serve.py +0 -0
  794. {openagentd-1.76.2 → openagentd-1.78.0}/tests/conftest.py +0 -0
  795. {openagentd-1.76.2/tests/desktop → openagentd-1.78.0/tests/core}/__init__.py +0 -0
  796. {openagentd-1.76.2 → openagentd-1.78.0}/tests/core/test_config_plugin_dirs.py +0 -0
  797. {openagentd-1.76.2 → openagentd-1.78.0}/tests/core/test_db.py +0 -0
  798. {openagentd-1.76.2 → openagentd-1.78.0}/tests/core/test_db_extra.py +0 -0
  799. {openagentd-1.76.2 → openagentd-1.78.0}/tests/core/test_desktop_auth.py +0 -0
  800. {openagentd-1.76.2 → openagentd-1.78.0}/tests/core/test_exception_handlers.py +0 -0
  801. {openagentd-1.76.2 → openagentd-1.78.0}/tests/core/test_logging_config.py +0 -0
  802. {openagentd-1.76.2 → openagentd-1.78.0}/tests/core/test_metrics.py +0 -0
  803. {openagentd-1.76.2 → openagentd-1.78.0}/tests/core/test_middlewares.py +0 -0
  804. {openagentd-1.76.2 → openagentd-1.78.0}/tests/core/test_otel_retention.py +0 -0
  805. {openagentd-1.76.2 → openagentd-1.78.0}/tests/core/test_otel_tiering.py +0 -0
  806. {openagentd-1.76.2 → openagentd-1.78.0}/tests/core/test_paths.py +0 -0
  807. {openagentd-1.76.2 → openagentd-1.78.0}/tests/core/test_workspace_init.py +0 -0
  808. {openagentd-1.76.2/tests/models → openagentd-1.78.0/tests/desktop}/__init__.py +0 -0
  809. {openagentd-1.76.2 → openagentd-1.78.0}/tests/desktop/test_install_sh.py +0 -0
  810. {openagentd-1.76.2 → openagentd-1.78.0}/tests/desktop/test_mcp_app_csp.py +0 -0
  811. {openagentd-1.76.2/tests/scheduler → openagentd-1.78.0/tests/models}/__init__.py +0 -0
  812. {openagentd-1.76.2 → openagentd-1.78.0}/tests/models/test_chat_model.py +0 -0
  813. {openagentd-1.76.2/tests/services → openagentd-1.78.0/tests/scheduler}/__init__.py +0 -0
  814. {openagentd-1.76.2 → openagentd-1.78.0}/tests/scheduler/test_cron.py +0 -0
  815. {openagentd-1.76.2 → openagentd-1.78.0}/tests/scheduler/test_scheduler.py +0 -0
  816. {openagentd-1.76.2 → openagentd-1.78.0}/tests/scheduler/test_schemas.py +0 -0
  817. {openagentd-1.76.2 → openagentd-1.78.0}/tests/scripts/test_make_updater_manifest.py +0 -0
  818. {openagentd-1.76.2 → openagentd-1.78.0}/tests/scripts/test_manual_compaction_cache.py +0 -0
  819. {openagentd-1.76.2 → openagentd-1.78.0}/tests/services/test_agent_fs.py +0 -0
  820. {openagentd-1.76.2 → openagentd-1.78.0}/tests/services/test_agent_service.py +0 -0
  821. {openagentd-1.76.2 → openagentd-1.78.0}/tests/services/test_artifact_cleanup.py +0 -0
  822. {openagentd-1.76.2 → openagentd-1.78.0}/tests/services/test_chat_service.py +0 -0
  823. {openagentd-1.76.2 → openagentd-1.78.0}/tests/services/test_chat_service_messages_helpers.py +0 -0
  824. {openagentd-1.76.2 → openagentd-1.78.0}/tests/services/test_chat_service_queue_helpers.py +0 -0
  825. {openagentd-1.76.2 → openagentd-1.78.0}/tests/services/test_checkpointer.py +0 -0
  826. {openagentd-1.76.2 → openagentd-1.78.0}/tests/services/test_commands.py +0 -0
  827. {openagentd-1.76.2 → openagentd-1.78.0}/tests/services/test_deserialize_partial_tool_calls.py +0 -0
  828. {openagentd-1.76.2 → openagentd-1.78.0}/tests/services/test_memory_stream_store.py +0 -0
  829. {openagentd-1.76.2 → openagentd-1.78.0}/tests/services/test_observability_service.py +0 -0
  830. {openagentd-1.76.2 → openagentd-1.78.0}/tests/services/test_provider_usage.py +0 -0
  831. {openagentd-1.76.2 → openagentd-1.78.0}/tests/services/test_quote.py +0 -0
  832. {openagentd-1.76.2 → openagentd-1.78.0}/tests/services/test_snapshot_service.py +0 -0
  833. {openagentd-1.76.2 → openagentd-1.78.0}/tests/services/test_snippets.py +0 -0
  834. {openagentd-1.76.2 → openagentd-1.78.0}/tests/services/test_team_manager.py +0 -0
  835. {openagentd-1.76.2 → openagentd-1.78.0}/tests/services/test_title_service.py +0 -0
  836. {openagentd-1.76.2 → openagentd-1.78.0}/tests/test_model_metadata.py +0 -0
  837. {openagentd-1.76.2 → openagentd-1.78.0}/tests/test_security_dependency_floors.py +0 -0
  838. {openagentd-1.76.2 → openagentd-1.78.0}/tests/test_server.py +0 -0
  839. {openagentd-1.76.2 → openagentd-1.78.0}/web/.gitignore +0 -0
  840. {openagentd-1.76.2 → openagentd-1.78.0}/web/Makefile +0 -0
  841. {openagentd-1.76.2 → openagentd-1.78.0}/web/bunfig.toml +0 -0
  842. {openagentd-1.76.2 → openagentd-1.78.0}/web/eslint.config.js +0 -0
  843. {openagentd-1.76.2 → openagentd-1.78.0}/web/index.html +0 -0
  844. {openagentd-1.76.2 → openagentd-1.78.0}/web/public/brand-assets/openagentd-app-icon.png +0 -0
  845. {openagentd-1.76.2 → openagentd-1.78.0}/web/public/notification.wav +0 -0
  846. {openagentd-1.76.2 → openagentd-1.78.0}/web/public/theme-init.js +0 -0
  847. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/App.css +0 -0
  848. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/App.tsx +0 -0
  849. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/api/auth.test.ts +0 -0
  850. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/api/base-url.test.ts +0 -0
  851. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/api/client.test.ts +0 -0
  852. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/api/sse.test.ts +0 -0
  853. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/bun-test.d.ts +0 -0
  854. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/AgentCapabilities.test.tsx +0 -0
  855. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/AgentPane.footer.test.tsx +0 -0
  856. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/AgentPane.pending.test.tsx +0 -0
  857. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/AgentView.error.test.tsx +0 -0
  858. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/AgentView.footer.test.tsx +0 -0
  859. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/AgentView.scroll.test.tsx +0 -0
  860. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/App.bootstrap.test.tsx +0 -0
  861. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/AppBackendDialog.test.tsx +0 -0
  862. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/AssistantTurnFooter.test.tsx +0 -0
  863. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/CodingSidebar.test.tsx +0 -0
  864. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/CodingWorkspacePanel.filepreview.test.tsx +0 -0
  865. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/CommandPalette.test.tsx +0 -0
  866. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/DiffView.test.tsx +0 -0
  867. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/FileCard.test.tsx +0 -0
  868. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/FloatingInputBar.filesBelow.test.tsx +0 -0
  869. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/FloatingInputBar.test.tsx +0 -0
  870. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/ImageAttachment.test.tsx +0 -0
  871. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/ImageLightbox.test.tsx +0 -0
  872. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/InboxBubble.test.tsx +0 -0
  873. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/InputBar.fileRefs.test.tsx +0 -0
  874. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/InputBar.filesBelow.test.tsx +0 -0
  875. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/InputBar.test.tsx +0 -0
  876. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/LongPressButton.test.tsx +0 -0
  877. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/MCPAppResult.test.tsx +0 -0
  878. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/MacTitleBar.test.tsx +0 -0
  879. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/PendingMessageQueue.test.tsx +0 -0
  880. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/ReadView.test.tsx +0 -0
  881. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/SchedulerPanel.edit.test.tsx +0 -0
  882. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/SchedulerPanel.modeWorkspace.test.tsx +0 -0
  883. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/SchedulerPanel.scope.test.tsx +0 -0
  884. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/SchedulerPanel.slugAndSession.test.tsx +0 -0
  885. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/SessionModelSettings.test.tsx +0 -0
  886. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/Sidebar.edit-title.test.tsx +0 -0
  887. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/Sidebar.title.test.tsx +0 -0
  888. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/SplitGrid.test.tsx +0 -0
  889. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/StatusBar.test.tsx +0 -0
  890. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/TeamChatHeader.test.tsx +0 -0
  891. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/TeamChatView.session-draft.test.tsx +0 -0
  892. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/TeamChatView.todos.README.md +0 -0
  893. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/TeamChatView.todos.render.test.tsx +0 -0
  894. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/TeamChatView.todos.test.ts +0 -0
  895. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/TeamStatusBar.test.tsx +0 -0
  896. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/TextPreview.test.tsx +0 -0
  897. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/ThemeToggle.test.tsx +0 -0
  898. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/Thinking.test.tsx +0 -0
  899. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/TodosPopover.test.tsx +0 -0
  900. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/ToolCall.generate_image.test.tsx +0 -0
  901. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/ToolCall.team_message.test.tsx +0 -0
  902. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/ToolCall.test.tsx +0 -0
  903. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/ToolResult.test.tsx +0 -0
  904. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/UpdateCard.test.tsx +0 -0
  905. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/VoiceMicButton.test.tsx +0 -0
  906. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/WorkspaceFilesPanel.copy.test.tsx +0 -0
  907. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/WorkspaceFilesPanel.download.test.tsx +0 -0
  908. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/agent-view-scroll.test.tsx +0 -0
  909. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/frontmatter.test.ts +0 -0
  910. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/mobileOverlays.test.ts +0 -0
  911. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/performance.memo.test.tsx +0 -0
  912. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/schema.test.ts +0 -0
  913. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/scroll-chaining.test.tsx +0 -0
  914. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/settings/AgentForm.test.tsx +0 -0
  915. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/settings/McpServerDraft.test.ts +0 -0
  916. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/settings/McpServerForm.test.tsx +0 -0
  917. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/settings/SettingsListView.test.tsx +0 -0
  918. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/sidebar-item.test.tsx +0 -0
  919. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/tool-call-generate-video.test.tsx +0 -0
  920. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/components/useTeamCommands.test.tsx +0 -0
  921. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/hooks/use-mobile-viewport.test.tsx +0 -0
  922. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/hooks/use-platform.test.ts +0 -0
  923. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/hooks/useEdgeSwipe.test.tsx +0 -0
  924. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/hooks/useKeyboardShortcuts.test.tsx +0 -0
  925. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/hooks/useProximity.test.tsx +0 -0
  926. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/hooks/useTeamSessionTitleMutation.test.ts +0 -0
  927. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/hooks/useTeamSessionsQuery.test.ts +0 -0
  928. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/lib/desktop-commands.test.tsx +0 -0
  929. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/lib/desktop-notifications.isolated.test.ts +0 -0
  930. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/lib/desktop-notifications.worker.ts +0 -0
  931. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/lib/haptics.test.ts +0 -0
  932. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/lib/open-external.test.ts +0 -0
  933. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/lib/theme.test.ts +0 -0
  934. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/lib/window-title.test.ts +0 -0
  935. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/lib/workspace-download.test.ts +0 -0
  936. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/queries/useAgentFilesQuery.test.ts +0 -0
  937. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/queries/useMcpQuery.test.ts +0 -0
  938. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/queries/useSchedulerQuery.test.ts +0 -0
  939. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/queries/useUpdateScheduledTaskMutation.test.ts +0 -0
  940. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/quote.test.tsx +0 -0
  941. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/routes/root-route.test.tsx +0 -0
  942. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/routes/settings.index.test.tsx +0 -0
  943. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/routes/settings.mcp.detail.test.tsx +0 -0
  944. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/routes/settings.multimodal.test.tsx +0 -0
  945. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/routes/settings.notifications.test.tsx +0 -0
  946. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/routes/settings.providers.test.tsx +0 -0
  947. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/routes/settings.sandbox.test.tsx +0 -0
  948. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/routes/settings.title-generation.test.tsx +0 -0
  949. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/routes/telemetry.chrome.test.tsx +0 -0
  950. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/routes/telemetry.span-detail.test.tsx +0 -0
  951. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/routes/telemetry.summary.test.tsx +0 -0
  952. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/routes/telemetry.waterfall.test.tsx +0 -0
  953. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/sandbox.test.tsx +0 -0
  954. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/setup.ts +0 -0
  955. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/stores/cache-invalidation-bridge.coding.test.ts +0 -0
  956. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/stores/cache-invalidation-bridge.test.ts +0 -0
  957. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/stores/useGitPanelStore.test.ts +0 -0
  958. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/stores/useTeamStore.async.test.ts +0 -0
  959. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/stores/useTeamStore.codingWorkspace.test.ts +0 -0
  960. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/stores/useTeamStore.error.test.ts +0 -0
  961. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/stores/useTeamStore.revertBoundary.test.ts +0 -0
  962. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/stores/useTeamStore.scheduler.test.ts +0 -0
  963. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/stores/useTeamStore.test.ts +0 -0
  964. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/stores/useTeamStore.todos.test.ts +0 -0
  965. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/stores/useUIStore.test.ts +0 -0
  966. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/utils/blocks.test.ts +0 -0
  967. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/utils/format.test.ts +0 -0
  968. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/utils/markdown-image.test.tsx +0 -0
  969. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/utils/markdown-link.test.tsx +0 -0
  970. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/utils/markdown-video.test.tsx +0 -0
  971. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/utils/markdown.test.tsx +0 -0
  972. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/utils/messages.test.ts +0 -0
  973. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/utils/telemetryFormat.test.ts +0 -0
  974. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/utils/traceTree.test.ts +0 -0
  975. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/utils/turns.test.ts +0 -0
  976. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/__tests__/utils/workspace.test.ts +0 -0
  977. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/api/auth.ts +0 -0
  978. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/api/base-url.ts +0 -0
  979. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/api/client/_shared.ts +0 -0
  980. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/api/client/agents.ts +0 -0
  981. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/api/client/index.ts +0 -0
  982. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/api/client/mcp.ts +0 -0
  983. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/api/client/misc.ts +0 -0
  984. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/api/client/observability.ts +0 -0
  985. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/api/client/scheduler.ts +0 -0
  986. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/api/client/settings.ts +0 -0
  987. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/api/client/team.ts +0 -0
  988. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/api/sse.ts +0 -0
  989. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/assets/brand/README.md +0 -0
  990. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/assets/brand/octobot-agentd-source.png +0 -0
  991. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/assets/brand/openagentd-app-icon.png +0 -0
  992. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/AppBackendDialog.tsx +0 -0
  993. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/AppHeader.tsx +0 -0
  994. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/AssistantTurnFooter.tsx +0 -0
  995. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/CodingFileViewerPanel.tsx +0 -0
  996. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/CodingSidebar/WorkspaceSessionList.tsx +0 -0
  997. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/CodingSidebar/utils.ts +0 -0
  998. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/CodingSidebar.browser.ts +0 -0
  999. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/CodingSidebar.helpers.ts +0 -0
  1000. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/CodingSidebar.sessions.ts +0 -0
  1001. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/CodingSidebar.trust.ts +0 -0
  1002. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/CodingSidebar.window.ts +0 -0
  1003. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/CodingSidebar.workspace.ts +0 -0
  1004. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/CodingSidebar.worktree-dialog.ts +0 -0
  1005. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/CodingSidebar.worktrees.ts +0 -0
  1006. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/CommandPalette.tsx +0 -0
  1007. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/CompactionDivider.tsx +0 -0
  1008. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/FileCard.tsx +0 -0
  1009. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/FilePreviewStrip.tsx +0 -0
  1010. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/FileTypeIcon.tsx +0 -0
  1011. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/FloatingInputBar.tsx +0 -0
  1012. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/HealthDot.tsx +0 -0
  1013. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ImageAttachment.tsx +0 -0
  1014. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ImageLightbox.tsx +0 -0
  1015. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/InboxBubble.tsx +0 -0
  1016. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/InputBar.files.ts +0 -0
  1017. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/InputBar.helpers.ts +0 -0
  1018. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/InputBar.mentions.ts +0 -0
  1019. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/InputBar.menus.ts +0 -0
  1020. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/InputBar.overlay.tsx +0 -0
  1021. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/InputBar.suggestions.tsx +0 -0
  1022. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/InputBar.tsx +0 -0
  1023. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/MCPAppResult.tsx +0 -0
  1024. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/MacTitleBar.tsx +0 -0
  1025. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/PendingMessageQueue.tsx +0 -0
  1026. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/RevertNotice.tsx +0 -0
  1027. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/SchedulerPanel/CreateTaskForm.tsx +0 -0
  1028. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/SchedulerPanel/EditTaskForm.tsx +0 -0
  1029. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/SchedulerPanel/ModeBadge.tsx +0 -0
  1030. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/SchedulerPanel/ModeWorkspaceFields.tsx +0 -0
  1031. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/SchedulerPanel/ScheduleTypeSegmented.tsx +0 -0
  1032. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/SchedulerPanel/TaskDetailView.tsx +0 -0
  1033. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/SchedulerPanel/TaskListItem.tsx +0 -0
  1034. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/SchedulerPanel/utils.ts +0 -0
  1035. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/SchedulerPanel.tsx +0 -0
  1036. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/SessionModelSettings.tsx +0 -0
  1037. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/SessionSettingsPanel.tsx +0 -0
  1038. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/SessionSettingsPanelTools.tsx +0 -0
  1039. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/SettingsModal.tsx +0 -0
  1040. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/Sidebar.tsx +0 -0
  1041. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/StatusBar.tsx +0 -0
  1042. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/TeamChatView/AgentTabs.tsx +0 -0
  1043. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/TeamChatView/MobileChatActions.tsx +0 -0
  1044. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/TeamChatView/MobileHeaderAction.tsx +0 -0
  1045. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/TeamChatView/SplitGrid.tsx +0 -0
  1046. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/TeamChatView/TeamChatPanels.tsx +0 -0
  1047. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/TeamChatView/agentDots.ts +0 -0
  1048. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/TeamChatView/index.tsx +0 -0
  1049. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/TeamChatView/mobileOverlays.ts +0 -0
  1050. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/TeamChatView/types.ts +0 -0
  1051. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/TeamChatView/useTeamCommands.ts +0 -0
  1052. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/TeamStatusBar.tsx +0 -0
  1053. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ThemeToggle.tsx +0 -0
  1054. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/Thinking.tsx +0 -0
  1055. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ToastStack.tsx +0 -0
  1056. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/TodosPopover.tsx +0 -0
  1057. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ToolCall/DiffView.tsx +0 -0
  1058. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ToolCall/ReadView.tsx +0 -0
  1059. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ToolCall/StatusDot.tsx +0 -0
  1060. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ToolCall/diffUtils.ts +0 -0
  1061. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ToolCall/display.tsx +0 -0
  1062. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ToolCall/displayText.ts +0 -0
  1063. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ToolCall/index.tsx +0 -0
  1064. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ToolCall/types.ts +0 -0
  1065. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ToolResult.tsx +0 -0
  1066. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/UpdateCard.tsx +0 -0
  1067. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/VoiceMicButton.tsx +0 -0
  1068. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/Welcome.tsx +0 -0
  1069. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/WorkspaceFilesPanel.tsx +0 -0
  1070. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/WorkspaceInfoCard.tsx +0 -0
  1071. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/motion/SkipLink.tsx +0 -0
  1072. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/motion/ThinkingDots.tsx +0 -0
  1073. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/motion/index.ts +0 -0
  1074. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/previews/AgentTopbarPreview.tsx +0 -0
  1075. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/previews/FormPrimitivesPreview.tsx +0 -0
  1076. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/previews/ToolCallPreview.tsx +0 -0
  1077. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/settings/AgentForm/FormFields.tsx +0 -0
  1078. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/settings/AgentForm/ModelCombobox.tsx +0 -0
  1079. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/settings/AgentForm/utils.ts +0 -0
  1080. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/settings/AgentForm.tsx +0 -0
  1081. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/settings/DetailEmptyState.tsx +0 -0
  1082. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/settings/EditorSubHeader.tsx +0 -0
  1083. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/settings/McpServerDraft.ts +0 -0
  1084. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/settings/McpServerForm.tsx +0 -0
  1085. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/settings/MultiSelect.tsx +0 -0
  1086. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/settings/SettingsField.tsx +0 -0
  1087. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/settings/SettingsListView.tsx +0 -0
  1088. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/settings/SettingsSection.tsx +0 -0
  1089. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/settings/frontmatter.ts +0 -0
  1090. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/settings/schema.ts +0 -0
  1091. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ui/brand-header.tsx +0 -0
  1092. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ui/calendar.tsx +0 -0
  1093. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ui/checkbox.tsx +0 -0
  1094. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ui/date-time-picker.tsx +0 -0
  1095. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ui/dropdown-menu.tsx +0 -0
  1096. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ui/input.tsx +0 -0
  1097. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ui/number-input.tsx +0 -0
  1098. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ui/queue-banner.tsx +0 -0
  1099. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ui/radio-group.tsx +0 -0
  1100. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ui/search-bar.tsx +0 -0
  1101. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ui/section-card.tsx +0 -0
  1102. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ui/select.tsx +0 -0
  1103. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ui/sidebar-item.tsx +0 -0
  1104. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ui/skeleton.tsx +0 -0
  1105. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ui/textarea.tsx +0 -0
  1106. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ui/token-meter.tsx +0 -0
  1107. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ui/topbar-action.tsx +0 -0
  1108. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/components/ui/view-toggle.tsx +0 -0
  1109. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/hooks/use-app-backend-bootstrap.ts +0 -0
  1110. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/hooks/use-edge-swipe.ts +0 -0
  1111. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/hooks/use-mobile-viewport.ts +0 -0
  1112. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/hooks/use-mobile.ts +0 -0
  1113. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/hooks/use-platform.ts +0 -0
  1114. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/hooks/use-resizable-width.ts +0 -0
  1115. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/hooks/use-tauri-drag.ts +0 -0
  1116. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/hooks/useAgentCapabilities.ts +0 -0
  1117. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/hooks/useKeyboardShortcuts.ts +0 -0
  1118. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/hooks/useModalFocus.ts +0 -0
  1119. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/hooks/useProximity.ts +0 -0
  1120. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/hooks/useReducedMotion.ts +0 -0
  1121. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/hooks/useThemePreference.ts +0 -0
  1122. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/lib/agent-roles.ts +0 -0
  1123. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/lib/app-backend.ts +0 -0
  1124. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/lib/coding-workspace-download.ts +0 -0
  1125. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/lib/desktop-commands.ts +0 -0
  1126. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/lib/desktop-notifications.ts +0 -0
  1127. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/lib/haptics.ts +0 -0
  1128. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/lib/motion.ts +0 -0
  1129. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/lib/open-external.ts +0 -0
  1130. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/lib/query-client.ts +0 -0
  1131. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/lib/route-restore.ts +0 -0
  1132. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/lib/speech-recognition.ts +0 -0
  1133. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/lib/theme.ts +0 -0
  1134. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/lib/tray.ts +0 -0
  1135. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/lib/updater.ts +0 -0
  1136. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/lib/workspace-download.ts +0 -0
  1137. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/main.tsx +0 -0
  1138. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/index.ts +0 -0
  1139. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/keys.ts +0 -0
  1140. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/session-cache.ts +0 -0
  1141. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/useAgentFilesQuery.ts +0 -0
  1142. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/useAgentsQuery.ts +0 -0
  1143. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/useCommandsQuery.ts +0 -0
  1144. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/useFileRefsQuery.ts +0 -0
  1145. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/useHealthQuery.ts +0 -0
  1146. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/useMcpQuery.ts +0 -0
  1147. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/useMultimodalSettingsQuery.ts +0 -0
  1148. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/useObservabilitySummaryQuery.ts +0 -0
  1149. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/useProvidersQuery.ts +0 -0
  1150. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/useQuoteQuery.ts +0 -0
  1151. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/useSandboxSettingsQuery.ts +0 -0
  1152. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/useSchedulerQuery.ts +0 -0
  1153. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/useSessionsQuery.ts +0 -0
  1154. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/useSkillFilesQuery.ts +0 -0
  1155. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/useSnippetsQuery.ts +0 -0
  1156. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/useTeamStatusQuery.ts +0 -0
  1157. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/useTitleGenerationSettingsQuery.ts +0 -0
  1158. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/useTodosQuery.ts +0 -0
  1159. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/useTracesQuery.ts +0 -0
  1160. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/queries/useWorkspaceFilesQuery.ts +0 -0
  1161. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/router.ts +0 -0
  1162. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/__root.tsx +0 -0
  1163. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/index.tsx +0 -0
  1164. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/scheduler.tsx +0 -0
  1165. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/settings.agents.$name.tsx +0 -0
  1166. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/settings.agents.new.tsx +0 -0
  1167. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/settings.agents.tsx +0 -0
  1168. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/settings.mcp.$name.tsx +0 -0
  1169. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/settings.mcp.new.tsx +0 -0
  1170. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/settings.mcp.tsx +0 -0
  1171. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/settings.multimodal.tsx +0 -0
  1172. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/settings.notifications.tsx +0 -0
  1173. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/settings.providers/ModelsPanel.tsx +0 -0
  1174. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/settings.providers/OAuthLoginDialog.tsx +0 -0
  1175. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/settings.providers/ProviderCard.tsx +0 -0
  1176. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/settings.providers/UsagePanel.tsx +0 -0
  1177. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/settings.providers/providerUtils.ts +0 -0
  1178. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/settings.providers.tsx +0 -0
  1179. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/settings.sandbox.tsx +0 -0
  1180. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/settings.skills.$name.tsx +0 -0
  1181. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/settings.skills.new.tsx +0 -0
  1182. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/settings.skills.tsx +0 -0
  1183. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/settings.title-generation.tsx +0 -0
  1184. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/telemetry/chrome.tsx +0 -0
  1185. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/telemetry/index.tsx +0 -0
  1186. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/telemetry/primitives.tsx +0 -0
  1187. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/telemetry/summary/DailyBars.tsx +0 -0
  1188. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/telemetry/summary/SummaryView.tsx +0 -0
  1189. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/telemetry/traces/TracesSection.tsx +0 -0
  1190. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/telemetry/traces/TracesTable.tsx +0 -0
  1191. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/telemetry/waterfall/SpanDetailPanel.tsx +0 -0
  1192. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/telemetry/waterfall/Waterfall.tsx +0 -0
  1193. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/routes/telemetry/waterfall/categories.ts +0 -0
  1194. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/stores/cache-invalidation-bridge.ts +0 -0
  1195. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/stores/useGitPanelStore.ts +0 -0
  1196. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/stores/useSettingsStore.ts +0 -0
  1197. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/stores/useTeamStore/defaults.ts +0 -0
  1198. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/stores/useTeamStore/helpers.ts +0 -0
  1199. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/stores/useTeamStore/index.ts +0 -0
  1200. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/stores/useTeamStore/sse-reducer.ts +0 -0
  1201. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/stores/useTeamStore/types.ts +0 -0
  1202. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/stores/useToastStore.ts +0 -0
  1203. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/stores/useUIStore.ts +0 -0
  1204. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/utils/LazyMarkdownBlock.tsx +0 -0
  1205. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/utils/blocks.ts +0 -0
  1206. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/utils/errors.ts +0 -0
  1207. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/utils/format.ts +0 -0
  1208. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/utils/markdown.tsx +0 -0
  1209. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/utils/mcp-app-artifacts.ts +0 -0
  1210. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/utils/messages.ts +0 -0
  1211. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/utils/telemetryFormat.ts +0 -0
  1212. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/utils/thinking.ts +0 -0
  1213. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/utils/traceTree.ts +0 -0
  1214. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/utils/turns.ts +0 -0
  1215. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/utils/workspace.ts +0 -0
  1216. {openagentd-1.76.2 → openagentd-1.78.0}/web/src/vite-env.d.ts +0 -0
  1217. {openagentd-1.76.2 → openagentd-1.78.0}/web/tsconfig.app.json +0 -0
  1218. {openagentd-1.76.2 → openagentd-1.78.0}/web/tsconfig.json +0 -0
  1219. {openagentd-1.76.2 → openagentd-1.78.0}/web/tsconfig.node.json +0 -0
  1220. {openagentd-1.76.2 → openagentd-1.78.0}/web/tsconfig.test.json +0 -0
  1221. {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.76.2
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."""
@@ -13,7 +13,7 @@ class GeminiBaseModel(BaseModel):
13
13
 
14
14
  class FunctionCall(GeminiBaseModel):
15
15
  name: str
16
- args: dict[str, Any]
16
+ args: dict[str, Any] = Field(default_factory=dict)
17
17
  id: str | None = None
18
18
 
19
19
 
@@ -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 ToolArgumentError, ToolExecutionError
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
- errors = "; ".join(
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 by lines and parse each line
611
- for line in commits_out.splitlines():
612
- if not line:
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 = line.split("\x00")
615
- if len(parts) >= 6:
616
- try:
617
- timestamp = int(parts[4])
618
- except ValueError:
619
- timestamp = 0
620
-
621
- refs = (
622
- parts[6].strip(" ()")
623
- if len(parts) > 6 and parts[6].strip()
624
- else None
625
- )
626
- commits.append(
627
- GitCommit(
628
- sha=parts[0],
629
- short_sha=parts[1],
630
- author_name=parts[2],
631
- author_email=parts[3],
632
- timestamp=timestamp,
633
- subject=parts[5],
634
- refs=refs,
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))
@@ -84,6 +84,7 @@ class GitCommit(BaseModel):
84
84
  author_email: str
85
85
  timestamp: int
86
86
  subject: str
87
+ body: str | None = None
87
88
  refs: str | None = None
88
89
 
89
90
 
@@ -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.4"
406
+ version = "5.2.5"
407
407
  source = "registry+https://github.com/rust-lang/crates.io-index"
408
- checksum = "ea91eef119026f16da52985896b3572d9abbb14f1ea5c9417fdf05da8309b66e"
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.3"
486
+ version = "1.2.4"
487
487
  source = "registry+https://github.com/rust-lang/crates.io-index"
488
- checksum = "b4ce8d3bd5823c7504d3f579f13e7b2f3da252fcb938c594d5680ee508bf846f"
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.76.2"
2606
+ version = "1.78.0"
2607
2607
  dependencies = [
2608
2608
  "anyhow",
2609
2609
  "block2",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "openagentd-desktop"
3
- version = "1.76.2"
3
+ version = "1.78.0"
4
4
  description = "OpenAgentd — on-machine AI agents (desktop shell)"
5
5
  authors = ["openagentd contributors"]
6
6
  license = "Apache-2.0"
@@ -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
- update.install(bytes).map_err(|e| {
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,
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://schema.tauri.app/config/2",
3
3
  "productName": "OpenAgentd",
4
4
  "mainBinaryName": "OpenAgentd",
5
- "version": "1.76.2",
5
+ "version": "1.78.0",
6
6
  "identifier": "com.openagentd.desktop",
7
7
  "build": {
8
8
  "devUrl": "http://localhost:5173",