roast-ai 0.4.7 → 0.4.9

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 (311) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.rubocop.yml +1 -0
  4. data/Gemfile.lock +3 -3
  5. data/README.md +9 -5
  6. data/Rakefile +2 -0
  7. data/dsl/less_simple.rb +112 -0
  8. data/dsl/prototype.rb +17 -0
  9. data/dsl/simple.rb +5 -7
  10. data/dsl/step_communication.rb +18 -0
  11. data/examples/README.md +9 -0
  12. data/examples/available_tools_demo/workflow.yml +1 -1
  13. data/examples/basic_prompt_workflow/workflow.md +1 -0
  14. data/examples/basic_prompt_workflow/workflow.yml +14 -0
  15. data/examples/grading/README.md +1 -26
  16. data/examples/grading/analyze_coverage/prompt.md +1 -1
  17. data/examples/grading/calculate_final_grade.rb +10 -13
  18. data/examples/grading/format_result.rb +5 -8
  19. data/examples/grading/generate_grades/prompt.md +1 -1
  20. data/examples/grading/generate_recommendations/prompt.md +1 -1
  21. data/examples/grading/read_dependencies/prompt.md +0 -1
  22. data/examples/grading/verify_test_helpers/prompt.md +1 -1
  23. data/examples/grading/workflow.md +1 -4
  24. data/examples/grading/workflow.yml +3 -16
  25. data/lib/roast/dsl/cog/config.rb +31 -0
  26. data/lib/roast/dsl/cog/stack.rb +21 -0
  27. data/lib/roast/dsl/cog/store.rb +26 -0
  28. data/lib/roast/dsl/cog.rb +70 -0
  29. data/lib/roast/dsl/cog_execution_context.rb +29 -0
  30. data/lib/roast/dsl/cogs/cmd.rb +55 -0
  31. data/lib/roast/dsl/cogs/graph.rb +53 -0
  32. data/lib/roast/dsl/cogs.rb +65 -0
  33. data/lib/roast/dsl/config_context.rb +54 -0
  34. data/lib/roast/dsl/executor.rb +62 -7
  35. data/lib/roast/dsl/workflow_execution_context.rb +47 -0
  36. data/lib/roast/error.rb +7 -0
  37. data/lib/roast/errors.rb +3 -3
  38. data/lib/roast/graph/edge.rb +25 -0
  39. data/lib/roast/graph/node.rb +40 -0
  40. data/lib/roast/graph/quantum_edge.rb +27 -0
  41. data/lib/roast/graph/threaded_exec.rb +93 -0
  42. data/lib/roast/graph.rb +233 -0
  43. data/lib/roast/resources/api_resource.rb +2 -2
  44. data/lib/roast/resources/url_resource.rb +2 -2
  45. data/lib/roast/tools/apply_diff.rb +1 -1
  46. data/lib/roast/tools/ask_user.rb +1 -1
  47. data/lib/roast/tools/bash.rb +1 -1
  48. data/lib/roast/tools/cmd.rb +2 -2
  49. data/lib/roast/tools/coding_agent.rb +2 -2
  50. data/lib/roast/tools/grep.rb +1 -1
  51. data/lib/roast/tools/read_file.rb +1 -1
  52. data/lib/roast/tools/search_file.rb +1 -1
  53. data/lib/roast/tools/swarm.rb +1 -1
  54. data/lib/roast/tools/update_files.rb +2 -2
  55. data/lib/roast/tools/write_file.rb +1 -1
  56. data/lib/roast/tools.rb +1 -1
  57. data/lib/roast/value_objects/api_token.rb +1 -1
  58. data/lib/roast/value_objects/uri_base.rb +1 -1
  59. data/lib/roast/value_objects/workflow_path.rb +1 -1
  60. data/lib/roast/version.rb +1 -1
  61. data/lib/roast/workflow/base_step.rb +2 -3
  62. data/lib/roast/workflow/base_workflow.rb +38 -2
  63. data/lib/roast/workflow/command_executor.rb +1 -1
  64. data/lib/roast/workflow/configuration_loader.rb +1 -1
  65. data/lib/roast/workflow/error_handler.rb +1 -1
  66. data/lib/roast/workflow/step_executor_registry.rb +1 -1
  67. data/lib/roast/workflow/step_loader.rb +3 -8
  68. data/lib/roast/workflow/workflow_executor.rb +1 -1
  69. data/lib/roast.rb +7 -2
  70. data/sorbet/config +2 -0
  71. data/sorbet/rbi/annotations/.gitattributes +1 -0
  72. data/sorbet/rbi/annotations/activesupport.rbi +495 -0
  73. data/sorbet/rbi/annotations/faraday.rbi +17 -0
  74. data/sorbet/rbi/annotations/minitest.rbi +119 -0
  75. data/sorbet/rbi/annotations/mocha.rbi +34 -0
  76. data/sorbet/rbi/annotations/rainbow.rbi +269 -0
  77. data/sorbet/rbi/annotations/webmock.rbi +9 -0
  78. data/sorbet/rbi/gems/rbs-inline@0.12.0.rbi +2170 -0
  79. data/sorbet/rbi/gems/{rexml@3.4.1.rbi → rexml@3.4.2.rbi} +284 -239
  80. data/sorbet/rbi/shims/lib/roast/dsl/config_context.rbi +11 -0
  81. data/sorbet/rbi/shims/lib/roast/dsl/workflow_execution_context.rbi +11 -0
  82. data/sorbet/rbi/todo.rbi +7 -0
  83. metadata +37 -231
  84. data/CHANGELOG.md +0 -369
  85. data/examples/agent_continue/add_documentation/prompt.md +0 -5
  86. data/examples/agent_continue/add_error_handling/prompt.md +0 -5
  87. data/examples/agent_continue/analyze_codebase/prompt.md +0 -7
  88. data/examples/agent_continue/combined_workflow.yml +0 -24
  89. data/examples/agent_continue/continue_adding_features/prompt.md +0 -4
  90. data/examples/agent_continue/create_integration_tests/prompt.md +0 -3
  91. data/examples/agent_continue/document_with_context/prompt.md +0 -5
  92. data/examples/agent_continue/explore_api/prompt.md +0 -6
  93. data/examples/agent_continue/implement_client/prompt.md +0 -6
  94. data/examples/agent_continue/inline_workflow.yml +0 -20
  95. data/examples/agent_continue/refactor_code/prompt.md +0 -2
  96. data/examples/agent_continue/verify_changes/prompt.md +0 -6
  97. data/examples/agent_continue/workflow.yml +0 -27
  98. data/examples/agent_workflow/README.md +0 -75
  99. data/examples/agent_workflow/apply_refactorings/prompt.md +0 -22
  100. data/examples/agent_workflow/identify_code_smells/prompt.md +0 -15
  101. data/examples/agent_workflow/summarize_improvements/prompt.md +0 -18
  102. data/examples/agent_workflow/workflow.png +0 -0
  103. data/examples/agent_workflow/workflow.yml +0 -16
  104. data/examples/api_workflow/README.md +0 -85
  105. data/examples/api_workflow/fetch_api_data/prompt.md +0 -10
  106. data/examples/api_workflow/generate_report/prompt.md +0 -10
  107. data/examples/api_workflow/prompt.md +0 -10
  108. data/examples/api_workflow/transform_data/prompt.md +0 -10
  109. data/examples/api_workflow/workflow.png +0 -0
  110. data/examples/api_workflow/workflow.yml +0 -30
  111. data/examples/apply_diff_demo/README.md +0 -58
  112. data/examples/apply_diff_demo/apply_simple_change/prompt.md +0 -13
  113. data/examples/apply_diff_demo/create_sample_file/prompt.md +0 -11
  114. data/examples/apply_diff_demo/workflow.yml +0 -24
  115. data/examples/available_tools_demo/workflow.png +0 -0
  116. data/examples/bash_prototyping/README.md +0 -53
  117. data/examples/bash_prototyping/analyze_network/prompt.md +0 -13
  118. data/examples/bash_prototyping/analyze_system/prompt.md +0 -11
  119. data/examples/bash_prototyping/api_testing.png +0 -0
  120. data/examples/bash_prototyping/api_testing.yml +0 -14
  121. data/examples/bash_prototyping/check_processes/prompt.md +0 -11
  122. data/examples/bash_prototyping/generate_report/prompt.md +0 -16
  123. data/examples/bash_prototyping/process_json_response/prompt.md +0 -24
  124. data/examples/bash_prototyping/system_analysis.png +0 -0
  125. data/examples/bash_prototyping/system_analysis.yml +0 -14
  126. data/examples/bash_prototyping/test_public_api/prompt.md +0 -22
  127. data/examples/case_when/README.md +0 -58
  128. data/examples/case_when/detect_language/prompt.md +0 -16
  129. data/examples/case_when/workflow.png +0 -0
  130. data/examples/case_when/workflow.yml +0 -58
  131. data/examples/cmd/README.md +0 -99
  132. data/examples/cmd/analyze_project/prompt.md +0 -57
  133. data/examples/cmd/basic_demo/prompt.md +0 -48
  134. data/examples/cmd/basic_workflow.png +0 -0
  135. data/examples/cmd/basic_workflow.yml +0 -16
  136. data/examples/cmd/check_repository/prompt.md +0 -57
  137. data/examples/cmd/create_and_verify/prompt.md +0 -56
  138. data/examples/cmd/dev_workflow.png +0 -0
  139. data/examples/cmd/dev_workflow.yml +0 -26
  140. data/examples/cmd/explore_project/prompt.md +0 -67
  141. data/examples/cmd/explorer_workflow.png +0 -0
  142. data/examples/cmd/explorer_workflow.yml +0 -21
  143. data/examples/cmd/smart_tool_selection/prompt.md +0 -99
  144. data/examples/coding_agent_with_model.yml +0 -20
  145. data/examples/coding_agent_with_retries.yml +0 -30
  146. data/examples/conditional/README.md +0 -161
  147. data/examples/conditional/check_condition/prompt.md +0 -1
  148. data/examples/conditional/simple_workflow.png +0 -0
  149. data/examples/conditional/simple_workflow.yml +0 -15
  150. data/examples/conditional/workflow.png +0 -0
  151. data/examples/conditional/workflow.yml +0 -23
  152. data/examples/context_management_demo/README.md +0 -43
  153. data/examples/context_management_demo/workflow.yml +0 -42
  154. data/examples/direct_coerce_syntax/README.md +0 -32
  155. data/examples/direct_coerce_syntax/workflow.png +0 -0
  156. data/examples/direct_coerce_syntax/workflow.yml +0 -36
  157. data/examples/dot_notation/README.md +0 -37
  158. data/examples/dot_notation/workflow.png +0 -0
  159. data/examples/dot_notation/workflow.yml +0 -44
  160. data/examples/exit_on_error/README.md +0 -50
  161. data/examples/exit_on_error/analyze_lint_output/prompt.md +0 -9
  162. data/examples/exit_on_error/apply_fixes/prompt.md +0 -2
  163. data/examples/exit_on_error/workflow.png +0 -0
  164. data/examples/exit_on_error/workflow.yml +0 -19
  165. data/examples/grading/js_test_runner +0 -31
  166. data/examples/grading/rb_test_runner +0 -19
  167. data/examples/grading/run_coverage.rb +0 -54
  168. data/examples/grading/workflow.png +0 -0
  169. data/examples/grading/workflow.rb.md +0 -6
  170. data/examples/grading/workflow.ts+tsx.md +0 -6
  171. data/examples/instrumentation.rb +0 -76
  172. data/examples/interpolation/README.md +0 -50
  173. data/examples/interpolation/analyze_file/prompt.md +0 -1
  174. data/examples/interpolation/analyze_patterns/prompt.md +0 -27
  175. data/examples/interpolation/generate_report_for_js/prompt.md +0 -3
  176. data/examples/interpolation/generate_report_for_rb/prompt.md +0 -3
  177. data/examples/interpolation/sample.js +0 -48
  178. data/examples/interpolation/sample.rb +0 -42
  179. data/examples/interpolation/workflow.md +0 -1
  180. data/examples/interpolation/workflow.png +0 -0
  181. data/examples/interpolation/workflow.yml +0 -21
  182. data/examples/iteration/IMPLEMENTATION.md +0 -88
  183. data/examples/iteration/README.md +0 -68
  184. data/examples/iteration/analyze_complexity/prompt.md +0 -22
  185. data/examples/iteration/generate_recommendations/prompt.md +0 -21
  186. data/examples/iteration/generate_report/prompt.md +0 -129
  187. data/examples/iteration/implement_fix/prompt.md +0 -25
  188. data/examples/iteration/prioritize_issues/prompt.md +0 -24
  189. data/examples/iteration/prompts/analyze_file.md +0 -28
  190. data/examples/iteration/prompts/generate_summary.md +0 -24
  191. data/examples/iteration/prompts/update_report.md +0 -29
  192. data/examples/iteration/prompts/write_report.md +0 -22
  193. data/examples/iteration/read_file/prompt.md +0 -9
  194. data/examples/iteration/select_next_issue/prompt.md +0 -25
  195. data/examples/iteration/simple_workflow.md +0 -39
  196. data/examples/iteration/simple_workflow.yml +0 -58
  197. data/examples/iteration/update_fix_count/prompt.md +0 -26
  198. data/examples/iteration/verify_fix/prompt.md +0 -29
  199. data/examples/iteration/workflow.png +0 -0
  200. data/examples/iteration/workflow.yml +0 -42
  201. data/examples/json_handling/README.md +0 -32
  202. data/examples/json_handling/workflow.png +0 -0
  203. data/examples/json_handling/workflow.yml +0 -52
  204. data/examples/mcp/README.md +0 -223
  205. data/examples/mcp/analyze_changes/prompt.md +0 -8
  206. data/examples/mcp/analyze_issues/prompt.md +0 -4
  207. data/examples/mcp/analyze_schema/prompt.md +0 -4
  208. data/examples/mcp/check_data_quality/prompt.md +0 -5
  209. data/examples/mcp/check_documentation/prompt.md +0 -4
  210. data/examples/mcp/create_recommendations/prompt.md +0 -5
  211. data/examples/mcp/database_workflow.png +0 -0
  212. data/examples/mcp/database_workflow.yml +0 -29
  213. data/examples/mcp/env_demo/workflow.png +0 -0
  214. data/examples/mcp/env_demo/workflow.yml +0 -34
  215. data/examples/mcp/fetch_pr_context/prompt.md +0 -4
  216. data/examples/mcp/filesystem_demo/create_test_file/prompt.md +0 -2
  217. data/examples/mcp/filesystem_demo/list_files/prompt.md +0 -6
  218. data/examples/mcp/filesystem_demo/read_with_mcp/prompt.md +0 -7
  219. data/examples/mcp/filesystem_demo/workflow.png +0 -0
  220. data/examples/mcp/filesystem_demo/workflow.yml +0 -38
  221. data/examples/mcp/generate_insights/prompt.md +0 -4
  222. data/examples/mcp/generate_report/prompt.md +0 -6
  223. data/examples/mcp/generate_review/prompt.md +0 -16
  224. data/examples/mcp/github_workflow.png +0 -0
  225. data/examples/mcp/github_workflow.yml +0 -32
  226. data/examples/mcp/multi_mcp_workflow.png +0 -0
  227. data/examples/mcp/multi_mcp_workflow.yml +0 -58
  228. data/examples/mcp/post_review/prompt.md +0 -3
  229. data/examples/mcp/save_report/prompt.md +0 -6
  230. data/examples/mcp/search_issues/prompt.md +0 -2
  231. data/examples/mcp/summarize/prompt.md +0 -1
  232. data/examples/mcp/test_filesystem/prompt.md +0 -6
  233. data/examples/mcp/test_github/prompt.md +0 -8
  234. data/examples/mcp/test_read/prompt.md +0 -1
  235. data/examples/mcp/workflow.png +0 -0
  236. data/examples/mcp/workflow.yml +0 -35
  237. data/examples/no_model_fallback/README.md +0 -17
  238. data/examples/no_model_fallback/analyze_file/prompt.md +0 -1
  239. data/examples/no_model_fallback/analyze_patterns/prompt.md +0 -27
  240. data/examples/no_model_fallback/generate_report_for_md/prompt.md +0 -10
  241. data/examples/no_model_fallback/generate_report_for_rb/prompt.md +0 -3
  242. data/examples/no_model_fallback/sample.rb +0 -42
  243. data/examples/no_model_fallback/workflow.yml +0 -19
  244. data/examples/openrouter_example/README.md +0 -48
  245. data/examples/openrouter_example/analyze_input/prompt.md +0 -16
  246. data/examples/openrouter_example/generate_response/prompt.md +0 -9
  247. data/examples/openrouter_example/workflow.png +0 -0
  248. data/examples/openrouter_example/workflow.yml +0 -12
  249. data/examples/pre_post_processing/README.md +0 -111
  250. data/examples/pre_post_processing/analyze_test_file/prompt.md +0 -23
  251. data/examples/pre_post_processing/improve_test_coverage/prompt.md +0 -17
  252. data/examples/pre_post_processing/optimize_test_performance/prompt.md +0 -25
  253. data/examples/pre_post_processing/post_processing/aggregate_metrics/prompt.md +0 -31
  254. data/examples/pre_post_processing/post_processing/cleanup_environment/prompt.md +0 -28
  255. data/examples/pre_post_processing/post_processing/generate_summary_report/prompt.md +0 -32
  256. data/examples/pre_post_processing/post_processing/output.txt +0 -24
  257. data/examples/pre_post_processing/pre_processing/gather_baseline_metrics/prompt.md +0 -26
  258. data/examples/pre_post_processing/pre_processing/setup_test_environment/prompt.md +0 -11
  259. data/examples/pre_post_processing/validate_changes/prompt.md +0 -24
  260. data/examples/pre_post_processing/workflow.png +0 -0
  261. data/examples/pre_post_processing/workflow.yml +0 -21
  262. data/examples/retry/workflow.yml +0 -23
  263. data/examples/rspec_to_minitest/README.md +0 -68
  264. data/examples/rspec_to_minitest/analyze_spec/prompt.md +0 -30
  265. data/examples/rspec_to_minitest/create_minitest/prompt.md +0 -33
  266. data/examples/rspec_to_minitest/run_and_improve/prompt.md +0 -35
  267. data/examples/rspec_to_minitest/workflow.md +0 -10
  268. data/examples/rspec_to_minitest/workflow.png +0 -0
  269. data/examples/rspec_to_minitest/workflow.yml +0 -40
  270. data/examples/shared_config/README.md +0 -52
  271. data/examples/shared_config/example_with_shared_config/workflow.png +0 -0
  272. data/examples/shared_config/example_with_shared_config/workflow.yml +0 -6
  273. data/examples/shared_config/shared.png +0 -0
  274. data/examples/shared_config/shared.yml +0 -7
  275. data/examples/single_target_prepost/README.md +0 -36
  276. data/examples/single_target_prepost/post_processing/output.txt +0 -27
  277. data/examples/single_target_prepost/pre_processing/gather_dependencies/prompt.md +0 -11
  278. data/examples/single_target_prepost/workflow.png +0 -0
  279. data/examples/single_target_prepost/workflow.yml +0 -20
  280. data/examples/smart_coercion_defaults/README.md +0 -65
  281. data/examples/smart_coercion_defaults/workflow.png +0 -0
  282. data/examples/smart_coercion_defaults/workflow.yml +0 -44
  283. data/examples/step_configuration/README.md +0 -84
  284. data/examples/step_configuration/workflow.png +0 -0
  285. data/examples/step_configuration/workflow.yml +0 -57
  286. data/examples/swarm_example.yml +0 -25
  287. data/examples/tool_config_example/README.md +0 -109
  288. data/examples/tool_config_example/example_step/prompt.md +0 -42
  289. data/examples/tool_config_example/workflow.png +0 -0
  290. data/examples/tool_config_example/workflow.yml +0 -17
  291. data/examples/user_input/README.md +0 -90
  292. data/examples/user_input/funny_name/create_backstory/prompt.md +0 -10
  293. data/examples/user_input/funny_name/workflow.png +0 -0
  294. data/examples/user_input/funny_name/workflow.yml +0 -25
  295. data/examples/user_input/generate_summary/prompt.md +0 -11
  296. data/examples/user_input/simple_input_demo/workflow.png +0 -0
  297. data/examples/user_input/simple_input_demo/workflow.yml +0 -35
  298. data/examples/user_input/survey_workflow.png +0 -0
  299. data/examples/user_input/survey_workflow.yml +0 -71
  300. data/examples/user_input/welcome_message/prompt.md +0 -3
  301. data/examples/user_input/workflow.png +0 -0
  302. data/examples/user_input/workflow.yml +0 -73
  303. data/examples/workflow_generator/README.md +0 -27
  304. data/examples/workflow_generator/analyze_user_request/prompt.md +0 -34
  305. data/examples/workflow_generator/create_workflow_files/prompt.md +0 -32
  306. data/examples/workflow_generator/get_user_input/prompt.md +0 -14
  307. data/examples/workflow_generator/info_from_roast.rb +0 -22
  308. data/examples/workflow_generator/workflow.png +0 -0
  309. data/examples/workflow_generator/workflow.yml +0 -34
  310. data/package-lock.json +0 -6
  311. /data/sorbet/rbi/gems/{rack@2.2.17.rbi → rack@2.2.18.rbi} +0 -0
