roast-ai 0.5.2 → 1.0.0.pre.rc2
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/.claude/commands/docs/write-comments.md +1 -1
- data/.claude/commands/write-tests.md +126 -0
- data/.github/workflows/ci.yaml +3 -15
- data/.rubocop.yml +0 -10
- data/Gemfile +1 -4
- data/Gemfile.lock +12 -53
- data/README.md +6 -7
- data/Rakefile +8 -30
- data/dev.yml +3 -3
- data/{dsl → examples}/agent_sessions.rb +1 -1
- data/{dsl → examples}/async_cogs.rb +1 -1
- data/{dsl → examples}/async_cogs_complex.rb +1 -1
- data/{dsl → examples}/call.rb +1 -1
- data/{dsl → examples}/collect_from.rb +2 -2
- data/{dsl → examples}/demo/Gemfile +2 -0
- data/{dsl → examples}/demo/Gemfile.lock +11 -51
- data/{dsl → examples}/demo/cogs/local.rb +2 -2
- data/{dsl → examples}/demo/simple_external_cog.rb +1 -1
- data/{dsl → examples}/json_output.rb +1 -1
- data/{dsl → examples}/map.rb +1 -1
- data/{dsl → examples}/map_reduce.rb +1 -1
- data/{dsl → examples}/map_with_index.rb +1 -1
- data/{dsl → examples}/next_break.rb +1 -1
- data/{dsl → examples}/next_break_parallel.rb +1 -1
- data/{dsl → examples}/outputs.rb +1 -1
- data/{dsl → examples}/outputs_bang.rb +1 -1
- data/{dsl → examples}/parallel_map.rb +1 -1
- data/{dsl → examples}/plugin-gem-example/Gemfile +2 -0
- data/{dsl → examples}/plugin-gem-example/Gemfile.lock +47 -59
- data/{dsl → examples}/plugin-gem-example/lib/other.rb +2 -2
- data/{dsl → examples}/plugin-gem-example/lib/simple.rb +2 -2
- data/{dsl → examples}/plugin-gem-example/plugin-gem-example.gemspec +1 -1
- data/{dsl → examples}/prototype.rb +1 -1
- data/{dsl → examples}/repeat_loop_results.rb +1 -1
- data/{dsl → examples}/ruby_cog.rb +1 -1
- data/{dsl → examples}/simple_agent.rb +1 -1
- data/{dsl → examples}/simple_chat.rb +4 -4
- data/{dsl → examples}/simple_repeat.rb +1 -1
- data/{dsl → examples}/skip.rb +1 -1
- data/{dsl → examples}/step_communication.rb +1 -1
- data/{dsl → examples}/targets_and_params.rb +5 -6
- data/{dsl → examples}/temporary_directory.rb +1 -1
- data/{dsl → examples}/working_directory.rb +1 -1
- data/internal/documentation/doc-comments-external.md +6 -6
- data/internal/documentation/doc-comments-internal.md +2 -2
- data/internal/documentation/doc-comments.md +1 -1
- data/lib/roast/cog/config.rb +307 -0
- data/lib/roast/cog/input.rb +71 -0
- data/lib/roast/cog/output.rb +311 -0
- data/lib/roast/cog/registry.rb +69 -0
- data/lib/roast/cog/stack.rb +20 -0
- data/lib/roast/cog/store.rb +27 -0
- data/lib/roast/cog.rb +145 -0
- data/lib/roast/cog_input_context.rb +34 -0
- data/lib/roast/cog_input_manager.rb +225 -0
- data/lib/roast/cogs/agent/config.rb +507 -0
- data/lib/roast/cogs/agent/input.rb +79 -0
- data/lib/roast/cogs/agent/output.rb +57 -0
- data/lib/roast/cogs/agent/provider.rb +49 -0
- data/lib/roast/cogs/agent/providers/claude/claude_invocation.rb +185 -0
- data/lib/roast/cogs/agent/providers/claude/message.rb +71 -0
- data/lib/roast/cogs/agent/providers/claude/messages/assistant_message.rb +34 -0
- data/lib/roast/cogs/agent/providers/claude/messages/result_message.rb +59 -0
- data/lib/roast/cogs/agent/providers/claude/messages/system_message.rb +50 -0
- data/lib/roast/cogs/agent/providers/claude/messages/text_message.rb +34 -0
- data/lib/roast/cogs/agent/providers/claude/messages/tool_result_message.rb +45 -0
- data/lib/roast/cogs/agent/providers/claude/messages/tool_use_message.rb +44 -0
- data/lib/roast/cogs/agent/providers/claude/messages/unknown_message.rb +25 -0
- data/lib/roast/cogs/agent/providers/claude/messages/user_message.rb +35 -0
- data/lib/roast/cogs/agent/providers/claude/tool_result.rb +49 -0
- data/lib/roast/cogs/agent/providers/claude/tool_use.rb +46 -0
- data/lib/roast/cogs/agent/providers/claude.rb +29 -0
- data/lib/roast/cogs/agent/stats.rb +90 -0
- data/lib/roast/cogs/agent/usage.rb +60 -0
- data/lib/roast/cogs/agent.rb +73 -0
- data/lib/roast/cogs/chat/config.rb +451 -0
- data/lib/roast/cogs/chat/input.rb +90 -0
- data/lib/roast/cogs/chat/output.rb +62 -0
- data/lib/roast/cogs/chat/session.rb +66 -0
- data/lib/roast/cogs/chat.rb +79 -0
- data/lib/roast/cogs/cmd.rb +320 -0
- data/lib/roast/cogs/ruby.rb +169 -0
- data/lib/roast/command_runner.rb +189 -0
- data/lib/roast/config_context.rb +7 -0
- data/lib/roast/config_manager.rb +141 -0
- data/lib/roast/control_flow.rb +39 -0
- data/lib/roast/execution_context.rb +7 -0
- data/lib/roast/execution_manager.rb +265 -0
- data/lib/roast/log.rb +77 -0
- data/lib/roast/system_cog/params.rb +30 -0
- data/lib/roast/system_cog.rb +34 -0
- data/lib/roast/system_cogs/call.rb +161 -0
- data/lib/roast/system_cogs/map.rb +452 -0
- data/lib/roast/system_cogs/repeat.rb +240 -0
- data/lib/roast/version.rb +1 -1
- data/lib/roast/workflow.rb +116 -1
- data/lib/roast/workflow_context.rb +22 -0
- data/lib/roast/workflow_params.rb +22 -0
- data/lib/roast.rb +24 -329
- data/roast-ai.gemspec +3 -11
- data/sorbet/config +1 -1
- data/sorbet/rbi/gems/{faraday-net_http@3.4.1.rbi → faraday-net_http@3.4.2.rbi} +23 -23
- data/sorbet/rbi/gems/{faraday@2.13.1.rbi → faraday@2.14.1.rbi} +76 -59
- data/sorbet/rbi/gems/{json@2.12.2.rbi → json@2.18.1.rbi} +173 -106
- data/sorbet/rbi/gems/{net-http@0.6.0.rbi → net-http@0.9.1.rbi} +387 -338
- data/sorbet/rbi/gems/{sqlite3@2.7.0.rbi → sqlite3@2.9.0.rbi} +2 -0
- data/sorbet/rbi/gems/{uri@1.0.3.rbi → uri@1.1.1.rbi} +175 -119
- data/sorbet/rbi/shims/lib/roast/cog_input_context.rbi +1198 -0
- data/sorbet/rbi/shims/lib/roast/config_context.rbi +323 -0
- data/sorbet/rbi/shims/lib/roast/execution_context.rbi +496 -0
- data/sorbet/tapioca/require.rb +3 -18
- data/{dsl/tutorial → tutorial}/01_your_first_workflow/README.md +3 -3
- data/{dsl/tutorial → tutorial}/01_your_first_workflow/configured_chat.rb +1 -1
- data/{dsl/tutorial → tutorial}/01_your_first_workflow/hello.rb +1 -1
- data/{dsl/tutorial → tutorial}/02_chaining_cogs/README.md +3 -3
- data/{dsl/tutorial → tutorial}/02_chaining_cogs/code_review.rb +1 -1
- data/{dsl/tutorial → tutorial}/02_chaining_cogs/session_resumption.rb +1 -1
- data/{dsl/tutorial → tutorial}/02_chaining_cogs/simple_chain.rb +1 -1
- data/{dsl/tutorial → tutorial}/03_targets_and_params/README.md +13 -13
- data/{dsl/tutorial → tutorial}/03_targets_and_params/multiple_targets.rb +4 -4
- data/{dsl/tutorial → tutorial}/03_targets_and_params/single_target.rb +2 -2
- data/{dsl/tutorial → tutorial}/04_configuration_options/README.md +2 -2
- data/{dsl/tutorial → tutorial}/04_configuration_options/control_display_and_temperature.rb +1 -1
- data/{dsl/tutorial → tutorial}/04_configuration_options/simple_config.rb +1 -1
- data/{dsl/tutorial → tutorial}/05_control_flow/README.md +2 -2
- data/{dsl/tutorial → tutorial}/05_control_flow/conditional_execution.rb +1 -1
- data/{dsl/tutorial → tutorial}/05_control_flow/handling_failures.rb +1 -1
- data/{dsl/tutorial → tutorial}/06_reusable_scopes/README.md +3 -3
- data/{dsl/tutorial → tutorial}/06_reusable_scopes/accessing_scope_outputs.rb +1 -1
- data/{dsl/tutorial → tutorial}/06_reusable_scopes/basic_scope.rb +1 -1
- data/{dsl/tutorial → tutorial}/06_reusable_scopes/parameterized_scope.rb +1 -1
- data/{dsl/tutorial → tutorial}/07_processing_collections/README.md +2 -2
- data/{dsl/tutorial → tutorial}/07_processing_collections/basic_map.rb +1 -1
- data/{dsl/tutorial → tutorial}/07_processing_collections/parallel_map.rb +1 -1
- data/{dsl/tutorial → tutorial}/08_iterative_workflows/README.md +2 -2
- data/{dsl/tutorial → tutorial}/08_iterative_workflows/basic_repeat.rb +1 -1
- data/{dsl/tutorial → tutorial}/08_iterative_workflows/conditional_break.rb +1 -1
- data/{dsl/tutorial → tutorial}/09_async_cogs/README.md +3 -3
- data/{dsl/tutorial → tutorial}/09_async_cogs/basic_async.rb +1 -1
- data/{dsl/tutorial → tutorial}/README.md +2 -2
- metadata +136 -427
- data/.claude/settings.json +0 -12
- data/CLAUDE.md +0 -267
- data/CLAUDE_NOTES.md +0 -68
- data/README_LEGACY.md +0 -1464
- data/claude-swarm.yml +0 -210
- data/examples/README.md +0 -9
- data/examples/available_tools_demo/README.md +0 -42
- data/examples/available_tools_demo/analyze_files/prompt.md +0 -6
- data/examples/available_tools_demo/explore_directory/prompt.md +0 -6
- data/examples/available_tools_demo/workflow.yml +0 -32
- data/examples/available_tools_demo/write_summary/prompt.md +0 -6
- data/examples/basic_prompt_workflow/workflow.md +0 -1
- data/examples/basic_prompt_workflow/workflow.yml +0 -14
- data/examples/grading/README.md +0 -46
- data/examples/grading/analyze_coverage/prompt.md +0 -52
- data/examples/grading/calculate_final_grade.rb +0 -64
- data/examples/grading/format_result.rb +0 -61
- data/examples/grading/generate_grades/prompt.md +0 -105
- data/examples/grading/generate_recommendations/output.txt +0 -17
- data/examples/grading/generate_recommendations/prompt.md +0 -60
- data/examples/grading/read_dependencies/prompt.md +0 -15
- data/examples/grading/verify_mocks_and_stubs/prompt.md +0 -12
- data/examples/grading/verify_test_helpers/prompt.md +0 -53
- data/examples/grading/workflow.md +0 -5
- data/examples/grading/workflow.yml +0 -28
- data/gemfiles/activesupport7.gemfile +0 -4
- data/gemfiles/activesupport8.gemfile +0 -4
- data/lib/roast/dsl/cog/config.rb +0 -309
- data/lib/roast/dsl/cog/input.rb +0 -73
- data/lib/roast/dsl/cog/output.rb +0 -313
- data/lib/roast/dsl/cog/registry.rb +0 -71
- data/lib/roast/dsl/cog/stack.rb +0 -22
- data/lib/roast/dsl/cog/store.rb +0 -29
- data/lib/roast/dsl/cog.rb +0 -147
- data/lib/roast/dsl/cog_input_context.rb +0 -44
- data/lib/roast/dsl/cog_input_manager.rb +0 -156
- data/lib/roast/dsl/cogs/agent/config.rb +0 -509
- data/lib/roast/dsl/cogs/agent/input.rb +0 -81
- data/lib/roast/dsl/cogs/agent/output.rb +0 -59
- data/lib/roast/dsl/cogs/agent/provider.rb +0 -51
- data/lib/roast/dsl/cogs/agent/providers/claude/claude_invocation.rb +0 -187
- data/lib/roast/dsl/cogs/agent/providers/claude/message.rb +0 -73
- data/lib/roast/dsl/cogs/agent/providers/claude/messages/assistant_message.rb +0 -36
- data/lib/roast/dsl/cogs/agent/providers/claude/messages/result_message.rb +0 -61
- data/lib/roast/dsl/cogs/agent/providers/claude/messages/system_message.rb +0 -47
- data/lib/roast/dsl/cogs/agent/providers/claude/messages/text_message.rb +0 -36
- data/lib/roast/dsl/cogs/agent/providers/claude/messages/tool_result_message.rb +0 -47
- data/lib/roast/dsl/cogs/agent/providers/claude/messages/tool_use_message.rb +0 -46
- data/lib/roast/dsl/cogs/agent/providers/claude/messages/unknown_message.rb +0 -27
- data/lib/roast/dsl/cogs/agent/providers/claude/messages/user_message.rb +0 -37
- data/lib/roast/dsl/cogs/agent/providers/claude/tool_result.rb +0 -51
- data/lib/roast/dsl/cogs/agent/providers/claude/tool_use.rb +0 -48
- data/lib/roast/dsl/cogs/agent/providers/claude.rb +0 -31
- data/lib/roast/dsl/cogs/agent/stats.rb +0 -92
- data/lib/roast/dsl/cogs/agent/usage.rb +0 -62
- data/lib/roast/dsl/cogs/agent.rb +0 -75
- data/lib/roast/dsl/cogs/chat/config.rb +0 -453
- data/lib/roast/dsl/cogs/chat/input.rb +0 -92
- data/lib/roast/dsl/cogs/chat/output.rb +0 -64
- data/lib/roast/dsl/cogs/chat/session.rb +0 -68
- data/lib/roast/dsl/cogs/chat.rb +0 -81
- data/lib/roast/dsl/cogs/cmd.rb +0 -322
- data/lib/roast/dsl/cogs/ruby.rb +0 -171
- data/lib/roast/dsl/command_runner.rb +0 -191
- data/lib/roast/dsl/config_context.rb +0 -9
- data/lib/roast/dsl/config_manager.rb +0 -143
- data/lib/roast/dsl/control_flow.rb +0 -41
- data/lib/roast/dsl/execution_context.rb +0 -9
- data/lib/roast/dsl/execution_manager.rb +0 -267
- data/lib/roast/dsl/system_cog/params.rb +0 -32
- data/lib/roast/dsl/system_cog.rb +0 -36
- data/lib/roast/dsl/system_cogs/call.rb +0 -163
- data/lib/roast/dsl/system_cogs/map.rb +0 -454
- data/lib/roast/dsl/system_cogs/repeat.rb +0 -242
- data/lib/roast/dsl/workflow.rb +0 -123
- data/lib/roast/dsl/workflow_context.rb +0 -20
- data/lib/roast/dsl/workflow_params.rb +0 -24
- data/lib/roast/dsl.rb +0 -7
- data/lib/roast/errors.rb +0 -15
- data/lib/roast/factories/api_provider_factory.rb +0 -62
- data/lib/roast/graph/edge.rb +0 -25
- data/lib/roast/graph/node.rb +0 -40
- data/lib/roast/graph/quantum_edge.rb +0 -27
- data/lib/roast/graph/threaded_exec.rb +0 -93
- data/lib/roast/graph.rb +0 -233
- data/lib/roast/helpers/cmd_runner.rb +0 -199
- data/lib/roast/helpers/function_caching_interceptor.rb +0 -88
- data/lib/roast/helpers/logger.rb +0 -78
- data/lib/roast/helpers/metadata_access.rb +0 -40
- data/lib/roast/helpers/minitest_coverage_runner.rb +0 -244
- data/lib/roast/helpers/path_resolver.rb +0 -138
- data/lib/roast/helpers/prompt_loader.rb +0 -146
- data/lib/roast/initializers.rb +0 -40
- data/lib/roast/resources/api_resource.rb +0 -134
- data/lib/roast/resources/base_resource.rb +0 -55
- data/lib/roast/resources/directory_resource.rb +0 -41
- data/lib/roast/resources/file_resource.rb +0 -34
- data/lib/roast/resources/none_resource.rb +0 -30
- data/lib/roast/resources/url_resource.rb +0 -61
- data/lib/roast/resources.rb +0 -91
- data/lib/roast/services/context_threshold_checker.rb +0 -43
- data/lib/roast/services/token_counting_service.rb +0 -45
- data/lib/roast/sorbet_runtime_stub.rb +0 -154
- data/lib/roast/tools/apply_diff.rb +0 -127
- data/lib/roast/tools/ask_user.rb +0 -39
- data/lib/roast/tools/bash.rb +0 -66
- data/lib/roast/tools/cmd.rb +0 -176
- data/lib/roast/tools/coding_agent.rb +0 -269
- data/lib/roast/tools/context_summarizer.rb +0 -109
- data/lib/roast/tools/grep.rb +0 -58
- data/lib/roast/tools/helpers/coding_agent_message_formatter.rb +0 -85
- data/lib/roast/tools/read_file.rb +0 -50
- data/lib/roast/tools/search_file.rb +0 -69
- data/lib/roast/tools/swarm.rb +0 -120
- data/lib/roast/tools/update_files.rb +0 -410
- data/lib/roast/tools/write_file.rb +0 -60
- data/lib/roast/tools.rb +0 -75
- data/lib/roast/value_objects/api_token.rb +0 -50
- data/lib/roast/value_objects/step_name.rb +0 -51
- data/lib/roast/value_objects/uri_base.rb +0 -50
- data/lib/roast/value_objects/workflow_path.rb +0 -76
- data/lib/roast/value_objects.rb +0 -7
- data/lib/roast/workflow/agent_step.rb +0 -87
- data/lib/roast/workflow/api_configuration.rb +0 -66
- data/lib/roast/workflow/base_iteration_step.rb +0 -183
- data/lib/roast/workflow/base_step.rb +0 -150
- data/lib/roast/workflow/base_workflow.rb +0 -202
- data/lib/roast/workflow/case_executor.rb +0 -49
- data/lib/roast/workflow/case_step.rb +0 -79
- data/lib/roast/workflow/command_executor.rb +0 -92
- data/lib/roast/workflow/conditional_executor.rb +0 -50
- data/lib/roast/workflow/conditional_step.rb +0 -56
- data/lib/roast/workflow/configuration.rb +0 -110
- data/lib/roast/workflow/configuration_loader.rb +0 -214
- data/lib/roast/workflow/context_manager.rb +0 -90
- data/lib/roast/workflow/context_path_resolver.rb +0 -44
- data/lib/roast/workflow/dot_access_hash.rb +0 -214
- data/lib/roast/workflow/each_step.rb +0 -89
- data/lib/roast/workflow/error_handler.rb +0 -147
- data/lib/roast/workflow/expression_evaluator.rb +0 -84
- data/lib/roast/workflow/expression_utils.rb +0 -37
- data/lib/roast/workflow/file_state_repository.rb +0 -152
- data/lib/roast/workflow/input_executor.rb +0 -42
- data/lib/roast/workflow/input_step.rb +0 -166
- data/lib/roast/workflow/interpolator.rb +0 -57
- data/lib/roast/workflow/iteration_executor.rb +0 -104
- data/lib/roast/workflow/llm_boolean_coercer.rb +0 -56
- data/lib/roast/workflow/metadata_manager.rb +0 -48
- data/lib/roast/workflow/output_handler.rb +0 -35
- data/lib/roast/workflow/output_manager.rb +0 -75
- data/lib/roast/workflow/parallel_executor.rb +0 -50
- data/lib/roast/workflow/prompt_step.rb +0 -20
- data/lib/roast/workflow/repeat_step.rb +0 -76
- data/lib/roast/workflow/replay_handler.rb +0 -129
- data/lib/roast/workflow/resource_resolver.rb +0 -70
- data/lib/roast/workflow/session_manager.rb +0 -84
- data/lib/roast/workflow/shell_script_step.rb +0 -116
- data/lib/roast/workflow/sqlite_state_repository.rb +0 -343
- data/lib/roast/workflow/state_manager.rb +0 -104
- data/lib/roast/workflow/state_repository.rb +0 -22
- data/lib/roast/workflow/state_repository_factory.rb +0 -38
- data/lib/roast/workflow/step_completion_reporter.rb +0 -28
- data/lib/roast/workflow/step_executor_coordinator.rb +0 -319
- data/lib/roast/workflow/step_executor_factory.rb +0 -43
- data/lib/roast/workflow/step_executor_registry.rb +0 -75
- data/lib/roast/workflow/step_executor_with_reporting.rb +0 -69
- data/lib/roast/workflow/step_executors/base_step_executor.rb +0 -24
- data/lib/roast/workflow/step_executors/hash_step_executor.rb +0 -41
- data/lib/roast/workflow/step_executors/parallel_step_executor.rb +0 -52
- data/lib/roast/workflow/step_executors/string_step_executor.rb +0 -28
- data/lib/roast/workflow/step_factory.rb +0 -57
- data/lib/roast/workflow/step_finder.rb +0 -98
- data/lib/roast/workflow/step_loader.rb +0 -263
- data/lib/roast/workflow/step_name_extractor.rb +0 -85
- data/lib/roast/workflow/step_runner.rb +0 -24
- data/lib/roast/workflow/step_type_resolver.rb +0 -161
- data/lib/roast/workflow/validation_command.rb +0 -198
- data/lib/roast/workflow/validator.rb +0 -34
- data/lib/roast/workflow/validators/base_validator.rb +0 -45
- data/lib/roast/workflow/validators/dependency_validator.rb +0 -224
- data/lib/roast/workflow/validators/linting_validator.rb +0 -114
- data/lib/roast/workflow/validators/schema_validator.rb +0 -91
- data/lib/roast/workflow/validators/step_collector.rb +0 -58
- data/lib/roast/workflow/validators/validation_orchestrator.rb +0 -53
- data/lib/roast/workflow/workflow_context.rb +0 -61
- data/lib/roast/workflow/workflow_execution_context.rb +0 -38
- data/lib/roast/workflow/workflow_executor.rb +0 -130
- data/lib/roast/workflow/workflow_initializer.rb +0 -284
- data/lib/roast/workflow/workflow_runner.rb +0 -218
- data/lib/roast/workflow_diagram_generator.rb +0 -299
- data/rubocop/cop/roast/use_cmd_runner.rb +0 -93
- data/rubocop/cop/roast.rb +0 -4
- data/schema/workflow.json +0 -352
- data/sorbet/rbi/gems/cli-kit@5.2.0.rbi +0 -2063
- data/sorbet/rbi/gems/cli-ui@2.7.0-6bdefd1d06305e5d6ae312ac76f9c88f88658dda.rbi +0 -3586
- data/sorbet/rbi/gems/diff-lcs@1.6.2.rbi +0 -972
- data/sorbet/rbi/gems/dotenv@3.1.8.rbi +0 -295
- data/sorbet/rbi/gems/json-schema@5.1.1.rbi +0 -1466
- data/sorbet/rbi/gems/open_router@0.3.3.rbi +0 -230
- data/sorbet/rbi/gems/raix@1.0.2.rbi +0 -1104
- data/sorbet/rbi/gems/ruby-graphviz@1.2.5.rbi +0 -1333
- data/sorbet/rbi/gems/ruby-openai@8.1.0.rbi +0 -758
- data/sorbet/rbi/shims/lib/roast/dsl/cog_input_context.rbi +0 -1197
- data/sorbet/rbi/shims/lib/roast/dsl/config_context.rbi +0 -325
- data/sorbet/rbi/shims/lib/roast/dsl/execution_context.rbi +0 -498
- /data/{dsl → examples}/plugin-gem-example/.gitignore +0 -0
- /data/{dsl → examples}/plugin-gem-example/lib/plugin_gem_example.rb +0 -0
- /data/{dsl → examples}/plugin-gem-example/lib/version.rb +0 -0
- /data/{dsl → examples}/prompts/simple_prompt.md.erb +0 -0
- /data/{dsl → examples}/temperature.rb +0 -0
- /data/lib/roast/{dsl/nil_assertions.rb → nil_assertions.rb} +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d4c094250ff4a6e6203bda03a81547200c3d1b4f73899f597b359873648a6b5f
|
|
4
|
+
data.tar.gz: e033a49f41382b91b8569924124a86d84e423fafad502111a72f77febab05516
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: bbecea0581d3f1eec9e36b7885e2d67b7a5c5591d98d59fefa3717b5373c169caf8ed7b6f2c1bed679d36cc33523910a86727c28272776d7c31370004dd69ffa
|
|
7
|
+
data.tar.gz: 907636c73cc87935c25fbcbcd207b3824aec58db6531d07d1603417e9568cf0740a475b0cc1aa95ae0fb5c1fc310a90f5c4aa703aae26527a6100e210279376b
|
|
@@ -4,7 +4,7 @@ Write documentation comments for public methods in the specified file or class.
|
|
|
4
4
|
|
|
5
5
|
Accepts either:
|
|
6
6
|
- A file path, like `lib/roast/dsl/cogs/chat/config.rb`
|
|
7
|
-
- A class name, like `Roast::
|
|
7
|
+
- A class name, like `Roast::Cogs::Chat::Config`
|
|
8
8
|
|
|
9
9
|
## Task
|
|
10
10
|
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
Write tests for classes that do not have test coverage.
|
|
2
|
+
|
|
3
|
+
## Arguments
|
|
4
|
+
|
|
5
|
+
Accepts either:
|
|
6
|
+
- A file path, like `lib/roast/cog_input_context.rb`
|
|
7
|
+
- A class name, like `Roast::CogInputContext`
|
|
8
|
+
|
|
9
|
+
## Task
|
|
10
|
+
|
|
11
|
+
1. **Locate the source file:**
|
|
12
|
+
- If given a class name, find the corresponding file in `lib/`
|
|
13
|
+
- Read the source file to understand the class's behavior
|
|
14
|
+
|
|
15
|
+
2. **Check for existing tests:**
|
|
16
|
+
- Search `test/` for existing test files for this class
|
|
17
|
+
- If tests exist, identify gaps in coverage
|
|
18
|
+
|
|
19
|
+
3. **Study project test patterns:**
|
|
20
|
+
- Look at similar test files in `test/roast/` to understand conventions
|
|
21
|
+
- Note the test framework (ActiveSupport::TestCase) and assertion styles
|
|
22
|
+
|
|
23
|
+
4. **Write the tests:**
|
|
24
|
+
- Create the test file at the appropriate location (e.g., `test/roast/<filename>_test.rb`)
|
|
25
|
+
- Test only behavior defined in the class itself, not inherited behavior
|
|
26
|
+
- Test each public method with representative cases
|
|
27
|
+
- Test edge cases (nil arguments, error conditions, etc.)
|
|
28
|
+
|
|
29
|
+
5. **Run the tests:**
|
|
30
|
+
- Execute the test file to verify all tests pass
|
|
31
|
+
- Fix any failures before completing
|
|
32
|
+
|
|
33
|
+
## Important Constraints
|
|
34
|
+
|
|
35
|
+
- **Avoid mocking direct dependencies** - use real instances where possible
|
|
36
|
+
- **Simple mocks are acceptable for second-order dependencies** (dependencies of dependencies)
|
|
37
|
+
- **Do not test inherited behavior** - only test methods defined in the class itself
|
|
38
|
+
- **Do not test type signatures** - Sorbet handles type checking, so don't test that methods return the correct type (e.g., `assert_instance_of String, @context.tmpdir`)
|
|
39
|
+
- **Do not test class hierarchies** - Don't test inheritance relationships like "InputError is a subclass of Roast::Error". These are not useful tests.
|
|
40
|
+
- **Do not test simple data classes** - Classes that only have `attr_reader`/`attr_accessor` and an initializer don't need tests unless they have complex initialization logic
|
|
41
|
+
- **Follow existing test conventions** in the project
|
|
42
|
+
|
|
43
|
+
## Test Helpers
|
|
44
|
+
|
|
45
|
+
### `TestCogSupport` (from `test/support/test_cog.rb`)
|
|
46
|
+
|
|
47
|
+
Shared test cog infrastructure. Use this when you need a generic cog for integration testing instead of defining your own. Provides:
|
|
48
|
+
|
|
49
|
+
- `TestCogSupport::TestInput` - A `Cog::Input` with `value` accessor, validation, and coercion
|
|
50
|
+
- `TestCogSupport::TestOutput` - A `Cog::Output` with a `value` reader
|
|
51
|
+
- `TestCogSupport::TestCog` - A `Cog` subclass that executes input into output, with its own `Config` and `Input` classes
|
|
52
|
+
|
|
53
|
+
Use these directly or alias them in your test class:
|
|
54
|
+
|
|
55
|
+
```ruby
|
|
56
|
+
class MyTest < ActiveSupport::TestCase
|
|
57
|
+
# For integration tests that need a cog registered in a Registry:
|
|
58
|
+
def setup
|
|
59
|
+
@registry = Cog::Registry.new
|
|
60
|
+
@registry.use(TestCogSupport::TestCog)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# For SystemCog subclasses that need a concrete Input:
|
|
64
|
+
class TestSystemCog < SystemCog
|
|
65
|
+
class Input < TestCogSupport::TestInput; end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Only define a custom test cog when the class under test requires specific Config fields (e.g., `field :timeout, 30`) that `Cog::Config` doesn't provide.
|
|
71
|
+
|
|
72
|
+
### `run_cog(cog, config: nil, scope_value: nil, scope_index: 0)`
|
|
73
|
+
|
|
74
|
+
Run a cog through the full async execution path for integration testing. Use this when testing cog execution rather than testing individual Input/Output/Config classes in isolation.
|
|
75
|
+
|
|
76
|
+
```ruby
|
|
77
|
+
test "cog executes and returns expected output" do
|
|
78
|
+
cog = MyCog.new(:test_cog, ->(_input, _scope, _index) { "some value" })
|
|
79
|
+
|
|
80
|
+
run_cog(cog)
|
|
81
|
+
|
|
82
|
+
assert cog.succeeded?
|
|
83
|
+
assert_equal "expected", cog.output.value
|
|
84
|
+
end
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Parameters:
|
|
88
|
+
- `cog` - The cog instance to run
|
|
89
|
+
- `config:` - Optional config (defaults to cog's config class)
|
|
90
|
+
- `scope_value:` - Optional executor scope value passed to input proc
|
|
91
|
+
- `scope_index:` - Optional executor scope index passed to input proc
|
|
92
|
+
|
|
93
|
+
## Style Rules
|
|
94
|
+
|
|
95
|
+
- Do NOT use `%w[]` word arrays — use `["a", "b"]` bracket style
|
|
96
|
+
- Do NOT add section comments (e.g., `# --- Config ---`) in test files
|
|
97
|
+
- Use `class << self` for class method definitions, not `def self.method_name`
|
|
98
|
+
- Use Ruby 1.9 hash syntax (`key:` not `:key =>`)
|
|
99
|
+
|
|
100
|
+
## Test File Structure
|
|
101
|
+
|
|
102
|
+
```ruby
|
|
103
|
+
# frozen_string_literal: true
|
|
104
|
+
|
|
105
|
+
require "test_helper"
|
|
106
|
+
|
|
107
|
+
module Roast
|
|
108
|
+
class <ClassName>Test < ActiveSupport::TestCase
|
|
109
|
+
def setup
|
|
110
|
+
# Create instance and any required fixtures
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
def teardown
|
|
114
|
+
# Clean up temporary resources if needed
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
test "method_name does expected behavior" do
|
|
118
|
+
# Arrange, Act, Assert
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
end
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## Immediate Instructions
|
|
125
|
+
|
|
126
|
+
Write tests for: $ARGUMENTS
|
data/.github/workflows/ci.yaml
CHANGED
|
@@ -14,27 +14,15 @@ env:
|
|
|
14
14
|
CI: true
|
|
15
15
|
|
|
16
16
|
jobs:
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
fail-fast: false
|
|
20
|
-
matrix:
|
|
21
|
-
os: [ubuntu]
|
|
22
|
-
ruby: ['3.2', '3.3', '3.4']
|
|
23
|
-
gemfile: ['activesupport7', 'activesupport8']
|
|
24
|
-
runs-on: ${{ matrix.os }}-latest
|
|
25
|
-
env:
|
|
26
|
-
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.gemfile }}.gemfile
|
|
17
|
+
ci:
|
|
18
|
+
runs-on: ubuntu-latest
|
|
27
19
|
steps:
|
|
28
20
|
- uses: actions/checkout@v4
|
|
29
21
|
- name: Install dependencies
|
|
30
22
|
run: sudo apt-get update && sudo apt-get install -y ripgrep graphviz wamerican
|
|
31
23
|
- uses: ruby/setup-ruby@v1
|
|
32
24
|
with:
|
|
33
|
-
ruby-version: ${{ matrix.ruby }}
|
|
34
25
|
bundler-cache: true
|
|
35
26
|
- run: bundle exec rake sorbet
|
|
36
27
|
- run: bundle exec rake rubocop_ci
|
|
37
|
-
- run: bundle exec rake
|
|
38
|
-
- run: bundle exec rake minitest_dsl_slow
|
|
39
|
-
- run: bundle exec rake minitest_functional
|
|
40
|
-
- run: bundle exec rake minitest_old
|
|
28
|
+
- run: bundle exec rake test
|
data/.rubocop.yml
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
inherit_from: .rubocop_todo.yml
|
|
2
2
|
|
|
3
|
-
require:
|
|
4
|
-
- ./rubocop/cop/roast
|
|
5
|
-
|
|
6
3
|
plugins:
|
|
7
4
|
- rubocop-sorbet
|
|
8
5
|
|
|
@@ -33,13 +30,6 @@ Sorbet/FalseSigil:
|
|
|
33
30
|
- "examples/**/*"
|
|
34
31
|
- "lib/roast/sorbet_runtime_stub.rb"
|
|
35
32
|
|
|
36
|
-
Roast/UseCmdRunner:
|
|
37
|
-
Enabled: true
|
|
38
|
-
Exclude:
|
|
39
|
-
- 'lib/roast/helpers/cmd_runner.rb'
|
|
40
|
-
- 'lib/roast/dsl/command_runner.rb'
|
|
41
|
-
- 'roast-ai.gemspec'
|
|
42
|
-
|
|
43
33
|
Style/MethodCallWithArgsParentheses:
|
|
44
34
|
Enabled: true
|
|
45
35
|
Exclude:
|
data/Gemfile
CHANGED
|
@@ -7,10 +7,6 @@ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
|
|
|
7
7
|
# Specify your gem's dependencies in roast-ai.gemspec
|
|
8
8
|
gemspec
|
|
9
9
|
|
|
10
|
-
# TODO: remove this version pin when the next cli-ui version is released with this circular dependency fix
|
|
11
|
-
# https://github.com/Shopify/cli-ui/pull/606
|
|
12
|
-
gem "cli-ui", github: "Shopify/cli-ui", branch: "main"
|
|
13
|
-
|
|
14
10
|
group :development, :test do
|
|
15
11
|
gem "guard-minitest"
|
|
16
12
|
gem "guard"
|
|
@@ -22,6 +18,7 @@ group :development, :test do
|
|
|
22
18
|
gem "rubocop-sorbet", require: false
|
|
23
19
|
gem "simplecov", require: false
|
|
24
20
|
gem "sorbet", "~> 0.5.12414", require: false
|
|
21
|
+
gem "sqlite3", require: false
|
|
25
22
|
gem "tapioca", "~> 0.16.11", require: false
|
|
26
23
|
gem "vcr", require: false
|
|
27
24
|
gem "webmock", require: false
|
data/Gemfile.lock
CHANGED
|
@@ -1,27 +1,10 @@
|
|
|
1
|
-
GIT
|
|
2
|
-
remote: https://github.com/Shopify/cli-ui
|
|
3
|
-
revision: 6bdefd1d06305e5d6ae312ac76f9c88f88658dda
|
|
4
|
-
branch: main
|
|
5
|
-
specs:
|
|
6
|
-
cli-ui (2.7.0)
|
|
7
|
-
|
|
8
1
|
PATH
|
|
9
2
|
remote: .
|
|
10
3
|
specs:
|
|
11
|
-
roast-ai (0.
|
|
12
|
-
activesupport (
|
|
4
|
+
roast-ai (1.0.0.pre.rc2)
|
|
5
|
+
activesupport (~> 8.0)
|
|
13
6
|
async (>= 2.34)
|
|
14
|
-
benchmark (>= 0.4.1)
|
|
15
|
-
cli-kit (>= 5.2)
|
|
16
|
-
cli-ui (>= 2.7)
|
|
17
|
-
diff-lcs (>= 1.5)
|
|
18
|
-
json-schema (>= 5.1)
|
|
19
|
-
open_router (>= 0.3)
|
|
20
|
-
raix (~> 1.0.2)
|
|
21
|
-
rake (>= 13.3.0)
|
|
22
|
-
ruby-graphviz (>= 1.2)
|
|
23
7
|
ruby_llm (>= 1.8)
|
|
24
|
-
sqlite3 (>= 2.6)
|
|
25
8
|
thor (>= 1.3)
|
|
26
9
|
zeitwerk (>= 2.6)
|
|
27
10
|
|
|
@@ -53,8 +36,6 @@ GEM
|
|
|
53
36
|
base64 (0.3.0)
|
|
54
37
|
benchmark (0.4.1)
|
|
55
38
|
bigdecimal (3.2.2)
|
|
56
|
-
cli-kit (5.2.0)
|
|
57
|
-
cli-ui (~> 2.4)
|
|
58
39
|
coderay (1.1.3)
|
|
59
40
|
concurrent-ruby (1.3.5)
|
|
60
41
|
connection_pool (2.5.3)
|
|
@@ -65,20 +46,18 @@ GEM
|
|
|
65
46
|
crack (1.0.0)
|
|
66
47
|
bigdecimal
|
|
67
48
|
rexml
|
|
68
|
-
diff-lcs (1.6.2)
|
|
69
49
|
docile (1.4.1)
|
|
70
|
-
dotenv (3.1.8)
|
|
71
50
|
drb (2.2.3)
|
|
72
51
|
erubi (1.13.1)
|
|
73
52
|
event_stream_parser (1.0.0)
|
|
74
|
-
faraday (2.
|
|
53
|
+
faraday (2.14.1)
|
|
75
54
|
faraday-net_http (>= 2.0, < 3.5)
|
|
76
55
|
json
|
|
77
56
|
logger
|
|
78
57
|
faraday-multipart (1.1.1)
|
|
79
58
|
multipart-post (~> 2.0)
|
|
80
|
-
faraday-net_http (3.4.
|
|
81
|
-
net-http (
|
|
59
|
+
faraday-net_http (3.4.2)
|
|
60
|
+
net-http (~> 0.5)
|
|
82
61
|
faraday-retry (2.3.2)
|
|
83
62
|
faraday (~> 2.0)
|
|
84
63
|
ffi (1.17.2-arm64-darwin)
|
|
@@ -107,10 +86,7 @@ GEM
|
|
|
107
86
|
i18n (1.14.7)
|
|
108
87
|
concurrent-ruby (~> 1.0)
|
|
109
88
|
io-event (1.14.0)
|
|
110
|
-
json (2.
|
|
111
|
-
json-schema (5.1.1)
|
|
112
|
-
addressable (~> 2.8)
|
|
113
|
-
bigdecimal (~> 3.1)
|
|
89
|
+
json (2.18.1)
|
|
114
90
|
language_server-protocol (3.17.0.5)
|
|
115
91
|
lint_roller (1.1.0)
|
|
116
92
|
listen (3.9.0)
|
|
@@ -128,17 +104,12 @@ GEM
|
|
|
128
104
|
ruby2_keywords (>= 0.0.5)
|
|
129
105
|
multipart-post (2.4.1)
|
|
130
106
|
nenv (0.3.0)
|
|
131
|
-
net-http (0.
|
|
132
|
-
uri
|
|
107
|
+
net-http (0.9.1)
|
|
108
|
+
uri (>= 0.11.1)
|
|
133
109
|
netrc (0.11.0)
|
|
134
110
|
notiffany (0.1.3)
|
|
135
111
|
nenv (~> 0.1)
|
|
136
112
|
shellany (~> 0.0)
|
|
137
|
-
open_router (0.3.3)
|
|
138
|
-
activesupport (>= 6.0)
|
|
139
|
-
dotenv (>= 2)
|
|
140
|
-
faraday (>= 1)
|
|
141
|
-
faraday-multipart (>= 1)
|
|
142
113
|
ostruct (0.6.2)
|
|
143
114
|
parallel (1.27.0)
|
|
144
115
|
parser (3.3.8.0)
|
|
@@ -151,12 +122,6 @@ GEM
|
|
|
151
122
|
public_suffix (6.0.2)
|
|
152
123
|
racc (1.8.1)
|
|
153
124
|
rainbow (3.1.1)
|
|
154
|
-
raix (1.0.2)
|
|
155
|
-
activesupport (>= 6.0)
|
|
156
|
-
faraday-retry (~> 2.0)
|
|
157
|
-
open_router (~> 0.2)
|
|
158
|
-
ostruct
|
|
159
|
-
ruby-openai (~> 8.1)
|
|
160
125
|
rake (13.3.0)
|
|
161
126
|
rb-fsevent (0.11.2)
|
|
162
127
|
rb-inotify (0.11.1)
|
|
@@ -187,12 +152,6 @@ GEM
|
|
|
187
152
|
rubocop-sorbet (0.10.5)
|
|
188
153
|
lint_roller
|
|
189
154
|
rubocop (>= 1.75.2)
|
|
190
|
-
ruby-graphviz (1.2.5)
|
|
191
|
-
rexml
|
|
192
|
-
ruby-openai (8.1.0)
|
|
193
|
-
event_stream_parser (>= 0.3.0, < 2.0.0)
|
|
194
|
-
faraday (>= 1)
|
|
195
|
-
faraday-multipart (>= 1)
|
|
196
155
|
ruby-progressbar (1.13.0)
|
|
197
156
|
ruby2_keywords (0.0.5)
|
|
198
157
|
ruby_llm (1.8.2)
|
|
@@ -227,8 +186,8 @@ GEM
|
|
|
227
186
|
rexml (>= 3.2.6)
|
|
228
187
|
sorbet-static-and-runtime (>= 0.5.10187)
|
|
229
188
|
thor (>= 0.19.2)
|
|
230
|
-
sqlite3 (2.
|
|
231
|
-
sqlite3 (2.
|
|
189
|
+
sqlite3 (2.9.0-arm64-darwin)
|
|
190
|
+
sqlite3 (2.9.0-x86_64-linux-gnu)
|
|
232
191
|
tapioca (0.16.11)
|
|
233
192
|
benchmark
|
|
234
193
|
bundler (>= 2.2.25)
|
|
@@ -246,7 +205,7 @@ GEM
|
|
|
246
205
|
unicode-display_width (3.1.4)
|
|
247
206
|
unicode-emoji (~> 4.0, >= 4.0.4)
|
|
248
207
|
unicode-emoji (4.0.4)
|
|
249
|
-
uri (1.
|
|
208
|
+
uri (1.1.1)
|
|
250
209
|
vcr (6.3.1)
|
|
251
210
|
base64
|
|
252
211
|
webmock (3.25.1)
|
|
@@ -264,7 +223,6 @@ PLATFORMS
|
|
|
264
223
|
x86_64-linux
|
|
265
224
|
|
|
266
225
|
DEPENDENCIES
|
|
267
|
-
cli-ui!
|
|
268
226
|
guard
|
|
269
227
|
guard-minitest
|
|
270
228
|
minitest (~> 5.0)
|
|
@@ -276,6 +234,7 @@ DEPENDENCIES
|
|
|
276
234
|
rubocop-sorbet
|
|
277
235
|
simplecov
|
|
278
236
|
sorbet (~> 0.5.12414)
|
|
237
|
+
sqlite3
|
|
279
238
|
tapioca (~> 0.16.11)
|
|
280
239
|
vcr
|
|
281
240
|
webmock
|
data/README.md
CHANGED
|
@@ -48,7 +48,7 @@ end
|
|
|
48
48
|
|
|
49
49
|
Run with:
|
|
50
50
|
```bash
|
|
51
|
-
bin/roast execute
|
|
51
|
+
bin/roast execute analyze_codebase.rb
|
|
52
52
|
```
|
|
53
53
|
|
|
54
54
|
## Core Cogs
|
|
@@ -82,7 +82,7 @@ gem 'roast-ai'
|
|
|
82
82
|
|
|
83
83
|
The best way to learn Roast is through the interactive tutorial:
|
|
84
84
|
|
|
85
|
-
📚 **[Start the Tutorial](https://github.com/Shopify/roast/blob/main/
|
|
85
|
+
📚 **[Start the Tutorial](https://github.com/Shopify/roast/blob/main/tutorial/README.md)**
|
|
86
86
|
|
|
87
87
|
The tutorial covers:
|
|
88
88
|
1. Your first workflow
|
|
@@ -97,9 +97,8 @@ The tutorial covers:
|
|
|
97
97
|
|
|
98
98
|
## Documentation
|
|
99
99
|
|
|
100
|
-
- [Tutorial](https://github.com/Shopify/roast/blob/main/
|
|
101
|
-
- [
|
|
102
|
-
- [API Reference](https://github.com/Shopify/roast/tree/main/sorbet/rbi/shims/lib/roast/dsl) - Complete cog documentation
|
|
100
|
+
- [Tutorial](https://github.com/Shopify/roast/blob/main/tutorial/README.md) - Step-by-step guide with examples
|
|
101
|
+
- [Workflow Examples](https://github.com/Shopify/roast/tree/main/examples) - Toy workflows that demonstrate all functional patterns, use for end-to-end test
|
|
103
102
|
|
|
104
103
|
## Documentation & References
|
|
105
104
|
|
|
@@ -113,8 +112,8 @@ The public interfaces of the new Roast are extensively documented in
|
|
|
113
112
|
class and method comments on the relevant classes.
|
|
114
113
|
|
|
115
114
|
* __Tutorial and Examples__
|
|
116
|
-
* [Tutorial -- Table of Contents](https://github.com/Shopify/roast/tree/main/
|
|
117
|
-
* [Additional Example Workflows](https://github.com/Shopify/roast/tree/main/dsl) (these comprise the Roast end-to-end test suite)
|
|
115
|
+
* [Tutorial -- Table of Contents](https://github.com/Shopify/roast/tree/main/tutorial) (contains step-by-step guides and runnable examples showing real-world usage)
|
|
116
|
+
* [Additional Example Workflows]([https://github.com/Shopify/roast/tree/main/dsl](https://github.com/Shopify/roast/tree/main/examples)) (these comprise the Roast end-to-end test suite)
|
|
118
117
|
* __Configuation__
|
|
119
118
|
* [General configuration block: `config-context.rbi`](https://github.com/Shopify/roast/blob/main/sorbet/rbi/shims/lib/roast/dsl/config_context.rbi)
|
|
120
119
|
* [Global cog configuration: `cog/config.rb`](https://github.com/Shopify/roast/blob/main/lib/roast/dsl/cog/config.rb)
|
data/Rakefile
CHANGED
|
@@ -6,45 +6,21 @@ require "rake/testtask"
|
|
|
6
6
|
|
|
7
7
|
### Test Tasks
|
|
8
8
|
|
|
9
|
-
Rake::TestTask.new(:
|
|
9
|
+
Rake::TestTask.new(:minitest_fast) do |t|
|
|
10
10
|
t.libs << "test"
|
|
11
11
|
t.libs << "lib"
|
|
12
12
|
t.test_files = FileList["test/**/*_test.rb"]
|
|
13
13
|
end
|
|
14
14
|
|
|
15
|
-
Rake::TestTask.new(:
|
|
16
|
-
t.libs << "test"
|
|
17
|
-
t.libs << "lib"
|
|
18
|
-
t.test_files = FileList["test/functional/**/*_test.rb"]
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
Rake::TestTask.new(:minitest_old) do |t|
|
|
22
|
-
t.libs << "test"
|
|
23
|
-
t.libs << "lib"
|
|
24
|
-
t.test_files = FileList["test/**/*_test.rb"].exclude(
|
|
25
|
-
"test/functional/**/*_test.rb",
|
|
26
|
-
"test/dsl/**/*_test.rb",
|
|
27
|
-
"test/roast/dsl/**/*_test.rb",
|
|
28
|
-
)
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
Rake::TestTask.new(:minitest_dsl_fast) do |t|
|
|
32
|
-
t.libs << "test"
|
|
33
|
-
t.libs << "lib"
|
|
34
|
-
t.test_files = FileList["test/dsl/**/*_test.rb", "test/roast/dsl/**/*_test.rb"]
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
Rake::TestTask.new(:minitest_dsl_slow) do |t|
|
|
15
|
+
Rake::TestTask.new(:minitest_all) do |t|
|
|
38
16
|
t.libs << "test"
|
|
39
17
|
t.libs << "lib"
|
|
40
|
-
t.test_files = FileList["test
|
|
18
|
+
t.test_files = FileList["test/**/*_test.rb"]
|
|
41
19
|
end
|
|
42
|
-
task :
|
|
20
|
+
task :set_slow_test_env do
|
|
43
21
|
ENV["ROAST_RUN_SLOW_TESTS"] = "true"
|
|
44
22
|
end
|
|
45
|
-
task
|
|
46
|
-
|
|
47
|
-
task test: [:minitest_dsl_fast, :minitest_dsl_slow, :minitest_functional, :minitest_old]
|
|
23
|
+
task minitest_all: :set_slow_test_env
|
|
48
24
|
|
|
49
25
|
### Rubocop Tasks
|
|
50
26
|
|
|
@@ -65,6 +41,8 @@ end
|
|
|
65
41
|
|
|
66
42
|
### Task Groups
|
|
67
43
|
|
|
68
|
-
task default: [:sorbet, :rubocop, :
|
|
44
|
+
task default: [:sorbet, :rubocop, :minitest_fast]
|
|
69
45
|
|
|
70
46
|
task check: [:sorbet, :rubocop]
|
|
47
|
+
|
|
48
|
+
task test: [:minitest_all]
|
data/dev.yml
CHANGED
|
@@ -11,13 +11,13 @@ up:
|
|
|
11
11
|
check:
|
|
12
12
|
style: bundle exec rake rubocop
|
|
13
13
|
tc: bundle exec rake sorbet
|
|
14
|
-
test: bundle exec rake
|
|
14
|
+
test: bundle exec rake minitest_fast
|
|
15
15
|
|
|
16
16
|
commands:
|
|
17
17
|
__default__: execute
|
|
18
18
|
execute:
|
|
19
19
|
desc: Execute a roast workflow
|
|
20
|
-
run: bundle exec roast execute
|
|
20
|
+
run: bundle exec roast execute
|
|
21
21
|
style:
|
|
22
22
|
desc: Run Rubocop style checks (and autocorrect)
|
|
23
23
|
run: bundle exec rake rubocop:autocorrect
|
|
@@ -26,4 +26,4 @@ commands:
|
|
|
26
26
|
run: bundle exec rake sorbet
|
|
27
27
|
test:
|
|
28
28
|
desc: Run all tests
|
|
29
|
-
run: bundle exec rake
|
|
29
|
+
run: bundle exec rake minitest_fast
|
data/{dsl → examples}/call.rb
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# typed: true
|
|
2
2
|
# frozen_string_literal: true
|
|
3
3
|
|
|
4
|
-
#: self as Roast::
|
|
4
|
+
#: self as Roast::Workflow
|
|
5
5
|
|
|
6
6
|
config do
|
|
7
7
|
cmd { display! }
|
|
@@ -33,7 +33,7 @@ execute do
|
|
|
33
33
|
begin
|
|
34
34
|
# There is no :to_upper cog that this could sensibly be referring to
|
|
35
35
|
cmd(:to_upper)
|
|
36
|
-
rescue Roast::
|
|
36
|
+
rescue Roast::CogInputManager::CogDoesNotExistError
|
|
37
37
|
puts "Could not access :to_upper directly"
|
|
38
38
|
end
|
|
39
39
|
|