drydock-cli 2.8.4__tar.gz → 2.8.6__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 (1022) hide show
  1. drydock_cli-2.8.6/.auto_release.lock +1 -0
  2. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/PKG-INFO +1 -1
  3. drydock_cli-2.8.6/drydock/__main__.py +17 -0
  4. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/cli.py +60 -38
  5. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/agent_loop.py +96 -11
  6. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/config/_settings.py +29 -1
  7. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/config/local_detect.py +3 -1
  8. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/config/migrate.py +16 -5
  9. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/pyproject.toml +1 -1
  10. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/llm_balancer.py +8 -1
  11. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_loop_detection.py +55 -0
  12. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/trip_log.md +355 -0
  13. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/uv.lock +1 -1
  14. drydock_cli-2.8.4/.auto_release.lock +0 -1
  15. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/config.json +0 -7
  16. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/results.jsonl +0 -200
  17. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/summary.json +0 -48
  18. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66e89811ca68059533a83566/AGENTS.md +0 -19
  19. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66e89ebe7361982cbfbc5952/AGENTS.md +0 -19
  20. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66e8b0a9e5eaa390aa9fdde5/AGENTS.md +0 -19
  21. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66e8ccc4089d1e34c84c76c0/AGENTS.md +0 -19
  22. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66e8d4d65699cf35c9a1527c/AGENTS.md +0 -19
  23. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66e9249c953867e04c273db7/AGENTS.md +0 -19
  24. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66ea40e5b44d5e443ba2eac5/AGENTS.md +0 -19
  25. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66eafb96b082c5e6a76a49c0/AGENTS.md +0 -19
  26. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66ec5671713826aca26a9dba/AGENTS.md +0 -19
  27. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66ec5e266f83e1764787e118/AGENTS.md +0 -19
  28. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66ed5e6a1d24f687ee9b06d1/AGENTS.md +0 -19
  29. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66ed97d1c2becb9452e4d7b4/AGENTS.md +0 -19
  30. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66edc60801af2a724035ad4b/AGENTS.md +0 -19
  31. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66edd3dc1ee489494038d9eb/AGENTS.md +0 -19
  32. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66ee158c5db68805b7d3d27b/AGENTS.md +0 -19
  33. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66ee8c598124ad52c77de7ee/AGENTS.md +0 -19
  34. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66eee253ae4c04f9d17d9420/AGENTS.md +0 -19
  35. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66f052e814be84cc1edd3fbd/AGENTS.md +0 -19
  36. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66f0bc36c6a29a8fa8010813/AGENTS.md +0 -19
  37. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66f1ce25cd6a2b9d36fe8ea2/AGENTS.md +0 -19
  38. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66f358d4cdd3ce36208e23ca/AGENTS.md +0 -19
  39. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66f454d18ab578bcbb18387c/AGENTS.md +0 -19
  40. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66f472d2e4b80835fd2a01bb/AGENTS.md +0 -19
  41. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66f47471bba0ce38e1ca559f/AGENTS.md +0 -19
  42. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66f579027a2ac7b4fffe1740/AGENTS.md +0 -19
  43. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66f5c96b4ae309d465eeca47/AGENTS.md +0 -19
  44. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66f5c96b4ae309d465eeca47/solution.py +0 -726
  45. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66f6f048b40ada5ac3b91cf8/AGENTS.md +0 -19
  46. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66f6f048b40ada5ac3b91cf8/solution.py +0 -111
  47. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66f7292f3f4622b6ce24b961/AGENTS.md +0 -19
  48. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66f83aed0d92e99048a4ae9d/AGENTS.md +0 -19
  49. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66faccfb44cb2f3b0e1be0ff/AGENTS.md +0 -19
  50. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66fc1a0ea7be4edbe85cf15c/AGENTS.md +0 -19
  51. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66fc2b7dbdebe91c66389e50/AGENTS.md +0 -19
  52. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66fc2b7dbdebe91c66389e50/solution.py +0 -15
  53. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66fc2df0b72463921f6c40f2/AGENTS.md +0 -19
  54. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66fc35ef3d06493836155397/AGENTS.md +0 -19
  55. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66fc4dc04293a9638d7e0f65/AGENTS.md +0 -19
  56. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66fc56f5d90ebe461bfd0c9c/AGENTS.md +0 -19
  57. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66fc633698a7264ef58309c0/AGENTS.md +0 -19
  58. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66fdb31a57cea4445778e8ab/AGENTS.md +0 -19
  59. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66feaec49c469dbc1c0c4ed2/AGENTS.md +0 -19
  60. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66feaec49c469dbc1c0c4ed2/solution.py +0 -58
  61. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66fec5fbe0072219a732f0e2/AGENTS.md +0 -19
  62. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66fec5fbe0072219a732f0e2/simulation.py +0 -72
  63. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/66fec5fbe0072219a732f0e2/solution.py +0 -131
  64. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/670013827794cc36bc974f27/AGENTS.md +0 -19
  65. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/67008f2afc2c0a4040f1d353/AGENTS.md +0 -19
  66. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/670097e2d8f693f97c36c13f/AGENTS.md +0 -19
  67. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6700a5f67899925724a8fa81/AGENTS.md +0 -19
  68. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6700ab4bfa64315ed5204e4d/AGENTS.md +0 -19
  69. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6701d2675f6691877f264511/AGENTS.md +0 -19
  70. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6704465caf0a436d92c65160/AGENTS.md +0 -19
  71. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/67055b15222ba55ab0b88431/AGENTS.md +0 -19
  72. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6706033749b90b396d2cb207/AGENTS.md +0 -19
  73. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6706033749b90b396d2cb207/solution.py +0 -50
  74. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6706295df10a8c2ca9a9c288/AGENTS.md +0 -19
  75. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/67073a60c033e34a5d675f2e/AGENTS.md +0 -19
  76. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6707b9264ea1e7c28b6169bc/AGENTS.md +0 -19
  77. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6708c1dc2f33698babc6479d/AGENTS.md +0 -19
  78. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/670a7e542e97a7e436a3d951/AGENTS.md +0 -19
  79. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/670d5ce6d57c80b4d4090cb4/AGENTS.md +0 -19
  80. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/670daa682c5d078fa33fba12/AGENTS.md +0 -19
  81. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/670e9d6f5c8f745d79e8d8d1/AGENTS.md +0 -19
  82. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/670fe86a7e294dc6ad20c1ba/AGENTS.md +0 -19
  83. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6710251d73c9583c25138ff0/AGENTS.md +0 -19
  84. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/67136bf495e840a8db703aee/AGENTS.md +0 -19
  85. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/67152ee0953411f24cd994f0/AGENTS.md +0 -19
  86. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/671659f129c718f03e48a198/AGENTS.md +0 -19
  87. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6716dc349a0dd17680df31df/AGENTS.md +0 -19
  88. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6716dc349a0dd17680df31df/solution.py +0 -406
  89. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/67171c0c49297038d6740a23/AGENTS.md +0 -19
  90. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/67171dca583e0959a2a84f91/AGENTS.md +0 -19
  91. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/67171dca583e0959a2a84f91/solve.py +0 -78
  92. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6717207a3d6d949464d26a15/AGENTS.md +0 -19
  93. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/67172e73e42c7644e4f00e1f/AGENTS.md +0 -19
  94. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/67172e73e42c7644e4f00e1f/solution.py +0 -12
  95. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/67178b22b7f6dd9be2a4dd68/AGENTS.md +0 -19
  96. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6717a3b32bfc3643c75ac338/AGENTS.md +0 -19
  97. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6717aef5a5c8a6a9392b1b39/AGENTS.md +0 -19
  98. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6717cfeee8995e9e60504f33/AGENTS.md +0 -19
  99. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/671802a3e2dff1f07a1b0508/AGENTS.md +0 -19
  100. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/671802a3e2dff1f07a1b0508/solution.py +0 -32
  101. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/67184f90f86f5a009aa2ad5f/AGENTS.md +0 -19
  102. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6718577ca88093a75026b186/AGENTS.md +0 -19
  103. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/671adbf8439b8a0eaec180d3/AGENTS.md +0 -19
  104. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/671bbb559a1f658e2a088aa8/AGENTS.md +0 -19
  105. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/671bc0c855449c636f4bbd36/AGENTS.md +0 -19
  106. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/671bdc0d90d834b821acb8b1/AGENTS.md +0 -19
  107. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/671c6d6392388142386728ee/AGENTS.md +0 -19
  108. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/671d16bf60ad0fe6d2494177/AGENTS.md +0 -19
  109. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/671d16bf60ad0fe6d2494177/solution.py +0 -44
  110. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/671ee72aec85f81abd7a2f92/AGENTS.md +0 -19
  111. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/671eeb53c1a668a6c81e5993/AGENTS.md +0 -19
  112. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/671f07b1d0f22fd6e50482e7/AGENTS.md +0 -19
  113. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/671f0c2578ab3005e439aeba/AGENTS.md +0 -19
  114. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/671f1f0bb0b665acec70c3aa/AGENTS.md +0 -19
  115. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/671f887676b11ce91b2887ce/AGENTS.md +0 -19
  116. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/671f887676b11ce91b2887ce/solution.py +0 -111
  117. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/672068b61177432c7e500289/AGENTS.md +0 -19
  118. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6720c7d9831d6450ba886ff0/AGENTS.md +0 -19
  119. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6720e184a9e1d1cc990cc8e9/AGENTS.md +0 -19
  120. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/67210bd65968ddcc0df3a248/AGENTS.md +0 -19
  121. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/67213cb9043b1e724244a1c6/AGENTS.md +0 -19
  122. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/67213cb9043b1e724244a1c6/reasoning.txt +0 -29
  123. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/67214969c04654cf47135a4e/AGENTS.md +0 -19
  124. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/67218f865b0747ce2231d48c/AGENTS.md +0 -19
  125. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6721ad631648dda151c2a7ec/AGENTS.md +0 -19
  126. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6721c8e11b5a8e4cb0e9079b/AGENTS.md +0 -19
  127. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6722048cdcce66512a82d9e2/AGENTS.md +0 -19
  128. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6722198c0628f6647e3d591e/AGENTS.md +0 -19
  129. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/672235a01e36ca7369b8b157/AGENTS.md +0 -19
  130. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6722870ef7bda9406bc723ac/AGENTS.md +0 -19
  131. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6722889086cf6075e69b96a7/AGENTS.md +0 -19
  132. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6722b2777f84054950978f74/AGENTS.md +0 -19
  133. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6723b207610c8f282a827f3a/AGENTS.md +0 -19
  134. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6723cdf07a517fb44dd35e47/AGENTS.md +0 -19
  135. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6723d9a6271ddeec8bacb9b6/AGENTS.md +0 -19
  136. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/672413536c2345e86ea59fe7/AGENTS.md +0 -19
  137. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/67242f1f911674ab1b5d904b/AGENTS.md +0 -19
  138. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6724cdd55ae9c8186f31f920/AGENTS.md +0 -19
  139. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6724f79792419e4380b5686a/AGENTS.md +0 -19
  140. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/67252b9639b66386e0489e94/AGENTS.md +0 -19
  141. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/67252e6e825d7a6248383174/AGENTS.md +0 -19
  142. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/67253d7aac6dc24f8aafbfc1/AGENTS.md +0 -19
  143. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/67253f2c13c1aec29d1f1849/AGENTS.md +0 -19
  144. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/672546cf046774791d0f1a3a/AGENTS.md +0 -19
  145. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/67256db1afb4a043e613c929/AGENTS.md +0 -19
  146. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/672572ba1b7caf96dfa80324/AGENTS.md +0 -19
  147. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6725b2ba569cf0c62da64cd1/AGENTS.md +0 -19
  148. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6725bb338255543498bdcbec/AGENTS.md +0 -19
  149. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6725dc14097c6790b292765e/AGENTS.md +0 -19
  150. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6725e382086428ce4e2fa8d6/AGENTS.md +0 -19
  151. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/672643a2699c78200b0177e9/AGENTS.md +0 -19
  152. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6726bc54d4553efaee99c558/AGENTS.md +0 -19
  153. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6726e3bf4aeb5af8ca49e254/AGENTS.md +0 -19
  154. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6727dd5c5e987b1e8c17f8d9/AGENTS.md +0 -19
  155. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6728c038c556bb2fdda61dd7/AGENTS.md +0 -19
  156. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/67298280a5f43bd5a3870e14/AGENTS.md +0 -19
  157. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/672a30472091cee6de17ebd1/AGENTS.md +0 -19
  158. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/672aac7a78e0ab15cf86003b/AGENTS.md +0 -19
  159. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/672b2ff4a7b27beaf0e7779a/AGENTS.md +0 -19
  160. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/672c84e4975ce618c77a5c49/AGENTS.md +0 -19
  161. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/672c983d4183d91499fad7c5/AGENTS.md +0 -19
  162. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/672cdf88f01cb175ca130759/AGENTS.md +0 -19
  163. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/672d8366f97c3b404d90f3d3/AGENTS.md +0 -19
  164. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/672dceba64a3350407a69646/AGENTS.md +0 -19
  165. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/672e09b50a85795d0ed2d36e/AGENTS.md +0 -19
  166. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/672f6cfd609b665328565e5c/AGENTS.md +0 -19
  167. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/672f7b5d47d2f4c7ca9ff600/AGENTS.md +0 -19
  168. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/672f7b5d47d2f4c7ca9ff600/solution.py +0 -47
  169. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/672faa45c5a8bce51676ee01/AGENTS.md +0 -19
  170. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/672faa45c5a8bce51676ee01/solution.py +0 -81
  171. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/672fc00e13e5fbd332372f3f/AGENTS.md +0 -19
  172. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/672ff71e724ca22f42c0ff85/AGENTS.md +0 -19
  173. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/67302aea4c42a72918926160/AGENTS.md +0 -19
  174. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/67308f79c5ea548175bbf9fc/AGENTS.md +0 -19
  175. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/67310e19bf74eff110261caa/AGENTS.md +0 -19
  176. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6732761c77e9a02e661946ac/AGENTS.md +0 -19
  177. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6734830d5fc27d3e41519741/AGENTS.md +0 -19
  178. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6734f24a08351f5bdfd38627/AGENTS.md +0 -19
  179. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/67352e9911e5510fc618f619/AGENTS.md +0 -19
  180. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/67361730dba36cc0d595f422/AGENTS.md +0 -19
  181. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6736562a41ab088ba14c2bc3/AGENTS.md +0 -19
  182. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/673668e658bad7ba89d4ad54/AGENTS.md +0 -19
  183. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6736945a5a7f4f59e4731c4d/AGENTS.md +0 -19
  184. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6736a9b0b949d548db8da965/AGENTS.md +0 -19
  185. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6736ccc7b9b2577c622e944c/AGENTS.md +0 -19
  186. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6736ccc7b9b2577c622e944c/solution.py +0 -60
  187. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6736d8d1278519f8b18450a5/AGENTS.md +0 -19
  188. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6736e9109055c436feb3f65a/AGENTS.md +0 -19
  189. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6737006d3f0517b6e8a60733/AGENTS.md +0 -19
  190. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/67370359930c1fd7247f3413/AGENTS.md +0 -19
  191. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/673716bd2773953bca4195d7/AGENTS.md +0 -19
  192. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/673722c82bfc8ab579ed111f/AGENTS.md +0 -19
  193. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6737259f2c11cb057c97911b/AGENTS.md +0 -19
  194. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6737259f2c11cb057c97911b/solution.py +0 -17
  195. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/67373446bb9a786bfe928d2c/AGENTS.md +0 -19
  196. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/673738b81bcb9388d8e3b31a/AGENTS.md +0 -19
  197. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/67378355cf21a88cec0f42e5/AGENTS.md +0 -19
  198. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/67378355cf21a88cec0f42e5/logic.py +0 -80
  199. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/67378355cf21a88cec0f42e5/solution.py +0 -30
  200. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/673784c950c4b58b2154e4ef/AGENTS.md +0 -19
  201. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6738373cf2df805520bc86ce/AGENTS.md +0 -19
  202. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/673852c82e5179091a7648e8/AGENTS.md +0 -19
  203. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6738d6a4475748524584b23c/AGENTS.md +0 -19
  204. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6738d6a4475748524584b23c/analysis.py +0 -58
  205. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6738d6a4475748524584b23c/logic_check.py +0 -30
  206. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6738d6a4475748524584b23c/solution.py +0 -54
  207. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6738df8c201a2bd66499797a/AGENTS.md +0 -19
  208. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/67391de141c297471963efc6/AGENTS.md +0 -19
  209. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6739674739118cf30f5f1075/AGENTS.md +0 -19
  210. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/673971a55c3de09264d6d373/AGENTS.md +0 -19
  211. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6739fe23f1f7144f9a3c9715/AGENTS.md +0 -19
  212. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/673a30e39b3ad7c9386b5da4/AGENTS.md +0 -19
  213. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/673a30e39b3ad7c9386b5da4/solution.py +0 -242
  214. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/673a33fb2d5ce2b6500f4b48/AGENTS.md +0 -19
  215. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/673a33fb2d5ce2b6500f4b48/solution.py +0 -64
  216. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/673a3faaed02a359f6002a78/AGENTS.md +0 -19
  217. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/673a6dd875a0f3c9ce243dba/AGENTS.md +0 -19
  218. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/673a73d1addb9293360a5d07/AGENTS.md +0 -19
  219. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/673a76559e89466aa6433f66/AGENTS.md +0 -19
  220. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/673ac0ef3792ac12ad54f599/AGENTS.md +0 -19
  221. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/673b50769ff1dae6f5b8b65d/AGENTS.md +0 -19
  222. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/673b6aa505be2302d4445ed4/AGENTS.md +0 -19
  223. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/673b6ef1430f8b6e47a67760/AGENTS.md +0 -19
  224. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/673b6ef1430f8b6e47a67760/solution.py +0 -98
  225. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/67428dcab53462ceeb83c6f6/AGENTS.md +0 -19
  226. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/674490c88354817cce712062/AGENTS.md +0 -19
  227. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/674490c88354817cce712062/solution.py +0 -52
  228. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/67458d2109d194da0dfd7cef/AGENTS.md +0 -19
  229. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6747e0eaaa7f6182ef02efb4/AGENTS.md +0 -19
  230. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6747fa2a456927085f863956/AGENTS.md +0 -19
  231. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6748b7dfac494f3a05306206/AGENTS.md +0 -19
  232. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/675704ad2626c93afa0b3a05/AGENTS.md +0 -19
  233. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/675d7b901ded33d59eb2c94f/AGENTS.md +0 -19
  234. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/675e0f20488645c4ed8af30b/AGENTS.md +0 -19
  235. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/67607764fd6487bd2bb7e271/AGENTS.md +0 -19
  236. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6761b89b9d9d4287c0969029/AGENTS.md +0 -19
  237. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/676226f6fbdba9bd68127327/AGENTS.md +0 -19
  238. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/676433a3921b0ce4e14c557f/AGENTS.md +0 -19
  239. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/676433a3921b0ce4e14c557f/solution.py +0 -66
  240. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/676cc5d177aae7d3ee8caaeb/AGENTS.md +0 -19
  241. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/676e9656e3e0846ee73dbf9d/AGENTS.md +0 -19
  242. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/677296942ebbac6133a1d618/AGENTS.md +0 -19
  243. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/677296942ebbac6133a1d618/solution.py +0 -62
  244. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6776ffa855710e45669a4481/AGENTS.md +0 -19
  245. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6778491dcbd83450e1018208/AGENTS.md +0 -19
  246. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/6778491dcbd83450e1018208/solution.py +0 -93
  247. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/67833c10f5a1ca415084accd/AGENTS.md +0 -19
  248. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/67833c10f5a1ca415084accd/mass_calc.py +0 -134
  249. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777855599/work/67833c10f5a1ca415084accd/solution.py +0 -10
  250. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777893928/config.json +0 -7
  251. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777893928/results.jsonl +0 -1
  252. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777893928/summary.json +0 -13
  253. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777893928/work/674490c88354817cce712062/AGENTS.md +0 -19
  254. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777894705/config.json +0 -7
  255. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777894779/config.json +0 -7
  256. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777894779/results.jsonl +0 -1
  257. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777894779/summary.json +0 -13
  258. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777894779/work/66f358d4cdd3ce36208e23ca/AGENTS.md +0 -19
  259. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777894988/config.json +0 -7
  260. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777894988/results.jsonl +0 -1
  261. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777894988/summary.json +0 -13
  262. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777894988/work/66f358d4cdd3ce36208e23ca_iter3/AGENTS.md +0 -19
  263. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777895449/config.json +0 -7
  264. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777895449/results.jsonl +0 -1
  265. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777895449/summary.json +0 -13
  266. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777895449/work/66f358d4cdd3ce36208e23ca/AGENTS.md +0 -19
  267. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777895659/config.json +0 -7
  268. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777895659/results.jsonl +0 -1
  269. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777895659/summary.json +0 -13
  270. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777895659/work/66f358d4cdd3ce36208e23ca/AGENTS.md +0 -19
  271. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777896017/config.json +0 -7
  272. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777896017/results.jsonl +0 -1
  273. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777896017/summary.json +0 -13
  274. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777896017/work/66f358d4cdd3ce36208e23ca/AGENTS.md +0 -19
  275. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777896576/config.json +0 -7
  276. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777896576/results.jsonl +0 -1
  277. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777896576/summary.json +0 -13
  278. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777896576/work/66f358d4cdd3ce36208e23ca/AGENTS.md +0 -19
  279. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777896802/config.json +0 -7
  280. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777896802/results.jsonl +0 -1
  281. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777896802/summary.json +0 -13
  282. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777896802/work/66f358d4cdd3ce36208e23ca/AGENTS.md +0 -19
  283. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777896996/config.json +0 -7
  284. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777896996/results.jsonl +0 -1
  285. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777896996/summary.json +0 -13
  286. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777896996/work/66f358d4cdd3ce36208e23ca/AGENTS.md +0 -19
  287. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777897626/config.json +0 -7
  288. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777897626/work/66f358d4cdd3ce36208e23ca/AGENTS.md +0 -19
  289. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777897976/config.json +0 -7
  290. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777897976/work/66f358d4cdd3ce36208e23ca/AGENTS.md +0 -19
  291. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777898263/config.json +0 -7
  292. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777898263/results.jsonl +0 -1
  293. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777898263/summary.json +0 -13
  294. drydock_cli-2.8.4/hle_results_v1_baseline/run_1777898263/work/66f358d4cdd3ce36208e23ca/AGENTS.md +0 -19
  295. drydock_cli-2.8.4/scripts/comprehensive_loop.py +0 -425
  296. drydock_cli-2.8.4/scripts/discover_cli_tools.sh +0 -69
  297. drydock_cli-2.8.4/scripts/evolve_tests.py +0 -208
  298. drydock_cli-2.8.4/scripts/install.sh +0 -150
  299. drydock_cli-2.8.4/scripts/mega_loop.py +0 -324
  300. drydock_cli-2.8.4/scripts/meta_ralph_loop.py +0 -436
  301. drydock_cli-2.8.4/scripts/monitor_swebench.sh +0 -40
  302. drydock_cli-2.8.4/scripts/oss_task_harness.py +0 -392
  303. drydock_cli-2.8.4/scripts/port_task.py +0 -303
  304. drydock_cli-2.8.4/scripts/prepare_release.py +0 -284
  305. drydock_cli-2.8.4/scripts/session_loop_audit.py +0 -198
  306. drydock_cli-2.8.4/scripts/shakedown_regression.sh +0 -141
  307. drydock_cli-2.8.4/scripts/test_tui_path.py +0 -207
  308. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/.claude/scheduled_tasks.lock +0 -0
  309. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/.github/CODEOWNERS +0 -0
  310. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/.github/DISCUSSION_TEMPLATE/ideas.yml +0 -0
  311. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  312. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  313. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/.github/workflows/build-and-upload.yml +0 -0
  314. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/.github/workflows/ci.yml +0 -0
  315. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/.github/workflows/issue-labeler.yml +0 -0
  316. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/.github/workflows/release.yml +0 -0
  317. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/.gitignore +0 -0
  318. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/.pre-commit-config.yaml +0 -0
  319. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/.python-version +0 -0
  320. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/.typos.toml +0 -0
  321. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/.vscode/extensions.json +0 -0
  322. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/.vscode/launch.json +0 -0
  323. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/.vscode/settings.json +0 -0
  324. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/AGENTS.md +0 -0
  325. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/Admiral.md +0 -0
  326. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/CHANGELOG.md +0 -0
  327. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/CLAUDE.md +0 -0
  328. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/CONTRIBUTING.md +0 -0
  329. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/DEPLOYMENT.md +0 -0
  330. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/HLE_PRD.md +0 -0
  331. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/JETSON_BENCH.md +0 -0
  332. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/LICENSE +0 -0
  333. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/MODEL_SHORTCOMINGS.md +0 -0
  334. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/NOTICE +0 -0
  335. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/README.md +0 -0
  336. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/SOVEREIGN_PRD.md +0 -0
  337. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/TRIAGE_v1.md +0 -0
  338. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/action.yml +0 -0
  339. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/baseline_history/README.md +0 -0
  340. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/baseline_history/results1.tsv +0 -0
  341. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/baseline_history/results13.tsv +0 -0
  342. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/baseline_history/results14.tsv +0 -0
  343. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/baseline_history/results15.tsv +0 -0
  344. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/baseline_history/results16.tsv +0 -0
  345. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/baseline_history/results17.tsv +0 -0
  346. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/baseline_history/results18.tsv +0 -0
  347. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/baseline_history/results19.tsv +0 -0
  348. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/baseline_history/results2.tsv +0 -0
  349. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/baseline_history/results20.tsv +0 -0
  350. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/baseline_history/results3.tsv +0 -0
  351. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/baseline_history/results4.tsv +0 -0
  352. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/baseline_history/results5.tsv +0 -0
  353. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/baseline_history/results6.tsv +0 -0
  354. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/baseline_history/results7.tsv +0 -0
  355. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/baseline_history/results8.tsv +0 -0
  356. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/baseline_history/results9.tsv +0 -0
  357. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/baseline_history/results_evolved_v1.tsv +0 -0
  358. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/distribution/zed/LICENSE +0 -0
  359. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/distribution/zed/extension.toml +0 -0
  360. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/distribution/zed/icons/mistral_vibe.svg +0 -0
  361. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/docs/README.md +0 -0
  362. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/docs/acp-setup.md +0 -0
  363. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/docs/archive/BASELINE_412.md +0 -0
  364. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/docs/archive/Drydock_rebrand.md +0 -0
  365. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/docs/archive/OVERNIGHT_PROGRESS.md +0 -0
  366. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/docs/archive/OVERNIGHT_REPORT_2026_04_13.md +0 -0
  367. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/docs/archive/PERF_SWEEP_PLAN.md +0 -0
  368. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/docs/archive/PRD.md +0 -0
  369. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/docs/archive/drydock_terms.md +0 -0
  370. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/docs/archive/resume.md +0 -0
  371. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/docs/proxy-setup.md +0 -0
  372. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/__init__.py +0 -0
  373. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/acp/__init__.py +0 -0
  374. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/acp/acp_agent_loop.py +0 -0
  375. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/acp/acp_logger.py +0 -0
  376. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/acp/entrypoint.py +0 -0
  377. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/acp/tools/__init__.py +0 -0
  378. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/acp/tools/base.py +0 -0
  379. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/acp/tools/builtins/bash.py +0 -0
  380. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/acp/tools/builtins/read_file.py +0 -0
  381. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/acp/tools/builtins/search_replace.py +0 -0
  382. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/acp/tools/builtins/todo.py +0 -0
  383. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/acp/tools/builtins/write_file.py +0 -0
  384. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/acp/tools/session_update.py +0 -0
  385. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/acp/utils.py +0 -0
  386. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/admiral/__init__.py +0 -0
  387. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/admiral/detectors.py +0 -0
  388. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/admiral/detectors_proposed.py +0 -0
  389. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/admiral/history.py +0 -0
  390. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/admiral/interventions.py +0 -0
  391. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/admiral/llm_analyzer.py +0 -0
  392. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/admiral/metrics.py +0 -0
  393. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/admiral/opus_escalator.py +0 -0
  394. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/admiral/persistence.py +0 -0
  395. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/admiral/policy.py +0 -0
  396. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/admiral/proposer.py +0 -0
  397. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/admiral/stager.py +0 -0
  398. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/admiral/task_classifier.py +0 -0
  399. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/admiral/tuning.py +0 -0
  400. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/admiral/validator.py +0 -0
  401. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/admiral/worker.py +0 -0
  402. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/__init__.py +0 -0
  403. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/autocompletion/__init__.py +0 -0
  404. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/autocompletion/base.py +0 -0
  405. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/autocompletion/path_completion.py +0 -0
  406. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/autocompletion/slash_command.py +0 -0
  407. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/clipboard.py +0 -0
  408. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/commands.py +0 -0
  409. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/entrypoint.py +0 -0
  410. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/fix_windows_path.py +0 -0
  411. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/history_manager.py +0 -0
  412. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/plan_offer/adapters/http_whoami_gateway.py +0 -0
  413. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/plan_offer/decide_plan_offer.py +0 -0
  414. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/plan_offer/ports/whoami_gateway.py +0 -0
  415. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/terminal_setup.py +0 -0
  416. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/__init__.py +0 -0
  417. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/ansi_markdown.py +0 -0
  418. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/app.py +0 -0
  419. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/app.tcss +0 -0
  420. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/external_editor.py +0 -0
  421. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/handlers/__init__.py +0 -0
  422. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/handlers/event_handler.py +0 -0
  423. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/notifications/__init__.py +0 -0
  424. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/notifications/adapters/__init__.py +0 -0
  425. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/notifications/adapters/textual_notification_adapter.py +0 -0
  426. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/notifications/ports/__init__.py +0 -0
  427. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/notifications/ports/notification_port.py +0 -0
  428. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/widgets/__init__.py +0 -0
  429. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/widgets/approval_app.py +0 -0
  430. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/widgets/banner/banner.py +0 -0
  431. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/widgets/banner/petit_chat.py +0 -0
  432. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/widgets/braille_renderer.py +0 -0
  433. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/widgets/chat_input/__init__.py +0 -0
  434. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/widgets/chat_input/body.py +0 -0
  435. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/widgets/chat_input/completion_manager.py +0 -0
  436. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/widgets/chat_input/completion_popup.py +0 -0
  437. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/widgets/chat_input/container.py +0 -0
  438. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/widgets/chat_input/text_area.py +0 -0
  439. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/widgets/checkpoint_picker.py +0 -0
  440. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/widgets/compact.py +0 -0
  441. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/widgets/config_app.py +0 -0
  442. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/widgets/context_progress.py +0 -0
  443. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/widgets/load_more.py +0 -0
  444. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/widgets/loading.py +0 -0
  445. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/widgets/messages.py +0 -0
  446. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/widgets/no_markup_static.py +0 -0
  447. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/widgets/path_display.py +0 -0
  448. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/widgets/proxy_setup_app.py +0 -0
  449. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/widgets/question_app.py +0 -0
  450. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/widgets/session_picker.py +0 -0
  451. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/widgets/spinner.py +0 -0
  452. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/widgets/status_message.py +0 -0
  453. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/widgets/teleport_message.py +0 -0
  454. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/widgets/tool_widgets.py +0 -0
  455. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/widgets/tools.py +0 -0
  456. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/widgets/vscode_compat.py +0 -0
  457. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/windowing/__init__.py +0 -0
  458. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/windowing/history.py +0 -0
  459. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/windowing/history_windowing.py +0 -0
  460. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/textual_ui/windowing/state.py +0 -0
  461. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/update_notifier/__init__.py +0 -0
  462. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/update_notifier/adapters/filesystem_update_cache_repository.py +0 -0
  463. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/update_notifier/adapters/github_update_gateway.py +0 -0
  464. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/update_notifier/adapters/pypi_update_gateway.py +0 -0
  465. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/update_notifier/ports/update_cache_repository.py +0 -0
  466. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/update_notifier/ports/update_gateway.py +0 -0
  467. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/update_notifier/update.py +0 -0
  468. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/cli/update_notifier/whats_new.py +0 -0
  469. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/__init__.py +0 -0
  470. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/agents/__init__.py +0 -0
  471. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/agents/manager.py +0 -0
  472. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/agents/models.py +0 -0
  473. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/auth/__init__.py +0 -0
  474. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/auth/crypto.py +0 -0
  475. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/auth/github.py +0 -0
  476. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/autocompletion/__init__.py +0 -0
  477. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/autocompletion/completers.py +0 -0
  478. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/autocompletion/file_indexer/__init__.py +0 -0
  479. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/autocompletion/file_indexer/ignore_rules.py +0 -0
  480. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/autocompletion/file_indexer/indexer.py +0 -0
  481. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/autocompletion/file_indexer/store.py +0 -0
  482. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/autocompletion/file_indexer/watcher.py +0 -0
  483. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/autocompletion/fuzzy.py +0 -0
  484. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/autocompletion/path_prompt.py +0 -0
  485. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/autocompletion/path_prompt_adapter.py +0 -0
  486. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/build_orchestrator.py +0 -0
  487. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/checkpoint.py +0 -0
  488. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/classifier/__init__.py +0 -0
  489. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/classifier/__main__.py +0 -0
  490. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/classifier/classifier.py +0 -0
  491. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/classifier/dispatcher.py +0 -0
  492. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/classifier/rules.py +0 -0
  493. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/classifier/signal.py +0 -0
  494. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/config/__init__.py +0 -0
  495. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/config/_dotenv.py +0 -0
  496. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/config/doctor.py +0 -0
  497. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/config/harness_files/__init__.py +0 -0
  498. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/config/harness_files/_harness_manager.py +0 -0
  499. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/config/harness_files/_paths.py +0 -0
  500. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/consultant.py +0 -0
  501. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/context_recovery.py +0 -0
  502. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/drydock_states.py +0 -0
  503. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/hooks.py +0 -0
  504. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/llm/__init__.py +0 -0
  505. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/llm/backend/anthropic.py +0 -0
  506. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/llm/backend/base.py +0 -0
  507. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/llm/backend/factory.py +0 -0
  508. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/llm/backend/generic.py +0 -0
  509. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/llm/backend/mistral.py +0 -0
  510. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/llm/backend/reasoning_adapter.py +0 -0
  511. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/llm/backend/vertex.py +0 -0
  512. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/llm/exceptions.py +0 -0
  513. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/llm/format.py +0 -0
  514. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/llm/message_utils.py +0 -0
  515. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/llm/types.py +0 -0
  516. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/logger.py +0 -0
  517. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/middleware.py +0 -0
  518. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/output_formatters.py +0 -0
  519. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/paths/__init__.py +0 -0
  520. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/paths/_drydock_home.py +0 -0
  521. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/paths/_local_config_walk.py +0 -0
  522. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/paths/conventions.py +0 -0
  523. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/plan_session.py +0 -0
  524. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/plugins.py +0 -0
  525. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/programmatic.py +0 -0
  526. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/prompts/__init__.py +0 -0
  527. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/prompts/builder.md +0 -0
  528. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/prompts/cli.md +0 -0
  529. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/prompts/compact.md +0 -0
  530. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/prompts/dangerous_directory.md +0 -0
  531. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/prompts/diagnostic.md +0 -0
  532. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/prompts/explore.md +0 -0
  533. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/prompts/gemma4.md +0 -0
  534. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/prompts/planner.md +0 -0
  535. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/prompts/project_context.md +0 -0
  536. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/prompts/tests.md +0 -0
  537. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/proxy_setup.py +0 -0
  538. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/session/agent_memory.py +0 -0
  539. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/session/checkpoints.py +0 -0
  540. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/session/session_loader.py +0 -0
  541. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/session/session_logger.py +0 -0
  542. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/session/session_migration.py +0 -0
  543. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/session/state_file.py +0 -0
  544. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/session_checker.py +0 -0
  545. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/skills/__init__.py +0 -0
  546. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/skills/manager.py +0 -0
  547. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/skills/models.py +0 -0
  548. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/skills/parser.py +0 -0
  549. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/slug.py +0 -0
  550. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/steering_hook.py +0 -0
  551. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/system_prompt.py +0 -0
  552. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/telemetry/__init__.py +0 -0
  553. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/telemetry/send.py +0 -0
  554. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/teleport/errors.py +0 -0
  555. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/teleport/git.py +0 -0
  556. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/teleport/nuage.py +0 -0
  557. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/teleport/teleport.py +0 -0
  558. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/teleport/types.py +0 -0
  559. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/base.py +0 -0
  560. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/_task_manager.py +0 -0
  561. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/ask_user_question.py +0 -0
  562. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/bash.py +0 -0
  563. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/cron.py +0 -0
  564. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/exit_plan_mode.py +0 -0
  565. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/glob_tool.py +0 -0
  566. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/grep.py +0 -0
  567. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/invoke_skill.py +0 -0
  568. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/lsp.py +0 -0
  569. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/mcp_resources.py +0 -0
  570. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/notebook_edit.py +0 -0
  571. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/powershell.py +0 -0
  572. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/prompts/__init__.py +0 -0
  573. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/prompts/ask_user_question.md +0 -0
  574. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/prompts/bash.md +0 -0
  575. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/prompts/cron.md +0 -0
  576. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/prompts/glob.md +0 -0
  577. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/prompts/grep.md +0 -0
  578. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/prompts/invoke_skill.md +0 -0
  579. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/prompts/lsp.md +0 -0
  580. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/prompts/mcp_resources.md +0 -0
  581. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/prompts/notebook_edit.md +0 -0
  582. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/prompts/powershell.md +0 -0
  583. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/prompts/read_file.md +0 -0
  584. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/prompts/retrieve.md +0 -0
  585. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/prompts/search_replace.md +0 -0
  586. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/prompts/swe_bench.md +0 -0
  587. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/prompts/task.md +0 -0
  588. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/prompts/task_manager.md +0 -0
  589. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/prompts/todo.md +0 -0
  590. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/prompts/tool_search.md +0 -0
  591. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/prompts/webfetch.md +0 -0
  592. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/prompts/websearch.md +0 -0
  593. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/prompts/worktree.md +0 -0
  594. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/prompts/write_file.md +0 -0
  595. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/read_file.py +0 -0
  596. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/retrieve.py +0 -0
  597. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/search_replace.py +0 -0
  598. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/task.py +0 -0
  599. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/todo.py +0 -0
  600. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/tool_search.py +0 -0
  601. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/webfetch.py +0 -0
  602. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/websearch.py +0 -0
  603. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/worktree.py +0 -0
  604. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/builtins/write_file.py +0 -0
  605. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/injection_guard.py +0 -0
  606. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/manager.py +0 -0
  607. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/mcp/__init__.py +0 -0
  608. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/mcp/registry.py +0 -0
  609. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/mcp/tools.py +0 -0
  610. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/mcp_sampling.py +0 -0
  611. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/ui.py +0 -0
  612. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/tools/utils.py +0 -0
  613. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/trusted_folders.py +0 -0
  614. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/types.py +0 -0
  615. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/core/utils.py +0 -0
  616. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/graphrag/__init__.py +0 -0
  617. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/graphrag/__main__.py +0 -0
  618. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/graphrag/code_indexer.py +0 -0
  619. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/graphrag/retriever.py +0 -0
  620. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/graphrag/storage.py +0 -0
  621. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/graphrag/text_indexer.py +0 -0
  622. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/setup/onboarding/__init__.py +0 -0
  623. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/setup/onboarding/base.py +0 -0
  624. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/setup/onboarding/onboarding.tcss +0 -0
  625. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/setup/onboarding/screens/__init__.py +0 -0
  626. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/setup/onboarding/screens/api_key.py +0 -0
  627. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/setup/onboarding/screens/choice.py +0 -0
  628. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/setup/onboarding/screens/local_model.py +0 -0
  629. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/setup/onboarding/screens/welcome.py +0 -0
  630. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/setup/trusted_folders/trust_folder_dialog.py +0 -0
  631. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/setup/trusted_folders/trust_folder_dialog.tcss +0 -0
  632. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/skills/__init__.py +0 -0
  633. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/skills/api-design/SKILL.md +0 -0
  634. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/skills/audit-tests/SKILL.md +0 -0
  635. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/skills/batch/SKILL.md +0 -0
  636. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/skills/commit-code/SKILL.md +0 -0
  637. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/skills/context-summary/SKILL.md +0 -0
  638. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/skills/create-presentation/SKILL.md +0 -0
  639. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/skills/deep-research/SKILL.md +0 -0
  640. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/skills/deploy/SKILL.md +0 -0
  641. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/skills/diff-review/SKILL.md +0 -0
  642. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/skills/doc-gen/SKILL.md +0 -0
  643. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/skills/explain-code/SKILL.md +0 -0
  644. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/skills/explore-code/SKILL.md +0 -0
  645. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/skills/fix-issue/SKILL.md +0 -0
  646. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/skills/git-ops/SKILL.md +0 -0
  647. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/skills/init-project/SKILL.md +0 -0
  648. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/skills/investigate/SKILL.md +0 -0
  649. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/skills/loop/SKILL.md +0 -0
  650. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/skills/migrate/SKILL.md +0 -0
  651. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/skills/perf-analyze/SKILL.md +0 -0
  652. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/skills/plan-impl/SKILL.md +0 -0
  653. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/skills/pr-review/SKILL.md +0 -0
  654. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/skills/refactor/SKILL.md +0 -0
  655. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/skills/regex-help/SKILL.md +0 -0
  656. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/skills/review/SKILL.md +0 -0
  657. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/skills/security-review/SKILL.md +0 -0
  658. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/skills/ship/SKILL.md +0 -0
  659. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/skills/simplify/SKILL.md +0 -0
  660. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/skills/strong-tests/SKILL.md +0 -0
  661. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/skills/test-verify/SKILL.md +0 -0
  662. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/steering/__init__.py +0 -0
  663. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/steering/__main__.py +0 -0
  664. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/steering/applier.py +0 -0
  665. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/steering/config.py +0 -0
  666. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/steering/registry.py +0 -0
  667. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/steering/sandbox.py +0 -0
  668. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/steering/vectors.py +0 -0
  669. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock/whats_new.md +0 -0
  670. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/drydock-acp.spec +0 -0
  671. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/flake.lock +0 -0
  672. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/flake.nix +0 -0
  673. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/research/README.md +0 -0
  674. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/research/config_base.toml +0 -0
  675. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/research/config_best.toml +0 -0
  676. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/research/domain_spec.md +0 -0
  677. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/research/experimenter.py +0 -0
  678. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/research/kernel.py +0 -0
  679. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/research/mini_prd.md +0 -0
  680. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/research/mini_prompts.txt +0 -0
  681. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/research/proposer.py +0 -0
  682. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/research/results.tsv +0 -0
  683. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/README.md +0 -0
  684. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/admiral_probe.py +0 -0
  685. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/archive/auto_test_loop.sh +0 -0
  686. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/archive/monitor_test_battery.sh +0 -0
  687. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/archive/overnight_agents_test.sh +0 -0
  688. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/archive/test_bank.sh +0 -0
  689. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/archive/test_full.sh +0 -0
  690. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/archive/test_smoke.sh +0 -0
  691. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/archive/tui_test.py +0 -0
  692. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/audit_sampler.py +0 -0
  693. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/auto_generate_tests.py +0 -0
  694. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/auto_release.sh +0 -0
  695. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/autonomous_review.sh +0 -0
  696. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/autonomous_review_prompt.md +0 -0
  697. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/backup.sh +0 -0
  698. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/bump_version.py +0 -0
  699. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/classify_pulse.sh +0 -0
  700. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/consume_retrieval_queue.py +0 -0
  701. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/deploy_to_github.sh +0 -0
  702. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/fetch_arxiv_abstracts.py +0 -0
  703. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/gen_2000_prompts.py +0 -0
  704. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/hle_eval.py +0 -0
  705. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/hle_eval_seed.jsonl +0 -0
  706. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/notify_release.py +0 -0
  707. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/perf_baseline_when_idle.sh +0 -0
  708. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/perf_sweep.py +0 -0
  709. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/poll_issues.sh +0 -0
  710. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/publish_to_pypi.sh +0 -0
  711. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/queue_top.py +0 -0
  712. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/ralph_loop.py +0 -0
  713. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/research_babysitter.sh +0 -0
  714. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/shakedown.py +0 -0
  715. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/shakedown_interactive.py +0 -0
  716. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/shakedown_suite.sh +0 -0
  717. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/shakedown_variance.sh +0 -0
  718. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/stress_babysitter.sh +0 -0
  719. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/stress_prompts_50.txt +0 -0
  720. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/stress_prompts_realuser.txt +0 -0
  721. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/stress_prompts_tool_agent.txt +0 -0
  722. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/stress_prompts_tool_agent_2000.txt +0 -0
  723. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/stress_shakedown.py +0 -0
  724. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/stress_telegram_status.py +0 -0
  725. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/stress_watcher.py +0 -0
  726. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/telegram_bot.py +0 -0
  727. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/scripts/vllm_failover.sh +0 -0
  728. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/__init__.py +0 -0
  729. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/acp/conftest.py +0 -0
  730. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/acp/test_acp.py +0 -0
  731. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/acp/test_agent_thought.py +0 -0
  732. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/acp/test_bash.py +0 -0
  733. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/acp/test_compact_session_updates.py +0 -0
  734. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/acp/test_content.py +0 -0
  735. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/acp/test_initialize.py +0 -0
  736. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/acp/test_list_sessions.py +0 -0
  737. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/acp/test_load_session.py +0 -0
  738. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/acp/test_multi_session.py +0 -0
  739. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/acp/test_new_session.py +0 -0
  740. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/acp/test_proxy_setup_acp.py +0 -0
  741. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/acp/test_read_file.py +0 -0
  742. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/acp/test_search_replace.py +0 -0
  743. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/acp/test_set_config_option.py +0 -0
  744. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/acp/test_set_mode.py +0 -0
  745. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/acp/test_set_model.py +0 -0
  746. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/acp/test_tool_call_session_update.py +0 -0
  747. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/acp/test_utils.py +0 -0
  748. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/acp/test_write_file.py +0 -0
  749. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/autocompletion/test_file_indexer.py +0 -0
  750. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/autocompletion/test_fuzzy.py +0 -0
  751. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/autocompletion/test_path_completer_fuzzy.py +0 -0
  752. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/autocompletion/test_path_completer_recursive.py +0 -0
  753. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/autocompletion/test_path_completion_controller.py +0 -0
  754. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/autocompletion/test_path_prompt_transformer.py +0 -0
  755. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/autocompletion/test_slash_command_controller.py +0 -0
  756. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/autocompletion/test_ui_chat_autocompletion.py +0 -0
  757. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/backend/__init__.py +0 -0
  758. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/backend/data/__init__.py +0 -0
  759. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/backend/data/fireworks.py +0 -0
  760. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/backend/data/mistral.py +0 -0
  761. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/backend/test_anthropic_adapter.py +0 -0
  762. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/backend/test_backend.py +0 -0
  763. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/backend/test_generic_adapter_sanitize.py +0 -0
  764. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/backend/test_reasoning_adapter.py +0 -0
  765. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/backend/test_vertex_anthropic_adapter.py +0 -0
  766. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/cli/plan_offer/adapters/fake_whoami_gateway.py +0 -0
  767. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/cli/plan_offer/test_decide_plan_offer.py +0 -0
  768. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/cli/plan_offer/test_http_whoami_gateway.py +0 -0
  769. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/cli/test_bell_notifications.py +0 -0
  770. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/cli/test_braille_renderer.py +0 -0
  771. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/cli/test_clipboard.py +0 -0
  772. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/cli/test_commands.py +0 -0
  773. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/cli/test_copy_shortcuts.py +0 -0
  774. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/cli/test_external_editor.py +0 -0
  775. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/cli/test_no_markup_static.py +0 -0
  776. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/cli/test_question_app.py +0 -0
  777. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/cli/test_spinner.py +0 -0
  778. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/cli/test_switching_mode.py +0 -0
  779. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/cli/test_ui_clipboard_notifications.py +0 -0
  780. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/cli/test_ui_session_incremental_renderer.py +0 -0
  781. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/cli/test_ui_session_resume.py +0 -0
  782. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/cli/test_ui_skill_dispatch.py +0 -0
  783. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/cli/textual_ui/__init__.py +0 -0
  784. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/cli/textual_ui/test_session_picker.py +0 -0
  785. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/conftest.py +0 -0
  786. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/core/test_agents.py +0 -0
  787. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/core/test_auth_crypto.py +0 -0
  788. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/core/test_auth_github.py +0 -0
  789. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/core/test_circuit_breaker_count_escalation.py +0 -0
  790. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/core/test_circuit_breaker_readonly_threshold.py +0 -0
  791. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/core/test_config_load_dotenv.py +0 -0
  792. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/core/test_config_paths.py +0 -0
  793. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/core/test_config_resolution.py +0 -0
  794. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/core/test_file_logging.py +0 -0
  795. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/core/test_plan_session.py +0 -0
  796. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/core/test_proxy_setup.py +0 -0
  797. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/core/test_slug.py +0 -0
  798. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/core/test_telemetry_send.py +0 -0
  799. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/core/test_teleport_git.py +0 -0
  800. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/core/test_teleport_nuage.py +0 -0
  801. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/core/test_teleport_service.py +0 -0
  802. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/core/test_trusted_folders.py +0 -0
  803. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/core/test_utils.py +0 -0
  804. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/e2e/common.py +0 -0
  805. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/e2e/conftest.py +0 -0
  806. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/e2e/mock_server.py +0 -0
  807. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/e2e/test_cli_tui_onboarding.py +0 -0
  808. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/e2e/test_cli_tui_streaming.py +0 -0
  809. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/e2e/test_cli_tui_tool_approval.py +0 -0
  810. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/fixtures/doc_qa_system_prd.md +0 -0
  811. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/mock/__init__.py +0 -0
  812. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/mock/mock_backend_factory.py +0 -0
  813. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/mock/mock_entrypoint.py +0 -0
  814. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/mock/utils.py +0 -0
  815. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/onboarding/test_run_onboarding.py +0 -0
  816. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/onboarding/test_ui_onboarding.py +0 -0
  817. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/session/test_session_loader.py +0 -0
  818. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/session/test_session_logger.py +0 -0
  819. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/session/test_session_migration.py +0 -0
  820. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/skills/conftest.py +0 -0
  821. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/skills/test_manager.py +0 -0
  822. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/skills/test_models.py +0 -0
  823. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/skills/test_parser.py +0 -0
  824. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_collapsed.svg +0 -0
  825. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_ask_user_question/test_snapshot_ask_user_question_expanded.svg +0 -0
  826. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_basic_conversation/test_snapshot_shows_basic_conversation.svg +0 -0
  827. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_code_block_horizontal_scrolling/test_snapshot_allows_horizontal_scrolling_for_long_code_blocks.svg +0 -0
  828. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_empty_assistant_before_reasoning/test_snapshot_empty_assistant_removed_when_reasoning_starts.svg +0 -0
  829. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_accept_edits_mode.svg +0 -0
  830. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_auto_approve_mode.svg +0 -0
  831. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_to_plan_mode.svg +0 -0
  832. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_cycle_wraps_to_default.svg +0 -0
  833. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_modes/test_snapshot_default_mode.svg +0 -0
  834. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_pending.svg +0 -0
  835. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_parallel_tool_calls/test_snapshot_parallel_tool_calls_resolved.svg +0 -0
  836. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_cancel_discards_changes.svg +0 -0
  837. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_edit_existing_values.svg +0 -0
  838. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_empty.svg +0 -0
  839. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_initial_with_values.svg +0 -0
  840. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_error.svg +0 -0
  841. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_proxy_setup/test_snapshot_proxy_setup_save_new_values.svg +0 -0
  842. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_answer_first_advance.svg +0 -0
  843. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_first_answered_checkmark.svg +0 -0
  844. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_initial.svg +0 -0
  845. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_left_wraps.svg +0 -0
  846. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_navigate_right.svg +0 -0
  847. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_question_tab_to_second.svg +0 -0
  848. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_initial.svg +0 -0
  849. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_mixed_selection.svg +0 -0
  850. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_navigate_to_submit.svg +0 -0
  851. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_other_with_text.svg +0 -0
  852. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_first.svg +0 -0
  853. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_toggle_multiple.svg +0 -0
  854. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_multi_select_untoggle.svg +0 -0
  855. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_initial.svg +0 -0
  856. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_down.svg +0 -0
  857. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_other.svg +0 -0
  858. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_to_third_option.svg +0 -0
  859. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_navigate_up_wraps.svg +0 -0
  860. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_question_app/test_snapshot_question_app_other_typing.svg +0 -0
  861. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_buffered_reasoning_yields_before_content.svg +0 -0
  862. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_interleaved_reasoning.svg +0 -0
  863. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content.svg +0 -0
  864. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_reasoning_content/test_snapshot_shows_reasoning_content_expanded.svg +0 -0
  865. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_release_update_notification/test_snapshot_shows_release_update_notification.svg +0 -0
  866. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_session_resume/test_snapshot_shows_resumed_session_messages.svg +0 -0
  867. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_partial.svg +0 -0
  868. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_streaming_tool_call/test_snapshot_tool_call_updated.svg +0 -0
  869. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_cancel_selected.svg +0 -0
  870. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_multiple_commits.svg +0 -0
  871. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_push_confirmation_single_commit.svg +0 -0
  872. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_complete.svg +0 -0
  873. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_auth_required.svg +0 -0
  874. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_checking_git.svg +0 -0
  875. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_complete.svg +0 -0
  876. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_error.svg +0 -0
  877. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_pushing.svg +0 -0
  878. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_sending_token.svg +0 -0
  879. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_teleport/test_snapshot_teleport_status_starting_workflow.svg +0 -0
  880. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_no_plan_message.svg +0 -0
  881. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_switch_message.svg +0 -0
  882. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_upgrade_message.svg +0 -0
  883. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/__snapshots__/test_ui_snapshot_whats_new/test_snapshot_shows_whats_new_message.svg +0 -0
  884. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/base_snapshot_test_app.py +0 -0
  885. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/conftest.py +0 -0
  886. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/snap_compare.py +0 -0
  887. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/test_ui_snapshot_ask_user_question.py +0 -0
  888. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/test_ui_snapshot_basic_conversation.py +0 -0
  889. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/test_ui_snapshot_code_block_horizontal_scrolling.py +0 -0
  890. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/test_ui_snapshot_empty_assistant_before_reasoning.py +0 -0
  891. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/test_ui_snapshot_modes.py +0 -0
  892. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/test_ui_snapshot_parallel_tool_calls.py +0 -0
  893. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/test_ui_snapshot_proxy_setup.py +0 -0
  894. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/test_ui_snapshot_question_app.py +0 -0
  895. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/test_ui_snapshot_reasoning_content.py +0 -0
  896. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/test_ui_snapshot_release_update_notification.py +0 -0
  897. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/test_ui_snapshot_session_resume.py +0 -0
  898. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/test_ui_snapshot_streaming_tool_call.py +0 -0
  899. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/test_ui_snapshot_teleport.py +0 -0
  900. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/snapshots/test_ui_snapshot_whats_new.py +0 -0
  901. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/stubs/fake_backend.py +0 -0
  902. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/stubs/fake_client.py +0 -0
  903. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/stubs/fake_tool.py +0 -0
  904. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_admiral.py +0 -0
  905. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_admiral_phase3.py +0 -0
  906. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_admiral_proposed.py +0 -0
  907. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_admiral_struggle_dedup.py +0 -0
  908. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_agent_auto_compact.py +0 -0
  909. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_agent_backend.py +0 -0
  910. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_agent_observer_streaming.py +0 -0
  911. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_agent_stats.py +0 -0
  912. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_agent_tasks.py +0 -0
  913. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_agent_tool_call.py +0 -0
  914. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_agents.py +0 -0
  915. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_bank_build.py +0 -0
  916. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_bank_debug.py +0 -0
  917. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_bank_multiagent.py +0 -0
  918. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_bank_prd.py +0 -0
  919. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_bank_prd_extended.py +0 -0
  920. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_bank_tools.py +0 -0
  921. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_bank_update.py +0 -0
  922. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_build_projects.py +0 -0
  923. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_checkpoint.py +0 -0
  924. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_classifier.py +0 -0
  925. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_cli_programmatic_preload.py +0 -0
  926. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_config_migration.py +0 -0
  927. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_context_recovery.py +0 -0
  928. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_current_bugs.py +0 -0
  929. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_dispatcher.py +0 -0
  930. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_drydock_regression.py +0 -0
  931. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_drydock_tasks.py +0 -0
  932. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_fake_tool_call_paren_syntax.py +0 -0
  933. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_full_regression.py +0 -0
  934. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_graphrag.py +0 -0
  935. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_hallucinated_tool_suppression.py +0 -0
  936. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_history_manager.py +0 -0
  937. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_integration.py +0 -0
  938. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_issue_fixes.py +0 -0
  939. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_local_detect.py +0 -0
  940. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_message_id.py +0 -0
  941. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_message_merging.py +0 -0
  942. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_middleware.py +0 -0
  943. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_multi_agent.py +0 -0
  944. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_read_file_not_found_listing.py +0 -0
  945. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_real_failures.py +0 -0
  946. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_real_issues.py +0 -0
  947. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_real_workflow.py +0 -0
  948. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_reasoning_content.py +0 -0
  949. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_retrieval_consumer.py +0 -0
  950. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_retrieve_tool.py +0 -0
  951. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_search_replace_args_not_truncated.py +0 -0
  952. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_smoke.py +0 -0
  953. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_steering.py +0 -0
  954. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_steering_hook.py +0 -0
  955. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_system_prompt.py +0 -0
  956. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_tagged_text.py +0 -0
  957. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_task_complete_nudge.py +0 -0
  958. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_tool_args.py +0 -0
  959. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_truncate_args_valid_json.py +0 -0
  960. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_truncated_arg_path_hint.py +0 -0
  961. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_truncated_search_replace_escalation.py +0 -0
  962. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_truncated_write_escalation.py +0 -0
  963. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_ui_external_editor.py +0 -0
  964. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_ui_input_history.py +0 -0
  965. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_user_issues.py +0 -0
  966. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_wall_of_text_rescue.py +0 -0
  967. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_workloads.py +0 -0
  968. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/test_write_file_missing_path.py +0 -0
  969. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/testbank_helpers.py +0 -0
  970. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/tools/test_ask_user_question.py +0 -0
  971. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/tools/test_bash.py +0 -0
  972. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/tools/test_bash_binary_grep_hint.py +0 -0
  973. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/tools/test_bash_consec_empty_search.py +0 -0
  974. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/tools/test_bash_echo_escape_loop_breaker.py +0 -0
  975. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/tools/test_bash_empty_search_loop_breaker.py +0 -0
  976. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/tools/test_bash_error_loop_breaker.py +0 -0
  977. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/tools/test_bash_exact_cmd_loop_breaker.py +0 -0
  978. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/tools/test_bash_heredoc_confirmation.py +0 -0
  979. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/tools/test_bash_kill_exit1_annotation.py +0 -0
  980. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/tools/test_bash_python_c_syntaxerr_loop_breaker.py +0 -0
  981. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/tools/test_exit_plan_mode.py +0 -0
  982. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/tools/test_grep.py +0 -0
  983. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/tools/test_hallucinated_retrieval_redirect.py +0 -0
  984. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/tools/test_invoke_context.py +0 -0
  985. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/tools/test_manager_gemma_derived_models.py +0 -0
  986. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/tools/test_manager_get_tool_config.py +0 -0
  987. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/tools/test_mcp.py +0 -0
  988. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/tools/test_mcp_sampling.py +0 -0
  989. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/tools/test_read_file_dedup_alternating_offset.py +0 -0
  990. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/tools/test_read_file_dedup_reembed.py +0 -0
  991. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/tools/test_read_file_directory.py +0 -0
  992. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/tools/test_read_file_limit_truncation.py +0 -0
  993. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/tools/test_search_replace_append_fallback.py +0 -0
  994. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/tools/test_search_replace_dir_path.py +0 -0
  995. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/tools/test_search_replace_empty_content.py +0 -0
  996. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/tools/test_search_replace_file_not_found.py +0 -0
  997. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/tools/test_search_replace_first_failure_hint.py +0 -0
  998. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/tools/test_search_replace_hard_stop.py +0 -0
  999. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/tools/test_search_replace_malformed_block.py +0 -0
  1000. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/tools/test_search_replace_no_op_loop_breaker.py +0 -0
  1001. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/tools/test_search_replace_placeholder.py +0 -0
  1002. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/tools/test_search_replace_refused_loop_breaker.py +0 -0
  1003. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/tools/test_task.py +0 -0
  1004. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/tools/test_ui_bash_execution.py +0 -0
  1005. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/tools/test_webfetch.py +0 -0
  1006. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/tools/test_websearch.py +0 -0
  1007. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/tools/test_write_file_dedup_missing_imports.py +0 -0
  1008. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/tools/test_write_file_missing_path_hint.py +0 -0
  1009. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/update_notifier/adapters/fake_update_cache_repository.py +0 -0
  1010. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/update_notifier/adapters/fake_update_gateway.py +0 -0
  1011. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/update_notifier/test_do_update.py +0 -0
  1012. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/update_notifier/test_filesystem_update_cache_repository.py +0 -0
  1013. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/update_notifier/test_github_update_gateway.py +0 -0
  1014. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/update_notifier/test_pypi_update_gateway.py +0 -0
  1015. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/update_notifier/test_ui_update_notification.py +0 -0
  1016. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/update_notifier/test_update_use_case.py +0 -0
  1017. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/tests/update_notifier/test_whats_new.py +0 -0
  1018. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/worked_examples/README.md +0 -0
  1019. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/worked_examples/cli_subcommand_dispatch.py +0 -0
  1020. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/worked_examples/lookup.json +0 -0
  1021. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/worked_examples/sql_parser.py +0 -0
  1022. {drydock_cli-2.8.4 → drydock_cli-2.8.6}/worked_examples/tree_walking_interpreter.py +0 -0