@@ -0,0 +1,11 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ module Roast
5
+ module DSL
6
+ class ConfigContext
7
+ #: (?Symbol?) {() [self: Roast::DSL::Cogs::Cmd::Config] -> void} -> void
8
+ def cmd(name = nil, &block); end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ module Roast
5
+ module DSL
6
+ class WorkflowExecutionContext
7
+ #: (?Symbol?) {() [self: Roast::DSL::Cogs::Cmd] -> String} -> void
8
+ def cmd(name = nil, &block); end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,7 @@
1
+ # DO NOT EDIT MANUALLY
2
+ # This is an autogenerated file for unresolved constants.
3
+ # Please instead update this file by running `bin/tapioca todo`.
4
+
5
+ # typed: false
6
+
7
+ module Mocha::Mock; end
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.7
4
+ version: 0.4.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shopify
@@ -180,7 +180,6 @@ files:
180
180
  - ".rubocop.yml"
181
181
  - ".rubocop_todo.yml"
182
182
  - ".ruby-version"
183
- - CHANGELOG.md
184
183
  - CLAUDE.md
185
184
  - CLAUDE_NOTES.md
186
185
  - CODE_OF_CONDUCT.md
@@ -202,92 +201,18 @@ files:
202
201
  - docs/INSTRUMENTATION.md
203
202
  - docs/ITERATION_SYNTAX.md
204
203
  - docs/VALIDATION.md
204
+ - dsl/less_simple.rb
205
+ - dsl/prototype.rb
205
206
  - dsl/simple.rb
206
- - examples/agent_continue/add_documentation/prompt.md
207
- - examples/agent_continue/add_error_handling/prompt.md
208
- - examples/agent_continue/analyze_codebase/prompt.md
209
- - examples/agent_continue/combined_workflow.yml
210
- - examples/agent_continue/continue_adding_features/prompt.md
211
- - examples/agent_continue/create_integration_tests/prompt.md
212
- - examples/agent_continue/document_with_context/prompt.md
213
- - examples/agent_continue/explore_api/prompt.md
214
- - examples/agent_continue/implement_client/prompt.md
215
- - examples/agent_continue/inline_workflow.yml
216
- - examples/agent_continue/refactor_code/prompt.md
217
- - examples/agent_continue/verify_changes/prompt.md
218
- - examples/agent_continue/workflow.yml
219
- - examples/agent_workflow/README.md
220
- - examples/agent_workflow/apply_refactorings/prompt.md
221
- - examples/agent_workflow/identify_code_smells/prompt.md
222
- - examples/agent_workflow/summarize_improvements/prompt.md
223
- - examples/agent_workflow/workflow.png
224
- - examples/agent_workflow/workflow.yml
225
- - examples/api_workflow/README.md
226
- - examples/api_workflow/fetch_api_data/prompt.md
227
- - examples/api_workflow/generate_report/prompt.md
228
- - examples/api_workflow/prompt.md
229
- - examples/api_workflow/transform_data/prompt.md
230
- - examples/api_workflow/workflow.png
231
- - examples/api_workflow/workflow.yml
232
- - examples/apply_diff_demo/README.md
233
- - examples/apply_diff_demo/apply_simple_change/prompt.md
234
- - examples/apply_diff_demo/create_sample_file/prompt.md
235
- - examples/apply_diff_demo/workflow.yml
207
+ - dsl/step_communication.rb
208
+ - examples/README.md
236
209
  - examples/available_tools_demo/README.md
237
210
  - examples/available_tools_demo/analyze_files/prompt.md
238
211
  - examples/available_tools_demo/explore_directory/prompt.md
239
- - examples/available_tools_demo/workflow.png
240
212
  - examples/available_tools_demo/workflow.yml
241
213
  - examples/available_tools_demo/write_summary/prompt.md
242
- - examples/bash_prototyping/README.md
243
- - examples/bash_prototyping/analyze_network/prompt.md
244
- - examples/bash_prototyping/analyze_system/prompt.md
245
- - examples/bash_prototyping/api_testing.png
246
- - examples/bash_prototyping/api_testing.yml
247
- - examples/bash_prototyping/check_processes/prompt.md
248
- - examples/bash_prototyping/generate_report/prompt.md
249
- - examples/bash_prototyping/process_json_response/prompt.md
250
- - examples/bash_prototyping/system_analysis.png
251
- - examples/bash_prototyping/system_analysis.yml
252
- - examples/bash_prototyping/test_public_api/prompt.md
253
- - examples/case_when/README.md
254
- - examples/case_when/detect_language/prompt.md
255
- - examples/case_when/workflow.png
256
- - examples/case_when/workflow.yml
257
- - examples/cmd/README.md
258
- - examples/cmd/analyze_project/prompt.md
259
- - examples/cmd/basic_demo/prompt.md
260
- - examples/cmd/basic_workflow.png
261
- - examples/cmd/basic_workflow.yml
262
- - examples/cmd/check_repository/prompt.md
263
- - examples/cmd/create_and_verify/prompt.md
264
- - examples/cmd/dev_workflow.png
265
- - examples/cmd/dev_workflow.yml
266
- - examples/cmd/explore_project/prompt.md
267
- - examples/cmd/explorer_workflow.png
268
- - examples/cmd/explorer_workflow.yml
269
- - examples/cmd/smart_tool_selection/prompt.md
270
- - examples/coding_agent_with_model.yml
271
- - examples/coding_agent_with_retries.yml
272
- - examples/conditional/README.md
273
- - examples/conditional/check_condition/prompt.md
274
- - examples/conditional/simple_workflow.png
275
- - examples/conditional/simple_workflow.yml
276
- - examples/conditional/workflow.png
277
- - examples/conditional/workflow.yml
278
- - examples/context_management_demo/README.md
279
- - examples/context_management_demo/workflow.yml
280
- - examples/direct_coerce_syntax/README.md
281
- - examples/direct_coerce_syntax/workflow.png
282
- - examples/direct_coerce_syntax/workflow.yml
283
- - examples/dot_notation/README.md
284
- - examples/dot_notation/workflow.png
285
- - examples/dot_notation/workflow.yml
286
- - examples/exit_on_error/README.md
287
- - examples/exit_on_error/analyze_lint_output/prompt.md
288
- - examples/exit_on_error/apply_fixes/prompt.md
289
- - examples/exit_on_error/workflow.png
290
- - examples/exit_on_error/workflow.yml
214
+ - examples/basic_prompt_workflow/workflow.md
215
+ - examples/basic_prompt_workflow/workflow.yml
291
216
  - examples/grading/README.md
