ralph-workflow 0.8.0__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 (316) hide show
  1. ralph_workflow-0.8.0/.gitignore +278 -0
  2. ralph_workflow-0.8.0/LICENSE +659 -0
  3. ralph_workflow-0.8.0/PKG-INFO +604 -0
  4. ralph_workflow-0.8.0/README.md +539 -0
  5. ralph_workflow-0.8.0/pyproject.toml +188 -0
  6. ralph_workflow-0.8.0/ralph/__init__.py +18 -0
  7. ralph_workflow-0.8.0/ralph/__main__.py +6 -0
  8. ralph_workflow-0.8.0/ralph/agents/__init__.py +15 -0
  9. ralph_workflow-0.8.0/ralph/agents/activity.py +28 -0
  10. ralph_workflow-0.8.0/ralph/agents/availability.py +62 -0
  11. ralph_workflow-0.8.0/ralph/agents/chain.py +296 -0
  12. ralph_workflow-0.8.0/ralph/agents/completion_signals.py +135 -0
  13. ralph_workflow-0.8.0/ralph/agents/execution_state.py +509 -0
  14. ralph_workflow-0.8.0/ralph/agents/executor.py +53 -0
  15. ralph_workflow-0.8.0/ralph/agents/idle_watchdog.py +821 -0
  16. ralph_workflow-0.8.0/ralph/agents/invoke.py +1703 -0
  17. ralph_workflow-0.8.0/ralph/agents/parsers/__init__.py +69 -0
  18. ralph_workflow-0.8.0/ralph/agents/parsers/base.py +167 -0
  19. ralph_workflow-0.8.0/ralph/agents/parsers/claude.py +572 -0
  20. ralph_workflow-0.8.0/ralph/agents/parsers/codex.py +262 -0
  21. ralph_workflow-0.8.0/ralph/agents/parsers/gemini.py +281 -0
  22. ralph_workflow-0.8.0/ralph/agents/parsers/generic.py +286 -0
  23. ralph_workflow-0.8.0/ralph/agents/parsers/opencode.py +254 -0
  24. ralph_workflow-0.8.0/ralph/agents/post_exit_watchdog.py +208 -0
  25. ralph_workflow-0.8.0/ralph/agents/registry.py +245 -0
  26. ralph_workflow-0.8.0/ralph/agents/subprocess_executor.py +159 -0
  27. ralph_workflow-0.8.0/ralph/agents/timeout_clock.py +72 -0
  28. ralph_workflow-0.8.0/ralph/api/__init__.py +14 -0
  29. ralph_workflow-0.8.0/ralph/api/cloud.py +45 -0
  30. ralph_workflow-0.8.0/ralph/api/opencode.py +152 -0
  31. ralph_workflow-0.8.0/ralph/banner.py +112 -0
  32. ralph_workflow-0.8.0/ralph/checkpoint/__init__.py +40 -0
  33. ralph_workflow-0.8.0/ralph/checkpoint/builder.py +132 -0
  34. ralph_workflow-0.8.0/ralph/checkpoint/execution_history.py +188 -0
  35. ralph_workflow-0.8.0/ralph/checkpoint/run_context.py +74 -0
  36. ralph_workflow-0.8.0/ralph/checkpoint/size_monitor.py +75 -0
  37. ralph_workflow-0.8.0/ralph/cli/__init__.py +9 -0
  38. ralph_workflow-0.8.0/ralph/cli/commands/__init__.py +26 -0
  39. ralph_workflow-0.8.0/ralph/cli/commands/check_policy.py +90 -0
  40. ralph_workflow-0.8.0/ralph/cli/commands/cleanup.py +65 -0
  41. ralph_workflow-0.8.0/ralph/cli/commands/commit.py +930 -0
  42. ralph_workflow-0.8.0/ralph/cli/commands/diagnose.py +537 -0
  43. ralph_workflow-0.8.0/ralph/cli/commands/explain.py +87 -0
  44. ralph_workflow-0.8.0/ralph/cli/commands/init.py +201 -0
  45. ralph_workflow-0.8.0/ralph/cli/commands/run.py +454 -0
  46. ralph_workflow-0.8.0/ralph/cli/main.py +966 -0
  47. ralph_workflow-0.8.0/ralph/cli/options.py +81 -0
  48. ralph_workflow-0.8.0/ralph/cloud/__init__.py +28 -0
  49. ralph_workflow-0.8.0/ralph/cloud/client.py +221 -0
  50. ralph_workflow-0.8.0/ralph/config/__init__.py +52 -0
  51. ralph_workflow-0.8.0/ralph/config/bootstrap.py +261 -0
  52. ralph_workflow-0.8.0/ralph/config/enums.py +97 -0
  53. ralph_workflow-0.8.0/ralph/config/loader.py +251 -0
  54. ralph_workflow-0.8.0/ralph/config/mcp_loader.py +130 -0
  55. ralph_workflow-0.8.0/ralph/config/mcp_models.py +135 -0
  56. ralph_workflow-0.8.0/ralph/config/models.py +444 -0
  57. ralph_workflow-0.8.0/ralph/config/welcome.py +202 -0
  58. ralph_workflow-0.8.0/ralph/diagnostics/__init__.py +262 -0
  59. ralph_workflow-0.8.0/ralph/display/__init__.py +134 -0
  60. ralph_workflow-0.8.0/ralph/display/activity_model.py +149 -0
  61. ralph_workflow-0.8.0/ralph/display/activity_router.py +162 -0
  62. ralph_workflow-0.8.0/ralph/display/artifact_reader.py +164 -0
  63. ralph_workflow-0.8.0/ralph/display/artifact_renderer.py +374 -0
  64. ralph_workflow-0.8.0/ralph/display/completion_summary.py +715 -0
  65. ralph_workflow-0.8.0/ralph/display/content_condenser.py +160 -0
  66. ralph_workflow-0.8.0/ralph/display/context.py +538 -0
  67. ralph_workflow-0.8.0/ralph/display/lifecycle_filter.py +74 -0
  68. ralph_workflow-0.8.0/ralph/display/line_sanitizer.py +26 -0
  69. ralph_workflow-0.8.0/ralph/display/long_content_summary.py +147 -0
  70. ralph_workflow-0.8.0/ralph/display/mode.py +20 -0
  71. ralph_workflow-0.8.0/ralph/display/parallel_display.py +388 -0
  72. ralph_workflow-0.8.0/ralph/display/phase_banner.py +550 -0
  73. ralph_workflow-0.8.0/ralph/display/phase_lifecycle.py +290 -0
  74. ralph_workflow-0.8.0/ralph/display/phase_status.py +126 -0
  75. ralph_workflow-0.8.0/ralph/display/plain_renderer.py +1378 -0
  76. ralph_workflow-0.8.0/ralph/display/progress.py +428 -0
  77. ralph_workflow-0.8.0/ralph/display/prompt_reader.py +41 -0
  78. ralph_workflow-0.8.0/ralph/display/raw_overflow.py +63 -0
  79. ralph_workflow-0.8.0/ralph/display/ring_buffer.py +69 -0
  80. ralph_workflow-0.8.0/ralph/display/snapshot.py +305 -0
  81. ralph_workflow-0.8.0/ralph/display/subscriber.py +466 -0
  82. ralph_workflow-0.8.0/ralph/display/tables.py +231 -0
  83. ralph_workflow-0.8.0/ralph/display/theme.py +220 -0
  84. ralph_workflow-0.8.0/ralph/display/tool_args.py +50 -0
  85. ralph_workflow-0.8.0/ralph/executor/__init__.py +23 -0
  86. ralph_workflow-0.8.0/ralph/executor/process.py +217 -0
  87. ralph_workflow-0.8.0/ralph/exit_pause/__init__.py +172 -0
  88. ralph_workflow-0.8.0/ralph/files/__init__.py +29 -0
  89. ralph_workflow-0.8.0/ralph/files/operations.py +134 -0
  90. ralph_workflow-0.8.0/ralph/git/__init__.py +66 -0
  91. ralph_workflow-0.8.0/ralph/git/__init__.pyi +14 -0
  92. ralph_workflow-0.8.0/ralph/git/executor.py +62 -0
  93. ralph_workflow-0.8.0/ralph/git/hooks.py +249 -0
  94. ralph_workflow-0.8.0/ralph/git/operations.py +316 -0
  95. ralph_workflow-0.8.0/ralph/git/rebase/__init__.py +69 -0
  96. ralph_workflow-0.8.0/ralph/git/rebase/rebase.py +348 -0
  97. ralph_workflow-0.8.0/ralph/git/rebase/rebase_checkpoint.py +347 -0
  98. ralph_workflow-0.8.0/ralph/git/rebase/rebase_continuation.py +206 -0
  99. ralph_workflow-0.8.0/ralph/git/rebase/rebase_kinds.py +389 -0
  100. ralph_workflow-0.8.0/ralph/git/rebase/rebase_preconditions.py +265 -0
  101. ralph_workflow-0.8.0/ralph/git/rebase/rebase_state_machine.py +242 -0
  102. ralph_workflow-0.8.0/ralph/git/subprocess_runner.py +78 -0
  103. ralph_workflow-0.8.0/ralph/git/wrapper.py +180 -0
  104. ralph_workflow-0.8.0/ralph/git/wrapper.pyi +14 -0
  105. ralph_workflow-0.8.0/ralph/guidelines/__init__.py +24 -0
  106. ralph_workflow-0.8.0/ralph/guidelines/go.py +169 -0
  107. ralph_workflow-0.8.0/ralph/guidelines/java.py +157 -0
  108. ralph_workflow-0.8.0/ralph/guidelines/javascript.py +285 -0
  109. ralph_workflow-0.8.0/ralph/guidelines/php.py +178 -0
  110. ralph_workflow-0.8.0/ralph/guidelines/python.py +168 -0
  111. ralph_workflow-0.8.0/ralph/guidelines/ruby.py +176 -0
  112. ralph_workflow-0.8.0/ralph/guidelines/rust.py +158 -0
  113. ralph_workflow-0.8.0/ralph/guidelines/stack.py +403 -0
  114. ralph_workflow-0.8.0/ralph/install.py +69 -0
  115. ralph_workflow-0.8.0/ralph/interrupt/__init__.py +25 -0
  116. ralph_workflow-0.8.0/ralph/interrupt/asyncio_bridge.py +87 -0
  117. ralph_workflow-0.8.0/ralph/interrupt/controller.py +134 -0
  118. ralph_workflow-0.8.0/ralph/interrupt/state.py +20 -0
  119. ralph_workflow-0.8.0/ralph/language_detector/__init__.py +82 -0
  120. ralph_workflow-0.8.0/ralph/language_detector/extensions.py +52 -0
  121. ralph_workflow-0.8.0/ralph/language_detector/models.py +44 -0
  122. ralph_workflow-0.8.0/ralph/language_detector/scanner.py +205 -0
  123. ralph_workflow-0.8.0/ralph/language_detector/signatures.py +284 -0
  124. ralph_workflow-0.8.0/ralph/logging.py +356 -0
  125. ralph_workflow-0.8.0/ralph/main.py +6 -0
  126. ralph_workflow-0.8.0/ralph/mcp/ARCHITECTURE.md +370 -0
  127. ralph_workflow-0.8.0/ralph/mcp/__init__.py +65 -0
  128. ralph_workflow-0.8.0/ralph/mcp/artifacts/__init__.py +40 -0
  129. ralph_workflow-0.8.0/ralph/mcp/artifacts/audit_adapter.py +230 -0
  130. ralph_workflow-0.8.0/ralph/mcp/artifacts/bridge.py +354 -0
  131. ralph_workflow-0.8.0/ralph/mcp/artifacts/commit_message.py +320 -0
  132. ralph_workflow-0.8.0/ralph/mcp/artifacts/development_result.py +61 -0
  133. ralph_workflow-0.8.0/ralph/mcp/artifacts/file_backend.py +48 -0
  134. ralph_workflow-0.8.0/ralph/mcp/artifacts/format_docs/__init__.py +120 -0
  135. ralph_workflow-0.8.0/ralph/mcp/artifacts/format_docs/artifact_formats_index.md +88 -0
  136. ralph_workflow-0.8.0/ralph/mcp/artifacts/format_docs/commit_message.md +96 -0
  137. ralph_workflow-0.8.0/ralph/mcp/artifacts/format_docs/development_analysis_decision.md +55 -0
  138. ralph_workflow-0.8.0/ralph/mcp/artifacts/format_docs/development_result.md +53 -0
  139. ralph_workflow-0.8.0/ralph/mcp/artifacts/format_docs/fix_result.md +50 -0
  140. ralph_workflow-0.8.0/ralph/mcp/artifacts/format_docs/issues.md +74 -0
  141. ralph_workflow-0.8.0/ralph/mcp/artifacts/format_docs/planning_analysis_decision.md +55 -0
  142. ralph_workflow-0.8.0/ralph/mcp/artifacts/format_docs/review_analysis_decision.md +55 -0
  143. ralph_workflow-0.8.0/ralph/mcp/artifacts/handoffs.py +281 -0
  144. ralph_workflow-0.8.0/ralph/mcp/artifacts/history.py +257 -0
  145. ralph_workflow-0.8.0/ralph/mcp/artifacts/plan.py +626 -0
  146. ralph_workflow-0.8.0/ralph/mcp/artifacts/policy_outcomes.py +34 -0
  147. ralph_workflow-0.8.0/ralph/mcp/artifacts/store.py +268 -0
  148. ralph_workflow-0.8.0/ralph/mcp/artifacts/typed_artifacts.py +171 -0
  149. ralph_workflow-0.8.0/ralph/mcp/multimodal/__init__.py +66 -0
  150. ralph_workflow-0.8.0/ralph/mcp/multimodal/artifacts.py +117 -0
  151. ralph_workflow-0.8.0/ralph/mcp/multimodal/capabilities.py +215 -0
  152. ralph_workflow-0.8.0/ralph/mcp/multimodal/errors.py +52 -0
  153. ralph_workflow-0.8.0/ralph/mcp/multimodal/resources.py +106 -0
  154. ralph_workflow-0.8.0/ralph/mcp/protocol/__init__.py +9 -0
  155. ralph_workflow-0.8.0/ralph/mcp/protocol/capability_mapping.py +590 -0
  156. ralph_workflow-0.8.0/ralph/mcp/protocol/env.py +28 -0
  157. ralph_workflow-0.8.0/ralph/mcp/protocol/session.py +73 -0
  158. ralph_workflow-0.8.0/ralph/mcp/protocol/startup.py +816 -0
  159. ralph_workflow-0.8.0/ralph/mcp/protocol/transport.py +236 -0
  160. ralph_workflow-0.8.0/ralph/mcp/server/__init__.py +31 -0
  161. ralph_workflow-0.8.0/ralph/mcp/server/__main__.py +6 -0
  162. ralph_workflow-0.8.0/ralph/mcp/server/factory.py +29 -0
  163. ralph_workflow-0.8.0/ralph/mcp/server/factory_impl.py +103 -0
  164. ralph_workflow-0.8.0/ralph/mcp/server/lifecycle.py +442 -0
  165. ralph_workflow-0.8.0/ralph/mcp/server/runtime.py +1043 -0
  166. ralph_workflow-0.8.0/ralph/mcp/session_plan.py +212 -0
  167. ralph_workflow-0.8.0/ralph/mcp/tools/__init__.py +8 -0
  168. ralph_workflow-0.8.0/ralph/mcp/tools/artifact.py +955 -0
  169. ralph_workflow-0.8.0/ralph/mcp/tools/bridge.py +1635 -0
  170. ralph_workflow-0.8.0/ralph/mcp/tools/coordination.py +268 -0
  171. ralph_workflow-0.8.0/ralph/mcp/tools/exec.py +570 -0
  172. ralph_workflow-0.8.0/ralph/mcp/tools/git_read.py +236 -0
  173. ralph_workflow-0.8.0/ralph/mcp/tools/names.py +248 -0
  174. ralph_workflow-0.8.0/ralph/mcp/tools/websearch.py +125 -0
  175. ralph_workflow-0.8.0/ralph/mcp/tools/webvisit.py +113 -0
  176. ralph_workflow-0.8.0/ralph/mcp/tools/workspace.py +1363 -0
  177. ralph_workflow-0.8.0/ralph/mcp/transport/__init__.py +37 -0
  178. ralph_workflow-0.8.0/ralph/mcp/transport/claude.py +70 -0
  179. ralph_workflow-0.8.0/ralph/mcp/transport/codex.py +144 -0
  180. ralph_workflow-0.8.0/ralph/mcp/transport/common.py +67 -0
  181. ralph_workflow-0.8.0/ralph/mcp/transport/opencode.py +80 -0
  182. ralph_workflow-0.8.0/ralph/mcp/upstream/__init__.py +9 -0
  183. ralph_workflow-0.8.0/ralph/mcp/upstream/agent_probe.py +341 -0
  184. ralph_workflow-0.8.0/ralph/mcp/upstream/client.py +489 -0
  185. ralph_workflow-0.8.0/ralph/mcp/upstream/config.py +146 -0
  186. ralph_workflow-0.8.0/ralph/mcp/upstream/models.py +29 -0
  187. ralph_workflow-0.8.0/ralph/mcp/upstream/registry.py +133 -0
  188. ralph_workflow-0.8.0/ralph/mcp/upstream/validation.py +239 -0
  189. ralph_workflow-0.8.0/ralph/mcp/websearch/__init__.py +14 -0
  190. ralph_workflow-0.8.0/ralph/mcp/websearch/backends/__init__.py +21 -0
  191. ralph_workflow-0.8.0/ralph/mcp/websearch/backends/base.py +28 -0
  192. ralph_workflow-0.8.0/ralph/mcp/websearch/backends/brave.py +86 -0
  193. ralph_workflow-0.8.0/ralph/mcp/websearch/backends/ddgs.py +71 -0
  194. ralph_workflow-0.8.0/ralph/mcp/websearch/backends/exa.py +105 -0
  195. ralph_workflow-0.8.0/ralph/mcp/websearch/backends/searxng.py +87 -0
  196. ralph_workflow-0.8.0/ralph/mcp/websearch/backends/tavily.py +95 -0
  197. ralph_workflow-0.8.0/ralph/mcp/websearch/secrets.py +45 -0
  198. ralph_workflow-0.8.0/ralph/mcp/webvisit/__init__.py +17 -0
  199. ralph_workflow-0.8.0/ralph/mcp/webvisit/extractor.py +131 -0
  200. ralph_workflow-0.8.0/ralph/mcp/webvisit/fetcher.py +210 -0
  201. ralph_workflow-0.8.0/ralph/phases/__init__.py +221 -0
  202. ralph_workflow-0.8.0/ralph/phases/analysis.py +221 -0
  203. ralph_workflow-0.8.0/ralph/phases/artifacts.py +90 -0
  204. ralph_workflow-0.8.0/ralph/phases/commit.py +117 -0
  205. ralph_workflow-0.8.0/ralph/phases/commit_logging.py +329 -0
  206. ralph_workflow-0.8.0/ralph/phases/execution.py +312 -0
  207. ralph_workflow-0.8.0/ralph/phases/integrity.py +118 -0
  208. ralph_workflow-0.8.0/ralph/phases/required_artifacts.py +173 -0
  209. ralph_workflow-0.8.0/ralph/phases/review.py +170 -0
  210. ralph_workflow-0.8.0/ralph/phases/timing.py +79 -0
  211. ralph_workflow-0.8.0/ralph/phases/verification.py +168 -0
  212. ralph_workflow-0.8.0/ralph/pipeline/__init__.py +19 -0
  213. ralph_workflow-0.8.0/ralph/pipeline/checkpoint.py +185 -0
  214. ralph_workflow-0.8.0/ralph/pipeline/cycle_baseline.py +50 -0
  215. ralph_workflow-0.8.0/ralph/pipeline/effects.py +233 -0
  216. ralph_workflow-0.8.0/ralph/pipeline/events.py +126 -0
  217. ralph_workflow-0.8.0/ralph/pipeline/handoffs.py +134 -0
  218. ralph_workflow-0.8.0/ralph/pipeline/orchestrator.py +299 -0
  219. ralph_workflow-0.8.0/ralph/pipeline/parallel/__init__.py +29 -0
  220. ralph_workflow-0.8.0/ralph/pipeline/parallel/coordinator.py +469 -0
  221. ralph_workflow-0.8.0/ralph/pipeline/parallel/mode.py +51 -0
  222. ralph_workflow-0.8.0/ralph/pipeline/parallel/scheduler.py +31 -0
  223. ralph_workflow-0.8.0/ralph/pipeline/parallel/worker_session.py +60 -0
  224. ralph_workflow-0.8.0/ralph/pipeline/progress.py +284 -0
  225. ralph_workflow-0.8.0/ralph/pipeline/reducer.py +1020 -0
  226. ralph_workflow-0.8.0/ralph/pipeline/runner.py +3778 -0
  227. ralph_workflow-0.8.0/ralph/pipeline/state.py +505 -0
  228. ralph_workflow-0.8.0/ralph/pipeline/work_units.py +244 -0
  229. ralph_workflow-0.8.0/ralph/pipeline/worker_state.py +47 -0
  230. ralph_workflow-0.8.0/ralph/platform/__init__.py +45 -0
  231. ralph_workflow-0.8.0/ralph/platform/detection.py +166 -0
  232. ralph_workflow-0.8.0/ralph/platform/models.py +102 -0
  233. ralph_workflow-0.8.0/ralph/policy/__init__.py +71 -0
  234. ralph_workflow-0.8.0/ralph/policy/defaults/agents.toml +84 -0
  235. ralph_workflow-0.8.0/ralph/policy/defaults/artifacts.toml +78 -0
  236. ralph_workflow-0.8.0/ralph/policy/defaults/mcp.toml +122 -0
  237. ralph_workflow-0.8.0/ralph/policy/defaults/pipeline.toml +269 -0
  238. ralph_workflow-0.8.0/ralph/policy/defaults/ralph-workflow-local.toml +138 -0
  239. ralph_workflow-0.8.0/ralph/policy/defaults/ralph-workflow.toml +157 -0
  240. ralph_workflow-0.8.0/ralph/policy/explain.py +343 -0
  241. ralph_workflow-0.8.0/ralph/policy/loader.py +453 -0
  242. ralph_workflow-0.8.0/ralph/policy/models.py +1072 -0
  243. ralph_workflow-0.8.0/ralph/policy/render.py +679 -0
  244. ralph_workflow-0.8.0/ralph/policy/validation.py +1028 -0
  245. ralph_workflow-0.8.0/ralph/process/README.md +113 -0
  246. ralph_workflow-0.8.0/ralph/process/__init__.py +40 -0
  247. ralph_workflow-0.8.0/ralph/process/child_liveness.py +333 -0
  248. ralph_workflow-0.8.0/ralph/process/liveness.py +142 -0
  249. ralph_workflow-0.8.0/ralph/process/manager.py +898 -0
  250. ralph_workflow-0.8.0/ralph/process/mcp_supervisor.py +91 -0
  251. ralph_workflow-0.8.0/ralph/prompts/__init__.py +55 -0
  252. ralph_workflow-0.8.0/ralph/prompts/commit/__init__.py +144 -0
  253. ralph_workflow-0.8.0/ralph/prompts/debug_dump.py +38 -0
  254. ralph_workflow-0.8.0/ralph/prompts/developer/__init__.py +255 -0
  255. ralph_workflow-0.8.0/ralph/prompts/materialize.py +1025 -0
  256. ralph_workflow-0.8.0/ralph/prompts/payload_refs.py +61 -0
  257. ralph_workflow-0.8.0/ralph/prompts/reviewer/__init__.py +79 -0
  258. ralph_workflow-0.8.0/ralph/prompts/system_prompt.py +86 -0
  259. ralph_workflow-0.8.0/ralph/prompts/template_context.py +36 -0
  260. ralph_workflow-0.8.0/ralph/prompts/template_engine.py +123 -0
  261. ralph_workflow-0.8.0/ralph/prompts/template_parsing.py +312 -0
  262. ralph_workflow-0.8.0/ralph/prompts/template_registry.py +98 -0
  263. ralph_workflow-0.8.0/ralph/prompts/template_variables.py +699 -0
  264. ralph_workflow-0.8.0/ralph/prompts/templates/commit_message.jinja +102 -0
  265. ralph_workflow-0.8.0/ralph/prompts/templates/commit_simplified.jinja +7 -0
  266. ralph_workflow-0.8.0/ralph/prompts/templates/conflict_resolution.jinja +11 -0
  267. ralph_workflow-0.8.0/ralph/prompts/templates/conflict_resolution_fallback.jinja +5 -0
  268. ralph_workflow-0.8.0/ralph/prompts/templates/developer_iteration.jinja +37 -0
  269. ralph_workflow-0.8.0/ralph/prompts/templates/developer_iteration_continuation.jinja +25 -0
  270. ralph_workflow-0.8.0/ralph/prompts/templates/developer_iteration_fallback.jinja +31 -0
  271. ralph_workflow-0.8.0/ralph/prompts/templates/development_analysis.jinja +275 -0
  272. ralph_workflow-0.8.0/ralph/prompts/templates/fix_mode.jinja +21 -0
  273. ralph_workflow-0.8.0/ralph/prompts/templates/planning.jinja +184 -0
  274. ralph_workflow-0.8.0/ralph/prompts/templates/planning_analysis.jinja +272 -0
  275. ralph_workflow-0.8.0/ralph/prompts/templates/planning_edit.jinja +128 -0
  276. ralph_workflow-0.8.0/ralph/prompts/templates/planning_edit_fallback.jinja +49 -0
  277. ralph_workflow-0.8.0/ralph/prompts/templates/planning_fallback.jinja +43 -0
  278. ralph_workflow-0.8.0/ralph/prompts/templates/review.jinja +68 -0
  279. ralph_workflow-0.8.0/ralph/prompts/templates/review_analysis.jinja +301 -0
  280. ralph_workflow-0.8.0/ralph/prompts/templates/shared/_analysis_context.jinja +12 -0
  281. ralph_workflow-0.8.0/ralph/prompts/templates/shared/_context_section.jinja +5 -0
  282. ralph_workflow-0.8.0/ralph/prompts/templates/shared/_critical_header.jinja +1 -0
  283. ralph_workflow-0.8.0/ralph/prompts/templates/shared/_developer_iteration_guidance.jinja +11 -0
  284. ralph_workflow-0.8.0/ralph/prompts/templates/shared/_diff_section.jinja +3 -0
  285. ralph_workflow-0.8.0/ralph/prompts/templates/shared/_mcp_tools.jinja +34 -0
  286. ralph_workflow-0.8.0/ralph/prompts/templates/shared/_no_git_commit.jinja +1 -0
  287. ralph_workflow-0.8.0/ralph/prompts/templates/shared/_output_checklist.jinja +4 -0
  288. ralph_workflow-0.8.0/ralph/prompts/templates/shared/_payload_section.jinja +28 -0
  289. ralph_workflow-0.8.0/ralph/prompts/templates/shared/_safety_no_execute.jinja +4 -0
  290. ralph_workflow-0.8.0/ralph/prompts/templates/shared/_session_capabilities.jinja +8 -0
  291. ralph_workflow-0.8.0/ralph/prompts/templates/shared/_unattended_mode.jinja +12 -0
  292. ralph_workflow-0.8.0/ralph/prompts/templates/worker_developer.jinja +27 -0
  293. ralph_workflow-0.8.0/ralph/prompts/types.py +97 -0
  294. ralph_workflow-0.8.0/ralph/recovery/__init__.py +61 -0
  295. ralph_workflow-0.8.0/ralph/recovery/budget.py +149 -0
  296. ralph_workflow-0.8.0/ralph/recovery/classifier.py +279 -0
  297. ralph_workflow-0.8.0/ralph/recovery/connectivity.py +142 -0
  298. ralph_workflow-0.8.0/ralph/recovery/controller.py +399 -0
  299. ralph_workflow-0.8.0/ralph/recovery/cycle_cap.py +32 -0
  300. ralph_workflow-0.8.0/ralph/recovery/events.py +89 -0
  301. ralph_workflow-0.8.0/ralph/recovery/testing.py +69 -0
  302. ralph_workflow-0.8.0/ralph/runtime/__init__.py +53 -0
  303. ralph_workflow-0.8.0/ralph/runtime/environment.py +184 -0
  304. ralph_workflow-0.8.0/ralph/runtime/verify_timeout.py +30 -0
  305. ralph_workflow-0.8.0/ralph/testing/__init__.py +67 -0
  306. ralph_workflow-0.8.0/ralph/testing/fake_agent_executor.py +83 -0
  307. ralph_workflow-0.8.0/ralph/testing/fake_process.py +413 -0
  308. ralph_workflow-0.8.0/ralph/timeout_defaults.py +71 -0
  309. ralph_workflow-0.8.0/ralph/verify.py +98 -0
  310. ralph_workflow-0.8.0/ralph/verify_timeout.py +162 -0
  311. ralph_workflow-0.8.0/ralph/workspace/__init__.py +19 -0
  312. ralph_workflow-0.8.0/ralph/workspace/fs.py +391 -0
  313. ralph_workflow-0.8.0/ralph/workspace/memory.py +426 -0
  314. ralph_workflow-0.8.0/ralph/workspace/protocol.py +232 -0
  315. ralph_workflow-0.8.0/ralph/workspace/scope.py +228 -0
  316. ralph_workflow-0.8.0/ralph/workspace/skip.py +29 -0
