roast-ai 0.4.0 → 0.4.2

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 (125) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yaml +2 -2
  3. data/.gitignore +1 -0
  4. data/CHANGELOG.md +103 -0
  5. data/CLAUDE.md +55 -9
  6. data/Gemfile.lock +19 -10
  7. data/README.md +69 -3
  8. data/bin/console +1 -0
  9. data/docs/AGENT_STEPS.md +33 -9
  10. data/docs/VALIDATION.md +178 -0
  11. data/examples/agent_continue/add_documentation/prompt.md +5 -0
  12. data/examples/agent_continue/add_error_handling/prompt.md +5 -0
  13. data/examples/agent_continue/analyze_codebase/prompt.md +7 -0
  14. data/examples/agent_continue/combined_workflow.yml +24 -0
  15. data/examples/agent_continue/continue_adding_features/prompt.md +4 -0
  16. data/examples/agent_continue/create_integration_tests/prompt.md +3 -0
  17. data/examples/agent_continue/document_with_context/prompt.md +5 -0
  18. data/examples/agent_continue/explore_api/prompt.md +6 -0
  19. data/examples/agent_continue/implement_client/prompt.md +6 -0
  20. data/examples/agent_continue/inline_workflow.yml +20 -0
  21. data/examples/agent_continue/refactor_code/prompt.md +2 -0
  22. data/examples/agent_continue/verify_changes/prompt.md +6 -0
  23. data/examples/agent_continue/workflow.yml +27 -0
  24. data/examples/agent_workflow/workflow.png +0 -0
  25. data/examples/api_workflow/workflow.png +0 -0
  26. data/examples/apply_diff_demo/README.md +58 -0
  27. data/examples/apply_diff_demo/apply_simple_change/prompt.md +13 -0
  28. data/examples/apply_diff_demo/create_sample_file/prompt.md +11 -0
  29. data/examples/apply_diff_demo/workflow.yml +24 -0
  30. data/examples/available_tools_demo/workflow.png +0 -0
  31. data/examples/bash_prototyping/api_testing.png +0 -0
  32. data/examples/bash_prototyping/system_analysis.png +0 -0
  33. data/examples/case_when/workflow.png +0 -0
  34. data/examples/cmd/basic_workflow.png +0 -0
  35. data/examples/cmd/dev_workflow.png +0 -0
  36. data/examples/cmd/explorer_workflow.png +0 -0
  37. data/examples/conditional/simple_workflow.png +0 -0
  38. data/examples/conditional/workflow.png +0 -0
  39. data/examples/context_management_demo/README.md +43 -0
  40. data/examples/context_management_demo/workflow.yml +42 -0
  41. data/examples/direct_coerce_syntax/workflow.png +0 -0
  42. data/examples/dot_notation/workflow.png +0 -0
  43. data/examples/exit_on_error/workflow.png +0 -0
  44. data/examples/grading/rb_test_runner +1 -1
  45. data/examples/grading/workflow.png +0 -0
  46. data/examples/interpolation/workflow.png +0 -0
  47. data/examples/interpolation/workflow.yml +1 -1
  48. data/examples/iteration/workflow.png +0 -0
  49. data/examples/json_handling/workflow.png +0 -0
  50. data/examples/mcp/database_workflow.png +0 -0
  51. data/examples/mcp/env_demo/workflow.png +0 -0
  52. data/examples/mcp/filesystem_demo/workflow.png +0 -0
  53. data/examples/mcp/github_workflow.png +0 -0
  54. data/examples/mcp/multi_mcp_workflow.png +0 -0
  55. data/examples/mcp/workflow.png +0 -0
  56. data/examples/no_model_fallback/README.md +17 -0
  57. data/examples/no_model_fallback/analyze_file/prompt.md +1 -0
  58. data/examples/no_model_fallback/analyze_patterns/prompt.md +27 -0
  59. data/examples/no_model_fallback/generate_report_for_md/prompt.md +10 -0
  60. data/examples/no_model_fallback/generate_report_for_rb/prompt.md +3 -0
  61. data/examples/no_model_fallback/sample.rb +42 -0
  62. data/examples/no_model_fallback/workflow.yml +19 -0
  63. data/examples/openrouter_example/workflow.png +0 -0
  64. data/examples/pre_post_processing/workflow.png +0 -0
  65. data/examples/rspec_to_minitest/workflow.png +0 -0
  66. data/examples/shared_config/example_with_shared_config/workflow.png +0 -0
  67. data/examples/shared_config/shared.png +0 -0
  68. data/examples/single_target_prepost/workflow.png +0 -0
  69. data/examples/smart_coercion_defaults/workflow.png +0 -0
  70. data/examples/step_configuration/workflow.png +0 -0
  71. data/examples/swarm_example.yml +25 -0
  72. data/examples/tool_config_example/workflow.png +0 -0
  73. data/examples/user_input/funny_name/workflow.png +0 -0
  74. data/examples/user_input/simple_input_demo/workflow.png +0 -0
  75. data/examples/user_input/survey_workflow.png +0 -0
  76. data/examples/user_input/workflow.png +0 -0
  77. data/examples/workflow_generator/workflow.png +0 -0
  78. data/lib/roast/errors.rb +3 -0
  79. data/lib/roast/helpers/timeout_handler.rb +91 -0
  80. data/lib/roast/services/context_threshold_checker.rb +42 -0
  81. data/lib/roast/services/token_counting_service.rb +44 -0
  82. data/lib/roast/tools/apply_diff.rb +128 -0
  83. data/lib/roast/tools/bash.rb +15 -9
  84. data/lib/roast/tools/cmd.rb +32 -12
  85. data/lib/roast/tools/coding_agent.rb +65 -10
  86. data/lib/roast/tools/context_summarizer.rb +108 -0
  87. data/lib/roast/tools/swarm.rb +124 -0
  88. data/lib/roast/version.rb +1 -1
  89. data/lib/roast/workflow/agent_step.rb +9 -2
  90. data/lib/roast/workflow/base_iteration_step.rb +3 -2
  91. data/lib/roast/workflow/base_workflow.rb +41 -2
  92. data/lib/roast/workflow/command_executor.rb +3 -1
  93. data/lib/roast/workflow/configuration.rb +2 -1
  94. data/lib/roast/workflow/configuration_loader.rb +63 -1
  95. data/lib/roast/workflow/configuration_parser.rb +2 -0
  96. data/lib/roast/workflow/context_manager.rb +89 -0
  97. data/lib/roast/workflow/each_step.rb +1 -1
  98. data/lib/roast/workflow/input_step.rb +2 -0
  99. data/lib/roast/workflow/interpolator.rb +23 -1
  100. data/lib/roast/workflow/output_handler.rb +1 -1
  101. data/lib/roast/workflow/repeat_step.rb +1 -1
  102. data/lib/roast/workflow/replay_handler.rb +1 -1
  103. data/lib/roast/workflow/sqlite_state_repository.rb +342 -0
  104. data/lib/roast/workflow/state_manager.rb +2 -2
  105. data/lib/roast/workflow/state_repository_factory.rb +36 -0
  106. data/lib/roast/workflow/step_completion_reporter.rb +27 -0
  107. data/lib/roast/workflow/step_executor_coordinator.rb +19 -18
  108. data/lib/roast/workflow/step_executor_with_reporting.rb +68 -0
  109. data/lib/roast/workflow/step_loader.rb +1 -1
  110. data/lib/roast/workflow/step_name_extractor.rb +84 -0
  111. data/lib/roast/workflow/validation_command.rb +197 -0
  112. data/lib/roast/workflow/validators/base_validator.rb +44 -0
  113. data/lib/roast/workflow/validators/dependency_validator.rb +223 -0
  114. data/lib/roast/workflow/validators/linting_validator.rb +113 -0
  115. data/lib/roast/workflow/validators/schema_validator.rb +90 -0
  116. data/lib/roast/workflow/validators/step_collector.rb +57 -0
  117. data/lib/roast/workflow/validators/validation_orchestrator.rb +52 -0
  118. data/lib/roast/workflow/workflow_executor.rb +11 -4
  119. data/lib/roast/workflow/workflow_initializer.rb +80 -0
  120. data/lib/roast/workflow/workflow_runner.rb +6 -0
  121. data/lib/roast/workflow_diagram_generator.rb +298 -0
  122. data/lib/roast.rb +158 -0
  123. data/roast.gemspec +4 -1
  124. data/schema/workflow.json +77 -1
  125. metadata +129 -1
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.4.0
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shopify
@@ -23,6 +23,20 @@ dependencies:
23
23
  - - ">="
24
24
  - !ruby/object:Gem::Version
25
25
  version: '7.0'
26
+ - !ruby/object:Gem::Dependency
27
+ name: cli-kit
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '5.0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '5.0'
26
40
  - !ruby/object:Gem::Dependency
27
41
  name: cli-ui
28
42
  requirement: !ruby/object:Gem::Requirement
@@ -107,6 +121,34 @@ dependencies:
107
121
  - - "~>"
108
122
  - !ruby/object:Gem::Version
109
123
  version: '1.0'
124
+ - !ruby/object:Gem::Dependency
125
+ name: ruby-graphviz
126
+ requirement: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: '1.2'
131
+ type: :runtime
132
+ prerelease: false
133
+ version_requirements: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: '1.2'
138
+ - !ruby/object:Gem::Dependency
139
+ name: sqlite3
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'
110
152
  - !ruby/object:Gem::Dependency
111
153
  name: thor
112
154
  requirement: !ruby/object:Gem::Requirement
@@ -166,55 +208,89 @@ files:
166
208
  - docs/AGENT_STEPS.md
167
209
  - docs/INSTRUMENTATION.md
168
210
  - docs/ITERATION_SYNTAX.md
211
+ - docs/VALIDATION.md
212
+ - examples/agent_continue/add_documentation/prompt.md
213
+ - examples/agent_continue/add_error_handling/prompt.md
214
+ - examples/agent_continue/analyze_codebase/prompt.md
215
+ - examples/agent_continue/combined_workflow.yml
216
+ - examples/agent_continue/continue_adding_features/prompt.md
217
+ - examples/agent_continue/create_integration_tests/prompt.md
218
+ - examples/agent_continue/document_with_context/prompt.md
219
+ - examples/agent_continue/explore_api/prompt.md
220
+ - examples/agent_continue/implement_client/prompt.md
221
+ - examples/agent_continue/inline_workflow.yml
222
+ - examples/agent_continue/refactor_code/prompt.md
223
+ - examples/agent_continue/verify_changes/prompt.md
224
+ - examples/agent_continue/workflow.yml
169
225
  - examples/agent_workflow/README.md
170
226
  - examples/agent_workflow/apply_refactorings/prompt.md
171
227
  - examples/agent_workflow/identify_code_smells/prompt.md
172
228
  - examples/agent_workflow/summarize_improvements/prompt.md
229
+ - examples/agent_workflow/workflow.png
173
230
  - examples/agent_workflow/workflow.yml
174
231
  - examples/api_workflow/README.md
175
232
  - examples/api_workflow/fetch_api_data/prompt.md
176
233
  - examples/api_workflow/generate_report/prompt.md
177
234
  - examples/api_workflow/prompt.md
178
235
  - examples/api_workflow/transform_data/prompt.md
236
+ - examples/api_workflow/workflow.png
179
237
  - examples/api_workflow/workflow.yml
238
+ - examples/apply_diff_demo/README.md
239
+ - examples/apply_diff_demo/apply_simple_change/prompt.md
240
+ - examples/apply_diff_demo/create_sample_file/prompt.md
241
+ - examples/apply_diff_demo/workflow.yml
180
242
  - examples/available_tools_demo/README.md
181
243
  - examples/available_tools_demo/analyze_files/prompt.md
182
244
  - examples/available_tools_demo/explore_directory/prompt.md
245
+ - examples/available_tools_demo/workflow.png
183
246
  - examples/available_tools_demo/workflow.yml
184
247
  - examples/available_tools_demo/write_summary/prompt.md
185
248
  - examples/bash_prototyping/README.md
186
249
  - examples/bash_prototyping/analyze_network/prompt.md
187
250
  - examples/bash_prototyping/analyze_system/prompt.md
251
+ - examples/bash_prototyping/api_testing.png
188
252
  - examples/bash_prototyping/api_testing.yml
189
253
  - examples/bash_prototyping/check_processes/prompt.md
190
254
  - examples/bash_prototyping/generate_report/prompt.md
191
255
  - examples/bash_prototyping/process_json_response/prompt.md
256
+ - examples/bash_prototyping/system_analysis.png
192
257
  - examples/bash_prototyping/system_analysis.yml
193
258
  - examples/bash_prototyping/test_public_api/prompt.md
194
259
  - examples/case_when/README.md
195
260
  - examples/case_when/detect_language/prompt.md
261
+ - examples/case_when/workflow.png
196
262
  - examples/case_when/workflow.yml
197
263
  - examples/cmd/README.md
198
264
  - examples/cmd/analyze_project/prompt.md
199
265
  - examples/cmd/basic_demo/prompt.md
266
+ - examples/cmd/basic_workflow.png
200
267
  - examples/cmd/basic_workflow.yml
201
268
  - examples/cmd/check_repository/prompt.md
202
269
  - examples/cmd/create_and_verify/prompt.md
270
+ - examples/cmd/dev_workflow.png
203
271
  - examples/cmd/dev_workflow.yml
204
272
  - examples/cmd/explore_project/prompt.md
273
+ - examples/cmd/explorer_workflow.png
205
274
  - examples/cmd/explorer_workflow.yml
206
275
  - examples/cmd/smart_tool_selection/prompt.md
207
276
  - examples/conditional/README.md
208
277
  - examples/conditional/check_condition/prompt.md
278
+ - examples/conditional/simple_workflow.png
209
279
  - examples/conditional/simple_workflow.yml
280
+ - examples/conditional/workflow.png
210
281
  - examples/conditional/workflow.yml
282
+ - examples/context_management_demo/README.md
283
+ - examples/context_management_demo/workflow.yml
211
284
  - examples/direct_coerce_syntax/README.md
285
+ - examples/direct_coerce_syntax/workflow.png
212
286
  - examples/direct_coerce_syntax/workflow.yml
213
287
  - examples/dot_notation/README.md
288
+ - examples/dot_notation/workflow.png
214
289
  - examples/dot_notation/workflow.yml
215
290
  - examples/exit_on_error/README.md
216
291
  - examples/exit_on_error/analyze_lint_output/prompt.md
217
292
  - examples/exit_on_error/apply_fixes/prompt.md
293
+ - examples/exit_on_error/workflow.png
218
294
  - examples/exit_on_error/workflow.yml
219
295
  - examples/grading/README.md
220
296
  - examples/grading/analyze_coverage/prompt.md
@@ -230,6 +306,7 @@ files:
230
306
  - examples/grading/verify_mocks_and_stubs/prompt.md
231
307
  - examples/grading/verify_test_helpers/prompt.md
232
308
  - examples/grading/workflow.md
309
+ - examples/grading/workflow.png
233
310
  - examples/grading/workflow.rb.md
234
311
  - examples/grading/workflow.ts+tsx.md
235
312
  - examples/grading/workflow.yml
@@ -242,6 +319,7 @@ files:
242
319
  - examples/interpolation/sample.js
243
320
  - examples/interpolation/sample.rb
244
321
  - examples/interpolation/workflow.md
322
+ - examples/interpolation/workflow.png
245
323
  - examples/interpolation/workflow.yml
246
324
  - examples/iteration/IMPLEMENTATION.md
247
325
  - examples/iteration/README.md
@@ -260,8 +338,10 @@ files:
260
338
  - examples/iteration/simple_workflow.yml
261
339
  - examples/iteration/update_fix_count/prompt.md
262
340
  - examples/iteration/verify_fix/prompt.md
341
+ - examples/iteration/workflow.png
263
342
  - examples/iteration/workflow.yml
264
343
  - examples/json_handling/README.md
344
+ - examples/json_handling/workflow.png
265
345
  - examples/json_handling/workflow.yml
266
346
  - examples/mcp/README.md
267
347
  - examples/mcp/analyze_changes/prompt.md
@@ -270,17 +350,22 @@ files:
270
350
  - examples/mcp/check_data_quality/prompt.md
271
351
  - examples/mcp/check_documentation/prompt.md
272
352
  - examples/mcp/create_recommendations/prompt.md
353
+ - examples/mcp/database_workflow.png
273
354
  - examples/mcp/database_workflow.yml
355
+ - examples/mcp/env_demo/workflow.png
274
356
  - examples/mcp/env_demo/workflow.yml
275
357
  - examples/mcp/fetch_pr_context/prompt.md
276
358
  - examples/mcp/filesystem_demo/create_test_file/prompt.md
277
359
  - examples/mcp/filesystem_demo/list_files/prompt.md
278
360
  - examples/mcp/filesystem_demo/read_with_mcp/prompt.md
361
+ - examples/mcp/filesystem_demo/workflow.png
279
362
  - examples/mcp/filesystem_demo/workflow.yml
280
363
  - examples/mcp/generate_insights/prompt.md
281
364
  - examples/mcp/generate_report/prompt.md
282
365
  - examples/mcp/generate_review/prompt.md
366
+ - examples/mcp/github_workflow.png
283
367
  - examples/mcp/github_workflow.yml
368
+ - examples/mcp/multi_mcp_workflow.png
284
369
  - examples/mcp/multi_mcp_workflow.yml
285
370
  - examples/mcp/post_review/prompt.md
286
371
  - examples/mcp/save_report/prompt.md
@@ -289,10 +374,19 @@ files:
289
374
  - examples/mcp/test_filesystem/prompt.md
290
375
  - examples/mcp/test_github/prompt.md
291
376
  - examples/mcp/test_read/prompt.md
377
+ - examples/mcp/workflow.png
292
378
  - examples/mcp/workflow.yml
379
+ - examples/no_model_fallback/README.md
380
+ - examples/no_model_fallback/analyze_file/prompt.md
381
+ - examples/no_model_fallback/analyze_patterns/prompt.md
382
+ - examples/no_model_fallback/generate_report_for_md/prompt.md
383
+ - examples/no_model_fallback/generate_report_for_rb/prompt.md
384
+ - examples/no_model_fallback/sample.rb
385
+ - examples/no_model_fallback/workflow.yml
293
386
  - examples/openrouter_example/README.md
294
387
  - examples/openrouter_example/analyze_input/prompt.md
295
388
  - examples/openrouter_example/generate_response/prompt.md
389
+ - examples/openrouter_example/workflow.png
296
390
  - examples/openrouter_example/workflow.yml
297
391
  - examples/pre_post_processing/README.md
298
392
  - examples/pre_post_processing/analyze_test_file/prompt.md
@@ -305,40 +399,54 @@ files:
305
399
  - examples/pre_post_processing/pre_processing/gather_baseline_metrics/prompt.md
306
400
  - examples/pre_post_processing/pre_processing/setup_test_environment/prompt.md
307
401
  - examples/pre_post_processing/validate_changes/prompt.md
402
+ - examples/pre_post_processing/workflow.png
308
403
  - examples/pre_post_processing/workflow.yml
309
404
  - examples/rspec_to_minitest/README.md
310
405
  - examples/rspec_to_minitest/analyze_spec/prompt.md
311
406
  - examples/rspec_to_minitest/create_minitest/prompt.md
312
407
  - examples/rspec_to_minitest/run_and_improve/prompt.md
313
408
  - examples/rspec_to_minitest/workflow.md
409
+ - examples/rspec_to_minitest/workflow.png
314
410
  - examples/rspec_to_minitest/workflow.yml
315
411
  - examples/shared_config/README.md
412
+ - examples/shared_config/example_with_shared_config/workflow.png
316
413
  - examples/shared_config/example_with_shared_config/workflow.yml
414
+ - examples/shared_config/shared.png
317
415
  - examples/shared_config/shared.yml
318
416
  - examples/single_target_prepost/README.md
319
417
  - examples/single_target_prepost/post_processing/output.txt
320
418
  - examples/single_target_prepost/pre_processing/gather_dependencies/prompt.md
419
+ - examples/single_target_prepost/workflow.png
321
420
  - examples/single_target_prepost/workflow.yml
322
421
  - examples/smart_coercion_defaults/README.md
422
+ - examples/smart_coercion_defaults/workflow.png
323
423
  - examples/smart_coercion_defaults/workflow.yml
324
424
  - examples/step_configuration/README.md
425
+ - examples/step_configuration/workflow.png
325
426
  - examples/step_configuration/workflow.yml
427
+ - examples/swarm_example.yml
326
428
  - examples/tool_config_example/README.md
327
429
  - examples/tool_config_example/example_step/prompt.md
430
+ - examples/tool_config_example/workflow.png
328
431
  - examples/tool_config_example/workflow.yml
329
432
  - examples/user_input/README.md
330
433
  - examples/user_input/funny_name/create_backstory/prompt.md
434
+ - examples/user_input/funny_name/workflow.png
331
435
  - examples/user_input/funny_name/workflow.yml
332
436
  - examples/user_input/generate_summary/prompt.md
437
+ - examples/user_input/simple_input_demo/workflow.png
333
438
  - examples/user_input/simple_input_demo/workflow.yml
439
+ - examples/user_input/survey_workflow.png
334
440
  - examples/user_input/survey_workflow.yml
335
441
  - examples/user_input/welcome_message/prompt.md
442
+ - examples/user_input/workflow.png
336
443
  - examples/user_input/workflow.yml
337
444
  - examples/workflow_generator/README.md
338
445
  - examples/workflow_generator/analyze_user_request/prompt.md
339
446
  - examples/workflow_generator/create_workflow_files/prompt.md
340
447
  - examples/workflow_generator/get_user_input/prompt.md
341
448
  - examples/workflow_generator/info_from_roast.rb
449
+ - examples/workflow_generator/workflow.png
342
450
  - examples/workflow_generator/workflow.yml
343
451
  - exe/roast
344
452
  - gemfiles/activesupport7.gemfile
@@ -351,6 +459,7 @@ files:
351
459
  - lib/roast/helpers/minitest_coverage_runner.rb
352
460
  - lib/roast/helpers/path_resolver.rb
353
461
  - lib/roast/helpers/prompt_loader.rb
462
+ - lib/roast/helpers/timeout_handler.rb
354
463
  - lib/roast/initializers.rb
355
464
  - lib/roast/resources.rb
356
465
  - lib/roast/resources/api_resource.rb
@@ -359,15 +468,20 @@ files:
359
468
  - lib/roast/resources/file_resource.rb
360
469
  - lib/roast/resources/none_resource.rb
361
470
  - lib/roast/resources/url_resource.rb
471
+ - lib/roast/services/context_threshold_checker.rb
472
+ - lib/roast/services/token_counting_service.rb
362
473
  - lib/roast/tools.rb
474
+ - lib/roast/tools/apply_diff.rb
363
475
  - lib/roast/tools/ask_user.rb
364
476
  - lib/roast/tools/bash.rb
365
477
  - lib/roast/tools/cmd.rb
366
478
  - lib/roast/tools/coding_agent.rb
479
+ - lib/roast/tools/context_summarizer.rb
367
480
  - lib/roast/tools/grep.rb
368
481
  - lib/roast/tools/helpers/coding_agent_message_formatter.rb
369
482
  - lib/roast/tools/read_file.rb
370
483
  - lib/roast/tools/search_file.rb
484
+ - lib/roast/tools/swarm.rb
371
485
  - lib/roast/tools/update_files.rb
372
486
  - lib/roast/tools/write_file.rb
373
487
  - lib/roast/value_objects.rb
@@ -390,6 +504,7 @@ files:
390
504
  - lib/roast/workflow/configuration.rb
391
505
  - lib/roast/workflow/configuration_loader.rb
392
506
  - lib/roast/workflow/configuration_parser.rb
507
+ - lib/roast/workflow/context_manager.rb
393
508
  - lib/roast/workflow/context_path_resolver.rb
394
509
  - lib/roast/workflow/dot_access_hash.rb
395
510
  - lib/roast/workflow/each_step.rb
@@ -410,11 +525,15 @@ files:
410
525
  - lib/roast/workflow/replay_handler.rb
411
526
  - lib/roast/workflow/resource_resolver.rb
412
527
  - lib/roast/workflow/session_manager.rb
528
+ - lib/roast/workflow/sqlite_state_repository.rb
413
529
  - lib/roast/workflow/state_manager.rb
414
530
  - lib/roast/workflow/state_repository.rb
531
+ - lib/roast/workflow/state_repository_factory.rb
532
+ - lib/roast/workflow/step_completion_reporter.rb
415
533
  - lib/roast/workflow/step_executor_coordinator.rb
416
534
  - lib/roast/workflow/step_executor_factory.rb
417
535
  - lib/roast/workflow/step_executor_registry.rb
536
+ - lib/roast/workflow/step_executor_with_reporting.rb
418
537
  - lib/roast/workflow/step_executors/base_step_executor.rb
419
538
  - lib/roast/workflow/step_executors/hash_step_executor.rb
420
539
  - lib/roast/workflow/step_executors/parallel_step_executor.rb
@@ -422,15 +541,24 @@ files:
422
541
  - lib/roast/workflow/step_factory.rb
423
542
  - lib/roast/workflow/step_finder.rb
424
543
  - lib/roast/workflow/step_loader.rb
544
+ - lib/roast/workflow/step_name_extractor.rb
425
545
  - lib/roast/workflow/step_orchestrator.rb
426
546
  - lib/roast/workflow/step_runner.rb
427
547
  - lib/roast/workflow/step_type_resolver.rb
548
+ - lib/roast/workflow/validation_command.rb
428
549
  - lib/roast/workflow/validator.rb
550
+ - lib/roast/workflow/validators/base_validator.rb
551
+ - lib/roast/workflow/validators/dependency_validator.rb
552
+ - lib/roast/workflow/validators/linting_validator.rb
553
+ - lib/roast/workflow/validators/schema_validator.rb
554
+ - lib/roast/workflow/validators/step_collector.rb
555
+ - lib/roast/workflow/validators/validation_orchestrator.rb
429
556
  - lib/roast/workflow/workflow_context.rb
430
557
  - lib/roast/workflow/workflow_execution_context.rb
431
558
  - lib/roast/workflow/workflow_executor.rb
432
559
  - lib/roast/workflow/workflow_initializer.rb
433
560
  - lib/roast/workflow/workflow_runner.rb
561
+ - lib/roast/workflow_diagram_generator.rb
434
562
  - package-lock.json
435
563
  - roast.gemspec
436
564
  - schema/workflow.json