roast-ai 0.4.9 → 0.5.0

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 (194) hide show
  1. checksums.yaml +4 -4
  2. data/.claude/commands/docs/write-comments.md +36 -0
  3. data/.github/CODEOWNERS +1 -1
  4. data/.github/workflows/ci.yaml +10 -6
  5. data/.gitignore +0 -1
  6. data/.rubocop.yml +7 -1
  7. data/CLAUDE.md +2 -2
  8. data/CONTRIBUTING.md +2 -0
  9. data/Gemfile +18 -18
  10. data/Gemfile.lock +46 -57
  11. data/README.md +118 -1432
  12. data/README_LEGACY.md +1464 -0
  13. data/Rakefile +39 -4
  14. data/dev.yml +29 -0
  15. data/dsl/agent_sessions.rb +20 -0
  16. data/dsl/async_cogs.rb +49 -0
  17. data/dsl/async_cogs_complex.rb +67 -0
  18. data/dsl/call.rb +44 -0
  19. data/dsl/collect_from.rb +72 -0
  20. data/dsl/demo/Gemfile +4 -0
  21. data/dsl/demo/Gemfile.lock +120 -0
  22. data/dsl/demo/cogs/local.rb +15 -0
  23. data/dsl/demo/simple_external_cog.rb +17 -0
  24. data/dsl/json_output.rb +28 -0
  25. data/dsl/map.rb +55 -0
  26. data/dsl/map_reduce.rb +37 -0
  27. data/dsl/map_with_index.rb +49 -0
  28. data/dsl/next_break.rb +40 -0
  29. data/dsl/next_break_parallel.rb +44 -0
  30. data/dsl/outputs.rb +39 -0
  31. data/dsl/outputs_bang.rb +36 -0
  32. data/dsl/parallel_map.rb +37 -0
  33. data/dsl/plugin-gem-example/.gitignore +8 -0
  34. data/dsl/plugin-gem-example/Gemfile +13 -0
  35. data/dsl/plugin-gem-example/Gemfile.lock +178 -0
  36. data/dsl/plugin-gem-example/lib/other.rb +17 -0
  37. data/dsl/plugin-gem-example/lib/plugin_gem_example.rb +5 -0
  38. data/dsl/plugin-gem-example/lib/simple.rb +15 -0
  39. data/dsl/plugin-gem-example/lib/version.rb +10 -0
  40. data/dsl/plugin-gem-example/plugin-gem-example.gemspec +28 -0
  41. data/dsl/prompts/simple_prompt.md.erb +3 -0
  42. data/dsl/prototype.rb +10 -4
  43. data/dsl/repeat_loop_results.rb +53 -0
  44. data/dsl/ruby_cog.rb +72 -0
  45. data/dsl/simple_agent.rb +18 -0
  46. data/dsl/simple_chat.rb +26 -0
  47. data/dsl/simple_repeat.rb +29 -0
  48. data/dsl/skip.rb +36 -0
  49. data/dsl/step_communication.rb +10 -5
  50. data/dsl/targets_and_params.rb +57 -0
  51. data/dsl/temperature.rb +17 -0
  52. data/dsl/temporary_directory.rb +22 -0
  53. data/dsl/tutorial/01_your_first_workflow/README.md +179 -0
  54. data/dsl/tutorial/01_your_first_workflow/configured_chat.rb +33 -0
  55. data/dsl/tutorial/01_your_first_workflow/hello.rb +23 -0
  56. data/dsl/tutorial/02_chaining_cogs/README.md +310 -0
  57. data/dsl/tutorial/02_chaining_cogs/code_review.rb +104 -0
  58. data/dsl/tutorial/02_chaining_cogs/session_resumption.rb +92 -0
  59. data/dsl/tutorial/02_chaining_cogs/simple_chain.rb +84 -0
  60. data/dsl/tutorial/03_targets_and_params/README.md +230 -0
  61. data/dsl/tutorial/03_targets_and_params/multiple_targets.rb +65 -0
  62. data/dsl/tutorial/03_targets_and_params/single_target.rb +65 -0
  63. data/dsl/tutorial/04_configuration_options/README.md +209 -0
  64. data/dsl/tutorial/04_configuration_options/control_display_and_temperature.rb +104 -0
  65. data/dsl/tutorial/04_configuration_options/simple_config.rb +68 -0
  66. data/dsl/tutorial/05_control_flow/README.md +156 -0
  67. data/dsl/tutorial/05_control_flow/conditional_execution.rb +62 -0
  68. data/dsl/tutorial/05_control_flow/handling_failures.rb +77 -0
  69. data/dsl/tutorial/06_reusable_scopes/README.md +172 -0
  70. data/dsl/tutorial/06_reusable_scopes/accessing_scope_outputs.rb +126 -0
  71. data/dsl/tutorial/06_reusable_scopes/basic_scope.rb +63 -0
  72. data/dsl/tutorial/06_reusable_scopes/parameterized_scope.rb +78 -0
  73. data/dsl/tutorial/07_processing_collections/README.md +152 -0
  74. data/dsl/tutorial/07_processing_collections/basic_map.rb +70 -0
  75. data/dsl/tutorial/07_processing_collections/parallel_map.rb +74 -0
  76. data/dsl/tutorial/08_iterative_workflows/README.md +231 -0
  77. data/dsl/tutorial/08_iterative_workflows/basic_repeat.rb +57 -0
  78. data/dsl/tutorial/08_iterative_workflows/conditional_break.rb +57 -0
  79. data/dsl/tutorial/09_async_cogs/README.md +197 -0
  80. data/dsl/tutorial/09_async_cogs/basic_async.rb +38 -0
  81. data/dsl/tutorial/README.md +222 -0
  82. data/dsl/working_directory.rb +16 -0
  83. data/exe/roast +1 -1
  84. data/internal/documentation/architectural-notes.md +115 -0
  85. data/internal/documentation/doc-comments-external.md +686 -0
  86. data/internal/documentation/doc-comments-internal.md +342 -0
  87. data/internal/documentation/doc-comments.md +211 -0
  88. data/lib/roast/dsl/cog/config.rb +280 -4
  89. data/lib/roast/dsl/cog/input.rb +73 -0
  90. data/lib/roast/dsl/cog/output.rb +313 -0
  91. data/lib/roast/dsl/cog/registry.rb +71 -0
  92. data/lib/roast/dsl/cog/stack.rb +3 -2
  93. data/lib/roast/dsl/cog/store.rb +11 -8
  94. data/lib/roast/dsl/cog.rb +108 -31
  95. data/lib/roast/dsl/cog_input_context.rb +44 -0
  96. data/lib/roast/dsl/cog_input_manager.rb +156 -0
  97. data/lib/roast/dsl/cogs/agent/config.rb +465 -0
  98. data/lib/roast/dsl/cogs/agent/input.rb +81 -0
  99. data/lib/roast/dsl/cogs/agent/output.rb +59 -0
  100. data/lib/roast/dsl/cogs/agent/provider.rb +51 -0
  101. data/lib/roast/dsl/cogs/agent/providers/claude/claude_invocation.rb +185 -0
  102. data/lib/roast/dsl/cogs/agent/providers/claude/message.rb +73 -0
  103. data/lib/roast/dsl/cogs/agent/providers/claude/messages/assistant_message.rb +36 -0
  104. data/lib/roast/dsl/cogs/agent/providers/claude/messages/result_message.rb +61 -0
  105. data/lib/roast/dsl/cogs/agent/providers/claude/messages/system_message.rb +47 -0
  106. data/lib/roast/dsl/cogs/agent/providers/claude/messages/text_message.rb +36 -0
  107. data/lib/roast/dsl/cogs/agent/providers/claude/messages/tool_result_message.rb +47 -0
  108. data/lib/roast/dsl/cogs/agent/providers/claude/messages/tool_use_message.rb +46 -0
  109. data/lib/roast/dsl/cogs/agent/providers/claude/messages/unknown_message.rb +27 -0
  110. data/lib/roast/dsl/cogs/agent/providers/claude/messages/user_message.rb +37 -0
  111. data/lib/roast/dsl/cogs/agent/providers/claude/tool_result.rb +51 -0
  112. data/lib/roast/dsl/cogs/agent/providers/claude/tool_use.rb +48 -0
  113. data/lib/roast/dsl/cogs/agent/providers/claude.rb +31 -0
  114. data/lib/roast/dsl/cogs/agent/stats.rb +92 -0
  115. data/lib/roast/dsl/cogs/agent/usage.rb +62 -0
  116. data/lib/roast/dsl/cogs/agent.rb +75 -0
  117. data/lib/roast/dsl/cogs/chat/config.rb +453 -0
  118. data/lib/roast/dsl/cogs/chat/input.rb +92 -0
  119. data/lib/roast/dsl/cogs/chat/output.rb +64 -0
  120. data/lib/roast/dsl/cogs/chat/session.rb +68 -0
  121. data/lib/roast/dsl/cogs/chat.rb +81 -0
  122. data/lib/roast/dsl/cogs/cmd.rb +291 -27
  123. data/lib/roast/dsl/cogs/ruby.rb +171 -0
  124. data/lib/roast/dsl/command_runner.rb +191 -0
  125. data/lib/roast/dsl/config_context.rb +2 -47
  126. data/lib/roast/dsl/config_manager.rb +143 -0
  127. data/lib/roast/dsl/control_flow.rb +41 -0
  128. data/lib/roast/dsl/execution_context.rb +9 -0
  129. data/lib/roast/dsl/execution_manager.rb +267 -0
  130. data/lib/roast/dsl/nil_assertions.rb +23 -0
  131. data/lib/roast/dsl/system_cog/params.rb +32 -0
  132. data/lib/roast/dsl/system_cog.rb +36 -0
  133. data/lib/roast/dsl/system_cogs/call.rb +162 -0
  134. data/lib/roast/dsl/system_cogs/map.rb +448 -0
  135. data/lib/roast/dsl/system_cogs/repeat.rb +242 -0
  136. data/lib/roast/dsl/workflow.rb +123 -0
  137. data/lib/roast/dsl/workflow_context.rb +20 -0
  138. data/lib/roast/dsl/workflow_params.rb +24 -0
  139. data/lib/roast/sorbet_runtime_stub.rb +154 -0
  140. data/lib/roast/tools/apply_diff.rb +1 -3
  141. data/lib/roast/tools/cmd.rb +4 -3
  142. data/lib/roast/tools/read_file.rb +1 -1
  143. data/lib/roast/tools/update_files.rb +1 -1
  144. data/lib/roast/tools/write_file.rb +1 -1
  145. data/lib/roast/version.rb +1 -1
  146. data/lib/roast/workflow/base_workflow.rb +4 -0
  147. data/lib/roast/workflow/step_loader.rb +14 -2
  148. data/lib/roast-ai.rb +4 -0
  149. data/lib/roast.rb +60 -22
  150. data/{roast.gemspec → roast-ai.gemspec} +10 -13
  151. data/sorbet/config +1 -0
  152. data/sorbet/rbi/gems/async@2.34.0.rbi +1577 -0
  153. data/sorbet/rbi/gems/cli-kit@5.2.0.rbi +2063 -0
  154. data/sorbet/rbi/gems/{cli-ui@2.3.0.rbi → cli-ui@2.7.0-6bdefd1d06305e5d6ae312ac76f9c88f88658dda.rbi} +1418 -1013
  155. data/sorbet/rbi/gems/console@1.34.2.rbi +1193 -0
  156. data/sorbet/rbi/gems/fiber-annotation@0.2.0.rbi +50 -0
  157. data/sorbet/rbi/gems/fiber-local@1.1.0.rbi +35 -0
  158. data/sorbet/rbi/gems/fiber-storage@1.0.1.rbi +41 -0
  159. data/sorbet/rbi/gems/io-event@1.14.0.rbi +724 -0
  160. data/sorbet/rbi/gems/marcel@1.1.0.rbi +239 -0
  161. data/sorbet/rbi/gems/metrics@0.15.0.rbi +9 -0
  162. data/sorbet/rbi/gems/ruby_llm@1.8.2.rbi +5703 -0
  163. data/sorbet/rbi/gems/traces@0.18.2.rbi +9 -0
  164. data/sorbet/rbi/shims/lib/roast/dsl/cog_input_context.rbi +1197 -0
  165. data/sorbet/rbi/shims/lib/roast/dsl/config_context.rbi +314 -2
  166. data/sorbet/rbi/shims/lib/roast/dsl/execution_context.rbi +498 -0
  167. data/sorbet/tapioca/config.yml +6 -0
  168. data/sorbet/tapioca/require.rb +2 -0
  169. metadata +198 -34
  170. data/dsl/less_simple.rb +0 -112
  171. data/dsl/simple.rb +0 -8
  172. data/lib/roast/dsl/cog_execution_context.rb +0 -29
  173. data/lib/roast/dsl/cogs/graph.rb +0 -53
  174. data/lib/roast/dsl/cogs.rb +0 -65
  175. data/lib/roast/dsl/executor.rb +0 -82
  176. data/lib/roast/dsl/workflow_execution_context.rb +0 -47
  177. data/sorbet/rbi/gems/cgi@0.5.0.rbi +0 -2961
  178. data/sorbet/rbi/gems/claude_swarm@0.1.19.rbi +0 -568
  179. data/sorbet/rbi/gems/cli-kit@5.0.1.rbi +0 -1991
  180. data/sorbet/rbi/gems/dry-configurable@1.3.0.rbi +0 -672
  181. data/sorbet/rbi/gems/dry-core@1.1.0.rbi +0 -1894
  182. data/sorbet/rbi/gems/dry-inflector@1.2.0.rbi +0 -659
  183. data/sorbet/rbi/gems/dry-initializer@3.2.0.rbi +0 -781
  184. data/sorbet/rbi/gems/dry-logic@1.6.0.rbi +0 -1127
  185. data/sorbet/rbi/gems/dry-schema@1.14.1.rbi +0 -3727
  186. data/sorbet/rbi/gems/dry-types@1.8.3.rbi +0 -3969
  187. data/sorbet/rbi/gems/fast-mcp-annotations@1.5.3.rbi +0 -1588
  188. data/sorbet/rbi/gems/mime-types-data@3.2025.0617.rbi +0 -136
  189. data/sorbet/rbi/gems/mime-types@3.7.0.rbi +0 -1342
  190. data/sorbet/rbi/gems/rack@2.2.18.rbi +0 -5659
  191. data/sorbet/rbi/gems/rbs-inline@0.12.0.rbi +0 -2170
  192. data/sorbet/rbi/gems/yard-sorbet@0.9.0.rbi +0 -435
  193. data/sorbet/rbi/gems/yard@0.9.37.rbi +0 -18492
  194. data/sorbet/rbi/shims/lib/roast/dsl/workflow_execution_context.rbi +0 -11
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fc01ff6a90dbe17c735b17935bb75bcfda0ee47c0b9dbee6234292cc4f5f3799
4
- data.tar.gz: caa21e581b5476a65c2dc8b0b7a27f1b20baf2f493260d954785724f73a3ff40
3
+ metadata.gz: 2ee882d792c1c09ecc9a023aa1f26825dff3442a8c4152da789078157e26540e
4
+ data.tar.gz: 51d5d1238e32c5ad6ce9f3d24c3d224d0709da3f3da4e10905f75049dd02f6d7
5
5
  SHA512:
6
- metadata.gz: 6ea65bb2381627119b5740f9353b064d046e26b2769e0be36baf3f13b9696e30e6bd6332fbbf8c4305fea33d1b2bb12d81a4a56871f3793c3718e2ac8407c6ae
7
- data.tar.gz: 23ff60c01817d64bae76bb16c0395d8cc7aa95cd621550cebc5fc6763fcf5ba8a023542bf07b49067fa9210d8f228f538b0e82159d897397d08532deece73bc4
6
+ metadata.gz: 440bdf957c01418d111bdea73de04b707baf7034f1277ddc5c78fa09ee68833cf1f4538d0f0a5eb691ece68f9c80ad9f159949b818658e4a97ef029a6ec999a3
7
+ data.tar.gz: dc01a98d049b9fae42a28697bb09eacf9dc0766c734eafa6bd1bc1402d8c50109d79d5e03304a3e9914e92a718a4fbbd5cf58cbb7beeeee46a643aa167090e5a
@@ -0,0 +1,36 @@
1
+ Write documentation comments for public methods in the specified file or class.
2
+
3
+ ## Arguments
4
+
5
+ Accepts either:
6
+ - A file path, like `lib/roast/dsl/cogs/chat/config.rb`
7
+ - A class name, like `Roast::DSL::Cogs::Chat::Config`
8
+
9
+ ## Task
10
+
11
+ Following the guidelines in `internal/documentation/`:
12
+
13
+ 1. **Determine documentation type:**
14
+ - For Config, Input, Output classes → Use `doc-comments-external.md` (user-facing, thorough)
15
+ - For cog classes, Params classes, `execute` methods, internal utilities → Use `doc-comments-internal.md` (developer-facing, concise)
16
+ - See `doc-comments.md` for the distinction
17
+
18
+ 2. Review existing documentation comments in the target file/class
19
+ 3. Write doc comments for any public methods that lack them
20
+ 4. Update existing doc comments to match current standards
21
+ 5. Cross-reference related methods (for user-facing documentation only)
22
+ 6. Replace any rough developer notes with polished documentation
23
+
24
+ **Note:** User-facing documentation should be thorough with `#### See Also` sections.
25
+ Developer-facing documentation should be concise without cross-references.
26
+
27
+ ## Important Constraints
28
+
29
+ - Only examine and modify files in the `lib/roast/dsl/` directory
30
+ - Only write/edit comments in the specific file or class requested
31
+ - Ignore `field` definitions in Config classes
32
+ - Do not modify any other files
33
+
34
+ ## Immediate Instructions
35
+
36
+ Operate on this file/class: $ARGUMENTS
data/.github/CODEOWNERS CHANGED
@@ -1,2 +1,2 @@
1
- * @nfgrep @dersam @obie @juniper-shopify
1
+ * @nfgrep @dersam @juniper-shopify @mathiusj
2
2
 
@@ -3,13 +3,16 @@ name: ci
3
3
  on:
4
4
  pull_request:
5
5
  branches:
6
- - main
6
+ - '**'
7
7
  push:
8
8
  branches:
9
9
  - main
10
10
  schedule:
11
11
  - cron: '45 4 * * *'
12
12
 
13
+ env:
14
+ CI: true
15
+
13
16
  jobs:
14
17
  rubies:
15
18
  strategy:
@@ -24,13 +27,14 @@ jobs:
24
27
  steps:
25
28
  - uses: actions/checkout@v4
26
29
  - name: Install dependencies
27
- run: sudo apt-get update && sudo apt-get install -y ripgrep graphviz
30
+ run: sudo apt-get update && sudo apt-get install -y ripgrep graphviz wamerican
28
31
  - uses: ruby/setup-ruby@v1
29
32
  with:
30
33
  ruby-version: ${{ matrix.ruby }}
31
34
  bundler-cache: true
32
- - run: bundle exec rake minitest_old
33
- - run: bundle exec rake minitest_functional
35
+ - run: bundle exec rake sorbet
34
36
  - run: bundle exec rake rubocop_ci
35
- - run: bin/srb tc
36
-
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
data/.gitignore CHANGED
@@ -22,5 +22,4 @@ bin/claude-swarm
22
22
  coverage
23
23
 
24
24
  .dev
25
- dev.yml
26
25
  .shadowenv
data/.rubocop.yml CHANGED
@@ -20,6 +20,10 @@ AllCops:
20
20
  TargetRubyVersion: 3.4
21
21
  UseCache: true
22
22
 
23
+ Naming/FileName:
24
+ Exclude:
25
+ - "lib/roast-ai.rb"
26
+
23
27
  Sorbet/FalseSigil:
24
28
  Enabled: true
25
29
  Include:
@@ -27,12 +31,14 @@ Sorbet/FalseSigil:
27
31
  Exclude:
28
32
  - "test/**/*"
29
33
  - "examples/**/*"
34
+ - "lib/roast/sorbet_runtime_stub.rb"
30
35
 
31
36
  Roast/UseCmdRunner:
32
37
  Enabled: true
33
38
  Exclude:
34
39
  - 'lib/roast/helpers/cmd_runner.rb'
35
- - 'roast.gemspec'
40
+ - 'lib/roast/dsl/command_runner.rb'
41
+ - 'roast-ai.gemspec'
36
42
 
37
43
  Style/MethodCallWithArgsParentheses:
38
44
  Enabled: true
data/CLAUDE.md CHANGED
@@ -28,7 +28,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
28
28
  - Documentation: Include method/class documentation with examples when appropriate