@@ -0,0 +1 @@
1
+ 3983696
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: drydock-cli
3
- Version: 2.8.4
3
+ Version: 2.8.6
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
@@ -0,0 +1,17 @@
1
+ """Entry point for `python -m drydock`.
2
+
3
+ This file lets users run drydock without the `drydock` console script
4
+ shim being on PATH — useful on Windows where `pip install --user`
5
+ puts the script in `%APPDATA%\\Python\\PythonXY\\Scripts` which isn't
6
+ on PATH by default.
7
+
8
+ Usage:
9
+ python -m drydock # same as `drydock`
10
+ python -m drydock --fix-windows-path
11
+ python -m drydock --setup
12
+ python -m drydock -p "your prompt here"
13
+ """
14
+ from drydock.cli.entrypoint import main
15
+
16
+ if __name__ == "__main__":
17
+ main()
@@ -75,49 +75,71 @@ def bootstrap_config_files() -> None:
75
75
  except Exception as e: # migration must never break startup
76
76
  logger.debug("config migration failed: %s", e)
77
77
  if not config_file.exists():
78
+ # Try auto-detecting a running local LLM first. Saves the user a
79
+ # setup screen if they already have llama.cpp / Ollama / vLLM /
80
+ # LM Studio listening on a known port.
81
+ detected_info = None
78
82
  try:
