drydock-cli 2.8.37__tar.gz → 2.8.38__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 (816) hide show
  1. drydock_cli-2.8.38/.auto_release.lock +1 -0
  2. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/PKG-INFO +1 -1
  3. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/agent_loop.py +28 -5
  4. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/llm/backend/generic.py +13 -3
  5. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/pyproject.toml +1 -1
  6. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/hle_burndown.sh +4 -0
  7. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_user_issues.py +45 -0
  8. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/trip_log.md +100 -0
  9. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/uv.lock +1 -1
  10. drydock_cli-2.8.37/.auto_release.lock +0 -1
  11. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/.github/CODEOWNERS +0 -0
  12. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/.github/DISCUSSION_TEMPLATE/ideas.yml +0 -0
  13. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  14. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  15. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/.github/workflows/build-and-upload.yml +0 -0
  16. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/.github/workflows/ci.yml +0 -0
  17. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/.github/workflows/issue-labeler.yml +0 -0
  18. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/.github/workflows/release.yml +0 -0
  19. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/.gitignore +0 -0
  20. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/.pause_stress +0 -0
  21. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/.pre-commit-config.yaml +0 -0
  22. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/.python-version +0 -0
  23. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/.typos.toml +0 -0
  24. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/.vscode/extensions.json +0 -0
  25. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/.vscode/launch.json +0 -0
  26. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/.vscode/settings.json +0 -0
  27. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/AGENTS.md +0 -0
  28. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/Admiral.md +0 -0
  29. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/CHANGELOG.md +0 -0
  30. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/CLAUDE.md +0 -0
  31. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/CONTRIBUTING.md +0 -0
  32. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/DEEP_NOIR_PRD.md +0 -0
  33. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/DEPLOYMENT.md +0 -0
  34. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/DRYDOCK.md +0 -0
  35. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/HLE_PRD.md +0 -0
  36. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/JETSON_BENCH.md +0 -0
  37. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/LICENSE +0 -0
  38. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/MODEL_SHORTCOMINGS.md +0 -0
  39. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/NOTICE +0 -0
  40. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/README.md +0 -0
  41. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/SOVEREIGN_PRD.md +0 -0
  42. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/TRIAGE_v1.md +0 -0
  43. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/action.yml +0 -0
  44. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/baseline_history/README.md +0 -0
  45. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/baseline_history/results1.tsv +0 -0
  46. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/baseline_history/results13.tsv +0 -0
  47. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/baseline_history/results14.tsv +0 -0
  48. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/baseline_history/results15.tsv +0 -0
  49. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/baseline_history/results16.tsv +0 -0
  50. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/baseline_history/results17.tsv +0 -0
  51. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/baseline_history/results18.tsv +0 -0
  52. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/baseline_history/results19.tsv +0 -0
  53. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/baseline_history/results2.tsv +0 -0
  54. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/baseline_history/results20.tsv +0 -0
  55. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/baseline_history/results3.tsv +0 -0
  56. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/baseline_history/results4.tsv +0 -0
  57. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/baseline_history/results5.tsv +0 -0
  58. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/baseline_history/results6.tsv +0 -0
  59. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/baseline_history/results7.tsv +0 -0
  60. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/baseline_history/results8.tsv +0 -0
  61. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/baseline_history/results9.tsv +0 -0
  62. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/baseline_history/results_evolved_v1.tsv +0 -0
  63. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/distribution/zed/LICENSE +0 -0
  64. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/distribution/zed/extension.toml +0 -0
  65. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/distribution/zed/icons/mistral_vibe.svg +0 -0
  66. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/docs/README.md +0 -0
  67. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/docs/acp-setup.md +0 -0
  68. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/docs/archive/BASELINE_412.md +0 -0
  69. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/docs/archive/Drydock_rebrand.md +0 -0
  70. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/docs/archive/OVERNIGHT_PROGRESS.md +0 -0
  71. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/docs/archive/OVERNIGHT_REPORT_2026_04_13.md +0 -0
  72. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/docs/archive/PERF_SWEEP_PLAN.md +0 -0
  73. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/docs/archive/PRD.md +0 -0
  74. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/docs/archive/drydock_terms.md +0 -0
  75. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/docs/archive/resume.md +0 -0
  76. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/docs/proxy-setup.md +0 -0
  77. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/__init__.py +0 -0
  78. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/__main__.py +0 -0
  79. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/acp/__init__.py +0 -0
  80. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/acp/acp_agent_loop.py +0 -0
  81. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/acp/acp_logger.py +0 -0
  82. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/acp/entrypoint.py +0 -0
  83. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/acp/tools/__init__.py +0 -0
  84. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/acp/tools/base.py +0 -0
  85. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/acp/tools/builtins/bash.py +0 -0
  86. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/acp/tools/builtins/read_file.py +0 -0
  87. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/acp/tools/builtins/search_replace.py +0 -0
  88. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/acp/tools/builtins/todo.py +0 -0
  89. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/acp/tools/builtins/write_file.py +0 -0
  90. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/acp/tools/session_update.py +0 -0
  91. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/acp/utils.py +0 -0
  92. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/admiral/__init__.py +0 -0
  93. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/admiral/detectors.py +0 -0
  94. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/admiral/detectors_proposed.py +0 -0
  95. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/admiral/history.py +0 -0
  96. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/admiral/interventions.py +0 -0
  97. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/admiral/llm_analyzer.py +0 -0
  98. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/admiral/metrics.py +0 -0
  99. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/admiral/opus_escalator.py +0 -0
  100. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/admiral/persistence.py +0 -0
  101. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/admiral/policy.py +0 -0
  102. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/admiral/proposer.py +0 -0
  103. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/admiral/stager.py +0 -0
  104. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/admiral/task_classifier.py +0 -0
  105. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/admiral/tuning.py +0 -0
  106. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/admiral/validator.py +0 -0
  107. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/admiral/worker.py +0 -0
  108. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/__init__.py +0 -0
  109. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/autocompletion/__init__.py +0 -0
  110. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/autocompletion/base.py +0 -0
  111. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/autocompletion/path_completion.py +0 -0
  112. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/autocompletion/slash_command.py +0 -0
  113. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/cli.py +0 -0
  114. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/clipboard.py +0 -0
  115. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/commands.py +0 -0
  116. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/entrypoint.py +0 -0
  117. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/fix_windows_path.py +0 -0
  118. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/history_manager.py +0 -0
  119. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/plan_offer/adapters/http_whoami_gateway.py +0 -0
  120. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/plan_offer/decide_plan_offer.py +0 -0
  121. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/plan_offer/ports/whoami_gateway.py +0 -0
  122. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/terminal_setup.py +0 -0
  123. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/__init__.py +0 -0
  124. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/ansi_markdown.py +0 -0
  125. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/app.py +0 -0
  126. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/app.tcss +0 -0
  127. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/external_editor.py +0 -0
  128. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/handlers/__init__.py +0 -0
  129. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/handlers/event_handler.py +0 -0
  130. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/notifications/__init__.py +0 -0
  131. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/notifications/adapters/__init__.py +0 -0
  132. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/notifications/adapters/textual_notification_adapter.py +0 -0
  133. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/notifications/ports/__init__.py +0 -0
  134. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/notifications/ports/notification_port.py +0 -0
  135. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/widgets/__init__.py +0 -0
  136. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/widgets/approval_app.py +0 -0
  137. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/widgets/banner/banner.py +0 -0
  138. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/widgets/banner/petit_chat.py +0 -0
  139. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/widgets/braille_renderer.py +0 -0
  140. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/widgets/chat_input/__init__.py +0 -0
  141. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/widgets/chat_input/body.py +0 -0
  142. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/widgets/chat_input/completion_manager.py +0 -0
  143. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/widgets/chat_input/completion_popup.py +0 -0
  144. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/widgets/chat_input/container.py +0 -0
  145. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/widgets/chat_input/text_area.py +0 -0
  146. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/widgets/checkpoint_picker.py +0 -0
  147. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/widgets/compact.py +0 -0
  148. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/widgets/config_app.py +0 -0
  149. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/widgets/context_progress.py +0 -0
  150. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/widgets/load_more.py +0 -0
  151. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/widgets/loading.py +0 -0
  152. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/widgets/messages.py +0 -0
  153. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/widgets/no_markup_static.py +0 -0
  154. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/widgets/path_display.py +0 -0
  155. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/widgets/proxy_setup_app.py +0 -0
  156. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/widgets/question_app.py +0 -0
  157. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/widgets/session_picker.py +0 -0
  158. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/widgets/spinner.py +0 -0
  159. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/widgets/status_message.py +0 -0
  160. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/widgets/teleport_message.py +0 -0
  161. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/widgets/tool_widgets.py +0 -0
  162. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/widgets/tools.py +0 -0
  163. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/widgets/vscode_compat.py +0 -0
  164. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/windowing/__init__.py +0 -0
  165. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/windowing/history.py +0 -0
  166. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/windowing/history_windowing.py +0 -0
  167. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/textual_ui/windowing/state.py +0 -0
  168. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/update_notifier/__init__.py +0 -0
  169. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/update_notifier/adapters/filesystem_update_cache_repository.py +0 -0
  170. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/update_notifier/adapters/github_update_gateway.py +0 -0
  171. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/update_notifier/adapters/pypi_update_gateway.py +0 -0
  172. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/update_notifier/ports/update_cache_repository.py +0 -0
  173. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/update_notifier/ports/update_gateway.py +0 -0
  174. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/update_notifier/update.py +0 -0
  175. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/cli/update_notifier/whats_new.py +0 -0
  176. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/__init__.py +0 -0
  177. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/agents/__init__.py +0 -0
  178. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/agents/manager.py +0 -0
  179. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/agents/models.py +0 -0
  180. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/auth/__init__.py +0 -0
  181. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/auth/crypto.py +0 -0
  182. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/auth/github.py +0 -0
  183. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/autocompletion/__init__.py +0 -0
  184. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/autocompletion/completers.py +0 -0
  185. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/autocompletion/file_indexer/__init__.py +0 -0
  186. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/autocompletion/file_indexer/ignore_rules.py +0 -0
  187. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/autocompletion/file_indexer/indexer.py +0 -0
  188. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/autocompletion/file_indexer/store.py +0 -0
  189. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/autocompletion/file_indexer/watcher.py +0 -0
  190. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/autocompletion/fuzzy.py +0 -0
  191. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/autocompletion/path_prompt.py +0 -0
  192. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/autocompletion/path_prompt_adapter.py +0 -0
  193. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/build_orchestrator.py +0 -0
  194. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/checkpoint.py +0 -0
  195. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/classifier/__init__.py +0 -0
  196. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/classifier/__main__.py +0 -0
  197. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/classifier/classifier.py +0 -0
  198. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/classifier/dispatcher.py +0 -0
  199. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/classifier/rules.py +0 -0
  200. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/classifier/signal.py +0 -0
  201. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/config/__init__.py +0 -0
  202. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/config/_dotenv.py +0 -0
  203. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/config/_settings.py +0 -0
  204. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/config/doctor.py +0 -0
  205. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/config/harness_files/__init__.py +0 -0
  206. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/config/harness_files/_harness_manager.py +0 -0
  207. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/config/harness_files/_paths.py +0 -0
  208. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/config/local_detect.py +0 -0
  209. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/config/migrate.py +0 -0
  210. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/constraint_extract.py +0 -0
  211. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/constraint_hint.py +0 -0
  212. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/consultant.py +0 -0
  213. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/context_recovery.py +0 -0
  214. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/drydock_states.py +0 -0
  215. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/hooks.py +0 -0
  216. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/llm/__init__.py +0 -0
  217. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/llm/backend/anthropic.py +0 -0
  218. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/llm/backend/base.py +0 -0
  219. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/llm/backend/factory.py +0 -0
  220. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/llm/backend/mistral.py +0 -0
  221. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/llm/backend/reasoning_adapter.py +0 -0
  222. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/llm/backend/vertex.py +0 -0
  223. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/llm/exceptions.py +0 -0
  224. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/llm/format.py +0 -0
  225. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/llm/message_utils.py +0 -0
  226. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/llm/types.py +0 -0
  227. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/logger.py +0 -0
  228. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/middleware.py +0 -0
  229. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/output_formatters.py +0 -0
  230. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/paths/__init__.py +0 -0
  231. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/paths/_drydock_home.py +0 -0
  232. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/paths/_local_config_walk.py +0 -0
  233. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/paths/conventions.py +0 -0
  234. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/plan_session.py +0 -0
  235. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/plugins.py +0 -0
  236. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/programmatic.py +0 -0
  237. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/prompts/__init__.py +0 -0
  238. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/prompts/builder.md +0 -0
  239. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/prompts/cli.md +0 -0
  240. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/prompts/compact.md +0 -0
  241. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/prompts/dangerous_directory.md +0 -0
  242. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/prompts/diagnostic.md +0 -0
  243. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/prompts/explore.md +0 -0
  244. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/prompts/gemma4.md +0 -0
  245. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/prompts/planner.md +0 -0
  246. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/prompts/project_context.md +0 -0
  247. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/prompts/tests.md +0 -0
  248. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/proxy_setup.py +0 -0
  249. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/session/agent_memory.py +0 -0
  250. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/session/checkpoints.py +0 -0
  251. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/session/session_loader.py +0 -0
  252. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/session/session_logger.py +0 -0
  253. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/session/session_migration.py +0 -0
  254. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/session/state_file.py +0 -0
  255. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/session_checker.py +0 -0
  256. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/skills/__init__.py +0 -0
  257. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/skills/manager.py +0 -0
  258. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/skills/models.py +0 -0
  259. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/skills/parser.py +0 -0
  260. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/slug.py +0 -0
  261. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/steering_hook.py +0 -0
  262. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/system_prompt.py +0 -0
  263. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/telemetry/__init__.py +0 -0
  264. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/telemetry/send.py +0 -0
  265. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/teleport/errors.py +0 -0
  266. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/teleport/git.py +0 -0
  267. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/teleport/nuage.py +0 -0
  268. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/teleport/teleport.py +0 -0
  269. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/teleport/types.py +0 -0
  270. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/base.py +0 -0
  271. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/_task_manager.py +0 -0
  272. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/algebra_tool.py +0 -0
  273. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/ask_user_question.py +0 -0
  274. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/bash.py +0 -0
  275. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/chemistry_tool.py +0 -0
  276. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/count_tool.py +0 -0
  277. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/cron.py +0 -0
  278. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/exit_plan_mode.py +0 -0
  279. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/glob_tool.py +0 -0
  280. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/grep.py +0 -0
  281. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/invoke_skill.py +0 -0
  282. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/linear_algebra_tool.py +0 -0
  283. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/logic_tool.py +0 -0
  284. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/lsp.py +0 -0
  285. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/math_tool.py +0 -0
  286. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/mcp_resources.py +0 -0
  287. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/memory_tool.py +0 -0
  288. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/notebook_edit.py +0 -0
  289. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/number_theory_tool.py +0 -0
  290. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/powershell.py +0 -0
  291. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/prompts/__init__.py +0 -0
  292. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/prompts/ask_user_question.md +0 -0
  293. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/prompts/bash.md +0 -0
  294. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/prompts/cron.md +0 -0
  295. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/prompts/glob.md +0 -0
  296. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/prompts/grep.md +0 -0
  297. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/prompts/invoke_skill.md +0 -0
  298. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/prompts/lsp.md +0 -0
  299. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/prompts/mcp_resources.md +0 -0
  300. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/prompts/notebook_edit.md +0 -0
  301. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/prompts/powershell.md +0 -0
  302. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/prompts/read_file.md +0 -0
  303. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/prompts/retrieve.md +0 -0
  304. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/prompts/search_replace.md +0 -0
  305. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/prompts/swe_bench.md +0 -0
  306. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/prompts/task.md +0 -0
  307. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/prompts/task_manager.md +0 -0
  308. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/prompts/todo.md +0 -0
  309. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/prompts/tool_search.md +0 -0
  310. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/prompts/webfetch.md +0 -0
  311. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/prompts/websearch.md +0 -0
  312. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/prompts/worktree.md +0 -0
  313. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/prompts/write_file.md +0 -0
  314. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/read_file.py +0 -0
  315. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/retrieve.py +0 -0
  316. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/search_replace.py +0 -0
  317. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/set_tool.py +0 -0
  318. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/solve_tool.py +0 -0
  319. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/stats_tool.py +0 -0
  320. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/task.py +0 -0
  321. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/todo.py +0 -0
  322. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/tool_search.py +0 -0
  323. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/units_tool.py +0 -0
  324. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/verify_tool.py +0 -0
  325. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/webfetch.py +0 -0
  326. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/websearch.py +0 -0
  327. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/worktree.py +0 -0
  328. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/builtins/write_file.py +0 -0
  329. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/injection_guard.py +0 -0
  330. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/manager.py +0 -0
  331. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/mcp/__init__.py +0 -0
  332. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/mcp/registry.py +0 -0
  333. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/mcp/tools.py +0 -0
  334. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/mcp_sampling.py +0 -0
  335. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/ui.py +0 -0
  336. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/tools/utils.py +0 -0
  337. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/trusted_folders.py +0 -0
  338. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/types.py +0 -0
  339. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/core/utils.py +0 -0
  340. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/curiosity/__init__.py +0 -0
  341. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/curiosity/__main__.py +0 -0
  342. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/curiosity/gap_detector.py +0 -0
  343. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/curiosity/item.py +0 -0
  344. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/curiosity/queue.py +0 -0
  345. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/curiosity/surprise.py +0 -0
  346. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/graphrag/__init__.py +0 -0
  347. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/graphrag/__main__.py +0 -0
  348. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/graphrag/code_indexer.py +0 -0
  349. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/graphrag/retriever.py +0 -0
  350. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/graphrag/storage.py +0 -0
  351. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/graphrag/text_indexer.py +0 -0
  352. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/setup/onboarding/__init__.py +0 -0
  353. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/setup/onboarding/base.py +0 -0
  354. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/setup/onboarding/onboarding.tcss +0 -0
  355. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/setup/onboarding/screens/__init__.py +0 -0
  356. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/setup/onboarding/screens/api_key.py +0 -0
  357. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/setup/onboarding/screens/choice.py +0 -0
  358. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/setup/onboarding/screens/local_model.py +0 -0
  359. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/setup/onboarding/screens/welcome.py +0 -0
  360. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/setup/trusted_folders/trust_folder_dialog.py +0 -0
  361. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/setup/trusted_folders/trust_folder_dialog.tcss +0 -0
  362. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/skills/__init__.py +0 -0
  363. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/skills/api-design/SKILL.md +0 -0
  364. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/skills/audit-tests/SKILL.md +0 -0
  365. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/skills/batch/SKILL.md +0 -0
  366. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/skills/commit-code/SKILL.md +0 -0
  367. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/skills/constraint-reasoning/SKILL.md +0 -0
  368. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/skills/context-summary/SKILL.md +0 -0
  369. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/skills/create-presentation/SKILL.md +0 -0
  370. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/skills/deep-research/SKILL.md +0 -0
  371. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/skills/deploy/SKILL.md +0 -0
  372. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/skills/diff-review/SKILL.md +0 -0
  373. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/skills/doc-gen/SKILL.md +0 -0
  374. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/skills/explain-code/SKILL.md +0 -0
  375. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/skills/explore-code/SKILL.md +0 -0
  376. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/skills/fix-issue/SKILL.md +0 -0
  377. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/skills/git-ops/SKILL.md +0 -0
  378. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/skills/init-project/SKILL.md +0 -0
  379. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/skills/investigate/SKILL.md +0 -0
  380. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/skills/logic/SKILL.md +0 -0
  381. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/skills/logic/assets/cheat_sheet_full.txt +0 -0
  382. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/skills/loop/SKILL.md +0 -0
  383. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/skills/migrate/SKILL.md +0 -0
  384. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/skills/perf-analyze/SKILL.md +0 -0
  385. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/skills/plan-impl/SKILL.md +0 -0
  386. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/skills/pr-review/SKILL.md +0 -0
  387. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/skills/prove/SKILL.md +0 -0
  388. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/skills/refactor/SKILL.md +0 -0
  389. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/skills/regex-help/SKILL.md +0 -0
  390. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/skills/review/SKILL.md +0 -0
  391. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/skills/security-review/SKILL.md +0 -0
  392. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/skills/ship/SKILL.md +0 -0
  393. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/skills/simplify/SKILL.md +0 -0
  394. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/skills/strong-tests/SKILL.md +0 -0
  395. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/skills/test-verify/SKILL.md +0 -0
  396. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/steering/__init__.py +0 -0
  397. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/steering/__main__.py +0 -0
  398. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/steering/applier.py +0 -0
  399. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/steering/config.py +0 -0
  400. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/steering/registry.py +0 -0
  401. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/steering/sandbox.py +0 -0
  402. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/steering/sidecar/__init__.py +0 -0
  403. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/steering/sidecar/header_parser.py +0 -0
  404. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/steering/sidecar/hooks.py +0 -0
  405. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/steering/sidecar/loader.py +0 -0
  406. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/steering/sidecar/server.py +0 -0
  407. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/steering/train/__init__.py +0 -0
  408. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/steering/train/capture.py +0 -0
  409. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/steering/train/compute_vector.py +0 -0
  410. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/steering/train/extract_pairs.py +0 -0
  411. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/steering/train/scan_sessions.py +0 -0
  412. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/steering/vectors.py +0 -0
  413. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock/whats_new.md +0 -0
  414. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/drydock-acp.spec +0 -0
  415. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/flake.lock +0 -0
  416. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/flake.nix +0 -0
  417. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/outlook_draft_assistant.tar.gz +0 -0
  418. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/research/README.md +0 -0
  419. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/research/config_base.toml +0 -0
  420. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/research/config_best.toml +0 -0
  421. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/research/deep_noir/pairs/empty_after_bash.jsonl +0 -0
  422. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/research/deep_noir/pairs/scan_empty_after_bash.jsonl +0 -0
  423. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/research/domain_spec.md +0 -0
  424. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/research/experimenter.py +0 -0
  425. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/research/kernel.py +0 -0
  426. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/research/mini_prd.md +0 -0
  427. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/research/mini_prompts.txt +0 -0
  428. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/research/proposer.py +0 -0
  429. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/research/results.tsv +0 -0
  430. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/resume.md +0 -0
  431. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/README.md +0 -0
  432. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/admiral_probe.py +0 -0
  433. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/archive/auto_test_loop.sh +0 -0
  434. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/archive/monitor_test_battery.sh +0 -0
  435. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/archive/overnight_agents_test.sh +0 -0
  436. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/archive/test_bank.sh +0 -0
  437. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/archive/test_full.sh +0 -0
  438. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/archive/test_smoke.sh +0 -0
  439. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/archive/tui_test.py +0 -0
  440. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/audit_sampler.py +0 -0
  441. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/auto_generate_tests.py +0 -0
  442. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/auto_release.sh +0 -0
  443. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/autonomous_review.sh +0 -0
  444. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/autonomous_review_prompt.md +0 -0
  445. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/backfill_hle_curiosity.py +0 -0
  446. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/backup.sh +0 -0
  447. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/bench_inference.py +0 -0
  448. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/bump_version.py +0 -0
  449. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/classify_pulse.sh +0 -0
  450. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/consume_retrieval_queue.py +0 -0
  451. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/curiosity_idle_cycle.sh +0 -0
  452. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/dedupe_dispatch_queues.py +0 -0
  453. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/deploy_to_github.sh +0 -0
  454. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/dispatch_report.py +0 -0
  455. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/drydock_status.sh +0 -0
  456. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/fetch_arxiv_abstracts.py +0 -0
  457. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/gen_2000_prompts.py +0 -0
  458. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/hle_aggregate.py +0 -0
  459. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/hle_babysitter.sh +0 -0
  460. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/hle_burndown_keepalive.sh +0 -0
  461. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/hle_burndown_status.py +0 -0
  462. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/hle_eval.py +0 -0
  463. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/hle_eval_seed.jsonl +0 -0
  464. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/llm_balancer.py +0 -0
  465. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/notify_release.py +0 -0
  466. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/perf_baseline_when_idle.sh +0 -0
  467. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/perf_sweep.py +0 -0
  468. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/poll_issues.sh +0 -0
  469. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/publish_to_pypi.sh +0 -0
  470. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/queue_top.py +0 -0
  471. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/ralph_loop.py +0 -0
  472. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/rejudge_hle.py +0 -0
  473. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/research_babysitter.sh +0 -0
  474. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/shakedown.py +0 -0
  475. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/shakedown_interactive.py +0 -0
  476. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/shakedown_suite.sh +0 -0
  477. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/shakedown_variance.sh +0 -0
  478. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/start_steering_sidecar.sh +0 -0
  479. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/stress_babysitter.sh +0 -0
  480. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/stress_prompts_50.txt +0 -0
  481. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/stress_prompts_realuser.txt +0 -0
  482. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/stress_prompts_tool_agent.txt +0 -0
  483. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/stress_prompts_tool_agent_2000.txt +0 -0
  484. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/stress_shakedown.py +0 -0
  485. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/stress_telegram_status.py +0 -0
  486. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/stress_watcher.py +0 -0
  487. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/telegram_bot.py +0 -0
  488. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/tool_usage_report.py +0 -0
  489. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/scripts/vllm_failover.sh +0 -0
  490. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/__init__.py +0 -0
  491. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/acp/conftest.py +0 -0
  492. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/acp/test_acp.py +0 -0
  493. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/acp/test_agent_thought.py +0 -0
  494. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/acp/test_bash.py +0 -0
  495. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/acp/test_compact_session_updates.py +0 -0
  496. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/acp/test_content.py +0 -0
  497. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/acp/test_initialize.py +0 -0
  498. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/acp/test_list_sessions.py +0 -0
  499. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/acp/test_load_session.py +0 -0
  500. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/acp/test_multi_session.py +0 -0
  501. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/acp/test_new_session.py +0 -0
  502. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/acp/test_proxy_setup_acp.py +0 -0
  503. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/acp/test_read_file.py +0 -0
  504. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/acp/test_search_replace.py +0 -0
  505. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/acp/test_set_config_option.py +0 -0
  506. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/acp/test_set_mode.py +0 -0
  507. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/acp/test_set_model.py +0 -0
  508. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/acp/test_tool_call_session_update.py +0 -0
  509. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/acp/test_utils.py +0 -0
  510. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/acp/test_write_file.py +0 -0
  511. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/autocompletion/test_file_indexer.py +0 -0
  512. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/autocompletion/test_fuzzy.py +0 -0
  513. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/autocompletion/test_path_completer_fuzzy.py +0 -0
  514. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/autocompletion/test_path_completer_recursive.py +0 -0
  515. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/autocompletion/test_path_completion_controller.py +0 -0
  516. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/autocompletion/test_path_prompt_transformer.py +0 -0
  517. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/autocompletion/test_slash_command_controller.py +0 -0
  518. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/autocompletion/test_ui_chat_autocompletion.py +0 -0
  519. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/backend/__init__.py +0 -0
  520. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/backend/data/__init__.py +0 -0
  521. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/backend/data/fireworks.py +0 -0
  522. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/backend/data/mistral.py +0 -0
  523. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/backend/test_anthropic_adapter.py +0 -0
  524. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/backend/test_backend.py +0 -0
  525. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/backend/test_generic_adapter_sanitize.py +0 -0
  526. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/backend/test_reasoning_adapter.py +0 -0
  527. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/backend/test_vertex_anthropic_adapter.py +0 -0
  528. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/cli/plan_offer/adapters/fake_whoami_gateway.py +0 -0
  529. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/cli/plan_offer/test_decide_plan_offer.py +0 -0
  530. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/cli/plan_offer/test_http_whoami_gateway.py +0 -0
  531. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/cli/test_bell_notifications.py +0 -0
  532. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/cli/test_braille_renderer.py +0 -0
  533. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/cli/test_clipboard.py +0 -0
  534. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/cli/test_commands.py +0 -0
  535. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/cli/test_copy_shortcuts.py +0 -0
  536. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/cli/test_external_editor.py +0 -0
  537. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/cli/test_no_markup_static.py +0 -0
  538. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/cli/test_question_app.py +0 -0
  539. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/cli/test_spinner.py +0 -0
  540. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/cli/test_switching_mode.py +0 -0
  541. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/cli/test_ui_clipboard_notifications.py +0 -0
  542. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/cli/test_ui_session_incremental_renderer.py +0 -0
  543. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/cli/test_ui_session_resume.py +0 -0
  544. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/cli/test_ui_skill_dispatch.py +0 -0
  545. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/cli/textual_ui/__init__.py +0 -0
  546. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/cli/textual_ui/test_session_picker.py +0 -0
  547. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/conftest.py +0 -0
  548. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/core/test_agents.py +0 -0
  549. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/core/test_auth_crypto.py +0 -0
  550. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/core/test_auth_github.py +0 -0
  551. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/core/test_circuit_breaker_count_escalation.py +0 -0
  552. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/core/test_circuit_breaker_readonly_threshold.py +0 -0
  553. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/core/test_config_load_dotenv.py +0 -0
  554. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/core/test_config_paths.py +0 -0
  555. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/core/test_config_resolution.py +0 -0
  556. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/core/test_file_logging.py +0 -0
  557. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/core/test_plan_session.py +0 -0
  558. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/core/test_proxy_setup.py +0 -0
  559. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/core/test_slug.py +0 -0
  560. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/core/test_telemetry_send.py +0 -0
  561. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/core/test_teleport_git.py +0 -0
  562. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/core/test_teleport_nuage.py +0 -0
  563. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/core/test_teleport_service.py +0 -0
  564. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/core/test_trusted_folders.py +0 -0
  565. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/core/test_utils.py +0 -0
  566. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/e2e/common.py +0 -0
  567. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/e2e/conftest.py +0 -0
  568. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/e2e/mock_server.py +0 -0
  569. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/e2e/test_cli_tui_onboarding.py +0 -0
  570. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/e2e/test_cli_tui_streaming.py +0 -0
  571. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/e2e/test_cli_tui_tool_approval.py +0 -0
  572. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/fixtures/doc_qa_system_prd.md +0 -0
  573. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/mock/__init__.py +0 -0
  574. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/mock/mock_backend_factory.py +0 -0
  575. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/mock/mock_entrypoint.py +0 -0
  576. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/mock/utils.py +0 -0
  577. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/onboarding/test_run_onboarding.py +0 -0
  578. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/onboarding/test_ui_onboarding.py +0 -0
  579. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/session/test_session_loader.py +0 -0
  580. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/session/test_session_logger.py +0 -0
  581. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/session/test_session_migration.py +0 -0
  582. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/skills/conftest.py +0 -0
  583. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/skills/test_manager.py +0 -0
  584. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/skills/test_models.py +0 -0
  585. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/skills/test_parser.py +0 -0
  586. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_collapsed.svg +0 -0
  587. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_expanded.svg +0 -0
  588. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_basic_conversation/test_snapshot_shows_basic_conversation.svg +0 -0
  589. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_code_block_horizontal_scrolling/test_snapshot_allows_horizontal_scrolling_for_long_code_blocks.svg +0 -0
  590. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_empty_assistant_before_reasoning/test_snapshot_empty_assistant_removed_when_reasoning_starts.svg +0 -0
  591. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_accept_edits_mode.svg +0 -0
  592. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_auto_approve_mode.svg +0 -0
  593. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_plan_mode.svg +0 -0
  594. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_wraps_to_default.svg +0 -0
  595. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_default_mode.svg +0 -0
  596. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_pending.svg +0 -0
  597. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_resolved.svg +0 -0
  598. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_cancel_discards_changes.svg +0 -0
  599. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_edit_existing_values.svg +0 -0
  600. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_empty.svg +0 -0
  601. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_with_values.svg +0 -0
  602. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_error.svg +0 -0
  603. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_new_values.svg +0 -0
  604. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_answer_first_advance.svg +0 -0
  605. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_first_answered_checkmark.svg +0 -0
  606. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_initial.svg +0 -0
  607. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_left_wraps.svg +0 -0
  608. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_right.svg +0 -0
  609. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_tab_to_second.svg +0 -0
  610. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_initial.svg +0 -0
  611. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_mixed_selection.svg +0 -0
  612. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_navigate_to_submit.svg +0 -0
  613. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_other_with_text.svg +0 -0
  614. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_first.svg +0 -0
  615. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_multiple.svg +0 -0
  616. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_untoggle.svg +0 -0
  617. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_initial.svg +0 -0
  618. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_down.svg +0 -0
  619. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_other.svg +0 -0
  620. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_third_option.svg +0 -0
  621. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_up_wraps.svg +0 -0
  622. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_other_typing.svg +0 -0
  623. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_buffered_reasoning_yields_before_content.svg +0 -0
  624. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_interleaved_reasoning.svg +0 -0
  625. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content.svg +0 -0
  626. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content_expanded.svg +0 -0
  627. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_release_update_notification/test_snapshot_shows_release_update_notification.svg +0 -0
  628. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_session_resume/test_snapshot_shows_resumed_session_messages.svg +0 -0
  629. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_partial.svg +0 -0
  630. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_updated.svg +0 -0
  631. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_cancel_selected.svg +0 -0
  632. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_multiple_commits.svg +0 -0
  633. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_single_commit.svg +0 -0
  634. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_complete.svg +0 -0
  635. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_required.svg +0 -0
  636. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_checking_git.svg +0 -0
  637. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_complete.svg +0 -0
  638. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_error.svg +0 -0
  639. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_pushing.svg +0 -0
  640. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_sending_token.svg +0 -0
  641. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_starting_workflow.svg +0 -0
  642. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_no_plan_message.svg +0 -0
  643. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_switch_message.svg +0 -0
  644. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_upgrade_message.svg +0 -0
  645. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_whats_new_message.svg +0 -0
  646. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/base_snapshot_test_app.py +0 -0
  647. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/conftest.py +0 -0
  648. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/snap_compare.py +0 -0
  649. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/test_ui_snapshot_ask_user_question.py +0 -0
  650. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/test_ui_snapshot_basic_conversation.py +0 -0
  651. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/test_ui_snapshot_code_block_horizontal_scrolling.py +0 -0
  652. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/test_ui_snapshot_empty_assistant_before_reasoning.py +0 -0
  653. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/test_ui_snapshot_modes.py +0 -0
  654. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/test_ui_snapshot_parallel_tool_calls.py +0 -0
  655. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/test_ui_snapshot_proxy_setup.py +0 -0
  656. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/test_ui_snapshot_question_app.py +0 -0
  657. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/test_ui_snapshot_reasoning_content.py +0 -0
  658. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/test_ui_snapshot_release_update_notification.py +0 -0
  659. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/test_ui_snapshot_session_resume.py +0 -0
  660. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/test_ui_snapshot_streaming_tool_call.py +0 -0
  661. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/test_ui_snapshot_teleport.py +0 -0
  662. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/snapshots/test_ui_snapshot_whats_new.py +0 -0
  663. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/stubs/fake_backend.py +0 -0
  664. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/stubs/fake_client.py +0 -0
  665. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/stubs/fake_tool.py +0 -0
  666. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_admiral.py +0 -0
  667. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_admiral_hallucinated_tool_filter.py +0 -0
  668. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_admiral_intervention_outcome.py +0 -0
  669. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_admiral_phase3.py +0 -0
  670. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_admiral_proposed.py +0 -0
  671. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_admiral_session_id.py +0 -0
  672. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_admiral_struggle_dedup.py +0 -0
  673. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_agent_auto_compact.py +0 -0
  674. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_agent_backend.py +0 -0
  675. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_agent_observer_streaming.py +0 -0
  676. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_agent_stats.py +0 -0
  677. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_agent_tasks.py +0 -0
  678. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_agent_tool_call.py +0 -0
  679. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_agents.py +0 -0
  680. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_algebra_tool.py +0 -0
  681. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_auto_retrieve_soft_nudge.py +0 -0
  682. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_bank_build.py +0 -0
  683. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_bank_debug.py +0 -0
  684. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_bank_multiagent.py +0 -0
  685. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_bank_prd.py +0 -0
  686. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_bank_prd_extended.py +0 -0
  687. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_bank_tools.py +0 -0
  688. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_bank_update.py +0 -0
  689. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_build_projects.py +0 -0
  690. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_checkpoint.py +0 -0
  691. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_chemistry_tool.py +0 -0
  692. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_classifier.py +0 -0
  693. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_cli_programmatic_preload.py +0 -0
  694. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_config_migration.py +0 -0
  695. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_constraint_extract.py +0 -0
  696. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_constraint_hint.py +0 -0
  697. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_context_recovery.py +0 -0
  698. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_count_tool.py +0 -0
  699. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_curiosity.py +0 -0
  700. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_current_bugs.py +0 -0
  701. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_dispatch_report.py +0 -0
  702. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_dispatcher.py +0 -0
  703. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_drydock_regression.py +0 -0
  704. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_drydock_tasks.py +0 -0
  705. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_fake_tool_call_paren_syntax.py +0 -0
  706. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_full_regression.py +0 -0
  707. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_graphrag.py +0 -0
  708. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_graphrag_worked_examples.py +0 -0
  709. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_hallucinated_tool_suppression.py +0 -0
  710. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_history_manager.py +0 -0
  711. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_hle_aggregate.py +0 -0
  712. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_hle_score_method_split.py +0 -0
  713. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_hle_typing.py +0 -0
  714. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_integration.py +0 -0
  715. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_issue_fixes.py +0 -0
  716. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_linear_algebra_tool.py +0 -0
  717. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_local_detect.py +0 -0
  718. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_logic_tool.py +0 -0
  719. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_loop_detection.py +0 -0
  720. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_math_tool.py +0 -0
  721. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_mcp_settings.py +0 -0
  722. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_memory_tool.py +0 -0
  723. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_message_id.py +0 -0
  724. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_message_merging.py +0 -0
  725. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_middleware.py +0 -0
  726. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_multi_agent.py +0 -0
  727. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_number_theory_tool.py +0 -0
  728. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_read_file_not_found_listing.py +0 -0
  729. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_real_failures.py +0 -0
  730. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_real_issues.py +0 -0
  731. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_real_workflow.py +0 -0
  732. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_reasoning_content.py +0 -0
  733. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_rejudge_hle.py +0 -0
  734. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_retrieval_consumer.py +0 -0
  735. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_retrieve_tool.py +0 -0
  736. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_search_replace_args_not_truncated.py +0 -0
  737. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_set_tool.py +0 -0
  738. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_smoke.py +0 -0
  739. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_solve_tool.py +0 -0
  740. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_stats_tool.py +0 -0
  741. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_steering.py +0 -0
  742. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_steering_capture.py +0 -0
  743. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_steering_compute_vector.py +0 -0
  744. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_steering_extract_pairs.py +0 -0
  745. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_steering_hook.py +0 -0
  746. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_steering_sidecar_chat_inputs.py +0 -0
  747. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_steering_sidecar_hooks.py +0 -0
  748. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_system_prompt.py +0 -0
  749. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_tagged_text.py +0 -0
  750. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_task_complete_nudge.py +0 -0
  751. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_tool_args.py +0 -0
  752. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_truncate_args_valid_json.py +0 -0
  753. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_truncated_arg_path_hint.py +0 -0
  754. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_truncated_search_replace_escalation.py +0 -0
  755. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_truncated_write_escalation.py +0 -0
  756. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_ui_external_editor.py +0 -0
  757. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_ui_input_history.py +0 -0
  758. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_units_tool.py +0 -0
  759. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_verify_tool.py +0 -0
  760. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_wall_of_text_rescue.py +0 -0
  761. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_workloads.py +0 -0
  762. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/test_write_file_missing_path.py +0 -0
  763. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/testbank_helpers.py +0 -0
  764. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/tools/test_ask_user_question.py +0 -0
  765. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/tools/test_bash.py +0 -0
  766. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/tools/test_bash_binary_grep_hint.py +0 -0
  767. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/tools/test_bash_consec_empty_search.py +0 -0
  768. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/tools/test_bash_echo_escape_loop_breaker.py +0 -0
  769. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/tools/test_bash_empty_search_loop_breaker.py +0 -0
  770. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/tools/test_bash_error_loop_breaker.py +0 -0
  771. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/tools/test_bash_exact_cmd_loop_breaker.py +0 -0
  772. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/tools/test_bash_heredoc_confirmation.py +0 -0
  773. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/tools/test_bash_kill_exit1_annotation.py +0 -0
  774. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/tools/test_bash_python_c_syntaxerr_loop_breaker.py +0 -0
  775. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/tools/test_exit_plan_mode.py +0 -0
  776. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/tools/test_grep.py +0 -0
  777. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/tools/test_hallucinated_retrieval_redirect.py +0 -0
  778. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/tools/test_invoke_context.py +0 -0
  779. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/tools/test_manager_gemma_derived_models.py +0 -0
  780. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/tools/test_manager_get_tool_config.py +0 -0
  781. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/tools/test_mcp.py +0 -0
  782. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/tools/test_mcp_sampling.py +0 -0
  783. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/tools/test_read_file_dedup_alternating_offset.py +0 -0
  784. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/tools/test_read_file_dedup_reembed.py +0 -0
  785. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/tools/test_read_file_directory.py +0 -0
  786. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/tools/test_read_file_limit_truncation.py +0 -0
  787. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/tools/test_search_replace_append_fallback.py +0 -0
  788. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/tools/test_search_replace_dir_path.py +0 -0
  789. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/tools/test_search_replace_empty_content.py +0 -0
  790. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/tools/test_search_replace_file_not_found.py +0 -0
  791. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/tools/test_search_replace_first_failure_hint.py +0 -0
  792. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/tools/test_search_replace_hard_stop.py +0 -0
  793. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/tools/test_search_replace_malformed_block.py +0 -0
  794. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/tools/test_search_replace_no_op_loop_breaker.py +0 -0
  795. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/tools/test_search_replace_placeholder.py +0 -0
  796. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/tools/test_search_replace_refused_loop_breaker.py +0 -0
  797. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/tools/test_task.py +0 -0
  798. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/tools/test_ui_bash_execution.py +0 -0
  799. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/tools/test_webfetch.py +0 -0
  800. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/tools/test_websearch.py +0 -0
  801. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/tools/test_write_file_dedup_missing_imports.py +0 -0
  802. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/tools/test_write_file_missing_path_hint.py +0 -0
  803. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/update_notifier/adapters/fake_update_cache_repository.py +0 -0
  804. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/update_notifier/adapters/fake_update_gateway.py +0 -0
  805. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/update_notifier/test_do_update.py +0 -0
  806. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/update_notifier/test_filesystem_update_cache_repository.py +0 -0
  807. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/update_notifier/test_github_update_gateway.py +0 -0
  808. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/update_notifier/test_pypi_update_gateway.py +0 -0
  809. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/update_notifier/test_ui_update_notification.py +0 -0
  810. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/update_notifier/test_update_use_case.py +0 -0
  811. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/tests/update_notifier/test_whats_new.py +0 -0
  812. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/worked_examples/README.md +0 -0
  813. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/worked_examples/cli_subcommand_dispatch.py +0 -0
  814. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/worked_examples/lookup.json +0 -0
  815. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/worked_examples/sql_parser.py +0 -0
  816. {drydock_cli-2.8.37 → drydock_cli-2.8.38}/worked_examples/tree_walking_interpreter.py +0 -0
@@ -0,0 +1 @@
1
+ 1951253
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: drydock-cli
3
- Version: 2.8.37
3
+ Version: 2.8.38
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
@@ -1051,7 +1051,10 @@ class AgentLoop:
1051
1051
  or "400 bad request" in error_str.lower()
1052
1052
  or "status: 400" in error_str.lower()
1053
1053
  or "exceeds the available context" in error_str.lower()
1054
- or "error code: 400" in error_str.lower()):
1054
+ or "error code: 400" in error_str.lower()
1055
+ or "500 internal server error" in error_str.lower()
1056
+ or "status: 500" in error_str.lower()
1057
+ or "llm backend error" in error_str.lower()):
1055
1058
  # Context limit or malformed request — aggressive recovery
1056
1059
  # Step 0 (added 2026-05-09): if the error looks like a
1057
1060
  # malformed tool call (most common 400 cause that ISN'T
@@ -1127,11 +1130,31 @@ class AgentLoop:
1127
1130
  except Exception:
1128
1131
  pass
1129
1132
  if dropped_bad_tool_call:
1130
- error_text = (
1131
- "Your last tool call was rejected by the "
1132
- "server (likely malformed arguments). "
1133
- "Try a simpler form, or use a different tool."
1133
+ # Detect JSON-truncation: llama.cpp returns this
1134
+ # when max_tokens is too low and the tool call
1135
+ # JSON gets cut off mid-string.
1136
+ _trunc = (
1137
+ "missing closing quote" in error_str.lower()
1138
+ or (
1139
+ "parse error at" in error_str.lower()
1140
+ and "column" in error_str.lower()
1141
+ )
1134
1142
  )
1143
+ if _trunc:
1144
+ error_text = (
1145
+ "Your write_file content was too large — "
1146
+ "the server truncated the response mid-JSON "
1147
+ "(hit max_tokens). Split the file into "
1148
+ "smaller sections and write each with a "
1149
+ "separate write_file call (aim for ≤50 "
1150
+ "lines per call)."
1151
+ )
1152
+ else:
1153
+ error_text = (
1154
+ "Your last tool call was rejected by the "
1155
+ "server (likely malformed arguments). "
1156
+ "Try a simpler form, or use a different tool."
1157
+ )
1135
1158
  else:
1136
1159
  error_text = (
1137
1160
  "Context compacted due to API error. "
@@ -191,17 +191,27 @@ class OpenAIAdapter(APIAdapter):
191
191
  )
192
192
 
193
193
  # Enable thinking for models that support it (Gemma 4)
194
+ _budget_env = os.environ.get("DRYDOCK_THINKING_BUDGET_TOKENS")
194
195
  if thinking and thinking not in ("off", ""):
195
196
  payload["chat_template_kwargs"] = {"enable_thinking": True}
196
197
  # Cap thinking length (llama.cpp). Prevents runaway thinking stalls
197
198
  # on hard HLE questions (model can think >480s without this).
198
199
  # Set DRYDOCK_THINKING_BUDGET_TOKENS=8000 in HLE batch launches.
199
- _budget = os.environ.get("DRYDOCK_THINKING_BUDGET_TOKENS")
200
- if _budget:
200
+ if _budget_env:
201
201
  try:
202
- payload["thinking_budget_tokens"] = int(_budget)
202
+ # llama.cpp requires thinking_budget inside chat_template_kwargs,
203
+ # not as a top-level field (top-level is silently ignored → INT32_MAX).
204
+ payload["chat_template_kwargs"]["thinking_budget"] = int(_budget_env)
203
205
  except ValueError:
204
206
  pass
207
+ elif _budget_env:
208
+ # llama.cpp activates reasoning with budget=INT32_MAX by default even
209
+ # when thinking="off". Always cap it when the env var is set so that
210
+ # "off"-mode requests don't stall for 480s on hard questions.
211
+ try:
212
+ payload.setdefault("chat_template_kwargs", {})["thinking_budget"] = int(_budget_env)
213
+ except ValueError:
214
+ pass
205
215
 
206
216
  if enable_streaming:
207
217
  payload["stream"] = True
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "drydock-cli"
3
- version = "2.8.37"
3
+ version = "2.8.38"
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"
@@ -200,6 +200,8 @@ run_loop() {
200
200
  DRYDOCK_STOP_NOW_WARN_AT=12 \
201
201
  DRYDOCK_STOP_NOW_TIME_SEC=240 \
202
202
  DRYDOCK_THINKING_BUDGET_TOKENS=8000 \
203
+ DRYDOCK_TOOL_STOP_AFTER=3 \
204
+ DRYDOCK_STOP_NOW_SUFFIX="End your response with 'FINAL ANSWER: <your answer>' on its own line." \
203
205
  PYTHONUNBUFFERED=1 \
204
206
  nohup "$PY" -u "$DRYDOCK/scripts/hle_eval.py" \
205
207
  --source hle --limit "$LIMIT" --shuffle --seed "$SEED" \
@@ -210,6 +212,8 @@ run_loop() {
210
212
  DRYDOCK_STOP_NOW_WARN_AT=12 \
211
213
  DRYDOCK_STOP_NOW_TIME_SEC=240 \
212
214
  DRYDOCK_THINKING_BUDGET_TOKENS=8000 \
215
+ DRYDOCK_TOOL_STOP_AFTER=3 \
216
+ DRYDOCK_STOP_NOW_SUFFIX="End your response with 'FINAL ANSWER: <your answer>' on its own line." \
213
217
  PYTHONUNBUFFERED=1 \
214
218
  nohup "$PY" -u "$DRYDOCK/scripts/hle_eval.py" \
215
219
  --source hle --limit "$LIMIT" --shuffle --seed "$SEED" \
@@ -227,6 +227,51 @@ class TestWriteFileDedup:
227
227
  assert old != new # Different = allow write
228
228
 
229
229
 
230
+ class TestIssue20_500ErrorRecovery:
231
+ """#20: 500 Internal Server Error from llama.cpp backend triggers no-op
232
+ error path instead of context compaction, making recovery impossible."""
233
+
234
+ def test_500_error_matches_compaction_path(self):
235
+ """The condition that routes errors to aggressive compaction should
236
+ match 500 Internal Server Error strings from llama.cpp backends."""
237
+ # Reproduce the predicate extracted from agent_loop.py
238
+ error_str = "API error from local (model: navygpt): LLM backend error [local]\nstatus: 500 Internal Server Error reason: Internal Server Error"
239
+ cond = (
240
+ "context length" in error_str.lower()
241
+ or "maximum context" in error_str.lower()
242
+ or "400 bad request" in error_str.lower()
243
+ or "status: 400" in error_str.lower()
244
+ or "exceeds the available context" in error_str.lower()
245
+ or "error code: 400" in error_str.lower()
246
+ or "500 internal server error" in error_str.lower()
247
+ or "status: 500" in error_str.lower()
248
+ or "llm backend error" in error_str.lower()
249
+ )
250
+ assert cond, "500 error should trigger compaction path"
251
+
252
+ def test_generic_500_matches(self):
253
+ """Plain '500 Internal Server Error' string should also match."""
254
+ error_str = "status: 500 Internal Server Error"
255
+ cond = (
256
+ "500 internal server error" in error_str.lower()
257
+ or "status: 500" in error_str.lower()
258
+ )
259
+ assert cond
260
+
261
+ def test_non_500_error_does_not_match(self):
262
+ """Unrelated errors (e.g. timeout) should NOT match."""
263
+ error_str = "Connection timed out after 30s"
264
+ cond = (
265
+ "context length" in error_str.lower()
266
+ or "400 bad request" in error_str.lower()
267
+ or "status: 400" in error_str.lower()
268
+ or "500 internal server error" in error_str.lower()
269
+ or "status: 500" in error_str.lower()
270
+ or "llm backend error" in error_str.lower()
271
+ )
272
+ assert not cond
273
+
274
+
230
275
  class TestEscapeCharacters:
231
276
  """#70: Invalid escape characters causing API errors."""
232
277
 
@@ -1,5 +1,86 @@
1
1
  # Drydock Trip Log
2
2
 
3
+ ## 2026-05-15 16:30 UTC tick
4
+ - Stress: paused (.pause_stress sentinel active)
5
+ - HLE: 38/418 = 9.1% lifetime (35 runs); Math 11.4%, Bio/Med 16.7%, CS/AI 3.2%, Chem 0.0%; burndown daemon alive (43:51 elapsed)
6
+ - vLLM 400s: 0; llamacpp-gemma4 healthy (Q3_K_M on :8000); balancer :8001 up
7
+ - GH issues: 1 open (#21 — user on RedHat8/navygpt reports 500 JSON-parse error when write_file content exceeds max_tokens; also notes temperature 0.02 vs 1 in config.toml — not reproduced locally)
8
+ - Dispatch queue: harness=19 (all thinking_stall, addressed by bc99b6b), retrieval=0 actionable, curiosity=611 signals / top hle_failure items = empty-prediction failures (no FINAL ANSWER output)
9
+ - retrieval-drain: 0 ingestions (all recently consumed)
10
+ - curiosity-drain: no action — top 3 hle_failure items have empty predictions traceable to thinking stall / FINAL ANSWER format; root cause already addressed
11
+ - Action this tick: committed a338858 fix(recovery): detect JSON-truncation 500 (closes #21) — when llama.cpp returns HTTP 500 with 'missing closing quote' or 'parse error at column N', now injects targeted message telling model to split write_file into ≤50-line chunks instead of the generic 'malformed arguments' message
12
+
13
+ ## 2026-05-15 16:00 UTC tick
14
+ - Stress: paused (.pause_stress sentinel active)
15
+ - HLE: 38/414 = 9.2% lifetime (35 runs); Math 11.4%, Bio/Med 16.7%, CS/AI 3.2%, Chem 0.0%; burndown daemon PID 1938107 alive (14h elapsed)
16
+ - vLLM 400s: 0 in last 30min; llamacpp-gemma4 healthy (Q3_K_M); balancer :8001 up (pid 380535, llm_balancer.py confirmed)
17
+ - GH issues: 1 open (#21 — user on RedHat8/navygpt reports 500 JSON-parse error + temperature 0.02 instead of 1 from config.toml; JSON-parse 500 is covered by c174552 compaction routing; temperature 0.02 bug not reproduced locally — no code path produces 0.02, may be misread of 0.2 default or extra_params temperature collision; no fix this tick, needs repro)
18
+ - Dispatch queue: harness=18 (all thinking_stall, latest 12:10 UTC, addressed by bc99b6b), retrieval=0 actionable, curiosity=1458 pending (230 hle_failure, 1228 unknown_term)
19
+ - retrieval-drain: 0 ingestions (3 entries all recently consumed)
20
+ - curiosity-drain: 1458 pending, no action this tick — top hle_failure items are empty-prediction failures traceable to thinking stalls + missing FINAL ANSWER format; root causes addressed by bc99b6b + f8f4f06; autonomous_review cron just started at 16:00:01 UTC
21
+ - Action this tick: no fix committed — all queued patterns addressed by today's earlier commits; system healthy
22
+
23
+ ## 2026-05-15 15:30 UTC tick
24
+ - Stress: paused (.pause_stress sentinel active)
25
+ - HLE: 37/408 = 9.1% lifetime (34 runs); Math 11.4%, Bio/Med 16.7%, CS/AI 3.2%, Chem 0.0%, Eng 4.3%; burndown daemon PID 1926757 alive (slot 14, category=other)
26
+ - vLLM 400s: 0; llamacpp-gemma4 healthy (Q3_K_M); balancer :8001 up
27
+ - GH issues: 0 open (closed #20 this tick — already fixed in c174552, shipping in next auto-release; added close comment)
28
+ - Dispatch queue: harness=19 (all thinking_stall, no new fires since 39ddef9), retrieval=0 actionable, curiosity=1436 pending (226 hle_failure, 1210 unknown_term)
29
+ - retrieval-drain: 0 ingestions (all recently consumed)
30
+ - curiosity-drain: 1436 pending, no action this tick — top items are empty-prediction failures; root cause traced to same thinking_budget gap below
31
+ - Action this tick: committed fix bc99b6b (addresses pattern harness:thinking_stall) — docker logs showed budget=2147483647 on ~80% of requests even after 39ddef9, because the budget cap was only applied when thinking != "off"; llama.cpp activates reasoning with INT32_MAX by default on ALL requests; fix: always include thinking_budget in chat_template_kwargs when DRYDOCK_THINKING_BUDGET_TOKENS is set, regardless of thinking mode.
32
+
33
+ ## 2026-05-15 15:00 UTC tick
34
+ - Stress: paused (.pause_stress sentinel active)
35
+ - HLE: 36/403 = 8.9% lifetime (34 runs); Math 11.4%, Bio/Med 16.7%, CS/AI 3.2%, Chem 0.0%, Eng 4.3%; burndown daemon PID 1926757 alive (slot 14, category=other, batch in progress)
36
+ - vLLM 400s: 0; llamacpp-gemma4 healthy (Q3_K_M, budget=8000 confirmed in docker logs); balancer :8001 up
37
+ - GH issues: 1 open (#20 — already fixed in c174552, ships at next auto-release tick)
38
+ - Dispatch queue: harness=19 in 24h (all harness:thinking_stall, last fire 12:10 UTC documenting the 39ddef9 fix, no new fires post-fix); retrieval=0 actionable; curiosity=1409 pending (222 hle_failure, 1187 unknown_term)
39
+ - retrieval-drain: 0 ingestions (3 entries, all recently consumed)
40
+ - curiosity-drain: 1409 pending, no action this tick — top items are empty-prediction failures on extremely hard questions (MIT Mystery Hunt, Go puzzles); thinking budget IS working per docker logs (budget=8000, forced-end on exhaust), these are model-capability failures on questions above the model's ceiling
41
+ - Action this tick: no fix committed — thinking_budget fix (39ddef9) confirmed operational; thinking_stall dispatch pattern has no new fires since fix shipped; system healthy
42
+
43
+ ## 2026-05-15 14:30 UTC tick
44
+ - Stress: paused (.pause_stress sentinel active)
45
+ - HLE: 35/397 = 8.8% lifetime (33 runs); Math 11.4%, Bio/Med 16.7%, CS/AI 3.2%, Chem 0.0%, Eng 4.3%; burndown daemon PID 1917195 alive (category=other, 40+ min elapsed — stalling on 9-msg sessions)
46
+ - vLLM 400s: 0; llamacpp-gemma4 healthy (Q3_K_M); balancer :8001 up
47
+ - GH issues: 1 open (#20 "API error with tool call" — already fixed in c174552, pending next auto-release)
48
+ - Dispatch queue: harness=20 in 24h (all thinking_stall, addressed by 39ddef9), retrieval=0 actionable, curiosity=1380 pending (217 hle_failure, 1163 unknown_term)
49
+ - retrieval-drain: 0 ingestions (3 entries, all recently consumed)
50
+ - curiosity-drain: 1380 pending, no action this tick (top items are pre-fix no_final_answer failures, will clear naturally)
51
+ - Action this tick: committed fix f8f4f06 — hle_burndown.sh was missing DRYDOCK_TOOL_STOP_AFTER=3 and DRYDOCK_STOP_NOW_SUFFIX that hle_babysitter.sh had; burndown batches were spinning 9+ tool turns into 480s timeouts instead of capping at 3 tool calls
52
+
53
+ ## 2026-05-15 13:30 UTC tick
54
+ - Stress: paused (.pause_stress sentinel active)
55
+ - HLE: 34/387 = 8.8% lifetime (32 runs); Math 11.4%, Bio/Med 16.7%, CS/AI 3.4%, Chem 0.0%, Eng 4.3%; burndown daemon PID 1905338 alive (slot=12 Computer Science/AI batch, ~47min elapsed, still running)
56
+ - vLLM 400s: 5 (minor); llamacpp-gemma4 healthy (Q3_K_M confirmed, budget=8000 in docker logs — 39ddef9 fix verified working); balancer :8001 up (PID 380535)
57
+ - GH issues: 0 open
58
+ - Dispatch queue: harness=21 in 24h (all thinking_stall, addressed by 39ddef9), retrieval=0 actionable, curiosity=1349 pending (135 hle_failure, 1140 unknown_term in 24h); dispatch report 578 signals in 24h window
59
+ - retrieval-drain: 0 ingestions (3 entries, all recently consumed)
60
+ - curiosity-drain: consumed item 4bd8d88fca523801 (Math empty prediction 3.9942, root cause = thinking budget unlimited; addressed by 39ddef9 chat_template_kwargs fix; total consumed: 305)
61
+ - Action this tick: no code changes needed; 39ddef9 thinking_budget fix is current work; current batch (slot=12) predates fix and still shows 480s stalls, next batch will benefit
62
+
63
+ ## 2026-05-15 13:00 UTC tick
64
+ - Stress: paused (.pause_stress sentinel active)
65
+ - HLE: 34/384 = 8.9% lifetime (32 runs); Math 11.4%, Bio/Med 16.7%, CS/AI 3.6%, Chem 0.0%, Physics 0.0%; burndown daemon PID 1905338 alive (slot=12, Computer Science batch in progress); 135/197 failures are method=empty (thinking stalls)
66
+ - vLLM 400s: 0; llamacpp-gemma4 healthy (Q3_K_M confirmed); balancer :8001 up; thinking budget CONFIRMED working — docker logs show "reasoning-budget: activated, budget=8000 tokens" (was INT32_MAX before 39ddef9)
67
+ - GH issues: 0 open
68
+ - Dispatch queue: harness=1289 total (22 in 24h window, all thinking_stall — ADDRESSED by 39ddef9), retrieval=3 (0 actionable), curiosity=1636 total (135 hle_failure:no_final_answer, 419 unknown_term in 24h window)
69
+ - retrieval-drain: 0 new ingestions (3 entries all already consumed recently)
70
+ - curiosity-drain: consumed item 1b7d0cc4aaf08f52 (Math blank prediction 6*sqrt(2); root cause = thinking stall, addressed by 39ddef9 chat_template_kwargs fix; total consumed: 304)
71
+ - Action this tick: no new commit — 39ddef9 thinking_budget fix confirmed live in source tree (miniconda3 Python uses source dev path); current batch slot=12 uses fixed code; next auto-release at ~17:00 UTC will ship fix to PyPI as v2.8.38; system healthy
72
+
73
+ ## 2026-05-15 12:30 UTC tick
74
+ - Stress: paused (.pause_stress sentinel)
75
+ - Write rate: N/A (stress paused)
76
+ - HLE: 33/378 = 8.7% lifetime (31 runs); burndown daemon alive (PID 1896475, ~34 min, running Computer Science/AI batch)
77
+ - vLLM 400s: 0 errors; llamacpp-gemma4 healthy (Q3_K_M, model_path confirmed)
78
+ - GH issues: 0 open
79
+ - Dispatch queue: harness=22 (thinking_stall, root cause fixed by 39ddef9 this tick), retrieval=0 actionable, curiosity=1297 pending (1093 unknown_term, 204 hle_failure)
80
+ - retrieval-drain: 0 new ingestions (all 3 entries already ingested)
81
+ - curiosity-drain: consumed item 8d95bf4cc3fc45d3 (Math blank prediction pi/2-1/4; root cause = thinking stall, fixed by 39ddef9)
82
+ - Action this tick: no new commit — 39ddef9 (thinking_budget into chat_template_kwargs for llama.cpp) already committed and live in source tree; current burndown batch is pre-fix but next batch will use correct 4000-token budget cap; system healthy, no new actionable patterns
83
+
3
84
  ## 2026-05-15 11:30 UTC tick
4
85
  - Stress: alive PID 1878801, 55m elapsed (restarted this cycle)
5
86
  - HLE lifetime: 33/371 = 8.9% (Math 11.4%, CS/AI 2.3%, Chem 0.0%, Bio/Med 16.7%, Eng 4.3%); latest batch 2/10 = 20% Biology/Medicine; burndown daemon PID 1742185 alive
@@ -6399,3 +6480,22 @@ restarted, cron self-match bug fixed in this same session).
6399
6480
  - HLE: 22/331 = 6.6% lifetime (27 runs); burndown daemon alive (PID 1838832, 6h+ elapsed, running Math batch)
6400
6481
  - Dispatch queue: harness=16 (thinking_stall, all self-referential false positives already addressed), retrieval=0 actionable, curiosity=1154 pending (972 unknown_term, 182 hle_failure)
6401
6482
  - Action this tick: consumed curiosity item bd848692c98c1362 (Math blank-prediction thinking stall, already addressed by v2.8.32 4000-token cap); retrieval drain 0 actionable; no code changes needed — system healthy
6483
+
6484
+ ## 2026-05-15 12:00 UTC tick
6485
+ - Stress: paused (.pause_stress sentinel)
6486
+ - Write rate: N/A (stress paused)
6487
+ - HLE: 33/372 = 8.9% lifetime (31 runs); burndown daemon alive (PID 1896475, ~4h elapsed)
6488
+ - vLLM 400s: 0 critical; llamacpp-gemma4 shows "unhealthy" Docker health status (healthcheck hitting wrong port 8080 vs actual 8000) — API responds normally, false alarm
6489
+ - GH issues: 0 open
6490
+ - Dispatch queue: harness=21 (thinking_stall), retrieval=0 actionable, curiosity=1263 pending (1063 unknown_term, 200 hle_failure)
6491
+ - Action this tick: fixed real bug — thinking_budget_tokens was being sent as a top-level payload field which llama.cpp silently ignores (logs showed budget=2147483647=INT32_MAX on every HLE call). Correct path is chat_template_kwargs.thinking_budget — verified empirically. This was causing all 480s+ thinking stalls despite DRYDOCK_THINKING_BUDGET_TOKENS=4000/8000 being set. Committed 39ddef9; addresses pattern harness:thinking_stall. Consumed curiosity item 7e62485e82c6849c (top hle_failure blank-prediction, root cause same). Retrieval drain: 0 actionable.
6492
+
6493
+ ## 2026-05-15 14:00 UTC tick
6494
+ - Stress: paused (.pause_stress sentinel active)
6495
+ - HLE: 35/393 = 8.9% lifetime (33 runs); Math 11.4%, Bio/Med 16.7%, CS/AI 3.2%, Chem 0.0%, Eng 4.3%; burndown daemon PID 1917195 alive (running "other" category batch, ~9m elapsed)
6496
+ - vLLM 400s: n/a (llamacpp); balancer :8001 up; model Q3_K_M confirmed
6497
+ - GH issues: 1 new (issue #20 filed 13:56 UTC — user on Red Hat 8 / navygpt hitting "Stopping: 15+ API errors" after search_replace "file path required" error)
6498
+ - Dispatch queue: harness=21 (all thinking_stall, addressed by 39ddef9), retrieval=0 actionable, curiosity=1365 pending (1152 unknown_term, 213 hle_failure)
6499
+ - retrieval-drain: 0 ingestions (3 entries, all recently consumed)
6500
+ - curiosity-drain: no action — top 3 are empty-predicted hle_failure items (symptoms of thinking_stall fixed by 39ddef9, not a separate issue)
6501
+ - Action this tick: fixed issue #20 — commit c174552. Root cause: llama.cpp backends return HTTP 500 (not 400) for context overflow; the error handler only applied aggressive compaction+truncation for 400 errors. 500s hit the fallback path that injected an error note WITHOUT truncating context, making each retry larger and recovery impossible. Fix: route "500 Internal Server Error", "status: 500", "LLM backend error" through the same compaction path as 400 errors. 3 regression tests added. Issue commented with fix details.
@@ -326,7 +326,7 @@ wheels = [
326
326
 
327
327
  [[package]]
328
328
  name = "drydock-cli"
329
- version = "2.8.34"
329
+ version = "2.8.37"
330
330
  source = { editable = "." }
331
331
  dependencies = [
332
332
  { name = "agent-client-protocol" },
@@ -1 +0,0 @@
1
- 1897081
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
File without changes
File without changes