roast-ai 0.3.0 → 0.4.0

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 (127) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/CHANGELOG.md +32 -0
  4. data/CLAUDE.md +52 -1
  5. data/Gemfile +3 -1
  6. data/Gemfile.lock +63 -16
  7. data/README.md +115 -5
  8. data/bin/roast +1 -1
  9. data/claude-swarm.yml +210 -0
  10. data/docs/AGENT_STEPS.md +264 -0
  11. data/examples/agent_workflow/README.md +75 -0
  12. data/examples/agent_workflow/apply_refactorings/prompt.md +22 -0
  13. data/examples/agent_workflow/identify_code_smells/prompt.md +15 -0
  14. data/examples/agent_workflow/summarize_improvements/prompt.md +18 -0
  15. data/examples/agent_workflow/workflow.yml +16 -0
  16. data/examples/available_tools_demo/README.md +42 -0
  17. data/examples/available_tools_demo/analyze_files/prompt.md +6 -0
  18. data/examples/available_tools_demo/explore_directory/prompt.md +6 -0
  19. data/examples/available_tools_demo/workflow.yml +32 -0
  20. data/examples/available_tools_demo/write_summary/prompt.md +6 -0
  21. data/examples/case_when/detect_language/prompt.md +2 -2
  22. data/examples/grading/README.md +71 -0
  23. data/examples/grading/run_coverage.rb +0 -2
  24. data/examples/iteration/analyze_complexity/prompt.md +2 -2
  25. data/examples/iteration/generate_recommendations/prompt.md +2 -2
  26. data/examples/iteration/implement_fix/prompt.md +2 -2
  27. data/examples/iteration/prioritize_issues/prompt.md +1 -1
  28. data/examples/iteration/prompts/analyze_file.md +2 -2
  29. data/examples/iteration/prompts/generate_summary.md +1 -1
  30. data/examples/iteration/prompts/update_report.md +3 -3
  31. data/examples/iteration/prompts/write_report.md +3 -3
  32. data/examples/iteration/read_file/prompt.md +2 -2
  33. data/examples/iteration/select_next_issue/prompt.md +2 -2
  34. data/examples/iteration/update_fix_count/prompt.md +4 -4
  35. data/examples/iteration/verify_fix/prompt.md +3 -3
  36. data/examples/mcp/README.md +3 -3
  37. data/examples/mcp/analyze_changes/prompt.md +1 -1
  38. data/examples/mcp/database_workflow.yml +1 -1
  39. data/examples/mcp/fetch_pr_context/prompt.md +1 -1
  40. data/examples/mcp/github_workflow.yml +1 -1
  41. data/examples/mcp/post_review/prompt.md +1 -1
  42. data/examples/pre_post_processing/analyze_test_file/prompt.md +1 -1
  43. data/examples/pre_post_processing/improve_test_coverage/prompt.md +1 -1
  44. data/examples/pre_post_processing/optimize_test_performance/prompt.md +1 -1
  45. data/examples/pre_post_processing/post_processing/aggregate_metrics/prompt.md +2 -2
  46. data/examples/pre_post_processing/post_processing/generate_summary_report/prompt.md +1 -1
  47. data/examples/pre_post_processing/pre_processing/setup_test_environment/prompt.md +1 -1
  48. data/examples/pre_post_processing/validate_changes/prompt.md +2 -2
  49. data/examples/user_input/README.md +90 -0
  50. data/examples/user_input/funny_name/create_backstory/prompt.md +10 -0
  51. data/examples/user_input/funny_name/workflow.yml +26 -0
  52. data/examples/user_input/generate_summary/prompt.md +11 -0
  53. data/examples/user_input/simple_input_demo/workflow.yml +35 -0
  54. data/examples/user_input/survey_workflow.yml +71 -0
  55. data/examples/user_input/welcome_message/prompt.md +3 -0
  56. data/examples/user_input/workflow.yml +73 -0
  57. data/examples/workflow_generator/create_workflow_files/prompt.md +1 -1
  58. data/lib/roast/errors.rb +6 -4
  59. data/lib/roast/helpers/function_caching_interceptor.rb +0 -2
  60. data/lib/roast/helpers/logger.rb +12 -35
  61. data/lib/roast/helpers/minitest_coverage_runner.rb +0 -1
  62. data/lib/roast/helpers/prompt_loader.rb +0 -2
  63. data/lib/roast/resources/api_resource.rb +0 -4
  64. data/lib/roast/resources/url_resource.rb +0 -3
  65. data/lib/roast/resources.rb +0 -8
  66. data/lib/roast/tools/ask_user.rb +0 -2
  67. data/lib/roast/tools/bash.rb +0 -3
  68. data/lib/roast/tools/cmd.rb +0 -3
  69. data/lib/roast/tools/coding_agent.rb +1 -8
  70. data/lib/roast/tools/grep.rb +0 -3
  71. data/lib/roast/tools/helpers/coding_agent_message_formatter.rb +1 -4
  72. data/lib/roast/tools/read_file.rb +0 -2
  73. data/lib/roast/tools/search_file.rb +0 -2
  74. data/lib/roast/tools/update_files.rb +0 -4
  75. data/lib/roast/tools/write_file.rb +0 -3
  76. data/lib/roast/tools.rb +0 -13
  77. data/lib/roast/value_objects/step_name.rb +14 -3
  78. data/lib/roast/value_objects/workflow_path.rb +0 -2
  79. data/lib/roast/value_objects.rb +4 -4
  80. data/lib/roast/version.rb +1 -1
  81. data/lib/roast/workflow/agent_step.rb +26 -0
  82. data/lib/roast/workflow/api_configuration.rb +0 -4
  83. data/lib/roast/workflow/base_iteration_step.rb +0 -4
  84. data/lib/roast/workflow/base_step.rb +54 -28
  85. data/lib/roast/workflow/base_workflow.rb +2 -21
  86. data/lib/roast/workflow/case_executor.rb +0 -1
  87. data/lib/roast/workflow/case_step.rb +0 -4
  88. data/lib/roast/workflow/command_executor.rb +0 -2
  89. data/lib/roast/workflow/conditional_executor.rb +0 -1
  90. data/lib/roast/workflow/conditional_step.rb +0 -4
  91. data/lib/roast/workflow/configuration.rb +3 -10
  92. data/lib/roast/workflow/configuration_loader.rb +0 -2
  93. data/lib/roast/workflow/configuration_parser.rb +1 -7
  94. data/lib/roast/workflow/dot_access_hash.rb +16 -1
  95. data/lib/roast/workflow/error_handler.rb +0 -3
  96. data/lib/roast/workflow/expression_evaluator.rb +0 -3
  97. data/lib/roast/workflow/file_state_repository.rb +0 -5
  98. data/lib/roast/workflow/input_executor.rb +41 -0
  99. data/lib/roast/workflow/input_step.rb +163 -0
  100. data/lib/roast/workflow/iteration_executor.rb +0 -2
  101. data/lib/roast/workflow/output_handler.rb +0 -2
  102. data/lib/roast/workflow/output_manager.rb +0 -2
  103. data/lib/roast/workflow/prompt_step.rb +1 -1
  104. data/lib/roast/workflow/replay_handler.rb +0 -3
  105. data/lib/roast/workflow/resource_resolver.rb +0 -3
  106. data/lib/roast/workflow/session_manager.rb +0 -3
  107. data/lib/roast/workflow/state_manager.rb +0 -2
  108. data/lib/roast/workflow/step_executor_coordinator.rb +34 -11
  109. data/lib/roast/workflow/step_executor_factory.rb +0 -5
  110. data/lib/roast/workflow/step_executor_registry.rb +1 -4
  111. data/lib/roast/workflow/step_executors/hash_step_executor.rb +0 -3
  112. data/lib/roast/workflow/step_executors/parallel_step_executor.rb +0 -3
  113. data/lib/roast/workflow/step_executors/string_step_executor.rb +0 -2
  114. data/lib/roast/workflow/step_factory.rb +56 -0
  115. data/lib/roast/workflow/step_loader.rb +30 -16
  116. data/lib/roast/workflow/step_orchestrator.rb +3 -2
  117. data/lib/roast/workflow/step_type_resolver.rb +28 -1
  118. data/lib/roast/workflow/validator.rb +0 -4
  119. data/lib/roast/workflow/workflow_executor.rb +0 -16
  120. data/lib/roast/workflow/workflow_initializer.rb +1 -8
  121. data/lib/roast/workflow/workflow_runner.rb +0 -7
  122. data/lib/roast/workflow.rb +0 -15
  123. data/lib/roast.rb +55 -10
  124. data/roast.gemspec +2 -1
  125. data/schema/workflow.json +46 -0
  126. metadata +44 -6
  127. 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.0
4
+ version: 0.4.0
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
@@ -121,6 +121,20 @@ dependencies:
121
121
  - - "~>"
122
122
  - !ruby/object:Gem::Version
123
123
  version: '1.3'
124
+ - !ruby/object:Gem::Dependency
125
+ name: zeitwerk
126
+ requirement: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: '2.6'
131
+ type: :runtime
132
+ prerelease: false
133
+ version_requirements: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: '2.6'
124
138
  description: Roast is a Ruby library for running structured AI workflows along with
125
139
  many building blocks for creating and executing them
126
140
  email:
@@ -148,14 +162,26 @@ files:
148
162
  - Rakefile
149
163
  - bin/console
150
164
  - bin/roast
165
+ - claude-swarm.yml
166
+ - docs/AGENT_STEPS.md
151
167
  - docs/INSTRUMENTATION.md
152
168
  - docs/ITERATION_SYNTAX.md
169
+ - examples/agent_workflow/README.md
170
+ - examples/agent_workflow/apply_refactorings/prompt.md
171
+ - examples/agent_workflow/identify_code_smells/prompt.md
172
+ - examples/agent_workflow/summarize_improvements/prompt.md
173
+ - examples/agent_workflow/workflow.yml
153
174
  - examples/api_workflow/README.md
154
175
  - examples/api_workflow/fetch_api_data/prompt.md
155
176
  - examples/api_workflow/generate_report/prompt.md
156
177
  - examples/api_workflow/prompt.md
157
178
  - examples/api_workflow/transform_data/prompt.md
158
179
  - examples/api_workflow/workflow.yml
180
+ - examples/available_tools_demo/README.md
181
+ - examples/available_tools_demo/analyze_files/prompt.md
182
+ - examples/available_tools_demo/explore_directory/prompt.md
183
+ - examples/available_tools_demo/workflow.yml
184
+ - examples/available_tools_demo/write_summary/prompt.md
159
185
  - examples/bash_prototyping/README.md
160
186
  - examples/bash_prototyping/analyze_network/prompt.md
161
187
  - examples/bash_prototyping/analyze_system/prompt.md
@@ -190,6 +216,7 @@ files:
190
216
  - examples/exit_on_error/analyze_lint_output/prompt.md
191
217
  - examples/exit_on_error/apply_fixes/prompt.md
192
218
  - examples/exit_on_error/workflow.yml
219
+ - examples/grading/README.md
193
220
  - examples/grading/analyze_coverage/prompt.md
194
221
  - examples/grading/calculate_final_grade.rb
195
222
  - examples/grading/format_result.rb
@@ -299,6 +326,14 @@ files:
299
326
  - examples/tool_config_example/README.md
300
327
  - examples/tool_config_example/example_step/prompt.md
301
328
  - examples/tool_config_example/workflow.yml
329
+ - examples/user_input/README.md
330
+ - examples/user_input/funny_name/create_backstory/prompt.md
331
+ - examples/user_input/funny_name/workflow.yml
332
+ - examples/user_input/generate_summary/prompt.md
333
+ - examples/user_input/simple_input_demo/workflow.yml
334
+ - examples/user_input/survey_workflow.yml
335
+ - examples/user_input/welcome_message/prompt.md
336
+ - examples/user_input/workflow.yml
302
337
  - examples/workflow_generator/README.md
303
338
  - examples/workflow_generator/analyze_user_request/prompt.md
304
339
  - examples/workflow_generator/create_workflow_files/prompt.md
@@ -311,7 +346,6 @@ files:
311
346
  - lib/roast.rb
312
347
  - lib/roast/errors.rb
313
348
  - lib/roast/factories/api_provider_factory.rb
314
- - lib/roast/helpers.rb
315
349
  - lib/roast/helpers/function_caching_interceptor.rb
316
350
  - lib/roast/helpers/logger.rb
317
351
  - lib/roast/helpers/minitest_coverage_runner.rb
@@ -343,6 +377,7 @@ files:
343
377
  - lib/roast/value_objects/workflow_path.rb
344
378
  - lib/roast/version.rb
345
379
  - lib/roast/workflow.rb
380
+ - lib/roast/workflow/agent_step.rb
346
381
  - lib/roast/workflow/api_configuration.rb
347
382
  - lib/roast/workflow/base_iteration_step.rb
348
383
  - lib/roast/workflow/base_step.rb
@@ -362,6 +397,8 @@ files:
362
397
  - lib/roast/workflow/expression_evaluator.rb
363
398
  - lib/roast/workflow/expression_utils.rb
364
399
  - lib/roast/workflow/file_state_repository.rb
400
+ - lib/roast/workflow/input_executor.rb
401
+ - lib/roast/workflow/input_step.rb
365
402
  - lib/roast/workflow/interpolator.rb
366
403
  - lib/roast/workflow/iteration_executor.rb
367
404
  - lib/roast/workflow/llm_boolean_coercer.rb
@@ -382,6 +419,7 @@ files:
382
419
  - lib/roast/workflow/step_executors/hash_step_executor.rb
383
420
  - lib/roast/workflow/step_executors/parallel_step_executor.rb
384
421
  - lib/roast/workflow/step_executors/string_step_executor.rb
422
+ - lib/roast/workflow/step_factory.rb
385
423
  - lib/roast/workflow/step_finder.rb
386
424
  - lib/roast/workflow/step_loader.rb
387
425
  - lib/roast/workflow/step_orchestrator.rb
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