misterdev 0.3.1__tar.gz → 0.4.1__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 (357) hide show
  1. {misterdev-0.3.1/misterdev.egg-info → misterdev-0.4.1}/PKG-INFO +4 -3
  2. {misterdev-0.3.1 → misterdev-0.4.1}/README.md +3 -2
  3. misterdev-0.4.1/man/misterdev.1 +142 -0
  4. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/__init__.py +1 -1
  5. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/agent.py +366 -30
  6. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/agent_helpers.py +88 -14
  7. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/cli.py +60 -3
  8. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/config.py +66 -7
  9. misterdev-0.4.1/misterdev/core/context/localizer.py +254 -0
  10. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/context/topography/engine.py +17 -0
  11. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/economics/context_budget.py +1 -1
  12. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/evolution/__init__.py +33 -0
  13. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/evolution/driver.py +17 -1
  14. misterdev-0.4.1/misterdev/core/evolution/paired.py +147 -0
  15. misterdev-0.4.1/misterdev/core/evolution/partial_credit.py +123 -0
  16. misterdev-0.4.1/misterdev/core/evolution/tool_corpus.py +199 -0
  17. misterdev-0.4.1/misterdev/core/evolution/tool_invention.py +140 -0
  18. misterdev-0.4.1/misterdev/core/evolution/tool_promotion.py +101 -0
  19. misterdev-0.4.1/misterdev/core/evolution/tool_runner.py +167 -0
  20. misterdev-0.4.1/misterdev/core/execution/blocker.py +98 -0
  21. misterdev-0.4.1/misterdev/core/execution/deferral.py +97 -0
  22. misterdev-0.4.1/misterdev/core/execution/early_abort.py +98 -0
  23. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/execution/progress.py +23 -21
  24. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/execution/project.py +103 -8
  25. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/execution/registry.py +26 -12
  26. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/integration/mcp.py +145 -20
  27. misterdev-0.4.1/misterdev/core/integration/mcp_catalog.py +337 -0
  28. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/integration/mcp_gather.py +125 -4
  29. misterdev-0.4.1/misterdev/core/integration/mcp_registry.py +927 -0
  30. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/learning/reproduction.py +21 -0
  31. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/models.py +4 -1
  32. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/planning/assessment.py +1 -0
  33. misterdev-0.4.1/misterdev/core/planning/requirements.py +274 -0
  34. misterdev-0.4.1/misterdev/core/planning/tasklist_parser.py +587 -0
  35. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/task.py +45 -1
  36. misterdev-0.4.1/misterdev/core/verification/changed_region_mutation.py +191 -0
  37. misterdev-0.4.1/misterdev/core/verification/flaky.py +194 -0
  38. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/verification/gatekeeper/__init__.py +41 -2
  39. misterdev-0.4.1/misterdev/core/verification/held_out_oracle.py +128 -0
  40. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/verification/independent.py +9 -4
  41. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/verification/validator.py +39 -0
  42. misterdev-0.4.1/misterdev/interactive.py +158 -0
  43. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/llm/client/__init__.py +2 -0
  44. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/llm/client/providers.py +22 -2
  45. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/task_executors/markdown_plan_executor/context_mixin.py +170 -2
  46. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/task_executors/markdown_plan_executor/edits_mixin.py +158 -0
  47. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/task_executors/markdown_plan_executor/execute_mixin.py +202 -6
  48. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/task_executors/markdown_plan_executor/gates_mixin.py +41 -0
  49. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/task_executors/markdown_plan_executor/helpers.py +40 -0
  50. misterdev-0.4.1/misterdev/task_executors/markdown_plan_executor/results_mixin.py +100 -0
  51. {misterdev-0.3.1 → misterdev-0.4.1/misterdev.egg-info}/PKG-INFO +4 -3
  52. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev.egg-info/SOURCES.txt +38 -0
  53. {misterdev-0.3.1 → misterdev-0.4.1}/pyproject.toml +5 -0
  54. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_agent_helpers.py +65 -0
  55. misterdev-0.4.1/tests/test_changed_region_mutation.py +173 -0
  56. misterdev-0.4.1/tests/test_deferral.py +235 -0
  57. misterdev-0.4.1/tests/test_early_abort.py +59 -0
  58. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_executor.py +290 -2
  59. misterdev-0.4.1/tests/test_flaky.py +105 -0
  60. misterdev-0.4.1/tests/test_held_out_oracle.py +73 -0
  61. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_integration_gate_count.py +141 -12
  62. misterdev-0.4.1/tests/test_interactive.py +102 -0
  63. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_llm_client.py +24 -0
  64. misterdev-0.4.1/tests/test_localizer.py +135 -0
  65. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_mcp.py +289 -5
  66. misterdev-0.4.1/tests/test_mcp_registry.py +388 -0
  67. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_mcp_remote.py +3 -3
  68. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_model_selector.py +38 -0
  69. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_modes.py +46 -0
  70. misterdev-0.4.1/tests/test_no_output_forgiveness.py +87 -0
  71. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_orchestrator_fixes.py +25 -11
  72. misterdev-0.4.1/tests/test_paired.py +84 -0
  73. misterdev-0.4.1/tests/test_partial_credit.py +74 -0
  74. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_registry.py +18 -0
  75. misterdev-0.4.1/tests/test_requirements.py +203 -0
  76. misterdev-0.4.1/tests/test_runtime_tooling_wiring.py +74 -0
  77. misterdev-0.4.1/tests/test_tasklist_parser.py +302 -0
  78. misterdev-0.4.1/tests/test_tool_capture_wiring.py +92 -0
  79. misterdev-0.4.1/tests/test_tool_corpus.py +79 -0
  80. misterdev-0.4.1/tests/test_tool_invention.py +119 -0
  81. misterdev-0.4.1/tests/test_tool_promotion.py +77 -0
  82. misterdev-0.4.1/tests/test_tool_runner.py +133 -0
  83. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_validator.py +15 -0
  84. misterdev-0.3.1/misterdev/task_executors/markdown_plan_executor/results_mixin.py +0 -23
  85. {misterdev-0.3.1 → misterdev-0.4.1}/COMMERCIAL_LICENSE.md +0 -0
  86. {misterdev-0.3.1 → misterdev-0.4.1}/LICENSE +0 -0
  87. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/analyzers/__init__.py +0 -0
  88. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/analyzers/project_analyzer/__init__.py +0 -0
  89. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/analyzers/project_analyzer/detection.py +0 -0
  90. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/analyzers/project_analyzer/merge.py +0 -0
  91. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/analyzers/project_analyzer/overview.py +0 -0
  92. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/analyzers/project_analyzer/prompts.py +0 -0
  93. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/__init__.py +0 -0
  94. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/audit.py +0 -0
  95. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/config.py +0 -0
  96. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/context/__init__.py +0 -0
  97. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/context/change_tracker.py +0 -0
  98. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/context/contracts/__init__.py +0 -0
  99. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/context/contracts/_log.py +0 -0
  100. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/context/contracts/_text.py +0 -0
  101. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/context/contracts/c_tree_sitter.py +0 -0
  102. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/context/contracts/cpp_tree_sitter.py +0 -0
  103. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/context/contracts/csharp_tree_sitter.py +0 -0
  104. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/context/contracts/extraction.py +0 -0
  105. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/context/contracts/javascript_tree_sitter.py +0 -0
  106. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/context/contracts/kotlin_tree_sitter.py +0 -0
  107. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/context/contracts/python_generic.py +0 -0
  108. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/context/contracts/registry.py +0 -0
  109. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/context/contracts/rust_line.py +0 -0
  110. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/context/contracts/rust_tree_sitter.py +0 -0
  111. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/context/contracts/swift_tree_sitter.py +0 -0
  112. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/context/contracts/typescript_tree_sitter.py +0 -0
  113. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/context/guidance/__init__.py +0 -0
  114. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/context/guidance/_rules.py +0 -0
  115. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/context/guidance/cpp.py +0 -0
  116. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/context/guidance/csharp.py +0 -0
  117. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/context/guidance/css.py +0 -0
  118. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/context/guidance/elixir.py +0 -0
  119. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/context/guidance/html.py +0 -0
  120. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/context/guidance/kotlin.py +0 -0
  121. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/context/guidance/python.py +0 -0
  122. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/context/guidance/react.py +0 -0
  123. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/context/guidance/rust.py +0 -0
  124. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/context/guidance/swift.py +0 -0
  125. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/context/guidance/typescript.py +0 -0
  126. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/context/lsp.py +0 -0
  127. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/context/lsp_swift.py +0 -0
  128. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/context/scratchpad.py +0 -0
  129. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/context/topography/__init__.py +0 -0
  130. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/context/topography/_log.py +0 -0
  131. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/context/topography/cache.py +0 -0
  132. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/context/topography/graph.py +0 -0
  133. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/context/topography/nodes.py +0 -0
  134. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/context/topography/parsers.py +0 -0
  135. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/context/topography/syntax.py +0 -0
  136. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/economics/__init__.py +0 -0
  137. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/economics/embeddings.py +0 -0
  138. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/economics/free_models.py +0 -0
  139. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/economics/llm_cache.py +0 -0
  140. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/economics/model_catalog.py +0 -0
  141. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/economics/model_ledger.py +0 -0
  142. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/economics/model_selector.py +0 -0
  143. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/evolution/__main__.py +0 -0
  144. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/evolution/adapters.py +0 -0
  145. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/evolution/archive.py +0 -0
  146. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/evolution/attribution.py +0 -0
  147. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/evolution/fitness.py +0 -0
  148. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/evolution/guardrail.py +0 -0
  149. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/evolution/holdout.py +0 -0
  150. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/evolution/loop.py +0 -0
  151. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/evolution/prior.py +0 -0
  152. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/evolution/proposer.py +0 -0
  153. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/evolution/sandbox.py +0 -0
  154. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/evolution/screen.py +0 -0
  155. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/evolution/tool_library.py +0 -0
  156. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/execution/__init__.py +0 -0
  157. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/execution/bounded.py +0 -0
  158. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/execution/compile_view.py +0 -0
  159. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/execution/container.py +0 -0
  160. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/execution/error_classifier.py +0 -0
  161. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/execution/error_log_compressor.py +0 -0
  162. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/execution/error_resolver.py +0 -0
  163. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/execution/failure_view.py +0 -0
  164. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/execution/governance.py +0 -0
  165. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/execution/outcomes.py +0 -0
  166. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/execution/probe.py +0 -0
  167. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/execution/runtime.py +0 -0
  168. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/gitcmd.py +0 -0
  169. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/integration/__init__.py +0 -0
  170. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/learning/__init__.py +0 -0
  171. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/learning/failure_log.py +0 -0
  172. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/learning/failure_taxonomy.py +0 -0
  173. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/learning/targeting.py +0 -0
  174. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/learning/warm_start.py +0 -0
  175. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/modes.py +0 -0
  176. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/planning/__init__.py +0 -0
  177. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/planning/advisor.py +0 -0
  178. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/planning/decomposer.py +0 -0
  179. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/planning/lesson_store.py +0 -0
  180. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/planning/metacognition.py +0 -0
  181. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/planning/sovereign.py +0 -0
  182. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/planning/targets.py +0 -0
  183. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/planning/verifier_decomposition.py +0 -0
  184. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/reporting/__init__.py +0 -0
  185. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/reporting/report.py +0 -0
  186. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/reporting/report_view.py +0 -0
  187. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/verification/__init__.py +0 -0
  188. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/verification/claim_verifier.py +0 -0
  189. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/verification/critic.py +0 -0
  190. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/verification/gatekeeper/constants.py +0 -0
  191. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/verification/gatekeeper/helpers.py +0 -0
  192. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/verification/goal_check.py +0 -0
  193. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/verification/mutation_gate.py +0 -0
  194. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/verification/preflight.py +0 -0
  195. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/verification/reflection.py +0 -0
  196. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/verification/spec_tests.py +0 -0
  197. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/verification/vision_verify.py +0 -0
  198. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/core/verification/web_verify.py +0 -0
  199. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/environments/__init__.py +0 -0
  200. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/environments/base_env.py +0 -0
  201. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/environments/container_env.py +0 -0
  202. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/environments/venv_env.py +0 -0
  203. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/llm/__init__.py +0 -0
  204. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/llm/client/base.py +0 -0
  205. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/llm/client/edits.py +0 -0
  206. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/llm/client/embeddings.py +0 -0
  207. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/llm/client/errors.py +0 -0
  208. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/llm/client/response.py +0 -0
  209. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/llm/prompt_manager.py +0 -0
  210. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/llm/responses/__init__.py +0 -0
  211. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/llm/responses/apply.py +0 -0
  212. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/llm/responses/json_extract.py +0 -0
  213. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/llm/responses/models.py +0 -0
  214. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/llm/responses/parsing.py +0 -0
  215. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/logging_setup.py +0 -0
  216. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/mcp_server.py +0 -0
  217. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/nl_cli.py +0 -0
  218. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/plugins.py +0 -0
  219. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/py.typed +0 -0
  220. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/task_executors/__init__.py +0 -0
  221. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/task_executors/base_executor.py +0 -0
  222. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/task_executors/markdown_plan_executor/__init__.py +0 -0
  223. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/task_executors/markdown_plan_executor/commands_mixin.py +0 -0
  224. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/task_executors/markdown_plan_executor/critic_spec_mixin.py +0 -0
  225. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/task_executors/markdown_plan_executor/git_mixin.py +0 -0
  226. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/task_executors/markdown_plan_executor/llm_mixin.py +0 -0
  227. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/tools/__init__.py +0 -0
  228. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/tools/base_tool.py +0 -0
  229. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/tools/command.py +0 -0
  230. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/tools/dependency.py +0 -0
  231. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/tools/file_io.py +0 -0
  232. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/tools/formatter.py +0 -0
  233. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/tools/git_tool.py +0 -0
  234. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/utils/__init__.py +0 -0
  235. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/utils/file_utils.py +0 -0
  236. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev/utils/process.py +0 -0
  237. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev.egg-info/dependency_links.txt +0 -0
  238. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev.egg-info/entry_points.txt +0 -0
  239. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev.egg-info/requires.txt +0 -0
  240. {misterdev-0.3.1 → misterdev-0.4.1}/misterdev.egg-info/top_level.txt +0 -0
  241. {misterdev-0.3.1 → misterdev-0.4.1}/setup.cfg +0 -0
  242. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_advisor.py +0 -0
  243. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_assessment.py +0 -0
  244. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_audit.py +0 -0
  245. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_audit_gate.py +0 -0
  246. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_bounded.py +0 -0
  247. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_budget_halt.py +0 -0
  248. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_change_tracker.py +0 -0
  249. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_claim_verifier.py +0 -0
  250. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_command_tool.py +0 -0
  251. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_compile_view.py +0 -0
  252. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_config.py +0 -0
  253. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_container.py +0 -0
  254. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_context_budget.py +0 -0
  255. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_contracts.py +0 -0
  256. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_contracts_c.py +0 -0
  257. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_contracts_cpp.py +0 -0
  258. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_contracts_csharp_ts.py +0 -0
  259. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_contracts_javascript.py +0 -0
  260. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_contracts_kotlin.py +0 -0
  261. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_contracts_swift.py +0 -0
  262. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_contracts_typescript.py +0 -0
  263. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_critic.py +0 -0
  264. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_decomposer.py +0 -0
  265. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_dependency_tool.py +0 -0
  266. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_detect_lint_deps.py +0 -0
  267. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_dynamic_model_integration.py +0 -0
  268. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_embeddings.py +0 -0
  269. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_error_classifier.py +0 -0
  270. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_error_log_compressor.py +0 -0
  271. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_error_resolver.py +0 -0
  272. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_evolution_adapters.py +0 -0
  273. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_evolution_archive.py +0 -0
  274. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_evolution_attribution.py +0 -0
  275. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_evolution_driver.py +0 -0
  276. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_evolution_fitness.py +0 -0
  277. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_evolution_guardrail.py +0 -0
  278. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_evolution_holdout.py +0 -0
  279. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_evolution_holdout_wiring.py +0 -0
  280. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_evolution_loop.py +0 -0
  281. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_evolution_prior.py +0 -0
  282. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_evolution_proposer.py +0 -0
  283. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_evolution_sandbox.py +0 -0
  284. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_evolution_screen.py +0 -0
  285. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_executor_git.py +0 -0
  286. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_extensibility.py +0 -0
  287. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_failure_log.py +0 -0
  288. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_failure_targeting.py +0 -0
  289. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_failure_taxonomy.py +0 -0
  290. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_failure_view.py +0 -0
  291. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_file_utils.py +0 -0
  292. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_free_models.py +0 -0
  293. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_gatekeeper.py +0 -0
  294. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_gates_error_context.py +0 -0
  295. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_gitcmd.py +0 -0
  296. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_goal_check.py +0 -0
  297. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_goal_check_wiring.py +0 -0
  298. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_governance.py +0 -0
  299. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_grounded_spec.py +0 -0
  300. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_guidance.py +0 -0
  301. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_guidance_cpp.py +0 -0
  302. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_guidance_csharp.py +0 -0
  303. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_guidance_css.py +0 -0
  304. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_guidance_elixir.py +0 -0
  305. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_guidance_html.py +0 -0
  306. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_guidance_kotlin.py +0 -0
  307. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_guidance_python.py +0 -0
  308. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_guidance_react.py +0 -0
  309. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_guidance_rust.py +0 -0
  310. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_guidance_swift.py +0 -0
  311. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_guidance_typescript.py +0 -0
  312. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_hms_integration.py +0 -0
  313. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_independent.py +0 -0
  314. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_learning_semantic.py +0 -0
  315. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_lesson_efficacy.py +0 -0
  316. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_lesson_store.py +0 -0
  317. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_llm_cache.py +0 -0
  318. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_lsp.py +0 -0
  319. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_lsp_context.py +0 -0
  320. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_lsp_integration.py +0 -0
  321. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_lsp_swift.py +0 -0
  322. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_mcp_server.py +0 -0
  323. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_metacognition.py +0 -0
  324. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_model_catalog.py +0 -0
  325. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_model_ledger.py +0 -0
  326. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_mutation_gate.py +0 -0
  327. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_native_harness.py +0 -0
  328. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_nl_cli.py +0 -0
  329. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_orchestrator_config.py +0 -0
  330. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_outcomes.py +0 -0
  331. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_plugins.py +0 -0
  332. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_polyglot_harness.py +0 -0
  333. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_preflight.py +0 -0
  334. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_probe.py +0 -0
  335. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_process.py +0 -0
  336. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_progress.py +0 -0
  337. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_prompt_manager.py +0 -0
  338. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_reflection.py +0 -0
  339. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_report.py +0 -0
  340. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_report_view.py +0 -0
  341. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_reproduction_corpus.py +0 -0
  342. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_responses.py +0 -0
  343. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_runtime.py +0 -0
  344. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_scratchpad.py +0 -0
  345. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_security.py +0 -0
  346. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_sovereign.py +0 -0
  347. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_spec_tests.py +0 -0
  348. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_swebench_harness.py +0 -0
  349. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_targets.py +0 -0
  350. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_task_manager.py +0 -0
  351. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_tool_library.py +0 -0
  352. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_topography.py +0 -0
  353. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_topography_cache.py +0 -0
  354. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_verifier_decomposition.py +0 -0
  355. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_vision_verify.py +0 -0
  356. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_web_verify.py +0 -0
  357. {misterdev-0.3.1 → misterdev-0.4.1}/tests/test_wiring_probe_staging.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: misterdev
3
- Version: 0.3.1
3
+ Version: 0.4.1
4
4
  Summary: An autonomous, extensible LLM build orchestrator that plans, edits, and verifies code across languages.
5
5
  Author-email: David Condrey <david@writerslogic.com>
6
6
  License-Expression: AGPL-3.0-or-later
@@ -51,6 +51,7 @@ Provides-Extra: mcp
51
51
  Requires-Dist: mcp>=1.0.0; extra == "mcp"
52
52
  Dynamic: license-file
53
53
 
54
+ <!-- mcp-name: io.github.dcondrey/misterdev -->
54
55
  <p align="center">
55
56
  <img src="https://raw.githubusercontent.com/dcondrey/misterdev/main/assets/logo.gif" alt="misterdev" width="220">
56
57
  </p>
@@ -150,7 +151,7 @@ misterdev keeps a durable, fingerprinted stream of its own real failures and run
150
151
 
151
152
  On the correctness side, misterdev works **reproduction-first**: for an issue-driven task it synthesizes a failing test from the acceptance criteria, **validates that the test actually fails on the clean tree** (a test that reproduces nothing is discarded rather than trusted), then drives the fix to turn it green — so the model edits toward a concrete, verified target instead of a description.
152
153
 
153
- **Two-timescale evolution** *(design; see [docs/two-timescale-evolution.md](docs/two-timescale-evolution.md))* takes the self-improvement further than a memoryless runtime agent can: the agent invents task-specific tools at runtime, and the ones that **prove they generalize** are consolidatedthrough the same held-out promotion gate into a **persistent, best-per-capability tool library that future runs start from**. Fast loop explores; slow loop keeps the winners; the held-out gate keeps the library general rather than benchmark-overfit. Capability compounds across runs instead of being reinvented each task.
154
+ **Two-timescale evolution** *(built; opt-in via `orchestrator.runtime_tooling`; see [docs/two-timescale-evolution.md](docs/two-timescale-evolution.md))* takes the self-improvement further than a memoryless runtime agent can. At **runtime**, the model may author a small task-specific helper tool that runs **sandboxed** (a hardened, network-less container — untrusted code never touches the host or the repo, and with no container engine the capability degrades off); its output feeds the edit. Every invented tool is then captured with the task's outcome into a **tool corpus** a free byproduct of normal runs and a deliberate promotion pass admits the tools whose success **generalizes** on a held-out task split (baseline drawn from the reproduction corpus) into a **persistent, best-per-capability tool library that future runs start from**. Fast loop invents; slow loop keeps only the winners; the same held-out gate that guards scaffold self-edits keeps the library general rather than benchmark-overfit. Capability **compounds across runs** instead of being reinvented each task — the memory the current top open-source scaffolds lack. Run the promotion pass with `python -m misterdev.core.evolution.tool_promotion <project>`.
154
155
 
155
156
  ### Extensibility
156
157
 
@@ -170,7 +171,7 @@ Gate-verified pass@1 on [Aider's polyglot benchmark](https://github.com/Aider-AI
170
171
  | Python | 8 / 10 | **80%** |
171
172
  | Rust | 7 / 10 | **70%** |
172
173
 
173
- A continuous stress run has solved **20/20** across the three languages with zero failures — including the exercises usually cited as hard (bowling, forth, arbitrary-precision decimal). Every solve is judged by the exercise's own hidden tests, not the model's say-so. Full numbers, methodology, and how to reproduce: **[docs/benchmark-results.md](docs/benchmark-results.md)**. Test suite: **1,897 passing** — **[docs/TESTING.md](docs/TESTING.md)**.
174
+ A continuous stress run has solved **20/20** across the three languages with zero failures — including the exercises usually cited as hard (bowling, forth, arbitrary-precision decimal). Every solve is judged by the exercise's own hidden tests, not the model's say-so. Full numbers, methodology, and how to reproduce: **[docs/benchmark-results.md](docs/benchmark-results.md)**. Test suite: **1,941 passing** — **[docs/TESTING.md](docs/TESTING.md)**.
174
175
 
175
176
  ## CLI reference
176
177
 
@@ -1,3 +1,4 @@
1
+ <!-- mcp-name: io.github.dcondrey/misterdev -->
1
2
  <p align="center">
2
3
  <img src="https://raw.githubusercontent.com/dcondrey/misterdev/main/assets/logo.gif" alt="misterdev" width="220">
3
4
  </p>
@@ -97,7 +98,7 @@ misterdev keeps a durable, fingerprinted stream of its own real failures and run
97
98
 
98
99
  On the correctness side, misterdev works **reproduction-first**: for an issue-driven task it synthesizes a failing test from the acceptance criteria, **validates that the test actually fails on the clean tree** (a test that reproduces nothing is discarded rather than trusted), then drives the fix to turn it green — so the model edits toward a concrete, verified target instead of a description.
99
100
 
100
- **Two-timescale evolution** *(design; see [docs/two-timescale-evolution.md](docs/two-timescale-evolution.md))* takes the self-improvement further than a memoryless runtime agent can: the agent invents task-specific tools at runtime, and the ones that **prove they generalize** are consolidatedthrough the same held-out promotion gate into a **persistent, best-per-capability tool library that future runs start from**. Fast loop explores; slow loop keeps the winners; the held-out gate keeps the library general rather than benchmark-overfit. Capability compounds across runs instead of being reinvented each task.
101
+ **Two-timescale evolution** *(built; opt-in via `orchestrator.runtime_tooling`; see [docs/two-timescale-evolution.md](docs/two-timescale-evolution.md))* takes the self-improvement further than a memoryless runtime agent can. At **runtime**, the model may author a small task-specific helper tool that runs **sandboxed** (a hardened, network-less container — untrusted code never touches the host or the repo, and with no container engine the capability degrades off); its output feeds the edit. Every invented tool is then captured with the task's outcome into a **tool corpus** a free byproduct of normal runs and a deliberate promotion pass admits the tools whose success **generalizes** on a held-out task split (baseline drawn from the reproduction corpus) into a **persistent, best-per-capability tool library that future runs start from**. Fast loop invents; slow loop keeps only the winners; the same held-out gate that guards scaffold self-edits keeps the library general rather than benchmark-overfit. Capability **compounds across runs** instead of being reinvented each task — the memory the current top open-source scaffolds lack. Run the promotion pass with `python -m misterdev.core.evolution.tool_promotion <project>`.
101
102
 
102
103
  ### Extensibility
103
104
 
@@ -117,7 +118,7 @@ Gate-verified pass@1 on [Aider's polyglot benchmark](https://github.com/Aider-AI
117
118
  | Python | 8 / 10 | **80%** |
118
119
  | Rust | 7 / 10 | **70%** |
119
120
 
120
- A continuous stress run has solved **20/20** across the three languages with zero failures — including the exercises usually cited as hard (bowling, forth, arbitrary-precision decimal). Every solve is judged by the exercise's own hidden tests, not the model's say-so. Full numbers, methodology, and how to reproduce: **[docs/benchmark-results.md](docs/benchmark-results.md)**. Test suite: **1,897 passing** — **[docs/TESTING.md](docs/TESTING.md)**.
121
+ A continuous stress run has solved **20/20** across the three languages with zero failures — including the exercises usually cited as hard (bowling, forth, arbitrary-precision decimal). Every solve is judged by the exercise's own hidden tests, not the model's say-so. Full numbers, methodology, and how to reproduce: **[docs/benchmark-results.md](docs/benchmark-results.md)**. Test suite: **1,941 passing** — **[docs/TESTING.md](docs/TESTING.md)**.
121
122
 
122
123
  ## CLI reference
123
124
 
@@ -0,0 +1,142 @@
1
+ .TH MISTERDEV 1 "2026-07-11" "misterdev" "User Commands"
2
+ .SH NAME
3
+ misterdev \- autonomous LLM build orchestrator
4
+ .SH SYNOPSIS
5
+ .B misterdev
6
+ [\fIcommand\fR] [\fIoptions\fR]
7
+ .br
8
+ .B misterdev
9
+ \(dq\fIplain-english request\fR\(dq
10
+ .br
11
+ .B misterdev
12
+ .SH DESCRIPTION
13
+ .B misterdev
14
+ points a large language model at a repository and a goal, reads the codebase as
15
+ a symbol graph, decomposes the goal into ordered tasks, edits code with anchored
16
+ SEARCH/REPLACE hunks, and runs every change through correctness gates (build,
17
+ lint, tests, typecheck) before reporting done. A change that regresses the test
18
+ suite is reverted through git; nothing merges unless it stays green.
19
+ .PP
20
+ There are three ways to drive it, from most guided to most explicit:
21
+ .TP
22
+ .B Interactive
23
+ Run
24
+ .B misterdev
25
+ with no arguments (or
26
+ .BR "misterdev i" )
27
+ for a guided menu \(em pick an action, answer a couple of prompts, confirm.
28
+ Nothing to memorize.
29
+ .TP
30
+ .B Natural language
31
+ If the first argument is not a known command, the whole line is treated as plain
32
+ English:
33
+ .B misterdev
34
+ maps it to an action with its own model, previews it, and asks before anything
35
+ mutating.
36
+ .TP
37
+ .B Flags
38
+ The subcommands and options below, for scripts and power users.
39
+ .SH COMMANDS
40
+ .TP
41
+ .BR interactive ", " i
42
+ Launch the guided interactive menu (also the no-argument default).
43
+ .TP
44
+ .B build \fR[\fIpath\fR] [\fIgoal\fR] [options]
45
+ Autonomously build, debug, or complete a goal in a project. The goal is free
46
+ text; the words \fBdebug\fR or \fBcomplete\fR select those modes.
47
+ .TP
48
+ .B run \fR[\fIpath\fR] [options]
49
+ Execute a project's pending tasks with dependency-aware ordering, parallel
50
+ waves, and progress-based resume.
51
+ .TP
52
+ .B plan \fR[\fIpath\fR] [options]
53
+ Analyze the project, recommend work, and compose a plan interactively.
54
+ .TP
55
+ .B status \fR[\fIpath\fR]
56
+ Show a project's tasks and their state.
57
+ .TP
58
+ .B report \fR[\fIpath\fR]
59
+ Summarize the latest build's cost, per-model ledger, and audit trail
60
+ (read-only).
61
+ .TP
62
+ .B scan \fIdir\fR
63
+ Discover and register projects (those with a \fBproject.yaml\fR) under a
64
+ directory.
65
+ .TP
66
+ .B list
67
+ List registered projects.
68
+ .SH OPTIONS
69
+ .SS build
70
+ .TP
71
+ .BI \-\-budget " DOLLARS"
72
+ Cap the run's spend (default 100).
73
+ .TP
74
+ .B \-\-dry-run
75
+ Plan only; show what would be done without editing.
76
+ .TP
77
+ .BI \-\-max-tasks " N"
78
+ Cap the number of decomposed tasks.
79
+ .TP
80
+ .B \-\-no-verify
81
+ Skip the final quality-gate chain.
82
+ .SS run
83
+ .TP
84
+ .BI \-\-tasks " FILE"
85
+ Execute an external task-list file instead of the \fBdevplan/\fR directory. The
86
+ file may live in another repository and be in any format \(em JSON, YAML,
87
+ Markdown, or plain text; ordered or unordered lists; multi-line tasks; phases;
88
+ and a dependency table (\fB| Task | Blocked By |\fR) that unlocks parallel
89
+ execution.
90
+ .TP
91
+ .BI \-\-task " ID"
92
+ Run a single task by id.
93
+ .TP
94
+ .B \-\-dry-run
95
+ Show the execution plan (topological waves) without running.
96
+ .TP
97
+ .B \-\-status
98
+ Show which tasks would run vs. skip, then exit.
99
+ .TP
100
+ .B \-\-force
101
+ Re-run all tasks, ignoring the completion cache.
102
+ .SH EXAMPLES
103
+ .TP
104
+ Guided menu (no flags):
105
+ .B misterdev
106
+ .TP
107
+ Plain English:
108
+ .B misterdev \(dqfix the flaky auth test but keep it cheap\(dq
109
+ .TP
110
+ Explicit build with a budget:
111
+ .B misterdev build . \(dqadd rate limiting to the public API\(dq \-\-budget 5
112
+ .TP
113
+ Run a hand-written task list from another repo, previewing first:
114
+ .B misterdev run ./app \-\-tasks ../plans/PLAN.md \-\-dry-run
115
+ .TP
116
+ Fix everything that is broken:
117
+ .B misterdev build . debug
118
+ .SH ENVIRONMENT
119
+ .TP
120
+ .B OPENROUTER_API_KEY
121
+ Default API key variable (overridable via \fBllm.api_key_env_var\fR in
122
+ \fBproject.yaml\fR). The key is never written to config on disk.
123
+ .SH FILES
124
+ .TP
125
+ .B project.yaml
126
+ Per-project configuration (language, build/test/lint commands, gates, MCP,
127
+ targets, \fBtasklist\fR). See \fBdocs/configuration.md\fR.
128
+ .TP
129
+ .B devplan/
130
+ Directory of pre-written task files (Markdown + YAML front-matter).
131
+ .TP
132
+ .B .orchestrator/
133
+ Per-project run state: progress cache, contracts, worktrees, audit trail.
134
+ .TP
135
+ .B ~/.misterdev/registry.json
136
+ Registered-project cache. Stale entries (no \fBproject.yaml\fR) are pruned on
137
+ load.
138
+ .SH SEE ALSO
139
+ Project documentation under \fBdocs/\fR: getting-started, configuration, mcp,
140
+ plugins. Homepage: https://github.com/dcondrey/misterdev
141
+ .SH AUTHOR
142
+ David Condrey.
@@ -1,3 +1,3 @@
1
1
  """misterdev — an autonomous, extensible LLM build orchestrator."""
2
2
 
3
- __version__ = "0.3.1"
3
+ __version__ = "0.4.1"