roast-ai 0.4.3 → 0.4.5

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 (232) hide show
  1. checksums.yaml +4 -4
  2. data/.github/CODEOWNERS +2 -0
  3. data/.github/workflows/ci.yaml +1 -0
  4. data/.gitignore +0 -26
  5. data/.rubocop.yml +13 -0
  6. data/.rubocop_todo.yml +21 -0
  7. data/CHANGELOG.md +29 -0
  8. data/Gemfile +4 -0
  9. data/Gemfile.lock +47 -29
  10. data/bin/rubocop +27 -0
  11. data/bin/spoom +27 -0
  12. data/bin/srb +27 -0
  13. data/bin/srb-rbi +27 -0
  14. data/bin/tapioca +27 -0
  15. data/docs/INSTRUMENTATION.md +3 -3
  16. data/dsl/simple.rb +10 -0
  17. data/lib/roast/dsl/executor.rb +26 -0
  18. data/lib/roast/dsl.rb +7 -0
  19. data/lib/roast/errors.rb +1 -0
  20. data/lib/roast/factories/api_provider_factory.rb +1 -0
  21. data/lib/roast/helpers/function_caching_interceptor.rb +3 -0
  22. data/lib/roast/helpers/logger.rb +6 -9
  23. data/lib/roast/helpers/metadata_access.rb +1 -0
  24. data/lib/roast/helpers/minitest_coverage_runner.rb +1 -0
  25. data/lib/roast/helpers/path_resolver.rb +8 -18
  26. data/lib/roast/helpers/prompt_loader.rb +3 -2
  27. data/lib/roast/helpers/timeout_handler.rb +3 -5
  28. data/lib/roast/initializers.rb +1 -0
  29. data/lib/roast/resources/api_resource.rb +4 -3
  30. data/lib/roast/resources/base_resource.rb +1 -0
  31. data/lib/roast/resources/directory_resource.rb +1 -0
  32. data/lib/roast/resources/file_resource.rb +1 -0
  33. data/lib/roast/resources/none_resource.rb +1 -0
  34. data/lib/roast/resources/url_resource.rb +2 -1
  35. data/lib/roast/resources.rb +1 -2
  36. data/lib/roast/services/context_threshold_checker.rb +1 -0
  37. data/lib/roast/services/token_counting_service.rb +1 -0
  38. data/lib/roast/tools/apply_diff.rb +1 -0
  39. data/lib/roast/tools/ask_user.rb +1 -0
  40. data/lib/roast/tools/bash.rb +1 -0
  41. data/lib/roast/tools/cmd.rb +1 -0
  42. data/lib/roast/tools/coding_agent.rb +1 -0
  43. data/lib/roast/tools/context_summarizer.rb +1 -0
  44. data/lib/roast/tools/grep.rb +1 -0
  45. data/lib/roast/tools/helpers/coding_agent_message_formatter.rb +1 -0
  46. data/lib/roast/tools/read_file.rb +1 -0
  47. data/lib/roast/tools/search_file.rb +1 -0
  48. data/lib/roast/tools/swarm.rb +1 -0
  49. data/lib/roast/tools/update_files.rb +1 -0
  50. data/lib/roast/tools/write_file.rb +1 -0
  51. data/lib/roast/tools.rb +2 -0
  52. data/lib/roast/value_objects/api_token.rb +1 -0
  53. data/lib/roast/value_objects/step_name.rb +1 -0
  54. data/lib/roast/value_objects/uri_base.rb +1 -0
  55. data/lib/roast/value_objects/workflow_path.rb +1 -0
  56. data/lib/roast/value_objects.rb +1 -0
  57. data/lib/roast/version.rb +2 -1
  58. data/lib/roast/workflow/agent_step.rb +1 -0
  59. data/lib/roast/workflow/api_configuration.rb +1 -0
  60. data/lib/roast/workflow/base_iteration_step.rb +1 -0
  61. data/lib/roast/workflow/base_step.rb +1 -0
  62. data/lib/roast/workflow/base_workflow.rb +1 -0
  63. data/lib/roast/workflow/case_executor.rb +1 -0
  64. data/lib/roast/workflow/case_step.rb +1 -0
  65. data/lib/roast/workflow/command_executor.rb +1 -0
  66. data/lib/roast/workflow/conditional_executor.rb +1 -0
  67. data/lib/roast/workflow/conditional_step.rb +1 -0
  68. data/lib/roast/workflow/configuration.rb +9 -0
  69. data/lib/roast/workflow/configuration_loader.rb +4 -1
  70. data/lib/roast/workflow/context_manager.rb +1 -0
  71. data/lib/roast/workflow/context_path_resolver.rb +1 -0
  72. data/lib/roast/workflow/dot_access_hash.rb +1 -0
  73. data/lib/roast/workflow/each_step.rb +1 -0
  74. data/lib/roast/workflow/error_handler.rb +7 -1
  75. data/lib/roast/workflow/expression_evaluator.rb +1 -0
  76. data/lib/roast/workflow/expression_utils.rb +1 -0
  77. data/lib/roast/workflow/file_state_repository.rb +2 -1
  78. data/lib/roast/workflow/input_executor.rb +1 -0
  79. data/lib/roast/workflow/input_step.rb +1 -0
  80. data/lib/roast/workflow/interpolator.rb +2 -1
  81. data/lib/roast/workflow/iteration_executor.rb +1 -0
  82. data/lib/roast/workflow/llm_boolean_coercer.rb +1 -0
  83. data/lib/roast/workflow/metadata_manager.rb +1 -0
  84. data/lib/roast/workflow/output_handler.rb +1 -0
  85. data/lib/roast/workflow/output_manager.rb +1 -0
  86. data/lib/roast/workflow/parallel_executor.rb +1 -0
  87. data/lib/roast/workflow/prompt_step.rb +1 -0
  88. data/lib/roast/workflow/repeat_step.rb +1 -0
  89. data/lib/roast/workflow/replay_handler.rb +1 -0
  90. data/lib/roast/workflow/resource_resolver.rb +2 -6
  91. data/lib/roast/workflow/session_manager.rb +1 -0
  92. data/lib/roast/workflow/shell_script_step.rb +1 -0
  93. data/lib/roast/workflow/sqlite_state_repository.rb +1 -0
  94. data/lib/roast/workflow/state_manager.rb +1 -0
  95. data/lib/roast/workflow/state_repository.rb +1 -0
  96. data/lib/roast/workflow/state_repository_factory.rb +4 -2
  97. data/lib/roast/workflow/step_completion_reporter.rb +1 -0
  98. data/lib/roast/workflow/step_executor_coordinator.rb +9 -5
  99. data/lib/roast/workflow/step_executor_factory.rb +1 -0
  100. data/lib/roast/workflow/step_executor_registry.rb +2 -3
  101. data/lib/roast/workflow/step_executor_with_reporting.rb +1 -0
  102. data/lib/roast/workflow/step_executors/base_step_executor.rb +1 -0
  103. data/lib/roast/workflow/step_executors/hash_step_executor.rb +1 -0
  104. data/lib/roast/workflow/step_executors/parallel_step_executor.rb +1 -0
  105. data/lib/roast/workflow/step_executors/string_step_executor.rb +1 -0
  106. data/lib/roast/workflow/step_factory.rb +1 -0
  107. data/lib/roast/workflow/step_finder.rb +1 -0
  108. data/lib/roast/workflow/step_loader.rb +1 -0
  109. data/lib/roast/workflow/step_name_extractor.rb +1 -0
  110. data/lib/roast/workflow/step_runner.rb +1 -0
  111. data/lib/roast/workflow/step_type_resolver.rb +1 -0
  112. data/lib/roast/workflow/validation_command.rb +1 -0
  113. data/lib/roast/workflow/validator.rb +1 -0
  114. data/lib/roast/workflow/validators/base_validator.rb +1 -0
  115. data/lib/roast/workflow/validators/dependency_validator.rb +1 -0
  116. data/lib/roast/workflow/validators/linting_validator.rb +1 -0
  117. data/lib/roast/workflow/validators/schema_validator.rb +1 -0
  118. data/lib/roast/workflow/validators/step_collector.rb +1 -0
  119. data/lib/roast/workflow/validators/validation_orchestrator.rb +1 -0
  120. data/lib/roast/workflow/workflow_context.rb +1 -0
  121. data/lib/roast/workflow/workflow_execution_context.rb +1 -0
  122. data/lib/roast/workflow/workflow_executor.rb +2 -1
  123. data/lib/roast/workflow/workflow_initializer.rb +1 -0
  124. data/lib/roast/workflow/workflow_runner.rb +66 -55
  125. data/lib/roast/workflow.rb +1 -0
  126. data/lib/roast/workflow_diagram_generator.rb +3 -2
  127. data/lib/roast.rb +23 -8
  128. data/roast.gemspec +1 -1
  129. data/sorbet/config +8 -0
  130. data/sorbet/rbi/dsl/.gitattributes +1 -0
  131. data/sorbet/rbi/dsl/active_support/callbacks.rbi +21 -0
  132. data/sorbet/rbi/gems/.gitattributes +1 -0
  133. data/sorbet/rbi/gems/activesupport@8.0.2.rbi +19107 -0
  134. data/sorbet/rbi/gems/addressable@2.8.7.rbi +1994 -0
  135. data/sorbet/rbi/gems/ast@2.4.3.rbi +585 -0
  136. data/sorbet/rbi/gems/base64@0.3.0.rbi +545 -0
  137. data/sorbet/rbi/gems/benchmark@0.4.1.rbi +619 -0
  138. data/sorbet/rbi/gems/bigdecimal@3.2.2.rbi +62 -0
  139. data/sorbet/rbi/gems/cgi@0.5.0.rbi +2961 -0
  140. data/sorbet/rbi/gems/claude_swarm@0.1.19.rbi +568 -0
  141. data/sorbet/rbi/gems/cli-kit@5.0.1.rbi +1991 -0
  142. data/sorbet/rbi/gems/cli-ui@2.3.0.rbi +3181 -0
  143. data/sorbet/rbi/gems/coderay@1.1.3.rbi +9 -0
  144. data/sorbet/rbi/gems/concurrent-ruby@1.3.5.rbi +11657 -0
  145. data/sorbet/rbi/gems/connection_pool@2.5.3.rbi +9 -0
  146. data/sorbet/rbi/gems/crack@1.0.0.rbi +145 -0
  147. data/sorbet/rbi/gems/diff-lcs@1.6.2.rbi +972 -0
  148. data/sorbet/rbi/gems/dotenv@3.1.8.rbi +295 -0
  149. data/sorbet/rbi/gems/drb@2.2.3.rbi +1661 -0
  150. data/sorbet/rbi/gems/dry-configurable@1.3.0.rbi +672 -0
  151. data/sorbet/rbi/gems/dry-core@1.1.0.rbi +1894 -0
  152. data/sorbet/rbi/gems/dry-inflector@1.2.0.rbi +659 -0
  153. data/sorbet/rbi/gems/dry-initializer@3.2.0.rbi +781 -0
  154. data/sorbet/rbi/gems/dry-logic@1.6.0.rbi +1127 -0
  155. data/sorbet/rbi/gems/dry-schema@1.14.1.rbi +3727 -0
  156. data/sorbet/rbi/gems/dry-types@1.8.3.rbi +3969 -0
  157. data/sorbet/rbi/gems/erubi@1.13.1.rbi +155 -0
  158. data/sorbet/rbi/gems/event_stream_parser@1.0.0.rbi +49 -0
  159. data/sorbet/rbi/gems/faraday-multipart@1.1.1.rbi +283 -0
  160. data/sorbet/rbi/gems/faraday-net_http@3.4.1.rbi +147 -0
  161. data/sorbet/rbi/gems/faraday-retry@2.3.2.rbi +9 -0
  162. data/sorbet/rbi/gems/faraday@2.13.1.rbi +2977 -0
  163. data/sorbet/rbi/gems/fast-mcp-annotations@1.5.3.rbi +1588 -0
  164. data/sorbet/rbi/gems/ffi@1.17.2.rbi +9 -0
  165. data/sorbet/rbi/gems/formatador@1.1.0.rbi +9 -0
  166. data/sorbet/rbi/gems/guard-compat@1.2.1.rbi +102 -0
  167. data/sorbet/rbi/gems/guard-minitest@2.4.6.rbi +402 -0
  168. data/sorbet/rbi/gems/guard@2.19.1.rbi +2283 -0
  169. data/sorbet/rbi/gems/hashdiff@1.2.0.rbi +355 -0
  170. data/sorbet/rbi/gems/i18n@1.14.7.rbi +2359 -0
  171. data/sorbet/rbi/gems/json-schema@5.1.1.rbi +1466 -0
  172. data/sorbet/rbi/gems/json@2.12.2.rbi +2051 -0
  173. data/sorbet/rbi/gems/language_server-protocol@3.17.0.5.rbi +9 -0
  174. data/sorbet/rbi/gems/lint_roller@1.1.0.rbi +9 -0
  175. data/sorbet/rbi/gems/listen@3.9.0.rbi +1206 -0
  176. data/sorbet/rbi/gems/logger@1.7.0.rbi +963 -0
  177. data/sorbet/rbi/gems/lumberjack@1.2.10.rbi +1830 -0
  178. data/sorbet/rbi/gems/method_source@1.1.0.rbi +9 -0
  179. data/sorbet/rbi/gems/mime-types-data@3.2025.0617.rbi +136 -0
  180. data/sorbet/rbi/gems/mime-types@3.7.0.rbi +1342 -0
  181. data/sorbet/rbi/gems/minitest-rg@5.3.0.rbi +160 -0
  182. data/sorbet/rbi/gems/minitest@5.25.5.rbi +1640 -0
  183. data/sorbet/rbi/gems/mocha@2.7.1.rbi +12 -0
  184. data/sorbet/rbi/gems/multipart-post@2.4.1.rbi +244 -0
  185. data/sorbet/rbi/gems/nenv@0.3.0.rbi +147 -0
  186. data/sorbet/rbi/gems/net-http@0.6.0.rbi +4247 -0
  187. data/sorbet/rbi/gems/netrc@0.11.0.rbi +159 -0
  188. data/sorbet/rbi/gems/notiffany@0.1.3.rbi +1079 -0
  189. data/sorbet/rbi/gems/open_router@0.3.3.rbi +230 -0
  190. data/sorbet/rbi/gems/ostruct@0.6.2.rbi +354 -0
  191. data/sorbet/rbi/gems/parallel@1.27.0.rbi +291 -0
  192. data/sorbet/rbi/gems/parser@3.3.8.0.rbi +5535 -0
  193. data/sorbet/rbi/gems/prism@1.4.0.rbi +41732 -0
  194. data/sorbet/rbi/gems/pry@0.15.2.rbi +9 -0
  195. data/sorbet/rbi/gems/public_suffix@6.0.2.rbi +936 -0
  196. data/sorbet/rbi/gems/racc@1.8.1.rbi +158 -0
  197. data/sorbet/rbi/gems/rack@2.2.17.rbi +5659 -0
  198. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +9 -0
  199. data/sorbet/rbi/gems/raix@1.0.2.rbi +1104 -0
  200. data/sorbet/rbi/gems/rake@13.3.0.rbi +3036 -0
  201. data/sorbet/rbi/gems/rb-fsevent@0.11.2.rbi +9 -0
  202. data/sorbet/rbi/gems/rb-inotify@0.11.1.rbi +9 -0
  203. data/sorbet/rbi/gems/rbi@0.3.6.rbi +6893 -0
  204. data/sorbet/rbi/gems/rbs@3.9.4.rbi +6978 -0
  205. data/sorbet/rbi/gems/regexp_parser@2.10.0.rbi +9 -0
  206. data/sorbet/rbi/gems/rexml@3.4.1.rbi +5346 -0
  207. data/sorbet/rbi/gems/rubocop-ast@1.45.1.rbi +9 -0
  208. data/sorbet/rbi/gems/rubocop-shopify@2.17.1.rbi +9 -0
  209. data/sorbet/rbi/gems/rubocop@1.77.0.rbi +9 -0
  210. data/sorbet/rbi/gems/ruby-graphviz@1.2.5.rbi +1333 -0
  211. data/sorbet/rbi/gems/ruby-openai@8.1.0.rbi +758 -0
  212. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +9 -0
  213. data/sorbet/rbi/gems/ruby2_keywords@0.0.5.rbi +9 -0
  214. data/sorbet/rbi/gems/securerandom@0.4.1.rbi +75 -0
  215. data/sorbet/rbi/gems/shellany@0.0.1.rbi +102 -0
  216. data/sorbet/rbi/gems/spoom@1.6.3.rbi +6985 -0
  217. data/sorbet/rbi/gems/sqlite3@2.7.0.rbi +1900 -0
  218. data/sorbet/rbi/gems/tapioca@0.16.11.rbi +3628 -0
  219. data/sorbet/rbi/gems/thor@1.4.0.rbi +4399 -0
  220. data/sorbet/rbi/gems/tzinfo@2.0.6.rbi +5918 -0
  221. data/sorbet/rbi/gems/unicode-display_width@3.1.4.rbi +9 -0
  222. data/sorbet/rbi/gems/unicode-emoji@4.0.4.rbi +9 -0
  223. data/sorbet/rbi/gems/uri@1.0.3.rbi +2349 -0
  224. data/sorbet/rbi/gems/vcr@6.3.1.rbi +3040 -0
  225. data/sorbet/rbi/gems/webmock@3.25.1.rbi +1792 -0
  226. data/sorbet/rbi/gems/yard-sorbet@0.9.0.rbi +435 -0
  227. data/sorbet/rbi/gems/yard@0.9.37.rbi +18492 -0
  228. data/sorbet/rbi/gems/zeitwerk@2.7.3.rbi +1429 -0
  229. data/sorbet/tapioca/config.yml +13 -0
  230. data/sorbet/tapioca/require.rb +36 -0
  231. metadata +116 -5
  232. data/lib/roast/workflow/configuration_parser.rb +0 -54
