drydock-cli 3.1.4__tar.gz → 3.1.5__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 (190) hide show
  1. {drydock_cli-3.1.4/drydock_cli.egg-info → drydock_cli-3.1.5}/PKG-INFO +1 -1
  2. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/fiar.py +5 -1
  3. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/tools/__init__.py +7 -0
  4. {drydock_cli-3.1.4 → drydock_cli-3.1.5/drydock_cli.egg-info}/PKG-INFO +1 -1
  5. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/pyproject.toml +1 -1
  6. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/LICENSE +0 -0
  7. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/NOTICE +0 -0
  8. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/README.md +0 -0
  9. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/__init__.py +0 -0
  10. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/__main__.py +0 -0
  11. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/advisor.py +0 -0
  12. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/agent.py +0 -0
  13. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/bash_safety.py +0 -0
  14. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/budget.py +0 -0
  15. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/builtin_skills/__init__.py +0 -0
  16. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/builtin_skills/document-canvas.md +0 -0
  17. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/builtin_skills/fiar-assess.md +0 -0
  18. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/builtin_skills/fiar-cap.md +0 -0
  19. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/builtin_skills/fiar-evidence.md +0 -0
  20. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/builtin_skills/fiar-readiness.md +0 -0
  21. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/builtin_skills/ml-data.md +0 -0
  22. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/builtin_skills/ml-debug.md +0 -0
  23. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/builtin_skills/ml-finetune.md +0 -0
  24. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/builtin_skills/ml-metrics.md +0 -0
  25. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/builtin_skills/ml-rl.md +0 -0
  26. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/builtin_skills/ml-train.md +0 -0
  27. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/builtin_skills/nist-ai-rmf.md +0 -0
  28. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/builtin_skills/nist-csf.md +0 -0
  29. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/builtin_skills/rmf-categorize.md +0 -0
  30. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/builtin_skills/rmf-control.md +0 -0
  31. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/builtin_skills/rmf-poam.md +0 -0
  32. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/builtin_skills/rmf-review.md +0 -0
  33. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/builtin_skills/stig-assess.md +0 -0
  34. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/builtin_skills/stig-remediate.md +0 -0
  35. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/cci.py +0 -0
  36. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/cli.py +0 -0
  37. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/compaction.py +0 -0
  38. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/config.py +0 -0
  39. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/detect.py +0 -0
  40. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/doccanvas.py +0 -0
  41. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/events.py +0 -0
  42. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/extract.py +0 -0
  43. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/gittools.py +0 -0
  44. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/graphrag.py +0 -0
  45. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/guards.py +0 -0
  46. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/loop_detect.py +0 -0
  47. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/mcp.py +0 -0
  48. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/phases.py +0 -0
  49. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/poam.py +0 -0
  50. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/progress.py +0 -0
  51. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/providers.py +0 -0
  52. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/recipes.py +0 -0
  53. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/recovery.py +0 -0
  54. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/resume.py +0 -0
  55. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/rmf.py +0 -0
  56. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/rmf_graph.py +0 -0
  57. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/skills.py +0 -0
  58. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/stig.py +0 -0
  59. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/subagents.py +0 -0
  60. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/suggest.py +0 -0
  61. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/task_state.py +0 -0
  62. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/tool_policy.py +0 -0
  63. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/tool_registry.py +0 -0
  64. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/tool_result.py +0 -0
  65. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/tool_select.py +0 -0
  66. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/tool_validate.py +0 -0
  67. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/trajectory.py +0 -0
  68. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/tui/__init__.py +0 -0
  69. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/tui/app.py +0 -0
  70. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/tui/approval.py +0 -0
  71. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/tui/messages.py +0 -0
  72. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/tui/widgets.py +0 -0
  73. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/tuning.py +0 -0
  74. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/verification.py +0 -0
  75. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock/web.py +0 -0
  76. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock_cli.egg-info/SOURCES.txt +0 -0
  77. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock_cli.egg-info/dependency_links.txt +0 -0
  78. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock_cli.egg-info/entry_points.txt +0 -0
  79. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock_cli.egg-info/requires.txt +0 -0
  80. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/drydock_cli.egg-info/top_level.txt +0 -0
  81. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/setup.cfg +0 -0
  82. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_advisor.py +0 -0
  83. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_approval.py +0 -0
  84. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_back_command.py +0 -0
  85. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_bash_background.py +0 -0
  86. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_bash_binary_output.py +0 -0
  87. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_bash_crossplatform.py +0 -0
  88. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_bash_output_bounding.py +0 -0
  89. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_bash_process_group.py +0 -0
  90. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_bash_safety.py +0 -0
  91. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_bash_sanitize.py +0 -0
  92. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_bash_shell.py +0 -0
  93. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_bash_stdin.py +0 -0
  94. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_bash_stop_partial.py +0 -0
  95. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_bash_timeout_network.py +0 -0
  96. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_bash_timeout_param.py +0 -0
  97. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_budget.py +0 -0
  98. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_cci.py +0 -0
  99. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_cli_agents.py +0 -0
  100. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_compact_command.py +0 -0
  101. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_compaction.py +0 -0
  102. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_config.py +0 -0
  103. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_config_migration.py +0 -0
  104. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_context_limit_config.py +0 -0
  105. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_context_limit_issue25.py +0 -0
  106. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_criteria_coverage.py +0 -0
  107. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_cycling_detection.py +0 -0
  108. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_degenerate_argument.py +0 -0
  109. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_detect.py +0 -0
  110. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_dispatch.py +0 -0
  111. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_doccanvas.py +0 -0
  112. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_e2e_connected.py +0 -0
  113. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_edit_replace_all.py +0 -0
  114. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_effort_governor.py +0 -0
  115. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_empty_response.py +0 -0
  116. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_events.py +0 -0
  117. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_extract.py +0 -0
  118. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_failure_loop.py +0 -0
  119. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_fiar.py +0 -0
  120. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_first_run_setup.py +0 -0
  121. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_gittools.py +0 -0
  122. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_glob_edit_edges.py +0 -0
  123. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_graphify_example.py +0 -0
  124. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_graphrag.py +0 -0
  125. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_graphrag_quoted_path.py +0 -0
  126. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_graphrag_sqlite.py +0 -0
  127. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_grep_and_read_robust.py +0 -0
  128. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_guards_and_tools.py +0 -0
  129. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_hallucinated_tools.py +0 -0
  130. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_leaked_tool_call.py +0 -0
  131. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_loop_detect.py +0 -0
  132. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_mcp.py +0 -0
  133. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_model_registry.py +0 -0
  134. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_oneshot_unreachable.py +0 -0
  135. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_overthink_interrupt.py +0 -0
  136. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_phases.py +0 -0
  137. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_plan_autocontinue.py +0 -0
  138. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_poam.py +0 -0
  139. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_progress.py +0 -0
  140. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_providers_unreachable.py +0 -0
  141. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_read_index.py +0 -0
  142. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_recipes.py +0 -0
  143. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_recovery.py +0 -0
  144. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_recovery_config.py +0 -0
  145. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_recovery_integration.py +0 -0
  146. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_repeated_outcome.py +0 -0
  147. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_repetition_interrupt.py +0 -0
  148. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_resume_events.py +0 -0
  149. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_resume_restore.py +0 -0
  150. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_resume_snapshot.py +0 -0
  151. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_rmf.py +0 -0
  152. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_rmf_graph.py +0 -0
  153. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_rmf_stig_graph.py +0 -0
  154. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_rolling_plan.py +0 -0
  155. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_runaway_repetition.py +0 -0
  156. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_screenshot.py +0 -0
  157. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_server_probe.py +0 -0
  158. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_skills.py +0 -0
  159. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_sqlite_events.py +0 -0
  160. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_stall_retry.py +0 -0
  161. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_stig.py +0 -0
  162. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_stop.py +0 -0
  163. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_streaming_newlines.py +0 -0
  164. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_subagent.py +0 -0
  165. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_subagents.py +0 -0
  166. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_suggest.py +0 -0
  167. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_system_prompt_help.py +0 -0
  168. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_task_state.py +0 -0
  169. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_timeline.py +0 -0
  170. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_todo.py +0 -0
  171. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_tool_arg_coercion.py +0 -0
  172. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_tool_arg_coercion_more.py +0 -0
  173. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_tool_arg_parsing.py +0 -0
  174. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_tool_canonical.py +0 -0
  175. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_tool_policy.py +0 -0
  176. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_tool_result.py +0 -0
  177. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_tool_select.py +0 -0
  178. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_tool_validate.py +0 -0
  179. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_tools_undo.py +0 -0
  180. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_trajectory.py +0 -0
  181. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_tui.py +0 -0
  182. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_tuning.py +0 -0
  183. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_verification_gate.py +0 -0
  184. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_viewimage.py +0 -0
  185. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_vision_input.py +0 -0
  186. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_web_tools.py +0 -0
  187. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_windows_shell.py +0 -0
  188. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_worker_subagent.py +0 -0
  189. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_write_content_coerce.py +0 -0
  190. {drydock_cli-3.1.4 → drydock_cli-3.1.5}/tests/test_xccdf.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: drydock-cli
3
- Version: 3.1.4
3
+ Version: 3.1.5
4
4
  Summary: Drydock — a local, provider-agnostic terminal coding agent for local LLMs
5
5
  Author: Frank Bobe III
6
6
  License-Expression: Apache-2.0
@@ -494,7 +494,11 @@ def _main(argv: list[str]) -> int:
494
494
  if a.cmd == "new":
495
495
  eng = new_engagement(a.name, a.cycle, wave=a.wave); eng.save(a.path)
496
496
  print(f"created {a.path}: {eng.name} / {eng.cycle} (Wave {eng.wave}) "
497
- f"— {len(eng.controls)} controls"); return 0
497
+ f"— {len(eng.controls)} controls")
498
+ if not eng.controls and a.cycle.strip().upper() not in ("*", "ALL"):
499
+ print(f"⚠ 0 controls seeded — '{a.cycle}' is not a known cycle. Valid cycles: "
500
+ f"{', '.join(CYCLES)}, or ALL. (See: python -m drydock.fiar cycles)")
501
+ return 0
498
502
 
499
503
  eng = Engagement.load(a.path)
500
504
  if a.cmd == "controls":
@@ -973,6 +973,13 @@ def _file_index(lines: list[str], fp: str) -> str:
973
973
  f"offset/limit (e.g. {{\"file_path\": ..., \"offset\": <line-1>, "
974
974
  f"\"limit\": 120}}).\n"
975
975
  )
976
+ if is_doc:
977
+ head += (
978
+ "To SEARCH or EDIT this document, prefer the DOCUMENT CANVAS: DocOpen, then "
979
+ "DocSearch/DocRead a region and DocPatch/DocReplace/DocRedact by block id → "
980
+ "DocValidate → DocCommit — it edits precisely without loading the whole file "
981
+ "(don't rewrite a large document with Write/Edit).\n"
982
+ )
976
983
  if not anchors:
977
984
  return head + "(no def/class/header anchors found — read ranges with offset/limit.)"
978
985
  body = "\n".join(anchors[:400])
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: drydock-cli
3
- Version: 3.1.4
3
+ Version: 3.1.5
4
4
  Summary: Drydock — a local, provider-agnostic terminal coding agent for local LLMs
5
5
  Author: Frank Bobe III
6
6
  License-Expression: Apache-2.0
@@ -7,7 +7,7 @@ build-backend = "setuptools.build_meta"
7
7
  # PyPI distribution name is drydock-cli (the established install name, continued
8
8
  # from the retired v2 fork); the import package + CLI command stay `drydock`.
9
9
  name = "drydock-cli"
10
- version = "3.1.4"
10
+ version = "3.1.5"
11
11
  description = "Drydock — a local, provider-agnostic terminal coding agent for local LLMs"
12
12
  readme = "README.md"
13
13
  requires-python = ">=3.11"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes