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.
Files changed (353) hide show
  1. checksums.yaml +4 -4
  2. data/.claude/commands/docs/write-comments.md +1 -1
  3. data/.claude/commands/write-tests.md +126 -0
  4. data/.github/workflows/ci.yaml +3 -15
  5. data/.rubocop.yml +0 -10
  6. data/Gemfile +1 -4
  7. data/Gemfile.lock +12 -53
  8. data/README.md +6 -7
  9. data/Rakefile +8 -30
  10. data/dev.yml +3 -3
  11. data/{dsl → examples}/agent_sessions.rb +1 -1
  12. data/{dsl → examples}/async_cogs.rb +1 -1
  13. data/{dsl → examples}/async_cogs_complex.rb +1 -1
  14. data/{dsl → examples}/call.rb +1 -1
  15. data/{dsl → examples}/collect_from.rb +2 -2
  16. data/{dsl → examples}/demo/Gemfile +2 -0
  17. data/{dsl → examples}/demo/Gemfile.lock +11 -51
  18. data/{dsl → examples}/demo/cogs/local.rb +2 -2
  19. data/{dsl → examples}/demo/simple_external_cog.rb +1 -1
  20. data/{dsl → examples}/json_output.rb +1 -1
  21. data/{dsl → examples}/map.rb +1 -1
  22. data/{dsl → examples}/map_reduce.rb +1 -1
  23. data/{dsl → examples}/map_with_index.rb +1 -1
  24. data/{dsl → examples}/next_break.rb +1 -1
  25. data/{dsl → examples}/next_break_parallel.rb +1 -1
  26. data/{dsl → examples}/outputs.rb +1 -1
  27. data/{dsl → examples}/outputs_bang.rb +1 -1
  28. data/{dsl → examples}/parallel_map.rb +1 -1
  29. data/{dsl → examples}/plugin-gem-example/Gemfile +2 -0
  30. data/{dsl → examples}/plugin-gem-example/Gemfile.lock +47 -59
  31. data/{dsl → examples}/plugin-gem-example/lib/other.rb +2 -2
  32. data/{dsl → examples}/plugin-gem-example/lib/simple.rb +2 -2
  33. data/{dsl → examples}/plugin-gem-example/plugin-gem-example.gemspec +1 -1
  34. data/{dsl → examples}/prototype.rb +1 -1
  35. data/{dsl → examples}/repeat_loop_results.rb +1 -1
  36. data/{dsl → examples}/ruby_cog.rb +1 -1
  37. data/{dsl → examples}/simple_agent.rb +1 -1
  38. data/{dsl → examples}/simple_chat.rb +4 -4
  39. data/{dsl → examples}/simple_repeat.rb +1 -1
  40. data/{dsl → examples}/skip.rb +1 -1
  41. data/{dsl → examples}/step_communication.rb +1 -1
  42. data/{dsl → examples}/targets_and_params.rb +5 -6
  43. data/{dsl → examples}/temporary_directory.rb +1 -1
  44. data/{dsl → examples}/working_directory.rb +1 -1
  45. data/internal/documentation/doc-comments-external.md +6 -6
  46. data/internal/documentation/doc-comments-internal.md +2 -2
  47. data/internal/documentation/doc-comments.md +1 -1
  48. data/lib/roast/cog/config.rb +307 -0
  49. data/lib/roast/cog/input.rb +71 -0
  50. data/lib/roast/cog/output.rb +311 -0
  51. data/lib/roast/cog/registry.rb +69 -0
  52. data/lib/roast/cog/stack.rb +20 -0
  53. data/lib/roast/cog/store.rb +27 -0
  54. data/lib/roast/cog.rb +145 -0
  55. data/lib/roast/cog_input_context.rb +34 -0
  56. data/lib/roast/cog_input_manager.rb +225 -0
  57. data/lib/roast/cogs/agent/config.rb +507 -0
  58. data/lib/roast/cogs/agent/input.rb +79 -0
  59. data/lib/roast/cogs/agent/output.rb +57 -0
  60. data/lib/roast/cogs/agent/provider.rb +49 -0
  61. data/lib/roast/cogs/agent/providers/claude/claude_invocation.rb +185 -0
  62. data/lib/roast/cogs/agent/providers/claude/message.rb +71 -0
  63. data/lib/roast/cogs/agent/providers/claude/messages/assistant_message.rb +34 -0
  64. data/lib/roast/cogs/agent/providers/claude/messages/result_message.rb +59 -0
  65. data/lib/roast/cogs/agent/providers/claude/messages/system_message.rb +50 -0
  66. data/lib/roast/cogs/agent/providers/claude/messages/text_message.rb +34 -0
  67. data/lib/roast/cogs/agent/providers/claude/messages/tool_result_message.rb +45 -0
  68. data/lib/roast/cogs/agent/providers/claude/messages/tool_use_message.rb +44 -0
  69. data/lib/roast/cogs/agent/providers/claude/messages/unknown_message.rb +25 -0
  70. data/lib/roast/cogs/agent/providers/claude/messages/user_message.rb +35 -0
  71. data/lib/roast/cogs/agent/providers/claude/tool_result.rb +49 -0
  72. data/lib/roast/cogs/agent/providers/claude/tool_use.rb +46 -0
  73. data/lib/roast/cogs/agent/providers/claude.rb +29 -0
  74. data/lib/roast/cogs/agent/stats.rb +90 -0
  75. data/lib/roast/cogs/agent/usage.rb +60 -0
  76. data/lib/roast/cogs/agent.rb +73 -0
  77. data/lib/roast/cogs/chat/config.rb +451 -0
  78. data/lib/roast/cogs/chat/input.rb +90 -0
  79. data/lib/roast/cogs/chat/output.rb +62 -0
  80. data/lib/roast/cogs/chat/session.rb +66 -0
  81. data/lib/roast/cogs/chat.rb +79 -0
  82. data/lib/roast/cogs/cmd.rb +320 -0
  83. data/lib/roast/cogs/ruby.rb +169 -0
  84. data/lib/roast/command_runner.rb +189 -0
  85. data/lib/roast/config_context.rb +7 -0
  86. data/lib/roast/config_manager.rb +141 -0
  87. data/lib/roast/control_flow.rb +39 -0
  88. data/lib/roast/execution_context.rb +7 -0
  89. data/lib/roast/execution_manager.rb +265 -0
  90. data/lib/roast/log.rb +77 -0
  91. data/lib/roast/system_cog/params.rb +30 -0
  92. data/lib/roast/system_cog.rb +34 -0
  93. data/lib/roast/system_cogs/call.rb +161 -0
  94. data/lib/roast/system_cogs/map.rb +452 -0
  95. data/lib/roast/system_cogs/repeat.rb +240 -0
  96. data/lib/roast/version.rb +1 -1
  97. data/lib/roast/workflow.rb +116 -1
  98. data/lib/roast/workflow_context.rb +22 -0
  99. data/lib/roast/workflow_params.rb +22 -0
  100. data/lib/roast.rb +24 -329
  101. data/roast-ai.gemspec +3 -11
  102. data/sorbet/config +1 -1
  103. data/sorbet/rbi/gems/{faraday-net_http@3.4.1.rbi → faraday-net_http@3.4.2.rbi} +23 -23
  104. data/sorbet/rbi/gems/{faraday@2.13.1.rbi → faraday@2.14.1.rbi} +76 -59
  105. data/sorbet/rbi/gems/{json@2.12.2.rbi → json@2.18.1.rbi} +173 -106
  106. data/sorbet/rbi/gems/{net-http@0.6.0.rbi → net-http@0.9.1.rbi} +387 -338
  107. data/sorbet/rbi/gems/{sqlite3@2.7.0.rbi → sqlite3@2.9.0.rbi} +2 -0
  108. data/sorbet/rbi/gems/{uri@1.0.3.rbi → uri@1.1.1.rbi} +175 -119
  109. data/sorbet/rbi/shims/lib/roast/cog_input_context.rbi +1198 -0
  110. data/sorbet/rbi/shims/lib/roast/config_context.rbi +323 -0
  111. data/sorbet/rbi/shims/lib/roast/execution_context.rbi +496 -0
  112. data/sorbet/tapioca/require.rb +3 -18
  113. data/{dsl/tutorial → tutorial}/01_your_first_workflow/README.md +3 -3
  114. data/{dsl/tutorial → tutorial}/01_your_first_workflow/configured_chat.rb +1 -1
  115. data/{dsl/tutorial → tutorial}/01_your_first_workflow/hello.rb +1 -1
  116. data/{dsl/tutorial → tutorial}/02_chaining_cogs/README.md +3 -3
  117. data/{dsl/tutorial → tutorial}/02_chaining_cogs/code_review.rb +1 -1
  118. data/{dsl/tutorial → tutorial}/02_chaining_cogs/session_resumption.rb +1 -1
  119. data/{dsl/tutorial → tutorial}/02_chaining_cogs/simple_chain.rb +1 -1
  120. data/{dsl/tutorial → tutorial}/03_targets_and_params/README.md +13 -13
  121. data/{dsl/tutorial → tutorial}/03_targets_and_params/multiple_targets.rb +4 -4
  122. data/{dsl/tutorial → tutorial}/03_targets_and_params/single_target.rb +2 -2
  123. data/{dsl/tutorial → tutorial}/04_configuration_options/README.md +2 -2
  124. data/{dsl/tutorial → tutorial}/04_configuration_options/control_display_and_temperature.rb +1 -1
  125. data/{dsl/tutorial → tutorial}/04_configuration_options/simple_config.rb +1 -1
  126. data/{dsl/tutorial → tutorial}/05_control_flow/README.md +2 -2
  127. data/{dsl/tutorial → tutorial}/05_control_flow/conditional_execution.rb +1 -1
  128. data/{dsl/tutorial → tutorial}/05_control_flow/handling_failures.rb +1 -1
  129. data/{dsl/tutorial → tutorial}/06_reusable_scopes/README.md +3 -3
  130. data/{dsl/tutorial → tutorial}/06_reusable_scopes/accessing_scope_outputs.rb +1 -1
  131. data/{dsl/tutorial → tutorial}/06_reusable_scopes/basic_scope.rb +1 -1
  132. data/{dsl/tutorial → tutorial}/06_reusable_scopes/parameterized_scope.rb +1 -1
  133. data/{dsl/tutorial → tutorial}/07_processing_collections/README.md +2 -2
  134. data/{dsl/tutorial → tutorial}/07_processing_collections/basic_map.rb +1 -1
  135. data/{dsl/tutorial → tutorial}/07_processing_collections/parallel_map.rb +1 -1
  136. data/{dsl/tutorial → tutorial}/08_iterative_workflows/README.md +2 -2
  137. data/{dsl/tutorial → tutorial}/08_iterative_workflows/basic_repeat.rb +1 -1
  138. data/{dsl/tutorial → tutorial}/08_iterative_workflows/conditional_break.rb +1 -1
  139. data/{dsl/tutorial → tutorial}/09_async_cogs/README.md +3 -3
  140. data/{dsl/tutorial → tutorial}/09_async_cogs/basic_async.rb +1 -1
  141. data/{dsl/tutorial → tutorial}/README.md +2 -2
  142. metadata +136 -427
  143. data/.claude/settings.json +0 -12
  144. data/CLAUDE.md +0 -267
  145. data/CLAUDE_NOTES.md +0 -68
  146. data/README_LEGACY.md +0 -1464
  147. data/claude-swarm.yml +0 -210
  148. data/examples/README.md +0 -9
  149. data/examples/available_tools_demo/README.md +0 -42
  150. data/examples/available_tools_demo/analyze_files/prompt.md +0 -6
  151. data/examples/available_tools_demo/explore_directory/prompt.md +0 -6
  152. data/examples/available_tools_demo/workflow.yml +0 -32
  153. data/examples/available_tools_demo/write_summary/prompt.md +0 -6
  154. data/examples/basic_prompt_workflow/workflow.md +0 -1
  155. data/examples/basic_prompt_workflow/workflow.yml +0 -14
  156. data/examples/grading/README.md +0 -46
  157. data/examples/grading/analyze_coverage/prompt.md +0 -52
  158. data/examples/grading/calculate_final_grade.rb +0 -64
  159. data/examples/grading/format_result.rb +0 -61
  160. data/examples/grading/generate_grades/prompt.md +0 -105
  161. data/examples/grading/generate_recommendations/output.txt +0 -17
  162. data/examples/grading/generate_recommendations/prompt.md +0 -60
  163. data/examples/grading/read_dependencies/prompt.md +0 -15
  164. data/examples/grading/verify_mocks_and_stubs/prompt.md +0 -12
  165. data/examples/grading/verify_test_helpers/prompt.md +0 -53
  166. data/examples/grading/workflow.md +0 -5
  167. data/examples/grading/workflow.yml +0 -28
  168. data/gemfiles/activesupport7.gemfile +0 -4
  169. data/gemfiles/activesupport8.gemfile +0 -4
  170. data/lib/roast/dsl/cog/config.rb +0 -309
  171. data/lib/roast/dsl/cog/input.rb +0 -73
  172. data/lib/roast/dsl/cog/output.rb +0 -313
  173. data/lib/roast/dsl/cog/registry.rb +0 -71
  174. data/lib/roast/dsl/cog/stack.rb +0 -22
  175. data/lib/roast/dsl/cog/store.rb +0 -29
  176. data/lib/roast/dsl/cog.rb +0 -147
  177. data/lib/roast/dsl/cog_input_context.rb +0 -44
  178. data/lib/roast/dsl/cog_input_manager.rb +0 -156
  179. data/lib/roast/dsl/cogs/agent/config.rb +0 -509
  180. data/lib/roast/dsl/cogs/agent/input.rb +0 -81
  181. data/lib/roast/dsl/cogs/agent/output.rb +0 -59
  182. data/lib/roast/dsl/cogs/agent/provider.rb +0 -51
  183. data/lib/roast/dsl/cogs/agent/providers/claude/claude_invocation.rb +0 -187
  184. data/lib/roast/dsl/cogs/agent/providers/claude/message.rb +0 -73
  185. data/lib/roast/dsl/cogs/agent/providers/claude/messages/assistant_message.rb +0 -36
  186. data/lib/roast/dsl/cogs/agent/providers/claude/messages/result_message.rb +0 -61
  187. data/lib/roast/dsl/cogs/agent/providers/claude/messages/system_message.rb +0 -47
  188. data/lib/roast/dsl/cogs/agent/providers/claude/messages/text_message.rb +0 -36
  189. data/lib/roast/dsl/cogs/agent/providers/claude/messages/tool_result_message.rb +0 -47
  190. data/lib/roast/dsl/cogs/agent/providers/claude/messages/tool_use_message.rb +0 -46
  191. data/lib/roast/dsl/cogs/agent/providers/claude/messages/unknown_message.rb +0 -27
  192. data/lib/roast/dsl/cogs/agent/providers/claude/messages/user_message.rb +0 -37
  193. data/lib/roast/dsl/cogs/agent/providers/claude/tool_result.rb +0 -51
  194. data/lib/roast/dsl/cogs/agent/providers/claude/tool_use.rb +0 -48
  195. data/lib/roast/dsl/cogs/agent/providers/claude.rb +0 -31
  196. data/lib/roast/dsl/cogs/agent/stats.rb +0 -92
  197. data/lib/roast/dsl/cogs/agent/usage.rb +0 -62
  198. data/lib/roast/dsl/cogs/agent.rb +0 -75
  199. data/lib/roast/dsl/cogs/chat/config.rb +0 -453
  200. data/lib/roast/dsl/cogs/chat/input.rb +0 -92
  201. data/lib/roast/dsl/cogs/chat/output.rb +0 -64
  202. data/lib/roast/dsl/cogs/chat/session.rb +0 -68
  203. data/lib/roast/dsl/cogs/chat.rb +0 -81
  204. data/lib/roast/dsl/cogs/cmd.rb +0 -322
  205. data/lib/roast/dsl/cogs/ruby.rb +0 -171
  206. data/lib/roast/dsl/command_runner.rb +0 -191
  207. data/lib/roast/dsl/config_context.rb +0 -9
  208. data/lib/roast/dsl/config_manager.rb +0 -143
  209. data/lib/roast/dsl/control_flow.rb +0 -41
  210. data/lib/roast/dsl/execution_context.rb +0 -9
  211. data/lib/roast/dsl/execution_manager.rb +0 -267
  212. data/lib/roast/dsl/system_cog/params.rb +0 -32
  213. data/lib/roast/dsl/system_cog.rb +0 -36
  214. data/lib/roast/dsl/system_cogs/call.rb +0 -163
  215. data/lib/roast/dsl/system_cogs/map.rb +0 -454
  216. data/lib/roast/dsl/system_cogs/repeat.rb +0 -242
  217. data/lib/roast/dsl/workflow.rb +0 -123
  218. data/lib/roast/dsl/workflow_context.rb +0 -20
  219. data/lib/roast/dsl/workflow_params.rb +0 -24
  220. data/lib/roast/dsl.rb +0 -7
  221. data/lib/roast/errors.rb +0 -15
  222. data/lib/roast/factories/api_provider_factory.rb +0 -62
  223. data/lib/roast/graph/edge.rb +0 -25
  224. data/lib/roast/graph/node.rb +0 -40
  225. data/lib/roast/graph/quantum_edge.rb +0 -27
  226. data/lib/roast/graph/threaded_exec.rb +0 -93
  227. data/lib/roast/graph.rb +0 -233
  228. data/lib/roast/helpers/cmd_runner.rb +0 -199
  229. data/lib/roast/helpers/function_caching_interceptor.rb +0 -88
  230. data/lib/roast/helpers/logger.rb +0 -78
  231. data/lib/roast/helpers/metadata_access.rb +0 -40
  232. data/lib/roast/helpers/minitest_coverage_runner.rb +0 -244
  233. data/lib/roast/helpers/path_resolver.rb +0 -138
  234. data/lib/roast/helpers/prompt_loader.rb +0 -146
  235. data/lib/roast/initializers.rb +0 -40
  236. data/lib/roast/resources/api_resource.rb +0 -134
  237. data/lib/roast/resources/base_resource.rb +0 -55
  238. data/lib/roast/resources/directory_resource.rb +0 -41
  239. data/lib/roast/resources/file_resource.rb +0 -34
  240. data/lib/roast/resources/none_resource.rb +0 -30
  241. data/lib/roast/resources/url_resource.rb +0 -61
  242. data/lib/roast/resources.rb +0 -91
  243. data/lib/roast/services/context_threshold_checker.rb +0 -43
  244. data/lib/roast/services/token_counting_service.rb +0 -45
  245. data/lib/roast/sorbet_runtime_stub.rb +0 -154
  246. data/lib/roast/tools/apply_diff.rb +0 -127
  247. data/lib/roast/tools/ask_user.rb +0 -39
  248. data/lib/roast/tools/bash.rb +0 -66
  249. data/lib/roast/tools/cmd.rb +0 -176
  250. data/lib/roast/tools/coding_agent.rb +0 -269
  251. data/lib/roast/tools/context_summarizer.rb +0 -109
  252. data/lib/roast/tools/grep.rb +0 -58
  253. data/lib/roast/tools/helpers/coding_agent_message_formatter.rb +0 -85
  254. data/lib/roast/tools/read_file.rb +0 -50
  255. data/lib/roast/tools/search_file.rb +0 -69
  256. data/lib/roast/tools/swarm.rb +0 -120
  257. data/lib/roast/tools/update_files.rb +0 -410
  258. data/lib/roast/tools/write_file.rb +0 -60
  259. data/lib/roast/tools.rb +0 -75
  260. data/lib/roast/value_objects/api_token.rb +0 -50
  261. data/lib/roast/value_objects/step_name.rb +0 -51
  262. data/lib/roast/value_objects/uri_base.rb +0 -50
  263. data/lib/roast/value_objects/workflow_path.rb +0 -76
  264. data/lib/roast/value_objects.rb +0 -7
  265. data/lib/roast/workflow/agent_step.rb +0 -87
  266. data/lib/roast/workflow/api_configuration.rb +0 -66
  267. data/lib/roast/workflow/base_iteration_step.rb +0 -183
  268. data/lib/roast/workflow/base_step.rb +0 -150
  269. data/lib/roast/workflow/base_workflow.rb +0 -202
  270. data/lib/roast/workflow/case_executor.rb +0 -49
  271. data/lib/roast/workflow/case_step.rb +0 -79
  272. data/lib/roast/workflow/command_executor.rb +0 -92
  273. data/lib/roast/workflow/conditional_executor.rb +0 -50
  274. data/lib/roast/workflow/conditional_step.rb +0 -56
  275. data/lib/roast/workflow/configuration.rb +0 -110
  276. data/lib/roast/workflow/configuration_loader.rb +0 -214
  277. data/lib/roast/workflow/context_manager.rb +0 -90
  278. data/lib/roast/workflow/context_path_resolver.rb +0 -44
  279. data/lib/roast/workflow/dot_access_hash.rb +0 -214
  280. data/lib/roast/workflow/each_step.rb +0 -89
  281. data/lib/roast/workflow/error_handler.rb +0 -147
  282. data/lib/roast/workflow/expression_evaluator.rb +0 -84
  283. data/lib/roast/workflow/expression_utils.rb +0 -37
  284. data/lib/roast/workflow/file_state_repository.rb +0 -152
  285. data/lib/roast/workflow/input_executor.rb +0 -42
  286. data/lib/roast/workflow/input_step.rb +0 -166
  287. data/lib/roast/workflow/interpolator.rb +0 -57
  288. data/lib/roast/workflow/iteration_executor.rb +0 -104
  289. data/lib/roast/workflow/llm_boolean_coercer.rb +0 -56
  290. data/lib/roast/workflow/metadata_manager.rb +0 -48
  291. data/lib/roast/workflow/output_handler.rb +0 -35
  292. data/lib/roast/workflow/output_manager.rb +0 -75
  293. data/lib/roast/workflow/parallel_executor.rb +0 -50
  294. data/lib/roast/workflow/prompt_step.rb +0 -20
  295. data/lib/roast/workflow/repeat_step.rb +0 -76
  296. data/lib/roast/workflow/replay_handler.rb +0 -129
  297. data/lib/roast/workflow/resource_resolver.rb +0 -70
  298. data/lib/roast/workflow/session_manager.rb +0 -84
  299. data/lib/roast/workflow/shell_script_step.rb +0 -116
  300. data/lib/roast/workflow/sqlite_state_repository.rb +0 -343
  301. data/lib/roast/workflow/state_manager.rb +0 -104
  302. data/lib/roast/workflow/state_repository.rb +0 -22
  303. data/lib/roast/workflow/state_repository_factory.rb +0 -38
  304. data/lib/roast/workflow/step_completion_reporter.rb +0 -28
  305. data/lib/roast/workflow/step_executor_coordinator.rb +0 -319
  306. data/lib/roast/workflow/step_executor_factory.rb +0 -43
  307. data/lib/roast/workflow/step_executor_registry.rb +0 -75
  308. data/lib/roast/workflow/step_executor_with_reporting.rb +0 -69
  309. data/lib/roast/workflow/step_executors/base_step_executor.rb +0 -24
  310. data/lib/roast/workflow/step_executors/hash_step_executor.rb +0 -41
  311. data/lib/roast/workflow/step_executors/parallel_step_executor.rb +0 -52
  312. data/lib/roast/workflow/step_executors/string_step_executor.rb +0 -28
  313. data/lib/roast/workflow/step_factory.rb +0 -57
  314. data/lib/roast/workflow/step_finder.rb +0 -98
  315. data/lib/roast/workflow/step_loader.rb +0 -263
  316. data/lib/roast/workflow/step_name_extractor.rb +0 -85
  317. data/lib/roast/workflow/step_runner.rb +0 -24
  318. data/lib/roast/workflow/step_type_resolver.rb +0 -161
  319. data/lib/roast/workflow/validation_command.rb +0 -198
  320. data/lib/roast/workflow/validator.rb +0 -34
  321. data/lib/roast/workflow/validators/base_validator.rb +0 -45
  322. data/lib/roast/workflow/validators/dependency_validator.rb +0 -224
  323. data/lib/roast/workflow/validators/linting_validator.rb +0 -114
  324. data/lib/roast/workflow/validators/schema_validator.rb +0 -91
  325. data/lib/roast/workflow/validators/step_collector.rb +0 -58
  326. data/lib/roast/workflow/validators/validation_orchestrator.rb +0 -53
  327. data/lib/roast/workflow/workflow_context.rb +0 -61
  328. data/lib/roast/workflow/workflow_execution_context.rb +0 -38
  329. data/lib/roast/workflow/workflow_executor.rb +0 -130
  330. data/lib/roast/workflow/workflow_initializer.rb +0 -284
  331. data/lib/roast/workflow/workflow_runner.rb +0 -218
  332. data/lib/roast/workflow_diagram_generator.rb +0 -299
  333. data/rubocop/cop/roast/use_cmd_runner.rb +0 -93
  334. data/rubocop/cop/roast.rb +0 -4
  335. data/schema/workflow.json +0 -352
  336. data/sorbet/rbi/gems/cli-kit@5.2.0.rbi +0 -2063
  337. data/sorbet/rbi/gems/cli-ui@2.7.0-6bdefd1d06305e5d6ae312ac76f9c88f88658dda.rbi +0 -3586
  338. data/sorbet/rbi/gems/diff-lcs@1.6.2.rbi +0 -972
  339. data/sorbet/rbi/gems/dotenv@3.1.8.rbi +0 -295
  340. data/sorbet/rbi/gems/json-schema@5.1.1.rbi +0 -1466
  341. data/sorbet/rbi/gems/open_router@0.3.3.rbi +0 -230
  342. data/sorbet/rbi/gems/raix@1.0.2.rbi +0 -1104
  343. data/sorbet/rbi/gems/ruby-graphviz@1.2.5.rbi +0 -1333
  344. data/sorbet/rbi/gems/ruby-openai@8.1.0.rbi +0 -758
  345. data/sorbet/rbi/shims/lib/roast/dsl/cog_input_context.rbi +0 -1197
  346. data/sorbet/rbi/shims/lib/roast/dsl/config_context.rbi +0 -325
  347. data/sorbet/rbi/shims/lib/roast/dsl/execution_context.rbi +0 -498
  348. /data/{dsl → examples}/plugin-gem-example/.gitignore +0 -0
  349. /data/{dsl → examples}/plugin-gem-example/lib/plugin_gem_example.rb +0 -0
  350. /data/{dsl → examples}/plugin-gem-example/lib/version.rb +0 -0
  351. /data/{dsl → examples}/prompts/simple_prompt.md.erb +0 -0
  352. /data/{dsl → examples}/temperature.rb +0 -0
  353. /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: 45106bfcf14cd8dac143f9b31331d5c272cba04152390097debb22a466edd4cd
4
- data.tar.gz: 8097250f8cc80405c0002928a946a0635c430e6d631de51f62487e356ec19891
3
+ metadata.gz: d4c094250ff4a6e6203bda03a81547200c3d1b4f73899f597b359873648a6b5f
4
+ data.tar.gz: e033a49f41382b91b8569924124a86d84e423fafad502111a72f77febab05516
5
5
  SHA512:
6
- metadata.gz: 9b6a836153aeeda05efd1c30b0be46453709bb9a4bb3480aed00b136da3ecd566f4b6d8a2ad6f88e5a19ee5774dfe42621a0239b7b0a5b3c0d192f29e25efc08
7
- data.tar.gz: d4591075f64cc6e4ca0e14d0ea8555026f4bd3211fb6ebfd80c03c4a92897abbd47a0269e9f40e356a3b8e420165aa231d4e8196b7827c4cac6d3955c645b24c
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::DSL::Cogs::Chat::Config`
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
@@ -14,27 +14,15 @@ env:
14
14
  CI: true
15
15
 
16
16
  jobs:
17
- rubies:
18
- strategy:
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 minitest_dsl_fast
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.5.2)
12
- activesupport (>= 7.0)
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.13.1)
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.1)
81
- net-http (>= 0.5.0)
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.12.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.6.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.7.0-arm64-darwin)
231
- sqlite3 (2.7.0-x86_64-linux-gnu)
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.0.3)
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 --executor=dsl analyze_codebase.rb
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/dsl/tutorial/README.md)**
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/dsl/tutorial/README.md) - Step-by-step guide with examples
101
- - [Functional Tests](https://github.com/Shopify/roast/tree/main/dsl) - Toy workflows that demonstrate all functional patterns, use for end-to-end test
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/dsl/tutorial) (contains step-by-step guides and runnable examples showing real-world usage)
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(:minitest_all) do |t|
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(:minitest_functional) do |t|
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/dsl/**/*_test.rb", "test/roast/dsl/**/*_test.rb"]
18
+ t.test_files = FileList["test/**/*_test.rb"]
41
19
  end
42
- task :set_slow_env do
20
+ task :set_slow_test_env do
43
21
  ENV["ROAST_RUN_SLOW_TESTS"] = "true"
44
22
  end
45
- task minitest_dsl_slow: :set_slow_env
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, :minitest_dsl_fast]
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 minitest_dsl_fast
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 --executor=dsl
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 minitest_dsl_fast
29
+ run: bundle exec rake minitest_fast
@@ -1,7 +1,7 @@
1
1
  # typed: true
2
2
  # frozen_string_literal: true
3
3
 
4
- #: self as Roast::DSL::Workflow
4
+ #: self as Roast::Workflow
5
5
 
6
6
  config do
7
7
  agent do
@@ -1,7 +1,7 @@
1
1
  # typed: true
2
2
  # frozen_string_literal: true
3
3
 
4
- #: self as Roast::DSL::Workflow
4
+ #: self as Roast::Workflow
5
5
 
6
6
  config do
7
7
  cmd { display! }
@@ -1,7 +1,7 @@
1
1
  # typed: true
2
2
  # frozen_string_literal: true
3
3
 
4
- #: self as Roast::DSL::Workflow
4
+ #: self as Roast::Workflow
5
5
 
6
6
  config do
7
7
  cmd { display! }
@@ -1,7 +1,7 @@
1
1
  # typed: true
2
2
  # frozen_string_literal: true
3
3
 
4
- #: self as Roast::DSL::Workflow
4
+ #: self as Roast::Workflow
5
5
 
6
6
  config do
7
7
  cmd do
@@ -1,7 +1,7 @@
1
1
  # typed: true
2
2
  # frozen_string_literal: true
3
3
 
4
- #: self as Roast::DSL::Workflow
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::DSL::CogInputManager::CogDoesNotExistError
36
+ rescue Roast::CogInputManager::CogDoesNotExistError
37
37
  puts "Could not access :to_upper directly"
38
38
  end
39
39
 
@@ -1,4 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ source "https://rubygems.org"
4
+
3
5
  gem "roast-ai", path: "../.."
4
6
  gem "plugin-gem-example", path: "../plugin-gem-example"