@@ -0,0 +1,13 @@
1
+ gem:
2
+ # Add your `gem` command parameters here:
3
+ #
4
+ # exclude:
5
+ # - gem_name
6
+ # doc: true
7
+ # workers: 5
8
+ dsl:
9
+ # Add your `dsl` command parameters here:
10
+ #
11
+ # exclude:
12
+ # - SomeGeneratorName
13
+ # workers: 5
@@ -0,0 +1,36 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ require "English"
5
+ require "active_support"
6
+ require "active_support/cache"
7
+ require "active_support/core_ext/hash/indifferent_access"
8
+ require "active_support/core_ext/module/delegation"
9
+ require "active_support/core_ext/string"
10
+ require "active_support/core_ext/string/inflections"
11
+ require "active_support/isolated_execution_state"
12
+ require "active_support/notifications"
13
+ require "bundler/setup"
14
+ require "cli/kit"
15
+ require "cli/ui"
16
+ require "coverage"
17
+ require "diff/lcs"
18
+ require "io/console"
19
+ require "json"
20
+ require "json-schema"
21
+ require "minitest"
22
+ require "open3"
23
+ require "open_router"
24
+ require "openai"
25
+ require "raix"
26
+ require "raix/chat_completion"
27
+ require "raix/function_dispatch"
28
+ require "roast/helpers/logger"
29
+ require "roast/helpers/timeout_handler"
30
+ require "ruby-graphviz"
31
+ require "shellwords"
32
+ require "sqlite3"
33
+ require "thor"
34
+ require "timeout"
35
+ require "tmpdir"
36
+ require "zeitwerk"
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.3
4
+ version: 0.4.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shopify
@@ -94,19 +94,19 @@ dependencies:
94
94
  - !ruby/object:Gem::Version
95
95
  version: '0.3'
96
96
  - !ruby/object:Gem::Dependency
97
- name: raix-openai-eight
97
+ name: raix
98
98
  requirement: !ruby/object:Gem::Requirement
99
99
  requirements:
100
100
  - - "~>"
101
101
  - !ruby/object:Gem::Version
102
- version: '1.0'
102
+ version: 1.0.2
103
103
  type: :runtime
104
104
  prerelease: false
105
105
  version_requirements: !ruby/object:Gem::Requirement
106
106
  requirements:
107
107
  - - "~>"
108
108
  - !ruby/object:Gem::Version
109
- version: '1.0'
109
+ version: 1.0.2
110
110
  - !ruby/object:Gem::Dependency
111
111
  name: ruby-graphviz
112
112
  requirement: !ruby/object:Gem::Requirement
@@ -173,10 +173,12 @@ extensions: []
173
173
  extra_rdoc_files: []
174
174
  files:
175
175
  - ".claude/settings.json"
176
+ - ".github/CODEOWNERS"
176
177
  - ".github/workflows/ci.yaml"
177
178
  - ".github/workflows/cla.yml"
178
179
  - ".gitignore"
179
180
  - ".rubocop.yml"
181
+ - ".rubocop_todo.yml"
180
182
  - ".ruby-version"
