roast-ai 0.4.6 → 0.4.7

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 (48) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yaml +3 -1
  3. data/.gitignore +7 -0
  4. data/.rubocop.yml +14 -0
  5. data/CHANGELOG.md +5 -0
  6. data/Gemfile +2 -1
  7. data/Gemfile.lock +9 -1
  8. data/Rakefile +14 -4
  9. data/examples/available_tools_demo/workflow.yml +2 -2
  10. data/examples/cmd/basic_workflow.yml +0 -1
  11. data/examples/grading/js_test_runner +1 -1
  12. data/examples/grading/run_coverage.rb +1 -1
  13. data/examples/user_input/funny_name/workflow.yml +3 -4
  14. data/lib/roast/dsl/executor.rb +2 -1
  15. data/lib/roast/helpers/cmd_runner.rb +199 -0
  16. data/lib/roast/initializers.rb +1 -1
  17. data/lib/roast/tools/apply_diff.rb +1 -1
  18. data/lib/roast/tools/bash.rb +4 -4
  19. data/lib/roast/tools/cmd.rb +3 -5
  20. data/lib/roast/tools/coding_agent.rb +1 -1
  21. data/lib/roast/tools/grep.rb +6 -2
  22. data/lib/roast/tools/read_file.rb +2 -1
  23. data/lib/roast/tools/swarm.rb +2 -7
  24. data/lib/roast/tools.rb +10 -1
  25. data/lib/roast/version.rb +1 -1
  26. data/lib/roast/workflow/command_executor.rb +3 -3
  27. data/lib/roast/workflow/resource_resolver.rb +1 -1
  28. data/lib/roast/workflow/shell_script_step.rb +1 -1
  29. data/lib/roast.rb +1 -0
  30. data/rubocop/cop/roast/use_cmd_runner.rb +93 -0
  31. data/rubocop/cop/roast.rb +4 -0
  32. data/sorbet/rbi/gems/docile@1.4.1.rbi +377 -0
  33. data/sorbet/rbi/gems/lint_roller@1.1.0.rbi +233 -2
  34. data/sorbet/rbi/gems/racc@1.8.1.rbi +6 -4
  35. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +396 -2
  36. data/sorbet/rbi/gems/regexp_parser@2.10.0.rbi +3788 -2
  37. data/sorbet/rbi/gems/rubocop-ast@1.45.1.rbi +7747 -2
  38. data/sorbet/rbi/gems/rubocop-sorbet@0.10.5.rbi +2386 -0
  39. data/sorbet/rbi/gems/rubocop@1.77.0.rbi +62813 -2
  40. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +1311 -2
  41. data/sorbet/rbi/gems/simplecov-html@0.13.2.rbi +225 -0
  42. data/sorbet/rbi/gems/simplecov@0.22.0.rbi +2259 -0
  43. data/sorbet/rbi/gems/simplecov_json_formatter@0.1.4.rbi +9 -0
  44. data/sorbet/rbi/gems/unicode-display_width@3.1.4.rbi +125 -2
  45. data/sorbet/rbi/gems/unicode-emoji@4.0.4.rbi +244 -2
  46. data/sorbet/tapioca/require.rb +2 -1
  47. metadata +9 -2
  48. data/lib/roast/helpers/timeout_handler.rb +0 -89
@@ -0,0 +1,93 @@
1
+ # typed: false
2
+ # frozen_string_literal: true
3
+
4
+ module RuboCop
5
+ module Cop
6
+ module Roast
7
+ # This cop suggests using CmdRunner instead of other command execution methods
8
+ #
9
+ # @example
10
+ # # bad
11
+ # `ls -la`
12
+ # %x(ls -la)
13
+ # system("ls -la")
14
+ # Open3.capture3("ls -la")
15
+ # spawn("ls -la")
16
+ # exec("ls -la")
17
+ #
18
+ # # good
19
+ # CmdRunner.capture3("ls -la")
20
+ # CmdRunner.capture2e("ls -la")
21
+ class UseCmdRunner < RuboCop::Cop::Base
22
+ MSG = "Use `CmdRunner` instead of `%<method>s` for command execution to ensure proper process tracking and cleanup"
23
+
24
+ # Pattern for backtick commands
25
+ def_node_matcher :backtick_command?, <<~PATTERN
26
+ (xstr ...)
27
+ PATTERN
28
+
29
+ # Pattern for %x() commands
30
+ def_node_matcher :percent_x_command?, <<~PATTERN
31
+ (xstr ...)
32
+ PATTERN
33
+
34
+ # Pattern for system() calls
35
+ def_node_matcher :system_call?, <<~PATTERN
36
+ (send nil? :system ...)
37
+ PATTERN
38
+
39
+ # Pattern for spawn() calls
40
+ def_node_matcher :spawn_call?, <<~PATTERN
41
+ (send nil? :spawn ...)
42
+ PATTERN
43
+
44
+ # Pattern for exec() calls
45
+ def_node_matcher :exec_call?, <<~PATTERN
46
+ (send nil? :exec ...)
47
+ PATTERN
48
+
49
+ # Pattern for Open3 methods
50
+ def_node_matcher :open3_call?, <<~PATTERN
51
+ (send (const nil? :Open3) {:capture2 :capture2e :capture3 :popen2 :popen2e :popen3} ...)
52
+ PATTERN
53
+
54
+ # Pattern for Process.spawn
55
+ def_node_matcher :process_spawn?, <<~PATTERN
56
+ (send (const nil? :Process) :spawn ...)
57
+ PATTERN
58
+
59
+ # Pattern for Kernel methods
60
+ def_node_matcher :kernel_system?, <<~PATTERN
61
+ (send (const nil? :Kernel) {:system :spawn :exec} ...)
62
+ PATTERN
63
+
64
+ # Pattern for IO.popen
65
+ def_node_matcher :io_popen?, <<~PATTERN
66
+ (send (const nil? :IO) :popen ...)
67
+ PATTERN
68
+
69
+ def on_xstr(node)
70
+ add_offense(node, message: format(MSG, method: "backticks"))
71
+ end
72
+
73
+ def on_send(node)
74
+ if system_call?(node) || kernel_system?(node)
75
+ method_name = node.method_name
76
+ add_offense(node, message: format(MSG, method: method_name))
77
+ elsif spawn_call?(node)
78
+ add_offense(node, message: format(MSG, method: "spawn"))
79
+ elsif exec_call?(node)
80
+ add_offense(node, message: format(MSG, method: "exec"))
81
+ elsif open3_call?(node)
82
+ method_name = "Open3.#{node.method_name}"
83
+ add_offense(node, message: format(MSG, method: method_name))
84
+ elsif process_spawn?(node)
85
+ add_offense(node, message: format(MSG, method: "Process.spawn"))
86
+ elsif io_popen?(node)
87
+ add_offense(node, message: format(MSG, method: "IO.popen"))
88
+ end
89
+ end
90
+ end
91
+ end
92
+ end
93
+ end
@@ -0,0 +1,4 @@
1
+ # typed: false
2
+ # frozen_string_literal: true
3
+
4
+ require_relative "roast/use_cmd_runner"
@@ -0,0 +1,377 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `docile` gem.
5
+ # Please instead update this file by running `bin/tapioca gem docile`.
6
+
7
+
8
+ # Docile keeps your Ruby DSLs tame and well-behaved.
9
+ #
10
+ # source://docile//lib/docile/version.rb#3
11
+ module Docile
12
+ extend ::Docile::Execution
13
+
14
+ private
15
+
16
+ # Execute a block in the context of an object whose methods represent the
17
+ # commands in a DSL.
18
+ #
19
+ # Use this method to execute an *imperative* DSL, which means that:
20
+ #
21
+ # 1. Each command mutates the state of the DSL context object
22
+ # 2. The return value of each command is ignored
23
+ # 3. The final return value is the original context object
24
+ #
25
+ # @example Use a String as a DSL
26
+ # Docile.dsl_eval("Hello, world!") do
27
+ # reverse!
28
+ # upcase!
29
+ # end
30
+ # #=> "!DLROW ,OLLEH"
31
+ # @example Use an Array as a DSL
32
+ # Docile.dsl_eval([]) do
33
+ # push 1
34
+ # push 2
35
+ # pop
36
+ # push 3
37
+ # end
38
+ # #=> [1, 3]
39
+ # @note Use with an *imperative* DSL (commands modify the context object)
40
+ # @param dsl [Object] context object whose methods make up the DSL
41
+ # @param args [Array] arguments to be passed to the block
42
+ # @param block [Proc] the block of DSL commands to be executed against the
43
+ # `dsl` context object
44
+ # @return [Object] the `dsl` context object after executing the block
45
+ #
46
+ # source://docile//lib/docile.rb#45
47
+ def dsl_eval(dsl, *args, **_arg2, &block); end
48
+
49
+ # Execute a block in the context of an immutable object whose methods,
50
+ # and the methods of their return values, represent the commands in a DSL.
51
+ #
52
+ # Use this method to execute a *functional* DSL, which means that:
53
+ #
54
+ # 1. The original DSL context object is never mutated
55
+ # 2. Each command returns the next DSL context object
56
+ # 3. The final return value is the value returned by the last command
57
+ #
58
+ # @example Use a frozen String as a DSL
59
+ # Docile.dsl_eval_immutable("I'm immutable!".freeze) do
60
+ # reverse
61
+ # upcase
62
+ # end
63
+ # #=> "!ELBATUMMI M'I"
64
+ # @example Use a Float as a DSL
65
+ # Docile.dsl_eval_immutable(84.5) do
66
+ # fdiv(2)
67
+ # floor
68
+ # end
69
+ # #=> 42
70
+ # @note Use with a *functional* DSL (commands return successor
71
+ # context objects)
72
+ # @param dsl [Object] immutable context object whose methods make up the
73
+ # initial DSL
74
+ # @param args [Array] arguments to be passed to the block
75
+ # @param block [Proc] the block of DSL commands to be executed against the
76
+ # `dsl` context object and successor return values
77
+ # @return [Object] the return value of the final command in the block
78
+ #
79
+ # source://docile//lib/docile.rb#128
80
+ def dsl_eval_immutable(dsl, *args, **_arg2, &block); end
81
+
82
+ # Execute a block in the context of an object whose methods represent the
83
+ # commands in a DSL, and return *the block's return value*.
84
+ #
85
+ # Use this method to execute an *imperative* DSL, which means that:
86
+ #
87
+ # 1. Each command mutates the state of the DSL context object
88
+ # 2. The return value of each command is ignored
89
+ # 3. The final return value is the original context object
90
+ #
91
+ # @example Use a String as a DSL
92
+ # Docile.dsl_eval_with_block_return("Hello, world!") do
93
+ # reverse!
94
+ # upcase!
95
+ # first
96
+ # end
97
+ # #=> "!"
98
+ # @example Use an Array as a DSL
99
+ # Docile.dsl_eval_with_block_return([]) do
100
+ # push "a"
101
+ # push "b"
102
+ # pop
103
+ # push "c"
104
+ # length
105
+ # end
106
+ # #=> 2
107
+ # @note Use with an *imperative* DSL (commands modify the context object)
108
+ # @param dsl [Object] context object whose methods make up the DSL
109
+ # @param args [Array] arguments to be passed to the block
110
+ # @param block [Proc] the block of DSL commands to be executed against the
111
+ # `dsl` context object
112
+ # @return [Object] the return value from executing the block
113
+ #
114
+ # source://docile//lib/docile.rb#87
115
+ def dsl_eval_with_block_return(dsl, *args, **_arg2, &block); end
116
+
117
+ class << self
118
+ # Execute a block in the context of an object whose methods represent the
119
+ # commands in a DSL.
120
+ #
121
+ # Use this method to execute an *imperative* DSL, which means that:
122
+ #
123
+ # 1. Each command mutates the state of the DSL context object
124
+ # 2. The return value of each command is ignored
125
+ # 3. The final return value is the original context object
126
+ #
127
+ # @example Use a String as a DSL
128
+ # Docile.dsl_eval("Hello, world!") do
129
+ # reverse!
130
+ # upcase!
131
+ # end
132
+ # #=> "!DLROW ,OLLEH"
133
+ # @example Use an Array as a DSL
134
+ # Docile.dsl_eval([]) do
135
+ # push 1
136
+ # push 2
137
+ # pop
138
+ # push 3
139
+ # end
140
+ # #=> [1, 3]
141
+ # @note Use with an *imperative* DSL (commands modify the context object)
142
+ # @param dsl [Object] context object whose methods make up the DSL
143
+ # @param args [Array] arguments to be passed to the block
144
+ # @param block [Proc] the block of DSL commands to be executed against the
145
+ # `dsl` context object
146
+ # @return [Object] the `dsl` context object after executing the block
147
+ #
148
+ # source://docile//lib/docile.rb#45
149
+ def dsl_eval(dsl, *args, **_arg2, &block); end
150
+
151
+ # Execute a block in the context of an immutable object whose methods,
152
+ # and the methods of their return values, represent the commands in a DSL.
153
+ #
154
+ # Use this method to execute a *functional* DSL, which means that:
155
+ #
156
+ # 1. The original DSL context object is never mutated
157
+ # 2. Each command returns the next DSL context object
158
+ # 3. The final return value is the value returned by the last command
159
+ #
160
+ # @example Use a frozen String as a DSL
161
+ # Docile.dsl_eval_immutable("I'm immutable!".freeze) do
162
+ # reverse
163
+ # upcase
164
+ # end
165
+ # #=> "!ELBATUMMI M'I"
166
+ # @example Use a Float as a DSL
167
+ # Docile.dsl_eval_immutable(84.5) do
168
+ # fdiv(2)
169
+ # floor
170
+ # end
171
+ # #=> 42
172
+ # @note Use with a *functional* DSL (commands return successor
173
+ # context objects)
174
+ # @param dsl [Object] immutable context object whose methods make up the
175
+ # initial DSL
176
+ # @param args [Array] arguments to be passed to the block
177
+ # @param block [Proc] the block of DSL commands to be executed against the
178
+ # `dsl` context object and successor return values
179
+ # @return [Object] the return value of the final command in the block
180
+ #
181
+ # source://docile//lib/docile.rb#128
182
+ def dsl_eval_immutable(dsl, *args, **_arg2, &block); end
183
+
184
+ # Execute a block in the context of an object whose methods represent the
185
+ # commands in a DSL, and return *the block's return value*.
186
+ #
187
+ # Use this method to execute an *imperative* DSL, which means that:
188
+ #
189
+ # 1. Each command mutates the state of the DSL context object
190
+ # 2. The return value of each command is ignored
191
+ # 3. The final return value is the original context object
192
+ #
193
+ # @example Use a String as a DSL
194
+ # Docile.dsl_eval_with_block_return("Hello, world!") do
195
+ # reverse!
196
+ # upcase!
197
+ # first
198
+ # end
199
+ # #=> "!"
200
+ # @example Use an Array as a DSL
201
+ # Docile.dsl_eval_with_block_return([]) do
202
+ # push "a"
203
+ # push "b"
204
+ # pop
205
+ # push "c"
206
+ # length
207
+ # end
208
+ # #=> 2
209
+ # @note Use with an *imperative* DSL (commands modify the context object)
210
+ # @param dsl [Object] context object whose methods make up the DSL
211
+ # @param args [Array] arguments to be passed to the block
212
+ # @param block [Proc] the block of DSL commands to be executed against the
213
+ # `dsl` context object
214
+ # @return [Object] the return value from executing the block
215
+ #
216
+ # source://docile//lib/docile.rb#87
217
+ def dsl_eval_with_block_return(dsl, *args, **_arg2, &block); end
218
+ end
219
+ end
220
+
221
+ # This is used to remove entries pointing to Docile's source files
222
+ # from {Exception#backtrace} and {Exception#backtrace_locations}.
223
+ #
224
+ # If {NoMethodError} is caught then the exception object will be extended
225
+ # by this module to add filter functionalities.
226
+ #
227
+ # @api private
228
+ #
229
+ # source://docile//lib/docile/backtrace_filter.rb#11
230
+ module Docile::BacktraceFilter
231
+ # @api private
232
+ #
233
+ # source://docile//lib/docile/backtrace_filter.rb#14
234
+ def backtrace; end
235
+
236
+ # @api private
237
+ #
238
+ # source://docile//lib/docile/backtrace_filter.rb#19
239
+ def backtrace_locations; end
240
+ end
241
+
242
+ # @api private
243
+ #
244
+ # source://docile//lib/docile/backtrace_filter.rb#12
245
+ Docile::BacktraceFilter::FILTER_PATTERN = T.let(T.unsafe(nil), Regexp)
246
+
247
+ # Operates in the same manner as {FallbackContextProxy}, but replacing
248
+ # the primary `receiver` object with the result of each proxied method.
249
+ #
250
+ # This is useful for implementing DSL evaluation for immutable context
251
+ # objects.
252
+ #
253
+ #
254
+ # @api private
255
+ # @see Docile.dsl_eval_immutable
256
+ #
257
+ # source://docile//lib/docile/chaining_fallback_context_proxy.rb#17
258
+ class Docile::ChainingFallbackContextProxy < ::Docile::FallbackContextProxy
259
+ # Proxy methods as in {FallbackContextProxy#method_missing}, replacing
260
+ # `receiver` with the returned value.
261
+ #
262
+ # @api private
263
+ #
264
+ # source://docile//lib/docile/chaining_fallback_context_proxy.rb#20
265
+ def method_missing(method, *args, **_arg2, &block); end
266
+ end
267
+
268
+ # A namespace for functions relating to the execution of a block against a
269
+ # proxy object.
270
+ #
271
+ # @api private
272
+ #
273
+ # source://docile//lib/docile/execution.rb#8
274
+ module Docile::Execution
275
+ private
276
+
277
+ # Execute a block in the context of an object whose methods represent the
278
+ # commands in a DSL, using a specific proxy class.
279
+ #
280
+ # @api private
281
+ # @param dsl [Object] context object whose methods make up the
282
+ # (initial) DSL
283
+ # @param proxy_type [FallbackContextProxy, ChainingFallbackContextProxy] which class to instantiate as proxy context
284
+ # @param args [Array] arguments to be passed to the block
285
+ # @param block [Proc] the block of DSL commands to be executed
286
+ # @return [Object] the return value of the block
287
+ #
288
+ # source://docile//lib/docile/execution.rb#19
289
+ def exec_in_proxy_context(dsl, proxy_type, *args, **_arg3, &block); end
290
+
291
+ class << self
292
+ # Execute a block in the context of an object whose methods represent the
293
+ # commands in a DSL, using a specific proxy class.
294
+ #
295
+ # @api private
296
+ # @param dsl [Object] context object whose methods make up the
297
+ # (initial) DSL
298
+ # @param proxy_type [FallbackContextProxy, ChainingFallbackContextProxy] which class to instantiate as proxy context
299
+ # @param args [Array] arguments to be passed to the block
300
+ # @param block [Proc] the block of DSL commands to be executed
301
+ # @return [Object] the return value of the block
302
+ #
303
+ # source://docile//lib/docile/execution.rb#19
304
+ def exec_in_proxy_context(dsl, proxy_type, *args, **_arg3, &block); end
305
+ end
306
+ end
307
+
308
+ # A proxy object with a primary receiver as well as a secondary
309
+ # fallback receiver.
310
+ #
311
+ # Will attempt to forward all method calls first to the primary receiver,
312
+ # and then to the fallback receiver if the primary does not handle that
313
+ # method.
314
+ #
315
+ # This is useful for implementing DSL evaluation in the context of an object.
316
+ #
317
+ #
318
+ # @api private
319
+ # @see Docile.dsl_eval
320
+ #
321
+ # source://docile//lib/docile/fallback_context_proxy.rb#20
322
+ class Docile::FallbackContextProxy
323
+ # @api private
324
+ # @param receiver [Object] the primary proxy target to which all methods
325
+ # initially will be forwarded
326
+ # @param fallback [Object] the fallback proxy target to which any methods
327
+ # not handled by `receiver` will be forwarded
328
+ # @return [FallbackContextProxy] a new instance of FallbackContextProxy
329
+ #
330
+ # source://docile//lib/docile/fallback_context_proxy.rb#46
331
+ def initialize(receiver, fallback); end
332
+
333
+ # @api private
334
+ # @return [Array<Symbol>] Instance variable names, excluding
335
+ # {NON_PROXIED_INSTANCE_VARIABLES}
336
+ #
337
+ # source://docile//lib/docile/fallback_context_proxy.rb#85
338
+ def instance_variables; end
339
+
340
+ # Proxy all methods, excluding {NON_PROXIED_METHODS}, first to `receiver`
341
+ # and then to `fallback` if not found.
342
+ #
343
+ # @api private
344
+ #
345
+ # source://docile//lib/docile/fallback_context_proxy.rb#91
346
+ def method_missing(method, *args, **_arg2, &block); end
347
+ end
348
+
349
+ # The set of methods which will **not** fallback from the block's context
350
+ # to the dsl object.
351
+ #
352
+ # @api private
353
+ #
354
+ # source://docile//lib/docile/fallback_context_proxy.rb#30
355
+ Docile::FallbackContextProxy::NON_FALLBACK_METHODS = T.let(T.unsafe(nil), Set)
356
+
357
+ # The set of instance variables which are local to this object and hidden.
358
+ # All other instance variables will be copied in and out of this object
359
+ # from the scope in which this proxy was created.
360
+ #
361
+ # @api private
362
+ #
363
+ # source://docile//lib/docile/fallback_context_proxy.rb#35
364
+ Docile::FallbackContextProxy::NON_PROXIED_INSTANCE_VARIABLES = T.let(T.unsafe(nil), Set)
365
+
366
+ # The set of methods which will **not** be proxied, but instead answered
367
+ # by this object directly.
368
+ #
369
+ # @api private
370
+ #
371
+ # source://docile//lib/docile/fallback_context_proxy.rb#23
372
+ Docile::FallbackContextProxy::NON_PROXIED_METHODS = T.let(T.unsafe(nil), Set)
373
+
374
+ # The current version of this library
375
+ #
376
+ # source://docile//lib/docile/version.rb#5
377
+ Docile::VERSION = T.let(T.unsafe(nil), String)
@@ -5,5 +5,236 @@
5
5
  # Please instead update this file by running `bin/tapioca gem lint_roller`.
