roast-ai 0.4.4 → 0.4.6
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.
- checksums.yaml +4 -4
- data/.github/CODEOWNERS +2 -0
- data/.github/workflows/ci.yaml +1 -0
- data/.gitignore +0 -26
- data/.rubocop.yml +13 -0
- data/.rubocop_todo.yml +21 -0
- data/CHANGELOG.md +37 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +43 -1
- data/bin/rubocop +27 -0
- data/bin/spoom +27 -0
- data/bin/srb +27 -0
- data/bin/srb-rbi +27 -0
- data/bin/tapioca +27 -0
- data/docs/INSTRUMENTATION.md +3 -3
- data/dsl/simple.rb +10 -0
- data/examples/retry/workflow.yml +23 -0
- data/lib/roast/dsl/executor.rb +26 -0
- data/lib/roast/dsl.rb +7 -0
- data/lib/roast/errors.rb +1 -0
- data/lib/roast/factories/api_provider_factory.rb +1 -0
- data/lib/roast/helpers/function_caching_interceptor.rb +3 -0
- data/lib/roast/helpers/logger.rb +6 -9
- data/lib/roast/helpers/metadata_access.rb +1 -0
- data/lib/roast/helpers/minitest_coverage_runner.rb +1 -0
- data/lib/roast/helpers/path_resolver.rb +8 -18
- data/lib/roast/helpers/prompt_loader.rb +3 -2
- data/lib/roast/helpers/timeout_handler.rb +3 -5
- data/lib/roast/initializers.rb +1 -0
- data/lib/roast/resources/api_resource.rb +4 -3
- data/lib/roast/resources/base_resource.rb +1 -0
- data/lib/roast/resources/directory_resource.rb +1 -0
- data/lib/roast/resources/file_resource.rb +1 -0
- data/lib/roast/resources/none_resource.rb +1 -0
- data/lib/roast/resources/url_resource.rb +2 -1
- data/lib/roast/resources.rb +1 -2
- data/lib/roast/services/context_threshold_checker.rb +1 -0
- data/lib/roast/services/token_counting_service.rb +1 -0
- data/lib/roast/tools/apply_diff.rb +1 -0
- data/lib/roast/tools/ask_user.rb +1 -0
- data/lib/roast/tools/bash.rb +1 -0
- data/lib/roast/tools/cmd.rb +1 -0
- data/lib/roast/tools/coding_agent.rb +1 -0
- data/lib/roast/tools/context_summarizer.rb +1 -0
- data/lib/roast/tools/grep.rb +1 -0
- data/lib/roast/tools/helpers/coding_agent_message_formatter.rb +1 -0
- data/lib/roast/tools/read_file.rb +1 -0
- data/lib/roast/tools/search_file.rb +1 -0
- data/lib/roast/tools/swarm.rb +1 -0
- data/lib/roast/tools/update_files.rb +1 -0
- data/lib/roast/tools/write_file.rb +1 -0
- data/lib/roast/tools.rb +2 -0
- data/lib/roast/value_objects/api_token.rb +1 -0
- data/lib/roast/value_objects/step_name.rb +1 -0
- data/lib/roast/value_objects/uri_base.rb +1 -0
- data/lib/roast/value_objects/workflow_path.rb +1 -0
- data/lib/roast/value_objects.rb +1 -0
- data/lib/roast/version.rb +2 -1
- data/lib/roast/workflow/agent_step.rb +1 -0
- data/lib/roast/workflow/api_configuration.rb +1 -0
- data/lib/roast/workflow/base_iteration_step.rb +1 -0
- data/lib/roast/workflow/base_step.rb +1 -0
- data/lib/roast/workflow/base_workflow.rb +1 -0
- data/lib/roast/workflow/case_executor.rb +1 -0
- data/lib/roast/workflow/case_step.rb +1 -0
- data/lib/roast/workflow/command_executor.rb +1 -0
- data/lib/roast/workflow/conditional_executor.rb +1 -0
- data/lib/roast/workflow/conditional_step.rb +1 -0
- data/lib/roast/workflow/configuration.rb +9 -0
- data/lib/roast/workflow/configuration_loader.rb +4 -1
- data/lib/roast/workflow/context_manager.rb +1 -0
- data/lib/roast/workflow/context_path_resolver.rb +1 -0
- data/lib/roast/workflow/dot_access_hash.rb +1 -0
- data/lib/roast/workflow/each_step.rb +1 -0
- data/lib/roast/workflow/error_handler.rb +39 -3
- data/lib/roast/workflow/expression_evaluator.rb +1 -0
- data/lib/roast/workflow/expression_utils.rb +1 -0
- data/lib/roast/workflow/file_state_repository.rb +2 -1
- data/lib/roast/workflow/input_executor.rb +1 -0
- data/lib/roast/workflow/input_step.rb +1 -0
- data/lib/roast/workflow/interpolator.rb +2 -1
- data/lib/roast/workflow/iteration_executor.rb +1 -0
- data/lib/roast/workflow/llm_boolean_coercer.rb +1 -0
- data/lib/roast/workflow/metadata_manager.rb +1 -0
- data/lib/roast/workflow/output_handler.rb +1 -0
- data/lib/roast/workflow/output_manager.rb +1 -0
- data/lib/roast/workflow/parallel_executor.rb +1 -0
- data/lib/roast/workflow/prompt_step.rb +1 -0
- data/lib/roast/workflow/repeat_step.rb +1 -0
- data/lib/roast/workflow/replay_handler.rb +1 -0
- data/lib/roast/workflow/resource_resolver.rb +2 -6
- data/lib/roast/workflow/session_manager.rb +1 -0
- data/lib/roast/workflow/shell_script_step.rb +1 -0
- data/lib/roast/workflow/sqlite_state_repository.rb +1 -0
- data/lib/roast/workflow/state_manager.rb +1 -0
- data/lib/roast/workflow/state_repository.rb +1 -0
- data/lib/roast/workflow/state_repository_factory.rb +4 -2
- data/lib/roast/workflow/step_completion_reporter.rb +1 -0
- data/lib/roast/workflow/step_executor_coordinator.rb +17 -6
- data/lib/roast/workflow/step_executor_factory.rb +1 -0
- data/lib/roast/workflow/step_executor_registry.rb +2 -3
- data/lib/roast/workflow/step_executor_with_reporting.rb +1 -0
- data/lib/roast/workflow/step_executors/base_step_executor.rb +1 -0
- data/lib/roast/workflow/step_executors/hash_step_executor.rb +1 -0
- data/lib/roast/workflow/step_executors/parallel_step_executor.rb +1 -0
- data/lib/roast/workflow/step_executors/string_step_executor.rb +1 -0
- data/lib/roast/workflow/step_factory.rb +1 -0
- data/lib/roast/workflow/step_finder.rb +1 -0
- data/lib/roast/workflow/step_loader.rb +1 -0
- data/lib/roast/workflow/step_name_extractor.rb +1 -0
- data/lib/roast/workflow/step_runner.rb +1 -0
- data/lib/roast/workflow/step_type_resolver.rb +1 -0
- data/lib/roast/workflow/validation_command.rb +1 -0
- data/lib/roast/workflow/validator.rb +1 -0
- data/lib/roast/workflow/validators/base_validator.rb +1 -0
- data/lib/roast/workflow/validators/dependency_validator.rb +1 -0
- data/lib/roast/workflow/validators/linting_validator.rb +1 -0
- data/lib/roast/workflow/validators/schema_validator.rb +1 -0
- data/lib/roast/workflow/validators/step_collector.rb +1 -0
- data/lib/roast/workflow/validators/validation_orchestrator.rb +1 -0
- data/lib/roast/workflow/workflow_context.rb +1 -0
- data/lib/roast/workflow/workflow_execution_context.rb +1 -0
- data/lib/roast/workflow/workflow_executor.rb +2 -1
- data/lib/roast/workflow/workflow_initializer.rb +16 -1
- data/lib/roast/workflow/workflow_runner.rb +66 -55
- data/lib/roast/workflow.rb +1 -0
- data/lib/roast/workflow_diagram_generator.rb +3 -2
- data/lib/roast.rb +23 -8
- data/sorbet/config +8 -0
- data/sorbet/rbi/dsl/.gitattributes +1 -0
- data/sorbet/rbi/dsl/active_support/callbacks.rbi +21 -0
- data/sorbet/rbi/gems/.gitattributes +1 -0
- data/sorbet/rbi/gems/activesupport@8.0.2.rbi +19107 -0
- data/sorbet/rbi/gems/addressable@2.8.7.rbi +1994 -0
- data/sorbet/rbi/gems/ast@2.4.3.rbi +585 -0
- data/sorbet/rbi/gems/base64@0.3.0.rbi +545 -0
- data/sorbet/rbi/gems/benchmark@0.4.1.rbi +619 -0
- data/sorbet/rbi/gems/bigdecimal@3.2.2.rbi +62 -0
- data/sorbet/rbi/gems/cgi@0.5.0.rbi +2961 -0
- data/sorbet/rbi/gems/claude_swarm@0.1.19.rbi +568 -0
- data/sorbet/rbi/gems/cli-kit@5.0.1.rbi +1991 -0
- data/sorbet/rbi/gems/cli-ui@2.3.0.rbi +3181 -0
- data/sorbet/rbi/gems/coderay@1.1.3.rbi +9 -0
- data/sorbet/rbi/gems/concurrent-ruby@1.3.5.rbi +11657 -0
- data/sorbet/rbi/gems/connection_pool@2.5.3.rbi +9 -0
- data/sorbet/rbi/gems/crack@1.0.0.rbi +145 -0
- data/sorbet/rbi/gems/diff-lcs@1.6.2.rbi +972 -0
- data/sorbet/rbi/gems/dotenv@3.1.8.rbi +295 -0
- data/sorbet/rbi/gems/drb@2.2.3.rbi +1661 -0
- data/sorbet/rbi/gems/dry-configurable@1.3.0.rbi +672 -0
- data/sorbet/rbi/gems/dry-core@1.1.0.rbi +1894 -0
- data/sorbet/rbi/gems/dry-inflector@1.2.0.rbi +659 -0
- data/sorbet/rbi/gems/dry-initializer@3.2.0.rbi +781 -0
- data/sorbet/rbi/gems/dry-logic@1.6.0.rbi +1127 -0
- data/sorbet/rbi/gems/dry-schema@1.14.1.rbi +3727 -0
- data/sorbet/rbi/gems/dry-types@1.8.3.rbi +3969 -0
- data/sorbet/rbi/gems/erubi@1.13.1.rbi +155 -0
- data/sorbet/rbi/gems/event_stream_parser@1.0.0.rbi +49 -0
- data/sorbet/rbi/gems/faraday-multipart@1.1.1.rbi +283 -0
- data/sorbet/rbi/gems/faraday-net_http@3.4.1.rbi +147 -0
- data/sorbet/rbi/gems/faraday-retry@2.3.2.rbi +9 -0
- data/sorbet/rbi/gems/faraday@2.13.1.rbi +2977 -0
- data/sorbet/rbi/gems/fast-mcp-annotations@1.5.3.rbi +1588 -0
- data/sorbet/rbi/gems/ffi@1.17.2.rbi +9 -0
- data/sorbet/rbi/gems/formatador@1.1.0.rbi +9 -0
- data/sorbet/rbi/gems/guard-compat@1.2.1.rbi +102 -0
- data/sorbet/rbi/gems/guard-minitest@2.4.6.rbi +402 -0
- data/sorbet/rbi/gems/guard@2.19.1.rbi +2283 -0
- data/sorbet/rbi/gems/hashdiff@1.2.0.rbi +355 -0
- data/sorbet/rbi/gems/i18n@1.14.7.rbi +2359 -0
- data/sorbet/rbi/gems/json-schema@5.1.1.rbi +1466 -0
- data/sorbet/rbi/gems/json@2.12.2.rbi +2051 -0
- data/sorbet/rbi/gems/language_server-protocol@3.17.0.5.rbi +9 -0
- data/sorbet/rbi/gems/lint_roller@1.1.0.rbi +9 -0
- data/sorbet/rbi/gems/listen@3.9.0.rbi +1206 -0
- data/sorbet/rbi/gems/logger@1.7.0.rbi +963 -0
- data/sorbet/rbi/gems/lumberjack@1.2.10.rbi +1830 -0
- data/sorbet/rbi/gems/method_source@1.1.0.rbi +9 -0
- data/sorbet/rbi/gems/mime-types-data@3.2025.0617.rbi +136 -0
- data/sorbet/rbi/gems/mime-types@3.7.0.rbi +1342 -0
- data/sorbet/rbi/gems/minitest-rg@5.3.0.rbi +160 -0
- data/sorbet/rbi/gems/minitest@5.25.5.rbi +1640 -0
- data/sorbet/rbi/gems/mocha@2.7.1.rbi +12 -0
- data/sorbet/rbi/gems/multipart-post@2.4.1.rbi +244 -0
- data/sorbet/rbi/gems/nenv@0.3.0.rbi +147 -0
- data/sorbet/rbi/gems/net-http@0.6.0.rbi +4247 -0
- data/sorbet/rbi/gems/netrc@0.11.0.rbi +159 -0
- data/sorbet/rbi/gems/notiffany@0.1.3.rbi +1079 -0
- data/sorbet/rbi/gems/open_router@0.3.3.rbi +230 -0
- data/sorbet/rbi/gems/ostruct@0.6.2.rbi +354 -0
- data/sorbet/rbi/gems/parallel@1.27.0.rbi +291 -0
- data/sorbet/rbi/gems/parser@3.3.8.0.rbi +5535 -0
- data/sorbet/rbi/gems/prism@1.4.0.rbi +41732 -0
- data/sorbet/rbi/gems/pry@0.15.2.rbi +9 -0
- data/sorbet/rbi/gems/public_suffix@6.0.2.rbi +936 -0
- data/sorbet/rbi/gems/racc@1.8.1.rbi +158 -0
- data/sorbet/rbi/gems/rack@2.2.17.rbi +5659 -0
- data/sorbet/rbi/gems/rainbow@3.1.1.rbi +9 -0
- data/sorbet/rbi/gems/raix@1.0.2.rbi +1104 -0
- data/sorbet/rbi/gems/rake@13.3.0.rbi +3036 -0
- data/sorbet/rbi/gems/rb-fsevent@0.11.2.rbi +9 -0
- data/sorbet/rbi/gems/rb-inotify@0.11.1.rbi +9 -0
- data/sorbet/rbi/gems/rbi@0.3.6.rbi +6893 -0
- data/sorbet/rbi/gems/rbs@3.9.4.rbi +6978 -0
- data/sorbet/rbi/gems/regexp_parser@2.10.0.rbi +9 -0
- data/sorbet/rbi/gems/rexml@3.4.1.rbi +5346 -0
- data/sorbet/rbi/gems/rubocop-ast@1.45.1.rbi +9 -0
- data/sorbet/rbi/gems/rubocop-shopify@2.17.1.rbi +9 -0
- data/sorbet/rbi/gems/rubocop@1.77.0.rbi +9 -0
- data/sorbet/rbi/gems/ruby-graphviz@1.2.5.rbi +1333 -0
- data/sorbet/rbi/gems/ruby-openai@8.1.0.rbi +758 -0
- data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +9 -0
- data/sorbet/rbi/gems/ruby2_keywords@0.0.5.rbi +9 -0
- data/sorbet/rbi/gems/securerandom@0.4.1.rbi +75 -0
- data/sorbet/rbi/gems/shellany@0.0.1.rbi +102 -0
- data/sorbet/rbi/gems/spoom@1.6.3.rbi +6985 -0
- data/sorbet/rbi/gems/sqlite3@2.7.0.rbi +1900 -0
- data/sorbet/rbi/gems/tapioca@0.16.11.rbi +3628 -0
- data/sorbet/rbi/gems/thor@1.4.0.rbi +4399 -0
- data/sorbet/rbi/gems/tzinfo@2.0.6.rbi +5918 -0
- data/sorbet/rbi/gems/unicode-display_width@3.1.4.rbi +9 -0
- data/sorbet/rbi/gems/unicode-emoji@4.0.4.rbi +9 -0
- data/sorbet/rbi/gems/uri@1.0.3.rbi +2349 -0
- data/sorbet/rbi/gems/vcr@6.3.1.rbi +3040 -0
- data/sorbet/rbi/gems/webmock@3.25.1.rbi +1792 -0
- data/sorbet/rbi/gems/yard-sorbet@0.9.0.rbi +435 -0
- data/sorbet/rbi/gems/yard@0.9.37.rbi +18492 -0
- data/sorbet/rbi/gems/zeitwerk@2.7.3.rbi +1429 -0
- data/sorbet/tapioca/config.yml +13 -0
- data/sorbet/tapioca/require.rb +36 -0
- metadata +114 -2
- data/lib/roast/workflow/configuration_parser.rb +0 -54
@@ -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.
|
4
|
+
version: 0.4.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shopify
|
@@ -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
|
@@ -389,6 +397,7 @@ files:
|
|
389
397
|
- examples/pre_post_processing/validate_changes/prompt.md
|
390
398
|
- examples/pre_post_processing/workflow.png
|
391
399
|
- examples/pre_post_processing/workflow.yml
|
400
|
+
- examples/retry/workflow.yml
|
392
401
|
- examples/rspec_to_minitest/README.md
|
393
402
|
- examples/rspec_to_minitest/analyze_spec/prompt.md
|
394
403
|
- examples/rspec_to_minitest/create_minitest/prompt.md
|
@@ -440,6 +449,8 @@ files:
|
|
440
449
|
- gemfiles/activesupport7.gemfile
|
441
450
|
- gemfiles/activesupport8.gemfile
|
442
451
|
- lib/roast.rb
|
452
|
+
- lib/roast/dsl.rb
|
453
|
+
- lib/roast/dsl/executor.rb
|
443
454
|
- lib/roast/errors.rb
|
444
455
|
- lib/roast/factories/api_provider_factory.rb
|
445
456
|
- lib/roast/helpers/function_caching_interceptor.rb
|
@@ -492,7 +503,6 @@ files:
|
|
492
503
|
- lib/roast/workflow/conditional_step.rb
|
493
504
|
- lib/roast/workflow/configuration.rb
|
494
505
|
- lib/roast/workflow/configuration_loader.rb
|
495
|
-
- lib/roast/workflow/configuration_parser.rb
|
496
506
|
- lib/roast/workflow/context_manager.rb
|
497
507
|
- lib/roast/workflow/context_path_resolver.rb
|
498
508
|
- lib/roast/workflow/dot_access_hash.rb
|
@@ -553,6 +563,108 @@ files:
|
|
553
563
|
- roast.gemspec
|
554
564
|
- schema/workflow.json
|
555
565
|
- shipit.rubygems.yml
|
566
|
+
- sorbet/config
|
567
|
+
- sorbet/rbi/dsl/.gitattributes
|
568
|
+
- sorbet/rbi/dsl/active_support/callbacks.rbi
|
569
|
+
- sorbet/rbi/gems/.gitattributes
|
570
|
+
- sorbet/rbi/gems/activesupport@8.0.2.rbi
|
571
|
+
- sorbet/rbi/gems/addressable@2.8.7.rbi
|
572
|
+
- sorbet/rbi/gems/ast@2.4.3.rbi
|
573
|
+
- sorbet/rbi/gems/base64@0.3.0.rbi
|
574
|
+
- sorbet/rbi/gems/benchmark@0.4.1.rbi
|
575
|
+
- sorbet/rbi/gems/bigdecimal@3.2.2.rbi
|
576
|
+
- sorbet/rbi/gems/cgi@0.5.0.rbi
|
577
|
+
- sorbet/rbi/gems/claude_swarm@0.1.19.rbi
|
578
|
+
- sorbet/rbi/gems/cli-kit@5.0.1.rbi
|
579
|
+
- sorbet/rbi/gems/cli-ui@2.3.0.rbi
|
580
|
+
- sorbet/rbi/gems/coderay@1.1.3.rbi
|
581
|
+
- sorbet/rbi/gems/concurrent-ruby@1.3.5.rbi
|
582
|
+
- sorbet/rbi/gems/connection_pool@2.5.3.rbi
|
583
|
+
- sorbet/rbi/gems/crack@1.0.0.rbi
|
584
|
+
- sorbet/rbi/gems/diff-lcs@1.6.2.rbi
|
585
|
+
- sorbet/rbi/gems/dotenv@3.1.8.rbi
|
586
|
+
- sorbet/rbi/gems/drb@2.2.3.rbi
|
587
|
+
- sorbet/rbi/gems/dry-configurable@1.3.0.rbi
|
588
|
+
- sorbet/rbi/gems/dry-core@1.1.0.rbi
|
589
|
+
- sorbet/rbi/gems/dry-inflector@1.2.0.rbi
|
590
|
+
- sorbet/rbi/gems/dry-initializer@3.2.0.rbi
|
591
|
+
- sorbet/rbi/gems/dry-logic@1.6.0.rbi
|
592
|
+
- sorbet/rbi/gems/dry-schema@1.14.1.rbi
|
593
|
+
- sorbet/rbi/gems/dry-types@1.8.3.rbi
|
594
|
+
- sorbet/rbi/gems/erubi@1.13.1.rbi
|
595
|
+
- sorbet/rbi/gems/event_stream_parser@1.0.0.rbi
|
596
|
+
- sorbet/rbi/gems/faraday-multipart@1.1.1.rbi
|
597
|
+
- sorbet/rbi/gems/faraday-net_http@3.4.1.rbi
|
598
|
+
- sorbet/rbi/gems/faraday-retry@2.3.2.rbi
|
599
|
+
- sorbet/rbi/gems/faraday@2.13.1.rbi
|
600
|
+
- sorbet/rbi/gems/fast-mcp-annotations@1.5.3.rbi
|
601
|
+
- sorbet/rbi/gems/ffi@1.17.2.rbi
|
602
|
+
- sorbet/rbi/gems/formatador@1.1.0.rbi
|
603
|
+
- sorbet/rbi/gems/guard-compat@1.2.1.rbi
|
604
|
+
- sorbet/rbi/gems/guard-minitest@2.4.6.rbi
|
605
|
+
- sorbet/rbi/gems/guard@2.19.1.rbi
|
606
|
+
- sorbet/rbi/gems/hashdiff@1.2.0.rbi
|
607
|
+
- sorbet/rbi/gems/i18n@1.14.7.rbi
|
608
|
+
- sorbet/rbi/gems/json-schema@5.1.1.rbi
|
609
|
+
- sorbet/rbi/gems/json@2.12.2.rbi
|
610
|
+
- sorbet/rbi/gems/language_server-protocol@3.17.0.5.rbi
|
611
|
+
- sorbet/rbi/gems/lint_roller@1.1.0.rbi
|
612
|
+
- sorbet/rbi/gems/listen@3.9.0.rbi
|
613
|
+
- sorbet/rbi/gems/logger@1.7.0.rbi
|
614
|
+
- sorbet/rbi/gems/lumberjack@1.2.10.rbi
|
615
|
+
- sorbet/rbi/gems/method_source@1.1.0.rbi
|
616
|
+
- sorbet/rbi/gems/mime-types-data@3.2025.0617.rbi
|
617
|
+
- sorbet/rbi/gems/mime-types@3.7.0.rbi
|
618
|
+
- sorbet/rbi/gems/minitest-rg@5.3.0.rbi
|
619
|
+
- sorbet/rbi/gems/minitest@5.25.5.rbi
|
620
|
+
- sorbet/rbi/gems/mocha@2.7.1.rbi
|
621
|
+
- sorbet/rbi/gems/multipart-post@2.4.1.rbi
|
622
|
+
- sorbet/rbi/gems/nenv@0.3.0.rbi
|
623
|
+
- sorbet/rbi/gems/net-http@0.6.0.rbi
|
624
|
+
- sorbet/rbi/gems/netrc@0.11.0.rbi
|
625
|
+
- sorbet/rbi/gems/notiffany@0.1.3.rbi
|
626
|
+
- sorbet/rbi/gems/open_router@0.3.3.rbi
|
627
|
+
- sorbet/rbi/gems/ostruct@0.6.2.rbi
|
628
|
+
- sorbet/rbi/gems/parallel@1.27.0.rbi
|
629
|
+
- sorbet/rbi/gems/parser@3.3.8.0.rbi
|
630
|
+
- sorbet/rbi/gems/prism@1.4.0.rbi
|
631
|
+
- sorbet/rbi/gems/pry@0.15.2.rbi
|
632
|
+
- sorbet/rbi/gems/public_suffix@6.0.2.rbi
|
633
|
+
- sorbet/rbi/gems/racc@1.8.1.rbi
|
634
|
+
- sorbet/rbi/gems/rack@2.2.17.rbi
|
635
|
+
- sorbet/rbi/gems/rainbow@3.1.1.rbi
|
636
|
+
- sorbet/rbi/gems/raix@1.0.2.rbi
|
637
|
+
- sorbet/rbi/gems/rake@13.3.0.rbi
|
638
|
+
- sorbet/rbi/gems/rb-fsevent@0.11.2.rbi
|
639
|
+
- sorbet/rbi/gems/rb-inotify@0.11.1.rbi
|
640
|
+
- sorbet/rbi/gems/rbi@0.3.6.rbi
|
641
|
+
- sorbet/rbi/gems/rbs@3.9.4.rbi
|
642
|
+
- sorbet/rbi/gems/regexp_parser@2.10.0.rbi
|
643
|
+
- sorbet/rbi/gems/rexml@3.4.1.rbi
|
644
|
+
- sorbet/rbi/gems/rubocop-ast@1.45.1.rbi
|
645
|
+
- sorbet/rbi/gems/rubocop-shopify@2.17.1.rbi
|
646
|
+
- sorbet/rbi/gems/rubocop@1.77.0.rbi
|
647
|
+
- sorbet/rbi/gems/ruby-graphviz@1.2.5.rbi
|
648
|
+
- sorbet/rbi/gems/ruby-openai@8.1.0.rbi
|
649
|
+
- sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi
|
650
|
+
- sorbet/rbi/gems/ruby2_keywords@0.0.5.rbi
|
651
|
+
- sorbet/rbi/gems/securerandom@0.4.1.rbi
|
652
|
+
- sorbet/rbi/gems/shellany@0.0.1.rbi
|
653
|
+
- sorbet/rbi/gems/spoom@1.6.3.rbi
|
654
|
+
- sorbet/rbi/gems/sqlite3@2.7.0.rbi
|
655
|
+
- sorbet/rbi/gems/tapioca@0.16.11.rbi
|
656
|
+
- sorbet/rbi/gems/thor@1.4.0.rbi
|
657
|
+
- sorbet/rbi/gems/tzinfo@2.0.6.rbi
|
658
|
+
- sorbet/rbi/gems/unicode-display_width@3.1.4.rbi
|
659
|
+
- sorbet/rbi/gems/unicode-emoji@4.0.4.rbi
|
660
|
+
- sorbet/rbi/gems/uri@1.0.3.rbi
|
661
|
+
- sorbet/rbi/gems/vcr@6.3.1.rbi
|
662
|
+
- sorbet/rbi/gems/webmock@3.25.1.rbi
|
663
|
+
- sorbet/rbi/gems/yard-sorbet@0.9.0.rbi
|
664
|
+
- sorbet/rbi/gems/yard@0.9.37.rbi
|
665
|
+
- sorbet/rbi/gems/zeitwerk@2.7.3.rbi
|
666
|
+
- sorbet/tapioca/config.yml
|
667
|
+
- sorbet/tapioca/require.rb
|
556
668
|
homepage: https://github.com/Shopify/roast
|
557
669
|
licenses:
|
558
670
|
- 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
|