@@ -0,0 +1,278 @@
1
+ # Per-worktree prompt (local) - anchored to root to avoid matching src/prompts/
2
+ # The * matches any characters except /, so this anchors to root
3
+ /PROMPT*
4
+
5
+
6
+ # Agent loop artifacts (local)
7
+ .agent/
8
+ .no_agent_commit
9
+
10
+
11
+ # Generated by Cargo
12
+ # will have compiled files and executables
13
+ debug
14
+ target
15
+
16
+ # These are backup files generated by rustfmt
17
+ **/*.rs.bk
18
+
19
+ # Compiled Rust libraries
20
+ *.rlib
21
+
22
+ # MSVC Windows builds of rustc generate these, which store debugging information
23
+ *.pdb
24
+
25
+ # Generated by cargo mutants
26
+ # Contains mutation testing data
27
+ **/mutants.out*/
28
+
29
+ # RustRover
30
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
31
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
32
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
33
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
34
+ .idea/
35
+ wt-*/
36
+
37
+ # Temporary files
38
+ .tmp/
39
+ /tmp/
40
+ *PLAN.md
41
+
42
+ .plan
43
+
44
+ # Local AI/agent artifacts (never commit)
45
+ /.claude/settings.local.json
46
+ /.claude_commit_message.xml
47
+ /.commit_message.json
48
+ /commit_message.txt
49
+ /transform_resume.py
50
+
51
+ # Editor/agent backups
52
+ **/*.bak
53
+
54
+ # Dylint build artifacts
55
+ lints/*/target/
56
+ lints/*/Cargo.lock
57
+ # Platform-specific rustc wrapper — regenerated by `cargo xtask dylint` at runtime.
58
+ # Must not be synced across platforms (macOS binary != Linux binary).
59
+ lints/*/rustc-nightly
60
+
61
+ # Byte-compiled / optimized / DLL files
62
+ __pycache__/
63
+ *.py[codz]
64
+ *$py.class
65
+
66
+ # C extensions
67
+ *.so
68
+
69
+ # Distribution / packaging
70
+ .Python
71
+ build/
72
+ develop-eggs/
73
+ dist/
74
+ downloads/
75
+ eggs/
76
+ .eggs/
77
+ lib/
78
+ lib64/
79
+ parts/
80
+ sdist/
81
+ var/
82
+ wheels/
83
+ share/python-wheels/
84
+ *.egg-info/
85
+ .installed.cfg
86
+ *.egg
87
+ MANIFEST
88
+
89
+ # PyInstaller
90
+ # Usually these files are written by a python script from a template
91
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
92
+ *.manifest
93
+ *.spec
94
+
95
+ # Installer logs
96
+ pip-log.txt
97
+ pip-delete-this-directory.txt
98
+
99
+ # Unit test / coverage reports
100
+ htmlcov/
101
+ .tox/
102
+ .nox/
103
+ .coverage
104
+ .coverage.*
105
+ .cache
106
+ nosetests.xml
107
+ coverage.xml
108
+ *.cover
109
+ *.py.cover
110
+ .hypothesis/
111
+ .pytest_cache/
112
+ cover/
113
+
114
+ # Translations
115
+ *.mo
116
+ *.pot
117
+
118
+ # Django stuff:
119
+ *.log
120
+ local_settings.py
121
+ db.sqlite3
122
+ db.sqlite3-journal
123
+
124
+ # Flask stuff:
125
+ instance/
126
+ .webassets-cache
127
+
128
+ # Scrapy stuff:
129
+ .scrapy
130
+
131
+ # Sphinx documentation
132
+ docs/_build/
133
+ ralph-workflow/docs/sphinx/_build/
134
+
135
+ # PyBuilder
136
+ .pybuilder/
137
+ target/
138
+
139
+ # Jupyter Notebook
140
+ .ipynb_checkpoints
141
+
142
+ # IPython
143
+ profile_default/
144
+ ipython_config.py
145
+
146
+ # pyenv
147
+ # For a library or package, you might want to ignore these files since the code is
148
+ # intended to run in multiple environments; otherwise, check them in:
149
+ # .python-version
150
+
151
+ # pipenv
152
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
153
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
154
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
155
+ # install all needed dependencies.
156
+ # Pipfile.lock
157
+
158
+ # UV
159
+ # Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
160
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
161
+ # commonly ignored for libraries.
162
+ # uv.lock
163
+
164
+ # poetry
165
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
166
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
167
+ # commonly ignored for libraries.
168
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
169
+ # poetry.lock
170
+ # poetry.toml
171
+
172
+ # pdm
173
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
174
+ # pdm recommends including project-wide configuration in pdm.toml, but excluding .pdm-python.
175
+ # https://pdm-project.org/en/latest/usage/project/#working-with-version-control
176
+ # pdm.lock
177
+ # pdm.toml
178
+ .pdm-python
179
+ .pdm-build/
180
+
181
+ # pixi
182
+ # Similar to Pipfile.lock, it is generally recommended to include pixi.lock in version control.
183
+ # pixi.lock
184
+ # Pixi creates a virtual environment in the .pixi directory, just like venv module creates one
185
+ # in the .venv directory. It is recommended not to include this directory in version control.
186
+ .pixi
187
+
188
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
189
+ __pypackages__/
190
+
191
+ # Celery stuff
192
+ celerybeat-schedule
193
+ celerybeat.pid
194
+
195
+ # Redis
196
+ *.rdb
197
+ *.aof
198
+ *.pid
199
+
200
+ # RabbitMQ
201
+ mnesia/
202
+ rabbitmq/
203
+ rabbitmq-data/
204
+
205
+ # ActiveMQ
206
+ activemq-data/
207
+
208
+ # SageMath parsed files
209
+ *.sage.py
210
+
211
+ # Environments
212
+ .env
213
+ .envrc
214
+ .venv
215
+ env/
216
+ venv/
217
+ ENV/
218
+ env.bak/
219
+ venv.bak/
220
+
221
+ # Spyder project settings
222
+ .spyderproject
223
+ .spyproject
224
+
225
+ # Rope project settings
226
+ .ropeproject
227
+
228
+ # mkdocs documentation
229
+ /site
230
+
231
+ # mypy
232
+ .mypy_cache/
233
+ .dmypy.json
234
+ dmypy.json
235
+
236
+ # Pyre type checker
237
+ .pyre/
238
+
239
+ # pytype static type analyzer
240
+ .pytype/
241
+
242
+ # Cython debug symbols
243
+ cython_debug/
244
+
245
+ # PyCharm
246
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
247
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
248
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
249
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
250
+ # .idea/
251
+
252
+ # Abstra
253
+ # Abstra is an AI-powered process automation framework.
254
+ # Ignore directories containing user credentials, local state, and settings.
255
+ # Learn more at https://abstra.io/docs
256
+ .abstra/
257
+
258
+ # Visual Studio Code
259
+ # Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore
260
+ # that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
261
+ # and can be added to the global gitignore or merged into this file. However, if you prefer,
262
+ # you could uncomment the following to ignore the entire vscode folder
263
+ # .vscode/
264
+
265
+ # Ruff stuff:
266
+ .ruff_cache/
267
+
268
+ # PyPI configuration file
269
+ .pypirc
270
+
271
+ # Marimo
272
+ marimo/_static/
273
+ marimo/_lsp/
274
+ __marimo__/
275
+
276
+ # Streamlit
277
+ .streamlit/secrets.toml
278
+ .playwright-mcp/