79
- config_file.parent.mkdir(parents=True, exist_ok=True)
80
- default = DrydockConfig.create_default()
81
- # Auto-detect a running local LLM server (llama.cpp, Ollama,
82
- # vLLM, LM Studio). If found, point the default config at it
83
- # and set local as the active model — so a fresh install with
84
- # a local server already running starts up without demanding
85
- # a Mistral API key.
83
+ from drydock.core.config.local_detect import detect_local_llm
84
+ detected_info = detect_local_llm()
85
+ except Exception as e:
86
+ logger.debug("local-LLM detection failed: %s", e)
87
+
88
+ if detected_info is not None:
89
+ # Detected — write a config patched to point at the live
90
+ # server with no user interaction required.
86
91
  try:
87
- from drydock.core.config.local_detect import (
88
- detect_local_llm,
89
- patch_config_for_local,
92
+ config_file.parent.mkdir(parents=True, exist_ok=True)
93
+ default = DrydockConfig.create_default()
94
+ from drydock.core.config.local_detect import patch_config_for_local
95
+ patch_config_for_local(default, detected_info)
96
+ rprint(
97
+ f"[green]Auto-detected {detected_info.label} at "
98
+ f"{detected_info.api_base}[/]\n"
99
+ f" Using model: [cyan]{detected_info.model_name}[/]\n"
100
+ f" To use a different LLM, run [cyan]drydock --setup[/] "
101
+ f"or edit [cyan]{config_file}[/]"
90
102
  )
91
- info = detect_local_llm()
92
- if info is not None:
93
- patch_config_for_local(default, info)
94
- rprint(
95
- f"[green]Auto-detected {info.label} at "
96
- f"{info.api_base}[/]\n"
97
- f" Using model: [cyan]{info.model_name}[/]\n"
98
- f" To use a different LLM, run [cyan]drydock --setup[/] "
99
- f"or edit [cyan]{config_file}[/]"
100
- )
101
- else:
102
- # No local server answering — default config already
103
- # points at llama.cpp on http://127.0.0.1:8000/v1 with
104
- # active_model="local". Tell the user so they know what
105
- # endpoint drydock will try, and how to point it
106
- # elsewhere if needed.
103
+ with config_file.open("wb") as f:
104
+ tomli_w.dump(default, f)
105
+ except Exception as e:
106
+ rprint(f"[yellow]Could not create default config file: {e}[/]")
107
+ else:
108
+ # No local server answering. Run the onboarding flow so the
109
+ # user can choose between (a) Mistral API key, (b) point
110
+ # drydock at a custom local URL via LocalModelScreen. Don't
111
+ # silently write a config pointing at a port nothing is
112
+ # listening on — that surprises users who run drydock
113
+ # without knowing they need to start a model server first.
114
+ rprint(
115
+ "[yellow]No local LLM server detected on the usual ports "
116
+ "(llama.cpp:8000/8080, Ollama:11434, LM Studio:1234).[/]\n"
117
+ " Launching setup so you can point drydock at your "
118
+ "model server."
119
+ )
120
+ try:
121
+ from drydock.setup.onboarding import run_onboarding
122
+ run_onboarding()
123
+ except SystemExit:
124
+ raise # onboarding cancelled — let the exit propagate
125
+ except Exception as e:
126
+ # Onboarding failed for some reason (e.g. no TTY in CI).
127
+ # Fall back to writing the defaults so drydock can at
128
+ # least try to start, and tell the user what to fix.
129
+ logger.debug("onboarding failed: %s", e)
130
+ try:
131
+ config_file.parent.mkdir(parents=True, exist_ok=True)
132
+ default = DrydockConfig.create_default()
133
+ with config_file.open("wb") as f:
134
+ tomli_w.dump(default, f)
107
135
  rprint(
108
- "[yellow]No local LLM server detected.[/]\n"
109
- " Defaulting to [cyan]llama.cpp at "
110
- "http://127.0.0.1:8000/v1[/] (OpenAI-compatible).\n"
111
- " Start a server on that port, run "
112
- "[cyan]drydock --setup[/], or edit "
113
- f"[cyan]{config_file}[/] to use a different URL."
136
+ f"[yellow]Setup failed ({e}). Wrote default config "
137
+ f"pointing at http://127.0.0.1:8000/v1.[/]\n"
138
+ f" Edit [cyan]{config_file}[/] or run "
139
+ "[cyan]drydock --setup[/] to fix."
114
140
  )
115
- except Exception as e: # detection must never break first launch
116
- logger.debug("local-LLM detection failed: %s", e)
117
- with config_file.open("wb") as f:
118
- tomli_w.dump(default, f)
119
- except Exception as e:
120
- rprint(f"[yellow]Could not create default config file: {e}[/]")
141
+ except Exception as ee:
142
+ rprint(f"[yellow]Could not create default config file: {ee}[/]")
121
143
 
122
144
  history_file = HISTORY_FILE.path
123
145
  if not history_file.exists():
@@ -868,6 +868,50 @@ class AgentLoop:
868
868
  or "400 bad request" in error_str.lower()
869
869
  or "status: 400" in error_str.lower()):
870
870
  # Context limit or malformed request — aggressive recovery
871
+ # Step 0 (added 2026-05-09): if the error looks like a
872
+ # malformed tool call (most common 400 cause that ISN'T
873
+ # context-overflow), drop the offending assistant
874
+ # message + its orphaned tool-result follow-ups so the
875
+ # retry doesn't re-send the same bad payload. Without
876
+ # this, drydock would re-send the same broken
877
+ # tool_call N times until MAX_API_ERRORS gave up,
878
+ # leaving the user with a sticky banner that only
879
+ # /clear or session-restart could clear.
880
+ dropped_bad_tool_call = False
881
+ bad_call_indicators = (
882
+ "tool_call", "tool call", "function call",
883
+ "function.arguments", "arguments",
884
+ "invalid json", "json decode", "schema",
885
+ "validation error", "tool_use", "function name",
886
+ )
887
+ if any(ind in error_str.lower() for ind in bad_call_indicators):
888
+ try:
889
+ # Walk backward to the most recent assistant
890
+ # message with tool_calls — that's the payload
891
+ # vLLM rejected.
892
+ bad_idx = None
893
+ for i in range(len(self.messages) - 1, -1, -1):
894
+ m = self.messages[i]
895
+ if m.role == Role.assistant and getattr(m, "tool_calls", None):
896
+ bad_idx = i
897
+ break
898
+ if bad_idx is not None:
899
+ # Drop the bad assistant message PLUS any
900
+ # tool-role messages that followed it (they
901
+ # reference tool_call_ids that no longer
902
+ # exist; sending them alone is also a 400).
903
+ new_msgs = list(self.messages[:bad_idx])
904
+ self.messages.reset(new_msgs)
905
+ dropped_bad_tool_call = True
906
+ logger.info(
907
+ "Auto-recovery: dropped bad tool-call "
908
+ "message (idx=%d) and %d follow-ups",
909
+ bad_idx, len(self.messages) - bad_idx
910
+ if hasattr(self, "messages") else 0,
911
+ )
912
+ except Exception as drop_err:
913
+ logger.debug("bad-tool-call drop failed: %s", drop_err)
914
+
871
915
  try:
872
916
  # First try: truncate old messages
873
917
  for i, msg in enumerate(self.messages):
@@ -897,7 +941,17 @@ class AgentLoop:
897
941
  logger.info("Emergency reset: kept first user + last 5 messages")
898
942
  except Exception:
899
943
  pass
900
- error_text = "Context compacted due to API error. Continue with your task."
944
+ if dropped_bad_tool_call:
945
+ error_text = (
946
+ "Your last tool call was rejected by the "
947
+ "server (likely malformed arguments). "
948
+ "Try a simpler form, or use a different tool."
949
+ )
950
+ else:
951
+ error_text = (
952
+ "Context compacted due to API error. "
953
+ "Continue with your task."
954
+ )
901
955
  else:
902
956
  error_text = f"API error occurred: {e}. Please continue with your task."
903
957
  self._inject_system_note(error_text)
@@ -1025,7 +1079,8 @@ class AgentLoop:
1025
1079
  if (assistant_msg.role == Role.assistant
1026
1080
  and assistant_msg.tool_calls):
1027
1081
  prev_tool_name = assistant_msg.tool_calls[-1].function.name if assistant_msg.tool_calls[-1].function else None
1028
- _readonly_tools = {"read_file", "grep", "glob", "ls", "pwd"}
1082
+ _readonly_tools = {"read_file", "grep", "glob", "ls", "pwd",
1083
+ "ralph_repo_index", "retrieve", "search_files"}
1029
1084
  _write_tools = {"write_file", "search_replace"}
1030
1085
  _prev_was_read = prev_tool_name in _readonly_tools
1031
1086
  _prev_was_write = prev_tool_name in _write_tools
@@ -2632,6 +2687,31 @@ class AgentLoop:
2632
2687
  def _check_tool_call_repetition(self) -> str | None:
2633
2688
  """Check if recent tool calls are repeating. Returns 'FORCE_STOP', 'WARNING', or None."""
2634
2689
 
2690
+ # Early check: hallucinated tool called in last 40 messages.
2691
+ # The stall nudge already tells the model "this tool doesn't exist" but
2692
+ # Gemma 4 / Opus ignore it and loop. Force text-only for one turn so
2693
+ # the model must write content instead of calling the ghost tool again.
2694
+ # Threshold=1: sessions typically only make 1-2 ghost calls before
2695
+ # timing out, so the old threshold=3 never triggered in practice.
2696
+ if hasattr(self, "tool_manager") and self.tool_manager:
2697
+ _avail = self.tool_manager.available_tools
2698
+ _hall_names: list[str] = []
2699
+ for _hm in reversed(self.messages[-40:]):
2700
+ if _hm.role == Role.assistant and _hm.tool_calls:
2701
+ for _htc in _hm.tool_calls:
2702
+ if _htc.function and _htc.function.name:
2703
+ if _htc.function.name not in _avail:
2704
+ _hall_names.append(_htc.function.name)
2705
+ if len(_hall_names) >= 10:
2706
+ break
2707
+ if _hall_names:
2708
+ from collections import Counter as _HCtr
2709
+ _top_h, _top_h_cnt = _HCtr(_hall_names).most_common(1)[0]
2710
+ if _top_h_cnt >= 1:
2711
+ # _hot_tool_path=None → FORCE_STOP handler sets tool_choice=none
2712
+ self._hot_tool_path = None
2713
+ return "FORCE_STOP"
2714
+
2635
2715
  # Early check: search_replace with the same file + old_string twice
2636
2716
  # in a row. This is the #1 user-pain loop — the model retries an
2637
2717
  # edit that already succeeded or that keeps failing with the same
@@ -2797,17 +2877,22 @@ class AgentLoop:
2797
2877
  ):
2798
2878
  return "FORCE_STOP"
2799
2879
 
2800
- # Check 1a: Same TOOL NAME repeated ≥8 consecutively, regardless
2801
- # of args. Catches the "write_file with missing/corrupted args 36
2802
- # times in a row" pathology where each sig differs (path is
2803
- # missing or garbled differently each call) but the model is
2804
- # clearly stuck hammering the same tool.
2880
+ # Check 1a: Same TOOL NAME repeated consecutively, regardless of args.
2881
+ # Catches the "write_file with missing/corrupted args 36 times in a row"
2882
+ # pathology where each sig differs but the model is clearly stuck.
2883
+ # Threshold is lower for exploration/indexing tools (ralph_repo_index,
2884
+ # read_file, glob, grep) that should never need 4+ consecutive calls —
2885
+ # each call after the first is a stall-recovery loop, not progress.
2886
+ # Write/shell tools keep the higher threshold (8) since they legitimately
2887
+ # appear many times in sequence when building multi-file projects.
2805
2888
  # Record a hot-combo on the stuck tool with an empty-path marker