181
183
  - CHANGELOG.md
182
184
  - CLAUDE.md
@@ -190,11 +192,17 @@ files:
190
192
  - Rakefile
191
193
  - bin/console
192
194
  - bin/roast
195
+ - bin/rubocop
196
+ - bin/spoom
197
+ - bin/srb
198
+ - bin/srb-rbi
199
+ - bin/tapioca
193
200
  - claude-swarm.yml
194
201
  - docs/AGENT_STEPS.md
195
202
  - docs/INSTRUMENTATION.md
196
203
  - docs/ITERATION_SYNTAX.md
197
204
  - docs/VALIDATION.md
205
+ - dsl/simple.rb
198
206
  - examples/agent_continue/add_documentation/prompt.md
199
207
  - examples/agent_continue/add_error_handling/prompt.md
200
208
  - examples/agent_continue/analyze_codebase/prompt.md
@@ -440,6 +448,8 @@ files:
440
448
  - gemfiles/activesupport7.gemfile
441
449
  - gemfiles/activesupport8.gemfile
442
450
  - lib/roast.rb
451
+ - lib/roast/dsl.rb
452
+ - lib/roast/dsl/executor.rb
443
453
  - lib/roast/errors.rb
444
454
  - lib/roast/factories/api_provider_factory.rb
445
455
  - lib/roast/helpers/function_caching_interceptor.rb
@@ -492,7 +502,6 @@ files:
492
502
  - lib/roast/workflow/conditional_step.rb
493
503
  - lib/roast/workflow/configuration.rb
494
504
  - lib/roast/workflow/configuration_loader.rb
495
- - lib/roast/workflow/configuration_parser.rb
496
505
  - lib/roast/workflow/context_manager.rb
497
506
  - lib/roast/workflow/context_path_resolver.rb
498
507
  - lib/roast/workflow/dot_access_hash.rb
@@ -553,6 +562,108 @@ files:
553
562
  - roast.gemspec
554
563
  - schema/workflow.json
555
564
  - shipit.rubygems.yml
565
+ - sorbet/config
566
+ - sorbet/rbi/dsl/.gitattributes
567
+ - sorbet/rbi/dsl/active_support/callbacks.rbi
568
+ - sorbet/rbi/gems/.gitattributes
569
+ - sorbet/rbi/gems/activesupport@8.0.2.rbi
570
+ - sorbet/rbi/gems/addressable@2.8.7.rbi
571
+ - sorbet/rbi/gems/ast@2.4.3.rbi
572
+ - sorbet/rbi/gems/base64@0.3.0.rbi
573
+ - sorbet/rbi/gems/benchmark@0.4.1.rbi
574
+ - sorbet/rbi/gems/bigdecimal@3.2.2.rbi
575
+ - sorbet/rbi/gems/cgi@0.5.0.rbi
576
+ - sorbet/rbi/gems/claude_swarm@0.1.19.rbi
577
+ - sorbet/rbi/gems/cli-kit@5.0.1.rbi
578
+ - sorbet/rbi/gems/cli-ui@2.3.0.rbi
579
+ - sorbet/rbi/gems/coderay@1.1.3.rbi
580
+ - sorbet/rbi/gems/concurrent-ruby@1.3.5.rbi
581
+ - sorbet/rbi/gems/connection_pool@2.5.3.rbi
582
+ - sorbet/rbi/gems/crack@1.0.0.rbi
583
+ - sorbet/rbi/gems/diff-lcs@1.6.2.rbi
584
+ - sorbet/rbi/gems/dotenv@3.1.8.rbi
585
+ - sorbet/rbi/gems/drb@2.2.3.rbi
586
+ - sorbet/rbi/gems/dry-configurable@1.3.0.rbi
587
+ - sorbet/rbi/gems/dry-core@1.1.0.rbi
588
+ - sorbet/rbi/gems/dry-inflector@1.2.0.rbi
589
+ - sorbet/rbi/gems/dry-initializer@3.2.0.rbi
590
+ - sorbet/rbi/gems/dry-logic@1.6.0.rbi
591
+ - sorbet/rbi/gems/dry-schema@1.14.1.rbi
592
+ - sorbet/rbi/gems/dry-types@1.8.3.rbi
593
+ - sorbet/rbi/gems/erubi@1.13.1.rbi
594
+ - sorbet/rbi/gems/event_stream_parser@1.0.0.rbi
595
+ - sorbet/rbi/gems/faraday-multipart@1.1.1.rbi
596
+ - sorbet/rbi/gems/faraday-net_http@3.4.1.rbi
597
+ - sorbet/rbi/gems/faraday-retry@2.3.2.rbi
598
+ - sorbet/rbi/gems/faraday@2.13.1.rbi
599
+ - sorbet/rbi/gems/fast-mcp-annotations@1.5.3.rbi
600
+ - sorbet/rbi/gems/ffi@1.17.2.rbi
601
+ - sorbet/rbi/gems/formatador@1.1.0.rbi
602
+ - sorbet/rbi/gems/guard-compat@1.2.1.rbi
603
+ - sorbet/rbi/gems/guard-minitest@2.4.6.rbi
604
+ - sorbet/rbi/gems/guard@2.19.1.rbi
605
+ - sorbet/rbi/gems/hashdiff@1.2.0.rbi
606
+ - sorbet/rbi/gems/i18n@1.14.7.rbi
607
+ - sorbet/rbi/gems/json-schema@5.1.1.rbi
608
+ - sorbet/rbi/gems/json@2.12.2.rbi
609
+ - sorbet/rbi/gems/language_server-protocol@3.17.0.5.rbi
610
+ - sorbet/rbi/gems/lint_roller@1.1.0.rbi
611
+ - sorbet/rbi/gems/listen@3.9.0.rbi
612
+ - sorbet/rbi/gems/logger@1.7.0.rbi
613
+ - sorbet/rbi/gems/lumberjack@1.2.10.rbi
614
+ - sorbet/rbi/gems/method_source@1.1.0.rbi
615
+ - sorbet/rbi/gems/mime-types-data@3.2025.0617.rbi
616
+ - sorbet/rbi/gems/mime-types@3.7.0.rbi
617
+ - sorbet/rbi/gems/minitest-rg@5.3.0.rbi
618
+ - sorbet/rbi/gems/minitest@5.25.5.rbi
619
+ - sorbet/rbi/gems/mocha@2.7.1.rbi
620
+ - sorbet/rbi/gems/multipart-post@2.4.1.rbi
621
+ - sorbet/rbi/gems/nenv@0.3.0.rbi
622
+ - sorbet/rbi/gems/net-http@0.6.0.rbi
623
+ - sorbet/rbi/gems/netrc@0.11.0.rbi
624
+ - sorbet/rbi/gems/notiffany@0.1.3.rbi
625
+ - sorbet/rbi/gems/open_router@0.3.3.rbi
626
+ - sorbet/rbi/gems/ostruct@0.6.2.rbi
627
+ - sorbet/rbi/gems/parallel@1.27.0.rbi
628
+ - sorbet/rbi/gems/parser@3.3.8.0.rbi
629
+ - sorbet/rbi/gems/prism@1.4.0.rbi
630
+ - sorbet/rbi/gems/pry@0.15.2.rbi
631
+ - sorbet/rbi/gems/public_suffix@6.0.2.rbi
632
+ - sorbet/rbi/gems/racc@1.8.1.rbi
633
+ - sorbet/rbi/gems/rack@2.2.17.rbi
634
+ - sorbet/rbi/gems/rainbow@3.1.1.rbi
635
+ - sorbet/rbi/gems/raix@1.0.2.rbi
636
+ - sorbet/rbi/gems/rake@13.3.0.rbi
637
+ - sorbet/rbi/gems/rb-fsevent@0.11.2.rbi
638
+ - sorbet/rbi/gems/rb-inotify@0.11.1.rbi
639
+ - sorbet/rbi/gems/rbi@0.3.6.rbi
640
+ - sorbet/rbi/gems/rbs@3.9.4.rbi
641
+ - sorbet/rbi/gems/regexp_parser@2.10.0.rbi
642
+ - sorbet/rbi/gems/rexml@3.4.1.rbi
643
+ - sorbet/rbi/gems/rubocop-ast@1.45.1.rbi
644
+ - sorbet/rbi/gems/rubocop-shopify@2.17.1.rbi
645
+ - sorbet/rbi/gems/rubocop@1.77.0.rbi
646
+ - sorbet/rbi/gems/ruby-graphviz@1.2.5.rbi
647
+ - sorbet/rbi/gems/ruby-openai@8.1.0.rbi
648
+ - sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi
649
+ - sorbet/rbi/gems/ruby2_keywords@0.0.5.rbi
650
+ - sorbet/rbi/gems/securerandom@0.4.1.rbi
651
+ - sorbet/rbi/gems/shellany@0.0.1.rbi
652
+ - sorbet/rbi/gems/spoom@1.6.3.rbi
653
+ - sorbet/rbi/gems/sqlite3@2.7.0.rbi
654
+ - sorbet/rbi/gems/tapioca@0.16.11.rbi
655
+ - sorbet/rbi/gems/thor@1.4.0.rbi
656
+ - sorbet/rbi/gems/tzinfo@2.0.6.rbi
657
+ - sorbet/rbi/gems/unicode-display_width@3.1.4.rbi
658
+ - sorbet/rbi/gems/unicode-emoji@4.0.4.rbi
659
+ - sorbet/rbi/gems/uri@1.0.3.rbi
660
+ - sorbet/rbi/gems/vcr@6.3.1.rbi
661
+ - sorbet/rbi/gems/webmock@3.25.1.rbi
662
+ - sorbet/rbi/gems/yard-sorbet@0.9.0.rbi
663
+ - sorbet/rbi/gems/yard@0.9.37.rbi
664
+ - sorbet/rbi/gems/zeitwerk@2.7.3.rbi
665
+ - sorbet/tapioca/config.yml
666
+ - sorbet/tapioca/require.rb
556
667
  homepage: https://github.com/Shopify/roast
557
668
  licenses:
558
669
  - MIT
@@ -1,54 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Roast
4
- module Workflow
5
- class ConfigurationParser
6
- attr_reader :configuration, :options, :files, :current_workflow
7
-
8
- delegate :output, to: :current_workflow
9
-
10
- def initialize(workflow_path, files = [], options = {})
11
- @configuration = Configuration.new(workflow_path, options)
12
- @options = options
13
- @files = files
14
-
15
- # Initialize workflow dependencies
16
- initializer = WorkflowInitializer.new(@configuration)
17
- initializer.setup
18
-
19
- @workflow_runner = WorkflowRunner.new(@configuration, @options)
20
- end
21
-
22
- def begin!
23
- start_time = Time.now
24
- $stderr.puts "Starting workflow..."
25
- $stderr.puts "Workflow: #{configuration.workflow_path}"
26
- $stderr.puts "Options: #{options}"
27
-
28
- ActiveSupport::Notifications.instrument("roast.workflow.start", {
29
- workflow_path: configuration.workflow_path,
30
- options: options,
31
- name: configuration.basename,
32
- })
33
-
34
- if files.any?
35
- @workflow_runner.run_for_files(files)
36
- elsif configuration.has_target?
37
- @workflow_runner.run_for_targets
38
- else
39
- @workflow_runner.run_targetless
40
- end
41
- rescue Roast::Errors::ExitEarly
42
- $stderr.puts "Exiting workflow early."
43
- ensure
44
- execution_time = Time.now - start_time
45
-
46
- ActiveSupport::Notifications.instrument("roast.workflow.complete", {
47
- workflow_path: configuration.workflow_path,
48
- success: !$ERROR_INFO,
49
- execution_time: execution_time,
50
- })
51
- end
52
- end
53
- end
54
- end