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.
Files changed (128) hide show
  1. {drydock_cli-3.0.118/drydock_cli.egg-info → drydock_cli-3.0.119}/PKG-INFO +1 -1
  2. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/recipes.py +19 -0
  3. {drydock_cli-3.0.118 → drydock_cli-3.0.119/drydock_cli.egg-info}/PKG-INFO +1 -1
  4. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/pyproject.toml +1 -1
  5. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/LICENSE +0 -0
  6. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/NOTICE +0 -0
  7. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/README.md +0 -0
  8. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/__init__.py +0 -0
  9. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/__main__.py +0 -0
  10. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/advisor.py +0 -0
  11. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/agent.py +0 -0
  12. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/bash_safety.py +0 -0
  13. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/builtin_skills/__init__.py +0 -0
  14. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/builtin_skills/rmf-categorize.md +0 -0
  15. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/builtin_skills/rmf-control.md +0 -0
  16. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/builtin_skills/rmf-poam.md +0 -0
  17. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/builtin_skills/rmf-review.md +0 -0
  18. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/builtin_skills/stig-assess.md +0 -0
  19. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/builtin_skills/stig-remediate.md +0 -0
  20. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/cci.py +0 -0
  21. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/cli.py +0 -0
  22. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/compaction.py +0 -0
  23. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/config.py +0 -0
  24. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/detect.py +0 -0
  25. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/extract.py +0 -0
  26. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/gittools.py +0 -0
  27. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/graphrag.py +0 -0
  28. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/guards.py +0 -0
  29. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/loop_detect.py +0 -0
  30. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/mcp.py +0 -0
  31. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/poam.py +0 -0
  32. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/providers.py +0 -0
  33. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/rmf.py +0 -0
  34. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/rmf_graph.py +0 -0
  35. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/skills.py +0 -0
  36. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/stig.py +0 -0
  37. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/suggest.py +0 -0
  38. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/tool_registry.py +0 -0
  39. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/tools/__init__.py +0 -0
  40. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/tui/__init__.py +0 -0
  41. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/tui/app.py +0 -0
  42. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/tui/approval.py +0 -0
  43. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/tui/messages.py +0 -0
  44. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/tui/widgets.py +0 -0
  45. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/tuning.py +0 -0
  46. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock/web.py +0 -0
  47. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock_cli.egg-info/SOURCES.txt +0 -0
  48. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock_cli.egg-info/dependency_links.txt +0 -0
  49. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock_cli.egg-info/entry_points.txt +0 -0
  50. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock_cli.egg-info/requires.txt +0 -0
  51. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/drydock_cli.egg-info/top_level.txt +0 -0
  52. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/setup.cfg +0 -0
  53. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_advisor.py +0 -0
  54. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_approval.py +0 -0
  55. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_back_command.py +0 -0
  56. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_bash_background.py +0 -0
  57. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_bash_binary_output.py +0 -0
  58. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_bash_crossplatform.py +0 -0
  59. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_bash_output_bounding.py +0 -0
  60. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_bash_process_group.py +0 -0
  61. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_bash_safety.py +0 -0
  62. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_bash_sanitize.py +0 -0
  63. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_bash_shell.py +0 -0
  64. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_bash_stdin.py +0 -0
  65. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_bash_stop_partial.py +0 -0
  66. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_bash_timeout_network.py +0 -0
  67. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_bash_timeout_param.py +0 -0
  68. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_cci.py +0 -0
  69. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_cli_agents.py +0 -0
  70. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_compact_command.py +0 -0
  71. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_compaction.py +0 -0
  72. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_config.py +0 -0
  73. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_config_migration.py +0 -0
  74. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_context_limit_config.py +0 -0
  75. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_detect.py +0 -0
  76. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_dispatch.py +0 -0
  77. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_e2e_connected.py +0 -0
  78. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_edit_replace_all.py +0 -0
  79. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_empty_response.py +0 -0
  80. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_extract.py +0 -0
  81. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_failure_loop.py +0 -0
  82. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_first_run_setup.py +0 -0
  83. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_gittools.py +0 -0
  84. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_glob_edit_edges.py +0 -0
  85. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_graphify_example.py +0 -0
  86. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_graphrag.py +0 -0
  87. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_graphrag_quoted_path.py +0 -0
  88. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_grep_and_read_robust.py +0 -0
  89. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_guards_and_tools.py +0 -0
  90. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_hallucinated_tools.py +0 -0
  91. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_leaked_tool_call.py +0 -0
  92. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_loop_detect.py +0 -0
  93. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_mcp.py +0 -0
  94. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_oneshot_unreachable.py +0 -0
  95. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_overthink_interrupt.py +0 -0
  96. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_plan_autocontinue.py +0 -0
  97. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_poam.py +0 -0
  98. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_providers_unreachable.py +0 -0
  99. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_read_index.py +0 -0
  100. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_recipes.py +0 -0
  101. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_repetition_interrupt.py +0 -0
  102. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_rmf.py +0 -0
  103. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_rmf_graph.py +0 -0
  104. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_rmf_stig_graph.py +0 -0
  105. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_runaway_repetition.py +0 -0
  106. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_screenshot.py +0 -0
  107. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_server_probe.py +0 -0
  108. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_skills.py +0 -0
  109. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_stall_retry.py +0 -0
  110. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_stig.py +0 -0
  111. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_stop.py +0 -0
  112. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_streaming_newlines.py +0 -0
  113. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_subagent.py +0 -0
  114. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_suggest.py +0 -0
  115. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_system_prompt_help.py +0 -0
  116. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_todo.py +0 -0
  117. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_tool_arg_coercion.py +0 -0
  118. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_tool_arg_coercion_more.py +0 -0
  119. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_tool_arg_parsing.py +0 -0
  120. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_tools_undo.py +0 -0
  121. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_tui.py +0 -0
  122. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_tuning.py +0 -0
  123. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_viewimage.py +0 -0
  124. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_vision_input.py +0 -0
  125. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_web_tools.py +0 -0
  126. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_windows_shell.py +0 -0
  127. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/tests/test_write_content_coerce.py +0 -0
  128. {drydock_cli-3.0.118 → drydock_cli-3.0.119}/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.118
3
+ Version: 3.0.119
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
@@ -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.]+")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: drydock-cli
3
- Version: 3.0.118
3
+ Version: 3.0.119
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.118"
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