drydock-cli 0.4.1__tar.gz → 0.5.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 (458) hide show
  1. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/CLAUDE.md +6 -6
  2. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/PKG-INFO +1 -1
  3. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/PRD.md +34 -0
  4. drydock_cli-0.5.0/drydock/__init__.py +7 -0
  5. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/acp/acp_agent_loop.py +14 -14
  6. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/acp/entrypoint.py +7 -7
  7. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/acp/tools/base.py +4 -4
  8. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/acp/tools/builtins/bash.py +6 -6
  9. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/acp/tools/builtins/read_file.py +4 -4
  10. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/acp/tools/builtins/search_replace.py +5 -5
  11. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/acp/tools/builtins/todo.py +4 -4
  12. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/acp/tools/builtins/write_file.py +5 -5
  13. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/acp/tools/session_update.py +4 -4
  14. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/acp/utils.py +5 -5
  15. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/autocompletion/path_completion.py +2 -2
  16. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/autocompletion/slash_command.py +2 -2
  17. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/cli.py +13 -13
  18. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/entrypoint.py +6 -6
  19. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/plan_offer/adapters/http_whoami_gateway.py +1 -1
  20. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/plan_offer/decide_plan_offer.py +2 -2
  21. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/textual_ui/app.py +40 -40
  22. drydock_cli-0.5.0/drydock/cli/textual_ui/handlers/__init__.py +5 -0
  23. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/textual_ui/handlers/event_handler.py +9 -9
  24. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/textual_ui/notifications/__init__.py +2 -2
  25. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/textual_ui/notifications/adapters/textual_notification_adapter.py +1 -1
  26. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/textual_ui/widgets/approval_app.py +3 -3
  27. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/textual_ui/widgets/banner/banner.py +5 -5
  28. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/textual_ui/widgets/banner/petit_chat.py +1 -1
  29. drydock_cli-0.5.0/drydock/cli/textual_ui/widgets/chat_input/__init__.py +7 -0
  30. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/textual_ui/widgets/chat_input/body.py +4 -4
  31. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/textual_ui/widgets/chat_input/completion_manager.py +1 -1
  32. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/textual_ui/widgets/chat_input/container.py +9 -9
  33. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/textual_ui/widgets/chat_input/text_area.py +4 -4
  34. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/textual_ui/widgets/compact.py +2 -2
  35. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/textual_ui/widgets/config_app.py +2 -2
  36. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/textual_ui/widgets/context_progress.py +1 -1
  37. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/textual_ui/widgets/loading.py +3 -3
  38. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/textual_ui/widgets/messages.py +3 -3
  39. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/textual_ui/widgets/path_display.py +1 -1
  40. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/textual_ui/widgets/proxy_setup_app.py +3 -3
  41. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/textual_ui/widgets/question_app.py +5 -5
  42. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/textual_ui/widgets/session_picker.py +2 -2
  43. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/textual_ui/widgets/spinner.py +1 -1
  44. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/textual_ui/widgets/status_message.py +3 -3
  45. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/textual_ui/widgets/teleport_message.py +1 -1
  46. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/textual_ui/widgets/tool_widgets.py +9 -9
  47. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/textual_ui/widgets/tools.py +6 -6
  48. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/textual_ui/windowing/__init__.py +3 -3
  49. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/textual_ui/windowing/history.py +3 -3
  50. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/textual_ui/windowing/history_windowing.py +3 -3
  51. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/textual_ui/windowing/state.py +2 -2
  52. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/update_notifier/__init__.py +7 -7
  53. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/update_notifier/adapters/filesystem_update_cache_repository.py +2 -2
  54. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/update_notifier/adapters/github_update_gateway.py +1 -1
  55. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/update_notifier/adapters/pypi_update_gateway.py +1 -1
  56. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/update_notifier/update.py +1 -1
  57. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/update_notifier/whats_new.py +2 -2
  58. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/__init__.py +1 -1
  59. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/agent_loop.py +29 -29
  60. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/agents/__init__.py +2 -2
  61. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/agents/manager.py +5 -5
  62. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/agents/models.py +3 -3
  63. drydock_cli-0.5.0/drydock/core/auth/__init__.py +6 -0
  64. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/autocompletion/completers.py +2 -2
  65. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/autocompletion/file_indexer/__init__.py +2 -2
  66. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/autocompletion/file_indexer/indexer.py +3 -3
  67. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/autocompletion/file_indexer/store.py +2 -2
  68. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/autocompletion/path_prompt_adapter.py +1 -1
  69. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/config/__init__.py +1 -1
  70. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/config/_settings.py +5 -5
  71. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/config/harness_files/__init__.py +1 -1
  72. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/config/harness_files/_harness_manager.py +4 -4
  73. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/config/harness_files/_paths.py +1 -1
  74. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/llm/backend/anthropic.py +3 -3
  75. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/llm/backend/base.py +2 -2
  76. drydock_cli-0.5.0/drydock/core/llm/backend/factory.py +7 -0
  77. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/llm/backend/generic.py +9 -9
  78. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/llm/backend/mistral.py +5 -5
  79. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/llm/backend/reasoning_adapter.py +4 -4
  80. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/llm/backend/vertex.py +4 -4
  81. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/llm/exceptions.py +1 -1
  82. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/llm/format.py +3 -3
  83. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/llm/message_utils.py +1 -1
  84. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/llm/types.py +2 -2
  85. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/logger.py +1 -1
  86. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/middleware.py +4 -4
  87. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/output_formatters.py +1 -1
  88. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/paths/__init__.py +3 -3
  89. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/paths/_local_config_walk.py +1 -1
  90. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/paths/_vibe_home.py +1 -1
  91. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/plan_session.py +2 -2
  92. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/programmatic.py +8 -8
  93. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/prompts/__init__.py +1 -1
  94. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/proxy_setup.py +1 -1
  95. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/session/session_loader.py +2 -2
  96. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/session/session_logger.py +6 -6
  97. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/session/session_migration.py +2 -2
  98. drydock_cli-0.5.0/drydock/core/skills/__init__.py +7 -0
  99. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/skills/manager.py +6 -6
  100. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/system_prompt.py +7 -7
  101. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/telemetry/send.py +5 -5
  102. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/teleport/git.py +2 -2
  103. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/teleport/nuage.py +2 -2
  104. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/teleport/teleport.py +6 -6
  105. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/teleport/types.py +1 -1
  106. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/tools/base.py +4 -4
  107. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/tools/builtins/ask_user_question.py +3 -3
  108. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/tools/builtins/bash.py +4 -4
  109. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/tools/builtins/exit_plan_mode.py +4 -4
  110. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/tools/builtins/grep.py +4 -4
  111. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/tools/builtins/read_file.py +5 -5
  112. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/tools/builtins/search_replace.py +4 -4
  113. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/tools/builtins/task.py +6 -6
  114. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/tools/builtins/todo.py +3 -3
  115. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/tools/builtins/webfetch.py +4 -4
  116. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/tools/builtins/websearch.py +6 -6
  117. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/tools/builtins/write_file.py +4 -4
  118. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/tools/manager.py +7 -7
  119. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/tools/mcp/__init__.py +2 -2
  120. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/tools/mcp/registry.py +5 -5
  121. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/tools/mcp/tools.py +6 -6
  122. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/tools/mcp_sampling.py +2 -2
  123. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/tools/ui.py +1 -1
  124. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/tools/utils.py +1 -1
  125. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/trusted_folders.py +1 -1
  126. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/types.py +1 -1
  127. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/utils.py +3 -3
  128. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/setup/onboarding/__init__.py +2 -2
  129. drydock_cli-0.5.0/drydock/setup/onboarding/screens/__init__.py +6 -0
  130. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/setup/onboarding/screens/api_key.py +6 -6
  131. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/setup/onboarding/screens/welcome.py +2 -2
  132. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/setup/trusted_folders/trust_folder_dialog.py +2 -2
  133. drydock_cli-0.4.1/vibe-acp.spec → drydock_cli-0.5.0/drydock-acp.spec +10 -12
  134. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/pyproject.toml +9 -10
  135. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/acp/conftest.py +4 -4
  136. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/acp/test_acp.py +2 -2
  137. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/acp/test_agent_thought.py +4 -4
  138. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/acp/test_bash.py +3 -3
  139. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/acp/test_compact_session_updates.py +3 -3
  140. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/acp/test_content.py +2 -2
  141. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/acp/test_initialize.py +1 -1
  142. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/acp/test_list_sessions.py +9 -9
  143. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/acp/test_load_session.py +6 -6
  144. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/acp/test_multi_session.py +2 -2
  145. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/acp/test_new_session.py +6 -6
  146. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/acp/test_proxy_setup_acp.py +8 -8
  147. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/acp/test_read_file.py +3 -3
  148. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/acp/test_search_replace.py +4 -4
  149. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/acp/test_set_config_option.py +7 -7
  150. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/acp/test_set_mode.py +2 -2
  151. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/acp/test_set_model.py +7 -7
  152. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/acp/test_tool_call_session_update.py +3 -3
  153. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/acp/test_utils.py +3 -3
  154. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/acp/test_write_file.py +5 -5
  155. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/autocompletion/test_file_indexer.py +1 -1
  156. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/autocompletion/test_fuzzy.py +1 -1
  157. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/autocompletion/test_path_completer_fuzzy.py +1 -1
  158. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/autocompletion/test_path_completer_recursive.py +1 -1
  159. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/autocompletion/test_path_completion_controller.py +3 -3
  160. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/autocompletion/test_path_prompt_transformer.py +1 -1
  161. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/autocompletion/test_slash_command_controller.py +3 -3
  162. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/autocompletion/test_ui_chat_autocompletion.py +4 -4
  163. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/backend/test_anthropic_adapter.py +3 -3
  164. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/backend/test_backend.py +8 -8
  165. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/backend/test_reasoning_adapter.py +3 -3
  166. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/backend/test_vertex_anthropic_adapter.py +8 -8
  167. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/cli/plan_offer/adapters/fake_whoami_gateway.py +1 -1
  168. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/cli/plan_offer/test_decide_plan_offer.py +3 -3
  169. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/cli/plan_offer/test_http_whoami_gateway.py +2 -2
  170. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/cli/test_bell_notifications.py +1 -1
  171. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/cli/test_braille_renderer.py +1 -1
  172. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/cli/test_clipboard.py +14 -14
  173. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/cli/test_commands.py +1 -1
  174. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/cli/test_copy_shortcuts.py +4 -4
  175. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/cli/test_external_editor.py +1 -1
  176. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/cli/test_no_markup_static.py +1 -1
  177. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/cli/test_question_app.py +33 -33
  178. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/cli/test_spinner.py +1 -1
  179. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/cli/test_switching_mode.py +3 -3
  180. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/cli/test_ui_clipboard_notifications.py +3 -3
  181. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/cli/test_ui_session_incremental_renderer.py +7 -7
  182. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/cli/test_ui_session_resume.py +7 -7
  183. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/cli/test_ui_skill_dispatch.py +3 -3
  184. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/cli/textual_ui/test_session_picker.py +2 -2
  185. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/conftest.py +10 -10
  186. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/core/test_agents.py +2 -2
  187. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/core/test_auth_crypto.py +1 -1
  188. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/core/test_auth_github.py +17 -17
  189. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/core/test_config_load_dotenv.py +1 -1
  190. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/core/test_config_paths.py +8 -8
  191. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/core/test_config_resolution.py +7 -7
  192. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/core/test_file_logging.py +12 -12
  193. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/core/test_plan_session.py +2 -2
  194. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/core/test_proxy_setup.py +3 -3
  195. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/core/test_slug.py +1 -1
  196. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/core/test_telemetry_send.py +23 -23
  197. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/core/test_teleport_git.py +2 -2
  198. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/core/test_teleport_nuage.py +6 -6
  199. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/core/test_teleport_service.py +7 -7
  200. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/core/test_trusted_folders.py +2 -2
  201. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/core/test_utils.py +1 -1
  202. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/mock/mock_backend_factory.py +2 -2
  203. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/mock/mock_entrypoint.py +7 -7
  204. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/mock/utils.py +1 -1
  205. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/onboarding/test_run_onboarding.py +1 -1
  206. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/onboarding/test_ui_onboarding.py +3 -3
  207. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/session/test_session_loader.py +3 -3
  208. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/session/test_session_logger.py +11 -11
  209. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/session/test_session_migration.py +2 -2
  210. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/skills/conftest.py +1 -1
  211. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/skills/test_manager.py +3 -3
  212. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/skills/test_models.py +1 -1
  213. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/skills/test_parser.py +1 -1
  214. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/base_snapshot_test_app.py +5 -5
  215. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/conftest.py +1 -1
  216. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/test_ui_snapshot_ask_user_question.py +3 -3
  217. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/test_ui_snapshot_code_block_horizontal_scrolling.py +1 -1
  218. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/test_ui_snapshot_parallel_tool_calls.py +4 -4
  219. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/test_ui_snapshot_proxy_setup.py +2 -2
  220. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/test_ui_snapshot_question_app.py +2 -2
  221. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/test_ui_snapshot_reasoning_content.py +1 -1
  222. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/test_ui_snapshot_release_update_notification.py +2 -2
  223. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/test_ui_snapshot_session_resume.py +1 -1
  224. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/test_ui_snapshot_streaming_tool_call.py +4 -4
  225. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/test_ui_snapshot_teleport.py +3 -3
  226. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/test_ui_snapshot_whats_new.py +6 -6
  227. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/stubs/fake_backend.py +1 -1
  228. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/stubs/fake_tool.py +2 -2
  229. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/test_agent_auto_compact.py +2 -2
  230. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/test_agent_backend.py +2 -2
  231. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/test_agent_observer_streaming.py +8 -8
  232. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/test_agent_stats.py +4 -4
  233. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/test_agent_tool_call.py +11 -11
  234. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/test_agents.py +10 -10
  235. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/test_cli_programmatic_preload.py +6 -6
  236. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/test_drydock_regression.py +37 -35
  237. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/test_drydock_tasks.py +33 -33
  238. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/test_history_manager.py +1 -1
  239. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/test_message_id.py +1 -1
  240. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/test_message_merging.py +2 -2
  241. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/test_middleware.py +4 -4
  242. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/test_reasoning_content.py +5 -5
  243. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/test_system_prompt.py +4 -4
  244. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/test_tagged_text.py +1 -1
  245. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/test_ui_external_editor.py +4 -4
  246. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/test_ui_input_history.py +4 -4
  247. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/tools/test_ask_user_question.py +4 -4
  248. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/tools/test_bash.py +2 -2
  249. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/tools/test_exit_plan_mode.py +4 -4
  250. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/tools/test_grep.py +2 -2
  251. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/tools/test_invoke_context.py +2 -2
  252. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/tools/test_manager_get_tool_config.py +8 -8
  253. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/tools/test_mcp.py +7 -7
  254. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/tools/test_mcp_sampling.py +2 -2
  255. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/tools/test_task.py +8 -8
  256. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/tools/test_ui_bash_execution.py +3 -3
  257. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/tools/test_webfetch.py +2 -2
  258. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/tools/test_websearch.py +3 -3
  259. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/update_notifier/adapters/fake_update_cache_repository.py +1 -1
  260. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/update_notifier/adapters/fake_update_gateway.py +1 -1
  261. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/update_notifier/test_do_update.py +7 -7
  262. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/update_notifier/test_filesystem_update_cache_repository.py +2 -2
  263. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/update_notifier/test_github_update_gateway.py +1 -1
  264. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/update_notifier/test_pypi_update_gateway.py +2 -2
  265. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/update_notifier/test_ui_update_notification.py +10 -10
  266. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/update_notifier/test_update_use_case.py +2 -2
  267. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/update_notifier/test_whats_new.py +7 -7
  268. drydock_cli-0.4.1/vibe/__init__.py +0 -6
  269. drydock_cli-0.4.1/vibe/cli/textual_ui/handlers/__init__.py +0 -5
  270. drydock_cli-0.4.1/vibe/cli/textual_ui/widgets/chat_input/__init__.py +0 -7
  271. drydock_cli-0.4.1/vibe/core/auth/__init__.py +0 -6
  272. drydock_cli-0.4.1/vibe/core/llm/backend/factory.py +0 -7
  273. drydock_cli-0.4.1/vibe/core/skills/__init__.py +0 -7
  274. drydock_cli-0.4.1/vibe/setup/onboarding/screens/__init__.py +0 -6
  275. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/.github/CODEOWNERS +0 -0
  276. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/.github/DISCUSSION_TEMPLATE/ideas.yml +0 -0
  277. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  278. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  279. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/.github/workflows/build-and-upload.yml +0 -0
  280. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/.github/workflows/ci.yml +0 -0
  281. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/.github/workflows/issue-labeler.yml +0 -0
  282. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/.github/workflows/release.yml +0 -0
  283. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/.gitignore +0 -0
  284. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/.pre-commit-config.yaml +0 -0
  285. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/.python-version +0 -0
  286. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/.typos.toml +0 -0
  287. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/.vscode/extensions.json +0 -0
  288. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/.vscode/launch.json +0 -0
  289. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/.vscode/settings.json +0 -0
  290. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/AGENTS.md +0 -0
  291. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/CHANGELOG.md +0 -0
  292. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/CONTRIBUTING.md +0 -0
  293. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/Drydock_rebrand.md +0 -0
  294. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/LICENSE +0 -0
  295. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/NOTICE +0 -0
  296. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/README.md +0 -0
  297. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/action.yml +0 -0
  298. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/distribution/zed/LICENSE +0 -0
  299. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/distribution/zed/extension.toml +0 -0
  300. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/distribution/zed/icons/mistral_vibe.svg +0 -0
  301. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/docs/README.md +0 -0
  302. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/docs/acp-setup.md +0 -0
  303. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/docs/proxy-setup.md +0 -0
  304. {drydock_cli-0.4.1/tests/backend → drydock_cli-0.5.0/drydock/acp}/__init__.py +0 -0
  305. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/acp/acp_logger.py +0 -0
  306. {drydock_cli-0.4.1/tests/cli/textual_ui → drydock_cli-0.5.0/drydock/acp/tools}/__init__.py +0 -0
  307. {drydock_cli-0.4.1/tests/mock → drydock_cli-0.5.0/drydock/cli}/__init__.py +0 -0
  308. {drydock_cli-0.4.1/vibe/acp → drydock_cli-0.5.0/drydock/cli/autocompletion}/__init__.py +0 -0
  309. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/autocompletion/base.py +0 -0
  310. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/clipboard.py +0 -0
  311. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/commands.py +0 -0
  312. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/history_manager.py +0 -0
  313. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/plan_offer/ports/whoami_gateway.py +0 -0
  314. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/terminal_setup.py +0 -0
  315. {drydock_cli-0.4.1/vibe/acp/tools → drydock_cli-0.5.0/drydock/cli/textual_ui}/__init__.py +0 -0
  316. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/textual_ui/ansi_markdown.py +0 -0
  317. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/textual_ui/app.tcss +0 -0
  318. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/textual_ui/external_editor.py +0 -0
  319. {drydock_cli-0.4.1/vibe/cli → drydock_cli-0.5.0/drydock/cli/textual_ui/notifications/adapters}/__init__.py +0 -0
  320. {drydock_cli-0.4.1/vibe/cli/autocompletion → drydock_cli-0.5.0/drydock/cli/textual_ui/notifications/ports}/__init__.py +0 -0
  321. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/textual_ui/notifications/ports/notification_port.py +0 -0
  322. {drydock_cli-0.4.1/vibe/cli/textual_ui → drydock_cli-0.5.0/drydock/cli/textual_ui/widgets}/__init__.py +0 -0
  323. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/textual_ui/widgets/braille_renderer.py +0 -0
  324. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/textual_ui/widgets/chat_input/completion_popup.py +0 -0
  325. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/textual_ui/widgets/load_more.py +0 -0
  326. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/textual_ui/widgets/no_markup_static.py +0 -0
  327. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/textual_ui/widgets/vscode_compat.py +0 -0
  328. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/update_notifier/ports/update_cache_repository.py +0 -0
  329. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/cli/update_notifier/ports/update_gateway.py +0 -0
  330. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/auth/crypto.py +0 -0
  331. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/auth/github.py +0 -0
  332. {drydock_cli-0.4.1/vibe/cli/textual_ui/notifications/adapters → drydock_cli-0.5.0/drydock/core/autocompletion}/__init__.py +0 -0
  333. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/autocompletion/file_indexer/ignore_rules.py +0 -0
  334. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/autocompletion/file_indexer/watcher.py +0 -0
  335. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/autocompletion/fuzzy.py +0 -0
  336. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/autocompletion/path_prompt.py +0 -0
  337. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/drydock_states.py +0 -0
  338. {drydock_cli-0.4.1/vibe/cli/textual_ui/notifications/ports → drydock_cli-0.5.0/drydock/core/llm}/__init__.py +0 -0
  339. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/paths/conventions.py +0 -0
  340. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/prompts/cli.md +0 -0
  341. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/prompts/compact.md +0 -0
  342. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/prompts/dangerous_directory.md +0 -0
  343. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/prompts/diagnostic.md +0 -0
  344. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/prompts/explore.md +0 -0
  345. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/prompts/planner.md +0 -0
  346. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/prompts/project_context.md +0 -0
  347. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/prompts/tests.md +0 -0
  348. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/skills/models.py +0 -0
  349. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/skills/parser.py +0 -0
  350. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/slug.py +0 -0
  351. {drydock_cli-0.4.1/vibe/cli/textual_ui/widgets → drydock_cli-0.5.0/drydock/core/telemetry}/__init__.py +0 -0
  352. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/teleport/errors.py +0 -0
  353. {drydock_cli-0.4.1/vibe/core/autocompletion → drydock_cli-0.5.0/drydock/core/tools/builtins/prompts}/__init__.py +0 -0
  354. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/tools/builtins/prompts/ask_user_question.md +0 -0
  355. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/tools/builtins/prompts/bash.md +0 -0
  356. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/tools/builtins/prompts/grep.md +0 -0
  357. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/tools/builtins/prompts/read_file.md +0 -0
  358. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/tools/builtins/prompts/search_replace.md +0 -0
  359. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/tools/builtins/prompts/swe_bench.md +0 -0
  360. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/tools/builtins/prompts/task.md +0 -0
  361. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/tools/builtins/prompts/todo.md +0 -0
  362. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/tools/builtins/prompts/webfetch.md +0 -0
  363. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/tools/builtins/prompts/websearch.md +0 -0
  364. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/core/tools/builtins/prompts/write_file.md +0 -0
  365. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/setup/onboarding/base.py +0 -0
  366. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/setup/onboarding/onboarding.tcss +0 -0
  367. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/setup/trusted_folders/trust_folder_dialog.tcss +0 -0
  368. {drydock_cli-0.4.1/vibe/core/llm → drydock_cli-0.5.0/drydock/skills}/__init__.py +0 -0
  369. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/skills/create-presentation/SKILL.md +0 -0
  370. {drydock_cli-0.4.1/vibe → drydock_cli-0.5.0/drydock}/whats_new.md +0 -0
  371. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/drydock_terms.md +0 -0
  372. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/flake.lock +0 -0
  373. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/flake.nix +0 -0
  374. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/scripts/README.md +0 -0
  375. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/scripts/bump_version.py +0 -0
  376. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/scripts/deploy_to_github.sh +0 -0
  377. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/scripts/install.sh +0 -0
  378. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/scripts/prepare_release.py +0 -0
  379. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/scripts/publish_to_pypi.sh +0 -0
  380. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/__init__.py +0 -0
  381. {drydock_cli-0.4.1/vibe/core/telemetry → drydock_cli-0.5.0/tests/backend}/__init__.py +0 -0
  382. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/backend/data/__init__.py +0 -0
  383. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/backend/data/fireworks.py +0 -0
  384. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/backend/data/mistral.py +0 -0
  385. {drydock_cli-0.4.1/vibe/core/tools/builtins/prompts → drydock_cli-0.5.0/tests/cli/textual_ui}/__init__.py +0 -0
  386. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/e2e/common.py +0 -0
  387. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/e2e/conftest.py +0 -0
  388. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/e2e/mock_server.py +0 -0
  389. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/e2e/test_cli_tui_onboarding.py +0 -0
  390. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/e2e/test_cli_tui_streaming.py +0 -0
  391. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/e2e/test_cli_tui_tool_approval.py +0 -0
  392. {drydock_cli-0.4.1/vibe/skills → drydock_cli-0.5.0/tests/mock}/__init__.py +0 -0
  393. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_collapsed.svg +0 -0
  394. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_expanded.svg +0 -0
  395. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_basic_conversation/test_snapshot_shows_basic_conversation.svg +0 -0
  396. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_code_block_horizontal_scrolling/test_snapshot_allows_horizontal_scrolling_for_long_code_blocks.svg +0 -0
  397. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_empty_assistant_before_reasoning/test_snapshot_empty_assistant_removed_when_reasoning_starts.svg +0 -0
  398. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_accept_edits_mode.svg +0 -0
  399. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_auto_approve_mode.svg +0 -0
  400. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_plan_mode.svg +0 -0
  401. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_wraps_to_default.svg +0 -0
  402. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_default_mode.svg +0 -0
  403. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_pending.svg +0 -0
  404. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_resolved.svg +0 -0
  405. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_cancel_discards_changes.svg +0 -0
  406. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_edit_existing_values.svg +0 -0
  407. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_empty.svg +0 -0
  408. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_with_values.svg +0 -0
  409. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_error.svg +0 -0
  410. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_new_values.svg +0 -0
  411. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_answer_first_advance.svg +0 -0
  412. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_first_answered_checkmark.svg +0 -0
  413. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_initial.svg +0 -0
  414. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_left_wraps.svg +0 -0
  415. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_right.svg +0 -0
  416. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_tab_to_second.svg +0 -0
  417. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_initial.svg +0 -0
  418. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_mixed_selection.svg +0 -0
  419. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_navigate_to_submit.svg +0 -0
  420. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_other_with_text.svg +0 -0
  421. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_first.svg +0 -0
  422. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_multiple.svg +0 -0
  423. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_untoggle.svg +0 -0
  424. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_initial.svg +0 -0
  425. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_down.svg +0 -0
  426. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_other.svg +0 -0
  427. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_third_option.svg +0 -0
  428. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_up_wraps.svg +0 -0
  429. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_other_typing.svg +0 -0
  430. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_buffered_reasoning_yields_before_content.svg +0 -0
  431. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_interleaved_reasoning.svg +0 -0
  432. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content.svg +0 -0
  433. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content_expanded.svg +0 -0
  434. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_release_update_notification/test_snapshot_shows_release_update_notification.svg +0 -0
  435. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_session_resume/test_snapshot_shows_resumed_session_messages.svg +0 -0
  436. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_partial.svg +0 -0
  437. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_updated.svg +0 -0
  438. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_cancel_selected.svg +0 -0
  439. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_multiple_commits.svg +0 -0
  440. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_single_commit.svg +0 -0
  441. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_complete.svg +0 -0
  442. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_required.svg +0 -0
  443. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_checking_git.svg +0 -0
  444. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_complete.svg +0 -0
  445. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_error.svg +0 -0
  446. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_pushing.svg +0 -0
  447. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_sending_token.svg +0 -0
  448. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_starting_workflow.svg +0 -0
  449. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_no_plan_message.svg +0 -0
  450. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_switch_message.svg +0 -0
  451. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_upgrade_message.svg +0 -0
  452. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_whats_new_message.svg +0 -0
  453. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/snap_compare.py +0 -0
  454. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/test_ui_snapshot_basic_conversation.py +0 -0
  455. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/test_ui_snapshot_empty_assistant_before_reasoning.py +0 -0
  456. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/snapshots/test_ui_snapshot_modes.py +0 -0
  457. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/tests/stubs/fake_client.py +0 -0
  458. {drydock_cli-0.4.1 → drydock_cli-0.5.0}/uv.lock +0 -0
@@ -28,12 +28,12 @@ python3 -c "import ast; ast.parse(open('path/to/file.py').read())"
28
28
 
29
29
  ## Key Architecture
30
30
 
31
- - `vibe/core/agent_loop.py` — Main agent loop. Loop detection, message ordering, tool execution. **Most changes go here.**
32
- - `vibe/core/programmatic.py` — Headless API entry point used by SWE-bench harness
33
- - `vibe/core/tools/builtins/bash.py` — Shell tool with allowlist/denylist, conda support
34
- - `vibe/core/tools/builtins/search_replace.py` — File editing tool with fuzzy matching
35
- - `vibe/core/prompts/cli.md` — System prompt (two-phase workflow, SWE-bench rules)
36
- - `vibe/core/types.py` — `MessageList` (custom Sequence, use `.reset()` not `=[]`)
31
+ - `drydock/core/agent_loop.py` — Main agent loop. Loop detection, message ordering, tool execution. **Most changes go here.**
32
+ - `drydock/core/programmatic.py` — Headless API entry point used by SWE-bench harness
33
+ - `drydock/core/tools/builtins/bash.py` — Shell tool with allowlist/denylist, conda support
34
+ - `drydock/core/tools/builtins/search_replace.py` — File editing tool with fuzzy matching
35
+ - `drydock/core/prompts/cli.md` — System prompt (two-phase workflow, SWE-bench rules)
36
+ - `drydock/core/types.py` — `MessageList` (custom Sequence, use `.reset()` not `=[]`)
37
37
 
38
38
  ## Critical Constraints
39
39
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: drydock-cli
3
- Version: 0.4.1
3
+ Version: 0.5.0
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
@@ -124,6 +124,40 @@ Diagnosed and fixed the remaining crash modes. Ran validation batches (51 tasks
124
124
  - **Full rebrand** — Mistral Vibe → Drydock throughout CLI, TUI, docs, config
125
125
  - **Published to GitHub** — https://github.com/fbobe321/drydock
126
126
 
127
+ ### Phase 5: UX Overhaul & Regression Tests (Mar 24)
128
+
129
+ User-reported issues from real usage testing, all fixed:
130
+
131
+ | Fix | Details |
132
+ |-----|---------|
133
+ | Wave spinner | ~≈~ animation with ocean blue colors, replaces snake |
134
+ | .drydock config | Default config dir is ~/.drydock (falls back to ~/.vibe) |
135
+ | Double Ctrl-C to quit | Single cancels operation, double within 1s exits |
136
+ | --dangerously-skip-permissions | CLI flag for auto-approve from start |
137
+ | Nautical Easter eggs | Removed all French terms (chocolatine, Proust, etc.) |
138
+ | Slower state switching | Deque maxlen 2→5, no rapid flickering |
139
+ | Write file timeout | 30s anyio.fail_after on all file I/O (read, write, search_replace) |
140
+ | Binary file guard | write_file rejects .pptx/.xlsx/.pdf with guidance for python-pptx |
141
+ | pptx skill | Bundled create-presentation skill with template handling & verification |
142
+ | Bash abuse detection | Nudge after 10+ bash calls without editing |
143
+ | search_replace failure guidance | After 3+ failures, tells model to re-read the file |
144
+ | Alternating loop detection | Catches A→B→A→B→A→B→A→B patterns |
145
+ | Progressive budget warnings | Nudges at 50, 100, 150 tool calls |
146
+ | Ambiguous prompt guard | "test"/"check" → asks for clarification instead of exploring |
147
+ | Unknown tool error | Lists available tools (fixes "Ralph tool" hallucination) |
148
+ | SSL proxy for websearch | HTTPS_PROXY and SSL_CERT_FILE support |
149
+ | Message queuing | New input queued during agent work, processed after completion |
150
+ | Resume message fixed | Says "drydock --resume" not "vibe --resume" |
151
+ | Mouse scroll | MOUSE_SUPPORT enabled for chat window |
152
+ | Ocean blue onboarding | Welcome screen gradient updated from orange to blue |
153
+
154
+ ### Phase 5b: Testing & CI (Mar 24)
155
+
156
+ - **64 regression tests** in 2 test files (0.12s total runtime)
157
+ - **Tests gate all deploys** — deploy_to_github.sh and publish_to_pypi.sh abort on failure
158
+ - **Continuous SWE-bench loop** — 320/500 tasks tested, 45.3% pass rate, auto-restarts on reboot
159
+ - **PyPI published** — drydock-cli v0.4.1
160
+
127
161
  ---
128
162
 
129
163
  ## Architecture
@@ -0,0 +1,7 @@
1
+ from __future__ import annotations
2
+
3
+ from pathlib import Path
4
+
5
+ DRYDOCK_ROOT = Path(__file__).parent
6
+ VIBE_ROOT = DRYDOCK_ROOT # Backward compatibility alias
7
+ __version__ = "0.5.0"
@@ -53,14 +53,14 @@ from acp.schema import (
53
53
  )
54
54
  from pydantic import BaseModel, ConfigDict
55
55
 
56
- from vibe import VIBE_ROOT, __version__
57
- from vibe.acp.acp_logger import acp_message_observer
58
- from vibe.acp.tools.base import BaseAcpTool
59
- from vibe.acp.tools.session_update import (
56
+ from drydock import VIBE_ROOT, __version__
57
+ from drydock.acp.acp_logger import acp_message_observer
58
+ from drydock.acp.tools.base import BaseAcpTool
59
+ from drydock.acp.tools.session_update import (
60
60
  tool_call_session_update,
61
61
  tool_result_session_update,
62
62
  )
63
- from vibe.acp.utils import (
63
+ from drydock.acp.utils import (
64
64
  TOOL_OPTIONS,
65
65
  ToolOption,
66
66
  create_assistant_message_replay,
@@ -75,24 +75,24 @@ from vibe.acp.utils import (
75
75
  make_mode_response,
76
76
  make_model_response,
77
77
  )
78
- from vibe.core.agent_loop import AgentLoop
79
- from vibe.core.agents.models import CHAT as CHAT_AGENT, BuiltinAgentName
80
- from vibe.core.autocompletion.path_prompt_adapter import render_path_prompt
81
- from vibe.core.config import (
78
+ from drydock.core.agent_loop import AgentLoop
79
+ from drydock.core.agents.models import CHAT as CHAT_AGENT, BuiltinAgentName
80
+ from drydock.core.autocompletion.path_prompt_adapter import render_path_prompt
81
+ from drydock.core.config import (
82
82
  MissingAPIKeyError,
83
83
  SessionLoggingConfig,
84
84
  VibeConfig,
85
85
  load_dotenv_values,
86
86
  )
87
- from vibe.core.proxy_setup import (
87
+ from drydock.core.proxy_setup import (
88
88
  ProxySetupError,
89
89
  parse_proxy_command,
90
90
  set_proxy_var,
91
91
  unset_proxy_var,
92
92
  )
93
- from vibe.core.session.session_loader import SessionLoader
94
- from vibe.core.tools.base import BaseToolConfig, ToolPermission
95
- from vibe.core.types import (
93
+ from drydock.core.session.session_loader import SessionLoader
94
+ from drydock.core.tools.base import BaseToolConfig, ToolPermission
95
+ from drydock.core.types import (
96
96
  ApprovalResponse,
97
97
  AssistantEvent,
98
98
  AsyncApprovalCallback,
@@ -107,7 +107,7 @@ from vibe.core.types import (
107
107
  ToolStreamEvent,
108
108
  UserMessageEvent,
109
109
  )
110
- from vibe.core.utils import CancellationReason, get_user_cancellation_message
110
+ from drydock.core.utils import CancellationReason, get_user_cancellation_message
111
111
 
112
112
 
113
113
  class AcpSessionLoop(BaseModel):
@@ -7,14 +7,14 @@ import sys
7
7
 
8
8
  import tomli_w
9
9
 
10
- from vibe import __version__
11
- from vibe.core.config import VibeConfig
12
- from vibe.core.config.harness_files import (
10
+ from drydock import __version__
11
+ from drydock.core.config import VibeConfig
12
+ from drydock.core.config.harness_files import (
13
13
  get_harness_files_manager,
14
14
  init_harness_files_manager,
15
15
  )
16
- from vibe.core.logger import logger
17
- from vibe.core.paths import HISTORY_FILE
16
+ from drydock.core.logger import logger
17
+ from drydock.core.paths import HISTORY_FILE
18
18
 
19
19
  # Configure line buffering for subprocess communication
20
20
  sys.stdout.reconfigure(line_buffering=True) # pyright: ignore[reportAttributeAccessIssue]
@@ -77,8 +77,8 @@ def main() -> None:
77
77
  handle_debug_mode()
78
78
  init_harness_files_manager("user", "project")
79
79
 
80
- from vibe.acp.acp_agent_loop import run_acp_server
81
- from vibe.setup.onboarding import run_onboarding
80
+ from drydock.acp.acp_agent_loop import run_acp_server
81
+ from drydock.setup.onboarding import run_onboarding
82
82
 
83
83
  bootstrap_config_files()
84
84
  args = parse_arguments()
@@ -8,10 +8,10 @@ from acp.helpers import SessionUpdate, ToolCallContentVariant
8
8
  from acp.schema import ToolCallProgress
9
9
  from pydantic import BaseModel, ConfigDict, Field, SkipValidation
10
10
 
11
- from vibe.core.logger import logger
12
- from vibe.core.tools.base import BaseTool, ToolError
13
- from vibe.core.tools.manager import ToolManager
14
- from vibe.core.types import ToolCallEvent, ToolResultEvent
11
+ from drydock.core.logger import logger
12
+ from drydock.core.tools.base import BaseTool, ToolError
13
+ from drydock.core.tools.manager import ToolManager
14
+ from drydock.core.types import ToolCallEvent, ToolResultEvent
15
15
 
16
16
 
17
17
  @runtime_checkable
@@ -11,12 +11,12 @@ from acp.schema import (
11
11
  WaitForTerminalExitResponse,
12
12
  )
13
13
 
14
- from vibe import VIBE_ROOT
15
- from vibe.acp.tools.base import AcpToolState, BaseAcpTool
16
- from vibe.core.logger import logger
17
- from vibe.core.tools.base import BaseToolState, InvokeContext, ToolError
18
- from vibe.core.tools.builtins.bash import Bash as CoreBashTool, BashArgs, BashResult
19
- from vibe.core.types import ToolCallEvent, ToolResultEvent, ToolStreamEvent
14
+ from drydock import VIBE_ROOT
15
+ from drydock.acp.tools.base import AcpToolState, BaseAcpTool
16
+ from drydock.core.logger import logger
17
+ from drydock.core.tools.base import BaseToolState, InvokeContext, ToolError
18
+ from drydock.core.tools.builtins.bash import Bash as CoreBashTool, BashArgs, BashResult
19
+ from drydock.core.types import ToolCallEvent, ToolResultEvent, ToolStreamEvent
20
20
 
21
21
 
22
22
  class AcpBashState(BaseToolState, AcpToolState):
@@ -2,10 +2,10 @@ from __future__ import annotations
2
2
 
3
3
  from pathlib import Path
4
4
 
5
- from vibe import VIBE_ROOT
6
- from vibe.acp.tools.base import AcpToolState, BaseAcpTool
7
- from vibe.core.tools.base import BaseToolState, ToolError
8
- from vibe.core.tools.builtins.read_file import (
5
+ from drydock import VIBE_ROOT
6
+ from drydock.acp.tools.base import AcpToolState, BaseAcpTool
7
+ from drydock.core.tools.base import BaseToolState, ToolError
8
+ from drydock.core.tools.builtins.read_file import (
9
9
  ReadFile as CoreReadFileTool,
10
10
  ReadFileArgs,
11
11
  ReadFileResult,
@@ -10,15 +10,15 @@ from acp.schema import (
10
10
  ToolCallStart,
11
11
  )
12
12
 
13
- from vibe import VIBE_ROOT
14
- from vibe.acp.tools.base import AcpToolState, BaseAcpTool
15
- from vibe.core.tools.base import BaseToolState, ToolError
16
- from vibe.core.tools.builtins.search_replace import (
13
+ from drydock import VIBE_ROOT
14
+ from drydock.acp.tools.base import AcpToolState, BaseAcpTool
15
+ from drydock.core.tools.base import BaseToolState, ToolError
16
+ from drydock.core.tools.builtins.search_replace import (
17
17
  SearchReplace as CoreSearchReplaceTool,
18
18
  SearchReplaceArgs,
19
19
  SearchReplaceResult,
20
20
  )
21
- from vibe.core.types import ToolCallEvent, ToolResultEvent
21
+ from drydock.core.types import ToolCallEvent, ToolResultEvent
22
22
 
23
23
 
24
24
  class AcpSearchReplaceState(BaseToolState, AcpToolState):
@@ -5,9 +5,9 @@ from typing import cast
5
5
  from acp.helpers import SessionUpdate
6
6
  from acp.schema import AgentPlanUpdate, PlanEntry, PlanEntryPriority, PlanEntryStatus
7
7
 
8
- from vibe import VIBE_ROOT
9
- from vibe.acp.tools.base import AcpToolState, BaseAcpTool
10
- from vibe.core.tools.builtins.todo import (
8
+ from drydock import VIBE_ROOT
9
+ from drydock.acp.tools.base import AcpToolState, BaseAcpTool
10
+ from drydock.core.tools.builtins.todo import (
11
11
  Todo as CoreTodoTool,
12
12
  TodoArgs,
13
13
  TodoPriority,
@@ -15,7 +15,7 @@ from vibe.core.tools.builtins.todo import (
15
15
  TodoState,
16
16
  TodoStatus,
17
17
  )
18
- from vibe.core.types import ToolCallEvent, ToolResultEvent
18
+ from drydock.core.types import ToolCallEvent, ToolResultEvent
19
19
 
20
20
  TodoArgs = TodoArgs
21
21
 
@@ -10,15 +10,15 @@ from acp.schema import (
10
10
  ToolCallStart,
11
11
  )
12
12
 
13
- from vibe import VIBE_ROOT
14
- from vibe.acp.tools.base import AcpToolState, BaseAcpTool
15
- from vibe.core.tools.base import BaseToolState, ToolError
16
- from vibe.core.tools.builtins.write_file import (
13
+ from drydock import VIBE_ROOT
14
+ from drydock.acp.tools.base import AcpToolState, BaseAcpTool
15
+ from drydock.core.tools.base import BaseToolState, ToolError
16
+ from drydock.core.tools.builtins.write_file import (
17
17
  WriteFile as CoreWriteFileTool,
18
18
  WriteFileArgs,
19
19
  WriteFileResult,
20
20
  )
21
- from vibe.core.types import ToolCallEvent, ToolResultEvent
21
+ from drydock.core.types import ToolCallEvent, ToolResultEvent
22
22
 
23
23
 
24
24
  class AcpWriteFileState(BaseToolState, AcpToolState):
@@ -9,13 +9,13 @@ from acp.schema import (
9
9
  ToolKind,
10
10
  )
11
11
 
12
- from vibe.acp.tools.base import (
12
+ from drydock.acp.tools.base import (
13
13
  ToolCallSessionUpdateProtocol,
14
14
  ToolResultSessionUpdateProtocol,
15
15
  )
16
- from vibe.core.tools.ui import ToolUIDataAdapter
17
- from vibe.core.types import ToolCallEvent, ToolResultEvent
18
- from vibe.core.utils import TaggedText, is_user_cancellation_event
16
+ from drydock.core.tools.ui import ToolUIDataAdapter
17
+ from drydock.core.types import ToolCallEvent, ToolResultEvent
18
+ from drydock.core.utils import TaggedText, is_user_cancellation_event
19
19
 
20
20
  TOOL_KIND: dict[str, ToolKind] = {
21
21
  "grep": "search",
@@ -21,13 +21,13 @@ from acp.schema import (
21
21
  UserMessageChunk,
22
22
  )
23
23
 
24
- from vibe.core.agents.models import AgentProfile, AgentType
25
- from vibe.core.proxy_setup import SUPPORTED_PROXY_VARS, get_current_proxy_settings
26
- from vibe.core.types import CompactEndEvent, CompactStartEvent, LLMMessage
27
- from vibe.core.utils import compact_reduction_display
24
+ from drydock.core.agents.models import AgentProfile, AgentType
25
+ from drydock.core.proxy_setup import SUPPORTED_PROXY_VARS, get_current_proxy_settings
26
+ from drydock.core.types import CompactEndEvent, CompactStartEvent, LLMMessage
27
+ from drydock.core.utils import compact_reduction_display
28
28
 
29
29
  if TYPE_CHECKING:
30
- from vibe.core.config import ModelConfig
30
+ from drydock.core.config import ModelConfig
31
31
 
32
32
 
33
33
  class ToolOption(StrEnum):
@@ -6,8 +6,8 @@ from threading import Lock
6
6
 
7
7
  from textual import events
8
8
 
9
- from vibe.cli.autocompletion.base import CompletionResult, CompletionView
10
- from vibe.core.autocompletion.completers import PathCompleter
9
+ from drydock.cli.autocompletion.base import CompletionResult, CompletionView
10
+ from drydock.core.autocompletion.completers import PathCompleter
11
11
 
12
12
  MAX_SUGGESTIONS_COUNT = 10
13
13
 
@@ -2,8 +2,8 @@ from __future__ import annotations
2
2
 
3
3
  from textual import events
4
4
 
5
- from vibe.cli.autocompletion.base import CompletionResult, CompletionView
6
- from vibe.core.autocompletion.completers import CommandCompleter
5
+ from drydock.cli.autocompletion.base import CompletionResult, CompletionView
6
+ from drydock.core.autocompletion.completers import CommandCompleter
7
7
 
8
8
  MAX_SUGGESTIONS_COUNT = 10
9
9
 
@@ -7,24 +7,24 @@ import sys
7
7
  from rich import print as rprint
8
8
  import tomli_w
9
9
 
10
- from vibe import __version__
11
- from vibe.cli.textual_ui.app import run_textual_ui
12
- from vibe.core.agent_loop import AgentLoop
13
- from vibe.core.agents.models import BuiltinAgentName
14
- from vibe.core.config import (
10
+ from drydock import __version__
11
+ from drydock.cli.textual_ui.app import run_textual_ui
12
+ from drydock.core.agent_loop import AgentLoop
13
+ from drydock.core.agents.models import BuiltinAgentName
14
+ from drydock.core.config import (
15
15
  MissingAPIKeyError,
16
16
  MissingPromptFileError,
17
17
  VibeConfig,
18
18
  load_dotenv_values,
19
19
  )
20
- from vibe.core.config.harness_files import get_harness_files_manager
21
- from vibe.core.logger import logger
22
- from vibe.core.paths import HISTORY_FILE
23
- from vibe.core.programmatic import run_programmatic
24
- from vibe.core.session.session_loader import SessionLoader
25
- from vibe.core.types import EntrypointMetadata, LLMMessage, OutputFormat, Role
26
- from vibe.core.utils import ConversationLimitException
27
- from vibe.setup.onboarding import run_onboarding
20
+ from drydock.core.config.harness_files import get_harness_files_manager
21
+ from drydock.core.logger import logger
22
+ from drydock.core.paths import HISTORY_FILE
23
+ from drydock.core.programmatic import run_programmatic
24
+ from drydock.core.session.session_loader import SessionLoader
25
+ from drydock.core.types import EntrypointMetadata, LLMMessage, OutputFormat, Role
26
+ from drydock.core.utils import ConversationLimitException
27
+ from drydock.setup.onboarding import run_onboarding
28
28
 
29
29
 
30
30
  def get_initial_agent_name(args: argparse.Namespace) -> str:
@@ -7,11 +7,11 @@ import sys
7
7
 
8
8
  from rich import print as rprint
9
9
 
10
- from vibe import __version__
11
- from vibe.core.agents.models import BuiltinAgentName
12
- from vibe.core.config.harness_files import init_harness_files_manager
13
- from vibe.core.trusted_folders import has_trustable_content, trusted_folders_manager
14
- from vibe.setup.trusted_folders.trust_folder_dialog import (
10
+ from drydock import __version__
11
+ from drydock.core.agents.models import BuiltinAgentName
12
+ from drydock.core.config.harness_files import init_harness_files_manager
13
+ from drydock.core.trusted_folders import has_trustable_content, trusted_folders_manager
14
+ from drydock.setup.trusted_folders.trust_folder_dialog import (
15
15
  TrustDialogQuitException,
16
16
  ask_trust_folder,
17
17
  )
@@ -165,7 +165,7 @@ def main() -> None:
165
165
  check_and_resolve_trusted_folder()
166
166
  init_harness_files_manager("user", "project")
167
167
 
168
- from vibe.cli.cli import run_cli
168
+ from drydock.cli.cli import run_cli
169
169
 
170
170
  run_cli(args)
171
171
 
@@ -5,7 +5,7 @@ from typing import cast
5
5
 
6
6
  import httpx
7
7
 
8
- from vibe.cli.plan_offer.ports.whoami_gateway import (
8
+ from drydock.cli.plan_offer.ports.whoami_gateway import (
9
9
  WhoAmIGatewayError,
10
10
  WhoAmIGatewayUnauthorized,
11
11
  WhoAmIResponse,
@@ -3,14 +3,14 @@ from __future__ import annotations
3
3
  import logging
4
4
  from os import getenv
5
5
 
6
- from vibe.cli.plan_offer.ports.whoami_gateway import (
6
+ from drydock.cli.plan_offer.ports.whoami_gateway import (
7
7
  WhoAmIGateway,
8
8
  WhoAmIGatewayError,
9
9
  WhoAmIGatewayUnauthorized,
10
10
  WhoAmIPlanType,
11
11
  WhoAmIResponse,
12
12
  )
13
- from vibe.core.config import DEFAULT_MISTRAL_API_ENV_KEY, Backend, ProviderConfig
13
+ from drydock.core.config import DEFAULT_MISTRAL_API_ENV_KEY, Backend, ProviderConfig
14
14
 
15
15
  logger = logging.getLogger(__name__)
16
16
 
@@ -20,34 +20,34 @@ from textual.events import AppBlur, AppFocus, MouseUp
20
20
  from textual.widget import Widget
21
21
  from textual.widgets import Static
22
22
 
23
- from vibe import __version__ as CORE_VERSION
24
- from vibe.cli.clipboard import copy_selection_to_clipboard
25
- from vibe.cli.commands import CommandRegistry
26
- from vibe.cli.plan_offer.adapters.http_whoami_gateway import HttpWhoAmIGateway
27
- from vibe.cli.plan_offer.decide_plan_offer import (
23
+ from drydock import __version__ as CORE_VERSION
24
+ from drydock.cli.clipboard import copy_selection_to_clipboard
25
+ from drydock.cli.commands import CommandRegistry
26
+ from drydock.cli.plan_offer.adapters.http_whoami_gateway import HttpWhoAmIGateway
27
+ from drydock.cli.plan_offer.decide_plan_offer import (
28
28
  PlanInfo,
29
29
  decide_plan_offer,
30
30
  plan_offer_cta,
31
31
  plan_title,
32
32
  resolve_api_key_for_plan,
33
33
  )
34
- from vibe.cli.plan_offer.ports.whoami_gateway import WhoAmIGateway, WhoAmIPlanType
35
- from vibe.cli.terminal_setup import setup_terminal
36
- from vibe.cli.textual_ui.handlers.event_handler import EventHandler
37
- from vibe.cli.textual_ui.notifications import (
34
+ from drydock.cli.plan_offer.ports.whoami_gateway import WhoAmIGateway, WhoAmIPlanType
35
+ from drydock.cli.terminal_setup import setup_terminal
36
+ from drydock.cli.textual_ui.handlers.event_handler import EventHandler
37
+ from drydock.cli.textual_ui.notifications import (
38
38
  NotificationContext,
39
39
  NotificationPort,
40
40
  TextualNotificationAdapter,
41
41
  )
42
- from vibe.cli.textual_ui.widgets.approval_app import ApprovalApp
43
- from vibe.cli.textual_ui.widgets.banner.banner import Banner
44
- from vibe.cli.textual_ui.widgets.chat_input import ChatInputContainer
45
- from vibe.cli.textual_ui.widgets.compact import CompactMessage
46
- from vibe.cli.textual_ui.widgets.config_app import ConfigApp
47
- from vibe.cli.textual_ui.widgets.context_progress import ContextProgress, TokenState
48
- from vibe.cli.textual_ui.widgets.load_more import HistoryLoadMoreRequested
49
- from vibe.cli.textual_ui.widgets.loading import LoadingWidget, paused_timer
50
- from vibe.cli.textual_ui.widgets.messages import (
42
+ from drydock.cli.textual_ui.widgets.approval_app import ApprovalApp
43
+ from drydock.cli.textual_ui.widgets.banner.banner import Banner
44
+ from drydock.cli.textual_ui.widgets.chat_input import ChatInputContainer
45
+ from drydock.cli.textual_ui.widgets.compact import CompactMessage
46
+ from drydock.cli.textual_ui.widgets.config_app import ConfigApp
47
+ from drydock.cli.textual_ui.widgets.context_progress import ContextProgress, TokenState
48
+ from drydock.cli.textual_ui.widgets.load_more import HistoryLoadMoreRequested
49
+ from drydock.cli.textual_ui.widgets.loading import LoadingWidget, paused_timer
50
+ from drydock.cli.textual_ui.widgets.messages import (
51
51
  BashOutputMessage,
52
52
  ErrorMessage,
53
53
  InterruptMessage,
@@ -57,14 +57,14 @@ from vibe.cli.textual_ui.widgets.messages import (
57
57
  WarningMessage,
58
58
  WhatsNewMessage,
59
59
  )
60
- from vibe.cli.textual_ui.widgets.no_markup_static import NoMarkupStatic
61
- from vibe.cli.textual_ui.widgets.path_display import PathDisplay
62
- from vibe.cli.textual_ui.widgets.proxy_setup_app import ProxySetupApp
63
- from vibe.cli.textual_ui.widgets.question_app import QuestionApp
64
- from vibe.cli.textual_ui.widgets.session_picker import SessionPickerApp
65
- from vibe.cli.textual_ui.widgets.teleport_message import TeleportMessage
66
- from vibe.cli.textual_ui.widgets.tools import ToolResultMessage
67
- from vibe.cli.textual_ui.windowing import (
60
+ from drydock.cli.textual_ui.widgets.no_markup_static import NoMarkupStatic
61
+ from drydock.cli.textual_ui.widgets.path_display import PathDisplay
62
+ from drydock.cli.textual_ui.widgets.proxy_setup_app import ProxySetupApp
63
+ from drydock.cli.textual_ui.widgets.question_app import QuestionApp
64
+ from drydock.cli.textual_ui.widgets.session_picker import SessionPickerApp
65
+ from drydock.cli.textual_ui.widgets.teleport_message import TeleportMessage
66
+ from drydock.cli.textual_ui.widgets.tools import ToolResultMessage
67
+ from drydock.cli.textual_ui.windowing import (
68
68
  HISTORY_RESUME_TAIL_MESSAGES,
69
69
  LOAD_MORE_BATCH_SIZE,
70
70
  HistoryLoadMoreManager,
@@ -75,7 +75,7 @@ from vibe.cli.textual_ui.windowing import (
75
75
  should_resume_history,
76
76
  sync_backfill_state,
77
77
  )
78
- from vibe.cli.update_notifier import (
78
+ from drydock.cli.update_notifier import (
79
79
  FileSystemUpdateCacheRepository,
80
80
  PyPIUpdateGateway,
81
81
  UpdateCacheRepository,
@@ -86,15 +86,15 @@ from vibe.cli.update_notifier import (
86
86
  mark_version_as_seen,
87
87
  should_show_whats_new,
88
88
  )
89
- from vibe.cli.update_notifier.update import do_update
90
- from vibe.core.agent_loop import AgentLoop, TeleportError
91
- from vibe.core.agents import AgentProfile
92
- from vibe.core.autocompletion.path_prompt_adapter import render_path_prompt
93
- from vibe.core.config import Backend, VibeConfig
94
- from vibe.core.logger import logger
95
- from vibe.core.paths import HISTORY_FILE
96
- from vibe.core.session.session_loader import SessionLoader
97
- from vibe.core.teleport.types import (
89
+ from drydock.cli.update_notifier.update import do_update
90
+ from drydock.core.agent_loop import AgentLoop, TeleportError
91
+ from drydock.core.agents import AgentProfile
92
+ from drydock.core.autocompletion.path_prompt_adapter import render_path_prompt
93
+ from drydock.core.config import Backend, VibeConfig
94
+ from drydock.core.logger import logger
95
+ from drydock.core.paths import HISTORY_FILE
96
+ from drydock.core.session.session_loader import SessionLoader
97
+ from drydock.core.teleport.types import (
98
98
  TeleportAuthCompleteEvent,
99
99
  TeleportAuthRequiredEvent,
100
100
  TeleportCheckingGitEvent,
@@ -105,21 +105,21 @@ from vibe.core.teleport.types import (
105
105
  TeleportSendingGithubTokenEvent,
106
106
  TeleportStartingWorkflowEvent,
107
107
  )
108
- from vibe.core.tools.base import ToolPermission
109
- from vibe.core.tools.builtins.ask_user_question import (
108
+ from drydock.core.tools.base import ToolPermission
109
+ from drydock.core.tools.builtins.ask_user_question import (
110
110
  AskUserQuestionArgs,
111
111
  AskUserQuestionResult,
112
112
  Choice,
113
113
  Question,
114
114
  )
115
- from vibe.core.types import (
115
+ from drydock.core.types import (
116
116
  AgentStats,
117
117
  ApprovalResponse,
118
118
  LLMMessage,
119
119
  RateLimitError,
120
120
  Role,
121
121
  )
122
- from vibe.core.utils import (
122
+ from drydock.core.utils import (
123
123
  CancellationReason,
124
124
  get_user_cancellation_message,
125
125
  is_dangerous_directory,
@@ -0,0 +1,5 @@
1
+ from __future__ import annotations
2
+
3
+ from drydock.cli.textual_ui.handlers.event_handler import EventHandler
4
+
5
+ __all__ = ["EventHandler"]
@@ -3,13 +3,13 @@ from __future__ import annotations
3
3
  from collections.abc import Callable
4
4
  from typing import TYPE_CHECKING
5
5
 
6
- from vibe.cli.textual_ui.widgets.compact import CompactMessage
7
- from vibe.cli.textual_ui.widgets.messages import AssistantMessage, ReasoningMessage
8
- from vibe.cli.textual_ui.widgets.no_markup_static import NoMarkupStatic
9
- from vibe.cli.textual_ui.widgets.tools import ToolCallMessage, ToolResultMessage
10
- from vibe.core.drydock_states import get_state_term
11
- from vibe.core.tools.ui import ToolUIDataAdapter
12
- from vibe.core.types import (
6
+ from drydock.cli.textual_ui.widgets.compact import CompactMessage
7
+ from drydock.cli.textual_ui.widgets.messages import AssistantMessage, ReasoningMessage
8
+ from drydock.cli.textual_ui.widgets.no_markup_static import NoMarkupStatic
9
+ from drydock.cli.textual_ui.widgets.tools import ToolCallMessage, ToolResultMessage
10
+ from drydock.core.drydock_states import get_state_term
11
+ from drydock.core.tools.ui import ToolUIDataAdapter
12
+ from drydock.core.types import (
13
13
  AssistantEvent,
14
14
  BaseEvent,
15
15
  CompactEndEvent,
@@ -20,10 +20,10 @@ from vibe.core.types import (
20
20
  ToolStreamEvent,
21
21
  UserMessageEvent,
22
22
  )
23
- from vibe.core.utils import TaggedText
23
+ from drydock.core.utils import TaggedText
24
24
 
25
25
  if TYPE_CHECKING:
26
- from vibe.cli.textual_ui.widgets.loading import LoadingWidget
26
+ from drydock.cli.textual_ui.widgets.loading import LoadingWidget
27
27
 
28
28
  # Maps tool status text keywords to drydock nautical state categories.
29
29
  _STATUS_TO_NAUTICAL_CATEGORY: dict[str, str] = {
@@ -1,9 +1,9 @@
1
1
  from __future__ import annotations
2
2
 
3
- from vibe.cli.textual_ui.notifications.adapters.textual_notification_adapter import (
3
+ from drydock.cli.textual_ui.notifications.adapters.textual_notification_adapter import (
4
4
  TextualNotificationAdapter,
5
5
  )
6
- from vibe.cli.textual_ui.notifications.ports.notification_port import (
6
+ from drydock.cli.textual_ui.notifications.ports.notification_port import (
7
7
  NotificationContext,
8
8
  NotificationPort,
9
9
  )