292
217
  - examples/grading/analyze_coverage/prompt.md
293
218
  - examples/grading/calculate_final_grade.rb
@@ -295,164 +220,35 @@ files:
295
220
  - examples/grading/generate_grades/prompt.md
296
221
  - examples/grading/generate_recommendations/output.txt
297
222
  - examples/grading/generate_recommendations/prompt.md
298
- - examples/grading/js_test_runner
299
- - examples/grading/rb_test_runner
300
223
  - examples/grading/read_dependencies/prompt.md
301
- - examples/grading/run_coverage.rb
302
224
  - examples/grading/verify_mocks_and_stubs/prompt.md
303
225
  - examples/grading/verify_test_helpers/prompt.md
304
226
  - examples/grading/workflow.md
305
- - examples/grading/workflow.png
306
- - examples/grading/workflow.rb.md
307
- - examples/grading/workflow.ts+tsx.md
308
227
  - examples/grading/workflow.yml
309
- - examples/instrumentation.rb
310
- - examples/interpolation/README.md
311
- - examples/interpolation/analyze_file/prompt.md
312
- - examples/interpolation/analyze_patterns/prompt.md
313
- - examples/interpolation/generate_report_for_js/prompt.md
314
- - examples/interpolation/generate_report_for_rb/prompt.md
315
- - examples/interpolation/sample.js
316
- - examples/interpolation/sample.rb
317
- - examples/interpolation/workflow.md
318
- - examples/interpolation/workflow.png
319
- - examples/interpolation/workflow.yml
320
- - examples/iteration/IMPLEMENTATION.md
321
- - examples/iteration/README.md
322
- - examples/iteration/analyze_complexity/prompt.md
323
- - examples/iteration/generate_recommendations/prompt.md
324
- - examples/iteration/generate_report/prompt.md
325
- - examples/iteration/implement_fix/prompt.md
326
- - examples/iteration/prioritize_issues/prompt.md
327
- - examples/iteration/prompts/analyze_file.md
328
- - examples/iteration/prompts/generate_summary.md
329
- - examples/iteration/prompts/update_report.md
330
- - examples/iteration/prompts/write_report.md
331
- - examples/iteration/read_file/prompt.md
332
- - examples/iteration/select_next_issue/prompt.md
333
- - examples/iteration/simple_workflow.md
334
- - examples/iteration/simple_workflow.yml
335
- - examples/iteration/update_fix_count/prompt.md
336
- - examples/iteration/verify_fix/prompt.md
337
- - examples/iteration/workflow.png
338
- - examples/iteration/workflow.yml
339
- - examples/json_handling/README.md
340
- - examples/json_handling/workflow.png
341
- - examples/json_handling/workflow.yml
342
- - examples/mcp/README.md
343
- - examples/mcp/analyze_changes/prompt.md
344
- - examples/mcp/analyze_issues/prompt.md
345
- - examples/mcp/analyze_schema/prompt.md
346
- - examples/mcp/check_data_quality/prompt.md
347
- - examples/mcp/check_documentation/prompt.md
348
- - examples/mcp/create_recommendations/prompt.md
349
- - examples/mcp/database_workflow.png
350
- - examples/mcp/database_workflow.yml
351
- - examples/mcp/env_demo/workflow.png
352
- - examples/mcp/env_demo/workflow.yml
353
- - examples/mcp/fetch_pr_context/prompt.md
354
- - examples/mcp/filesystem_demo/create_test_file/prompt.md
355
- - examples/mcp/filesystem_demo/list_files/prompt.md
356
- - examples/mcp/filesystem_demo/read_with_mcp/prompt.md
357
- - examples/mcp/filesystem_demo/workflow.png
358
- - examples/mcp/filesystem_demo/workflow.yml
359
- - examples/mcp/generate_insights/prompt.md
360
- - examples/mcp/generate_report/prompt.md
361
- - examples/mcp/generate_review/prompt.md
362
- - examples/mcp/github_workflow.png
363
- - examples/mcp/github_workflow.yml
364
- - examples/mcp/multi_mcp_workflow.png
365
- - examples/mcp/multi_mcp_workflow.yml
366
- - examples/mcp/post_review/prompt.md
367
- - examples/mcp/save_report/prompt.md
368
- - examples/mcp/search_issues/prompt.md
369
- - examples/mcp/summarize/prompt.md
370
- - examples/mcp/test_filesystem/prompt.md
371
- - examples/mcp/test_github/prompt.md
372
- - examples/mcp/test_read/prompt.md
373
- - examples/mcp/workflow.png
374
- - examples/mcp/workflow.yml
375
- - examples/no_model_fallback/README.md
376
- - examples/no_model_fallback/analyze_file/prompt.md
377
- - examples/no_model_fallback/analyze_patterns/prompt.md
378
- - examples/no_model_fallback/generate_report_for_md/prompt.md
379
- - examples/no_model_fallback/generate_report_for_rb/prompt.md
380
- - examples/no_model_fallback/sample.rb
381
- - examples/no_model_fallback/workflow.yml
382
- - examples/openrouter_example/README.md
383
- - examples/openrouter_example/analyze_input/prompt.md
384
- - examples/openrouter_example/generate_response/prompt.md
385
- - examples/openrouter_example/workflow.png
386
- - examples/openrouter_example/workflow.yml
387
- - examples/pre_post_processing/README.md
388
- - examples/pre_post_processing/analyze_test_file/prompt.md
389
- - examples/pre_post_processing/improve_test_coverage/prompt.md
390
- - examples/pre_post_processing/optimize_test_performance/prompt.md
391
- - examples/pre_post_processing/post_processing/aggregate_metrics/prompt.md
392
- - examples/pre_post_processing/post_processing/cleanup_environment/prompt.md
393
- - examples/pre_post_processing/post_processing/generate_summary_report/prompt.md
394
- - examples/pre_post_processing/post_processing/output.txt
395
- - examples/pre_post_processing/pre_processing/gather_baseline_metrics/prompt.md
396
- - examples/pre_post_processing/pre_processing/setup_test_environment/prompt.md
397
- - examples/pre_post_processing/validate_changes/prompt.md
398
- - examples/pre_post_processing/workflow.png
399
- - examples/pre_post_processing/workflow.yml
400
- - examples/retry/workflow.yml
401
- - examples/rspec_to_minitest/README.md
402
- - examples/rspec_to_minitest/analyze_spec/prompt.md
403
- - examples/rspec_to_minitest/create_minitest/prompt.md
404
- - examples/rspec_to_minitest/run_and_improve/prompt.md
405
- - examples/rspec_to_minitest/workflow.md
406
- - examples/rspec_to_minitest/workflow.png
407
- - examples/rspec_to_minitest/workflow.yml
408
- - examples/shared_config/README.md
409
- - examples/shared_config/example_with_shared_config/workflow.png
410
- - examples/shared_config/example_with_shared_config/workflow.yml
411
- - examples/shared_config/shared.png
412
- - examples/shared_config/shared.yml
413
- - examples/single_target_prepost/README.md
414
- - examples/single_target_prepost/post_processing/output.txt
415
- - examples/single_target_prepost/pre_processing/gather_dependencies/prompt.md
416
- - examples/single_target_prepost/workflow.png
417
- - examples/single_target_prepost/workflow.yml
418
- - examples/smart_coercion_defaults/README.md
419
- - examples/smart_coercion_defaults/workflow.png
420
- - examples/smart_coercion_defaults/workflow.yml
421
- - examples/step_configuration/README.md
422
- - examples/step_configuration/workflow.png
423
- - examples/step_configuration/workflow.yml
424
- - examples/swarm_example.yml
425
- - examples/tool_config_example/README.md
426
- - examples/tool_config_example/example_step/prompt.md
427
- - examples/tool_config_example/workflow.png
428
- - examples/tool_config_example/workflow.yml
429
- - examples/user_input/README.md
430
- - examples/user_input/funny_name/create_backstory/prompt.md
431
- - examples/user_input/funny_name/workflow.png
432
- - examples/user_input/funny_name/workflow.yml
433
- - examples/user_input/generate_summary/prompt.md
434
- - examples/user_input/simple_input_demo/workflow.png
435
- - examples/user_input/simple_input_demo/workflow.yml
436
- - examples/user_input/survey_workflow.png
437
- - examples/user_input/survey_workflow.yml
438
- - examples/user_input/welcome_message/prompt.md
439
- - examples/user_input/workflow.png
440
- - examples/user_input/workflow.yml
441
- - examples/workflow_generator/README.md
442
- - examples/workflow_generator/analyze_user_request/prompt.md
443
- - examples/workflow_generator/create_workflow_files/prompt.md
444
- - examples/workflow_generator/get_user_input/prompt.md
445
- - examples/workflow_generator/info_from_roast.rb
446
- - examples/workflow_generator/workflow.png
447
- - examples/workflow_generator/workflow.yml
448
228
  - exe/roast
449
229
  - gemfiles/activesupport7.gemfile
450
230
  - gemfiles/activesupport8.gemfile
451
231
  - lib/roast.rb
452
232
  - lib/roast/dsl.rb
233
+ - lib/roast/dsl/cog.rb
234
+ - lib/roast/dsl/cog/config.rb
235
+ - lib/roast/dsl/cog/stack.rb
236
+ - lib/roast/dsl/cog/store.rb
237
+ - lib/roast/dsl/cog_execution_context.rb
238
+ - lib/roast/dsl/cogs.rb
239
+ - lib/roast/dsl/cogs/cmd.rb
240
+ - lib/roast/dsl/cogs/graph.rb
241
+ - lib/roast/dsl/config_context.rb
453
242
  - lib/roast/dsl/executor.rb
243
+ - lib/roast/dsl/workflow_execution_context.rb
244
+ - lib/roast/error.rb
454
245
  - lib/roast/errors.rb
455
246
  - lib/roast/factories/api_provider_factory.rb
247
+ - lib/roast/graph.rb
248
+ - lib/roast/graph/edge.rb
249
+ - lib/roast/graph/node.rb
250
+ - lib/roast/graph/quantum_edge.rb
251
+ - lib/roast/graph/threaded_exec.rb
456
252
  - lib/roast/helpers/cmd_runner.rb