2806
2889
  # so the per-tool mute in _chat will remove it for 1 turn.
2807
- if len(tool_names) >= 8:
2808
- last8 = tool_names[-8:]
2809
- if all(n == last8[-1] for n in last8):
2810
- self._hot_tool_path = (last8[-1], "<stuck>")
2890
+ _productive_tools = {"write_file", "search_replace", "bash", "run_command"}
2891
+ _check_1a_threshold = 8 if (tool_names and tool_names[-1] in _productive_tools) else 4
2892
+ if len(tool_names) >= _check_1a_threshold:
2893
+ last_n = tool_names[-_check_1a_threshold:]
2894
+ if all(n == last_n[-1] for n in last_n):
2895
+ self._hot_tool_path = (last_n[-1], "<stuck>")
2811
2896
  return "FORCE_STOP"
2812
2897
 
2813
2898
  # Check 1c: High recent-error fraction. If ≥6 of last 10 tool
@@ -301,11 +301,39 @@ DEFAULT_MODELS = [
301
301
  output_price=0.3,
302
302
  ),
303
303
  ModelConfig(
304
- name="devstral",
304
+ # Default local model is Gemma 4 — the recommended setup per
305
+ # CLAUDE.md (`start_gemma4.sh`). The `name` here is the model id
306
+ # the OpenAI-compatible server reports; for `start_gemma4.sh` +
307
+ # vLLM that's literally "gemma4". The local_detect probe will
308
+ # overwrite this at first launch with whatever the running
309
+ # server actually reports, so a user running a different
310
+ # local model (e.g. llama-3, mistral-small) gets matched up
311
+ # automatically.
312
+ name="gemma4",
305
313
  provider="llamacpp",
306
314
  alias="local",
307
315
  input_price=0.0,
308
316
  output_price=0.0,
317
+ # Gemma 4 anti-loop sampling recipe (see CLAUDE.md). Temperature
318
+ # MUST be 1.0 — lower values reinforce loops on quantized GGUF.
319
+ # The other knobs prevent the model from getting stuck on
320
+ # repeated tokens.
321
+ temperature=1.0,
322
+ # llama-server article recipe is `-c 32768`. Match it so
323
+ # auto_compact_threshold gets clamped to 28K (32K - 4K headroom)
324
+ # and the server doesn't return empty/garbage on context overflow.
325
+ context_window=32_768,
326
+ auto_compact_threshold=28_000,
327
+ # llama.cpp uses `repeat_penalty` (its native knob), not the
328
+ # OpenAI-style `frequency_penalty`. `temperature=1.0` is the
329
+ # top-level field above; the other three sampling params live
330
+ # here and get forwarded as extra_sampling to the server.
331
+ extra_params={
332
+ "top_k": 40,
333
+ "top_p": 0.95,
334
+ "repeat_penalty": 1.1,
335
+ "max_tokens": 2048,
336
+ },
309
337
  ),
310
338
  ]
311
339
 
@@ -140,6 +140,8 @@ def patch_config_for_local(
140
140
  extra = model.setdefault("extra_params", {})
141
141
  extra.setdefault("top_k", 40)
142
142
  extra.setdefault("top_p", 0.95)
143
- extra.setdefault("frequency_penalty", 1.1)
143
+ # llama.cpp's native repetition knob, not the
144
+ # OpenAI-style frequency_penalty.
145
+ extra.setdefault("repeat_penalty", 1.1)
144
146
  extra.setdefault("max_tokens", 2048)
145
147
  break
@@ -72,6 +72,7 @@ def migrate_user_config(config_file: Path) -> None:
72
72
  return
73
73
 
74
74
  added: list[str] = []
75
+ fixed: list[str] = []
75
76
  models = data.get("models")
76
77
  if isinstance(models, list):
77
78
  for model in models:
@@ -86,8 +87,17 @@ def migrate_user_config(config_file: Path) -> None:
86
87
  window = model.get("context_window") or _default_window_for(provider)
87
88
  model["auto_compact_threshold"] = _default_compact_threshold_for(window)
88
89
  added.append(f"models.{label}.auto_compact_threshold")
89
-
90
- if not added:
90
+ # llamacpp models written by v2.8.3–v2.8.5 used the
91
+ # OpenAI-style `frequency_penalty`. llama.cpp's actual
92
+ # repetition knob is `repeat_penalty` — rename it so the
93
+ # server accepts the value instead of silently ignoring it.
94
+ if "llamacpp" in provider.lower():
95
+ extra = model.get("extra_params")
96
+ if isinstance(extra, dict) and "frequency_penalty" in extra and "repeat_penalty" not in extra:
97
+ extra["repeat_penalty"] = extra.pop("frequency_penalty")
98
+ fixed.append(f"models.{label}.extra_params: frequency_penalty → repeat_penalty")
99
+
100
+ if not added and not fixed:
91
101
  return
92
102
 
93
103
  try:
@@ -97,8 +107,9 @@ def migrate_user_config(config_file: Path) -> None:
97
107
  logger.warning("config migration: cannot write %s: %s", config_file, e)
98
108
  return
99
109
 
110
+ changes = added + fixed
100
111
  rprint(
101
- f"[cyan]Drydock config migrated: added {len(added)} new "
102
- f"key(s) to {config_file}[/]\n "
103
- + "\n ".join(added)
112
+ f"[cyan]Drydock config migrated: {len(changes)} change(s) to "
113
+ f"{config_file}[/]\n "
114
+ + "\n ".join(changes)
104
115
  )
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "drydock-cli"
3
- version = "2.8.4"
3
+ version = "2.8.6"
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"
@@ -26,7 +26,14 @@ import urllib.request
26
26
 
27
27
  BACKENDS = [
28
28
  "http://localhost:8000",
29
- "http://192.168.50.21:8000",
29
+ # 192.168.50.21:8000 (romulus) PAUSED 2026-05-09 — its llama.cpp
30
+ # build reports `b1-e77056f` which is well below the b3000+ that
31
+ # the article-recommended Gemma 4 inference fixes shipped in. We
32
+ # suspect intermittent jumbled-text output (random character
33
+ # insertions like "contaiens"/"folloiwng") originates from this
34
+ # backend. Re-add this line and rebuild romulus once it's on a
35
+ # current llama.cpp build (b9000+ to match remus's docker image).
36
+ # "http://192.168.50.21:8000",
30
37
  # 192.168.50.19:8080 (Jetson) was probed for inclusion 2026-05-05
31
38
  # but its /v1/chat/completions endpoint times out after 90s with
32
39
  # no response (only /v1/models returns, and in Ollama-style schema
@@ -561,3 +561,58 @@ class TestRealWorldLoops:
561
561
  _add_tool_call(al, "read_file", '{"path":"validators.py"}')
562
562
  _add_tool_call(al, "search_replace", '{"file_path":"models.py","content":"..."}')
563
563
  assert al._check_tool_call_repetition() is None
564
+
565
+
566
+ # ============================================================================
567
+ # Hallucinated Tool Loop Tests
568
+ # ============================================================================
569
+
570
+ def _make_agent_with_tools(real_tools: list[str]) -> AgentLoop:
571
+ """Create an AgentLoop with a mock tool_manager that has known tools."""
572
+ al = _make_agent()
573
+ al.tool_manager = type("TM", (), {"available_tools": {t: object() for t in real_tools}})()
574
+ return al
575
+
576
+
577
+ class TestHallucinatedToolLoop:
578
+ """Model keeps calling a tool that doesn't exist."""
579
+
580
+ def test_1_hallucinated_call_returns_force_stop(self):
581
+ """Even a single hallucinated call triggers FORCE_STOP (threshold=1)."""
582
+ al = _make_agent_with_tools(["glob", "grep", "read_file", "write_file", "bash"])
583
+ _add_tool_call(al, "ralph_repo_index", '{"directory":"."}')
584
+ result = al._check_tool_call_repetition()
585
+ assert result is not None
586
+ assert "FORCE_STOP" in result
587
+
588
+ def test_3_hallucinated_calls_returns_force_stop(self):
589
+ """Still triggers with 3 calls (threshold=1, regression guard)."""
590
+ al = _make_agent_with_tools(["glob", "grep", "read_file", "write_file", "bash"])
591
+ for _ in range(3):
592
+ _add_tool_call(al, "ralph_repo_index", '{"directory":"."}')
593
+ result = al._check_tool_call_repetition()
594
+ assert result is not None
595
+ assert "FORCE_STOP" in result
596
+
597
+ def test_real_tool_calls_not_counted(self):
598
+ """Many calls to a real tool should not count toward hallucinated threshold."""
599
+ al = _make_agent_with_tools(["glob", "grep"])
600
+ for _ in range(5):
601
+ _add_tool_call(al, "glob", '{"pattern":"**/*.py"}')
602
+ # glob is real — should not trigger hallucinated-tool check
603
+ # (may trigger other checks but _hot_tool_path would be set)
604
+ # just verify it doesn't set _hot_tool_path=None via hallucinated path
605
+ al._check_tool_call_repetition()
606
+ # If it triggers, _hot_tool_path should be set (not None) unless
607
+ # the bash/sr/wf checks fired first. The hallucinated check should not fire.
608
+ # Key invariant: no crash
609
+ assert True # primary check: no AttributeError
610
+
611
+ def test_force_stop_clears_hot_tool_path(self):
612
+ """FORCE_STOP from hallucinated check should set _hot_tool_path=None."""
613
+ al = _make_agent_with_tools(["glob", "grep"])
614
+ al._hot_tool_path = ("some_tool", "/some/path")
615
+ for _ in range(3):
616
+ _add_tool_call(al, "ghost_tool", '{}')
617
+ al._check_tool_call_repetition()
618
+ assert al._hot_tool_path is None