29
29
  - Dependencies: Prefer existing gems in the Gemfile before adding new ones
30
30
  - Define class methods inside `class << self; end` declarations.
31
- - Add runtime dependencies to `roast.gemspec`.
31
+ - Add runtime dependencies to `roast-ai.gemspec`.
32
32
  - Add development dependencies to `Gemfile`.
33
33
  - Don't ever test private methods directly. Specs should test behavior, not implementation.
34
34
  - I do not like test-specific code embedded in production code, don't ever do that
@@ -264,4 +264,4 @@ gh project item-add {project_number} --url https://github.com/Shopify/roast/issu
264
264
  - To apply color to terminal output using CLI::UI, use the following syntax:
265
265
  ```ruby
266
266
  puts ::CLI::UI.fmt("{{red:This field is required. Please provide a value.}}")
267
- ```
267
+ ```
data/CONTRIBUTING.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # How to contribute
2
2
 
3
+ > **📢 Code Freeze Notice**: This project is currently under a limited code freeze while we work on an alternative frontend (a DSL). We are still accepting **bug fixes**, but **new features** will not be merged until the DSL is released. Thank you for your understanding!
4
+
3
5
  ## Things we will merge
4
6
 
5
7
  * Bugfixes
data/Gemfile CHANGED
@@ -4,24 +4,24 @@ source "https://rubygems.org"
4
4
 
5
5
  git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
6
6
 
7
- # Specify your gem's dependencies in roast.gemspec
7
+ # Specify your gem's dependencies in roast-ai.gemspec
8
8
  gemspec
9
9
 
10
- gem "cgi"
11
- gem "cli-ui", "2.3.0"
12
- gem "dotenv"
13
- gem "guard"
14
- gem "guard-minitest"
15
- gem "mocha"
16
- gem "rake", require: false
17
- gem "rubocop-shopify", require: false
18
- gem "rubocop-sorbet", require: false
19
- gem "simplecov", require: false
20
- gem "minitest-rg"
21
- gem "vcr", require: false
22
- gem "webmock", require: false
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"
23
13
 
24
- gem "sorbet", require: false
25
- gem "tapioca", require: false
26
-
27
- gem "claude_swarm"
14
+ group :development, :test do
15
+ gem "guard-minitest"
16
+ gem "guard"
17
+ gem "minitest-rg"
18
+ gem "mocha"
19
+ gem "rake", require: false
20
+ gem "rubocop-shopify", require: false
21
+ gem "rubocop-sorbet", require: false
22
+ gem "simplecov", require: false
23
+ gem "sorbet", "~> 0.5.12414", require: false
24
+ gem "tapioca", "~> 0.16.11", require: false
25
+ gem "vcr", require: false
26
+ gem "webmock", require: false
27
+ end
data/Gemfile.lock CHANGED
@@ -1,15 +1,26 @@
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
+
1
8
  PATH
2
9
  remote: .
3
10
  specs:
4
- roast-ai (0.4.9)
11
+ roast-ai (0.5.0)
5
12
  activesupport (>= 7.0)
6
- cli-kit (~> 5.0)
7
- cli-ui (= 2.3.0)
13
+ async (~> 2.34)
14
+ benchmark (~> 0.4.1)
15
+ cli-kit (~> 5.2)
16
+ cli-ui (~> 2.7)
8
17
  diff-lcs (~> 1.5)
9
18
  json-schema
10
19
  open_router (~> 0.3)
11
20
  raix (~> 1.0.2)
21
+ rake (~> 13.3.0)
12
22
  ruby-graphviz (~> 1.2)
23
+ ruby_llm
13
24
  sqlite3 (~> 2.6)
14
25
  thor (~> 1.3)
15
26
  zeitwerk (~> 2.6)
@@ -33,19 +44,24 @@ GEM
33
44
  addressable (2.8.7)
34
45
  public_suffix (>= 2.0.2, < 7.0)
35
46
  ast (2.4.3)
47
+ async (2.34.0)
48
+ console (~> 1.29)
49
+ fiber-annotation
50
+ io-event (~> 1.11)
51
+ metrics (~> 0.12)
52
+ traces (~> 0.18)
36
53
  base64 (0.3.0)
37
54
  benchmark (0.4.1)
38
55
  bigdecimal (3.2.2)
39
- cgi (0.5.0)
40
- claude_swarm (0.1.19)
41
- fast-mcp-annotations
42
- thor (~> 1.3)
43
- cli-kit (5.0.1)
44
- cli-ui (~> 2.0)
45
- cli-ui (2.3.0)
56
+ cli-kit (5.2.0)
57
+ cli-ui (~> 2.4)
46
58
  coderay (1.1.3)
47
59
  concurrent-ruby (1.3.5)
48
60
  connection_pool (2.5.3)
61
+ console (1.34.2)
62
+ fiber-annotation
63
+ fiber-local (~> 1.1)
64
+ json
49
65
  crack (1.0.0)
50
66
  bigdecimal
51
67
  rexml
@@ -53,35 +69,6 @@ GEM
53
69
  docile (1.4.1)
54
70
  dotenv (3.1.8)
55
71
  drb (2.2.3)
56
- dry-configurable (1.3.0)
57
- dry-core (~> 1.1)
58
- zeitwerk (~> 2.6)
59
- dry-core (1.1.0)
60
- concurrent-ruby (~> 1.0)
61
- logger
62
- zeitwerk (~> 2.6)
63
- dry-inflector (1.2.0)
64
- dry-initializer (3.2.0)
65
- dry-logic (1.6.0)
66
- bigdecimal
67
- concurrent-ruby (~> 1.0)
68
- dry-core (~> 1.1)
69
- zeitwerk (~> 2.6)
70
- dry-schema (1.14.1)
71
- concurrent-ruby (~> 1.0)
72
- dry-configurable (~> 1.0, >= 1.0.1)
73
- dry-core (~> 1.1)
74
- dry-initializer (~> 3.2)
75
- dry-logic (~> 1.5)
76
- dry-types (~> 1.8)
77
- zeitwerk (~> 2.6)
78
- dry-types (1.8.3)
79
- bigdecimal (~> 3.0)
80
- concurrent-ruby (~> 1.0)
81
- dry-core (~> 1.0)
82
- dry-inflector (~> 1.0)
83
- dry-logic (~> 1.4)
84
- zeitwerk (~> 2.6)
85
72
  erubi (1.13.1)
86
73
  event_stream_parser (1.0.0)
87
74
  faraday (2.13.1)
@@ -94,15 +81,12 @@ GEM
94
81
  net-http (>= 0.5.0)
95
82
  faraday-retry (2.3.2)
96
83
  faraday (~> 2.0)
97
- fast-mcp-annotations (1.5.3)
98
- addressable (~> 2.8)
99
- base64
100
- dry-schema (~> 1.14)
101
- json (~> 2.0)
102
- mime-types (~> 3.4)
103
- rack (< 3)
104
84
  ffi (1.17.2-arm64-darwin)
105
85
  ffi (1.17.2-x86_64-linux-gnu)
86
+ fiber-annotation (0.2.0)
87
+ fiber-local (1.1.0)
88
+ fiber-storage
89
+ fiber-storage (1.0.1)
106
90
  formatador (1.1.0)
107
91
  guard (2.19.1)
108
92
  formatador (>= 0.2.4)
@@ -122,6 +106,7 @@ GEM
122
106
  hashdiff (1.2.0)
123
107
  i18n (1.14.7)
124
108
  concurrent-ruby (~> 1.0)
109
+ io-event (1.14.0)
125
110
  json (2.12.2)
126
111
  json-schema (5.1.1)
127
112
  addressable (~> 2.8)
@@ -133,11 +118,9 @@ GEM
133
118
  rb-inotify (~> 0.9, >= 0.9.10)
134
119
  logger (1.7.0)
135
120
  lumberjack (1.2.10)
121
+ marcel (1.1.0)
136
122
  method_source (1.1.0)
137
- mime-types (3.7.0)
138
- logger
139
- mime-types-data (~> 3.2025, >= 3.2025.0507)
140
- mime-types-data (3.2025.0617)
123
+ metrics (0.15.0)
141
124
  minitest (5.25.5)
142
125
  minitest-rg (5.3.0)
143
126
  minitest (~> 5.0)
@@ -167,7 +150,6 @@ GEM
167
150
  method_source (~> 1.0)
168
151
  public_suffix (6.0.2)
169
152
  racc (1.8.1)
170
- rack (2.2.19)
171
153
  rainbow (3.1.1)
172
154
  raix (1.0.2)
173
155
  activesupport (>= 6.0)
@@ -213,6 +195,15 @@ GEM
213
195
  faraday-multipart (>= 1)
214
196
  ruby-progressbar (1.13.0)
215
197
  ruby2_keywords (0.0.5)
198
+ ruby_llm (1.8.2)
199
+ base64
200
+ event_stream_parser (~> 1)
201
+ faraday (>= 1.10.0)
202
+ faraday-multipart (>= 1)
203
+ faraday-net_http (>= 1)
204
+ faraday-retry (>= 1)
205
+ marcel (~> 1.0)
206
+ zeitwerk (~> 2)
216
207
  securerandom (0.4.1)
217
208
  shellany (0.0.1)
218
209
  simplecov (0.22.0)
@@ -249,6 +240,7 @@ GEM
249
240
  thor (>= 1.2.0)
250
241
  yard-sorbet
251
242
  thor (1.4.0)
243
+ traces (0.18.2)
252
244
  tzinfo (2.0.6)
253
245
  concurrent-ruby (~> 1.0)
254
246
  unicode-display_width (3.1.4)
@@ -272,10 +264,7 @@ PLATFORMS
272
264
  x86_64-linux
273
265
 
274
266
  DEPENDENCIES
275
- cgi
276
- claude_swarm
277
- cli-ui (= 2.3.0)
278
- dotenv
267
+ cli-ui!
279
268
  guard
280
269
  guard-minitest
281
270
  minitest-rg
@@ -285,8 +274,8 @@ DEPENDENCIES
285
274
  rubocop-shopify
286
275
  rubocop-sorbet
287
276
  simplecov
288
- sorbet
289
- tapioca
277
+ sorbet (~> 0.5.12414)
278
+ tapioca (~> 0.16.11)
290
279
  vcr
291
280
  webmock
292
281