drydock-cli 2.5.5__tar.gz → 2.5.7__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 (545) hide show
  1. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/CLAUDE.md +22 -18
  2. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/PKG-INFO +1 -1
  3. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/agent_loop.py +14 -74
  4. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/session_checker.py +12 -9
  5. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/search_replace.py +11 -1
  6. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/write_file.py +17 -1
  7. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/pyproject.toml +1 -1
  8. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/.github/CODEOWNERS +0 -0
  9. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/.github/DISCUSSION_TEMPLATE/ideas.yml +0 -0
  10. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  11. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  12. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/.github/workflows/build-and-upload.yml +0 -0
  13. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/.github/workflows/ci.yml +0 -0
  14. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/.github/workflows/issue-labeler.yml +0 -0
  15. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/.github/workflows/release.yml +0 -0
  16. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/.gitignore +0 -0
  17. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/.pre-commit-config.yaml +0 -0
  18. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/.python-version +0 -0
  19. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/.typos.toml +0 -0
  20. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/.vscode/extensions.json +0 -0
  21. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/.vscode/launch.json +0 -0
  22. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/.vscode/settings.json +0 -0
  23. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/AGENTS.md +0 -0
  24. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/CHANGELOG.md +0 -0
  25. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/CONTRIBUTING.md +0 -0
  26. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/Drydock_rebrand.md +0 -0
  27. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/LICENSE +0 -0
  28. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/NOTICE +0 -0
  29. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/PRD.md +0 -0
  30. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/README.md +0 -0
  31. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/action.yml +0 -0
  32. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/distribution/zed/LICENSE +0 -0
  33. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/distribution/zed/extension.toml +0 -0
  34. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/distribution/zed/icons/mistral_vibe.svg +0 -0
  35. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/docs/README.md +0 -0
  36. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/docs/acp-setup.md +0 -0
  37. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/docs/proxy-setup.md +0 -0
  38. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/__init__.py +0 -0
  39. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/acp/__init__.py +0 -0
  40. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/acp/acp_agent_loop.py +0 -0
  41. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/acp/acp_logger.py +0 -0
  42. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/acp/entrypoint.py +0 -0
  43. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/acp/tools/__init__.py +0 -0
  44. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/acp/tools/base.py +0 -0
  45. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/acp/tools/builtins/bash.py +0 -0
  46. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/acp/tools/builtins/read_file.py +0 -0
  47. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/acp/tools/builtins/search_replace.py +0 -0
  48. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/acp/tools/builtins/todo.py +0 -0
  49. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/acp/tools/builtins/write_file.py +0 -0
  50. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/acp/tools/session_update.py +0 -0
  51. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/acp/utils.py +0 -0
  52. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/__init__.py +0 -0
  53. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/autocompletion/__init__.py +0 -0
  54. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/autocompletion/base.py +0 -0
  55. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/autocompletion/path_completion.py +0 -0
  56. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/autocompletion/slash_command.py +0 -0
  57. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/cli.py +0 -0
  58. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/clipboard.py +0 -0
  59. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/commands.py +0 -0
  60. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/entrypoint.py +0 -0
  61. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/history_manager.py +0 -0
  62. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/plan_offer/adapters/http_whoami_gateway.py +0 -0
  63. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/plan_offer/decide_plan_offer.py +0 -0
  64. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/plan_offer/ports/whoami_gateway.py +0 -0
  65. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/terminal_setup.py +0 -0
  66. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/__init__.py +0 -0
  67. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/ansi_markdown.py +0 -0
  68. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/app.py +0 -0
  69. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/app.tcss +0 -0
  70. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/external_editor.py +0 -0
  71. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/handlers/__init__.py +0 -0
  72. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/handlers/event_handler.py +0 -0
  73. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/notifications/__init__.py +0 -0
  74. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/notifications/adapters/__init__.py +0 -0
  75. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/notifications/adapters/textual_notification_adapter.py +0 -0
  76. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/notifications/ports/__init__.py +0 -0
  77. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/notifications/ports/notification_port.py +0 -0
  78. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/__init__.py +0 -0
  79. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/approval_app.py +0 -0
  80. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/banner/banner.py +0 -0
  81. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/banner/petit_chat.py +0 -0
  82. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/braille_renderer.py +0 -0
  83. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/chat_input/__init__.py +0 -0
  84. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/chat_input/body.py +0 -0
  85. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/chat_input/completion_manager.py +0 -0
  86. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/chat_input/completion_popup.py +0 -0
  87. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/chat_input/container.py +0 -0
  88. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/chat_input/text_area.py +0 -0
  89. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/compact.py +0 -0
  90. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/config_app.py +0 -0
  91. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/context_progress.py +0 -0
  92. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/load_more.py +0 -0
  93. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/loading.py +0 -0
  94. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/messages.py +0 -0
  95. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/no_markup_static.py +0 -0
  96. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/path_display.py +0 -0
  97. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/proxy_setup_app.py +0 -0
  98. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/question_app.py +0 -0
  99. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/session_picker.py +0 -0
  100. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/spinner.py +0 -0
  101. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/status_message.py +0 -0
  102. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/teleport_message.py +0 -0
  103. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/tool_widgets.py +0 -0
  104. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/tools.py +0 -0
  105. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/widgets/vscode_compat.py +0 -0
  106. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/windowing/__init__.py +0 -0
  107. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/windowing/history.py +0 -0
  108. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/windowing/history_windowing.py +0 -0
  109. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/textual_ui/windowing/state.py +0 -0
  110. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/update_notifier/__init__.py +0 -0
  111. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/update_notifier/adapters/filesystem_update_cache_repository.py +0 -0
  112. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/update_notifier/adapters/github_update_gateway.py +0 -0
  113. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/update_notifier/adapters/pypi_update_gateway.py +0 -0
  114. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/update_notifier/ports/update_cache_repository.py +0 -0
  115. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/update_notifier/ports/update_gateway.py +0 -0
  116. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/update_notifier/update.py +0 -0
  117. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/cli/update_notifier/whats_new.py +0 -0
  118. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/__init__.py +0 -0
  119. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/agents/__init__.py +0 -0
  120. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/agents/manager.py +0 -0
  121. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/agents/models.py +0 -0
  122. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/auth/__init__.py +0 -0
  123. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/auth/crypto.py +0 -0
  124. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/auth/github.py +0 -0
  125. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/autocompletion/__init__.py +0 -0
  126. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/autocompletion/completers.py +0 -0
  127. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/autocompletion/file_indexer/__init__.py +0 -0
  128. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/autocompletion/file_indexer/ignore_rules.py +0 -0
  129. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/autocompletion/file_indexer/indexer.py +0 -0
  130. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/autocompletion/file_indexer/store.py +0 -0
  131. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/autocompletion/file_indexer/watcher.py +0 -0
  132. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/autocompletion/fuzzy.py +0 -0
  133. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/autocompletion/path_prompt.py +0 -0
  134. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/autocompletion/path_prompt_adapter.py +0 -0
  135. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/build_orchestrator.py +0 -0
  136. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/config/__init__.py +0 -0
  137. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/config/_settings.py +0 -0
  138. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/config/harness_files/__init__.py +0 -0
  139. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/config/harness_files/_harness_manager.py +0 -0
  140. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/config/harness_files/_paths.py +0 -0
  141. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/consultant.py +0 -0
  142. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/drydock_states.py +0 -0
  143. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/hooks.py +0 -0
  144. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/llm/__init__.py +0 -0
  145. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/llm/backend/anthropic.py +0 -0
  146. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/llm/backend/base.py +0 -0
  147. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/llm/backend/factory.py +0 -0
  148. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/llm/backend/generic.py +0 -0
  149. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/llm/backend/mistral.py +0 -0
  150. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/llm/backend/reasoning_adapter.py +0 -0
  151. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/llm/backend/vertex.py +0 -0
  152. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/llm/exceptions.py +0 -0
  153. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/llm/format.py +0 -0
  154. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/llm/message_utils.py +0 -0
  155. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/llm/types.py +0 -0
  156. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/logger.py +0 -0
  157. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/middleware.py +0 -0
  158. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/output_formatters.py +0 -0
  159. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/paths/__init__.py +0 -0
  160. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/paths/_local_config_walk.py +0 -0
  161. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/paths/_vibe_home.py +0 -0
  162. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/paths/conventions.py +0 -0
  163. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/plan_session.py +0 -0
  164. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/plugins.py +0 -0
  165. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/programmatic.py +0 -0
  166. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/prompts/__init__.py +0 -0
  167. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/prompts/builder.md +0 -0
  168. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/prompts/cli.md +0 -0
  169. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/prompts/compact.md +0 -0
  170. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/prompts/dangerous_directory.md +0 -0
  171. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/prompts/diagnostic.md +0 -0
  172. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/prompts/explore.md +0 -0
  173. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/prompts/gemma4.md +0 -0
  174. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/prompts/planner.md +0 -0
  175. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/prompts/project_context.md +0 -0
  176. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/prompts/tests.md +0 -0
  177. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/proxy_setup.py +0 -0
  178. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/session/agent_memory.py +0 -0
  179. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/session/checkpoints.py +0 -0
  180. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/session/session_loader.py +0 -0
  181. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/session/session_logger.py +0 -0
  182. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/session/session_migration.py +0 -0
  183. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/session/state_file.py +0 -0
  184. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/skills/__init__.py +0 -0
  185. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/skills/manager.py +0 -0
  186. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/skills/models.py +0 -0
  187. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/skills/parser.py +0 -0
  188. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/slug.py +0 -0
  189. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/system_prompt.py +0 -0
  190. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/telemetry/__init__.py +0 -0
  191. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/telemetry/send.py +0 -0
  192. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/teleport/errors.py +0 -0
  193. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/teleport/git.py +0 -0
  194. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/teleport/nuage.py +0 -0
  195. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/teleport/teleport.py +0 -0
  196. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/teleport/types.py +0 -0
  197. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/base.py +0 -0
  198. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/ask_user_question.py +0 -0
  199. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/bash.py +0 -0
  200. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/cron.py +0 -0
  201. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/exit_plan_mode.py +0 -0
  202. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/glob_tool.py +0 -0
  203. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/grep.py +0 -0
  204. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/invoke_skill.py +0 -0
  205. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/lsp.py +0 -0
  206. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/mcp_resources.py +0 -0
  207. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/notebook_edit.py +0 -0
  208. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/powershell.py +0 -0
  209. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/__init__.py +0 -0
  210. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/ask_user_question.md +0 -0
  211. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/bash.md +0 -0
  212. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/cron.md +0 -0
  213. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/glob.md +0 -0
  214. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/grep.md +0 -0
  215. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/invoke_skill.md +0 -0
  216. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/lsp.md +0 -0
  217. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/mcp_resources.md +0 -0
  218. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/notebook_edit.md +0 -0
  219. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/powershell.md +0 -0
  220. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/read_file.md +0 -0
  221. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/search_replace.md +0 -0
  222. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/swe_bench.md +0 -0
  223. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/task.md +0 -0
  224. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/task_manager.md +0 -0
  225. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/todo.md +0 -0
  226. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/tool_search.md +0 -0
  227. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/webfetch.md +0 -0
  228. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/websearch.md +0 -0
  229. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/worktree.md +0 -0
  230. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/prompts/write_file.md +0 -0
  231. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/read_file.py +0 -0
  232. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/task.py +0 -0
  233. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/task_manager.py +0 -0
  234. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/todo.py +0 -0
  235. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/tool_search.py +0 -0
  236. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/webfetch.py +0 -0
  237. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/websearch.py +0 -0
  238. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/builtins/worktree.py +0 -0
  239. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/injection_guard.py +0 -0
  240. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/manager.py +0 -0
  241. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/mcp/__init__.py +0 -0
  242. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/mcp/registry.py +0 -0
  243. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/mcp/tools.py +0 -0
  244. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/mcp_sampling.py +0 -0
  245. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/ui.py +0 -0
  246. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/tools/utils.py +0 -0
  247. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/trusted_folders.py +0 -0
  248. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/types.py +0 -0
  249. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/core/utils.py +0 -0
  250. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/setup/onboarding/__init__.py +0 -0
  251. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/setup/onboarding/base.py +0 -0
  252. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/setup/onboarding/onboarding.tcss +0 -0
  253. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/setup/onboarding/screens/__init__.py +0 -0
  254. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/setup/onboarding/screens/api_key.py +0 -0
  255. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/setup/onboarding/screens/welcome.py +0 -0
  256. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/setup/trusted_folders/trust_folder_dialog.py +0 -0
  257. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/setup/trusted_folders/trust_folder_dialog.tcss +0 -0
  258. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/__init__.py +0 -0
  259. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/api-design/SKILL.md +0 -0
  260. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/batch/SKILL.md +0 -0
  261. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/commit-code/SKILL.md +0 -0
  262. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/context-summary/SKILL.md +0 -0
  263. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/create-presentation/SKILL.md +0 -0
  264. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/deep-research/SKILL.md +0 -0
  265. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/deploy/SKILL.md +0 -0
  266. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/diff-review/SKILL.md +0 -0
  267. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/doc-gen/SKILL.md +0 -0
  268. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/explain-code/SKILL.md +0 -0
  269. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/explore-code/SKILL.md +0 -0
  270. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/fix-issue/SKILL.md +0 -0
  271. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/git-ops/SKILL.md +0 -0
  272. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/init-project/SKILL.md +0 -0
  273. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/investigate/SKILL.md +0 -0
  274. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/loop/SKILL.md +0 -0
  275. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/migrate/SKILL.md +0 -0
  276. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/perf-analyze/SKILL.md +0 -0
  277. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/plan-impl/SKILL.md +0 -0
  278. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/pr-review/SKILL.md +0 -0
  279. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/refactor/SKILL.md +0 -0
  280. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/regex-help/SKILL.md +0 -0
  281. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/review/SKILL.md +0 -0
  282. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/security-review/SKILL.md +0 -0
  283. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/ship/SKILL.md +0 -0
  284. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/simplify/SKILL.md +0 -0
  285. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/skills/test-verify/SKILL.md +0 -0
  286. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock/whats_new.md +0 -0
  287. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock-acp.spec +0 -0
  288. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/drydock_terms.md +0 -0
  289. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/flake.lock +0 -0
  290. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/flake.nix +0 -0
  291. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/log_analyzer/__init__.py +0 -0
  292. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/log_analyzer/__main__.py +0 -0
  293. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/log_analyzer/analyzer.py +0 -0
  294. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/log_analyzer/cli.py +0 -0
  295. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/scripts/README.md +0 -0
  296. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/scripts/auto_test_loop.sh +0 -0
  297. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/scripts/backup.sh +0 -0
  298. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/scripts/bump_version.py +0 -0
  299. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/scripts/deploy_to_github.sh +0 -0
  300. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/scripts/discover_cli_tools.sh +0 -0
  301. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/scripts/install.sh +0 -0
  302. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/scripts/monitor_swebench.sh +0 -0
  303. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/scripts/monitor_test_battery.sh +0 -0
  304. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/scripts/notify_release.py +0 -0
  305. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/scripts/overnight_agents_test.sh +0 -0
  306. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/scripts/prepare_release.py +0 -0
  307. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/scripts/publish_to_pypi.sh +0 -0
  308. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/scripts/test_bank.sh +0 -0
  309. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/scripts/test_full.sh +0 -0
  310. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/scripts/test_smoke.sh +0 -0
  311. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/scripts/test_tui_path.py +0 -0
  312. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/scripts/tui_test.py +0 -0
  313. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/__init__.py +0 -0
  314. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/acp/conftest.py +0 -0
  315. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/acp/test_acp.py +0 -0
  316. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/acp/test_agent_thought.py +0 -0
  317. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/acp/test_bash.py +0 -0
  318. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/acp/test_compact_session_updates.py +0 -0
  319. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/acp/test_content.py +0 -0
  320. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/acp/test_initialize.py +0 -0
  321. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/acp/test_list_sessions.py +0 -0
  322. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/acp/test_load_session.py +0 -0
  323. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/acp/test_multi_session.py +0 -0
  324. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/acp/test_new_session.py +0 -0
  325. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/acp/test_proxy_setup_acp.py +0 -0
  326. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/acp/test_read_file.py +0 -0
  327. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/acp/test_search_replace.py +0 -0
  328. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/acp/test_set_config_option.py +0 -0
  329. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/acp/test_set_mode.py +0 -0
  330. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/acp/test_set_model.py +0 -0
  331. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/acp/test_tool_call_session_update.py +0 -0
  332. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/acp/test_utils.py +0 -0
  333. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/acp/test_write_file.py +0 -0
  334. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/autocompletion/test_file_indexer.py +0 -0
  335. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/autocompletion/test_fuzzy.py +0 -0
  336. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/autocompletion/test_path_completer_fuzzy.py +0 -0
  337. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/autocompletion/test_path_completer_recursive.py +0 -0
  338. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/autocompletion/test_path_completion_controller.py +0 -0
  339. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/autocompletion/test_path_prompt_transformer.py +0 -0
  340. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/autocompletion/test_slash_command_controller.py +0 -0
  341. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/autocompletion/test_ui_chat_autocompletion.py +0 -0
  342. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/backend/__init__.py +0 -0
  343. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/backend/data/__init__.py +0 -0
  344. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/backend/data/fireworks.py +0 -0
  345. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/backend/data/mistral.py +0 -0
  346. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/backend/test_anthropic_adapter.py +0 -0
  347. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/backend/test_backend.py +0 -0
  348. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/backend/test_reasoning_adapter.py +0 -0
  349. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/backend/test_vertex_anthropic_adapter.py +0 -0
  350. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/cli/plan_offer/adapters/fake_whoami_gateway.py +0 -0
  351. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/cli/plan_offer/test_decide_plan_offer.py +0 -0
  352. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/cli/plan_offer/test_http_whoami_gateway.py +0 -0
  353. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/cli/test_bell_notifications.py +0 -0
  354. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/cli/test_braille_renderer.py +0 -0
  355. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/cli/test_clipboard.py +0 -0
  356. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/cli/test_commands.py +0 -0
  357. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/cli/test_copy_shortcuts.py +0 -0
  358. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/cli/test_external_editor.py +0 -0
  359. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/cli/test_no_markup_static.py +0 -0
  360. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/cli/test_question_app.py +0 -0
  361. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/cli/test_spinner.py +0 -0
  362. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/cli/test_switching_mode.py +0 -0
  363. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/cli/test_ui_clipboard_notifications.py +0 -0
  364. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/cli/test_ui_session_incremental_renderer.py +0 -0
  365. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/cli/test_ui_session_resume.py +0 -0
  366. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/cli/test_ui_skill_dispatch.py +0 -0
  367. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/cli/textual_ui/__init__.py +0 -0
  368. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/cli/textual_ui/test_session_picker.py +0 -0
  369. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/conftest.py +0 -0
  370. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/core/test_agents.py +0 -0
  371. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/core/test_auth_crypto.py +0 -0
  372. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/core/test_auth_github.py +0 -0
  373. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/core/test_config_load_dotenv.py +0 -0
  374. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/core/test_config_paths.py +0 -0
  375. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/core/test_config_resolution.py +0 -0
  376. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/core/test_file_logging.py +0 -0
  377. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/core/test_plan_session.py +0 -0
  378. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/core/test_proxy_setup.py +0 -0
  379. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/core/test_slug.py +0 -0
  380. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/core/test_telemetry_send.py +0 -0
  381. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/core/test_teleport_git.py +0 -0
  382. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/core/test_teleport_nuage.py +0 -0
  383. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/core/test_teleport_service.py +0 -0
  384. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/core/test_trusted_folders.py +0 -0
  385. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/core/test_utils.py +0 -0
  386. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/e2e/common.py +0 -0
  387. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/e2e/conftest.py +0 -0
  388. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/e2e/mock_server.py +0 -0
  389. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/e2e/test_cli_tui_onboarding.py +0 -0
  390. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/e2e/test_cli_tui_streaming.py +0 -0
  391. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/e2e/test_cli_tui_tool_approval.py +0 -0
  392. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/mock/__init__.py +0 -0
  393. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/mock/mock_backend_factory.py +0 -0
  394. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/mock/mock_entrypoint.py +0 -0
  395. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/mock/utils.py +0 -0
  396. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/onboarding/test_run_onboarding.py +0 -0
  397. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/onboarding/test_ui_onboarding.py +0 -0
  398. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/session/test_session_loader.py +0 -0
  399. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/session/test_session_logger.py +0 -0
  400. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/session/test_session_migration.py +0 -0
  401. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/skills/conftest.py +0 -0
  402. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/skills/test_manager.py +0 -0
  403. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/skills/test_models.py +0 -0
  404. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/skills/test_parser.py +0 -0
  405. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_collapsed.svg +0 -0
  406. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_expanded.svg +0 -0
  407. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_basic_conversation/test_snapshot_shows_basic_conversation.svg +0 -0
  408. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_code_block_horizontal_scrolling/test_snapshot_allows_horizontal_scrolling_for_long_code_blocks.svg +0 -0
  409. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_empty_assistant_before_reasoning/test_snapshot_empty_assistant_removed_when_reasoning_starts.svg +0 -0
  410. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_accept_edits_mode.svg +0 -0
  411. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_auto_approve_mode.svg +0 -0
  412. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_plan_mode.svg +0 -0
  413. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_wraps_to_default.svg +0 -0
  414. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_default_mode.svg +0 -0
  415. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_pending.svg +0 -0
  416. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_resolved.svg +0 -0
  417. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_cancel_discards_changes.svg +0 -0
  418. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_edit_existing_values.svg +0 -0
  419. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_empty.svg +0 -0
  420. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_with_values.svg +0 -0
  421. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_error.svg +0 -0
  422. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_new_values.svg +0 -0
  423. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_answer_first_advance.svg +0 -0
  424. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_first_answered_checkmark.svg +0 -0
  425. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_initial.svg +0 -0
  426. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_left_wraps.svg +0 -0
  427. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_right.svg +0 -0
  428. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_tab_to_second.svg +0 -0
  429. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_initial.svg +0 -0
  430. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_mixed_selection.svg +0 -0
  431. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_navigate_to_submit.svg +0 -0
  432. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_other_with_text.svg +0 -0
  433. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_first.svg +0 -0
  434. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_multiple.svg +0 -0
  435. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_untoggle.svg +0 -0
  436. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_initial.svg +0 -0
  437. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_down.svg +0 -0
  438. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_other.svg +0 -0
  439. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_third_option.svg +0 -0
  440. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_up_wraps.svg +0 -0
  441. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_other_typing.svg +0 -0
  442. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_buffered_reasoning_yields_before_content.svg +0 -0
  443. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_interleaved_reasoning.svg +0 -0
  444. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content.svg +0 -0
  445. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content_expanded.svg +0 -0
  446. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_release_update_notification/test_snapshot_shows_release_update_notification.svg +0 -0
  447. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_session_resume/test_snapshot_shows_resumed_session_messages.svg +0 -0
  448. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_partial.svg +0 -0
  449. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_updated.svg +0 -0
  450. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_cancel_selected.svg +0 -0
  451. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_multiple_commits.svg +0 -0
  452. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_single_commit.svg +0 -0
  453. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_complete.svg +0 -0
  454. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_required.svg +0 -0
  455. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_checking_git.svg +0 -0
  456. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_complete.svg +0 -0
  457. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_error.svg +0 -0
  458. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_pushing.svg +0 -0
  459. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_sending_token.svg +0 -0
  460. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_starting_workflow.svg +0 -0
  461. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_no_plan_message.svg +0 -0
  462. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_switch_message.svg +0 -0
  463. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_upgrade_message.svg +0 -0
  464. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_whats_new_message.svg +0 -0
  465. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/base_snapshot_test_app.py +0 -0
  466. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/conftest.py +0 -0
  467. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/snap_compare.py +0 -0
  468. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/test_ui_snapshot_ask_user_question.py +0 -0
  469. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/test_ui_snapshot_basic_conversation.py +0 -0
  470. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/test_ui_snapshot_code_block_horizontal_scrolling.py +0 -0
  471. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/test_ui_snapshot_empty_assistant_before_reasoning.py +0 -0
  472. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/test_ui_snapshot_modes.py +0 -0
  473. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/test_ui_snapshot_parallel_tool_calls.py +0 -0
  474. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/test_ui_snapshot_proxy_setup.py +0 -0
  475. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/test_ui_snapshot_question_app.py +0 -0
  476. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/test_ui_snapshot_reasoning_content.py +0 -0
  477. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/test_ui_snapshot_release_update_notification.py +0 -0
  478. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/test_ui_snapshot_session_resume.py +0 -0
  479. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/test_ui_snapshot_streaming_tool_call.py +0 -0
  480. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/test_ui_snapshot_teleport.py +0 -0
  481. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/snapshots/test_ui_snapshot_whats_new.py +0 -0
  482. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/stubs/fake_backend.py +0 -0
  483. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/stubs/fake_client.py +0 -0
  484. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/stubs/fake_tool.py +0 -0
  485. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_agent_auto_compact.py +0 -0
  486. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_agent_backend.py +0 -0
  487. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_agent_observer_streaming.py +0 -0
  488. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_agent_stats.py +0 -0
  489. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_agent_tasks.py +0 -0
  490. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_agent_tool_call.py +0 -0
  491. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_agents.py +0 -0
  492. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_bank_build.py +0 -0
  493. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_bank_debug.py +0 -0
  494. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_bank_multiagent.py +0 -0
  495. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_bank_prd.py +0 -0
  496. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_bank_prd_extended.py +0 -0
  497. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_bank_tools.py +0 -0
  498. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_bank_update.py +0 -0
  499. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_build_projects.py +0 -0
  500. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_cli_programmatic_preload.py +0 -0
  501. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_current_bugs.py +0 -0
  502. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_drydock_regression.py +0 -0
  503. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_drydock_tasks.py +0 -0
  504. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_full_regression.py +0 -0
  505. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_history_manager.py +0 -0
  506. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_integration.py +0 -0
  507. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_loop_detection.py +0 -0
  508. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_message_id.py +0 -0
  509. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_message_merging.py +0 -0
  510. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_middleware.py +0 -0
  511. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_multi_agent.py +0 -0
  512. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_real_failures.py +0 -0
  513. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_real_issues.py +0 -0
  514. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_real_workflow.py +0 -0
  515. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_reasoning_content.py +0 -0
  516. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_smoke.py +0 -0
  517. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_system_prompt.py +0 -0
  518. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_tagged_text.py +0 -0
  519. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_ui_external_editor.py +0 -0
  520. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_ui_input_history.py +0 -0
  521. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_user_issues.py +0 -0
  522. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/test_workloads.py +0 -0
  523. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/testbank_helpers.py +0 -0
  524. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/tools/test_ask_user_question.py +0 -0
  525. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/tools/test_bash.py +0 -0
  526. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/tools/test_exit_plan_mode.py +0 -0
  527. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/tools/test_grep.py +0 -0
  528. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/tools/test_invoke_context.py +0 -0
  529. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/tools/test_manager_get_tool_config.py +0 -0
  530. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/tools/test_mcp.py +0 -0
  531. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/tools/test_mcp_sampling.py +0 -0
  532. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/tools/test_task.py +0 -0
  533. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/tools/test_ui_bash_execution.py +0 -0
  534. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/tools/test_webfetch.py +0 -0
  535. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/tools/test_websearch.py +0 -0
  536. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/update_notifier/adapters/fake_update_cache_repository.py +0 -0
  537. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/update_notifier/adapters/fake_update_gateway.py +0 -0
  538. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/update_notifier/test_do_update.py +0 -0
  539. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/update_notifier/test_filesystem_update_cache_repository.py +0 -0
  540. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/update_notifier/test_github_update_gateway.py +0 -0
  541. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/update_notifier/test_pypi_update_gateway.py +0 -0
  542. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/update_notifier/test_ui_update_notification.py +0 -0
  543. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/update_notifier/test_update_use_case.py +0 -0
  544. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/tests/update_notifier/test_whats_new.py +0 -0
  545. {drydock_cli-2.5.5 → drydock_cli-2.5.7}/uv.lock +0 -0
@@ -9,9 +9,12 @@ Drydock is a local CLI coding agent (fork of mistral-vibe, Apache 2.0).
9
9
  - **Hardware:** 2x RTX 4060 Ti 16GB, Gemma 4 26B MoE (A4B) via vLLM Docker at localhost:8000
10
10
  - **Server:** remus (Ubuntu 22.04, user: bobef)
11
11
  - **Active model:** Gemma 4 26B-A4B-it-AWQ-4bit (only 4B active params, ~70 tok/s)
12
- - **TUI results:** 88/90 PRD projects pass (98%) through the real TUI
13
- - **SWE-bench:** 70% file match (v3 baseline), 58% (v3 tuned tighter prompt hurt)
14
- - **Priority:** TUI experience first, SWE-bench second
12
+ - **TUI build tests:** 303/320 pass --help (94%) BUT --help IS MEANINGLESS
13
+ - **TUI real functional tests:** 35/63 pass (56%)the honest number
14
+ - **SWE-bench:** 70% file match (v3 baseline)
15
+ - **Priority:** TUI experience first. Fix drydock bugs, don't simplify PRDs.
16
+ - **370 PRDs** at /data3/drydock_test_projects/ — the benchmark suite
17
+ - **Current version:** v2.5.6 (PyPI + GitHub + user's env)
15
18
 
16
19
  ## Build & Test
17
20
 
@@ -279,21 +282,22 @@ v3 is a from-scratch rewrite using nano-claude-code as foundation. 4 core files,
279
282
 
280
283
  ### TUI Test Harness
281
284
  - **Script:** `scripts/tui_test.py` — pexpect-based, drives the REAL TUI binary
282
- - **Auto-approves** tool permission prompts
283
- - **Detects:** write loops, API errors, tool call counts, file creation, --help pass/fail
284
- - **100 PRDs:** at `/data3/drydock_test_projects/` (88/90 pass = 98%)
285
-
286
- ### PRD Format (what works)
287
- - Short (under 30 lines)
288
- - 4-6 files max
289
- - Clear package name and file list
290
- - Test command: `python3 -m package_name --help`
291
- - Stdlib only (no external deps)
292
-
293
- ### What breaks PRDs
294
- - Too many files (8+) model runs out of turns
295
- - Complex parsers (custom YAML/XML from scratch)
296
- - Features requiring external APIs or databases
285
+ - **Real test runner:** `run_real_tests.sh` — functional testing, not just --help
286
+ - **Results:** `real_test_results.txt` honest pass/fail with functional verification
287
+ - **370 PRDs** at `/data3/drydock_test_projects/` covering CLI tools, integration, edge cases, best practices
288
+
289
+ ### Test Levels
290
+ 1. **Build test (--help):** package runs — MEANINGLESS alone
291
+ 2. **Functional test:** PRD test cases verified with correct output — THE REAL TEST
292
+ 3. **Acceptance test:** specific expected outputs verified
293
+ 4. **Quality test:** code quality checks (docstrings, no eval, error handling)
294
+
295
+ ### Critical Testing Rules
296
+ - PRD failures = DryDock bugs. Fix the agent, NOT the PRD.
297
+ - --help passing proves nothing about code quality
298
+ - Safety mechanisms must be ADVISORY not BLOCKING
299
+ - NEVER add circuit breakers that prevent legitimate work
300
+ - The model should be able to answer questions without being forced to edit files
297
301
 
298
302
  ## When Compacting
299
303
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: drydock-cli
3
- Version: 2.5.5
3
+ Version: 2.5.7
4
4
  Summary: Drydock — nautical CLI coding agent
5
5
  Project-URL: Homepage, https://github.com/fbobe321/drydock
6
6
  Project-URL: Repository, https://github.com/fbobe321/drydock
@@ -790,81 +790,21 @@ class AgentLoop:
790
790
  continue
791
791
  # After 3 empty responses, let it exit
792
792
 
793
- # If model gives text without tool calls and hasn't edited anything,
794
- # nudge it to make an edit instead of just describing what to do.
795
- # Never let the agent exit without at least attempting an edit.
796
- if should_break_loop and not has_made_edit and tool_turns >= 1:
797
- text_without_action += 1
798
- # Always continue don't let the agent exit without editing
799
- should_break_loop = False
800
-
801
- # Detect model claiming task is done without having edited anything
802
- last_text_lower = (last_message.content or "").lower()
803
- task_complete_phrases = [
804
- "task completed", "task complete", "task is complete",
805
- "task is done", "task has been completed",
806
- "changes have been applied", "fix has been applied",
807
- "the fix is complete", "issue is resolved",
808
- ]
809
- claims_complete = any(p in last_text_lower for p in task_complete_phrases)
810
-
811
- if claims_complete:
812
- nudge_text = (
813
- "You said the task is complete but NO code was actually changed. "
814
- "Your search_replace call either failed or was never made. "
815
- "Use read_file to read the target file, then use search_replace "
816
- "to make your edit. Do NOT say the task is done until search_replace succeeds."
817
- )
818
- elif text_without_action == 1:
819
- last_text = (last_message.content or "").lower()
820
- # Detect model asking for confirmation instead of acting
821
- is_asking = any(kw in last_text for kw in (
822
- "standing by", "waiting for", "please provide",
823
- "what would you like", "how can i help",
824
- "what should i", "do you want me to",
825
- "ready to begin", "i will start",
826
- "shall i", "would you like me to",
827
- "let me know", "please confirm",
828
- "i am ready", "ready to proceed",
829
- ))
830
- if is_asking:
831
- nudge_text = (
832
- "DO NOT ask for confirmation. Act NOW. "
833
- "If there is a PRD.md, implement it with write_file. "
834
- "If there is code, read it with read_file and fix bugs with search_replace. "
835
- "Call a tool on your next response."
836
- )
837
- elif "TARGET:" in last_text.upper() or "FILE:" in last_text.upper():
838
- nudge_text = (
839
- "Good — you identified the target. Now use read_file then search_replace."
840
- )
841
- else:
842
- nudge_text = (
843
- "You responded with text but did not call any tools. "
844
- "Call write_file, read_file, or search_replace NOW."
845
- )
846
- elif text_without_action == 2:
847
- nudge_text = (
848
- "STOP describing the fix. You MUST call search_replace on your NEXT response. "
849
- "No more text-only responses. Act NOW."
850
- )
851
- elif text_without_action <= 5:
852
- nudge_text = (
853
- f"WARNING ({text_without_action} text responses without editing): "
854
- "You MUST call search_replace or read_file immediately. "
855
- "Make your best fix attempt RIGHT NOW even if you are unsure. "
856
- "Pick the most likely file and function, and make a minimal edit."
857
- )
858
- else:
859
- # Keep nudging — never give up
860
- nudge_text = (
861
- "You MUST call a tool. Use grep to find the file, "
862
- "read_file to read it, then search_replace to fix."
793
+ # Text response without edits this is FINE for questions,
794
+ # explanations, running code, etc. Only nudge if the model
795
+ # is clearly asking for permission instead of acting.
796
+ if should_break_loop and not has_made_edit:
797
+ last_text = (last_message.content or "").lower()
798
+ is_asking = any(kw in last_text for kw in (
799
+ "shall i", "would you like me to",
800
+ "ready to begin", "please confirm",
801
+ ))
802
+ if is_asking and tool_turns == 0:
803
+ # Model asked without doing anything — nudge once
804
+ should_break_loop = False
805
+ self._inject_system_note(
806
+ "Act immediately. Do not ask for confirmation."
863
807
  )
864
- if nudge_text:
865
- # Use _inject_system_note (appends to last tool/user message)
866
- # User messages cause 'tool after user' ordering violations
867
- self._inject_system_note(nudge_text)
868
808
  logger.info("Model gave text without editing — nudging (attempt %d)", text_without_action)
869
809
 
870
810
  # If model has been investigating for too long without making an edit,
@@ -128,17 +128,20 @@ def check_session(messages: list, has_made_edit: bool = False) -> list[SessionIs
128
128
  f"{api_errors} API errors occurred during the session"
129
129
  ))
130
130
 
131
- # 7. No edits made despite having a task
132
- if not has_made_edit and len(messages) > 5:
133
- has_user_task = any(
134
- hasattr(msg, 'role') and str(getattr(msg, 'role', '')) == 'user'
135
- and len(str(getattr(msg, 'content', '') or '')) > 20
136
- for msg in messages
131
+ # 7. No edits only flag if the user explicitly asked to build/fix/create something
132
+ # Questions, exploration, and running code don't need edits
133
+ if not has_made_edit and len(messages) > 10:
134
+ user_msgs = [str(getattr(m, 'content', '') or '').lower() for m in messages
135
+ if hasattr(m, 'role') and str(getattr(m, 'role', '')) == 'user']
136
+ build_words = ["build", "create", "fix", "implement", "write", "add", "modify", "update", "edit"]
137
+ user_asked_for_edit = any(
138
+ any(w in msg for w in build_words)
139
+ for msg in user_msgs
137
140
  )
138
- if has_user_task:
141
+ if user_asked_for_edit:
139
142
  issues.append(SessionIssue(
140
- "warning", "no_edits",
141
- "Session ended without making any file changes"
143
+ "info", "no_edits",
144
+ "No file changes were made the model may not have completed the task"
142
145
  ))
143
146
 
144
147
  return issues
@@ -166,6 +166,17 @@ class SearchReplace(
166
166
 
167
167
  await self._write_file(file_path, modified_content)
168
168
 
169
+ # Auto-verify syntax for Python files
170
+ if file_path.suffix == ".py":
171
+ try:
172
+ import ast
173
+ ast.parse(modified_content)
174
+ except SyntaxError as e:
175
+ block_result.warnings.append(
176
+ f"⚠ SYNTAX ERROR after edit at line {e.lineno}: {e.msg}. "
177
+ f"Fix this before continuing."
178
+ )
179
+
169
180
  yield SearchReplaceResult(
170
181
  file=str(file_path),
171
182
  blocks_applied=block_result.applied,
@@ -188,7 +199,6 @@ class SearchReplace(
188
199
  # Try to extract file_path from content if missing
189
200
  if not file_path_str and content:
190
201
  # Look for file path in the content (common when model puts everything in content)
191
- import re
192
202
  path_match = re.search(r'(?:file[_\s]?path|path|file)[\s:="\']+([^\s"\']+\.py)', content[:200], re.IGNORECASE)
193
203
  if path_match:
194
204
  file_path_str = path_match.group(1)
@@ -92,12 +92,28 @@ class WriteFile(
92
92
 
93
93
  await self._write_file(args, file_path)
94
94
 
95
- yield WriteFileResult(
95
+ # Auto-verify syntax for Python files
96
+ syntax_warning = ""
97
+ if file_path.suffix == ".py":
98
+ try:
99
+ import ast
100
+ ast.parse(args.content)
101
+ except SyntaxError as e:
102
+ syntax_warning = (
103
+ f"\n\n⚠ SYNTAX ERROR in {file_path.name} line {e.lineno}: {e.msg}"
104
+ f"\n {e.text.rstrip() if e.text else ''}"
105
+ f"\n Fix this before moving to the next file."
106
+ )
107
+
108
+ result = WriteFileResult(
96
109
  path=str(file_path),
97
110
  bytes_written=content_bytes,
98
111
  file_existed=file_existed,
99
112
  content=args.content,
100
113
  )
114
+ if syntax_warning:
115
+ result.content = syntax_warning # Override content with the warning
116
+ yield result
101
117
 
102
118
  _BINARY_EXTENSIONS = frozenset({
103
119
  ".pptx", ".xlsx", ".docx", ".pdf", ".zip", ".tar", ".gz", ".bz2",
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "drydock-cli"
3
- version = "2.5.5"
3
+ version = "2.5.7"
4
4
  description = "Drydock — nautical CLI coding agent"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes