drydock-cli 2.8.49__tar.gz → 2.8.50__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 (829) hide show
  1. drydock_cli-2.8.50/.auto_release.lock +1 -0
  2. drydock_cli-2.8.50/.drydock/graphrag.sqlite +0 -0
  3. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/CLAUDE.md +45 -41
  4. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/PKG-INFO +1 -1
  5. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/agent_loop.py +30 -11
  6. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/retrieve.py +9 -0
  7. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/pyproject.toml +1 -1
  8. drydock_cli-2.8.50/scripts/_archived_eval_harness/README.md +38 -0
  9. drydock_cli-2.8.49/scripts/hle_eval.py → drydock_cli-2.8.50/scripts/_archived_eval_harness/hle_eval.py.deprecated +1 -1
  10. drydock_cli-2.8.50/tests/backend/__init__.py +0 -0
  11. drydock_cli-2.8.50/tests/cli/textual_ui/__init__.py +0 -0
  12. drydock_cli-2.8.50/tests/mock/__init__.py +0 -0
  13. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/trip_log.md +91 -0
  14. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/uv.lock +15 -1
  15. drydock_cli-2.8.49/.auto_release.lock +0 -1
  16. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/.github/CODEOWNERS +0 -0
  17. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/.github/DISCUSSION_TEMPLATE/ideas.yml +0 -0
  18. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  19. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  20. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/.github/workflows/build-and-upload.yml +0 -0
  21. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/.github/workflows/ci.yml +0 -0
  22. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/.github/workflows/issue-labeler.yml +0 -0
  23. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/.github/workflows/release.yml +0 -0
  24. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/.gitignore +0 -0
  25. /drydock_cli-2.8.49/.pause_stress → /drydock_cli-2.8.50/.pause_hle_babysitter +0 -0
  26. /drydock_cli-2.8.49/drydock/acp/__init__.py → /drydock_cli-2.8.50/.pause_hle_burndown +0 -0
  27. /drydock_cli-2.8.49/drydock/acp/tools/__init__.py → /drydock_cli-2.8.50/.pause_hle_burndown_keepalive +0 -0
  28. /drydock_cli-2.8.49/drydock/cli/__init__.py → /drydock_cli-2.8.50/.pause_stress +0 -0
  29. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/.pre-commit-config.yaml +0 -0
  30. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/.python-version +0 -0
  31. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/.typos.toml +0 -0
  32. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/.vscode/extensions.json +0 -0
  33. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/.vscode/launch.json +0 -0
  34. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/.vscode/settings.json +0 -0
  35. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/AGENTS.md +0 -0
  36. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/Admiral.md +0 -0
  37. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/CHANGELOG.md +0 -0
  38. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/CONTRIBUTING.md +0 -0
  39. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/DEEP_NOIR_PRD.md +0 -0
  40. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/DEPLOYMENT.md +0 -0
  41. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/DRYDOCK.md +0 -0
  42. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/HLE_PRD.md +0 -0
  43. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/JETSON_BENCH.md +0 -0
  44. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/LICENSE +0 -0
  45. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/MODEL_SHORTCOMINGS.md +0 -0
  46. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/NOTICE +0 -0
  47. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/README.md +0 -0
  48. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/SOVEREIGN_PRD.md +0 -0
  49. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/TRIAGE_v1.md +0 -0
  50. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/action.yml +0 -0
  51. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/baseline_history/README.md +0 -0
  52. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/baseline_history/results1.tsv +0 -0
  53. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/baseline_history/results13.tsv +0 -0
  54. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/baseline_history/results14.tsv +0 -0
  55. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/baseline_history/results15.tsv +0 -0
  56. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/baseline_history/results16.tsv +0 -0
  57. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/baseline_history/results17.tsv +0 -0
  58. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/baseline_history/results18.tsv +0 -0
  59. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/baseline_history/results19.tsv +0 -0
  60. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/baseline_history/results2.tsv +0 -0
  61. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/baseline_history/results20.tsv +0 -0
  62. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/baseline_history/results3.tsv +0 -0
  63. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/baseline_history/results4.tsv +0 -0
  64. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/baseline_history/results5.tsv +0 -0
  65. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/baseline_history/results6.tsv +0 -0
  66. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/baseline_history/results7.tsv +0 -0
  67. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/baseline_history/results8.tsv +0 -0
  68. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/baseline_history/results9.tsv +0 -0
  69. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/baseline_history/results_evolved_v1.tsv +0 -0
  70. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/distribution/zed/LICENSE +0 -0
  71. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/distribution/zed/extension.toml +0 -0
  72. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/distribution/zed/icons/mistral_vibe.svg +0 -0
  73. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/docs/README.md +0 -0
  74. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/docs/acp-setup.md +0 -0
  75. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/docs/archive/BASELINE_412.md +0 -0
  76. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/docs/archive/Drydock_rebrand.md +0 -0
  77. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/docs/archive/OVERNIGHT_PROGRESS.md +0 -0
  78. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/docs/archive/OVERNIGHT_REPORT_2026_04_13.md +0 -0
  79. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/docs/archive/PERF_SWEEP_PLAN.md +0 -0
  80. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/docs/archive/PRD.md +0 -0
  81. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/docs/archive/drydock_terms.md +0 -0
  82. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/docs/archive/resume.md +0 -0
  83. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/docs/proxy-setup.md +0 -0
  84. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/__init__.py +0 -0
  85. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/__main__.py +0 -0
  86. {drydock_cli-2.8.49/drydock/cli/autocompletion → drydock_cli-2.8.50/drydock/acp}/__init__.py +0 -0
  87. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/acp/acp_agent_loop.py +0 -0
  88. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/acp/acp_logger.py +0 -0
  89. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/acp/entrypoint.py +0 -0
  90. {drydock_cli-2.8.49/drydock/cli/textual_ui → drydock_cli-2.8.50/drydock/acp/tools}/__init__.py +0 -0
  91. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/acp/tools/base.py +0 -0
  92. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/acp/tools/builtins/bash.py +0 -0
  93. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/acp/tools/builtins/read_file.py +0 -0
  94. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/acp/tools/builtins/search_replace.py +0 -0
  95. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/acp/tools/builtins/todo.py +0 -0
  96. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/acp/tools/builtins/write_file.py +0 -0
  97. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/acp/tools/session_update.py +0 -0
  98. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/acp/utils.py +0 -0
  99. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/admiral/__init__.py +0 -0
  100. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/admiral/detectors.py +0 -0
  101. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/admiral/detectors_proposed.py +0 -0
  102. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/admiral/history.py +0 -0
  103. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/admiral/interventions.py +0 -0
  104. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/admiral/llm_analyzer.py +0 -0
  105. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/admiral/metrics.py +0 -0
  106. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/admiral/opus_escalator.py +0 -0
  107. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/admiral/persistence.py +0 -0
  108. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/admiral/policy.py +0 -0
  109. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/admiral/proposer.py +0 -0
  110. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/admiral/stager.py +0 -0
  111. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/admiral/task_classifier.py +0 -0
  112. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/admiral/tuning.py +0 -0
  113. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/admiral/validator.py +0 -0
  114. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/admiral/worker.py +0 -0
  115. {drydock_cli-2.8.49/drydock/cli/textual_ui/notifications/adapters → drydock_cli-2.8.50/drydock/cli}/__init__.py +0 -0
  116. {drydock_cli-2.8.49/drydock/cli/textual_ui/notifications/ports → drydock_cli-2.8.50/drydock/cli/autocompletion}/__init__.py +0 -0
  117. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/autocompletion/base.py +0 -0
  118. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/autocompletion/path_completion.py +0 -0
  119. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/autocompletion/slash_command.py +0 -0
  120. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/cli.py +0 -0
  121. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/clipboard.py +0 -0
  122. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/commands.py +0 -0
  123. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/entrypoint.py +0 -0
  124. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/fix_windows_path.py +0 -0
  125. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/history_manager.py +0 -0
  126. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/plan_offer/adapters/http_whoami_gateway.py +0 -0
  127. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/plan_offer/decide_plan_offer.py +0 -0
  128. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/plan_offer/ports/whoami_gateway.py +0 -0
  129. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/terminal_setup.py +0 -0
  130. {drydock_cli-2.8.49/drydock/cli/textual_ui/widgets → drydock_cli-2.8.50/drydock/cli/textual_ui}/__init__.py +0 -0
  131. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/textual_ui/ansi_markdown.py +0 -0
  132. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/textual_ui/app.py +0 -0
  133. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/textual_ui/app.tcss +0 -0
  134. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/textual_ui/external_editor.py +0 -0
  135. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/textual_ui/handlers/__init__.py +0 -0
  136. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/textual_ui/handlers/event_handler.py +0 -0
  137. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/textual_ui/notifications/__init__.py +0 -0
  138. {drydock_cli-2.8.49/drydock/core/autocompletion → drydock_cli-2.8.50/drydock/cli/textual_ui/notifications/adapters}/__init__.py +0 -0
  139. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/textual_ui/notifications/adapters/textual_notification_adapter.py +0 -0
  140. {drydock_cli-2.8.49/drydock/core/llm → drydock_cli-2.8.50/drydock/cli/textual_ui/notifications/ports}/__init__.py +0 -0
  141. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/textual_ui/notifications/ports/notification_port.py +0 -0
  142. {drydock_cli-2.8.49/drydock/core/telemetry → drydock_cli-2.8.50/drydock/cli/textual_ui/widgets}/__init__.py +0 -0
  143. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/approval_app.py +0 -0
  144. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/banner/banner.py +0 -0
  145. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/banner/petit_chat.py +0 -0
  146. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/braille_renderer.py +0 -0
  147. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/chat_input/__init__.py +0 -0
  148. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/chat_input/body.py +0 -0
  149. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/chat_input/completion_manager.py +0 -0
  150. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/chat_input/completion_popup.py +0 -0
  151. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/chat_input/container.py +0 -0
  152. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/chat_input/text_area.py +0 -0
  153. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/checkpoint_picker.py +0 -0
  154. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/compact.py +0 -0
  155. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/config_app.py +0 -0
  156. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/context_progress.py +0 -0
  157. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/load_more.py +0 -0
  158. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/loading.py +0 -0
  159. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/messages.py +0 -0
  160. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/no_markup_static.py +0 -0
  161. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/path_display.py +0 -0
  162. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/proxy_setup_app.py +0 -0
  163. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/question_app.py +0 -0
  164. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/session_picker.py +0 -0
  165. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/spinner.py +0 -0
  166. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/status_message.py +0 -0
  167. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/teleport_message.py +0 -0
  168. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/tool_widgets.py +0 -0
  169. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/tools.py +0 -0
  170. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/textual_ui/widgets/vscode_compat.py +0 -0
  171. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/textual_ui/windowing/__init__.py +0 -0
  172. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/textual_ui/windowing/history.py +0 -0
  173. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/textual_ui/windowing/history_windowing.py +0 -0
  174. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/textual_ui/windowing/state.py +0 -0
  175. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/update_notifier/__init__.py +0 -0
  176. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/update_notifier/adapters/filesystem_update_cache_repository.py +0 -0
  177. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/update_notifier/adapters/github_update_gateway.py +0 -0
  178. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/update_notifier/adapters/pypi_update_gateway.py +0 -0
  179. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/update_notifier/ports/update_cache_repository.py +0 -0
  180. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/update_notifier/ports/update_gateway.py +0 -0
  181. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/update_notifier/update.py +0 -0
  182. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/cli/update_notifier/whats_new.py +0 -0
  183. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/__init__.py +0 -0
  184. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/agents/__init__.py +0 -0
  185. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/agents/manager.py +0 -0
  186. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/agents/models.py +0 -0
  187. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/auth/__init__.py +0 -0
  188. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/auth/crypto.py +0 -0
  189. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/auth/github.py +0 -0
  190. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/auto_solve.py +0 -0
  191. {drydock_cli-2.8.49/drydock/core/tools/builtins/prompts → drydock_cli-2.8.50/drydock/core/autocompletion}/__init__.py +0 -0
  192. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/autocompletion/completers.py +0 -0
  193. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/autocompletion/file_indexer/__init__.py +0 -0
  194. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/autocompletion/file_indexer/ignore_rules.py +0 -0
  195. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/autocompletion/file_indexer/indexer.py +0 -0
  196. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/autocompletion/file_indexer/store.py +0 -0
  197. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/autocompletion/file_indexer/watcher.py +0 -0
  198. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/autocompletion/fuzzy.py +0 -0
  199. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/autocompletion/path_prompt.py +0 -0
  200. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/autocompletion/path_prompt_adapter.py +0 -0
  201. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/build_orchestrator.py +0 -0
  202. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/checkpoint.py +0 -0
  203. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/classifier/__init__.py +0 -0
  204. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/classifier/__main__.py +0 -0
  205. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/classifier/classifier.py +0 -0
  206. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/classifier/dispatcher.py +0 -0
  207. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/classifier/rules.py +0 -0
  208. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/classifier/signal.py +0 -0
  209. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/config/__init__.py +0 -0
  210. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/config/_dotenv.py +0 -0
  211. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/config/_settings.py +0 -0
  212. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/config/doctor.py +0 -0
  213. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/config/harness_files/__init__.py +0 -0
  214. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/config/harness_files/_harness_manager.py +0 -0
  215. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/config/harness_files/_paths.py +0 -0
  216. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/config/local_detect.py +0 -0
  217. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/config/migrate.py +0 -0
  218. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/constraint_extract.py +0 -0
  219. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/constraint_hint.py +0 -0
  220. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/consultant.py +0 -0
  221. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/context_recovery.py +0 -0
  222. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/drydock_states.py +0 -0
  223. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/goal.py +0 -0
  224. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/hooks.py +0 -0
  225. {drydock_cli-2.8.49/drydock/skills → drydock_cli-2.8.50/drydock/core/llm}/__init__.py +0 -0
  226. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/llm/backend/anthropic.py +0 -0
  227. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/llm/backend/base.py +0 -0
  228. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/llm/backend/factory.py +0 -0
  229. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/llm/backend/generic.py +0 -0
  230. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/llm/backend/mistral.py +0 -0
  231. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/llm/backend/reasoning_adapter.py +0 -0
  232. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/llm/backend/vertex.py +0 -0
  233. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/llm/exceptions.py +0 -0
  234. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/llm/format.py +0 -0
  235. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/llm/message_utils.py +0 -0
  236. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/llm/types.py +0 -0
  237. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/logger.py +0 -0
  238. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/middleware.py +0 -0
  239. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/output_formatters.py +0 -0
  240. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/paths/__init__.py +0 -0
  241. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/paths/_drydock_home.py +0 -0
  242. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/paths/_local_config_walk.py +0 -0
  243. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/paths/conventions.py +0 -0
  244. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/plan_session.py +0 -0
  245. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/plugins.py +0 -0
  246. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/programmatic.py +0 -0
  247. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/prompts/__init__.py +0 -0
  248. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/prompts/builder.md +0 -0
  249. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/prompts/cli.md +0 -0
  250. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/prompts/compact.md +0 -0
  251. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/prompts/dangerous_directory.md +0 -0
  252. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/prompts/diagnostic.md +0 -0
  253. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/prompts/explore.md +0 -0
  254. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/prompts/gemma4.md +0 -0
  255. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/prompts/planner.md +0 -0
  256. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/prompts/project_context.md +0 -0
  257. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/prompts/tests.md +0 -0
  258. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/proxy_setup.py +0 -0
  259. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/session/agent_memory.py +0 -0
  260. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/session/checkpoints.py +0 -0
  261. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/session/session_loader.py +0 -0
  262. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/session/session_logger.py +0 -0
  263. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/session/session_migration.py +0 -0
  264. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/session/state_file.py +0 -0
  265. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/session_checker.py +0 -0
  266. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/skills/__init__.py +0 -0
  267. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/skills/manager.py +0 -0
  268. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/skills/models.py +0 -0
  269. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/skills/parser.py +0 -0
  270. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/slug.py +0 -0
  271. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/steering_hook.py +0 -0
  272. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/system_prompt.py +0 -0
  273. {drydock_cli-2.8.49/tests/backend → drydock_cli-2.8.50/drydock/core/telemetry}/__init__.py +0 -0
  274. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/telemetry/send.py +0 -0
  275. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/teleport/errors.py +0 -0
  276. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/teleport/git.py +0 -0
  277. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/teleport/nuage.py +0 -0
  278. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/teleport/teleport.py +0 -0
  279. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/teleport/types.py +0 -0
  280. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/base.py +0 -0
  281. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/_task_manager.py +0 -0
  282. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/algebra_tool.py +0 -0
  283. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/ask_user_question.py +0 -0
  284. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/bash.py +0 -0
  285. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/chemistry_tool.py +0 -0
  286. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/count_tool.py +0 -0
  287. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/cron.py +0 -0
  288. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/exit_plan_mode.py +0 -0
  289. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/glob_tool.py +0 -0
  290. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/grep.py +0 -0
  291. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/invoke_skill.py +0 -0
  292. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/linear_algebra_tool.py +0 -0
  293. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/logic_tool.py +0 -0
  294. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/lsp.py +0 -0
  295. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/math_tool.py +0 -0
  296. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/mcp_resources.py +0 -0
  297. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/memory_tool.py +0 -0
  298. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/notebook_edit.py +0 -0
  299. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/number_theory_tool.py +0 -0
  300. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/powershell.py +0 -0
  301. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prolog_tool.py +0 -0
  302. {drydock_cli-2.8.49/tests/cli/textual_ui → drydock_cli-2.8.50/drydock/core/tools/builtins/prompts}/__init__.py +0 -0
  303. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/ask_user_question.md +0 -0
  304. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/bash.md +0 -0
  305. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/cron.md +0 -0
  306. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/glob.md +0 -0
  307. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/grep.md +0 -0
  308. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/invoke_skill.md +0 -0
  309. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/lsp.md +0 -0
  310. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/mcp_resources.md +0 -0
  311. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/notebook_edit.md +0 -0
  312. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/powershell.md +0 -0
  313. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/read_file.md +0 -0
  314. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/retrieve.md +0 -0
  315. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/search_replace.md +0 -0
  316. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/swe_bench.md +0 -0
  317. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/task.md +0 -0
  318. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/task_manager.md +0 -0
  319. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/todo.md +0 -0
  320. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/tool_search.md +0 -0
  321. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/webfetch.md +0 -0
  322. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/websearch.md +0 -0
  323. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/worktree.md +0 -0
  324. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/prompts/write_file.md +0 -0
  325. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/read_file.py +0 -0
  326. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/search_replace.py +0 -0
  327. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/set_tool.py +0 -0
  328. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/solve_tool.py +0 -0
  329. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/stats_tool.py +0 -0
  330. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/task.py +0 -0
  331. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/todo.py +0 -0
  332. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/tool_search.py +0 -0
  333. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/units_tool.py +0 -0
  334. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/verify_tool.py +0 -0
  335. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/webfetch.py +0 -0
  336. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/websearch.py +0 -0
  337. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/worktree.py +0 -0
  338. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/builtins/write_file.py +0 -0
  339. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/injection_guard.py +0 -0
  340. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/manager.py +0 -0
  341. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/mcp/__init__.py +0 -0
  342. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/mcp/registry.py +0 -0
  343. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/mcp/tools.py +0 -0
  344. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/mcp_sampling.py +0 -0
  345. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/ui.py +0 -0
  346. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/tools/utils.py +0 -0
  347. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/trusted_folders.py +0 -0
  348. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/types.py +0 -0
  349. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/core/utils.py +0 -0
  350. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/curiosity/__init__.py +0 -0
  351. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/curiosity/__main__.py +0 -0
  352. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/curiosity/gap_detector.py +0 -0
  353. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/curiosity/item.py +0 -0
  354. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/curiosity/queue.py +0 -0
  355. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/curiosity/surprise.py +0 -0
  356. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/graphrag/__init__.py +0 -0
  357. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/graphrag/__main__.py +0 -0
  358. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/graphrag/code_indexer.py +0 -0
  359. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/graphrag/retriever.py +0 -0
  360. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/graphrag/storage.py +0 -0
  361. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/graphrag/text_indexer.py +0 -0
  362. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/setup/onboarding/__init__.py +0 -0
  363. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/setup/onboarding/base.py +0 -0
  364. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/setup/onboarding/onboarding.tcss +0 -0
  365. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/setup/onboarding/screens/__init__.py +0 -0
  366. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/setup/onboarding/screens/api_key.py +0 -0
  367. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/setup/onboarding/screens/choice.py +0 -0
  368. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/setup/onboarding/screens/local_model.py +0 -0
  369. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/setup/onboarding/screens/welcome.py +0 -0
  370. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/setup/trusted_folders/trust_folder_dialog.py +0 -0
  371. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/setup/trusted_folders/trust_folder_dialog.tcss +0 -0
  372. {drydock_cli-2.8.49/tests/mock → drydock_cli-2.8.50/drydock/skills}/__init__.py +0 -0
  373. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/skills/api-design/SKILL.md +0 -0
  374. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/skills/audit-tests/SKILL.md +0 -0
  375. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/skills/batch/SKILL.md +0 -0
  376. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/skills/commit-code/SKILL.md +0 -0
  377. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/skills/constraint-reasoning/SKILL.md +0 -0
  378. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/skills/context-summary/SKILL.md +0 -0
  379. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/skills/create-presentation/SKILL.md +0 -0
  380. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/skills/deep-research/SKILL.md +0 -0
  381. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/skills/deploy/SKILL.md +0 -0
  382. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/skills/diff-review/SKILL.md +0 -0
  383. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/skills/doc-gen/SKILL.md +0 -0
  384. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/skills/explain-code/SKILL.md +0 -0
  385. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/skills/explore-code/SKILL.md +0 -0
  386. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/skills/fix-issue/SKILL.md +0 -0
  387. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/skills/git-ops/SKILL.md +0 -0
  388. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/skills/init-project/SKILL.md +0 -0
  389. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/skills/investigate/SKILL.md +0 -0
  390. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/skills/logic/SKILL.md +0 -0
  391. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/skills/logic/assets/cheat_sheet_full.txt +0 -0
  392. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/skills/loop/SKILL.md +0 -0
  393. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/skills/migrate/SKILL.md +0 -0
  394. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/skills/perf-analyze/SKILL.md +0 -0
  395. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/skills/plan-impl/SKILL.md +0 -0
  396. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/skills/pr-review/SKILL.md +0 -0
  397. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/skills/prove/SKILL.md +0 -0
  398. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/skills/refactor/SKILL.md +0 -0
  399. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/skills/regex-help/SKILL.md +0 -0
  400. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/skills/review/SKILL.md +0 -0
  401. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/skills/security-review/SKILL.md +0 -0
  402. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/skills/ship/SKILL.md +0 -0
  403. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/skills/simplify/SKILL.md +0 -0
  404. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/skills/strong-tests/SKILL.md +0 -0
  405. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/skills/test-verify/SKILL.md +0 -0
  406. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/steering/__init__.py +0 -0
  407. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/steering/__main__.py +0 -0
  408. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/steering/applier.py +0 -0
  409. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/steering/config.py +0 -0
  410. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/steering/registry.py +0 -0
  411. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/steering/sandbox.py +0 -0
  412. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/steering/sidecar/__init__.py +0 -0
  413. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/steering/sidecar/header_parser.py +0 -0
  414. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/steering/sidecar/hooks.py +0 -0
  415. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/steering/sidecar/loader.py +0 -0
  416. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/steering/sidecar/server.py +0 -0
  417. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/steering/train/__init__.py +0 -0
  418. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/steering/train/capture.py +0 -0
  419. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/steering/train/compute_vector.py +0 -0
  420. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/steering/train/extract_pairs.py +0 -0
  421. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/steering/train/scan_sessions.py +0 -0
  422. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/steering/vectors.py +0 -0
  423. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock/whats_new.md +0 -0
  424. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/drydock-acp.spec +0 -0
  425. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/flake.lock +0 -0
  426. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/flake.nix +0 -0
  427. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/outlook_draft_assistant.tar.gz +0 -0
  428. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/research/README.md +0 -0
  429. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/research/config_base.toml +0 -0
  430. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/research/config_best.toml +0 -0
  431. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/research/deep_noir/pairs/empty_after_bash.jsonl +0 -0
  432. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/research/deep_noir/pairs/scan_empty_after_bash.jsonl +0 -0
  433. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/research/domain_spec.md +0 -0
  434. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/research/experimenter.py +0 -0
  435. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/research/kernel.py +0 -0
  436. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/research/mini_prd.md +0 -0
  437. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/research/mini_prompts.txt +0 -0
  438. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/research/proposer.py +0 -0
  439. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/research/results.tsv +0 -0
  440. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/resume.md +0 -0
  441. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/README.md +0 -0
  442. /drydock_cli-2.8.49/scripts/auto_solve_audit.py → /drydock_cli-2.8.50/scripts/_archived_eval_harness/auto_solve_audit.py.deprecated +0 -0
  443. /drydock_cli-2.8.49/scripts/hle_babysitter.sh → /drydock_cli-2.8.50/scripts/_archived_eval_harness/hle_babysitter.sh.deprecated +0 -0
  444. /drydock_cli-2.8.49/scripts/hle_burndown.sh → /drydock_cli-2.8.50/scripts/_archived_eval_harness/hle_burndown.sh.deprecated +0 -0
  445. /drydock_cli-2.8.49/scripts/hle_burndown_keepalive.sh → /drydock_cli-2.8.50/scripts/_archived_eval_harness/hle_burndown_keepalive.sh.deprecated +0 -0
  446. /drydock_cli-2.8.49/scripts/hle_burndown_status.py → /drydock_cli-2.8.50/scripts/_archived_eval_harness/hle_burndown_status.py.deprecated +0 -0
  447. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/admiral_probe.py +0 -0
  448. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/archive/auto_test_loop.sh +0 -0
  449. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/archive/monitor_test_battery.sh +0 -0
  450. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/archive/overnight_agents_test.sh +0 -0
  451. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/archive/test_bank.sh +0 -0
  452. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/archive/test_full.sh +0 -0
  453. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/archive/test_smoke.sh +0 -0
  454. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/archive/tui_test.py +0 -0
  455. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/audit_sampler.py +0 -0
  456. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/auto_generate_tests.py +0 -0
  457. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/auto_release.sh +0 -0
  458. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/autonomous_review.sh +0 -0
  459. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/autonomous_review_prompt.md +0 -0
  460. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/backfill_hle_curiosity.py +0 -0
  461. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/backup.sh +0 -0
  462. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/bench_inference.py +0 -0
  463. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/bump_version.py +0 -0
  464. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/classify_pulse.sh +0 -0
  465. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/consume_retrieval_queue.py +0 -0
  466. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/curiosity_idle_cycle.sh +0 -0
  467. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/dedupe_dispatch_queues.py +0 -0
  468. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/deploy_to_github.sh +0 -0
  469. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/dispatch_report.py +0 -0
  470. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/drydock_status.sh +0 -0
  471. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/fetch_arxiv_abstracts.py +0 -0
  472. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/gen_2000_prompts.py +0 -0
  473. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/hle_aggregate.py +0 -0
  474. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/hle_eval_seed.jsonl +0 -0
  475. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/llm_balancer.py +0 -0
  476. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/notify_release.py +0 -0
  477. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/perf_baseline_when_idle.sh +0 -0
  478. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/perf_sweep.py +0 -0
  479. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/poll_issues.sh +0 -0
  480. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/publish_to_pypi.sh +0 -0
  481. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/queue_top.py +0 -0
  482. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/ralph_loop.py +0 -0
  483. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/rejudge_hle.py +0 -0
  484. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/research_babysitter.sh +0 -0
  485. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/shakedown.py +0 -0
  486. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/shakedown_interactive.py +0 -0
  487. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/shakedown_suite.sh +0 -0
  488. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/shakedown_variance.sh +0 -0
  489. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/start_steering_sidecar.sh +0 -0
  490. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/stress_babysitter.sh +0 -0
  491. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/stress_prompts_50.txt +0 -0
  492. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/stress_prompts_realuser.txt +0 -0
  493. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/stress_prompts_tool_agent.txt +0 -0
  494. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/stress_prompts_tool_agent_2000.txt +0 -0
  495. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/stress_shakedown.py +0 -0
  496. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/stress_telegram_status.py +0 -0
  497. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/stress_watcher.py +0 -0
  498. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/telegram_bot.py +0 -0
  499. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/tool_usage_report.py +0 -0
  500. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/scripts/vllm_failover.sh +0 -0
  501. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/__init__.py +0 -0
  502. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/acp/conftest.py +0 -0
  503. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/acp/test_acp.py +0 -0
  504. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/acp/test_agent_thought.py +0 -0
  505. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/acp/test_bash.py +0 -0
  506. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/acp/test_compact_session_updates.py +0 -0
  507. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/acp/test_content.py +0 -0
  508. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/acp/test_initialize.py +0 -0
  509. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/acp/test_list_sessions.py +0 -0
  510. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/acp/test_load_session.py +0 -0
  511. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/acp/test_multi_session.py +0 -0
  512. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/acp/test_new_session.py +0 -0
  513. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/acp/test_proxy_setup_acp.py +0 -0
  514. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/acp/test_read_file.py +0 -0
  515. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/acp/test_search_replace.py +0 -0
  516. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/acp/test_set_config_option.py +0 -0
  517. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/acp/test_set_mode.py +0 -0
  518. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/acp/test_set_model.py +0 -0
  519. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/acp/test_tool_call_session_update.py +0 -0
  520. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/acp/test_utils.py +0 -0
  521. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/acp/test_write_file.py +0 -0
  522. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/autocompletion/test_file_indexer.py +0 -0
  523. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/autocompletion/test_fuzzy.py +0 -0
  524. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/autocompletion/test_path_completer_fuzzy.py +0 -0
  525. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/autocompletion/test_path_completer_recursive.py +0 -0
  526. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/autocompletion/test_path_completion_controller.py +0 -0
  527. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/autocompletion/test_path_prompt_transformer.py +0 -0
  528. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/autocompletion/test_slash_command_controller.py +0 -0
  529. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/autocompletion/test_ui_chat_autocompletion.py +0 -0
  530. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/backend/data/__init__.py +0 -0
  531. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/backend/data/fireworks.py +0 -0
  532. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/backend/data/mistral.py +0 -0
  533. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/backend/test_anthropic_adapter.py +0 -0
  534. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/backend/test_backend.py +0 -0
  535. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/backend/test_generic_adapter_sanitize.py +0 -0
  536. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/backend/test_reasoning_adapter.py +0 -0
  537. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/backend/test_vertex_anthropic_adapter.py +0 -0
  538. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/cli/plan_offer/adapters/fake_whoami_gateway.py +0 -0
  539. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/cli/plan_offer/test_decide_plan_offer.py +0 -0
  540. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/cli/plan_offer/test_http_whoami_gateway.py +0 -0
  541. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/cli/test_bell_notifications.py +0 -0
  542. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/cli/test_braille_renderer.py +0 -0
  543. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/cli/test_clipboard.py +0 -0
  544. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/cli/test_commands.py +0 -0
  545. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/cli/test_copy_shortcuts.py +0 -0
  546. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/cli/test_external_editor.py +0 -0
  547. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/cli/test_no_markup_static.py +0 -0
  548. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/cli/test_question_app.py +0 -0
  549. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/cli/test_spinner.py +0 -0
  550. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/cli/test_switching_mode.py +0 -0
  551. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/cli/test_ui_clipboard_notifications.py +0 -0
  552. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/cli/test_ui_session_incremental_renderer.py +0 -0
  553. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/cli/test_ui_session_resume.py +0 -0
  554. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/cli/test_ui_skill_dispatch.py +0 -0
  555. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/cli/textual_ui/test_session_picker.py +0 -0
  556. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/conftest.py +0 -0
  557. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/core/test_agents.py +0 -0
  558. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/core/test_auth_crypto.py +0 -0
  559. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/core/test_auth_github.py +0 -0
  560. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/core/test_circuit_breaker_count_escalation.py +0 -0
  561. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/core/test_circuit_breaker_readonly_threshold.py +0 -0
  562. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/core/test_config_load_dotenv.py +0 -0
  563. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/core/test_config_paths.py +0 -0
  564. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/core/test_config_resolution.py +0 -0
  565. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/core/test_file_logging.py +0 -0
  566. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/core/test_plan_session.py +0 -0
  567. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/core/test_proxy_setup.py +0 -0
  568. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/core/test_slug.py +0 -0
  569. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/core/test_telemetry_send.py +0 -0
  570. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/core/test_teleport_git.py +0 -0
  571. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/core/test_teleport_nuage.py +0 -0
  572. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/core/test_teleport_service.py +0 -0
  573. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/core/test_trusted_folders.py +0 -0
  574. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/core/test_utils.py +0 -0
  575. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/e2e/common.py +0 -0
  576. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/e2e/conftest.py +0 -0
  577. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/e2e/mock_server.py +0 -0
  578. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/e2e/test_cli_tui_onboarding.py +0 -0
  579. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/e2e/test_cli_tui_streaming.py +0 -0
  580. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/e2e/test_cli_tui_tool_approval.py +0 -0
  581. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/fixtures/doc_qa_system_prd.md +0 -0
  582. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/mock/mock_backend_factory.py +0 -0
  583. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/mock/mock_entrypoint.py +0 -0
  584. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/mock/utils.py +0 -0
  585. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/onboarding/test_run_onboarding.py +0 -0
  586. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/onboarding/test_ui_onboarding.py +0 -0
  587. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/session/test_session_loader.py +0 -0
  588. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/session/test_session_logger.py +0 -0
  589. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/session/test_session_migration.py +0 -0
  590. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/skills/conftest.py +0 -0
  591. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/skills/test_manager.py +0 -0
  592. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/skills/test_models.py +0 -0
  593. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/skills/test_parser.py +0 -0
  594. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_collapsed.svg +0 -0
  595. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_expanded.svg +0 -0
  596. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_basic_conversation/test_snapshot_shows_basic_conversation.svg +0 -0
  597. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_code_block_horizontal_scrolling/test_snapshot_allows_horizontal_scrolling_for_long_code_blocks.svg +0 -0
  598. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_empty_assistant_before_reasoning/test_snapshot_empty_assistant_removed_when_reasoning_starts.svg +0 -0
  599. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_accept_edits_mode.svg +0 -0
  600. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_auto_approve_mode.svg +0 -0
  601. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_plan_mode.svg +0 -0
  602. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_wraps_to_default.svg +0 -0
  603. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_default_mode.svg +0 -0
  604. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_pending.svg +0 -0
  605. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_resolved.svg +0 -0
  606. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_cancel_discards_changes.svg +0 -0
  607. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_edit_existing_values.svg +0 -0
  608. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_empty.svg +0 -0
  609. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_with_values.svg +0 -0
  610. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_error.svg +0 -0
  611. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_new_values.svg +0 -0
  612. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_answer_first_advance.svg +0 -0
  613. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_first_answered_checkmark.svg +0 -0
  614. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_initial.svg +0 -0
  615. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_left_wraps.svg +0 -0
  616. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_right.svg +0 -0
  617. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_tab_to_second.svg +0 -0
  618. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_initial.svg +0 -0
  619. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_mixed_selection.svg +0 -0
  620. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_navigate_to_submit.svg +0 -0
  621. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_other_with_text.svg +0 -0
  622. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_first.svg +0 -0
  623. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_multiple.svg +0 -0
  624. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_untoggle.svg +0 -0
  625. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_initial.svg +0 -0
  626. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_down.svg +0 -0
  627. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_other.svg +0 -0
  628. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_third_option.svg +0 -0
  629. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_up_wraps.svg +0 -0
  630. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_other_typing.svg +0 -0
  631. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_buffered_reasoning_yields_before_content.svg +0 -0
  632. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_interleaved_reasoning.svg +0 -0
  633. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content.svg +0 -0
  634. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content_expanded.svg +0 -0
  635. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_release_update_notification/test_snapshot_shows_release_update_notification.svg +0 -0
  636. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_session_resume/test_snapshot_shows_resumed_session_messages.svg +0 -0
  637. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_partial.svg +0 -0
  638. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_updated.svg +0 -0
  639. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_cancel_selected.svg +0 -0
  640. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_multiple_commits.svg +0 -0
  641. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_single_commit.svg +0 -0
  642. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_complete.svg +0 -0
  643. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_required.svg +0 -0
  644. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_checking_git.svg +0 -0
  645. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_complete.svg +0 -0
  646. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_error.svg +0 -0
  647. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_pushing.svg +0 -0
  648. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_sending_token.svg +0 -0
  649. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_starting_workflow.svg +0 -0
  650. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_no_plan_message.svg +0 -0
  651. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_switch_message.svg +0 -0
  652. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_upgrade_message.svg +0 -0
  653. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_whats_new_message.svg +0 -0
  654. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/base_snapshot_test_app.py +0 -0
  655. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/conftest.py +0 -0
  656. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/snap_compare.py +0 -0
  657. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/test_ui_snapshot_ask_user_question.py +0 -0
  658. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/test_ui_snapshot_basic_conversation.py +0 -0
  659. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/test_ui_snapshot_code_block_horizontal_scrolling.py +0 -0
  660. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/test_ui_snapshot_empty_assistant_before_reasoning.py +0 -0
  661. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/test_ui_snapshot_modes.py +0 -0
  662. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/test_ui_snapshot_parallel_tool_calls.py +0 -0
  663. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/test_ui_snapshot_proxy_setup.py +0 -0
  664. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/test_ui_snapshot_question_app.py +0 -0
  665. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/test_ui_snapshot_reasoning_content.py +0 -0
  666. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/test_ui_snapshot_release_update_notification.py +0 -0
  667. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/test_ui_snapshot_session_resume.py +0 -0
  668. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/test_ui_snapshot_streaming_tool_call.py +0 -0
  669. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/test_ui_snapshot_teleport.py +0 -0
  670. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/snapshots/test_ui_snapshot_whats_new.py +0 -0
  671. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/stubs/fake_backend.py +0 -0
  672. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/stubs/fake_client.py +0 -0
  673. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/stubs/fake_tool.py +0 -0
  674. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_admiral.py +0 -0
  675. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_admiral_hallucinated_tool_filter.py +0 -0
  676. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_admiral_intervention_outcome.py +0 -0
  677. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_admiral_phase3.py +0 -0
  678. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_admiral_proposed.py +0 -0
  679. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_admiral_session_id.py +0 -0
  680. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_admiral_struggle_dedup.py +0 -0
  681. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_agent_auto_compact.py +0 -0
  682. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_agent_backend.py +0 -0
  683. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_agent_observer_streaming.py +0 -0
  684. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_agent_stats.py +0 -0
  685. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_agent_tasks.py +0 -0
  686. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_agent_tool_call.py +0 -0
  687. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_agents.py +0 -0
  688. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_algebra_tool.py +0 -0
  689. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_api_error_recovery.py +0 -0
  690. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_auto_retrieve_soft_nudge.py +0 -0
  691. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_auto_solve.py +0 -0
  692. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_bank_build.py +0 -0
  693. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_bank_debug.py +0 -0
  694. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_bank_multiagent.py +0 -0
  695. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_bank_prd.py +0 -0
  696. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_bank_prd_extended.py +0 -0
  697. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_bank_tools.py +0 -0
  698. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_bank_update.py +0 -0
  699. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_build_projects.py +0 -0
  700. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_checkpoint.py +0 -0
  701. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_chemistry_tool.py +0 -0
  702. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_classifier.py +0 -0
  703. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_cli_programmatic_preload.py +0 -0
  704. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_config_migration.py +0 -0
  705. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_constraint_extract.py +0 -0
  706. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_constraint_hint.py +0 -0
  707. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_context_recovery.py +0 -0
  708. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_count_tool.py +0 -0
  709. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_curiosity.py +0 -0
  710. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_current_bugs.py +0 -0
  711. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_dispatch_report.py +0 -0
  712. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_dispatcher.py +0 -0
  713. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_drydock_regression.py +0 -0
  714. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_drydock_tasks.py +0 -0
  715. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_fake_tool_call_paren_syntax.py +0 -0
  716. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_full_regression.py +0 -0
  717. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_goal.py +0 -0
  718. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_graphrag.py +0 -0
  719. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_graphrag_worked_examples.py +0 -0
  720. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_hallucinated_tool_suppression.py +0 -0
  721. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_history_manager.py +0 -0
  722. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_hle_aggregate.py +0 -0
  723. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_hle_score_method_split.py +0 -0
  724. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_hle_typing.py +0 -0
  725. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_integration.py +0 -0
  726. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_issue_fixes.py +0 -0
  727. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_linear_algebra_tool.py +0 -0
  728. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_local_detect.py +0 -0
  729. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_logic_tool.py +0 -0
  730. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_loop_detection.py +0 -0
  731. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_math_tool.py +0 -0
  732. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_mcp_settings.py +0 -0
  733. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_memory_tool.py +0 -0
  734. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_message_id.py +0 -0
  735. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_message_merging.py +0 -0
  736. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_middleware.py +0 -0
  737. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_multi_agent.py +0 -0
  738. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_number_theory_tool.py +0 -0
  739. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_prolog_tool.py +0 -0
  740. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_read_file_not_found_listing.py +0 -0
  741. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_real_failures.py +0 -0
  742. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_real_issues.py +0 -0
  743. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_real_workflow.py +0 -0
  744. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_reasoning_content.py +0 -0
  745. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_rejudge_hle.py +0 -0
  746. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_retrieval_consumer.py +0 -0
  747. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_retrieve_tool.py +0 -0
  748. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_search_replace_args_not_truncated.py +0 -0
  749. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_set_tool.py +0 -0
  750. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_smoke.py +0 -0
  751. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_solve_tool.py +0 -0
  752. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_stats_tool.py +0 -0
  753. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_steering.py +0 -0
  754. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_steering_capture.py +0 -0
  755. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_steering_compute_vector.py +0 -0
  756. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_steering_extract_pairs.py +0 -0
  757. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_steering_hook.py +0 -0
  758. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_steering_sidecar_chat_inputs.py +0 -0
  759. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_steering_sidecar_hooks.py +0 -0
  760. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_system_prompt.py +0 -0
  761. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_tagged_text.py +0 -0
  762. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_task_complete_nudge.py +0 -0
  763. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_tool_args.py +0 -0
  764. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_truncate_args_valid_json.py +0 -0
  765. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_truncated_arg_path_hint.py +0 -0
  766. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_truncated_search_replace_escalation.py +0 -0
  767. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_truncated_write_escalation.py +0 -0
  768. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_ui_external_editor.py +0 -0
  769. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_ui_input_history.py +0 -0
  770. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_units_tool.py +0 -0
  771. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_user_issues.py +0 -0
  772. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_verify_tool.py +0 -0
  773. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_wall_of_text_rescue.py +0 -0
  774. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_workloads.py +0 -0
  775. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/test_write_file_missing_path.py +0 -0
  776. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/testbank_helpers.py +0 -0
  777. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/tools/test_ask_user_question.py +0 -0
  778. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/tools/test_bash.py +0 -0
  779. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/tools/test_bash_binary_grep_hint.py +0 -0
  780. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/tools/test_bash_consec_empty_search.py +0 -0
  781. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/tools/test_bash_echo_escape_loop_breaker.py +0 -0
  782. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/tools/test_bash_empty_search_loop_breaker.py +0 -0
  783. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/tools/test_bash_error_loop_breaker.py +0 -0
  784. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/tools/test_bash_exact_cmd_loop_breaker.py +0 -0
  785. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/tools/test_bash_heredoc_confirmation.py +0 -0
  786. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/tools/test_bash_kill_exit1_annotation.py +0 -0
  787. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/tools/test_bash_python_c_syntaxerr_loop_breaker.py +0 -0
  788. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/tools/test_exit_plan_mode.py +0 -0
  789. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/tools/test_grep.py +0 -0
  790. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/tools/test_hallucinated_retrieval_redirect.py +0 -0
  791. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/tools/test_invoke_context.py +0 -0
  792. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/tools/test_manager_gemma_derived_models.py +0 -0
  793. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/tools/test_manager_get_tool_config.py +0 -0
  794. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/tools/test_mcp.py +0 -0
  795. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/tools/test_mcp_sampling.py +0 -0
  796. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/tools/test_read_file_dedup_alternating_offset.py +0 -0
  797. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/tools/test_read_file_dedup_reembed.py +0 -0
  798. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/tools/test_read_file_directory.py +0 -0
  799. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/tools/test_read_file_limit_truncation.py +0 -0
  800. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/tools/test_search_replace_append_fallback.py +0 -0
  801. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/tools/test_search_replace_dir_path.py +0 -0
  802. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/tools/test_search_replace_empty_content.py +0 -0
  803. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/tools/test_search_replace_file_not_found.py +0 -0
  804. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/tools/test_search_replace_first_failure_hint.py +0 -0
  805. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/tools/test_search_replace_hard_stop.py +0 -0
  806. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/tools/test_search_replace_malformed_block.py +0 -0
  807. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/tools/test_search_replace_no_op_loop_breaker.py +0 -0
  808. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/tools/test_search_replace_placeholder.py +0 -0
  809. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/tools/test_search_replace_refused_loop_breaker.py +0 -0
  810. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/tools/test_task.py +0 -0
  811. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/tools/test_ui_bash_execution.py +0 -0
  812. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/tools/test_webfetch.py +0 -0
  813. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/tools/test_websearch.py +0 -0
  814. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/tools/test_write_file_dedup_missing_imports.py +0 -0
  815. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/tools/test_write_file_missing_path_hint.py +0 -0
  816. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/update_notifier/adapters/fake_update_cache_repository.py +0 -0
  817. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/update_notifier/adapters/fake_update_gateway.py +0 -0
  818. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/update_notifier/test_do_update.py +0 -0
  819. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/update_notifier/test_filesystem_update_cache_repository.py +0 -0
  820. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/update_notifier/test_github_update_gateway.py +0 -0
  821. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/update_notifier/test_pypi_update_gateway.py +0 -0
  822. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/update_notifier/test_ui_update_notification.py +0 -0
  823. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/update_notifier/test_update_use_case.py +0 -0
  824. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/tests/update_notifier/test_whats_new.py +0 -0
  825. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/worked_examples/README.md +0 -0
  826. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/worked_examples/cli_subcommand_dispatch.py +0 -0
  827. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/worked_examples/lookup.json +0 -0
  828. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/worked_examples/sql_parser.py +0 -0
  829. {drydock_cli-2.8.49 → drydock_cli-2.8.50}/worked_examples/tree_walking_interpreter.py +0 -0
@@ -0,0 +1 @@
1
+ 2480262
@@ -43,57 +43,61 @@ Drydock is a local CLI coding agent (fork of mistral-vibe, Apache 2.0).
43
43
  - **370 PRDs** at /data3/drydock_test_projects/ — the benchmark suite
44
44
  - **Current version:** v2.8.27 on PyPI (auto-released every 6h from `main`)
45
45
  - **Active continuous loops:** stress harness (hourly), autonomous_review
46
- (30-min), classify_pulse (10-min), telegram_bot keepalive (2-min),
47
- hle_babysitter (hourly @ :45 10-Q HLE batch per tick, see
48
- HLE_PRD §"Continuous HLE evaluation"), **hle_burndown daemon** (back-to-back
49
- batches, runs as background process via `scripts/hle_burndown.sh start`;
50
- keepalive cron at `*/15` resurrects if it dies). Both HLE loops share
51
- `/tmp/hle_continuous.pid` whichever owns the lock keeps it; the other
52
- exits/skips. Anything new the operator adds should not run at :00 or
53
- :30 (autonomous_review owns those).
54
-
55
- ## Current plan (2026-05-14)
56
-
57
- Three vectors moving in parallel. Each has a queue of concrete fixes
58
- tracked as TaskCreate items; the high-level shape is:
59
-
60
- 1. **HLE** keep pushing the floor up from 6.7% on Math. The
61
- `scripts/hle_babysitter.sh` cron runs 10-Q Math batches every hour.
62
- Open work: rotate categories beyond Math; build a multi-batch
63
- aggregator (`scripts/hle_aggregate.py`); produce a clean Q3 vs Q4
64
- stall-rate comparison once 30+ Q3 Math attempts have accumulated;
65
- verify the gemma4.md tool-inventory change (e47cc4e) actually
66
- lifted math/count/memory/verify call rates.
67
-
68
- 2. **GraphRAG** — the auto-prefetch hook is shipping good chunks on
69
- trivia but not on hard symbolic Math. Two concrete moves: lower
46
+ (30-min), classify_pulse (10-min), telegram_bot keepalive (2-min).
47
+ HLE eval loops were removed 2026-05-17 per operator directive see
48
+ the "NO CUSTOM EVAL HARNESSES" rule below.
49
+ - 🚨 **NO CUSTOM EVAL HARNESSES (2026-05-17).** The user has banned
50
+ bespoke evaluation infrastructure (HLE eval scripts, burndown
51
+ daemons, batch runners, judge-prompt pipelines, telemetry-aggregator
52
+ cron jobs, etc.). Even when such a harness drives the real TUI via
53
+ pexpect, the *concept* tempts the agent to fix harness-specific
54
+ issues (timeout tuning, env-var-gated behaviour, judge edge cases)
55
+ that don't help real users. Improving drydock comes from USING
56
+ drydock interactively as a real user does — the operator notices
57
+ pain, the agent fixes the pain. If you need a regression check,
58
+ write a unit test against the drydock library. If you need a
59
+ benchmark, run prompts through the TUI by hand and observe. Do
60
+ NOT spin up background eval daemons. Archived scripts at
61
+ `scripts/_archived_eval_harness/` leave them archived.
62
+
63
+ ## Current plan (2026-05-17)
64
+
65
+ Focus is on **TUI experience** — the operator uses drydock interactively;
66
+ the agent fixes what the operator hits. No HLE eval loops, no custom
67
+ benchmark daemons (see the "NO CUSTOM EVAL HARNESSES" rule above).
68
+
69
+ 1. **TUI bugs the operator notices in real use** error recovery
70
+ paths, slash commands, tool reliability. Recent ships: /undo,
71
+ /back, /goal, vision (--mmproj), recovery meta-fix.
72
+
73
+ 2. **GraphRAG** — the auto-prefetch hook ships good chunks on trivia
74
+ but not on hard symbolic Math. Two concrete moves: lower
70
75
  `QUALITY_THRESHOLD` (currently 8.0 in `agent_loop.py:3391`) once
71
- we know the real score distribution, and add an arxiv-corpus
72
- fallback (`/data3/arxiv_corpus/graphrag.sqlite`) when the primary
73
- index returns nothing above threshold.
76
+ we know the real score distribution, and the arxiv-corpus
77
+ fallback (`/data3/arxiv_corpus/graphrag.sqlite`) is wired.
74
78
 
75
79
  3. **Deep Noir** — sidecar/hooks/capture/train all coded; the
76
80
  `apply_chat_template` API-drift fix shipped 2026-05-14 (f02aa4b).
77
- Real blocker for v1 vectors: contrastive-pair extraction is
78
- currently broken admiral records full UUIDs (e.g.
79
- `5b55aacd-3606-4656-ad4b-eacf86506eda`) but session dirs are named
80
- `session_<date>_<time>_<short_uuid>` where the `short_uuid` is the
81
- first 8 chars of the SESSION's own UUID, not admiral's recorded
82
- one. `extract_pairs._find_session_dir` matches on session_dir name
83
- endswith(admiral_short) which only succeeds for the rare case
84
- where both happen to match. Yield on `empty_after_tool:bash`:
85
- 2 / 88 derailed sessions found. Needs a real mapping layer
86
- (meta.json admiral) or admiral has to be fixed to record the
87
- short hash used by session dirs.
81
+ Contrastive-pair extraction was fixed by **706f226 (2026-05-10)**:
82
+ admiral now records the live `agent_loop.session_id` (which IS the
83
+ short hash used by session dirs), and `extract_pairs._find_session_dir`
84
+ builds a `{meta.session_id dir}` map from the on-disk
85
+ meta.json files. Both pieces work.
86
+ Real remaining issue: **admiral_state.json has ~3000 pre-fix
87
+ findings (recorded 2026-04-19 to 2026-05-10) whose UUIDs are
88
+ phantom they don't resolve to any on-disk session_dir**.
89
+ `extract_pairs` correctly yields only the post-fix findings (~20
90
+ sessions across all categories as of 2026-05-17). The training
91
+ set will fill in as new findings accumulate. Pre-fix findings
92
+ are unrecoverable; consider GC'ing them out of admiral_state.json
93
+ so future audits aren't misleading.
88
94
 
89
95
  Operator controls for the continuous loops:
90
96
 
91
97
  ```bash
92
- touch /data3/drydock/.pause_hle_babysitter # pause hourly HLE cron
93
- touch /data3/drydock/.pause_hle_burndown # pause back-to-back burndown daemon
94
- touch /data3/drydock/.pause_hle_burndown_keepalive # disable burndown auto-resurrection
95
98
  touch /data3/drydock_test_projects/.pause_watchdog
96
99
  touch /data3/drydock/.pause_auto_release # pause 6h PyPI publish
100
+ touch /data3/drydock/.pause_stress # pause stress harness restarts
97
101
  ```
98
102
 
99
103
  ## Build & Test
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: drydock-cli
3
- Version: 2.8.49
3
+ Version: 2.8.50
4
4
  Summary: Local-first CLI coding agent — tested with Gemma 4 26B via vLLM
5
5
  Project-URL: Homepage, https://github.com/fbobe321/drydock
6
6
  Project-URL: Repository, https://github.com/fbobe321/drydock
@@ -1369,7 +1369,8 @@ class AgentLoop:
1369
1369
  prev_tool_name = assistant_msg.tool_calls[-1].function.name if assistant_msg.tool_calls[-1].function else None
1370
1370
  _readonly_tools = {"read_file", "grep", "glob", "ls", "pwd",
1371
1371
  "ralph_repo_index", "ralph_file_summary",
1372
- "retrieve", "search_files", "lsp"}
1372
+ "retrieve", "search_files", "lsp",
1373
+ "web_search", "web_fetch"}
1373
1374
  _write_tools = {"write_file", "search_replace"}
1374
1375
  _prev_was_read = prev_tool_name in _readonly_tools
1375
1376
  _prev_was_write = prev_tool_name in _write_tools
@@ -1471,10 +1472,12 @@ class AgentLoop:
1471
1472
  )
1472
1473
  elif _prev_was_read:
1473
1474
  _tool_name_str = prev_tool_name or "read_file"
1475
+ _generic_suffix = os.environ.get("DRYDOCK_STOP_NOW_SUFFIX", "")
1474
1476
  note = (
1475
1477
  f"You called {_tool_name_str} but produced no output. "
1476
- f"Now use write_file, search_replace, or bash "
1477
- f"to make changes — do NOT call {_tool_name_str} again."
1478
+ f"Now respond in text — write your answer or make changes. "
1479
+ f"Do NOT call {_tool_name_str} again."
1480
+ + (f" {_generic_suffix}" if _generic_suffix else "")
1478
1481
  )
1479
1482
  elif _prev_write_success:
1480
1483
  note = (
@@ -1534,11 +1537,12 @@ class AgentLoop:
1534
1537
  )
1535
1538
  elif _prev_was_read:
1536
1539
  _tool_name_str = prev_tool_name or "read_file"
1540
+ _generic_suffix = os.environ.get("DRYDOCK_STOP_NOW_SUFFIX", "")
1537
1541
  note = (
1538
1542
  f"You sent an empty response after calling {_tool_name_str}. "
1539
- f"Call write_file or search_replace NOW to apply "
1540
- f"what you read OR state in one sentence why you "
1541
- f"cannot proceed. Do NOT call {_tool_name_str} again."
1543
+ f"Respond in text now write your answer or apply what you read. "
1544
+ f"Do NOT call {_tool_name_str} again."
1545
+ + (f" {_generic_suffix}" if _generic_suffix else "")
1542
1546
  )
1543
1547
  elif _prev_was_write:
1544
1548
  _tool_name_str = prev_tool_name or "write_file"
@@ -1589,11 +1593,12 @@ class AgentLoop:
1589
1593
  )
1590
1594
  elif prev_tool_name in _readonly_tools:
1591
1595
  _tool_name_str = prev_tool_name or "read_file"
1596
+ _generic_suffix = os.environ.get("DRYDOCK_STOP_NOW_SUFFIX", "")
1592
1597
  note = (
1593
1598
  f"THIRD empty response after {_tool_name_str}. "
1594
- "Stop reading call write_file or search_replace NOW to apply "
1595
- "the change, or respond in text explaining why you cannot proceed. "
1599
+ "Stop — respond in text with your analysis or best answer. "
1596
1600
  f"Do NOT call {_tool_name_str} again."
1601
+ + (f" {_generic_suffix}" if _generic_suffix else "")
1597
1602
  )
1598
1603
  elif _prev_was_write:
1599
1604
  _tool_name_str = prev_tool_name or "write_file"
@@ -3642,9 +3647,23 @@ class AgentLoop:
3642
3647
  # corpus at /data3/arxiv_corpus/graphrag.sqlite (1.18M chunks)
3643
3648
  # has much better recall. The fallback path is operator-tunable
3644
3649
  # via DRYDOCK_GRAPHRAG_FALLBACK_DB; set to empty to disable.
3645
- primary_db = os.environ.get("DRYDOCK_GRAPHRAG_DB") or str(
3646
- Path.home() / ".drydock" / "graphrag.sqlite"
3647
- )
3650
+ # Primary DB selection mirrors retrieve._resolve_db_path so the
3651
+ # auto-prefetch and the model-issued retrieve calls always agree
3652
+ # on which corpus to search:
3653
+ # 1. DRYDOCK_GRAPHRAG_DB env override
3654
+ # 2. <cwd>/.drydock/graphrag.sqlite (per-project index)
3655
+ # 3. ~/.drydock/graphrag.sqlite (home fallback)
3656
+ # Without #2, a user with a populated home DB never saw their
3657
+ # own project's chunks because home always won.
3658
+ env_db = os.environ.get("DRYDOCK_GRAPHRAG_DB")
3659
+ if env_db:
3660
+ primary_db = env_db
3661
+ else:
3662
+ project_db = Path.cwd() / ".drydock" / "graphrag.sqlite"
3663
+ if project_db.is_file():
3664
+ primary_db = str(project_db)
3665
+ else:
3666
+ primary_db = str(Path.home() / ".drydock" / "graphrag.sqlite")
3648
3667
  fallback_default = "/data3/arxiv_corpus/graphrag.sqlite"
3649
3668
  fallback_db_raw = os.environ.get(
3650
3669
  "DRYDOCK_GRAPHRAG_FALLBACK_DB", fallback_default
@@ -78,6 +78,15 @@ def _resolve_db_path(arg: str) -> Path:
78
78
  project_db = Path.cwd() / ".drydock" / "graphrag.sqlite"
79
79
  if project_db.is_file():
80
80
  return project_db
81
+ # If we're inside a real project that doesn't yet have its own index,
82
+ # PREFER to create a per-project index over falling back to the home
83
+ # index (which is contaminated with other projects' content and
84
+ # answers wrong queries about THIS project). The home index is only
85
+ # the right answer for ad-hoc use outside any project — e.g. when
86
+ # the user runs drydock from their home dir.
87
+ cwd = Path.cwd()
88
+ if _looks_like_project(cwd):
89
+ return project_db # will be auto-ingested by Retrieve.run
81
90
  return Path.home() / ".drydock" / "graphrag.sqlite"
82
91
 
83
92
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "drydock-cli"
3
- version = "2.8.49"
3
+ version = "2.8.50"
4
4
  description = "Local-first CLI coding agent — tested with Gemma 4 26B via vLLM"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
@@ -0,0 +1,38 @@
1
+ # Archived 2026-05-17 — DO NOT RESURRECT
2
+
3
+ These scripts implemented a custom HLE eval harness that drove drydock
4
+ via pexpect. The infrastructure was technically TUI-based (it spawned
5
+ the real `drydock` binary), but the user objected to the entire
6
+ *concept* of building bespoke evaluation infrastructure on the side:
7
+
8
+ > "STOP trying to create custom harnesses for evals. Improving drydock
9
+ > is what matters. And using drydock can't be headless, you have to
10
+ > actually use it like the user would."
11
+
12
+ The principle: **drydock improvements should come from USING drydock
13
+ as a real user would** — interactively, with the user noticing pain
14
+ points and the agent fixing them. A custom eval harness:
15
+
16
+ 1. Tempts the agent to fix harness-specific issues (timeout tuning,
17
+ env-var-gated behavior, judge-prompt edge cases) that don't help
18
+ real users.
19
+ 2. Introduces operational overhead (cron jobs, keepalive daemons,
20
+ telemetry pipelines) that's parallel to the actual product.
21
+ 3. Distracts from the headline goal: make drydock better at what
22
+ real users do, not at what an eval suite measures.
23
+
24
+ If you (future Claude) are tempted to build a new HLE-style eval
25
+ harness, STOP. Read `~/.claude/projects/-data3-drydock/memory/
26
+ feedback_no_custom_eval_harness.md` first. The user has been very
27
+ clear on this and will push back hard.
28
+
29
+ What to do instead:
30
+ - Use the drydock TUI yourself (or watch the user use it) to find
31
+ real bugs.
32
+ - Read open GH issues at fbobe321/drydock for user-reported pain.
33
+ - Fix things that affect interactive UX: error recovery, slash
34
+ commands, tool reliability.
35
+ - If you really need a regression-style check, write a unit test
36
+ against the drydock library — not a long-running eval daemon.
37
+
38
+ Files preserved here for git history continuity; do not run them.
@@ -65,7 +65,7 @@ HF_TOKEN_FILE = Path.home() / ".config" / "drydock" / "hf_token"
65
65
  # Coding-style PRDs in shakedown allow 600s for harder steps; QA should be
66
66
  # faster since there's no file-writing iteration, but Gemma 4 thinking can
67
67
  # still chew through several minutes on a hard question.
68
- QUESTION_TIMEOUT = 480 # 8 min per question
68
+ QUESTION_TIMEOUT = 600 # 10 min per question — 480s left 3/196 recent cases killed mid-generation
69
69
  IDLE_GRACE = 8.0 # seconds of no new messages before declaring done
70
70
 
71
71
 
File without changes
File without changes
File without changes
@@ -1,5 +1,86 @@
1
1
  # Drydock Trip Log
2
2
 
3
+ ## 2026-05-17 15:30 UTC tick
4
+ - Stress: PAUSED (.pause_stress sentinel active)
5
+ - HLE burndown: running (PID 2465533 engineering batch, slot 59, ~51 min elapsed), lifetime 115/848 = 13.6% (Math 17.8%, CS/AI 6.8%, Bio/Med 13.2%, Physics 8.3%, Chem 8.7%); babysitter skipping correctly while burndown active
6
+ - Write rate: N/A (stress paused)
7
+ - Admiral last 30 min: not checked (stress paused)
8
+ - vLLM 400s: 0 observed
9
+ - GH issues: 0 open
10
+ - Dispatch queue: harness=7 (all thinking_stall from 2026-05-15, already addressed by recent commits), retrieval=3 (0 actionable — all already ingested), steering=0, curiosity=2546 pending (top 3 are hle_failure/no-FINAL-ANSWER pattern, covered by commits a9f16ae/4909542/d500234)
11
+ - retrieval-drain: 0 projects ingested (nothing new)
12
+ - Model: Q3_K_M via llama.cpp :8000 healthy; balancer :8001 healthy
13
+ - Action this tick: no action — healthy; recent 24h commits are actively addressing HLE stall/FINAL-ANSWER pattern; curiosity top items already covered
14
+
15
+ ## 2026-05-17 14:30 UTC tick
16
+ - Stress: PAUSED (.pause_stress sentinel active)
17
+ - HLE burndown: running (PID 2452616 chemistry batch in progress), lifetime 115/841 = 13.7% (Math 17.8%, CS/AI 6.8%, Bio/Med 13.2%, Physics 8.3%, Chem 8.7%, Other 18.2%, Engineering 4.7%, Hum/SS 14.3%); latest batch chemistry 1/10
18
+ - Write rate: N/A (stress paused)
19
+ - vLLM 400s: 0; llamacpp-gemma4 healthy; balancer on :8001 healthy
20
+ - GH issues: 0 open
21
+ - Dispatch queue: harness=7 (all thinking_stall, stale pre-fix), retrieval=3 (nothing actionable), curiosity=2934 total/2525 pending/406 consumed
22
+ - Action this tick: committed fix a9f16ae (addresses curiosity:01c0f4dc34d97142, :fbe7b3456bdbb0ca, :4ffd02384a890963) — stall-retry _prev_was_read notes at attempts 0 and 1 now append DRYDOCK_STOP_NOW_SUFFIX ("FINAL ANSWER: <answer>") which 4909542 only did for attempt 2; also neutralized coding-task wording ("write_file, search_replace") to context-neutral ("respond in text — write your answer or make changes"). No-op for coding sessions (suffix unset by default).
23
+
24
+ ## 2026-05-17 14:00 UTC tick
25
+ - Stress: PAUSED (.pause_stress sentinel active)
26
+ - HLE burndown: running (PID 2452616, slot 58 chemistry), lifetime 114/837 = 13.6% (Math 17.8%, CS/AI 6.8%, Bio/Med 13.2%, Physics 8.3%, Chem 7.8%); recent batch Physics 20%
27
+ - Write rate: N/A (stress paused)
28
+ - Admiral last 30 min: N/A
29
+ - vLLM 400s: 0; llamacpp-gemma4 healthy (25h uptime)
30
+ - GH issues: 0 open
31
+ - Dispatch queue: harness=1305 total (8 in last 24h, thinking_stall, already addressed by v2.8.47+), retrieval=3 (nothing actionable), curiosity=2931 total (2524 pending, 403 consumed)
32
+ - Action this tick: consumed curiosity acf1a1892044a747 (thinking-budget timeout case — addressed by 2973dd1 QUESTION_TIMEOUT 480→600s). Investigated ongoing empty-pred failures in physics batch (3 questions produced pred='' in run_1779013132 after FINAL ANSWER fixes) — these are hard-QA questions where model likely times out during inference before producing output; pattern requires deeper session log analysis, leaving for next autonomous_review tick.
33
+
34
+ ## 2026-05-17 13:30 UTC tick
35
+ - Stress: PAUSED (.pause_stress sentinel active)
36
+ - HLE burndown: running (PID 1742185, 3+ days elapsed), lifetime 114/832 = 13.7% (Math 17.8%, CS/AI 6.8%, Bio/Med 13.2%, Physics 8.3%, Chem 8.5%); recent batches: Humanities 30%, Physics 20%, Physics 10%
37
+ - Write rate: N/A (stress paused)
38
+ - vLLM 400s: 0 in last 30min (llamacpp-gemma4 Q3_K_M healthy on :8000, balancer :8001 up)
39
+ - GH issues: 0 open
40
+ - Dispatch queue: harness=8 (all historical thinking_stall, resolved v2.8.47), retrieval=3 (all recently ingested, 0 actionable), curiosity=2513 pending (409 hle_failure, 2107 unknown_term)
41
+ - Action this tick: consumed 3 stale hle_failure curiosity items (da424f73, 5c2ad87e, 4f4de190 — empty:no_final_answer cases addressed by d500234/4909542 stall-retry FINAL ANSWER suffix fixes); observed 1 new empty:no_response at 601s in Humanities batch (poetry question) — non-streaming HTTP timeout still hitting first-turn for some questions; no code change this tick as system otherwise healthy and autonomous_review just completed 13:00Z tick
42
+
43
+ ## 2026-05-17 13:00 UTC tick
44
+ - Stress: PAUSED (.pause_stress sentinel active)
45
+ - HLE burndown: running (PID 2440503, 27min elapsed), lifetime 112/825 = 13.6% (Math 17.8%, CS/AI 6.8%, Bio/Med 13.2%, Physics 8.3%, Chem 8.5%); recent batches variable (0-50%)
46
+ - Write rate: N/A (stress paused)
47
+ - Admiral last 30 min: N/A (stress paused)
48
+ - vLLM 400s: N/A (llamacpp container, not vLLM)
49
+ - GH issues: 0 open
50
+ - Dispatch queue: harness=8 (all historical, thinking_stall resolved v2.8.47), retrieval=3 (all already ingested), curiosity=2504 pending
51
+ - Action this tick: consumed 3 stale pre-fix curiosity items (FINAL ANSWER + timeout artifacts addressed by d500234/4909542/2973dd1); no new bugs found; autonomous_review running concurrently at 13:00Z
52
+
53
+ ## 2026-05-17 12:30 UTC tick
54
+ - Stress: PAUSED (.pause_stress sentinel active)
55
+ - HLE burndown: running slot 56 (PID 2425424, 69min elapsed, physics batch — Q10 in progress), lifetime 111/821 = 13.5% (Math 17.8%, CS/AI 6.8%, Bio/Med 13.2%, Physics 8.5%, Chem 8.5%, Other unchanged)
56
+ - Write rate: N/A (stress paused)
57
+ - vLLM 400s: 0 in last 30min, llamacpp-gemma4 healthy (Q3_K_M)
58
+ - GH issues: 0 open
59
+ - Dispatch queue: harness=8 (all stale thinking_stall, resolved v2.8.47); retrieval=0 actionable (3 entries, all recently ingested); curiosity=2488 pending — consumed 3 stale hle_failure artifacts (532e9d22, 77d0d52, 44f4d505 — hard theoretical questions: Tate-graph/μ-fixpoint, DomSet complexity, SU(N) structure constants; model capability gap, not addressable by prompt rules)
60
+ - 12:00Z autonomous_review tick hit $1 USD budget cap and exited early (exit=1)
61
+ - Action this tick: no code change — system nominal; consumed 3 curiosity items; retrieval drain 0 new ingestions
62
+
63
+ ## 2026-05-17 12:00 UTC tick
64
+ - Stress: PAUSED (.pause_stress sentinel active)
65
+ - HLE burndown: running (PID 2425424, physics batch in progress), lifetime 110/817 = 13.5% (Math 17.8%, CS/AI 6.8%, Bio/Med 13.2%, Physics 7.5%, Chem 8.5%, Other 18.2%)
66
+ - Write rate: N/A (stress paused)
67
+ - Admiral: autonomous_review tick started at 12:00Z
68
+ - vLLM 400s: 0 in last 30min, model healthy
69
+ - GH issues: 0 open
70
+ - Dispatch queue: harness=9 (all thinking_stall, stale from 2026-05-16); retrieval=0 actionable; curiosity=2488 pending (hle_failure=407, unknown_term=2081)
71
+ - Action this tick: committed fix — QUESTION_TIMEOUT 480→600s in hle_eval.py; all 3 recent empty:no_final_answer cases elapsed exactly at deadline (model killed mid-generation); retrieval drain: 0 actionable; curiosity top item (threshold-sig scheme) marked consumed (42e0bdf8)
72
+
73
+ ## 2026-05-17 11:30 UTC tick
74
+ - Stress: PAUSED (.pause_stress sentinel active)
75
+ - HLE burndown: running (PID 2425424, 08:50 elapsed, physics slot 56 active), lifetime 109/813 = 13.4% (Math 17.8%, CS/AI 6.8%, Bio/Med 13.2%, Physics 6.3%, Chem 8.5%, Other 18.2%)
76
+ - Write rate: N/A (stress paused)
77
+ - Admiral last 30 min: autonomous_review tick started at 11:30Z
78
+ - vLLM 400s: 3 matches in docker grep (benign — reasoning-budget activation noise, Q3_K_M healthy, 23376 tok prompt for physics slot)
79
+ - GH issues: 0 open
80
+ - Dispatch queue: harness=9 (all stale, thinking_stall resolved by v2.8.47); retrieval=0 actionable; curiosity=2478 pending (top 3 are today's physics no_response failures — spinor/scalar field + Z-boson EW + virial series; model timed out at 480s with msg_count=1; not addressable by prompt changes)
81
+ - Retrieval drain: 0 projects (3 queue entries, all already ingested)
82
+ - Action this tick: no code change — system nominal; harness:thinking_stall pattern confirmed stale (last dispatch evidence says "fully resolved by v2.8.47"); top curiosity items are empty:no_response physics timeouts where model never starts within 480s, distinct from the empty:no_final_answer cases targeted by recent FINAL ANSWER suffix commits
83
+
3
84
  ## 2026-05-17 10:30 UTC tick
4
85
  - Stress: PAUSED (.pause_stress sentinel active)
5
86
  - HLE burndown: running (PID 2412661, physics batch active, 12min elapsed), lifetime 108/803 = 13.4% (Math 17.8%, CS/AI 6.8%, Bio/Med 13.2%, Chem 8.5%, Other 18.2%)
@@ -7365,3 +7446,13 @@ restarted, cron self-match bug fixed in this same session).
7365
7446
  - Previous batch (23:52 UTC, 10 Math questions): 0/10 — all 480s timeouts on hard questions (fuzzy logic, semilattice functors, Boolean prime implicants); model outputs show reasoning fragments not clean FINAL ANSWER — capability gap, not a drydock bug
7366
7447
  - Current batch (01:13 UTC): 2/4 correct so far (chess Q1 YES exact, Cauchy Q3 YES fuzzy) after recent stall-retry fixes; still running
7367
7448
  - Action this tick: consumed curiosity:982cd07192229b9e (LSH-threshold model-used-tools-but-no-FINAL-ANSWER — addressed by 23f65dc + e20fb7b stall-retry guards); no code fix committed — system healthy, recent fixes still being evaluated by burndown daemon
7449
+
7450
+ ## 2026-05-17 11:00 UTC tick
7451
+ - Stress: paused via .pause_stress sentinel (expected)
7452
+ - Write rate: N/A (stress paused)
7453
+ - Admiral last 30 min: N/A
7454
+ - vLLM 400s: 10 (within llamacpp normal range, no errors logged)
7455
+ - GH issues: 0 open
7456
+ - Dispatch queue: harness=9 (all stale thinking_stall, addressed by v2.8.47+v2.8.48), retrieval=0 actionable, curiosity=2468 pending (402 hle_failure, 2066 unknown_term)
7457
+ - HLE: lifetime 13.5% across 809 questions (Math 17.8%, CS/AI 6.8%, Bio/Med 13.2%); burndown daemon running (PID 2412661, physics batch)
7458
+ - Action this tick: committed fix (4909542) — readonly-tool stall-retry note was saying "call write_file or search_replace NOW" (wrong for HLE) and omitting DRYDOCK_STOP_NOW_SUFFIX; fixed to say "respond in text with analysis/best answer" and append the FINAL ANSWER suffix; consumed curiosity:87cf3274e4ba6912
@@ -326,7 +326,7 @@ wheels = [
326
326
 
327
327
  [[package]]
328
328
  name = "drydock-cli"
329
- version = "2.8.42"
329
+ version = "2.8.49"
330
330
  source = { editable = "." }
331
331
  dependencies = [
332
332
  { name = "agent-client-protocol" },
@@ -347,6 +347,7 @@ dependencies = [
347
347
  { name = "pydantic-settings" },
348
348
  { name = "pypdf" },
349
349
  { name = "pyperclip" },
350
+ { name = "pytholog" },
350
351
  { name = "pyyaml" },
351
352
  { name = "rich" },
352
353
  { name = "textual" },
@@ -400,6 +401,7 @@ requires-dist = [
400
401
  { name = "pydantic-settings", specifier = ">=2.12.0" },
401
402
  { name = "pypdf", specifier = ">=4.0.0" },
402
403
  { name = "pyperclip", specifier = ">=1.11.0" },
404
+ { name = "pytholog", specifier = ">=2.4.1" },
403
405
  { name = "pyyaml", specifier = ">=6.0.0" },
404
406
  { name = "rich", specifier = ">=14.0.0" },
405
407
  { name = "textual", specifier = ">=7.4.0" },
@@ -1422,6 +1424,18 @@ wheels = [
1422
1424
  { url = "https://files.pythonhosted.org/packages/ca/31/d4e37e9e550c2b92a9cbc2e4d0b7420a27224968580b5a447f420847c975/pytest_xdist-3.8.0-py3-none-any.whl", hash = "sha256:202ca578cfeb7370784a8c33d6d05bc6e13b4f25b5053c30a152269fd10f0b88", size = 46396, upload-time = "2025-07-01T13:30:56.632Z" },
1423
1425
  ]
1424
1426
 
1427
+ [[package]]
1428
+ name = "pytholog"
1429
+ version = "2.4.1"
1430
+ source = { registry = "https://pypi.org/simple" }
1431
+ dependencies = [
1432
+ { name = "more-itertools" },
1433
+ ]
1434
+ sdist = { url = "https://files.pythonhosted.org/packages/01/87/cffd13adb88483ac677ad2d3bbde3156790cf71db8e9436ac66c2fb8ede9/pytholog-2.4.1.tar.gz", hash = "sha256:ef9b379dd21f755ee5e097e80ce1475e5581eb07d014157e1a76295faeded39f", size = 24680, upload-time = "2020-11-16T02:28:11.867Z" }
1435
+ wheels = [
1436
+ { url = "https://files.pythonhosted.org/packages/6f/d2/f432427a58986ce8ea9f9d2ac6b35dd9657e523dcc562048c19491b4980b/pytholog-2.4.1-py3-none-any.whl", hash = "sha256:b726af28476df5935d8561ce964b7f7e1ba17e9d070b8c9b3da3fe993458893d", size = 16630, upload-time = "2020-11-16T02:28:10.243Z" },
1437
+ ]
1438
+
1425
1439
  [[package]]
1426
1440
  name = "python-dateutil"
1427
1441
  version = "2.9.0.post0"
@@ -1 +0,0 @@
1
- 2420795
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes