roast-ai 0.4.8 → 0.4.10
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/.gitignore +1 -0
- data/.rubocop.yml +1 -0
- data/Gemfile +6 -7
- data/Gemfile.lock +15 -3
- data/README.md +9 -5
- data/dsl/demo/Gemfile +4 -0
- data/dsl/demo/Gemfile.lock +120 -0
- data/dsl/demo/cogs/local.rb +15 -0
- data/dsl/demo/simple_external_cog.rb +17 -0
- data/dsl/less_simple.rb +112 -0
- data/dsl/plugin-gem-example/.gitignore +8 -0
- data/dsl/plugin-gem-example/Gemfile +13 -0
- data/dsl/plugin-gem-example/Gemfile.lock +178 -0
- data/dsl/plugin-gem-example/lib/other.rb +17 -0
- data/dsl/plugin-gem-example/lib/plugin_gem_example.rb +5 -0
- data/dsl/plugin-gem-example/lib/simple.rb +15 -0
- data/dsl/plugin-gem-example/lib/version.rb +10 -0
- data/dsl/plugin-gem-example/plugin-gem-example.gemspec +28 -0
- data/dsl/prototype.rb +25 -0
- data/dsl/scoped_executors.rb +28 -0
- data/dsl/simple.rb +5 -7
- data/dsl/simple_chat.rb +12 -0
- data/dsl/step_communication.rb +24 -0
- data/examples/grading/README.md +46 -0
- data/examples/grading/analyze_coverage/prompt.md +52 -0
- data/examples/grading/calculate_final_grade.rb +64 -0
- data/examples/grading/format_result.rb +61 -0
- data/examples/grading/generate_grades/prompt.md +105 -0
- data/examples/grading/generate_recommendations/output.txt +17 -0
- data/examples/grading/generate_recommendations/prompt.md +60 -0
- data/examples/grading/read_dependencies/prompt.md +15 -0
- data/examples/grading/verify_mocks_and_stubs/prompt.md +12 -0
- data/examples/grading/verify_test_helpers/prompt.md +53 -0
- data/examples/grading/workflow.md +5 -0
- data/examples/grading/workflow.yml +28 -0
- data/lib/roast/dsl/cog/config.rb +36 -0
- data/lib/roast/dsl/cog/input.rb +30 -0
- data/lib/roast/dsl/cog/output.rb +24 -0
- data/lib/roast/dsl/cog/registry.rb +39 -0
- data/lib/roast/dsl/cog/stack.rb +22 -0
- data/lib/roast/dsl/cog/store.rb +29 -0
- data/lib/roast/dsl/cog.rb +91 -0
- data/lib/roast/dsl/cog_input_context.rb +9 -0
- data/lib/roast/dsl/cog_input_manager.rb +47 -0
- data/lib/roast/dsl/cogs/chat.rb +78 -0
- data/lib/roast/dsl/cogs/cmd.rb +132 -0
- data/lib/roast/dsl/cogs/execute.rb +46 -0
- data/lib/roast/dsl/cogs/graph.rb +53 -0
- data/lib/roast/dsl/config_context.rb +9 -0
- data/lib/roast/dsl/config_manager.rb +96 -0
- data/lib/roast/dsl/execution_context.rb +9 -0
- data/lib/roast/dsl/execution_manager.rb +137 -0
- data/lib/roast/dsl/workflow.rb +113 -0
- data/lib/roast/error.rb +7 -0
- data/lib/roast/errors.rb +3 -3
- data/lib/roast/graph/edge.rb +25 -0
- data/lib/roast/graph/node.rb +40 -0
- data/lib/roast/graph/quantum_edge.rb +27 -0
- data/lib/roast/graph/threaded_exec.rb +93 -0
- data/lib/roast/graph.rb +233 -0
- data/lib/roast/resources/api_resource.rb +2 -2
- data/lib/roast/resources/url_resource.rb +2 -2
- data/lib/roast/tools/apply_diff.rb +1 -1
- data/lib/roast/tools/ask_user.rb +1 -1
- data/lib/roast/tools/bash.rb +1 -1
- data/lib/roast/tools/cmd.rb +2 -2
- data/lib/roast/tools/coding_agent.rb +2 -2
- data/lib/roast/tools/grep.rb +1 -1
- data/lib/roast/tools/read_file.rb +1 -1
- data/lib/roast/tools/search_file.rb +1 -1
- data/lib/roast/tools/swarm.rb +1 -1
- data/lib/roast/tools/update_files.rb +2 -2
- data/lib/roast/tools/write_file.rb +1 -1
- data/lib/roast/tools.rb +1 -1
- data/lib/roast/value_objects/api_token.rb +1 -1
- data/lib/roast/value_objects/uri_base.rb +1 -1
- data/lib/roast/value_objects/workflow_path.rb +1 -1
- data/lib/roast/version.rb +1 -1
- data/lib/roast/workflow/base_workflow.rb +38 -2
- data/lib/roast/workflow/command_executor.rb +1 -1
- data/lib/roast/workflow/configuration_loader.rb +1 -1
- data/lib/roast/workflow/error_handler.rb +1 -1
- data/lib/roast/workflow/step_executor_registry.rb +1 -1
- data/lib/roast/workflow/step_loader.rb +1 -1
- data/lib/roast/workflow/workflow_executor.rb +1 -1
- data/lib/roast.rb +4 -3
- data/roast.gemspec +1 -0
- data/sorbet/config +3 -0
- data/sorbet/rbi/annotations/.gitattributes +1 -0
- data/sorbet/rbi/annotations/activesupport.rbi +495 -0
- data/sorbet/rbi/annotations/faraday.rbi +17 -0
- data/sorbet/rbi/annotations/minitest.rbi +119 -0
- data/sorbet/rbi/annotations/mocha.rbi +34 -0
- data/sorbet/rbi/annotations/rainbow.rbi +269 -0
- data/sorbet/rbi/annotations/webmock.rbi +9 -0
- data/sorbet/rbi/gems/marcel@1.1.0.rbi +239 -0
- data/sorbet/rbi/gems/{rack@2.2.17.rbi → rack@2.2.19.rbi} +55 -38
- data/sorbet/rbi/gems/{rexml@3.4.1.rbi → rexml@3.4.2.rbi} +284 -239
- data/sorbet/rbi/gems/ruby_llm@1.8.2.rbi +5703 -0
- data/sorbet/rbi/shims/lib/roast/dsl/cog_input_context.rbi +17 -0
- data/sorbet/rbi/shims/lib/roast/dsl/config_context.rbi +17 -0
- data/sorbet/rbi/shims/lib/roast/dsl/execution_context.rbi +17 -0
- data/sorbet/rbi/todo.rbi +7 -0
- metadata +84 -6
- data/lib/roast/dsl/executor.rb +0 -27
- data/package-lock.json +0 -6
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Roast
|
|
5
|
+
module DSL
|
|
6
|
+
class CogInputContext
|
|
7
|
+
#: (Symbol) -> Roast::DSL::Cogs::Cmd::Output
|
|
8
|
+
def cmd(name); end
|
|
9
|
+
|
|
10
|
+
#: (Symbol) -> Roast::DSL::Cogs::Chat::Output
|
|
11
|
+
def chat(name); end
|
|
12
|
+
|
|
13
|
+
#: (Symbol) -> Roast::DSL::Cog::Output
|
|
14
|
+
def execute(name); end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Roast
|
|
5
|
+
module DSL
|
|
6
|
+
class ConfigContext
|
|
7
|
+
#: (?Symbol?) {() [self: Roast::DSL::Cogs::Cmd::Config] -> void} -> void
|
|
8
|
+
def cmd(name = nil, &block); end
|
|
9
|
+
|
|
10
|
+
#: (?Symbol?) {() [self: Roast::DSL::Cogs::Chat::Config] -> void} -> void
|
|
11
|
+
def chat(name = nil, &block); end
|
|
12
|
+
|
|
13
|
+
#: (?Symbol?) {() [self: Roast::DSL::Cog::Config] -> void} -> void
|
|
14
|
+
def execute(name = nil, &block); end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Roast
|
|
5
|
+
module DSL
|
|
6
|
+
class ExecutionContext
|
|
7
|
+
#: (?Symbol?) {(Roast::DSL::Cogs::Cmd::Input) [self: Roast::DSL::CogInputContext] -> (String | Array[String] | nil)} -> void
|
|
8
|
+
def cmd(name = nil, &block); end
|
|
9
|
+
|
|
10
|
+
#: (?Symbol?) {(Roast::DSL::Cogs::Chat::Input) [self: Roast::DSL::CogInputContext] -> String?} -> void
|
|
11
|
+
def chat(name = nil, &block); end
|
|
12
|
+
|
|
13
|
+
#: (?Symbol?) {(Roast::DSL::Cogs::Execute::Input) [self: Roast::DSL::CogInputContext] -> (Symbol | nil)} -> void
|
|
14
|
+
def execute(name = nil, &block); end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
data/sorbet/rbi/todo.rbi
ADDED
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.10
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Shopify
|
|
@@ -121,6 +121,20 @@ dependencies:
|
|
|
121
121
|
- - "~>"
|
|
122
122
|
- !ruby/object:Gem::Version
|
|
123
123
|
version: '1.2'
|
|
124
|
+
- !ruby/object:Gem::Dependency
|
|
125
|
+
name: ruby_llm
|
|
126
|
+
requirement: !ruby/object:Gem::Requirement
|
|
127
|
+
requirements:
|
|
128
|
+
- - ">="
|
|
129
|
+
- !ruby/object:Gem::Version
|
|
130
|
+
version: '0'
|
|
131
|
+
type: :runtime
|
|
132
|
+
prerelease: false
|
|
133
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
134
|
+
requirements:
|
|
135
|
+
- - ">="
|
|
136
|
+
- !ruby/object:Gem::Version
|
|
137
|
+
version: '0'
|
|
124
138
|
- !ruby/object:Gem::Dependency
|
|
125
139
|
name: sqlite3
|
|
126
140
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -201,7 +215,24 @@ files:
|
|
|
201
215
|
- docs/INSTRUMENTATION.md
|
|
202
216
|
- docs/ITERATION_SYNTAX.md
|
|
203
217
|
- docs/VALIDATION.md
|
|
218
|
+
- dsl/demo/Gemfile
|
|
219
|
+
- dsl/demo/Gemfile.lock
|
|
220
|
+
- dsl/demo/cogs/local.rb
|
|
221
|
+
- dsl/demo/simple_external_cog.rb
|
|
222
|
+
- dsl/less_simple.rb
|
|
223
|
+
- dsl/plugin-gem-example/.gitignore
|
|
224
|
+
- dsl/plugin-gem-example/Gemfile
|
|
225
|
+
- dsl/plugin-gem-example/Gemfile.lock
|
|
226
|
+
- dsl/plugin-gem-example/lib/other.rb
|
|
227
|
+
- dsl/plugin-gem-example/lib/plugin_gem_example.rb
|
|
228
|
+
- dsl/plugin-gem-example/lib/simple.rb
|
|
229
|
+
- dsl/plugin-gem-example/lib/version.rb
|
|
230
|
+
- dsl/plugin-gem-example/plugin-gem-example.gemspec
|
|
231
|
+
- dsl/prototype.rb
|
|
232
|
+
- dsl/scoped_executors.rb
|
|
204
233
|
- dsl/simple.rb
|
|
234
|
+
- dsl/simple_chat.rb
|
|
235
|
+
- dsl/step_communication.rb
|
|
205
236
|
- examples/README.md
|
|
206
237
|
- examples/available_tools_demo/README.md
|
|
207
238
|
- examples/available_tools_demo/analyze_files/prompt.md
|
|
@@ -210,14 +241,49 @@ files:
|
|
|
210
241
|
- examples/available_tools_demo/write_summary/prompt.md
|
|
211
242
|
- examples/basic_prompt_workflow/workflow.md
|
|
212
243
|
- examples/basic_prompt_workflow/workflow.yml
|
|
244
|
+
- examples/grading/README.md
|
|
245
|
+
- examples/grading/analyze_coverage/prompt.md
|
|
246
|
+
- examples/grading/calculate_final_grade.rb
|
|
247
|
+
- examples/grading/format_result.rb
|
|
248
|
+
- examples/grading/generate_grades/prompt.md
|
|
249
|
+
- examples/grading/generate_recommendations/output.txt
|
|
250
|
+
- examples/grading/generate_recommendations/prompt.md
|
|
251
|
+
- examples/grading/read_dependencies/prompt.md
|
|
252
|
+
- examples/grading/verify_mocks_and_stubs/prompt.md
|
|
253
|
+
- examples/grading/verify_test_helpers/prompt.md
|
|
254
|
+
- examples/grading/workflow.md
|
|
255
|
+
- examples/grading/workflow.yml
|
|
213
256
|
- exe/roast
|
|
214
257
|
- gemfiles/activesupport7.gemfile
|
|
215
258
|
- gemfiles/activesupport8.gemfile
|
|
216
259
|
- lib/roast.rb
|
|
217
260
|
- lib/roast/dsl.rb
|
|
218
|
-
- lib/roast/dsl/
|
|
261
|
+
- lib/roast/dsl/cog.rb
|
|
262
|
+
- lib/roast/dsl/cog/config.rb
|
|
263
|
+
- lib/roast/dsl/cog/input.rb
|
|
264
|
+
- lib/roast/dsl/cog/output.rb
|
|
265
|
+
- lib/roast/dsl/cog/registry.rb
|
|
266
|
+
- lib/roast/dsl/cog/stack.rb
|
|
267
|
+
- lib/roast/dsl/cog/store.rb
|
|
268
|
+
- lib/roast/dsl/cog_input_context.rb
|
|
269
|
+
- lib/roast/dsl/cog_input_manager.rb
|
|
270
|
+
- lib/roast/dsl/cogs/chat.rb
|
|
271
|
+
- lib/roast/dsl/cogs/cmd.rb
|
|
272
|
+
- lib/roast/dsl/cogs/execute.rb
|
|
273
|
+
- lib/roast/dsl/cogs/graph.rb
|
|
274
|
+
- lib/roast/dsl/config_context.rb
|
|
275
|
+
- lib/roast/dsl/config_manager.rb
|
|
276
|
+
- lib/roast/dsl/execution_context.rb
|
|
277
|
+
- lib/roast/dsl/execution_manager.rb
|
|
278
|
+
- lib/roast/dsl/workflow.rb
|
|
279
|
+
- lib/roast/error.rb
|
|
219
280
|
- lib/roast/errors.rb
|
|
220
281
|
- lib/roast/factories/api_provider_factory.rb
|
|
282
|
+
- lib/roast/graph.rb
|
|
283
|
+
- lib/roast/graph/edge.rb
|
|
284
|
+
- lib/roast/graph/node.rb
|
|
285
|
+
- lib/roast/graph/quantum_edge.rb
|
|
286
|
+
- lib/roast/graph/threaded_exec.rb
|
|
221
287
|
- lib/roast/helpers/cmd_runner.rb
|
|
222
288
|
- lib/roast/helpers/function_caching_interceptor.rb
|
|
223
289
|
- lib/roast/helpers/logger.rb
|
|
@@ -324,13 +390,19 @@ files:
|
|
|
324
390
|
- lib/roast/workflow/workflow_initializer.rb
|
|
325
391
|
- lib/roast/workflow/workflow_runner.rb
|
|
326
392
|
- lib/roast/workflow_diagram_generator.rb
|
|
327
|
-
- package-lock.json
|
|
328
393
|
- roast.gemspec
|
|
329
394
|
- rubocop/cop/roast.rb
|
|
330
395
|
- rubocop/cop/roast/use_cmd_runner.rb
|
|
331
396
|
- schema/workflow.json
|
|
332
397
|
- shipit.rubygems.yml
|
|
333
398
|
- sorbet/config
|
|
399
|
+
- sorbet/rbi/annotations/.gitattributes
|
|
400
|
+
- sorbet/rbi/annotations/activesupport.rbi
|
|
401
|
+
- sorbet/rbi/annotations/faraday.rbi
|
|
402
|
+
- sorbet/rbi/annotations/minitest.rbi
|
|
403
|
+
- sorbet/rbi/annotations/mocha.rbi
|
|
404
|
+
- sorbet/rbi/annotations/rainbow.rbi
|
|
405
|
+
- sorbet/rbi/annotations/webmock.rbi
|
|
334
406
|
- sorbet/rbi/dsl/.gitattributes
|
|
335
407
|
- sorbet/rbi/dsl/active_support/callbacks.rbi
|
|
336
408
|
- sorbet/rbi/gems/.gitattributes
|
|
@@ -380,6 +452,7 @@ files:
|
|
|
380
452
|
- sorbet/rbi/gems/listen@3.9.0.rbi
|
|
381
453
|
- sorbet/rbi/gems/logger@1.7.0.rbi
|
|
382
454
|
- sorbet/rbi/gems/lumberjack@1.2.10.rbi
|
|
455
|
+
- sorbet/rbi/gems/marcel@1.1.0.rbi
|
|
383
456
|
- sorbet/rbi/gems/method_source@1.1.0.rbi
|
|
384
457
|
- sorbet/rbi/gems/mime-types-data@3.2025.0617.rbi
|
|
385
458
|
- sorbet/rbi/gems/mime-types@3.7.0.rbi
|
|
@@ -399,7 +472,7 @@ files:
|
|
|
399
472
|
- sorbet/rbi/gems/pry@0.15.2.rbi
|
|
400
473
|
- sorbet/rbi/gems/public_suffix@6.0.2.rbi
|
|
401
474
|
- sorbet/rbi/gems/racc@1.8.1.rbi
|
|
402
|
-
- sorbet/rbi/gems/rack@2.2.
|
|
475
|
+
- sorbet/rbi/gems/rack@2.2.19.rbi
|
|
403
476
|
- sorbet/rbi/gems/rainbow@3.1.1.rbi
|
|
404
477
|
- sorbet/rbi/gems/raix@1.0.2.rbi
|
|
405
478
|
- sorbet/rbi/gems/rake@13.3.0.rbi
|
|
@@ -408,7 +481,7 @@ files:
|
|
|
408
481
|
- sorbet/rbi/gems/rbi@0.3.6.rbi
|
|
409
482
|
- sorbet/rbi/gems/rbs@3.9.4.rbi
|
|
410
483
|
- sorbet/rbi/gems/regexp_parser@2.10.0.rbi
|
|
411
|
-
- sorbet/rbi/gems/rexml@3.4.
|
|
484
|
+
- sorbet/rbi/gems/rexml@3.4.2.rbi
|
|
412
485
|
- sorbet/rbi/gems/rubocop-ast@1.45.1.rbi
|
|
413
486
|
- sorbet/rbi/gems/rubocop-shopify@2.17.1.rbi
|
|
414
487
|
- sorbet/rbi/gems/rubocop-sorbet@0.10.5.rbi
|
|
@@ -417,6 +490,7 @@ files:
|
|
|
417
490
|
- sorbet/rbi/gems/ruby-openai@8.1.0.rbi
|
|
418
491
|
- sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi
|
|
419
492
|
- sorbet/rbi/gems/ruby2_keywords@0.0.5.rbi
|
|
493
|
+
- sorbet/rbi/gems/ruby_llm@1.8.2.rbi
|
|
420
494
|
- sorbet/rbi/gems/securerandom@0.4.1.rbi
|
|
421
495
|
- sorbet/rbi/gems/shellany@0.0.1.rbi
|
|
422
496
|
- sorbet/rbi/gems/simplecov-html@0.13.2.rbi
|
|
@@ -435,6 +509,10 @@ files:
|
|
|
435
509
|
- sorbet/rbi/gems/yard-sorbet@0.9.0.rbi
|
|
436
510
|
- sorbet/rbi/gems/yard@0.9.37.rbi
|
|
437
511
|
- sorbet/rbi/gems/zeitwerk@2.7.3.rbi
|
|
512
|
+
- sorbet/rbi/shims/lib/roast/dsl/cog_input_context.rbi
|
|
513
|
+
- sorbet/rbi/shims/lib/roast/dsl/config_context.rbi
|
|
514
|
+
- sorbet/rbi/shims/lib/roast/dsl/execution_context.rbi
|
|
515
|
+
- sorbet/rbi/todo.rbi
|
|
438
516
|
- sorbet/tapioca/config.yml
|
|
439
517
|
- sorbet/tapioca/require.rb
|
|
440
518
|
homepage: https://github.com/Shopify/roast
|
|
@@ -459,7 +537,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
459
537
|
- !ruby/object:Gem::Version
|
|
460
538
|
version: '0'
|
|
461
539
|
requirements: []
|
|
462
|
-
rubygems_version: 3.7.
|
|
540
|
+
rubygems_version: 3.7.2
|
|
463
541
|
specification_version: 4
|
|
464
542
|
summary: A framework for executing structured AI workflows in Ruby
|
|
465
543
|
test_files: []
|
data/lib/roast/dsl/executor.rb
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
# typed: true
|
|
2
|
-
# frozen_string_literal: true
|
|
3
|
-
|
|
4
|
-
module Roast
|
|
5
|
-
module DSL
|
|
6
|
-
class Executor
|
|
7
|
-
class << self
|
|
8
|
-
def from_file(workflow_path)
|
|
9
|
-
execute(File.read(workflow_path))
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
private
|
|
13
|
-
|
|
14
|
-
def execute(input)
|
|
15
|
-
new.instance_eval(input)
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
# Define methods to be used in workflows below.
|
|
20
|
-
|
|
21
|
-
def shell(command_string)
|
|
22
|
-
output, _status = Roast::Helpers::CmdRunner.capture2e(command_string)
|
|
23
|
-
puts output
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
end
|