drydock-cli 3.0.118__tar.gz → 3.0.119__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.
- {drydock_cli-3.0.118/drydock_cli.egg-info → drydock_cli-3.0.119}/PKG-INFO +1 -1
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/recipes.py +19 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119/drydock_cli.egg-info}/PKG-INFO +1 -1
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/pyproject.toml +1 -1
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/LICENSE +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/NOTICE +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/README.md +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/__init__.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/__main__.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/advisor.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/agent.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/bash_safety.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/builtin_skills/__init__.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/builtin_skills/rmf-categorize.md +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/builtin_skills/rmf-control.md +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/builtin_skills/rmf-poam.md +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/builtin_skills/rmf-review.md +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/builtin_skills/stig-assess.md +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/builtin_skills/stig-remediate.md +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/cci.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/cli.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/compaction.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/config.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/detect.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/extract.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/gittools.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/graphrag.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/guards.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/loop_detect.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/mcp.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/poam.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/providers.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/rmf.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/rmf_graph.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/skills.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/stig.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/suggest.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/tool_registry.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/tools/__init__.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/tui/__init__.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/tui/app.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/tui/approval.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/tui/messages.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/tui/widgets.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/tuning.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/web.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock_cli.egg-info/SOURCES.txt +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock_cli.egg-info/dependency_links.txt +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock_cli.egg-info/entry_points.txt +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock_cli.egg-info/requires.txt +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock_cli.egg-info/top_level.txt +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/setup.cfg +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_advisor.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_approval.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_back_command.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_bash_background.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_bash_binary_output.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_bash_crossplatform.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_bash_output_bounding.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_bash_process_group.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_bash_safety.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_bash_sanitize.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_bash_shell.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_bash_stdin.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_bash_stop_partial.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_bash_timeout_network.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_bash_timeout_param.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_cci.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_cli_agents.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_compact_command.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_compaction.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_config.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_config_migration.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_context_limit_config.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_detect.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_dispatch.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_e2e_connected.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_edit_replace_all.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_empty_response.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_extract.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_failure_loop.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_first_run_setup.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_gittools.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_glob_edit_edges.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_graphify_example.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_graphrag.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_graphrag_quoted_path.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_grep_and_read_robust.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_guards_and_tools.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_hallucinated_tools.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_leaked_tool_call.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_loop_detect.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_mcp.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_oneshot_unreachable.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_overthink_interrupt.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_plan_autocontinue.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_poam.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_providers_unreachable.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_read_index.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_recipes.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_repetition_interrupt.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_rmf.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_rmf_graph.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_rmf_stig_graph.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_runaway_repetition.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_screenshot.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_server_probe.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_skills.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_stall_retry.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_stig.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_stop.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_streaming_newlines.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_subagent.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_suggest.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_system_prompt_help.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_todo.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_tool_arg_coercion.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_tool_arg_coercion_more.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_tool_arg_parsing.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_tools_undo.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_tui.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_tuning.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_viewimage.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_vision_input.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_web_tools.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_windows_shell.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_write_content_coerce.py +0 -0
- {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_xccdf.py +0 -0
|
@@ -245,6 +245,25 @@ RECIPES: list[tuple[str, list[str], str]] = [
|
|
|
245
245
|
"Build: pdflatex -interaction=nonstopmode report.tex (run twice for refs).\n"
|
|
246
246
|
"Escape %, _, &, # in text. pandas: df.to_latex('t.tex', index=False). Confirm\n"
|
|
247
247
|
"report.pdf exists and pdflatex exit code is 0."),
|
|
248
|
+
|
|
249
|
+
("Reinforcement learning — Q-learning / policy on a small environment",
|
|
250
|
+
["rl", "reinforcement", "q-learning", "qlearning", "policy", "reward", "agent",
|
|
251
|
+
"environment", "gridworld", "episode", "bellman", "value", "action", "dqn",
|
|
252
|
+
"exploration", "epsilon", "gym", "cartpole", "bandit"],
|
|
253
|
+
"Tabular Q-learning for a discrete env with reset()/step(a)->(s2,r,done):\n"
|
|
254
|
+
" Q = np.zeros((nS, nA))\n"
|
|
255
|
+
" for ep in range(N):\n"
|
|
256
|
+
" s = env.reset()\n"
|
|
257
|
+
" for t in range(max_steps):\n"
|
|
258
|
+
" a = randint(nA) if rand() < eps else int(Q[s].argmax()) # eps-greedy\n"
|
|
259
|
+
" s2, r, done = env.step(a)\n"
|
|
260
|
+
" Q[s,a] += alpha * (r + gamma * Q[s2].max() - Q[s,a]) # Bellman update\n"
|
|
261
|
+
" s = s2\n"
|
|
262
|
+
" if done: break\n"
|
|
263
|
+
"Greedy policy = Q.argmax(1). Typical alpha=0.5, gamma=0.95, eps=0.1-0.2 (decay it).\n"
|
|
264
|
+
"Sanity: average episode reward should rise and the greedy policy should reach the\n"
|
|
265
|
+
"goal. For large/continuous states use a neural Q (DQN: replay buffer + target net)\n"
|
|
266
|
+
"or a policy network (REINFORCE: maximize sum of log_prob(a)*return)."),
|
|
248
267
|
]
|
|
249
268
|
|
|
250
269
|
_WORD = re.compile(r"[a-z0-9.]+")
|
|
@@ -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.
|
|
10
|
+
version = "3.0.119"
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|