roast-ai 0.3.1 → 0.4.1

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 (216) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yaml +2 -2
  3. data/.gitignore +1 -0
  4. data/CHANGELOG.md +85 -0
  5. data/CLAUDE.md +106 -9
  6. data/Gemfile +4 -1
  7. data/Gemfile.lock +70 -16
  8. data/README.md +159 -8
  9. data/bin/console +1 -0
  10. data/bin/roast +1 -1
  11. data/claude-swarm.yml +210 -0
  12. data/docs/AGENT_STEPS.md +288 -0
  13. data/docs/VALIDATION.md +178 -0
  14. data/examples/agent_continue/add_documentation/prompt.md +5 -0
  15. data/examples/agent_continue/add_error_handling/prompt.md +5 -0
  16. data/examples/agent_continue/analyze_codebase/prompt.md +7 -0
  17. data/examples/agent_continue/combined_workflow.yml +24 -0
  18. data/examples/agent_continue/continue_adding_features/prompt.md +4 -0
  19. data/examples/agent_continue/create_integration_tests/prompt.md +3 -0
  20. data/examples/agent_continue/document_with_context/prompt.md +5 -0
  21. data/examples/agent_continue/explore_api/prompt.md +6 -0
  22. data/examples/agent_continue/implement_client/prompt.md +6 -0
  23. data/examples/agent_continue/inline_workflow.yml +20 -0
  24. data/examples/agent_continue/refactor_code/prompt.md +2 -0
  25. data/examples/agent_continue/verify_changes/prompt.md +6 -0
  26. data/examples/agent_continue/workflow.yml +27 -0
  27. data/examples/agent_workflow/README.md +75 -0
  28. data/examples/agent_workflow/apply_refactorings/prompt.md +22 -0
  29. data/examples/agent_workflow/identify_code_smells/prompt.md +15 -0
  30. data/examples/agent_workflow/summarize_improvements/prompt.md +18 -0
  31. data/examples/agent_workflow/workflow.png +0 -0
  32. data/examples/agent_workflow/workflow.yml +16 -0
  33. data/examples/api_workflow/workflow.png +0 -0
  34. data/examples/apply_diff_demo/README.md +58 -0
  35. data/examples/apply_diff_demo/apply_simple_change/prompt.md +13 -0
  36. data/examples/apply_diff_demo/create_sample_file/prompt.md +11 -0
  37. data/examples/apply_diff_demo/workflow.yml +24 -0
  38. data/examples/available_tools_demo/README.md +42 -0
  39. data/examples/available_tools_demo/analyze_files/prompt.md +6 -0
  40. data/examples/available_tools_demo/explore_directory/prompt.md +6 -0
  41. data/examples/available_tools_demo/workflow.png +0 -0
  42. data/examples/available_tools_demo/workflow.yml +32 -0
  43. data/examples/available_tools_demo/write_summary/prompt.md +6 -0
  44. data/examples/bash_prototyping/api_testing.png +0 -0
  45. data/examples/bash_prototyping/system_analysis.png +0 -0
  46. data/examples/case_when/detect_language/prompt.md +2 -2
  47. data/examples/case_when/workflow.png +0 -0
  48. data/examples/cmd/basic_workflow.png +0 -0
  49. data/examples/cmd/dev_workflow.png +0 -0
  50. data/examples/cmd/explorer_workflow.png +0 -0
  51. data/examples/conditional/simple_workflow.png +0 -0
  52. data/examples/conditional/workflow.png +0 -0
  53. data/examples/context_management_demo/README.md +43 -0
  54. data/examples/context_management_demo/workflow.yml +42 -0
  55. data/examples/direct_coerce_syntax/workflow.png +0 -0
  56. data/examples/dot_notation/workflow.png +0 -0
  57. data/examples/exit_on_error/workflow.png +0 -0
  58. data/examples/grading/run_coverage.rb +0 -2
  59. data/examples/grading/workflow.png +0 -0
  60. data/examples/interpolation/workflow.png +0 -0
  61. data/examples/interpolation/workflow.yml +1 -1
  62. data/examples/iteration/analyze_complexity/prompt.md +2 -2
  63. data/examples/iteration/generate_recommendations/prompt.md +2 -2
  64. data/examples/iteration/implement_fix/prompt.md +2 -2
  65. data/examples/iteration/prioritize_issues/prompt.md +1 -1
  66. data/examples/iteration/prompts/analyze_file.md +2 -2
  67. data/examples/iteration/prompts/generate_summary.md +1 -1
  68. data/examples/iteration/prompts/update_report.md +3 -3
  69. data/examples/iteration/prompts/write_report.md +3 -3
  70. data/examples/iteration/read_file/prompt.md +2 -2
  71. data/examples/iteration/select_next_issue/prompt.md +2 -2
  72. data/examples/iteration/update_fix_count/prompt.md +4 -4
  73. data/examples/iteration/verify_fix/prompt.md +3 -3
  74. data/examples/iteration/workflow.png +0 -0
  75. data/examples/json_handling/workflow.png +0 -0
  76. data/examples/mcp/README.md +3 -3
  77. data/examples/mcp/analyze_changes/prompt.md +1 -1
  78. data/examples/mcp/database_workflow.png +0 -0
  79. data/examples/mcp/database_workflow.yml +1 -1
  80. data/examples/mcp/env_demo/workflow.png +0 -0
  81. data/examples/mcp/fetch_pr_context/prompt.md +1 -1
  82. data/examples/mcp/filesystem_demo/workflow.png +0 -0
  83. data/examples/mcp/github_workflow.png +0 -0
  84. data/examples/mcp/github_workflow.yml +1 -1
  85. data/examples/mcp/multi_mcp_workflow.png +0 -0
  86. data/examples/mcp/post_review/prompt.md +1 -1
  87. data/examples/mcp/workflow.png +0 -0
  88. data/examples/no_model_fallback/README.md +17 -0
  89. data/examples/no_model_fallback/analyze_file/prompt.md +1 -0
  90. data/examples/no_model_fallback/analyze_patterns/prompt.md +27 -0
  91. data/examples/no_model_fallback/generate_report_for_md/prompt.md +10 -0
  92. data/examples/no_model_fallback/generate_report_for_rb/prompt.md +3 -0
  93. data/examples/no_model_fallback/sample.rb +42 -0
  94. data/examples/no_model_fallback/workflow.yml +19 -0
  95. data/examples/openrouter_example/workflow.png +0 -0
  96. data/examples/pre_post_processing/analyze_test_file/prompt.md +1 -1
  97. data/examples/pre_post_processing/improve_test_coverage/prompt.md +1 -1
  98. data/examples/pre_post_processing/optimize_test_performance/prompt.md +1 -1
  99. data/examples/pre_post_processing/post_processing/aggregate_metrics/prompt.md +2 -2
  100. data/examples/pre_post_processing/post_processing/generate_summary_report/prompt.md +1 -1
  101. data/examples/pre_post_processing/pre_processing/setup_test_environment/prompt.md +1 -1
  102. data/examples/pre_post_processing/validate_changes/prompt.md +2 -2
  103. data/examples/pre_post_processing/workflow.png +0 -0
  104. data/examples/rspec_to_minitest/workflow.png +0 -0
  105. data/examples/shared_config/example_with_shared_config/workflow.png +0 -0
  106. data/examples/shared_config/shared.png +0 -0
  107. data/examples/single_target_prepost/workflow.png +0 -0
  108. data/examples/smart_coercion_defaults/workflow.png +0 -0
  109. data/examples/step_configuration/workflow.png +0 -0
  110. data/examples/swarm_example.yml +25 -0
  111. data/examples/tool_config_example/workflow.png +0 -0
  112. data/examples/user_input/README.md +90 -0
  113. data/examples/user_input/funny_name/create_backstory/prompt.md +10 -0
  114. data/examples/user_input/funny_name/workflow.png +0 -0
  115. data/examples/user_input/funny_name/workflow.yml +26 -0
  116. data/examples/user_input/generate_summary/prompt.md +11 -0
  117. data/examples/user_input/simple_input_demo/workflow.png +0 -0
  118. data/examples/user_input/simple_input_demo/workflow.yml +35 -0
  119. data/examples/user_input/survey_workflow.png +0 -0
  120. data/examples/user_input/survey_workflow.yml +71 -0
  121. data/examples/user_input/welcome_message/prompt.md +3 -0
  122. data/examples/user_input/workflow.png +0 -0
  123. data/examples/user_input/workflow.yml +73 -0
  124. data/examples/workflow_generator/create_workflow_files/prompt.md +1 -1
  125. data/examples/workflow_generator/workflow.png +0 -0
  126. data/lib/roast/errors.rb +6 -4
  127. data/lib/roast/helpers/function_caching_interceptor.rb +0 -2
  128. data/lib/roast/helpers/logger.rb +12 -35
  129. data/lib/roast/helpers/minitest_coverage_runner.rb +0 -1
  130. data/lib/roast/helpers/prompt_loader.rb +0 -2
  131. data/lib/roast/helpers/timeout_handler.rb +91 -0
  132. data/lib/roast/resources/api_resource.rb +0 -4
  133. data/lib/roast/resources/url_resource.rb +0 -3
  134. data/lib/roast/resources.rb +0 -8
  135. data/lib/roast/services/context_threshold_checker.rb +42 -0
  136. data/lib/roast/services/token_counting_service.rb +44 -0
  137. data/lib/roast/tools/apply_diff.rb +128 -0
  138. data/lib/roast/tools/ask_user.rb +0 -2
  139. data/lib/roast/tools/bash.rb +12 -9
  140. data/lib/roast/tools/cmd.rb +29 -12
  141. data/lib/roast/tools/coding_agent.rb +65 -17
  142. data/lib/roast/tools/context_summarizer.rb +108 -0
  143. data/lib/roast/tools/grep.rb +0 -3
  144. data/lib/roast/tools/helpers/coding_agent_message_formatter.rb +1 -4
  145. data/lib/roast/tools/read_file.rb +0 -2
  146. data/lib/roast/tools/search_file.rb +0 -2
  147. data/lib/roast/tools/swarm.rb +124 -0
  148. data/lib/roast/tools/update_files.rb +0 -4
  149. data/lib/roast/tools/write_file.rb +0 -3
  150. data/lib/roast/tools.rb +0 -13
  151. data/lib/roast/value_objects/step_name.rb +14 -3
  152. data/lib/roast/value_objects/workflow_path.rb +0 -2
  153. data/lib/roast/value_objects.rb +4 -4
  154. data/lib/roast/version.rb +1 -1
  155. data/lib/roast/workflow/agent_step.rb +33 -0
  156. data/lib/roast/workflow/api_configuration.rb +0 -4
  157. data/lib/roast/workflow/base_iteration_step.rb +3 -6
  158. data/lib/roast/workflow/base_step.rb +54 -28
  159. data/lib/roast/workflow/base_workflow.rb +43 -23
  160. data/lib/roast/workflow/case_executor.rb +0 -1
  161. data/lib/roast/workflow/case_step.rb +0 -4
  162. data/lib/roast/workflow/command_executor.rb +0 -2
  163. data/lib/roast/workflow/conditional_executor.rb +0 -1
  164. data/lib/roast/workflow/conditional_step.rb +0 -4
  165. data/lib/roast/workflow/configuration.rb +5 -67
  166. data/lib/roast/workflow/configuration_loader.rb +63 -3
  167. data/lib/roast/workflow/configuration_parser.rb +1 -7
  168. data/lib/roast/workflow/context_manager.rb +89 -0
  169. data/lib/roast/workflow/dot_access_hash.rb +16 -1
  170. data/lib/roast/workflow/each_step.rb +1 -1
  171. data/lib/roast/workflow/error_handler.rb +0 -3
  172. data/lib/roast/workflow/expression_evaluator.rb +0 -3
  173. data/lib/roast/workflow/file_state_repository.rb +0 -5
  174. data/lib/roast/workflow/input_executor.rb +41 -0
  175. data/lib/roast/workflow/input_step.rb +163 -0
  176. data/lib/roast/workflow/iteration_executor.rb +0 -2
  177. data/lib/roast/workflow/output_handler.rb +1 -3
  178. data/lib/roast/workflow/output_manager.rb +0 -2
  179. data/lib/roast/workflow/repeat_step.rb +1 -1
  180. data/lib/roast/workflow/replay_handler.rb +1 -4
  181. data/lib/roast/workflow/resource_resolver.rb +0 -3
  182. data/lib/roast/workflow/session_manager.rb +0 -3
  183. data/lib/roast/workflow/sqlite_state_repository.rb +342 -0
  184. data/lib/roast/workflow/state_manager.rb +2 -4
  185. data/lib/roast/workflow/state_repository_factory.rb +36 -0
  186. data/lib/roast/workflow/step_completion_reporter.rb +27 -0
  187. data/lib/roast/workflow/step_executor_coordinator.rb +48 -24
  188. data/lib/roast/workflow/step_executor_factory.rb +0 -5
  189. data/lib/roast/workflow/step_executor_registry.rb +1 -4
  190. data/lib/roast/workflow/step_executor_with_reporting.rb +68 -0
  191. data/lib/roast/workflow/step_executors/hash_step_executor.rb +0 -3
  192. data/lib/roast/workflow/step_executors/parallel_step_executor.rb +0 -3
  193. data/lib/roast/workflow/step_executors/string_step_executor.rb +0 -2
  194. data/lib/roast/workflow/step_factory.rb +56 -0
  195. data/lib/roast/workflow/step_loader.rb +31 -17
  196. data/lib/roast/workflow/step_name_extractor.rb +84 -0
  197. data/lib/roast/workflow/step_orchestrator.rb +3 -2
  198. data/lib/roast/workflow/step_type_resolver.rb +28 -1
  199. data/lib/roast/workflow/validation_command.rb +197 -0
  200. data/lib/roast/workflow/validator.rb +0 -4
  201. data/lib/roast/workflow/validators/base_validator.rb +44 -0
  202. data/lib/roast/workflow/validators/dependency_validator.rb +223 -0
  203. data/lib/roast/workflow/validators/linting_validator.rb +113 -0
  204. data/lib/roast/workflow/validators/schema_validator.rb +90 -0
  205. data/lib/roast/workflow/validators/step_collector.rb +57 -0
  206. data/lib/roast/workflow/validators/validation_orchestrator.rb +52 -0
  207. data/lib/roast/workflow/workflow_executor.rb +11 -20
  208. data/lib/roast/workflow/workflow_initializer.rb +1 -8
  209. data/lib/roast/workflow/workflow_runner.rb +6 -7
  210. data/lib/roast/workflow.rb +0 -15
  211. data/lib/roast/workflow_diagram_generator.rb +298 -0
  212. data/lib/roast.rb +212 -10
  213. data/roast.gemspec +4 -2
  214. data/schema/workflow.json +123 -1
  215. metadata +143 -6
  216. data/lib/roast/helpers.rb +0 -12
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: roast-ai
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shopify
@@ -27,16 +27,16 @@ dependencies:
27
27
  name: cli-ui
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
- - - ">="
30
+ - - '='
31
31
  - !ruby/object:Gem::Version
32
- version: '0'
32
+ version: 2.3.0
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - ">="
37
+ - - '='
38
38
  - !ruby/object:Gem::Version
39
- version: '0'
39
+ version: 2.3.0
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: diff-lcs
42
42
  requirement: !ruby/object:Gem::Requirement
@@ -107,6 +107,20 @@ dependencies:
107
107
  - - "~>"
108
108
  - !ruby/object:Gem::Version
109
109
  version: '1.0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: ruby-graphviz
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '1.2'
117
+ type: :runtime
118
+ prerelease: false
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '1.2'
110
124
  - !ruby/object:Gem::Dependency
111
125
  name: thor
112
126
  requirement: !ruby/object:Gem::Requirement
@@ -121,6 +135,20 @@ dependencies:
121
135
  - - "~>"
122
136
  - !ruby/object:Gem::Version
123
137
  version: '1.3'
138
+ - !ruby/object:Gem::Dependency
139
+ name: zeitwerk
140
+ requirement: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: '2.6'
145
+ type: :runtime
146
+ prerelease: false
147
+ version_requirements: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - "~>"
150
+ - !ruby/object:Gem::Version
151
+ version: '2.6'
124
152
  description: Roast is a Ruby library for running structured AI workflows along with
125
153
  many building blocks for creating and executing them
126
154
  email:
@@ -148,47 +176,93 @@ files:
148
176
  - Rakefile
149
177
  - bin/console
150
178
  - bin/roast
179
+ - claude-swarm.yml
180
+ - docs/AGENT_STEPS.md
151
181
  - docs/INSTRUMENTATION.md
152
182
  - docs/ITERATION_SYNTAX.md
183
+ - docs/VALIDATION.md
184
+ - examples/agent_continue/add_documentation/prompt.md
185
+ - examples/agent_continue/add_error_handling/prompt.md
186
+ - examples/agent_continue/analyze_codebase/prompt.md
187
+ - examples/agent_continue/combined_workflow.yml
188
+ - examples/agent_continue/continue_adding_features/prompt.md
189
+ - examples/agent_continue/create_integration_tests/prompt.md
190
+ - examples/agent_continue/document_with_context/prompt.md
191
+ - examples/agent_continue/explore_api/prompt.md
192
+ - examples/agent_continue/implement_client/prompt.md
193
+ - examples/agent_continue/inline_workflow.yml
194
+ - examples/agent_continue/refactor_code/prompt.md
195
+ - examples/agent_continue/verify_changes/prompt.md
196
+ - examples/agent_continue/workflow.yml
197
+ - examples/agent_workflow/README.md
198
+ - examples/agent_workflow/apply_refactorings/prompt.md
199
+ - examples/agent_workflow/identify_code_smells/prompt.md
200
+ - examples/agent_workflow/summarize_improvements/prompt.md
201
+ - examples/agent_workflow/workflow.png
202
+ - examples/agent_workflow/workflow.yml
153
203
  - examples/api_workflow/README.md
154
204
  - examples/api_workflow/fetch_api_data/prompt.md
155
205
  - examples/api_workflow/generate_report/prompt.md
156
206
  - examples/api_workflow/prompt.md
157
207
  - examples/api_workflow/transform_data/prompt.md
208
+ - examples/api_workflow/workflow.png
158
209
  - examples/api_workflow/workflow.yml
210
+ - examples/apply_diff_demo/README.md
211
+ - examples/apply_diff_demo/apply_simple_change/prompt.md
212
+ - examples/apply_diff_demo/create_sample_file/prompt.md
213
+ - examples/apply_diff_demo/workflow.yml
214
+ - examples/available_tools_demo/README.md
215
+ - examples/available_tools_demo/analyze_files/prompt.md
216
+ - examples/available_tools_demo/explore_directory/prompt.md
217
+ - examples/available_tools_demo/workflow.png
218
+ - examples/available_tools_demo/workflow.yml
219
+ - examples/available_tools_demo/write_summary/prompt.md
159
220
  - examples/bash_prototyping/README.md
160
221
  - examples/bash_prototyping/analyze_network/prompt.md
161
222
  - examples/bash_prototyping/analyze_system/prompt.md
223
+ - examples/bash_prototyping/api_testing.png
162
224
  - examples/bash_prototyping/api_testing.yml
163
225
  - examples/bash_prototyping/check_processes/prompt.md
164
226
  - examples/bash_prototyping/generate_report/prompt.md
165
227
  - examples/bash_prototyping/process_json_response/prompt.md
228
+ - examples/bash_prototyping/system_analysis.png
166
229
  - examples/bash_prototyping/system_analysis.yml
167
230
  - examples/bash_prototyping/test_public_api/prompt.md
168
231
  - examples/case_when/README.md
169
232
  - examples/case_when/detect_language/prompt.md
233
+ - examples/case_when/workflow.png
170
234
  - examples/case_when/workflow.yml
171
235
  - examples/cmd/README.md
172
236
  - examples/cmd/analyze_project/prompt.md
173
237
  - examples/cmd/basic_demo/prompt.md
238
+ - examples/cmd/basic_workflow.png
174
239
  - examples/cmd/basic_workflow.yml
175
240
  - examples/cmd/check_repository/prompt.md
176
241
  - examples/cmd/create_and_verify/prompt.md
242
+ - examples/cmd/dev_workflow.png
177
243
  - examples/cmd/dev_workflow.yml
178
244
  - examples/cmd/explore_project/prompt.md
245
+ - examples/cmd/explorer_workflow.png
179
246
  - examples/cmd/explorer_workflow.yml
180
247
  - examples/cmd/smart_tool_selection/prompt.md
181
248
  - examples/conditional/README.md
182
249
  - examples/conditional/check_condition/prompt.md
250
+ - examples/conditional/simple_workflow.png
183
251
  - examples/conditional/simple_workflow.yml
252
+ - examples/conditional/workflow.png
184
253
  - examples/conditional/workflow.yml
254
+ - examples/context_management_demo/README.md
255
+ - examples/context_management_demo/workflow.yml
185
256
  - examples/direct_coerce_syntax/README.md
257
+ - examples/direct_coerce_syntax/workflow.png
186
258
  - examples/direct_coerce_syntax/workflow.yml
187
259
  - examples/dot_notation/README.md
260
+ - examples/dot_notation/workflow.png
188
261
  - examples/dot_notation/workflow.yml
189
262
  - examples/exit_on_error/README.md
190
263
  - examples/exit_on_error/analyze_lint_output/prompt.md
191
264
  - examples/exit_on_error/apply_fixes/prompt.md
265
+ - examples/exit_on_error/workflow.png
192
266
  - examples/exit_on_error/workflow.yml
193
267
  - examples/grading/README.md
194
268
  - examples/grading/analyze_coverage/prompt.md
@@ -204,6 +278,7 @@ files:
204
278
  - examples/grading/verify_mocks_and_stubs/prompt.md
205
279
  - examples/grading/verify_test_helpers/prompt.md
206
280
  - examples/grading/workflow.md
281
+ - examples/grading/workflow.png
207
282
  - examples/grading/workflow.rb.md
208
283
  - examples/grading/workflow.ts+tsx.md
209
284
  - examples/grading/workflow.yml
@@ -216,6 +291,7 @@ files:
216
291
  - examples/interpolation/sample.js
217
292
  - examples/interpolation/sample.rb
218
293
  - examples/interpolation/workflow.md
294
+ - examples/interpolation/workflow.png
219
295
  - examples/interpolation/workflow.yml
220
296
  - examples/iteration/IMPLEMENTATION.md
221
297
  - examples/iteration/README.md
@@ -234,8 +310,10 @@ files:
234
310
  - examples/iteration/simple_workflow.yml
235
311
  - examples/iteration/update_fix_count/prompt.md
236
312
  - examples/iteration/verify_fix/prompt.md
313
+ - examples/iteration/workflow.png
237
314
  - examples/iteration/workflow.yml
238
315
  - examples/json_handling/README.md
316
+ - examples/json_handling/workflow.png
239
317
  - examples/json_handling/workflow.yml
240
318
  - examples/mcp/README.md
241
319
  - examples/mcp/analyze_changes/prompt.md
@@ -244,17 +322,22 @@ files:
244
322
  - examples/mcp/check_data_quality/prompt.md
245
323
  - examples/mcp/check_documentation/prompt.md
246
324
  - examples/mcp/create_recommendations/prompt.md
325
+ - examples/mcp/database_workflow.png
247
326
  - examples/mcp/database_workflow.yml
327
+ - examples/mcp/env_demo/workflow.png
248
328
  - examples/mcp/env_demo/workflow.yml
249
329
  - examples/mcp/fetch_pr_context/prompt.md
250
330
  - examples/mcp/filesystem_demo/create_test_file/prompt.md
251
331
  - examples/mcp/filesystem_demo/list_files/prompt.md
252
332
  - examples/mcp/filesystem_demo/read_with_mcp/prompt.md
333
+ - examples/mcp/filesystem_demo/workflow.png
253
334
  - examples/mcp/filesystem_demo/workflow.yml
254
335
  - examples/mcp/generate_insights/prompt.md
255
336
  - examples/mcp/generate_report/prompt.md
256
337
  - examples/mcp/generate_review/prompt.md
338
+ - examples/mcp/github_workflow.png
257
339
  - examples/mcp/github_workflow.yml
340
+ - examples/mcp/multi_mcp_workflow.png
258
341
  - examples/mcp/multi_mcp_workflow.yml
259
342
  - examples/mcp/post_review/prompt.md
260
343
  - examples/mcp/save_report/prompt.md
@@ -263,10 +346,19 @@ files:
263
346
  - examples/mcp/test_filesystem/prompt.md
264
347
  - examples/mcp/test_github/prompt.md
265
348
  - examples/mcp/test_read/prompt.md
349
+ - examples/mcp/workflow.png
266
350
  - examples/mcp/workflow.yml
351
+ - examples/no_model_fallback/README.md
352
+ - examples/no_model_fallback/analyze_file/prompt.md
353
+ - examples/no_model_fallback/analyze_patterns/prompt.md
354
+ - examples/no_model_fallback/generate_report_for_md/prompt.md
355
+ - examples/no_model_fallback/generate_report_for_rb/prompt.md
356
+ - examples/no_model_fallback/sample.rb
357
+ - examples/no_model_fallback/workflow.yml
267
358
  - examples/openrouter_example/README.md
268
359
  - examples/openrouter_example/analyze_input/prompt.md
269
360
  - examples/openrouter_example/generate_response/prompt.md
361
+ - examples/openrouter_example/workflow.png
270
362
  - examples/openrouter_example/workflow.yml
271
363
  - examples/pre_post_processing/README.md
272
364
  - examples/pre_post_processing/analyze_test_file/prompt.md
@@ -279,32 +371,54 @@ files:
279
371
  - examples/pre_post_processing/pre_processing/gather_baseline_metrics/prompt.md
280
372
  - examples/pre_post_processing/pre_processing/setup_test_environment/prompt.md
281
373
  - examples/pre_post_processing/validate_changes/prompt.md
374
+ - examples/pre_post_processing/workflow.png
282
375
  - examples/pre_post_processing/workflow.yml
283
376
  - examples/rspec_to_minitest/README.md
284
377
  - examples/rspec_to_minitest/analyze_spec/prompt.md
285
378
  - examples/rspec_to_minitest/create_minitest/prompt.md
286
379
  - examples/rspec_to_minitest/run_and_improve/prompt.md
287
380
  - examples/rspec_to_minitest/workflow.md
