drydock-cli 2.9.55__tar.gz → 2.9.57__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 (708) hide show
  1. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/PKG-INFO +1 -1
  2. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/agent_loop.py +30 -4
  3. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/curiosity/gap_detector.py +203 -2
  4. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/pyproject.toml +1 -1
  5. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/uv.lock +1 -1
  6. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/.gitignore +0 -0
  7. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/LICENSE +0 -0
  8. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/NOTICE +0 -0
  9. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/README.md +0 -0
  10. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/distribution/zed/LICENSE +0 -0
  11. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/docs/README.md +0 -0
  12. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/__init__.py +0 -0
  13. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/__main__.py +0 -0
  14. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/acp/__init__.py +0 -0
  15. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/acp/acp_agent_loop.py +0 -0
  16. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/acp/acp_logger.py +0 -0
  17. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/acp/entrypoint.py +0 -0
  18. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/acp/tools/__init__.py +0 -0
  19. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/acp/tools/base.py +0 -0
  20. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/acp/tools/builtins/bash.py +0 -0
  21. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/acp/tools/builtins/read_file.py +0 -0
  22. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/acp/tools/builtins/search_replace.py +0 -0
  23. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/acp/tools/builtins/todo.py +0 -0
  24. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/acp/tools/builtins/write_file.py +0 -0
  25. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/acp/tools/session_update.py +0 -0
  26. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/acp/utils.py +0 -0
  27. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/admiral/__init__.py +0 -0
  28. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/admiral/detectors.py +0 -0
  29. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/admiral/detectors_proposed.py +0 -0
  30. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/admiral/history.py +0 -0
  31. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/admiral/interventions.py +0 -0
  32. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/admiral/llm_analyzer.py +0 -0
  33. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/admiral/metrics.py +0 -0
  34. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/admiral/opus_escalator.py +0 -0
  35. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/admiral/persistence.py +0 -0
  36. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/admiral/policy.py +0 -0
  37. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/admiral/proposer.py +0 -0
  38. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/admiral/stager.py +0 -0
  39. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/admiral/task_classifier.py +0 -0
  40. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/admiral/tuning.py +0 -0
  41. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/admiral/validator.py +0 -0
  42. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/admiral/worker.py +0 -0
  43. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/__init__.py +0 -0
  44. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/autocompletion/__init__.py +0 -0
  45. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/autocompletion/base.py +0 -0
  46. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/autocompletion/path_completion.py +0 -0
  47. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/autocompletion/slash_command.py +0 -0
  48. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/cli.py +0 -0
  49. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/clipboard.py +0 -0
  50. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/commands.py +0 -0
  51. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/entrypoint.py +0 -0
  52. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/fix_windows_path.py +0 -0
  53. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/history_manager.py +0 -0
  54. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/plan_offer/adapters/http_whoami_gateway.py +0 -0
  55. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/plan_offer/decide_plan_offer.py +0 -0
  56. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/plan_offer/ports/whoami_gateway.py +0 -0
  57. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/terminal_setup.py +0 -0
  58. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/__init__.py +0 -0
  59. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/ansi_markdown.py +0 -0
  60. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/app.py +0 -0
  61. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/app.tcss +0 -0
  62. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/external_editor.py +0 -0
  63. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/handlers/__init__.py +0 -0
  64. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/handlers/event_handler.py +0 -0
  65. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/notifications/__init__.py +0 -0
  66. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/notifications/adapters/__init__.py +0 -0
  67. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/notifications/adapters/textual_notification_adapter.py +0 -0
  68. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/notifications/ports/__init__.py +0 -0
  69. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/notifications/ports/notification_port.py +0 -0
  70. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/widgets/__init__.py +0 -0
  71. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/widgets/approval_app.py +0 -0
  72. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/widgets/banner/banner.py +0 -0
  73. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/widgets/banner/petit_chat.py +0 -0
  74. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/widgets/braille_renderer.py +0 -0
  75. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/widgets/chat_input/__init__.py +0 -0
  76. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/widgets/chat_input/body.py +0 -0
  77. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/widgets/chat_input/completion_manager.py +0 -0
  78. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/widgets/chat_input/completion_popup.py +0 -0
  79. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/widgets/chat_input/container.py +0 -0
  80. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/widgets/chat_input/text_area.py +0 -0
  81. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/widgets/checkpoint_picker.py +0 -0
  82. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/widgets/compact.py +0 -0
  83. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/widgets/config_app.py +0 -0
  84. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/widgets/context_progress.py +0 -0
  85. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/widgets/load_more.py +0 -0
  86. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/widgets/loading.py +0 -0
  87. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/widgets/messages.py +0 -0
  88. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/widgets/no_markup_static.py +0 -0
  89. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/widgets/path_display.py +0 -0
  90. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/widgets/proxy_setup_app.py +0 -0
  91. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/widgets/question_app.py +0 -0
  92. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/widgets/session_picker.py +0 -0
  93. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/widgets/spinner.py +0 -0
  94. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/widgets/status_message.py +0 -0
  95. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/widgets/teleport_message.py +0 -0
  96. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/widgets/tool_widgets.py +0 -0
  97. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/widgets/tools.py +0 -0
  98. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/widgets/vscode_compat.py +0 -0
  99. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/windowing/__init__.py +0 -0
  100. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/windowing/history.py +0 -0
  101. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/windowing/history_windowing.py +0 -0
  102. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/textual_ui/windowing/state.py +0 -0
  103. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/update_notifier/__init__.py +0 -0
  104. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/update_notifier/adapters/filesystem_update_cache_repository.py +0 -0
  105. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/update_notifier/adapters/github_update_gateway.py +0 -0
  106. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/update_notifier/adapters/pypi_update_gateway.py +0 -0
  107. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/update_notifier/ports/update_cache_repository.py +0 -0
  108. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/update_notifier/ports/update_gateway.py +0 -0
  109. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/update_notifier/update.py +0 -0
  110. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/cli/update_notifier/whats_new.py +0 -0
  111. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/__init__.py +0 -0
  112. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/agents/__init__.py +0 -0
  113. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/agents/manager.py +0 -0
  114. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/agents/models.py +0 -0
  115. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/auth/__init__.py +0 -0
  116. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/auth/crypto.py +0 -0
  117. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/auth/github.py +0 -0
  118. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/auto_solve.py +0 -0
  119. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/autocompletion/__init__.py +0 -0
  120. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/autocompletion/completers.py +0 -0
  121. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/autocompletion/file_indexer/__init__.py +0 -0
  122. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/autocompletion/file_indexer/ignore_rules.py +0 -0
  123. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/autocompletion/file_indexer/indexer.py +0 -0
  124. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/autocompletion/file_indexer/store.py +0 -0
  125. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/autocompletion/file_indexer/watcher.py +0 -0
  126. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/autocompletion/fuzzy.py +0 -0
  127. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/autocompletion/path_prompt.py +0 -0
  128. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/autocompletion/path_prompt_adapter.py +0 -0
  129. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/build_orchestrator.py +0 -0
  130. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/checkpoint.py +0 -0
  131. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/classifier/__init__.py +0 -0
  132. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/classifier/__main__.py +0 -0
  133. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/classifier/classifier.py +0 -0
  134. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/classifier/dispatcher.py +0 -0
  135. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/classifier/rules.py +0 -0
  136. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/classifier/signal.py +0 -0
  137. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/config/__init__.py +0 -0
  138. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/config/_dotenv.py +0 -0
  139. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/config/_settings.py +0 -0
  140. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/config/doctor.py +0 -0
  141. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/config/harness_files/__init__.py +0 -0
  142. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/config/harness_files/_harness_manager.py +0 -0
  143. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/config/harness_files/_paths.py +0 -0
  144. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/config/local_detect.py +0 -0
  145. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/config/migrate.py +0 -0
  146. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/constraint_extract.py +0 -0
  147. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/constraint_hint.py +0 -0
  148. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/consultant.py +0 -0
  149. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/context_recovery.py +0 -0
  150. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/drydock_states.py +0 -0
  151. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/goal.py +0 -0
  152. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/hooks.py +0 -0
  153. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/llm/__init__.py +0 -0
  154. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/llm/backend/anthropic.py +0 -0
  155. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/llm/backend/base.py +0 -0
  156. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/llm/backend/factory.py +0 -0
  157. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/llm/backend/generic.py +0 -0
  158. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/llm/backend/mistral.py +0 -0
  159. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/llm/backend/reasoning_adapter.py +0 -0
  160. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/llm/backend/vertex.py +0 -0
  161. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/llm/exceptions.py +0 -0
  162. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/llm/format.py +0 -0
  163. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/llm/message_utils.py +0 -0
  164. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/llm/types.py +0 -0
  165. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/logger.py +0 -0
  166. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/middleware.py +0 -0
  167. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/output_formatters.py +0 -0
  168. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/paths/__init__.py +0 -0
  169. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/paths/_drydock_home.py +0 -0
  170. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/paths/_local_config_walk.py +0 -0
  171. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/paths/conventions.py +0 -0
  172. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/plan_session.py +0 -0
  173. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/plugins.py +0 -0
  174. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/programmatic.py +0 -0
  175. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/prompts/__init__.py +0 -0
  176. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/prompts/builder.md +0 -0
  177. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/prompts/cli.md +0 -0
  178. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/prompts/compact.md +0 -0
  179. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/prompts/dangerous_directory.md +0 -0
  180. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/prompts/diagnostic.md +0 -0
  181. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/prompts/explore.md +0 -0
  182. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/prompts/gemma4.md +0 -0
  183. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/prompts/gemma4_math.md +0 -0
  184. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/prompts/gemma4_slim.md +0 -0
  185. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/prompts/planner.md +0 -0
  186. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/prompts/project_context.md +0 -0
  187. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/prompts/tests.md +0 -0
  188. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/proxy_setup.py +0 -0
  189. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/session/agent_memory.py +0 -0
  190. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/session/checkpoints.py +0 -0
  191. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/session/session_loader.py +0 -0
  192. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/session/session_logger.py +0 -0
  193. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/session/session_migration.py +0 -0
  194. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/session/state_file.py +0 -0
  195. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/session_checker.py +0 -0
  196. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/skills/__init__.py +0 -0
  197. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/skills/manager.py +0 -0
  198. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/skills/models.py +0 -0
  199. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/skills/parser.py +0 -0
  200. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/slug.py +0 -0
  201. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/spec_check.py +0 -0
  202. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/steering_hook.py +0 -0
  203. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/system_prompt.py +0 -0
  204. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/telemetry/__init__.py +0 -0
  205. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/telemetry/send.py +0 -0
  206. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/teleport/errors.py +0 -0
  207. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/teleport/git.py +0 -0
  208. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/teleport/nuage.py +0 -0
  209. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/teleport/teleport.py +0 -0
  210. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/teleport/types.py +0 -0
  211. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/base.py +0 -0
  212. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/_task_manager.py +0 -0
  213. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/algebra_tool.py +0 -0
  214. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/ask_user_question.py +0 -0
  215. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/bash.py +0 -0
  216. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/chemistry_tool.py +0 -0
  217. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/count_tool.py +0 -0
  218. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/cron.py +0 -0
  219. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/exit_plan_mode.py +0 -0
  220. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/glob_tool.py +0 -0
  221. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/grep.py +0 -0
  222. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/invoke_skill.py +0 -0
  223. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/linear_algebra_tool.py +0 -0
  224. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/logic_tool.py +0 -0
  225. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/lsp.py +0 -0
  226. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/math_tool.py +0 -0
  227. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/mcp_resources.py +0 -0
  228. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/mechanical_rename.py +0 -0
  229. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/memory_tool.py +0 -0
  230. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/notebook_edit.py +0 -0
  231. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/number_theory_tool.py +0 -0
  232. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/powershell.py +0 -0
  233. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/prolog_tool.py +0 -0
  234. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/prompts/__init__.py +0 -0
  235. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/prompts/ask_user_question.md +0 -0
  236. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/prompts/bash.md +0 -0
  237. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/prompts/cron.md +0 -0
  238. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/prompts/glob.md +0 -0
  239. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/prompts/grep.md +0 -0
  240. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/prompts/invoke_skill.md +0 -0
  241. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/prompts/lsp.md +0 -0
  242. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/prompts/mcp_resources.md +0 -0
  243. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/prompts/notebook_edit.md +0 -0
  244. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/prompts/powershell.md +0 -0
  245. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/prompts/read_file.md +0 -0
  246. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/prompts/retrieve.md +0 -0
  247. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/prompts/search_replace.md +0 -0
  248. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/prompts/swe_bench.md +0 -0
  249. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/prompts/task.md +0 -0
  250. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/prompts/task_manager.md +0 -0
  251. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/prompts/todo.md +0 -0
  252. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/prompts/tool_search.md +0 -0
  253. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/prompts/webfetch.md +0 -0
  254. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/prompts/websearch.md +0 -0
  255. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/prompts/worktree.md +0 -0
  256. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/prompts/write_file.md +0 -0
  257. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/read_file.py +0 -0
  258. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/retrieve.py +0 -0
  259. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/search_replace.py +0 -0
  260. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/set_tool.py +0 -0
  261. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/solve_tool.py +0 -0
  262. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/stats_tool.py +0 -0
  263. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/task.py +0 -0
  264. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/todo.py +0 -0
  265. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/tool_search.py +0 -0
  266. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/units_tool.py +0 -0
  267. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/verify_tool.py +0 -0
  268. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/webfetch.py +0 -0
  269. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/websearch.py +0 -0
  270. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/worktree.py +0 -0
  271. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/builtins/write_file.py +0 -0
  272. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/injection_guard.py +0 -0
  273. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/manager.py +0 -0
  274. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/mcp/__init__.py +0 -0
  275. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/mcp/registry.py +0 -0
  276. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/mcp/tools.py +0 -0
  277. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/mcp_sampling.py +0 -0
  278. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/ui.py +0 -0
  279. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/tools/utils.py +0 -0
  280. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/trusted_folders.py +0 -0
  281. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/types.py +0 -0
  282. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/core/utils.py +0 -0
  283. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/curiosity/__init__.py +0 -0
  284. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/curiosity/__main__.py +0 -0
  285. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/curiosity/ingest.py +0 -0
  286. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/curiosity/item.py +0 -0
  287. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/curiosity/queue.py +0 -0
  288. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/curiosity/surprise.py +0 -0
  289. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/graphrag/__init__.py +0 -0
  290. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/graphrag/__main__.py +0 -0
  291. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/graphrag/code_indexer.py +0 -0
  292. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/graphrag/retriever.py +0 -0
  293. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/graphrag/storage.py +0 -0
  294. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/graphrag/text_indexer.py +0 -0
  295. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/setup/onboarding/__init__.py +0 -0
  296. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/setup/onboarding/base.py +0 -0
  297. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/setup/onboarding/onboarding.tcss +0 -0
  298. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/setup/onboarding/screens/__init__.py +0 -0
  299. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/setup/onboarding/screens/api_key.py +0 -0
  300. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/setup/onboarding/screens/choice.py +0 -0
  301. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/setup/onboarding/screens/local_model.py +0 -0
  302. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/setup/onboarding/screens/welcome.py +0 -0
  303. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/setup/trusted_folders/trust_folder_dialog.py +0 -0
  304. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/setup/trusted_folders/trust_folder_dialog.tcss +0 -0
  305. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/skills/__init__.py +0 -0
  306. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/skills/api-design/SKILL.md +0 -0
  307. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/skills/audit-tests/SKILL.md +0 -0
  308. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/skills/batch/SKILL.md +0 -0
  309. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/skills/checklist/SKILL.md +0 -0
  310. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/skills/commit-code/SKILL.md +0 -0
  311. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/skills/constraint-reasoning/SKILL.md +0 -0
  312. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/skills/context-summary/SKILL.md +0 -0
  313. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/skills/create-presentation/SKILL.md +0 -0
  314. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/skills/deep-research/SKILL.md +0 -0
  315. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/skills/deploy/SKILL.md +0 -0
  316. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/skills/diff-review/SKILL.md +0 -0
  317. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/skills/doc-gen/SKILL.md +0 -0
  318. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/skills/explain-code/SKILL.md +0 -0
  319. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/skills/explore-code/SKILL.md +0 -0
  320. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/skills/fix-issue/SKILL.md +0 -0
  321. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/skills/git-ops/SKILL.md +0 -0
  322. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/skills/init-project/SKILL.md +0 -0
  323. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/skills/investigate/SKILL.md +0 -0
  324. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/skills/logic/SKILL.md +0 -0
  325. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/skills/logic/assets/cheat_sheet_full.txt +0 -0
  326. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/skills/loop/SKILL.md +0 -0
  327. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/skills/migrate/SKILL.md +0 -0
  328. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/skills/perf-analyze/SKILL.md +0 -0
  329. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/skills/plan-impl/SKILL.md +0 -0
  330. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/skills/pr-review/SKILL.md +0 -0
  331. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/skills/prove/SKILL.md +0 -0
  332. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/skills/refactor/SKILL.md +0 -0
  333. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/skills/regex-help/SKILL.md +0 -0
  334. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/skills/review/SKILL.md +0 -0
  335. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/skills/security-review/SKILL.md +0 -0
  336. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/skills/ship/SKILL.md +0 -0
  337. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/skills/simplify/SKILL.md +0 -0
  338. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/skills/strong-tests/SKILL.md +0 -0
  339. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/skills/test-verify/SKILL.md +0 -0
  340. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/steering/__init__.py +0 -0
  341. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/steering/__main__.py +0 -0
  342. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/steering/applier.py +0 -0
  343. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/steering/config.py +0 -0
  344. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/steering/registry.py +0 -0
  345. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/steering/sandbox.py +0 -0
  346. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/steering/sidecar/__init__.py +0 -0
  347. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/steering/sidecar/header_parser.py +0 -0
  348. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/steering/sidecar/hooks.py +0 -0
  349. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/steering/sidecar/loader.py +0 -0
  350. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/steering/sidecar/server.py +0 -0
  351. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/steering/train/__init__.py +0 -0
  352. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/steering/train/capture.py +0 -0
  353. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/steering/train/compute_vector.py +0 -0
  354. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/steering/train/extract_pairs.py +0 -0
  355. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/steering/train/scan_sessions.py +0 -0
  356. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/steering/vectors.py +0 -0
  357. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/drydock/whats_new.md +0 -0
  358. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/install_tests/README.md +0 -0
  359. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/install_tests/publish/README.md +0 -0
  360. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/install_tests/windows/README.md +0 -0
  361. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/scripts/README.md +0 -0
  362. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/scripts/_archived_eval_harness/README.md +0 -0
  363. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/scripts/llm/README.md +0 -0
  364. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/__init__.py +0 -0
  365. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/acp/conftest.py +0 -0
  366. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/acp/test_acp.py +0 -0
  367. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/acp/test_agent_thought.py +0 -0
  368. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/acp/test_bash.py +0 -0
  369. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/acp/test_compact_session_updates.py +0 -0
  370. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/acp/test_content.py +0 -0
  371. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/acp/test_initialize.py +0 -0
  372. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/acp/test_list_sessions.py +0 -0
  373. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/acp/test_load_session.py +0 -0
  374. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/acp/test_multi_session.py +0 -0
  375. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/acp/test_new_session.py +0 -0
  376. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/acp/test_proxy_setup_acp.py +0 -0
  377. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/acp/test_read_file.py +0 -0
  378. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/acp/test_search_replace.py +0 -0
  379. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/acp/test_set_config_option.py +0 -0
  380. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/acp/test_set_mode.py +0 -0
  381. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/acp/test_set_model.py +0 -0
  382. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/acp/test_tool_call_session_update.py +0 -0
  383. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/acp/test_utils.py +0 -0
  384. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/acp/test_write_file.py +0 -0
  385. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/autocompletion/conftest.py +0 -0
  386. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/autocompletion/test_file_indexer.py +0 -0
  387. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/autocompletion/test_fuzzy.py +0 -0
  388. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/autocompletion/test_path_completer_fuzzy.py +0 -0
  389. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/autocompletion/test_path_completer_recursive.py +0 -0
  390. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/autocompletion/test_path_completion_controller.py +0 -0
  391. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/autocompletion/test_path_prompt_transformer.py +0 -0
  392. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/autocompletion/test_slash_command_controller.py +0 -0
  393. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/autocompletion/test_ui_chat_autocompletion.py +0 -0
  394. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/backend/__init__.py +0 -0
  395. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/backend/data/__init__.py +0 -0
  396. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/backend/data/fireworks.py +0 -0
  397. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/backend/data/mistral.py +0 -0
  398. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/backend/test_anthropic_adapter.py +0 -0
  399. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/backend/test_backend.py +0 -0
  400. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/backend/test_generic_adapter_sanitize.py +0 -0
  401. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/backend/test_reasoning_adapter.py +0 -0
  402. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/backend/test_vertex_anthropic_adapter.py +0 -0
  403. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/cli/plan_offer/adapters/fake_whoami_gateway.py +0 -0
  404. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/cli/plan_offer/test_decide_plan_offer.py +0 -0
  405. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/cli/plan_offer/test_http_whoami_gateway.py +0 -0
  406. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/cli/test_bell_notifications.py +0 -0
  407. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/cli/test_braille_renderer.py +0 -0
  408. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/cli/test_clipboard.py +0 -0
  409. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/cli/test_commands.py +0 -0
  410. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/cli/test_copy_shortcuts.py +0 -0
  411. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/cli/test_external_editor.py +0 -0
  412. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/cli/test_no_markup_static.py +0 -0
  413. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/cli/test_question_app.py +0 -0
  414. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/cli/test_spinner.py +0 -0
  415. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/cli/test_switching_mode.py +0 -0
  416. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/cli/test_ui_clipboard_notifications.py +0 -0
  417. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/cli/test_ui_session_incremental_renderer.py +0 -0
  418. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/cli/test_ui_session_resume.py +0 -0
  419. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/cli/test_ui_skill_dispatch.py +0 -0
  420. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/cli/textual_ui/__init__.py +0 -0
  421. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/cli/textual_ui/test_session_picker.py +0 -0
  422. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/conftest.py +0 -0
  423. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/core/test_agents.py +0 -0
  424. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/core/test_auth_crypto.py +0 -0
  425. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/core/test_auth_github.py +0 -0
  426. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/core/test_circuit_breaker_count_escalation.py +0 -0
  427. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/core/test_circuit_breaker_readonly_threshold.py +0 -0
  428. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/core/test_config_load_dotenv.py +0 -0
  429. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/core/test_config_paths.py +0 -0
  430. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/core/test_config_resolution.py +0 -0
  431. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/core/test_file_logging.py +0 -0
  432. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/core/test_plan_session.py +0 -0
  433. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/core/test_proxy_setup.py +0 -0
  434. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/core/test_slug.py +0 -0
  435. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/core/test_telemetry_send.py +0 -0
  436. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/core/test_teleport_git.py +0 -0
  437. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/core/test_teleport_nuage.py +0 -0
  438. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/core/test_teleport_service.py +0 -0
  439. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/core/test_trusted_folders.py +0 -0
  440. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/core/test_utils.py +0 -0
  441. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/e2e/common.py +0 -0
  442. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/e2e/conftest.py +0 -0
  443. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/e2e/mock_server.py +0 -0
  444. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/e2e/test_cli_tui_onboarding.py +0 -0
  445. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/e2e/test_cli_tui_streaming.py +0 -0
  446. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/e2e/test_cli_tui_tool_approval.py +0 -0
  447. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/fixtures/doc_qa_system_prd.md +0 -0
  448. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/mock/__init__.py +0 -0
  449. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/mock/mock_backend_factory.py +0 -0
  450. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/mock/mock_entrypoint.py +0 -0
  451. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/mock/utils.py +0 -0
  452. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/onboarding/test_run_onboarding.py +0 -0
  453. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/onboarding/test_ui_onboarding.py +0 -0
  454. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/session/test_session_loader.py +0 -0
  455. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/session/test_session_logger.py +0 -0
  456. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/session/test_session_migration.py +0 -0
  457. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/skills/conftest.py +0 -0
  458. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/skills/test_manager.py +0 -0
  459. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/skills/test_models.py +0 -0
  460. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/skills/test_parser.py +0 -0
  461. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_collapsed.svg +0 -0
  462. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_expanded.svg +0 -0
  463. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_basic_conversation/test_snapshot_shows_basic_conversation.svg +0 -0
  464. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_code_block_horizontal_scrolling/test_snapshot_allows_horizontal_scrolling_for_long_code_blocks.svg +0 -0
  465. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_empty_assistant_before_reasoning/test_snapshot_empty_assistant_removed_when_reasoning_starts.svg +0 -0
  466. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_accept_edits_mode.svg +0 -0
  467. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_auto_approve_mode.svg +0 -0
  468. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_plan_mode.svg +0 -0
  469. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_wraps_to_default.svg +0 -0
  470. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_default_mode.svg +0 -0
  471. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_pending.svg +0 -0
  472. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_resolved.svg +0 -0
  473. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_cancel_discards_changes.svg +0 -0
  474. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_edit_existing_values.svg +0 -0
  475. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_empty.svg +0 -0
  476. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_with_values.svg +0 -0
  477. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_error.svg +0 -0
  478. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_new_values.svg +0 -0
  479. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_answer_first_advance.svg +0 -0
  480. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_first_answered_checkmark.svg +0 -0
  481. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_initial.svg +0 -0
  482. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_left_wraps.svg +0 -0
  483. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_right.svg +0 -0
  484. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_tab_to_second.svg +0 -0
  485. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_initial.svg +0 -0
  486. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_mixed_selection.svg +0 -0
  487. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_navigate_to_submit.svg +0 -0
  488. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_other_with_text.svg +0 -0
  489. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_first.svg +0 -0
  490. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_multiple.svg +0 -0
  491. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_untoggle.svg +0 -0
  492. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_initial.svg +0 -0
  493. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_down.svg +0 -0
  494. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_other.svg +0 -0
  495. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_third_option.svg +0 -0
  496. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_up_wraps.svg +0 -0
  497. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_other_typing.svg +0 -0
  498. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_buffered_reasoning_yields_before_content.svg +0 -0
  499. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_interleaved_reasoning.svg +0 -0
  500. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content.svg +0 -0
  501. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content_expanded.svg +0 -0
  502. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_release_update_notification/test_snapshot_shows_release_update_notification.svg +0 -0
  503. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_session_resume/test_snapshot_shows_resumed_session_messages.svg +0 -0
  504. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_partial.svg +0 -0
  505. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_updated.svg +0 -0
  506. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_cancel_selected.svg +0 -0
  507. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_multiple_commits.svg +0 -0
  508. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_single_commit.svg +0 -0
  509. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_complete.svg +0 -0
  510. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_required.svg +0 -0
  511. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_checking_git.svg +0 -0
  512. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_complete.svg +0 -0
  513. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_error.svg +0 -0
  514. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_pushing.svg +0 -0
  515. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_sending_token.svg +0 -0
  516. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_starting_workflow.svg +0 -0
  517. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_no_plan_message.svg +0 -0
  518. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_switch_message.svg +0 -0
  519. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_upgrade_message.svg +0 -0
  520. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_whats_new_message.svg +0 -0
  521. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/base_snapshot_test_app.py +0 -0
  522. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/conftest.py +0 -0
  523. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/snap_compare.py +0 -0
  524. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/test_ui_snapshot_ask_user_question.py +0 -0
  525. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/test_ui_snapshot_basic_conversation.py +0 -0
  526. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/test_ui_snapshot_code_block_horizontal_scrolling.py +0 -0
  527. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/test_ui_snapshot_empty_assistant_before_reasoning.py +0 -0
  528. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/test_ui_snapshot_modes.py +0 -0
  529. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/test_ui_snapshot_parallel_tool_calls.py +0 -0
  530. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/test_ui_snapshot_proxy_setup.py +0 -0
  531. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/test_ui_snapshot_question_app.py +0 -0
  532. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/test_ui_snapshot_reasoning_content.py +0 -0
  533. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/test_ui_snapshot_release_update_notification.py +0 -0
  534. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/test_ui_snapshot_session_resume.py +0 -0
  535. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/test_ui_snapshot_streaming_tool_call.py +0 -0
  536. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/test_ui_snapshot_teleport.py +0 -0
  537. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/snapshots/test_ui_snapshot_whats_new.py +0 -0
  538. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/stubs/fake_backend.py +0 -0
  539. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/stubs/fake_client.py +0 -0
  540. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/stubs/fake_tool.py +0 -0
  541. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_admiral.py +0 -0
  542. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_admiral_hallucinated_tool_filter.py +0 -0
  543. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_admiral_intervention_outcome.py +0 -0
  544. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_admiral_phase3.py +0 -0
  545. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_admiral_proposed.py +0 -0
  546. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_admiral_session_id.py +0 -0
  547. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_admiral_struggle_dedup.py +0 -0
  548. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_agent_auto_compact.py +0 -0
  549. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_agent_backend.py +0 -0
  550. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_agent_observer_streaming.py +0 -0
  551. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_agent_stats.py +0 -0
  552. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_agent_tasks.py +0 -0
  553. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_agent_tool_call.py +0 -0
  554. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_agents.py +0 -0
  555. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_algebra_tool.py +0 -0
  556. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_api_error_recovery.py +0 -0
  557. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_approval_modal_stray_keys.py +0 -0
  558. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_auto_retrieve_soft_nudge.py +0 -0
  559. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_auto_solve.py +0 -0
  560. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_bank_build.py +0 -0
  561. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_bank_debug.py +0 -0
  562. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_bank_multiagent.py +0 -0
  563. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_bank_prd.py +0 -0
  564. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_bank_prd_extended.py +0 -0
  565. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_bank_tools.py +0 -0
  566. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_bank_update.py +0 -0
  567. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_build_projects.py +0 -0
  568. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_checkpoint.py +0 -0
  569. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_chemistry_tool.py +0 -0
  570. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_classifier.py +0 -0
  571. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_cli_programmatic_preload.py +0 -0
  572. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_config_migration.py +0 -0
  573. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_constraint_extract.py +0 -0
  574. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_constraint_hint.py +0 -0
  575. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_context_recovery.py +0 -0
  576. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_count_tool.py +0 -0
  577. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_curiosity.py +0 -0
  578. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_current_bugs.py +0 -0
  579. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_dispatch_report.py +0 -0
  580. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_dispatcher.py +0 -0
  581. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_drydock_regression.py +0 -0
  582. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_drydock_tasks.py +0 -0
  583. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_fake_tool_call_paren_syntax.py +0 -0
  584. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_full_regression.py +0 -0
  585. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_gemma4_anti_loop_migration.py +0 -0
  586. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_goal.py +0 -0
  587. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_graphrag.py +0 -0
  588. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_graphrag_worked_examples.py +0 -0
  589. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_hallucinated_tool_suppression.py +0 -0
  590. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_history_manager.py +0 -0
  591. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_hle_aggregate.py +0 -0
  592. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_integration.py +0 -0
  593. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_issue_fixes.py +0 -0
  594. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_linear_algebra_tool.py +0 -0
  595. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_local_detect.py +0 -0
  596. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_logic_tool.py +0 -0
  597. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_loop_detection.py +0 -0
  598. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_math_docs_lazy_injection.py +0 -0
  599. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_math_tool.py +0 -0
  600. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_mcp_settings.py +0 -0
  601. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_mcp_stdio_command_normalization.py +0 -0
  602. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_memory_tool.py +0 -0
  603. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_message_id.py +0 -0
  604. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_message_merging.py +0 -0
  605. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_middleware.py +0 -0
  606. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_multi_agent.py +0 -0
  607. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_number_theory_tool.py +0 -0
  608. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_prolog_tool.py +0 -0
  609. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_read_file_not_found_listing.py +0 -0
  610. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_read_file_notebook_slim.py +0 -0
  611. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_real_failures.py +0 -0
  612. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_real_issues.py +0 -0
  613. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_real_workflow.py +0 -0
  614. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_reasoning_content.py +0 -0
  615. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_rejudge_hle.py +0 -0
  616. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_retrieval_consumer.py +0 -0
  617. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_retrieve_project_detection.py +0 -0
  618. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_retrieve_tool.py +0 -0
  619. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_safe_parse_tool_args.py +0 -0
  620. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_search_replace_args_not_truncated.py +0 -0
  621. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_search_replace_syntax_rollback.py +0 -0
  622. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_session_log_event.py +0 -0
  623. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_session_publish_on_resume.py +0 -0
  624. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_set_tool.py +0 -0
  625. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_smoke.py +0 -0
  626. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_solve_tool.py +0 -0
  627. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_specialist_math_tools_hidden.py +0 -0
  628. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_stats_tool.py +0 -0
  629. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_steering.py +0 -0
  630. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_steering_capture.py +0 -0
  631. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_steering_compute_vector.py +0 -0
  632. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_steering_extract_pairs.py +0 -0
  633. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_steering_hook.py +0 -0
  634. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_steering_sidecar_chat_inputs.py +0 -0
  635. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_steering_sidecar_hooks.py +0 -0
  636. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_system_prompt.py +0 -0
  637. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_tagged_text.py +0 -0
  638. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_task_complete_nudge.py +0 -0
  639. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_tool_args.py +0 -0
  640. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_tool_call_loops_regression_suite.py +0 -0
  641. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_tool_stop_injected_scope.py +0 -0
  642. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_truncate_args_valid_json.py +0 -0
  643. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_truncated_arg_path_hint.py +0 -0
  644. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_truncated_search_replace_escalation.py +0 -0
  645. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_truncated_write_escalation.py +0 -0
  646. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_ui_external_editor.py +0 -0
  647. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_ui_input_history.py +0 -0
  648. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_units_tool.py +0 -0
  649. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_user_issues.py +0 -0
  650. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_validation_error_scrub.py +0 -0
  651. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_verify_tool.py +0 -0
  652. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_wall_of_text_rescue.py +0 -0
  653. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_workloads.py +0 -0
  654. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/test_write_file_missing_path.py +0 -0
  655. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/testbank_helpers.py +0 -0
  656. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/tools/test_ask_user_question.py +0 -0
  657. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/tools/test_bash.py +0 -0
  658. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/tools/test_bash_binary_grep_hint.py +0 -0
  659. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/tools/test_bash_consec_empty_search.py +0 -0
  660. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/tools/test_bash_echo_escape_loop_breaker.py +0 -0
  661. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/tools/test_bash_empty_search_loop_breaker.py +0 -0
  662. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/tools/test_bash_error_loop_breaker.py +0 -0
  663. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/tools/test_bash_exact_cmd_loop_breaker.py +0 -0
  664. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/tools/test_bash_heredoc_confirmation.py +0 -0
  665. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/tools/test_bash_kill_exit1_annotation.py +0 -0
  666. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/tools/test_bash_python_c_syntaxerr_loop_breaker.py +0 -0
  667. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/tools/test_exit_plan_mode.py +0 -0
  668. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/tools/test_grep.py +0 -0
  669. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/tools/test_hallucinated_retrieval_redirect.py +0 -0
  670. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/tools/test_invoke_context.py +0 -0
  671. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/tools/test_manager_gemma_derived_models.py +0 -0
  672. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/tools/test_manager_get_tool_config.py +0 -0
  673. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/tools/test_mcp.py +0 -0
  674. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/tools/test_mcp_sampling.py +0 -0
  675. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/tools/test_pre_rename_hook.py +0 -0
  676. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/tools/test_read_file_dedup_alternating_offset.py +0 -0
  677. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/tools/test_read_file_dedup_reembed.py +0 -0
  678. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/tools/test_read_file_directory.py +0 -0
  679. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/tools/test_read_file_limit_truncation.py +0 -0
  680. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/tools/test_search_replace_append_fallback.py +0 -0
  681. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/tools/test_search_replace_dir_path.py +0 -0
  682. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/tools/test_search_replace_empty_content.py +0 -0
  683. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/tools/test_search_replace_file_not_found.py +0 -0
  684. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/tools/test_search_replace_first_failure_hint.py +0 -0
  685. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/tools/test_search_replace_hard_stop.py +0 -0
  686. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/tools/test_search_replace_malformed_block.py +0 -0
  687. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/tools/test_search_replace_no_op_loop_breaker.py +0 -0
  688. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/tools/test_search_replace_placeholder.py +0 -0
  689. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/tools/test_search_replace_refused_loop_breaker.py +0 -0
  690. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/tools/test_task.py +0 -0
  691. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/tools/test_ui_bash_execution.py +0 -0
  692. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/tools/test_webfetch.py +0 -0
  693. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/tools/test_websearch.py +0 -0
  694. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/tools/test_write_file_dedup_missing_imports.py +0 -0
  695. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/tools/test_write_file_missing_main_module.py +0 -0
  696. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/tools/test_write_file_missing_path_hint.py +0 -0
  697. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/tools/test_write_file_multifile_rename.py +0 -0
  698. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/update_notifier/adapters/fake_update_cache_repository.py +0 -0
  699. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/update_notifier/adapters/fake_update_gateway.py +0 -0
  700. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/update_notifier/test_do_update.py +0 -0
  701. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/update_notifier/test_filesystem_update_cache_repository.py +0 -0
  702. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/update_notifier/test_github_update_gateway.py +0 -0
  703. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/update_notifier/test_pypi_update_gateway.py +0 -0
  704. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/update_notifier/test_ui_update_notification.py +0 -0
  705. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/update_notifier/test_update_use_case.py +0 -0
  706. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/tests/update_notifier/test_whats_new.py +0 -0
  707. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/web/README.md +0 -0
  708. {drydock_cli-2.9.55 → drydock_cli-2.9.57}/worked_examples/README.md +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: drydock-cli
3
- Version: 2.9.55
3
+ Version: 2.9.57
4
4
  Summary: Local-first CLI coding agent — tested with Gemma 4 26B via llama.cpp
5
5
  Project-URL: Homepage, https://github.com/fbobe321/drydock
6
6
  Project-URL: Repository, https://github.com/fbobe321/drydock
@@ -1690,16 +1690,24 @@ class AgentLoop:
1690
1690
  # The verifier never ran for any of them. Nudging late
1691
1691
  # forces them to run the verifier and iterate.
1692
1692
  #
1693
- # Also count `verify` tool calls. If the model emitted a
1694
- # `verify` call recently AND it returned passed=True, do
1695
- # NOT nudge the model genuinely passed its check.
1693
+ # Count `verify` tool calls for the nudge text. Note:
1694
+ # `last_verify_passed` is NOT used as a gate anymore.
1695
+ # 2026-06-04 v2.9.55 batch: the model's `verify` tool
1696
+ # checks MODEL-CHOSEN criteria, not the external tbench
1697
+ # verifier. Self-pass happens easily (chess-best-move had
1698
+ # 4 verify calls, last passed=True, model's answer was
1699
+ # wrong, external tbench verifier rejected). Using
1700
+ # last_verify_passed as a gate silenced the nudge across
1701
+ # 37/37 fails in that batch. The nudge cap (10) is
1702
+ # already a sufficient bound; let it fire so Fix A
1703
+ # (path-aware nudge) actually runs.
1696
1704
  verify_count = 0
1697
1705
  last_verify_passed = False
1698
1706
  for msg in self.messages:
1699
1707
  if msg.role == Role.tool and (msg.name == "verify"):
1700
1708
  verify_count += 1
1701
1709
  last_verify_passed = "passed: True" in (msg.content or "")
1702
- if is_programmatic and nudges < 10 and not last_verify_passed:
1710
+ if is_programmatic and nudges < 10:
1703
1711
  self._premature_exit_nudges = nudges + 1
1704
1712
  if zero_writes:
1705
1713
  paths_hint = ""
@@ -1740,6 +1748,24 @@ class AgentLoop:
1740
1748
  f"no file, and partial-credit verifiers reward "
1741
1749
  f"format correctness even when content is off."
1742
1750
  )
1751
+ elif last_verify_passed:
1752
+ # 2026-06-04: model self-verified with its OWN
1753
+ # criterion. Real tbench/pytest verifier runs
1754
+ # later and is stricter. Warn explicitly.
1755
+ note = (
1756
+ f"⚠ PREMATURE EXIT BLOCK #{nudges + 1}/10. "
1757
+ f"Your `verify` call passed, but that checks "
1758
+ f"the criterion YOU wrote — not the external "
1759
+ f"pytest the harness will run after you exit. "
1760
+ f"Common gap: your verify checks 'file exists' "
1761
+ f"or 'output contains X', but the verifier "
1762
+ f"checks EXACT format / EXACT path / specific "
1763
+ f"line content. Re-read the task literally: "
1764
+ f"the path it names, the format it specifies, "
1765
+ f"the example outputs it shows. Run a stricter "
1766
+ f"check (cat the file, run pytest if installed, "
1767
+ f"diff against the example) BEFORE exiting."
1768
+ )
1743
1769
  else:
1744
1770
  note = (
1745
1771
  f"⚠ PREMATURE EXIT BLOCK #{nudges + 1}/10. "
@@ -43,6 +43,8 @@ _STOPWORDS: frozenset[str] = frozenset({
43
43
  # because they always lead a Title-Case phrase ("Consider the X").
44
44
  "Consider", "Suppose", "Given", "Let", "Define", "Compute",
45
45
  "Determine", "Evaluate", "Prove", "Recall", "Note", "Assume",
46
+ "Render", "Parse", "Scan", "Detect", "Match", "Merge",
47
+ "Insert", "Delete", "Select", "Update", "Create", "Drop",
46
48
  })
47
49
 
48
50
  # HLE / harness prompt-template tokens that the detector kept flagging
@@ -99,10 +101,98 @@ _TEMPLATE_NOISE: frozenset[str] = frozenset(
99
101
  # knowledge gap — 2026-06-04 queue audit top false positives.
100
102
  "ERROR", "WARNING", "INFO", "DEBUG", "CRITICAL", "FATAL",
101
103
  "TRACE", "VERBOSE", "NOTICE",
104
+ # HTTP methods — always known in coding context.
105
+ "GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS", "CONNECT",
106
+ # HTTP/web protocol abbreviations.
107
+ "SSE", "WS", "WSS", "RPC", "JSONRPC",
108
+ # Web/style formats.
109
+ "CSS", "SASS", "SCSS", "LESS",
110
+ # Common programming concepts always known in coding context.
111
+ "AST", "CFG", "DAG", "FSM", "DSL", "BNF", "EBNF", "REPL",
112
+ # Caching strategies.
113
+ "LRU", "LFU", "FIFO", "LIFO", "MRU",
114
+ # Encoding names with hyphen variants.
115
+ "UTF-8", "UTF-16", "UTF-32",
116
+ # Common placeholder / schema column-type words.
117
+ "VALUE", "DATE", "TIME", "SIZE", "HASH", "RANK",
118
+ # Project doc file names always known to a coding assistant.
119
+ "FAQ", "CONTRIBUTING", "AUTHORS", "CODEOWNERS", "SECURITY",
120
+ "MAINTAINERS", "NOTICE",
121
+ # Connector prepositions that match short-string regexes but are prose.
122
+ "IN", "OF", "AT", "ON", "BY", "AS",
123
+ # PRD section headers — always prose in template specs, not entities.
124
+ "OPEN QUESTIONS", "USE CASES", "NON-GOALS", "NON GOALS",
125
+ "EDGE CASES", "GETTING STARTED", "QUICK START", "OVERVIEW",
126
+ "BACKGROUND", "MOTIVATION", "RATIONALE", "OBJECTIVES", "SCOPE",
127
+ # Pytest / CI test-status words — appear as "pytest is RED / GREEN"
128
+ # in task prompts but are never GraphRAG-retrievable knowledge.
129
+ "RED", "GREEN", "PASS", "FAIL", "SKIP", "XFAIL",
130
+ "PASSED", "FAILED", "SKIPPED", "BROKEN", "XPASS",
102
131
  "STATUS", "STATE", "MODE", "TYPE", "KIND", "FLAG", "OPTION",
103
132
  "FINDINGS", "PATTERNS", "REGEXES", "FIELDS", "METHODS",
104
133
  "VERSION", "NAME", "PATH", "DATA", "OUTPUT", "INPUT",
105
134
  "CONFIG", "SCHEMA", "FORMAT", "TEMPLATE", "LAYOUT",
135
+ # SQL DDL keywords — written in ALL-CAPS in schema code but never
136
+ # a GraphRAG knowledge gap for a coding assistant.
137
+ "TEXT", "INTEGER", "REAL", "BLOB", "BOOLEAN", "NUMERIC",
138
+ "PRIMARY", "KEY", "UNIQUE", "INDEX", "FOREIGN", "REFERENCES",
139
+ "CONSTRAINT", "DEFAULT", "NOT NULL", "NULL", "AUTO INCREMENT",
140
+ "CREATE", "TABLE", "SELECT", "INSERT", "UPDATE", "DELETE",
141
+ "FROM", "WHERE", "JOIN", "LEFT", "RIGHT", "INNER", "OUTER",
142
+ "GROUP BY", "ORDER BY", "HAVING", "LIMIT", "OFFSET",
143
+ "BEGIN", "COMMIT", "ROLLBACK", "TRANSACTION",
144
+ # Common English words used in ALL-CAPS for emphasis in user specs —
145
+ # they match _RE_ACRONYM (≥3 uppercase) but carry no knowledge gap.
146
+ "OFFLINE", "ONLINE", "LOCAL", "REMOTE", "ALWAYS", "NEVER",
147
+ "ONLY", "ALSO", "MUST", "SHOULD", "WILL", "FULL", "EMPTY",
148
+ "DONE", "NEXT", "LAST", "FIRST", "EACH", "BOTH", "SAME",
149
+ "EVERY", "KEEP", "NEED", "ABLE", "MAKE", "WRITE", "READ",
150
+ "STORE", "CACHE", "DISK", "FILE", "PARSE", "LOAD", "CALL",
151
+ "SEND", "RECV", "OPEN", "CLOSE", "INIT", "STOP", "WAIT",
152
+ "SYNC", "ASYNC", "COPY", "MOVE", "PUSH", "PULL", "FETCH",
153
+ # Temporal conjunctions/prepositions used for emphasis in specs
154
+ "BEFORE", "AFTER", "DURING", "WHILE", "SINCE", "UNTIL",
155
+ "WHEN", "THEN", "ONCE", "ALREADY", "STILL", "AGAIN",
156
+ "ACROSS", "BETWEEN", "WITHIN", "WITHOUT", "THROUGH",
157
+ "ABOVE", "BELOW", "UNDER", "OVER", "INTO", "ONTO", "FROM",
158
+ "AGAINST", "BEYOND", "DESPITE", "EXCEPT", "INSTEAD",
159
+ "CLARIFICATION", "IMPLEMENTATION", "REQUIREMENT", "SPECIFICATION",
160
+ "DEFINITION", "DESCRIPTION", "DOCUMENTATION", "EXAMPLE",
161
+ "FEATURE", "FUNCTION", "INTERFACE", "PROPERTY", "ATTRIBUTE",
162
+ "INSTANCE", "OBJECT", "CLASS", "MODULE", "PACKAGE", "LIBRARY",
163
+ "MILK", # from "buy milk" test prompt — common English word
164
+ # Single-word emphasis — match _RE_ACRONYM (≥3 uppercase) but are
165
+ # common English words used for stress in PRD specs, not identifiers.
166
+ "ONE", "OLD", "END", "POST", "MOSTLY", "QUITE", "VERY",
167
+ # Networking / infra abbreviations always known in coding context.
168
+ "TTL", "ACL", "NAT", "DNS", "VPN", "LAN", "WAN",
169
+ # Product / project management abbreviations used in PRD prompts.
170
+ "PRD", "RFC", "ADR", "SLA", "SLO", "SLI", "KPI", "OKR",
171
+ # iCalendar (RFC 5545) protocol keywords — appear in iCal-format PRDs.
172
+ "VCALENDAR", "VEVENT", "VTODO", "VJOURNAL", "VALARM",
173
+ "DTSTART", "DTEND", "DTSTAMP", "DURATION", "RRULE",
174
+ # Common English nouns used as PRD field / attribute names — never a
175
+ # GraphRAG knowledge gap. 2026-06-04 queue audit: recency (215×),
176
+ # tasks (188×), untitled (67×), username (65×).
177
+ "recency", "tasks", "untitled", "username", "summary",
178
+ "legacy", "snapshot", "artifact", "payload", "metadata",
179
+ "endpoint", "workflow", "pipeline", "plugin", "widget",
180
+ "sidebar", "toolbar", "viewport", "canvas", "panel",
181
+ "dialog", "modal", "popup", "tooltip", "banner", "badge",
182
+ # Well-known infrastructure / framework names always known to a coding
183
+ # assistant — appear as lowercase terms in stress-run sessions where
184
+ # the model is asked to add support for common servers/tools.
185
+ "nginx", "gunicorn", "uwsgi", "celery", "supervisor",
186
+ "flask", "django", "fastapi", "tornado", "aiohttp", "bottle",
187
+ "pytest", "unittest", "nose", "tox",
188
+ "pandas", "numpy", "scipy", "matplotlib", "seaborn", "sklearn",
189
+ "docker", "kubernetes", "helm", "terraform", "ansible",
190
+ "webpack", "vite", "rollup", "esbuild", "babel",
191
+ # Generic technical snake_case nouns that are code-artifact names,
192
+ # not external library knowledge gaps.
193
+ "stack_trace", "word_count", "line_count", "byte_count", "char_count",
194
+ "legacy_modules", "legacy_module", "legacy_code",
195
+ "drydock_lifecycle", "drydock_test",
106
196
  }
107
197
  )
108
198
 
@@ -112,6 +202,39 @@ _CONNECTOR_WORDS: frozenset[str] = frozenset({
112
202
  "of", "the", "and", "for", "in", "de", "von", "a", "an",
113
203
  })
114
204
 
205
+ # Snake-case identifiers that start with a common action verb are generated
206
+ # code artifacts (CRUD methods, helpers), not external knowledge gaps.
207
+ _VERB_PREFIXES: frozenset[str] = frozenset({
208
+ "get_", "set_", "add_", "put_", "has_", "is_",
209
+ "list_", "count_", "delete_", "remove_", "create_", "make_",
210
+ "build_", "update_", "edit_", "save_", "load_", "read_", "write_",
211
+ "parse_", "format_", "render_", "handle_", "process_", "compute_",
212
+ "calc_", "check_", "validate_", "fetch_", "send_", "recv_",
213
+ "run_", "exec_", "init_", "reset_", "clear_", "close_", "open_",
214
+ "find_", "search_", "query_", "filter_", "sort_", "group_",
215
+ "encode_", "decode_", "serialize_", "deserialize_", "convert_",
216
+ "show_", "hide_", "display_", "print_", "log_", "report_",
217
+ "sample_", "generate_", "emit_", "merge_", "patch_", "register_",
218
+ "unregister_", "subscribe_", "publish_", "notify_", "watch_",
219
+ "require_", "resolve_", "dispatch_", "route_", "map_", "reduce_",
220
+ "collect_", "gather_", "aggregate_", "transform_", "extract_",
221
+ "inject_", "wrap_", "unwrap_", "clone_", "copy_", "move_",
222
+ "import_", "export_", "upload_", "download_", "stream_",
223
+ "test_", "assert_", "expect_", "mock_", "stub_", "spy_",
224
+ # Architecture-layer prefixes — snake_case with these prefixes are
225
+ # internal variables/types, not external library knowledge gaps.
226
+ "backend_", "frontend_", "status_", "top_", "base_", "main_",
227
+ "core_", "util_", "helper_", "common_", "shared_", "default_",
228
+ "current_", "prev_", "next_", "max_", "min_", "total_", "avg_",
229
+ "num_", "idx_", "pos_", "key_", "val_", "src_", "dst_", "tmp_",
230
+ "raw_", "cached_", "parsed_", "formatted_", "rendered_", "computed_",
231
+ # Format-sniffing / detection / request-field prefixes — code artifacts
232
+ # generated by the agent, not external library knowledge gaps.
233
+ "sniff_", "detect_", "infer_", "guess_",
234
+ "req_", "resp_", "res_", "body_", "header_", "param_",
235
+ "source_", "target_", "dest_", "output_", "input_",
236
+ })
237
+
115
238
 
116
239
  def _is_template_noise(candidate: str) -> bool:
117
240
  """True if the candidate is HLE/admiral boilerplate, not a real term."""
@@ -144,16 +267,38 @@ def _is_template_noise(candidate: str) -> bool:
144
267
  ".toml", ".log", ".html", ".xml", ".sql", ".sh", ".rs",
145
268
  ".go", ".ts", ".js", ".jsx", ".tsx", ".css", ".scss",
146
269
  ".bak", ".tmp", ".lock", ".pid", ".gz", ".zip", ".tar",
270
+ ".db", ".sqlite3", ".cache", ".dat", ".bin",
147
271
  )
148
272
  if "/" not in norm and any(norm.endswith(ext) for ext in _CODE_EXTS):
149
273
  return True
150
274
  # Dotted identifier where the post-dot component is a common English
151
- # word → sentence boundary artifact ("scratch.Step", "fail.Stop").
275
+ # word OR starts with a verb-prefix → sentence boundary artifact or
276
+ # code artifact ("scratch.Step", "fail.Stop", "parser.sniff_format").
152
277
  if "." in norm:
153
278
  parts = norm.split(".")
154
279
  _sw_lower = {w.lower() for w in _STOPWORDS}
155
280
  if any(p in _sw_lower for p in parts[1:]):
156
281
  return True
282
+ if any(any(p.startswith(vp) for vp in _VERB_PREFIXES) for p in parts[1:]):
283
+ return True
284
+ # Python stdlib module dotted names (json.loads, http.server, os.path)
285
+ # are always known to a coding assistant.
286
+ _STDLIB_MODULES: frozenset[str] = frozenset({
287
+ "os", "sys", "re", "io", "json", "csv", "xml", "html", "http",
288
+ "urllib", "email", "logging", "threading", "multiprocessing",
289
+ "subprocess", "socket", "ssl", "hashlib", "hmac", "uuid",
290
+ "datetime", "time", "calendar", "random", "math", "statistics",
291
+ "collections", "itertools", "functools", "operator", "copy",
292
+ "abc", "typing", "dataclasses", "enum", "pathlib", "shutil",
293
+ "tempfile", "glob", "fnmatch", "pickle", "shelve", "sqlite3",
294
+ "struct", "array", "queue", "heapq", "bisect", "weakref",
295
+ "contextlib", "inspect", "ast", "dis", "gc", "traceback",
296
+ "warnings", "unittest", "doctest", "pprint", "textwrap",
297
+ "string", "difflib", "argparse", "configparser", "platform",
298
+ "signal", "asyncio", "base64", "binascii", "codecs",
299
+ })
300
+ if parts[0] in _STDLIB_MODULES:
301
+ return True
157
302
  # LaTeX math expressions — false positives from HLE/academic prompts.
158
303
  # A term starting with $ or a LaTeX command backslash is math notation,
159
304
  # not a GraphRAG-retrievable identifier.
@@ -175,18 +320,74 @@ def _is_template_noise(candidate: str) -> bool:
175
320
  # generic utility patterns, not external library gaps.
176
321
  if norm.startswith("to_"):
177
322
  return True
323
+ # Snake_case names ending in common implementation-pattern suffixes are
324
+ # code artifacts generated by the agent, not external knowledge gaps.
325
+ # E.g. stack_trace, error_handler, config_manager, log_formatter.
326
+ _NOUN_SUFFIXES: frozenset[str] = frozenset({
327
+ "_trace", "_count", "_handler", "_manager", "_parser",
328
+ "_formatter", "_reader", "_writer", "_builder", "_factory",
329
+ "_registry", "_provider", "_consumer", "_producer",
330
+ "_iterator", "_generator", "_validator", "_serializer",
331
+ "_deserializer", "_encoder", "_decoder", "_processor",
332
+ "_executor", "_scheduler", "_dispatcher", "_router",
333
+ "_resolver", "_collector", "_aggregator", "_transformer",
334
+ "_extractor", "_injector", "_wrapper", "_observer",
335
+ "_listener", "_emitter", "_subscriber", "_publisher",
336
+ "_module", "_modules", "_helper", "_util", "_utils",
337
+ "_config", "_settings", "_options", "_params",
338
+ "_result", "_results", "_response", "_request",
339
+ "_context", "_session", "_client", "_server",
340
+ "_queue", "_stack", "_buffer", "_cache", "_store",
341
+ "_pool", "_cluster", "_node", "_worker", "_runner",
342
+ "_loop", "_cycle", "_tick", "_batch", "_chunk",
343
+ })
344
+ if "_" in norm and any(norm.endswith(s) for s in _NOUN_SUFFIXES):
345
+ return True
346
+ # Common action-verb prefixed snake_case names are code artifacts.
347
+ if any(norm.startswith(p) for p in _VERB_PREFIXES):
348
+ return True
349
+ # Roman numerals (MCMXCIV, XIV, etc.) — matched by _RE_ACRONYM but
350
+ # carry no knowledge gap for a coding assistant.
351
+ if len(norm) > 2 and re.match(
352
+ r'^m{0,4}(?:cm|cd|d?c{0,3})(?:xc|xl|l?x{0,3})(?:ix|iv|v?i{0,3})$',
353
+ norm
354
+ ) and norm:
355
+ return True
356
+ # Sentence fragments starting with a single lowercase letter then a space
357
+ # are contraction tails ("Don't" → "t ...", "Let's" → "s ..."). These
358
+ # are never retrievable identifiers.
359
+ if re.match(r"^[a-z] ", norm):
360
+ return True
178
361
  # All-lowercase multi-word phrases (e.g. "buy milk", "sample logs") —
179
362
  # quoted prose from task prompts, not identifiers worth retrieving.
180
363
  # Only filter if the *original* candidate is already lowercase — Title Case
181
364
  # phrases like "Attention Is All You Need" must still be detected.
365
+ # Strip punctuation before the regex so commas/periods don't block matches.
182
366
  orig = candidate.strip(" :.,;")
183
- if " " in norm and orig == orig.lower() and re.match(r"^[a-z][a-z0-9 _-]+$", norm):
367
+ norm_alphanum = re.sub(r"[^a-z0-9 _-]", "", norm)
368
+ if " " in norm and orig == orig.lower() and re.match(r"^[a-z][a-z0-9 _-]+$", norm_alphanum) and len(norm_alphanum) > 3:
184
369
  return True
185
370
  # Date format strings like "YYYY-MM", "YYYY-MM-DD", "/DD/YYYY" — these
186
371
  # are template tokens that contain YYYY/MM/DD components (now in
187
372
  # TEMPLATE_NOISE) separated by punctuation but the combined string isn't.
188
373
  if re.match(r"^[/\-]?(?:yyyy|mm|dd|hh|ss)(?:[/\-](?:yyyy|mm|dd|hh|ss))+$", norm):
189
374
  return True
375
+ # Hyphenated lowercase adjective phrases from PRD prose
376
+ # ("tab-separated", "human-readable", "newline-delimited") — these are
377
+ # format descriptors, not library identifiers worth retrieving.
378
+ if re.match(r"^[a-z][a-z0-9]+-[a-z][a-z0-9]+(?:-[a-z][a-z0-9]+)*$", norm):
379
+ return True
380
+ # Paths that contain known test-run or lifecycle directories — these are
381
+ # ephemeral artifacts from stress/lifecycle sessions, not real projects.
382
+ if re.search(r"(/drydock_lifecycle/|/pytest-of-|/pytest-\d|/tmp/drydock_|/swe_bench_|/test_harness_)", norm):
383
+ return True
384
+ # Latin abbreviations used as prose connectors ("i.e", "e.g", "etc").
385
+ if norm in ("i.e", "e.g", "etc", "i.e.", "e.g.", "etc.", "cf.", "cf", "vs", "vs."):
386
+ return True
387
+ # Snake_case identifiers containing _to_ in the middle are converter helpers
388
+ # (csv_to_json, rgb_to_hex) — project-generated code artifacts, not gaps.
389
+ if re.match(r"^[a-z][a-z0-9]*_to_[a-z][a-z0-9_]*$", norm):
390
+ return True
190
391
  return False
191
392
 
192
393
  # Acronyms shorter than this are too noisy to chase ("ID", "OK", "OS").
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "drydock-cli"
3
- version = "2.9.55"
3
+ version = "2.9.57"
4
4
  description = "Local-first CLI coding agent — tested with Gemma 4 26B via llama.cpp"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
@@ -326,7 +326,7 @@ wheels = [
326
326
 
327
327
  [[package]]
328
328
  name = "drydock-cli"
329
- version = "2.9.54"
329
+ version = "2.9.55"
330
330
  source = { editable = "." }
331
331
  dependencies = [
332
332
  { name = "agent-client-protocol" },
File without changes
File without changes
File without changes
File without changes