drydock-cli 3.0.124__tar.gz → 3.0.125__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 (138) hide show
  1. {drydock_cli-3.0.124/drydock_cli.egg-info → drydock_cli-3.0.125}/PKG-INFO +1 -1
  2. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/agent.py +1 -0
  3. {drydock_cli-3.0.124 → drydock_cli-3.0.125/drydock_cli.egg-info}/PKG-INFO +1 -1
  4. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/pyproject.toml +1 -1
  5. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_failure_loop.py +3 -3
  6. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/LICENSE +0 -0
  7. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/NOTICE +0 -0
  8. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/README.md +0 -0
  9. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/__init__.py +0 -0
  10. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/__main__.py +0 -0
  11. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/advisor.py +0 -0
  12. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/bash_safety.py +0 -0
  13. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/builtin_skills/__init__.py +0 -0
  14. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/builtin_skills/ml-data.md +0 -0
  15. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/builtin_skills/ml-debug.md +0 -0
  16. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/builtin_skills/ml-finetune.md +0 -0
  17. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/builtin_skills/ml-metrics.md +0 -0
  18. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/builtin_skills/ml-rl.md +0 -0
  19. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/builtin_skills/ml-train.md +0 -0
  20. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/builtin_skills/rmf-categorize.md +0 -0
  21. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/builtin_skills/rmf-control.md +0 -0
  22. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/builtin_skills/rmf-poam.md +0 -0
  23. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/builtin_skills/rmf-review.md +0 -0
  24. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/builtin_skills/stig-assess.md +0 -0
  25. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/builtin_skills/stig-remediate.md +0 -0
  26. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/cci.py +0 -0
  27. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/cli.py +0 -0
  28. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/compaction.py +0 -0
  29. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/config.py +0 -0
  30. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/detect.py +0 -0
  31. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/extract.py +0 -0
  32. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/gittools.py +0 -0
  33. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/graphrag.py +0 -0
  34. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/guards.py +0 -0
  35. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/loop_detect.py +0 -0
  36. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/mcp.py +0 -0
  37. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/poam.py +0 -0
  38. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/providers.py +0 -0
  39. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/recipes.py +0 -0
  40. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/rmf.py +0 -0
  41. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/rmf_graph.py +0 -0
  42. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/skills.py +0 -0
  43. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/stig.py +0 -0
  44. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/suggest.py +0 -0
  45. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/task_state.py +0 -0
  46. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/tool_registry.py +0 -0
  47. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/tools/__init__.py +0 -0
  48. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/tui/__init__.py +0 -0
  49. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/tui/app.py +0 -0
  50. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/tui/approval.py +0 -0
  51. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/tui/messages.py +0 -0
  52. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/tui/widgets.py +0 -0
  53. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/tuning.py +0 -0
  54. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/verification.py +0 -0
  55. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock/web.py +0 -0
  56. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock_cli.egg-info/SOURCES.txt +0 -0
  57. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock_cli.egg-info/dependency_links.txt +0 -0
  58. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock_cli.egg-info/entry_points.txt +0 -0
  59. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock_cli.egg-info/requires.txt +0 -0
  60. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/drydock_cli.egg-info/top_level.txt +0 -0
  61. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/setup.cfg +0 -0
  62. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_advisor.py +0 -0
  63. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_approval.py +0 -0
  64. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_back_command.py +0 -0
  65. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_bash_background.py +0 -0
  66. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_bash_binary_output.py +0 -0
  67. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_bash_crossplatform.py +0 -0
  68. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_bash_output_bounding.py +0 -0
  69. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_bash_process_group.py +0 -0
  70. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_bash_safety.py +0 -0
  71. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_bash_sanitize.py +0 -0
  72. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_bash_shell.py +0 -0
  73. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_bash_stdin.py +0 -0
  74. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_bash_stop_partial.py +0 -0
  75. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_bash_timeout_network.py +0 -0
  76. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_bash_timeout_param.py +0 -0
  77. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_cci.py +0 -0
  78. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_cli_agents.py +0 -0
  79. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_compact_command.py +0 -0
  80. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_compaction.py +0 -0
  81. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_config.py +0 -0
  82. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_config_migration.py +0 -0
  83. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_context_limit_config.py +0 -0
  84. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_detect.py +0 -0
  85. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_dispatch.py +0 -0
  86. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_e2e_connected.py +0 -0
  87. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_edit_replace_all.py +0 -0
  88. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_empty_response.py +0 -0
  89. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_extract.py +0 -0
  90. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_first_run_setup.py +0 -0
  91. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_gittools.py +0 -0
  92. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_glob_edit_edges.py +0 -0
  93. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_graphify_example.py +0 -0
  94. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_graphrag.py +0 -0
  95. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_graphrag_quoted_path.py +0 -0
  96. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_grep_and_read_robust.py +0 -0
  97. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_guards_and_tools.py +0 -0
  98. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_hallucinated_tools.py +0 -0
  99. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_leaked_tool_call.py +0 -0
  100. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_loop_detect.py +0 -0
  101. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_mcp.py +0 -0
  102. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_oneshot_unreachable.py +0 -0
  103. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_overthink_interrupt.py +0 -0
  104. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_plan_autocontinue.py +0 -0
  105. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_poam.py +0 -0
  106. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_providers_unreachable.py +0 -0
  107. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_read_index.py +0 -0
  108. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_recipes.py +0 -0
  109. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_repetition_interrupt.py +0 -0
  110. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_rmf.py +0 -0
  111. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_rmf_graph.py +0 -0
  112. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_rmf_stig_graph.py +0 -0
  113. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_runaway_repetition.py +0 -0
  114. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_screenshot.py +0 -0
  115. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_server_probe.py +0 -0
  116. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_skills.py +0 -0
  117. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_stall_retry.py +0 -0
  118. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_stig.py +0 -0
  119. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_stop.py +0 -0
  120. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_streaming_newlines.py +0 -0
  121. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_subagent.py +0 -0
  122. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_suggest.py +0 -0
  123. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_system_prompt_help.py +0 -0
  124. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_task_state.py +0 -0
  125. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_todo.py +0 -0
  126. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_tool_arg_coercion.py +0 -0
  127. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_tool_arg_coercion_more.py +0 -0
  128. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_tool_arg_parsing.py +0 -0
  129. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_tools_undo.py +0 -0
  130. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_tui.py +0 -0
  131. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_tuning.py +0 -0
  132. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_verification_gate.py +0 -0
  133. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_viewimage.py +0 -0
  134. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_vision_input.py +0 -0
  135. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_web_tools.py +0 -0
  136. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_windows_shell.py +0 -0
  137. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_write_content_coerce.py +0 -0
  138. {drydock_cli-3.0.124 → drydock_cli-3.0.125}/tests/test_xccdf.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: drydock-cli
3
- Version: 3.0.124
3
+ Version: 3.0.125
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
@@ -341,6 +341,7 @@ def run(
341
341
  # wedge; once it runs any check (ran_verification) the gate is satisfied.
342
342
  if (
343
343
  config.get("verify_gate", True)
344
+ and allow is None # main task only — not scoped sub-agents
344
345
  and session_has_edited
345
346
  and not ran_verification
346
347
  and verify_gate_nudges < 2
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: drydock-cli
3
- Version: 3.0.124
3
+ Version: 3.0.125
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.0.124"
10
+ version = "3.0.125"
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"
@@ -38,7 +38,7 @@ def test_changing_args_do_not_trip_valve(monkeypatch):
38
38
  monkeypatch.setattr(agent_mod, "stream", lambda **kw: iter([seq.pop(0)]))
39
39
  st = AgentState()
40
40
  import tempfile
41
- list(run("go", st, {"model": "m", "cwd": tempfile.mkdtemp()}, "sys"))
41
+ list(run("go", st, {"model": "m", "cwd": tempfile.mkdtemp(), "verify_gate": False}, "sys"))
42
42
  assert any(m.get("role") == "assistant" and m.get("content") == "done"
43
43
  for m in st.messages)
44
44
 
@@ -57,7 +57,7 @@ def test_identical_SUCCESS_streak_ends_turn(monkeypatch):
57
57
 
58
58
  monkeypatch.setattr(agent_mod, "stream", counting)
59
59
  st = AgentState()
60
- list(run("go", st, {"model": "m", "cwd": tempfile.mkdtemp()}, "sys"))
60
+ list(run("go", st, {"model": "m", "cwd": tempfile.mkdtemp(), "verify_gate": False}, "sys"))
61
61
  assert calls["n"] <= 12 # identical success → stopped at the cap, not 200
62
62
 
63
63
 
@@ -73,7 +73,7 @@ def test_polling_with_changing_result_not_tripped(monkeypatch):
73
73
  seq.append(AssistantTurn("done", [], 1, 1))
74
74
  monkeypatch.setattr(agent_mod, "stream", lambda **kw: iter([seq.pop(0)]))
75
75
  st = AgentState()
76
- list(run("go", st, {"model": "m", "cwd": tempfile.mkdtemp()}, "sys"))
76
+ list(run("go", st, {"model": "m", "cwd": tempfile.mkdtemp(), "verify_gate": False}, "sys"))
77
77
  assert any(m.get("content") == "done" for m in st.messages)
78
78
 
79
79
 
File without changes
File without changes
File without changes
File without changes