6
6
 
7
7
 
8
- # THIS IS AN EMPTY RBI FILE.
9
- # see https://github.com/Shopify/tapioca#manually-requiring-parts-of-a-gem
8
+ # source://lint_roller//lib/lint_roller/context.rb#1
9
+ module LintRoller; end
10
+
11
+ # source://lint_roller//lib/lint_roller/about.rb#2
12
+ class LintRoller::About < ::Struct
13
+ # Returns the value of attribute description
14
+ #
15
+ # @return [Object] the current value of description
16
+ def description; end
17
+
18
+ # Sets the attribute description
19
+ #
20
+ # @param value [Object] the value to set the attribute description to.
21
+ # @return [Object] the newly set value
22
+ def description=(_); end
23
+
24
+ # Returns the value of attribute homepage
25
+ #
26
+ # @return [Object] the current value of homepage
27
+ def homepage; end
28
+
29
+ # Sets the attribute homepage
30
+ #
31
+ # @param value [Object] the value to set the attribute homepage to.
32
+ # @return [Object] the newly set value
33
+ def homepage=(_); end
34
+
35
+ # Returns the value of attribute name
36
+ #
37
+ # @return [Object] the current value of name
38
+ def name; end
39
+
40
+ # Sets the attribute name
41
+ #
42
+ # @param value [Object] the value to set the attribute name to.
43
+ # @return [Object] the newly set value
44
+ def name=(_); end
45
+
46
+ # Returns the value of attribute version
47
+ #
48
+ # @return [Object] the current value of version
49
+ def version; end
50
+
51
+ # Sets the attribute version
52
+ #
53
+ # @param value [Object] the value to set the attribute version to.
54
+ # @return [Object] the newly set value
55
+ def version=(_); end
56
+
57
+ class << self
58
+ def [](*_arg0); end
59
+ def inspect; end
60
+ def keyword_init?; end
61
+ def members; end
62
+ def new(*_arg0); end
63
+ end
64
+ end
65
+
66
+ # source://lint_roller//lib/lint_roller/context.rb#2
67
+ class LintRoller::Context < ::Struct
68
+ # Returns the value of attribute engine
69
+ #
70
+ # @return [Object] the current value of engine
71
+ def engine; end
72
+
73
+ # Sets the attribute engine
74
+ #
75
+ # @param value [Object] the value to set the attribute engine to.
76
+ # @return [Object] the newly set value
77
+ def engine=(_); end
78
+
79
+ # Returns the value of attribute engine_version
80
+ #
81
+ # @return [Object] the current value of engine_version
82
+ def engine_version; end
83
+
84
+ # Sets the attribute engine_version
85
+ #
86
+ # @param value [Object] the value to set the attribute engine_version to.
87
+ # @return [Object] the newly set value
88
+ def engine_version=(_); end
89
+
90
+ # Returns the value of attribute rule_format
91
+ #
92
+ # @return [Object] the current value of rule_format
93
+ def rule_format; end
94
+
95
+ # Sets the attribute rule_format
96
+ #
97
+ # @param value [Object] the value to set the attribute rule_format to.
98
+ # @return [Object] the newly set value
99
+ def rule_format=(_); end
100
+
101
+ # Returns the value of attribute runner
102
+ #
103
+ # @return [Object] the current value of runner
104
+ def runner; end
105
+
106
+ # Sets the attribute runner
107
+ #
108
+ # @param value [Object] the value to set the attribute runner to.
109
+ # @return [Object] the newly set value
110
+ def runner=(_); end
111
+
112
+ # Returns the value of attribute runner_version
113
+ #
114
+ # @return [Object] the current value of runner_version
115
+ def runner_version; end
116
+
117
+ # Sets the attribute runner_version
118
+ #
119
+ # @param value [Object] the value to set the attribute runner_version to.
120
+ # @return [Object] the newly set value
121
+ def runner_version=(_); end
122
+
123
+ # Returns the value of attribute target_ruby_version
124
+ #
125
+ # @return [Object] the current value of target_ruby_version
126
+ def target_ruby_version; end
127
+
128
+ # Sets the attribute target_ruby_version
129
+ #
130
+ # @param value [Object] the value to set the attribute target_ruby_version to.
131
+ # @return [Object] the newly set value
132
+ def target_ruby_version=(_); end
133
+
134
+ class << self
135
+ def [](*_arg0); end
136
+ def inspect; end
137
+ def keyword_init?; end
138
+ def members; end
139
+ def new(*_arg0); end
140
+ end
141
+ end
142
+
143
+ # source://lint_roller//lib/lint_roller/error.rb#2
144
+ class LintRoller::Error < ::StandardError; end
145
+
146
+ # source://lint_roller//lib/lint_roller/plugin.rb#2
147
+ class LintRoller::Plugin
148
+ # `config' is a Hash of options passed to the plugin by the user
149
+ #
150
+ # @return [Plugin] a new instance of Plugin
151
+ #
152
+ # source://lint_roller//lib/lint_roller/plugin.rb#4
153
+ def initialize(config = T.unsafe(nil)); end
154
+
155
+ # @raise [Error]
156
+ #
157
+ # source://lint_roller//lib/lint_roller/plugin.rb#8
158
+ def about; end
159
+
160
+ # `context' is an instance of LintRoller::Context provided by the runner
161
+ #
162
+ # @raise [Error]
163
+ #
164
+ # source://lint_roller//lib/lint_roller/plugin.rb#18
165
+ def rules(context); end
166
+
167
+ # `context' is an instance of LintRoller::Context provided by the runner
168
+ #
169
+ # @return [Boolean]
170
+ #
171
+ # source://lint_roller//lib/lint_roller/plugin.rb#13
172
+ def supported?(context); end
173
+ end
174
+
175
+ # source://lint_roller//lib/lint_roller/rules.rb#2
176
+ class LintRoller::Rules < ::Struct
177
+ # Returns the value of attribute config_format
178
+ #
179
+ # @return [Object] the current value of config_format
180
+ def config_format; end
181
+
182
+ # Sets the attribute config_format
183
+ #
184
+ # @param value [Object] the value to set the attribute config_format to.
185
+ # @return [Object] the newly set value
186
+ def config_format=(_); end
187
+
188
+ # Returns the value of attribute error
189
+ #
190
+ # @return [Object] the current value of error
191
+ def error; end
192
+
193
+ # Sets the attribute error
194
+ #
195
+ # @param value [Object] the value to set the attribute error to.
196
+ # @return [Object] the newly set value
197
+ def error=(_); end
198
+
199
+ # Returns the value of attribute type
200
+ #
201
+ # @return [Object] the current value of type
202
+ def type; end
203
+
204
+ # Sets the attribute type
205
+ #
206
+ # @param value [Object] the value to set the attribute type to.
207
+ # @return [Object] the newly set value
208
+ def type=(_); end
209
+
210
+ # Returns the value of attribute value
211
+ #
212
+ # @return [Object] the current value of value
213
+ def value; end
214
+
215
+ # Sets the attribute value
216
+ #
217
+ # @param value [Object] the value to set the attribute value to.
218
+ # @return [Object] the newly set value
219
+ def value=(_); end
220
+
221
+ class << self
222
+ def [](*_arg0); end
223
+ def inspect; end
224
+ def keyword_init?; end
225
+ def members; end
226
+ def new(*_arg0); end
227
+ end
228
+ end
229
+
230
+ # source://lint_roller//lib/lint_roller/support/merges_upstream_metadata.rb#2
231
+ module LintRoller::Support; end
232
+
233
+ # source://lint_roller//lib/lint_roller/support/merges_upstream_metadata.rb#3
234
+ class LintRoller::Support::MergesUpstreamMetadata
235
+ # source://lint_roller//lib/lint_roller/support/merges_upstream_metadata.rb#4
236
+ def merge(plugin_yaml, upstream_yaml); end
237
+ end
238
+
239
+ # source://lint_roller//lib/lint_roller/version.rb#2
240
+ LintRoller::VERSION = T.let(T.unsafe(nil), String)