381
+ - examples/rspec_to_minitest/workflow.png
288
382
  - examples/rspec_to_minitest/workflow.yml
289
383
  - examples/shared_config/README.md
384
+ - examples/shared_config/example_with_shared_config/workflow.png
290
385
  - examples/shared_config/example_with_shared_config/workflow.yml
386
+ - examples/shared_config/shared.png
291
387
  - examples/shared_config/shared.yml
292
388
  - examples/single_target_prepost/README.md
293
389
  - examples/single_target_prepost/post_processing/output.txt
294
390
  - examples/single_target_prepost/pre_processing/gather_dependencies/prompt.md
391
+ - examples/single_target_prepost/workflow.png
295
392
  - examples/single_target_prepost/workflow.yml
296
393
  - examples/smart_coercion_defaults/README.md
394
+ - examples/smart_coercion_defaults/workflow.png
297
395
  - examples/smart_coercion_defaults/workflow.yml
298
396
  - examples/step_configuration/README.md
397
+ - examples/step_configuration/workflow.png
299
398
  - examples/step_configuration/workflow.yml
399
+ - examples/swarm_example.yml
300
400
  - examples/tool_config_example/README.md
301
401
  - examples/tool_config_example/example_step/prompt.md
402
+ - examples/tool_config_example/workflow.png
302
403
  - examples/tool_config_example/workflow.yml
404
+ - examples/user_input/README.md
405
+ - examples/user_input/funny_name/create_backstory/prompt.md
406
+ - examples/user_input/funny_name/workflow.png
407
+ - examples/user_input/funny_name/workflow.yml
408
+ - examples/user_input/generate_summary/prompt.md
409
+ - examples/user_input/simple_input_demo/workflow.png
410
+ - examples/user_input/simple_input_demo/workflow.yml
411
+ - examples/user_input/survey_workflow.png
412
+ - examples/user_input/survey_workflow.yml
413
+ - examples/user_input/welcome_message/prompt.md
414
+ - examples/user_input/workflow.png
415
+ - examples/user_input/workflow.yml
303
416
  - examples/workflow_generator/README.md
304
417
  - examples/workflow_generator/analyze_user_request/prompt.md
305
418
  - examples/workflow_generator/create_workflow_files/prompt.md
306
419
  - examples/workflow_generator/get_user_input/prompt.md
307
420
  - examples/workflow_generator/info_from_roast.rb
421
+ - examples/workflow_generator/workflow.png
308
422
  - examples/workflow_generator/workflow.yml
309
423
  - exe/roast
310
424
  - gemfiles/activesupport7.gemfile
@@ -312,12 +426,12 @@ files:
312
426
  - lib/roast.rb
313
427
  - lib/roast/errors.rb
314
428
  - lib/roast/factories/api_provider_factory.rb
315
- - lib/roast/helpers.rb
316
429
  - lib/roast/helpers/function_caching_interceptor.rb
317
430
  - lib/roast/helpers/logger.rb
318
431
  - lib/roast/helpers/minitest_coverage_runner.rb
319
432
  - lib/roast/helpers/path_resolver.rb
320
433
  - lib/roast/helpers/prompt_loader.rb
434
+ - lib/roast/helpers/timeout_handler.rb
321
435
  - lib/roast/initializers.rb
322
436
  - lib/roast/resources.rb
323
437
  - lib/roast/resources/api_resource.rb
@@ -326,15 +440,20 @@ files:
326
440
  - lib/roast/resources/file_resource.rb
327
441
  - lib/roast/resources/none_resource.rb
328
442
  - lib/roast/resources/url_resource.rb
443
+ - lib/roast/services/context_threshold_checker.rb
444
+ - lib/roast/services/token_counting_service.rb
329
445
  - lib/roast/tools.rb
446
+ - lib/roast/tools/apply_diff.rb
330
447
  - lib/roast/tools/ask_user.rb
331
448
  - lib/roast/tools/bash.rb
332
449
  - lib/roast/tools/cmd.rb
333
450
  - lib/roast/tools/coding_agent.rb
451
+ - lib/roast/tools/context_summarizer.rb
334
452
  - lib/roast/tools/grep.rb
335
453
  - lib/roast/tools/helpers/coding_agent_message_formatter.rb
336
454
  - lib/roast/tools/read_file.rb
337
455
  - lib/roast/tools/search_file.rb
456
+ - lib/roast/tools/swarm.rb
338
457
  - lib/roast/tools/update_files.rb
339
458
  - lib/roast/tools/write_file.rb
340
459
  - lib/roast/value_objects.rb
@@ -344,6 +463,7 @@ files:
344
463
  - lib/roast/value_objects/workflow_path.rb
345
464
  - lib/roast/version.rb
346
465
  - lib/roast/workflow.rb
466
+ - lib/roast/workflow/agent_step.rb
347
467
  - lib/roast/workflow/api_configuration.rb
348
468
  - lib/roast/workflow/base_iteration_step.rb
349
469
  - lib/roast/workflow/base_step.rb
@@ -356,6 +476,7 @@ files:
356
476
  - lib/roast/workflow/configuration.rb
357
477
  - lib/roast/workflow/configuration_loader.rb
358
478
  - lib/roast/workflow/configuration_parser.rb
479
+ - lib/roast/workflow/context_manager.rb
359
480
  - lib/roast/workflow/context_path_resolver.rb
360
481
  - lib/roast/workflow/dot_access_hash.rb
361
482
  - lib/roast/workflow/each_step.rb
@@ -363,6 +484,8 @@ files:
363
484
  - lib/roast/workflow/expression_evaluator.rb
364
485
  - lib/roast/workflow/expression_utils.rb
365
486
  - lib/roast/workflow/file_state_repository.rb
487
+ - lib/roast/workflow/input_executor.rb
488
+ - lib/roast/workflow/input_step.rb
366
489
  - lib/roast/workflow/interpolator.rb
367
490
  - lib/roast/workflow/iteration_executor.rb
368
491
  - lib/roast/workflow/llm_boolean_coercer.rb
@@ -374,26 +497,40 @@ files:
374
497
  - lib/roast/workflow/replay_handler.rb
375
498
  - lib/roast/workflow/resource_resolver.rb
376
499
  - lib/roast/workflow/session_manager.rb
500
+ - lib/roast/workflow/sqlite_state_repository.rb
377
501
  - lib/roast/workflow/state_manager.rb
378
502
  - lib/roast/workflow/state_repository.rb
503
+ - lib/roast/workflow/state_repository_factory.rb
504
+ - lib/roast/workflow/step_completion_reporter.rb
379
505
  - lib/roast/workflow/step_executor_coordinator.rb
380
506
  - lib/roast/workflow/step_executor_factory.rb
381
507
  - lib/roast/workflow/step_executor_registry.rb
508
+ - lib/roast/workflow/step_executor_with_reporting.rb
382
509
  - lib/roast/workflow/step_executors/base_step_executor.rb
383
510
  - lib/roast/workflow/step_executors/hash_step_executor.rb
384
511
  - lib/roast/workflow/step_executors/parallel_step_executor.rb
385
512
  - lib/roast/workflow/step_executors/string_step_executor.rb
513
+ - lib/roast/workflow/step_factory.rb
386
514
  - lib/roast/workflow/step_finder.rb
387
515
  - lib/roast/workflow/step_loader.rb
516
+ - lib/roast/workflow/step_name_extractor.rb
388
517
  - lib/roast/workflow/step_orchestrator.rb
389
518
  - lib/roast/workflow/step_runner.rb
390
519
  - lib/roast/workflow/step_type_resolver.rb
520
+ - lib/roast/workflow/validation_command.rb
391
521
  - lib/roast/workflow/validator.rb
522
+ - lib/roast/workflow/validators/base_validator.rb
523
+ - lib/roast/workflow/validators/dependency_validator.rb
524
+ - lib/roast/workflow/validators/linting_validator.rb
525
+ - lib/roast/workflow/validators/schema_validator.rb
526
+ - lib/roast/workflow/validators/step_collector.rb
527
+ - lib/roast/workflow/validators/validation_orchestrator.rb
392
528
  - lib/roast/workflow/workflow_context.rb
393
529
  - lib/roast/workflow/workflow_execution_context.rb
394
530
  - lib/roast/workflow/workflow_executor.rb
395
531
  - lib/roast/workflow/workflow_initializer.rb
396
532
  - lib/roast/workflow/workflow_runner.rb
533
+ - lib/roast/workflow_diagram_generator.rb
397
534
  - package-lock.json
398
535
  - roast.gemspec
399
536
  - schema/workflow.json
data/lib/roast/helpers.rb DELETED
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "roast/helpers/logger"
4
- require "roast/helpers/path_resolver"
5
- require "roast/helpers/prompt_loader"
6
- require "roast/helpers/minitest_coverage_runner"
7
- require "roast/helpers/function_caching_interceptor"
8
-
9
- module Roast
10
- module Helpers
11
- end
12
- end