457
253
  - lib/roast/helpers/function_caching_interceptor.rb
458
254
  - lib/roast/helpers/logger.rb
@@ -559,13 +355,19 @@ files:
559
355
  - lib/roast/workflow/workflow_initializer.rb
560
356
  - lib/roast/workflow/workflow_runner.rb
561
357
  - lib/roast/workflow_diagram_generator.rb
562
- - package-lock.json
563
358
  - roast.gemspec
564
359
  - rubocop/cop/roast.rb
565
360
  - rubocop/cop/roast/use_cmd_runner.rb
566
361
  - schema/workflow.json
567
362
  - shipit.rubygems.yml
568
363
  - sorbet/config
364
+ - sorbet/rbi/annotations/.gitattributes
365
+ - sorbet/rbi/annotations/activesupport.rbi
366
+ - sorbet/rbi/annotations/faraday.rbi
367
+ - sorbet/rbi/annotations/minitest.rbi
368
+ - sorbet/rbi/annotations/mocha.rbi
369
+ - sorbet/rbi/annotations/rainbow.rbi
370
+ - sorbet/rbi/annotations/webmock.rbi
569
371
  - sorbet/rbi/dsl/.gitattributes
570
372
  - sorbet/rbi/dsl/active_support/callbacks.rbi
571
373
  - sorbet/rbi/gems/.gitattributes
@@ -634,16 +436,17 @@ files:
634
436
  - sorbet/rbi/gems/pry@0.15.2.rbi
635
437
  - sorbet/rbi/gems/public_suffix@6.0.2.rbi
636
438
  - sorbet/rbi/gems/racc@1.8.1.rbi
637
- - sorbet/rbi/gems/rack@2.2.17.rbi
439
+ - sorbet/rbi/gems/rack@2.2.18.rbi
638
440
  - sorbet/rbi/gems/rainbow@3.1.1.rbi
639
441
  - sorbet/rbi/gems/raix@1.0.2.rbi
640
442
  - sorbet/rbi/gems/rake@13.3.0.rbi
641
443
  - sorbet/rbi/gems/rb-fsevent@0.11.2.rbi
642
444
  - sorbet/rbi/gems/rb-inotify@0.11.1.rbi
643
445
  - sorbet/rbi/gems/rbi@0.3.6.rbi
446
+ - sorbet/rbi/gems/rbs-inline@0.12.0.rbi
644
447
  - sorbet/rbi/gems/rbs@3.9.4.rbi
645
448
  - sorbet/rbi/gems/regexp_parser@2.10.0.rbi
646
- - sorbet/rbi/gems/rexml@3.4.1.rbi
449
+ - sorbet/rbi/gems/rexml@3.4.2.rbi
647
450
  - sorbet/rbi/gems/rubocop-ast@1.45.1.rbi
648
451
  - sorbet/rbi/gems/rubocop-shopify@2.17.1.rbi
649
452
  - sorbet/rbi/gems/rubocop-sorbet@0.10.5.rbi
@@ -670,6 +473,9 @@ files:
670
473
  - sorbet/rbi/gems/yard-sorbet@0.9.0.rbi
671
474
  - sorbet/rbi/gems/yard@0.9.37.rbi
672
475
  - sorbet/rbi/gems/zeitwerk@2.7.3.rbi
476
+ - sorbet/rbi/shims/lib/roast/dsl/config_context.rbi
477
+ - sorbet/rbi/shims/lib/roast/dsl/workflow_execution_context.rbi
478
+ - sorbet/rbi/todo.rbi
673
479
  - sorbet/tapioca/config.yml
674
480
  - sorbet/tapioca/require.rb
675
481
  homepage: https://github.com/Shopify/roast
@@ -694,7 +500,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
694
500
  - !ruby/object:Gem::Version
695
501
  version: '0'
696
502
  requirements: []
697
- rubygems_version: 3.7.1
503
+ rubygems_version: 3.7.2
698
504
  specification_version: 4
699
505
  summary: A framework for executing structured AI workflows in Ruby
700
506
  test_files: []