roast-ai 0.5.1 → 0.5.2
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/Gemfile +1 -0
- data/Gemfile.lock +15 -14
- data/dsl/demo/Gemfile.lock +36 -15
- data/dsl/simple_agent.rb +1 -1
- data/lib/roast/dsl/cog/config.rb +3 -1
- data/lib/roast/dsl/cogs/agent/config.rb +57 -13
- data/lib/roast/dsl/cogs/agent/providers/claude/claude_invocation.rb +3 -1
- data/lib/roast/dsl/cogs/chat/config.rb +1 -1
- data/lib/roast/dsl/workflow.rb +2 -2
- data/lib/roast/version.rb +1 -1
- data/lib/roast.rb +14 -2
- data/roast-ai.gemspec +13 -13
- data/sorbet/rbi/shims/lib/roast/dsl/config_context.rbi +5 -3
- metadata +27 -27
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 45106bfcf14cd8dac143f9b31331d5c272cba04152390097debb22a466edd4cd
|
|
4
|
+
data.tar.gz: 8097250f8cc80405c0002928a946a0635c430e6d631de51f62487e356ec19891
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9b6a836153aeeda05efd1c30b0be46453709bb9a4bb3480aed00b136da3ecd566f4b6d8a2ad6f88e5a19ee5774dfe42621a0239b7b0a5b3c0d192f29e25efc08
|
|
7
|
+
data.tar.gz: d4591075f64cc6e4ca0e14d0ea8555026f4bd3211fb6ebfd80c03c4a92897abbd47a0269e9f40e356a3b8e420165aa231d4e8196b7827c4cac6d3955c645b24c
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -8,22 +8,22 @@ GIT
|
|
|
8
8
|
PATH
|
|
9
9
|
remote: .
|
|
10
10
|
specs:
|
|
11
|
-
roast-ai (0.5.
|
|
11
|
+
roast-ai (0.5.2)
|
|
12
12
|
activesupport (>= 7.0)
|
|
13
|
-
async (
|
|
14
|
-
benchmark (
|
|
15
|
-
cli-kit (
|
|
16
|
-
cli-ui (
|
|
17
|
-
diff-lcs (
|
|
18
|
-
json-schema
|
|
19
|
-
open_router (
|
|
13
|
+
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
20
|
raix (~> 1.0.2)
|
|
21
|
-
rake (
|
|
22
|
-
ruby-graphviz (
|
|
23
|
-
ruby_llm
|
|
24
|
-
sqlite3 (
|
|
25
|
-
thor (
|
|
26
|
-
zeitwerk (
|
|
21
|
+
rake (>= 13.3.0)
|
|
22
|
+
ruby-graphviz (>= 1.2)
|
|
23
|
+
ruby_llm (>= 1.8)
|
|
24
|
+
sqlite3 (>= 2.6)
|
|
25
|
+
thor (>= 1.3)
|
|
26
|
+
zeitwerk (>= 2.6)
|
|
27
27
|
|
|
28
28
|
GEM
|
|
29
29
|
remote: https://rubygems.org/
|
|
@@ -267,6 +267,7 @@ DEPENDENCIES
|
|
|
267
267
|
cli-ui!
|
|
268
268
|
guard
|
|
269
269
|
guard-minitest
|
|
270
|
+
minitest (~> 5.0)
|
|
270
271
|
minitest-rg
|
|
271
272
|
mocha
|
|
272
273
|
rake
|
data/dsl/demo/Gemfile.lock
CHANGED
|
@@ -1,19 +1,22 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: ../..
|
|
3
3
|
specs:
|
|
4
|
-
roast-ai (0.
|
|
4
|
+
roast-ai (0.5.1)
|
|
5
5
|
activesupport (>= 7.0)
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
6
|
+
async (>= 2.34)
|
|
7
|
+
benchmark (>= 0.4.1)
|
|
8
|
+
cli-kit (>= 5.2)
|
|
9
|
+
cli-ui (>= 2.7)
|
|
10
|
+
diff-lcs (>= 1.5)
|
|
11
|
+
json-schema (>= 5.1)
|
|
12
|
+
open_router (>= 0.3)
|
|
13
|
+
raix (>= 1.0.2)
|
|
14
|
+
rake (>= 13.3.0)
|
|
15
|
+
ruby-graphviz (>= 1.2)
|
|
16
|
+
ruby_llm (>= 1.8)
|
|
17
|
+
sqlite3 (>= 2.6)
|
|
18
|
+
thor (>= 1.3)
|
|
19
|
+
zeitwerk (>= 2.6)
|
|
17
20
|
|
|
18
21
|
PATH
|
|
19
22
|
remote: ../plugin-gem-example
|
|
@@ -38,14 +41,24 @@ GEM
|
|
|
38
41
|
uri (>= 0.13.1)
|
|
39
42
|
addressable (2.8.7)
|
|
40
43
|
public_suffix (>= 2.0.2, < 7.0)
|
|
44
|
+
async (2.34.0)
|
|
45
|
+
console (~> 1.29)
|
|
46
|
+
fiber-annotation
|
|
47
|
+
io-event (~> 1.11)
|
|
48
|
+
metrics (~> 0.12)
|
|
49
|
+
traces (~> 0.18)
|
|
41
50
|
base64 (0.3.0)
|
|
42
51
|
benchmark (0.4.1)
|
|
43
52
|
bigdecimal (3.3.1)
|
|
44
|
-
cli-kit (5.0
|
|
45
|
-
cli-ui (~> 2.
|
|
46
|
-
cli-ui (2.
|
|
53
|
+
cli-kit (5.2.0)
|
|
54
|
+
cli-ui (~> 2.4)
|
|
55
|
+
cli-ui (2.7.0)
|
|
47
56
|
concurrent-ruby (1.3.5)
|
|
48
57
|
connection_pool (2.5.4)
|
|
58
|
+
console (1.34.2)
|
|
59
|
+
fiber-annotation
|
|
60
|
+
fiber-local (~> 1.1)
|
|
61
|
+
json
|
|
49
62
|
diff-lcs (1.6.2)
|
|
50
63
|
dotenv (3.1.8)
|
|
51
64
|
drb (2.2.3)
|
|
@@ -60,14 +73,20 @@ GEM
|
|
|
60
73
|
net-http (>= 0.5.0)
|
|
61
74
|
faraday-retry (2.3.2)
|
|
62
75
|
faraday (~> 2.0)
|
|
76
|
+
fiber-annotation (0.2.0)
|
|
77
|
+
fiber-local (1.1.0)
|
|
78
|
+
fiber-storage
|
|
79
|
+
fiber-storage (1.0.1)
|
|
63
80
|
i18n (1.14.7)
|
|
64
81
|
concurrent-ruby (~> 1.0)
|
|
82
|
+
io-event (1.14.0)
|
|
65
83
|
json (2.15.1)
|
|
66
84
|
json-schema (6.0.0)
|
|
67
85
|
addressable (~> 2.8)
|
|
68
86
|
bigdecimal (~> 3.1)
|
|
69
87
|
logger (1.7.0)
|
|
70
88
|
marcel (1.1.0)
|
|
89
|
+
metrics (0.15.0)
|
|
71
90
|
minitest (5.26.0)
|
|
72
91
|
multipart-post (2.4.1)
|
|
73
92
|
net-http (0.6.0)
|
|
@@ -85,6 +104,7 @@ GEM
|
|
|
85
104
|
open_router (~> 0.2)
|
|
86
105
|
ostruct
|
|
87
106
|
ruby-openai (~> 8.1)
|
|
107
|
+
rake (13.3.1)
|
|
88
108
|
rexml (3.4.4)
|
|
89
109
|
ruby-graphviz (1.2.5)
|
|
90
110
|
rexml
|
|
@@ -104,6 +124,7 @@ GEM
|
|
|
104
124
|
securerandom (0.4.1)
|
|
105
125
|
sqlite3 (2.7.4-arm64-darwin)
|
|
106
126
|
thor (1.4.0)
|
|
127
|
+
traces (0.18.2)
|
|
107
128
|
tzinfo (2.0.6)
|
|
108
129
|
concurrent-ruby (~> 1.0)
|
|
109
130
|
uri (1.0.4)
|
data/dsl/simple_agent.rb
CHANGED
data/lib/roast/dsl/cog/config.rb
CHANGED
|
@@ -242,7 +242,9 @@ module Roast
|
|
|
242
242
|
# ---
|
|
243
243
|
#
|
|
244
244
|
# __Important Note__: this configuration option only applies to external commands invoked by a cog
|
|
245
|
-
# It does not affect the working directory in which Roast is running.
|
|
245
|
+
# It does not affect the working directory in which Roast is running. In fact, changing the working
|
|
246
|
+
# directory of the Roast process can have unpredictable results when running async cogs and/or
|
|
247
|
+
# parallel maps.
|
|
246
248
|
#
|
|
247
249
|
# ---
|
|
248
250
|
#
|
|
@@ -132,39 +132,83 @@ module Roast
|
|
|
132
132
|
@values[:model].presence
|
|
133
133
|
end
|
|
134
134
|
|
|
135
|
-
# Configure the cog with
|
|
135
|
+
# Configure the cog with a custom system prompt that will completely replace the agent's
|
|
136
|
+
# default system prompt every time the agent is invoked
|
|
137
|
+
#
|
|
138
|
+
# #### See Also
|
|
139
|
+
# - `no_replace_system_prompt!`
|
|
140
|
+
# - `append_system_prompt`
|
|
141
|
+
#
|
|
142
|
+
#: (String) -> void
|
|
143
|
+
def replace_system_prompt(prompt)
|
|
144
|
+
@values[:replace_system_prompt] = prompt
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
# Configure the cog __not__ to replace the agent's default system prompt
|
|
148
|
+
#
|
|
149
|
+
# This is the default behaviour.
|
|
150
|
+
#
|
|
151
|
+
# #### See Also
|
|
152
|
+
# - `replace_system_prompt`
|
|
153
|
+
#
|
|
154
|
+
#: () -> void
|
|
155
|
+
def no_replace_system_prompt!
|
|
156
|
+
@values[:replace_system_prompt] = ""
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
# Get the validated, configured replacement system prompt
|
|
160
|
+
#
|
|
161
|
+
# Returns `nil` if the default system prompt should __not__ be replaced.
|
|
162
|
+
#
|
|
163
|
+
# #### See Also
|
|
164
|
+
# - `replace_system_prompt`
|
|
165
|
+
# - `no_replace_system_prompt!`
|
|
166
|
+
#
|
|
167
|
+
#: () -> String?
|
|
168
|
+
def valid_replace_system_prompt
|
|
169
|
+
@values[:replace_system_prompt].presence
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
# Configure the cog with a prompt component that will be appended to the agent's system prompt
|
|
136
173
|
# every time the agent is invoked
|
|
137
174
|
#
|
|
175
|
+
# Use this to add custom instructions while preserving the provider's default system prompt.
|
|
176
|
+
#
|
|
177
|
+
# This can also be combined with with `replace_system_prompt`.
|
|
178
|
+
#
|
|
138
179
|
# #### See Also
|
|
139
|
-
# - `
|
|
180
|
+
# - `no_append_system_prompt!`
|
|
181
|
+
# - `replace_system_prompt`
|
|
140
182
|
#
|
|
141
183
|
#: (String) -> void
|
|
142
|
-
def
|
|
143
|
-
@values[:
|
|
184
|
+
def append_system_prompt(prompt)
|
|
185
|
+
@values[:append_system_prompt] = prompt
|
|
144
186
|
end
|
|
145
187
|
|
|
146
|
-
# Configure the cog __not__ to append
|
|
188
|
+
# Configure the cog __not__ to append anything to the agent's system prompt when the agent is invoked
|
|
189
|
+
#
|
|
190
|
+
# This is the default behaviour.
|
|
147
191
|
#
|
|
148
192
|
# #### See Also
|
|
149
|
-
# - `
|
|
193
|
+
# - `append_system_prompt`
|
|
150
194
|
#
|
|
151
195
|
#: () -> void
|
|
152
|
-
def
|
|
153
|
-
@values[:
|
|
196
|
+
def no_append_system_prompt!
|
|
197
|
+
@values[:append_system_prompt] = ""
|
|
154
198
|
end
|
|
155
199
|
|
|
156
|
-
# Get the validated, configured
|
|
200
|
+
# Get the validated, configured prompt that will be appended to the agent's system prompt when
|
|
157
201
|
# the agent is invoked
|
|
158
202
|
#
|
|
159
203
|
# Returns `nil` if __no__ prompt should be appended.
|
|
160
204
|
#
|
|
161
205
|
# #### See Also
|
|
162
|
-
# - `
|
|
163
|
-
# - `
|
|
206
|
+
# - `append_system_prompt`
|
|
207
|
+
# - `no_append_system_prompt!`
|
|
164
208
|
#
|
|
165
209
|
#: () -> String?
|
|
166
|
-
def
|
|
167
|
-
@values[:
|
|
210
|
+
def valid_append_system_prompt
|
|
211
|
+
@values[:append_system_prompt].presence
|
|
168
212
|
end
|
|
169
213
|
|
|
170
214
|
# Configure the cog to apply the default set of system and user permissions when running the agent
|
|
@@ -58,7 +58,8 @@ module Roast
|
|
|
58
58
|
def initialize(config, input)
|
|
59
59
|
@base_command = config.valid_command #: (String | Array[String])?
|
|
60
60
|
@model = config.valid_model #: String?
|
|
61
|
-
@append_system_prompt = config.
|
|
61
|
+
@append_system_prompt = config.valid_append_system_prompt #: String?
|
|
62
|
+
@replace_system_prompt = config.valid_replace_system_prompt #: String?
|
|
62
63
|
@apply_permissions = config.apply_permissions? #: bool
|
|
63
64
|
@working_directory = config.valid_working_directory #: Pathname?
|
|
64
65
|
@prompt = input.valid_prompt! #: String
|
|
@@ -171,6 +172,7 @@ module Roast
|
|
|
171
172
|
end
|
|
172
173
|
command.push("-p", "--verbose", "--output-format", "stream-json")
|
|
173
174
|
command.push("--model", @model) if @model
|
|
175
|
+
command.push("--system-prompt", @replace_system_prompt) if @replace_system_prompt
|
|
174
176
|
command.push("--append-system-prompt", @append_system_prompt) if @append_system_prompt
|
|
175
177
|
command.push("--fork-session", "--resume", @session) if @session.present?
|
|
176
178
|
command << "--dangerously-skip-permissions" unless @apply_permissions
|
|
@@ -147,7 +147,7 @@ module Roast
|
|
|
147
147
|
#
|
|
148
148
|
#: () -> String
|
|
149
149
|
def valid_base_url
|
|
150
|
-
@values.fetch(:
|
|
150
|
+
@values.fetch(:base_url, ENV[PROVIDERS.dig(valid_provider!, :base_url_env_var).not_nil!]) ||
|
|
151
151
|
PROVIDERS.dig(valid_provider!, :default_base_url)
|
|
152
152
|
end
|
|
153
153
|
|
data/lib/roast/dsl/workflow.rb
CHANGED
|
@@ -11,7 +11,7 @@ module Roast
|
|
|
11
11
|
class InvalidCogReference < WorkflowError; end
|
|
12
12
|
|
|
13
13
|
class << self
|
|
14
|
-
#: (String, WorkflowParams) -> void
|
|
14
|
+
#: (String | Pathname, WorkflowParams) -> void
|
|
15
15
|
def from_file(workflow_path, params)
|
|
16
16
|
Dir.mktmpdir("roast-") do |tmpdir|
|
|
17
17
|
workflow_context = WorkflowContext.new(params:, tmpdir:)
|
|
@@ -22,7 +22,7 @@ module Roast
|
|
|
22
22
|
end
|
|
23
23
|
end
|
|
24
24
|
|
|
25
|
-
#: (String, WorkflowContext) -> void
|
|
25
|
+
#: (String | Pathname, WorkflowContext) -> void
|
|
26
26
|
def initialize(workflow_path, workflow_context)
|
|
27
27
|
@workflow_path = Pathname.new(workflow_path) #: Pathname
|
|
28
28
|
@workflow_context = workflow_context #: WorkflowContext
|
data/lib/roast/version.rb
CHANGED
data/lib/roast.rb
CHANGED
|
@@ -87,8 +87,20 @@ module Roast
|
|
|
87
87
|
targets, workflow_args, workflow_kwargs = parse_custom_workflow_args(files, ARGV)
|
|
88
88
|
targets.unshift(options[:target]) if options[:target]
|
|
89
89
|
workflow_params = Roast::DSL::WorkflowParams.new(targets, workflow_args, workflow_kwargs)
|
|
90
|
-
|
|
91
|
-
|
|
90
|
+
|
|
91
|
+
# If the workflow is running with a working directory specified to be different from the current directory
|
|
92
|
+
# from which Roast was run, and the workflow file if specified with a relative path, check for it relative
|
|
93
|
+
# to the current directory first, and then relative to the working directory specified for the workflow.
|
|
94
|
+
roast_working_directory = Pathname.new(File.expand_path(ENV["ROAST_WORKING_DIRECTORY"] || Dir.pwd))
|
|
95
|
+
workflow_path = Pathname.new(workflow_path)
|
|
96
|
+
real_workflow_path = if workflow_path.absolute? || workflow_path.exist?
|
|
97
|
+
workflow_path
|
|
98
|
+
else
|
|
99
|
+
roast_working_directory / workflow_path
|
|
100
|
+
end.realpath
|
|
101
|
+
|
|
102
|
+
Dir.chdir(roast_working_directory) do
|
|
103
|
+
Roast::DSL::Workflow.from_file(real_workflow_path, workflow_params)
|
|
92
104
|
end
|
|
93
105
|
else
|
|
94
106
|
expanded_workflow_path = if workflow_path.include?("workflow.yml")
|
data/roast-ai.gemspec
CHANGED
|
@@ -30,18 +30,18 @@ Gem::Specification.new do |spec|
|
|
|
30
30
|
spec.require_paths = ["lib"]
|
|
31
31
|
|
|
32
32
|
spec.add_dependency("activesupport", ">= 7.0")
|
|
33
|
-
spec.add_dependency("async", "
|
|
34
|
-
spec.add_dependency("benchmark", "
|
|
35
|
-
spec.add_dependency("cli-kit", "
|
|
36
|
-
spec.add_dependency("cli-ui", "
|
|
37
|
-
spec.add_dependency("diff-lcs", "
|
|
38
|
-
spec.add_dependency("json-schema")
|
|
39
|
-
spec.add_dependency("open_router", "
|
|
33
|
+
spec.add_dependency("async", ">= 2.34")
|
|
34
|
+
spec.add_dependency("benchmark", ">= 0.4.1")
|
|
35
|
+
spec.add_dependency("cli-kit", ">= 5.2")
|
|
36
|
+
spec.add_dependency("cli-ui", ">= 2.7")
|
|
37
|
+
spec.add_dependency("diff-lcs", ">= 1.5")
|
|
38
|
+
spec.add_dependency("json-schema", ">= 5.1")
|
|
39
|
+
spec.add_dependency("open_router", ">= 0.3")
|
|
40
40
|
spec.add_dependency("raix", "~> 1.0.2")
|
|
41
|
-
spec.add_dependency("rake", "
|
|
42
|
-
spec.add_dependency("ruby-graphviz", "
|
|
43
|
-
spec.add_dependency("ruby_llm")
|
|
44
|
-
spec.add_dependency("sqlite3", "
|
|
45
|
-
spec.add_dependency("thor", "
|
|
46
|
-
spec.add_dependency("zeitwerk", "
|
|
41
|
+
spec.add_dependency("rake", ">= 13.3.0") # NOTE: required by Thor
|
|
42
|
+
spec.add_dependency("ruby-graphviz", ">= 1.2")
|
|
43
|
+
spec.add_dependency("ruby_llm", ">= 1.8")
|
|
44
|
+
spec.add_dependency("sqlite3", ">= 2.6")
|
|
45
|
+
spec.add_dependency("thor", ">= 1.3")
|
|
46
|
+
spec.add_dependency("zeitwerk", ">= 2.6")
|
|
47
47
|
end
|
|
@@ -152,9 +152,11 @@ module Roast
|
|
|
152
152
|
# - `model(string)` - Set the model to use
|
|
153
153
|
# - `use_default_model!` - Use the provider's default model
|
|
154
154
|
#
|
|
155
|
-
# #### Configure the
|
|
156
|
-
# - `
|
|
157
|
-
# - `
|
|
155
|
+
# #### Configure the system prompt
|
|
156
|
+
# - `replace_system_prompt(string)` - Completely replace the agent's default system prompt
|
|
157
|
+
# - `no_replace_system_prompt!` - Don't replace the default system prompt (default)
|
|
158
|
+
# - `append_system_prompt(string)` - Append a prompt component to the agent's system prompt
|
|
159
|
+
# - `no_append_system_prompt!` - Don't append to the system prompt (default)
|
|
158
160
|
#
|
|
159
161
|
# #### Configure the working directory
|
|
160
162
|
# - `working_directory(path)` - Set the working directory for agent execution
|
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.5.
|
|
4
|
+
version: 0.5.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Shopify
|
|
@@ -27,70 +27,70 @@ dependencies:
|
|
|
27
27
|
name: async
|
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
|
29
29
|
requirements:
|
|
30
|
-
- - "
|
|
30
|
+
- - ">="
|
|
31
31
|
- !ruby/object:Gem::Version
|
|
32
32
|
version: '2.34'
|
|
33
33
|
type: :runtime
|
|
34
34
|
prerelease: false
|
|
35
35
|
version_requirements: !ruby/object:Gem::Requirement
|
|
36
36
|
requirements:
|
|
37
|
-
- - "
|
|
37
|
+
- - ">="
|
|
38
38
|
- !ruby/object:Gem::Version
|
|
39
39
|
version: '2.34'
|
|
40
40
|
- !ruby/object:Gem::Dependency
|
|
41
41
|
name: benchmark
|
|
42
42
|
requirement: !ruby/object:Gem::Requirement
|
|
43
43
|
requirements:
|
|
44
|
-
- - "
|
|
44
|
+
- - ">="
|
|
45
45
|
- !ruby/object:Gem::Version
|
|
46
46
|
version: 0.4.1
|
|
47
47
|
type: :runtime
|
|
48
48
|
prerelease: false
|
|
49
49
|
version_requirements: !ruby/object:Gem::Requirement
|
|
50
50
|
requirements:
|
|
51
|
-
- - "
|
|
51
|
+
- - ">="
|
|
52
52
|
- !ruby/object:Gem::Version
|
|
53
53
|
version: 0.4.1
|
|
54
54
|
- !ruby/object:Gem::Dependency
|
|
55
55
|
name: cli-kit
|
|
56
56
|
requirement: !ruby/object:Gem::Requirement
|
|
57
57
|
requirements:
|
|
58
|
-
- - "
|
|
58
|
+
- - ">="
|
|
59
59
|
- !ruby/object:Gem::Version
|
|
60
60
|
version: '5.2'
|
|
61
61
|
type: :runtime
|
|
62
62
|
prerelease: false
|
|
63
63
|
version_requirements: !ruby/object:Gem::Requirement
|
|
64
64
|
requirements:
|
|
65
|
-
- - "
|
|
65
|
+
- - ">="
|
|
66
66
|
- !ruby/object:Gem::Version
|
|
67
67
|
version: '5.2'
|
|
68
68
|
- !ruby/object:Gem::Dependency
|
|
69
69
|
name: cli-ui
|
|
70
70
|
requirement: !ruby/object:Gem::Requirement
|
|
71
71
|
requirements:
|
|
72
|
-
- - "
|
|
72
|
+
- - ">="
|
|
73
73
|
- !ruby/object:Gem::Version
|
|
74
74
|
version: '2.7'
|
|
75
75
|
type: :runtime
|
|
76
76
|
prerelease: false
|
|
77
77
|
version_requirements: !ruby/object:Gem::Requirement
|
|
78
78
|
requirements:
|
|
79
|
-
- - "
|
|
79
|
+
- - ">="
|
|
80
80
|
- !ruby/object:Gem::Version
|
|
81
81
|
version: '2.7'
|
|
82
82
|
- !ruby/object:Gem::Dependency
|
|
83
83
|
name: diff-lcs
|
|
84
84
|
requirement: !ruby/object:Gem::Requirement
|
|
85
85
|
requirements:
|
|
86
|
-
- - "
|
|
86
|
+
- - ">="
|
|
87
87
|
- !ruby/object:Gem::Version
|
|
88
88
|
version: '1.5'
|
|
89
89
|
type: :runtime
|
|
90
90
|
prerelease: false
|
|
91
91
|
version_requirements: !ruby/object:Gem::Requirement
|
|
92
92
|
requirements:
|
|
93
|
-
- - "
|
|
93
|
+
- - ">="
|
|
94
94
|
- !ruby/object:Gem::Version
|
|
95
95
|
version: '1.5'
|
|
96
96
|
- !ruby/object:Gem::Dependency
|
|
@@ -99,26 +99,26 @@ dependencies:
|
|
|
99
99
|
requirements:
|
|
100
100
|
- - ">="
|
|
101
101
|
- !ruby/object:Gem::Version
|
|
102
|
-
version: '
|
|
102
|
+
version: '5.1'
|
|
103
103
|
type: :runtime
|
|
104
104
|
prerelease: false
|
|
105
105
|
version_requirements: !ruby/object:Gem::Requirement
|
|
106
106
|
requirements:
|
|
107
107
|
- - ">="
|
|
108
108
|
- !ruby/object:Gem::Version
|
|
109
|
-
version: '
|
|
109
|
+
version: '5.1'
|
|
110
110
|
- !ruby/object:Gem::Dependency
|
|
111
111
|
name: open_router
|
|
112
112
|
requirement: !ruby/object:Gem::Requirement
|
|
113
113
|
requirements:
|
|
114
|
-
- - "
|
|
114
|
+
- - ">="
|
|
115
115
|
- !ruby/object:Gem::Version
|
|
116
116
|
version: '0.3'
|
|
117
117
|
type: :runtime
|
|
118
118
|
prerelease: false
|
|
119
119
|
version_requirements: !ruby/object:Gem::Requirement
|
|
120
120
|
requirements:
|
|
121
|
-
- - "
|
|
121
|
+
- - ">="
|
|
122
122
|
- !ruby/object:Gem::Version
|
|
123
123
|
version: '0.3'
|
|
124
124
|
- !ruby/object:Gem::Dependency
|
|
@@ -139,28 +139,28 @@ dependencies:
|
|
|
139
139
|
name: rake
|
|
140
140
|
requirement: !ruby/object:Gem::Requirement
|
|
141
141
|
requirements:
|
|
142
|
-
- - "
|
|
142
|
+
- - ">="
|
|
143
143
|
- !ruby/object:Gem::Version
|
|
144
144
|
version: 13.3.0
|
|
145
145
|
type: :runtime
|
|
146
146
|
prerelease: false
|
|
147
147
|
version_requirements: !ruby/object:Gem::Requirement
|
|
148
148
|
requirements:
|
|
149
|
-
- - "
|
|
149
|
+
- - ">="
|
|
150
150
|
- !ruby/object:Gem::Version
|
|
151
151
|
version: 13.3.0
|
|
152
152
|
- !ruby/object:Gem::Dependency
|
|
153
153
|
name: ruby-graphviz
|
|
154
154
|
requirement: !ruby/object:Gem::Requirement
|
|
155
155
|
requirements:
|
|
156
|
-
- - "
|
|
156
|
+
- - ">="
|
|
157
157
|
- !ruby/object:Gem::Version
|
|
158
158
|
version: '1.2'
|
|
159
159
|
type: :runtime
|
|
160
160
|
prerelease: false
|
|
161
161
|
version_requirements: !ruby/object:Gem::Requirement
|
|
162
162
|
requirements:
|
|
163
|
-
- - "
|
|
163
|
+
- - ">="
|
|
164
164
|
- !ruby/object:Gem::Version
|
|
165
165
|
version: '1.2'
|
|
166
166
|
- !ruby/object:Gem::Dependency
|
|
@@ -169,54 +169,54 @@ dependencies:
|
|
|
169
169
|
requirements:
|
|
170
170
|
- - ">="
|
|
171
171
|
- !ruby/object:Gem::Version
|
|
172
|
-
version: '
|
|
172
|
+
version: '1.8'
|
|
173
173
|
type: :runtime
|
|
174
174
|
prerelease: false
|
|
175
175
|
version_requirements: !ruby/object:Gem::Requirement
|
|
176
176
|
requirements:
|
|
177
177
|
- - ">="
|
|
178
178
|
- !ruby/object:Gem::Version
|
|
179
|
-
version: '
|
|
179
|
+
version: '1.8'
|
|
180
180
|
- !ruby/object:Gem::Dependency
|
|
181
181
|
name: sqlite3
|
|
182
182
|
requirement: !ruby/object:Gem::Requirement
|
|
183
183
|
requirements:
|
|
184
|
-
- - "
|
|
184
|
+
- - ">="
|
|
185
185
|
- !ruby/object:Gem::Version
|
|
186
186
|
version: '2.6'
|
|
187
187
|
type: :runtime
|
|
188
188
|
prerelease: false
|
|
189
189
|
version_requirements: !ruby/object:Gem::Requirement
|
|
190
190
|
requirements:
|
|
191
|
-
- - "
|
|
191
|
+
- - ">="
|
|
192
192
|
- !ruby/object:Gem::Version
|
|
193
193
|
version: '2.6'
|
|
194
194
|
- !ruby/object:Gem::Dependency
|
|
195
195
|
name: thor
|
|
196
196
|
requirement: !ruby/object:Gem::Requirement
|
|
197
197
|
requirements:
|
|
198
|
-
- - "
|
|
198
|
+
- - ">="
|
|
199
199
|
- !ruby/object:Gem::Version
|
|
200
200
|
version: '1.3'
|
|
201
201
|
type: :runtime
|
|
202
202
|
prerelease: false
|
|
203
203
|
version_requirements: !ruby/object:Gem::Requirement
|
|
204
204
|
requirements:
|
|
205
|
-
- - "
|
|
205
|
+
- - ">="
|
|
206
206
|
- !ruby/object:Gem::Version
|
|
207
207
|
version: '1.3'
|
|
208
208
|
- !ruby/object:Gem::Dependency
|
|
209
209
|
name: zeitwerk
|
|
210
210
|
requirement: !ruby/object:Gem::Requirement
|
|
211
211
|
requirements:
|
|
212
|
-
- - "
|
|
212
|
+
- - ">="
|
|
213
213
|
- !ruby/object:Gem::Version
|
|
214
214
|
version: '2.6'
|
|
215
215
|
type: :runtime
|
|
216
216
|
prerelease: false
|
|
217
217
|
version_requirements: !ruby/object:Gem::Requirement
|
|
218
218
|
requirements:
|
|
219
|
-
- - "
|
|
219
|
+
- - ">="
|
|
220
220
|
- !ruby/object:Gem::Version
|
|
221
221
|
version: '2.6'
|
|
222
222
|
description: Roast is a Ruby library for running structured AI workflows along with
|