rbs_goose 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +9 -2
- data/.ruby-version +1 -1
- data/Gemfile +20 -13
- data/Gemfile.lock +96 -61
- data/README-ja.md +88 -0
- data/README.md +38 -28
- data/Rakefile +54 -14
- data/Steepfile +1 -3
- data/evaluations/01_rbs_goose/claude_haiku.log +1494 -0
- data/evaluations/01_rbs_goose/claude_opus.log +1439 -0
- data/evaluations/01_rbs_goose/claude_sonnet.log +1437 -0
- data/evaluations/01_rbs_goose/gpt-3-5-turbo.log +1241 -0
- data/evaluations/01_rbs_goose/gpt-4-turbo.log +1304 -0
- data/examples/fix_errors/Steepfile +6 -0
- data/examples/fix_errors/error_messages.txt +26 -0
- data/{lib/rbs_goose/examples/rbs_samples → examples/fix_errors}/lib/person.rb +4 -0
- data/{lib/rbs_goose/examples/rbs_samples → examples/fix_errors}/refined/sig/email.rbs +1 -1
- data/{lib/rbs_goose/examples/rbs_samples → examples/fix_errors}/refined/sig/person.rbs +4 -2
- data/{lib/rbs_goose/examples/rbs_samples → examples/fix_errors}/refined/sig/phone.rbs +1 -1
- data/examples/fix_errors/sig/email.rbs +11 -0
- data/examples/fix_errors/sig/person.rbs +15 -0
- data/examples/fix_errors/sig/phone.rbs +15 -0
- data/examples/rbs_samples/lib/email.rb +16 -0
- data/examples/rbs_samples/lib/person.rb +23 -0
- data/examples/rbs_samples/lib/phone.rb +22 -0
- data/examples/rbs_samples/refined/sig/email.rbs +11 -0
- data/examples/rbs_samples/refined/sig/person.rbs +15 -0
- data/examples/rbs_samples/refined/sig/phone.rbs +15 -0
- data/{lib/rbs_goose/examples → examples}/rbs_samples/sig/person.rbs +2 -0
- data/examples/rbs_syntax/Steepfile +6 -0
- data/examples/rbs_syntax/lib/a.rb +53 -0
- data/examples/rbs_syntax/lib/list.rb +9 -0
- data/examples/rbs_syntax/lib/main.rb +17 -0
- data/examples/rbs_syntax/refined/sig/a.rbs +47 -0
- data/examples/rbs_syntax/refined/sig/list.rbs +7 -0
- data/examples/rbs_syntax/refined/sig/main.rbs +26 -0
- data/examples/rbs_syntax/sig/a.rbs +47 -0
- data/examples/rbs_syntax/sig/list.rbs +7 -0
- data/examples/rbs_syntax/sig/main.rbs +26 -0
- data/lib/rbs_goose/configuration.rb +93 -23
- data/lib/rbs_goose/io/example.rb +2 -2
- data/lib/rbs_goose/io/example_group.rb +16 -7
- data/lib/rbs_goose/io/target_group.rb +1 -1
- data/lib/rbs_goose/io/typed_ruby.rb +3 -3
- data/lib/rbs_goose/orthoses/fix_error.rb +26 -0
- data/lib/rbs_goose/orthoses/infer.rb +26 -0
- data/lib/rbs_goose/orthoses.rb +9 -0
- data/lib/rbs_goose/templates/base.rb +77 -0
- data/lib/rbs_goose/templates/fix_error_template.rb +43 -0
- data/lib/rbs_goose/templates/infer_template.rb +30 -0
- data/lib/rbs_goose/templates.rb +3 -1
- data/lib/rbs_goose/type_inferrer.rb +73 -2
- data/lib/rbs_goose/version.rb +1 -1
- data/lib/rbs_goose.rb +24 -4
- data/rbs_collection.lock.yaml +63 -47
- data/renovate.json +5 -0
- data/sig/rbs_goose/configuration.rbs +20 -12
- data/sig/rbs_goose/io/example.rbs +7 -7
- data/sig/rbs_goose/io/example_group.rbs +9 -7
- data/sig/rbs_goose/io/file.rbs +10 -10
- data/sig/rbs_goose/io/target_group.rbs +2 -2
- data/sig/rbs_goose/io/typed_ruby.rbs +7 -7
- data/sig/rbs_goose/io.rbs +1 -1
- data/sig/rbs_goose/orthoses/fix_error.rbs +11 -0
- data/sig/rbs_goose/orthoses/infer.rbs +11 -0
- data/sig/rbs_goose/orthoses.rbs +2 -0
- data/sig/rbs_goose/templates/base.rbs +18 -0
- data/sig/rbs_goose/templates/fix_error_template.rbs +6 -0
- data/sig/rbs_goose/templates/infer_template.rbs +6 -0
- data/sig/rbs_goose/templates.rbs +1 -1
- data/sig/rbs_goose/type_inferrer.rbs +9 -1
- data/sig/rbs_goose.rbs +18 -9
- metadata +151 -23
- data/README-EN-US.md +0 -78
- data/lib/rbs_goose/templates/default_template.rb +0 -49
- data/sig/rbs_goose/templates/default_template.rbs +0 -10
- /data/{lib/rbs_goose/examples/rbs_samples → examples/fix_errors}/lib/email.rb +0 -0
- /data/{lib/rbs_goose/examples/rbs_samples → examples/fix_errors}/lib/phone.rb +0 -0
- /data/{lib/rbs_goose/examples → examples}/rbs_samples/Steepfile +0 -0
- /data/{lib/rbs_goose/examples → examples}/rbs_samples/sig/email.rbs +0 -0
- /data/{lib/rbs_goose/examples → examples}/rbs_samples/sig/phone.rbs +0 -0
@@ -3,22 +3,22 @@
|
|
3
3
|
module RbsGoose
|
4
4
|
module IO
|
5
5
|
class ExampleGroup < Array
|
6
|
+
attr_accessor :error_messages
|
7
|
+
|
6
8
|
class << self
|
7
9
|
def load_from(base_path, code_dir: 'lib', sig_dir: 'sig', refined_dir: 'refined')
|
8
10
|
new.tap do |group|
|
9
11
|
Dir.glob('**/*.rb', base: ::File.join(base_path, code_dir)).each do |path|
|
10
|
-
group <<
|
11
|
-
ruby_path: ::File.join(code_dir, path),
|
12
|
-
rbs_path: to_rbs_path(path, sig_dir),
|
13
|
-
refined_rbs_dir: refined_dir,
|
14
|
-
base_path: base_path
|
15
|
-
)
|
12
|
+
group << load_example(base_path, code_dir, path, refined_dir, sig_dir)
|
16
13
|
end
|
14
|
+
# Read error messages if exists
|
15
|
+
error_path = ::File.join(base_path, 'error_messages.txt')
|
16
|
+
group.error_messages = ::File.read(error_path).strip if ::File.exist?(error_path)
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
20
|
def default_examples
|
21
|
-
example_dir = ::File.join(__dir__.to_s, '
|
21
|
+
example_dir = ::File.join(__dir__.to_s, '../../../examples')
|
22
22
|
@default_examples ||= Dir.glob('*', base: example_dir).to_h do |dir|
|
23
23
|
[dir.to_sym, load_from(::File.join(example_dir, dir))]
|
24
24
|
end
|
@@ -26,6 +26,15 @@ module RbsGoose
|
|
26
26
|
|
27
27
|
private
|
28
28
|
|
29
|
+
def load_example(base_path, code_dir, path, refined_dir, sig_dir)
|
30
|
+
Example.from_path(
|
31
|
+
ruby_path: ::File.join(code_dir, path),
|
32
|
+
rbs_path: to_rbs_path(path, sig_dir),
|
33
|
+
refined_rbs_dir: refined_dir,
|
34
|
+
base_path:
|
35
|
+
)
|
36
|
+
end
|
37
|
+
|
29
38
|
def to_rbs_path(path, sig_dir)
|
30
39
|
::File.join(sig_dir, "#{path}s")
|
31
40
|
end
|
@@ -5,13 +5,13 @@ module RbsGoose
|
|
5
5
|
class TypedRuby
|
6
6
|
class << self
|
7
7
|
def from_path(ruby_path:, rbs_path:, base_path:)
|
8
|
-
ruby = File.new(path: ruby_path, base_path:
|
8
|
+
ruby = File.new(path: ruby_path, base_path:)
|
9
9
|
rbs = begin
|
10
|
-
File.new(path: rbs_path, base_path:
|
10
|
+
File.new(path: rbs_path, base_path:)
|
11
11
|
rescue StandardError
|
12
12
|
nil
|
13
13
|
end
|
14
|
-
new(ruby
|
14
|
+
new(ruby:, rbs:)
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'orthoses/outputable'
|
4
|
+
|
5
|
+
module RbsGoose
|
6
|
+
module Orthoses
|
7
|
+
# Call RbsGoose::TypeInferrer to fix steep type errors.
|
8
|
+
# use TbsGoose::Orthoses::FixError, code_dir: 'lib', sig_dir: 'sig' do |config|
|
9
|
+
# config.use_open_ai('open_ai_access_token')
|
10
|
+
# end
|
11
|
+
class FixError
|
12
|
+
def initialize(loader, code_dir: 'lib', sig_dir: 'sig', &)
|
13
|
+
@loader = loader
|
14
|
+
@code_dir = code_dir
|
15
|
+
@sig_dir = sig_dir
|
16
|
+
RbsGoose.configure(&) if block_given?
|
17
|
+
end
|
18
|
+
|
19
|
+
def call
|
20
|
+
@loader.call.tap do
|
21
|
+
RbsGoose.fix_error(code_dir: @code_dir, sig_dir: @sig_dir)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'orthoses/outputable'
|
4
|
+
|
5
|
+
module RbsGoose
|
6
|
+
module Orthoses
|
7
|
+
# Call RbsGoose::TypeInferrer to infer RBS type signatures.
|
8
|
+
# use TbsGoose::Orthoses::Infer, code_dir: 'lib', sig_dir: 'sig' do |config|
|
9
|
+
# config.use_open_ai('open_ai_access_token')
|
10
|
+
# end
|
11
|
+
class Infer
|
12
|
+
def initialize(loader, code_dir: 'lib', sig_dir: 'sig', &)
|
13
|
+
@loader = loader
|
14
|
+
@code_dir = code_dir
|
15
|
+
@sig_dir = sig_dir
|
16
|
+
RbsGoose.configure(&) if block_given?
|
17
|
+
end
|
18
|
+
|
19
|
+
def call
|
20
|
+
@loader.call.tap do
|
21
|
+
RbsGoose.run(code_dir: @code_dir, sig_dir: @sig_dir)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'langchain'
|
4
|
+
|
5
|
+
module RbsGoose
|
6
|
+
module Templates
|
7
|
+
class Base
|
8
|
+
def initialize(instruction:, example_groups:)
|
9
|
+
@instruction = instruction
|
10
|
+
@example_groups = example_groups
|
11
|
+
end
|
12
|
+
|
13
|
+
def format(**args)
|
14
|
+
Langchain::Prompt::FewShotPromptTemplate.new(
|
15
|
+
prefix:,
|
16
|
+
suffix:,
|
17
|
+
example_prompt:,
|
18
|
+
examples: example_groups.map { transform_example_group(_1) },
|
19
|
+
input_variables:
|
20
|
+
).format(**format_args(args)).strip
|
21
|
+
end
|
22
|
+
|
23
|
+
def format_system_prompt
|
24
|
+
prefix.strip
|
25
|
+
end
|
26
|
+
|
27
|
+
def format_user_prompt(**args)
|
28
|
+
Langchain::Prompt::FewShotPromptTemplate.new(
|
29
|
+
prefix: '',
|
30
|
+
suffix:,
|
31
|
+
example_prompt:,
|
32
|
+
examples: example_groups.map { transform_example_group(_1) },
|
33
|
+
input_variables:
|
34
|
+
).format(**format_args(args)).strip
|
35
|
+
end
|
36
|
+
|
37
|
+
def parse_result(result)
|
38
|
+
result.scan(/```.+?```/m).map { IO::File.from_markdown(_1) }
|
39
|
+
end
|
40
|
+
|
41
|
+
private
|
42
|
+
|
43
|
+
def input_template_string
|
44
|
+
raise NotImplementedError
|
45
|
+
end
|
46
|
+
|
47
|
+
def input_variables
|
48
|
+
raise NotImplementedError
|
49
|
+
end
|
50
|
+
|
51
|
+
def transform_example_group(example_group)
|
52
|
+
raise NotImplementedError
|
53
|
+
end
|
54
|
+
|
55
|
+
def format_args(args)
|
56
|
+
raise NotImplementedError
|
57
|
+
end
|
58
|
+
|
59
|
+
def prefix
|
60
|
+
instruction
|
61
|
+
end
|
62
|
+
|
63
|
+
def suffix
|
64
|
+
"#{input_template_string}\n"
|
65
|
+
end
|
66
|
+
|
67
|
+
def example_prompt
|
68
|
+
Langchain::Prompt::PromptTemplate.new(
|
69
|
+
template: "#{input_template_string}\n{refined_rbs_list}",
|
70
|
+
input_variables: input_variables + ['refined_rbs_list']
|
71
|
+
)
|
72
|
+
end
|
73
|
+
|
74
|
+
attr_reader :instruction, :example_groups
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'langchain'
|
4
|
+
|
5
|
+
module RbsGoose
|
6
|
+
module Templates
|
7
|
+
class FixErrorTemplate < Base
|
8
|
+
private
|
9
|
+
|
10
|
+
def input_variables
|
11
|
+
%w[typed_ruby_list error_messages]
|
12
|
+
end
|
13
|
+
|
14
|
+
def input_template_string
|
15
|
+
<<~TEMPLATE.strip
|
16
|
+
========Input========
|
17
|
+
{typed_ruby_list}
|
18
|
+
|
19
|
+
========Errors========
|
20
|
+
{error_messages}
|
21
|
+
|
22
|
+
|
23
|
+
========Output========
|
24
|
+
TEMPLATE
|
25
|
+
end
|
26
|
+
|
27
|
+
def format_args(args)
|
28
|
+
{
|
29
|
+
typed_ruby_list: args[:typed_ruby_list].join("\n"),
|
30
|
+
error_messages: args[:error_messages]
|
31
|
+
}
|
32
|
+
end
|
33
|
+
|
34
|
+
def transform_example_group(example_group)
|
35
|
+
{
|
36
|
+
typed_ruby_list: example_group.map(&:typed_ruby).join("\n"),
|
37
|
+
error_messages: example_group.error_messages,
|
38
|
+
refined_rbs_list: example_group.map(&:refined_rbs).join("\n")
|
39
|
+
}
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'langchain'
|
4
|
+
|
5
|
+
module RbsGoose
|
6
|
+
module Templates
|
7
|
+
class InferTemplate < Base
|
8
|
+
private
|
9
|
+
|
10
|
+
def input_variables
|
11
|
+
%w[typed_ruby_list]
|
12
|
+
end
|
13
|
+
|
14
|
+
def input_template_string
|
15
|
+
"========Input========\n{typed_ruby_list}\n\n========Output========"
|
16
|
+
end
|
17
|
+
|
18
|
+
def format_args(args)
|
19
|
+
{ typed_ruby_list: args[:typed_ruby_list].join("\n") }
|
20
|
+
end
|
21
|
+
|
22
|
+
def transform_example_group(example_group)
|
23
|
+
{
|
24
|
+
typed_ruby_list: example_group.map(&:typed_ruby).join("\n"),
|
25
|
+
refined_rbs_list: example_group.map(&:refined_rbs).join("\n")
|
26
|
+
}
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
data/lib/rbs_goose/templates.rb
CHANGED
@@ -1,13 +1,84 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'steep'
|
4
|
+
require 'steep/cli'
|
5
|
+
require 'benchmark'
|
6
|
+
|
3
7
|
require_relative 'templates'
|
4
8
|
|
5
9
|
module RbsGoose
|
6
10
|
class TypeInferrer
|
7
11
|
def infer(target_group)
|
8
|
-
|
9
|
-
|
12
|
+
call_llm(RbsGoose.infer_template, { typed_ruby_list: target_group })
|
13
|
+
end
|
14
|
+
|
15
|
+
def fix_error(target_group)
|
16
|
+
error_messages = steep_check
|
17
|
+
call_llm(RbsGoose.fix_error_template, { typed_ruby_list: target_group, error_messages: })
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def call_llm(template, format_args)
|
23
|
+
result =
|
24
|
+
case RbsGoose.llm_mode.to_sym
|
25
|
+
when :complete
|
26
|
+
call_llm_complete(format_args, template)
|
27
|
+
when :chat
|
28
|
+
call_llm_chat(format_args, template)
|
29
|
+
else
|
30
|
+
raise "Invalid LLM mode: #{RbsGoose.llm_mode}"
|
31
|
+
end
|
10
32
|
template.parse_result(result)
|
11
33
|
end
|
34
|
+
|
35
|
+
def call_llm_complete(format_args, template)
|
36
|
+
prompt = template.format(**format_args)
|
37
|
+
llm_debug(prompt) do
|
38
|
+
RbsGoose.llm.complete(prompt:)
|
39
|
+
end.completion
|
40
|
+
end
|
41
|
+
|
42
|
+
def call_llm_chat(format_args, template)
|
43
|
+
messages = [
|
44
|
+
{ role: 'user', content: template.format(**format_args) }
|
45
|
+
]
|
46
|
+
llm_debug(messages.map { "role: #{_1[:role]}\ncontent:\n#{_1[:content]}" }.join("\n")) do
|
47
|
+
RbsGoose.llm.chat(messages:)
|
48
|
+
end.chat_completion
|
49
|
+
end
|
50
|
+
|
51
|
+
def llm_debug(prompt)
|
52
|
+
return yield if ENV['DEBUG'].nil?
|
53
|
+
|
54
|
+
puts "!!!!!!!! Prompt !!!!!!!!\n\n#{prompt}\n\n"
|
55
|
+
result = nil
|
56
|
+
sec = Benchmark.realtime do
|
57
|
+
result = yield
|
58
|
+
end
|
59
|
+
puts "!!!!!!!! Stats !!!!!!!!\n\n spend: #{sec}[s]\n prompt_tokens: #{result.prompt_tokens}\n completion_tokens: #{result.completion_tokens}\n" # rubocop:disable Layout/LineLength
|
60
|
+
puts "!!!!!!!! Result !!!!!!!!\n\n#{result.chat_completion}\n\n"
|
61
|
+
result
|
62
|
+
end
|
63
|
+
|
64
|
+
def steep_check
|
65
|
+
stdin, stdout, stderr = io_stubs
|
66
|
+
disable_rainbow do
|
67
|
+
steep_cli = Steep::CLI.new(stdout:, stdin:, stderr:, argv: [])
|
68
|
+
steep_cli.process_check
|
69
|
+
end
|
70
|
+
stdout.string
|
71
|
+
end
|
72
|
+
|
73
|
+
def io_stubs
|
74
|
+
[StringIO.new(''), StringIO.new(+'', 'w+'), StringIO.new(+'', 'w+')]
|
75
|
+
end
|
76
|
+
|
77
|
+
def disable_rainbow
|
78
|
+
rainbow_enabled = Rainbow.enabled
|
79
|
+
Rainbow.enabled = false
|
80
|
+
yield
|
81
|
+
Rainbow.enabled = rainbow_enabled
|
82
|
+
end
|
12
83
|
end
|
13
84
|
end
|
data/lib/rbs_goose/version.rb
CHANGED
data/lib/rbs_goose.rb
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
require_relative 'rbs_goose/configuration'
|
4
4
|
require_relative 'rbs_goose/io'
|
5
|
+
require_relative 'rbs_goose/orthoses'
|
5
6
|
require_relative 'rbs_goose/type_inferrer'
|
6
7
|
require_relative 'rbs_goose/version'
|
7
8
|
|
@@ -13,8 +14,8 @@ module RbsGoose
|
|
13
14
|
class << self
|
14
15
|
extend Forwardable
|
15
16
|
|
16
|
-
def configure(&
|
17
|
-
@configuration = Configuration.new(&
|
17
|
+
def configure(&)
|
18
|
+
@configuration = Configuration.new(&)
|
18
19
|
end
|
19
20
|
|
20
21
|
def reset_configuration
|
@@ -23,7 +24,7 @@ module RbsGoose
|
|
23
24
|
|
24
25
|
def run(code_dir: 'lib', sig_dir: 'sig', base_path: ::Dir.pwd)
|
25
26
|
puts "Run RbsGoose.(Code Directory: #{code_dir}, Signature Directory: #{sig_dir})"
|
26
|
-
target_group = RbsGoose::IO::TargetGroup.load_from(base_path, code_dir
|
27
|
+
target_group = RbsGoose::IO::TargetGroup.load_from(base_path, code_dir:, sig_dir:)
|
27
28
|
RbsGoose::TypeInferrer.new.infer(target_group).each do |refined_rbs|
|
28
29
|
puts "write refined rbs to #{refined_rbs.path}\n"
|
29
30
|
refined_rbs.write
|
@@ -31,8 +32,27 @@ module RbsGoose
|
|
31
32
|
end
|
32
33
|
end
|
33
34
|
|
35
|
+
def fix_error(code_dir: 'lib', sig_dir: 'sig', base_path: ::Dir.pwd)
|
36
|
+
puts "Run FixError.(Code Directory: #{code_dir}, Signature Directory: #{sig_dir})"
|
37
|
+
target_group = RbsGoose::IO::TargetGroup.load_from(base_path, code_dir:, sig_dir:)
|
38
|
+
RbsGoose::TypeInferrer.new.fix_error(target_group).each do |refined_rbs|
|
39
|
+
puts "write refined rbs to #{refined_rbs.path}\n"
|
40
|
+
refined_rbs.write
|
41
|
+
puts "done.\n\n"
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def infer_template
|
46
|
+
configuration.infer_template.build_template
|
47
|
+
end
|
48
|
+
|
49
|
+
def fix_error_template
|
50
|
+
configuration.fix_error_template.build_template
|
51
|
+
end
|
52
|
+
|
34
53
|
attr_reader :configuration
|
35
54
|
|
36
|
-
def_delegators :configuration, :
|
55
|
+
def_delegators :configuration, :infer_instruction, :infer_example_groups, :llm_mode
|
56
|
+
def_delegator :configuration, :llm_client, :llm
|
37
57
|
end
|
38
58
|
end
|
data/rbs_collection.lock.yaml
CHANGED
@@ -1,12 +1,16 @@
|
|
1
1
|
---
|
2
2
|
path: ".gem_rbs_collection"
|
3
3
|
gems:
|
4
|
+
- name: abbrev
|
5
|
+
version: '0'
|
6
|
+
source:
|
7
|
+
type: stdlib
|
4
8
|
- name: activesupport
|
5
9
|
version: '7.0'
|
6
10
|
source:
|
7
11
|
type: git
|
8
12
|
name: ruby/gem_rbs_collection
|
9
|
-
revision:
|
13
|
+
revision: 7a105f52053ce1c708b605dfa9c1ab8473424036
|
10
14
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
11
15
|
repo_dir: gems
|
12
16
|
- name: addressable
|
@@ -14,7 +18,7 @@ gems:
|
|
14
18
|
source:
|
15
19
|
type: git
|
16
20
|
name: ruby/gem_rbs_collection
|
17
|
-
revision:
|
21
|
+
revision: 7a105f52053ce1c708b605dfa9c1ab8473424036
|
18
22
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
19
23
|
repo_dir: gems
|
20
24
|
- name: ast
|
@@ -22,7 +26,7 @@ gems:
|
|
22
26
|
source:
|
23
27
|
type: git
|
24
28
|
name: ruby/gem_rbs_collection
|
25
|
-
revision:
|
29
|
+
revision: 7a105f52053ce1c708b605dfa9c1ab8473424036
|
26
30
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
27
31
|
repo_dir: gems
|
28
32
|
- name: baran
|
@@ -42,7 +46,7 @@ gems:
|
|
42
46
|
source:
|
43
47
|
type: git
|
44
48
|
name: ruby/gem_rbs_collection
|
45
|
-
revision:
|
49
|
+
revision: 7a105f52053ce1c708b605dfa9c1ab8473424036
|
46
50
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
47
51
|
repo_dir: gems
|
48
52
|
- name: connection_pool
|
@@ -50,9 +54,13 @@ gems:
|
|
50
54
|
source:
|
51
55
|
type: git
|
52
56
|
name: ruby/gem_rbs_collection
|
53
|
-
revision:
|
57
|
+
revision: 7a105f52053ce1c708b605dfa9c1ab8473424036
|
54
58
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
55
59
|
repo_dir: gems
|
60
|
+
- name: csv
|
61
|
+
version: '0'
|
62
|
+
source:
|
63
|
+
type: stdlib
|
56
64
|
- name: date
|
57
65
|
version: '0'
|
58
66
|
source:
|
@@ -66,7 +74,7 @@ gems:
|
|
66
74
|
source:
|
67
75
|
type: git
|
68
76
|
name: ruby/gem_rbs_collection
|
69
|
-
revision:
|
77
|
+
revision: 7a105f52053ce1c708b605dfa9c1ab8473424036
|
70
78
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
71
79
|
repo_dir: gems
|
72
80
|
- name: fileutils
|
@@ -82,13 +90,21 @@ gems:
|
|
82
90
|
source:
|
83
91
|
type: git
|
84
92
|
name: ruby/gem_rbs_collection
|
85
|
-
revision:
|
93
|
+
revision: 7a105f52053ce1c708b605dfa9c1ab8473424036
|
86
94
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
87
95
|
repo_dir: gems
|
88
96
|
- name: json
|
89
97
|
version: '0'
|
90
98
|
source:
|
91
99
|
type: stdlib
|
100
|
+
- name: listen
|
101
|
+
version: '3.2'
|
102
|
+
source:
|
103
|
+
type: git
|
104
|
+
name: ruby/gem_rbs_collection
|
105
|
+
revision: 7a105f52053ce1c708b605dfa9c1ab8473424036
|
106
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
107
|
+
repo_dir: gems
|
92
108
|
- name: logger
|
93
109
|
version: '0'
|
94
110
|
source:
|
@@ -105,62 +121,50 @@ gems:
|
|
105
121
|
version: '0'
|
106
122
|
source:
|
107
123
|
type: stdlib
|
108
|
-
- name:
|
109
|
-
version: '
|
124
|
+
- name: net-http
|
125
|
+
version: '0'
|
110
126
|
source:
|
111
|
-
type:
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
127
|
+
type: stdlib
|
128
|
+
- name: net-protocol
|
129
|
+
version: '0'
|
130
|
+
source:
|
131
|
+
type: stdlib
|
132
|
+
- name: optparse
|
133
|
+
version: '0'
|
134
|
+
source:
|
135
|
+
type: stdlib
|
136
|
+
- name: orthoses
|
137
|
+
version: 1.13.0
|
138
|
+
source:
|
139
|
+
type: rubygems
|
116
140
|
- name: parser
|
117
141
|
version: '3.2'
|
118
142
|
source:
|
119
143
|
type: git
|
120
144
|
name: ruby/gem_rbs_collection
|
121
|
-
revision:
|
145
|
+
revision: 7a105f52053ce1c708b605dfa9c1ab8473424036
|
122
146
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
123
147
|
repo_dir: gems
|
148
|
+
- name: pathname
|
149
|
+
version: '0'
|
150
|
+
source:
|
151
|
+
type: stdlib
|
124
152
|
- name: rainbow
|
125
153
|
version: '3.0'
|
126
154
|
source:
|
127
155
|
type: git
|
128
156
|
name: ruby/gem_rbs_collection
|
129
|
-
revision:
|
157
|
+
revision: 7a105f52053ce1c708b605dfa9c1ab8473424036
|
130
158
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
131
159
|
repo_dir: gems
|
132
|
-
- name:
|
133
|
-
version:
|
160
|
+
- name: rbs
|
161
|
+
version: 3.4.1
|
134
162
|
source:
|
135
|
-
type:
|
136
|
-
|
137
|
-
|
138
|
-
remote: https://github.com/ruby/gem_rbs_collection.git
|
139
|
-
repo_dir: gems
|
140
|
-
- name: regexp_parser
|
141
|
-
version: '2.8'
|
142
|
-
source:
|
143
|
-
type: git
|
144
|
-
name: ruby/gem_rbs_collection
|
145
|
-
revision: ec140aff951e3af39846eed4525ba5d040d294fa
|
146
|
-
remote: https://github.com/ruby/gem_rbs_collection.git
|
147
|
-
repo_dir: gems
|
148
|
-
- name: rubocop
|
149
|
-
version: '1.57'
|
150
|
-
source:
|
151
|
-
type: git
|
152
|
-
name: ruby/gem_rbs_collection
|
153
|
-
revision: ec140aff951e3af39846eed4525ba5d040d294fa
|
154
|
-
remote: https://github.com/ruby/gem_rbs_collection.git
|
155
|
-
repo_dir: gems
|
156
|
-
- name: rubocop-ast
|
157
|
-
version: '1.30'
|
163
|
+
type: rubygems
|
164
|
+
- name: rdoc
|
165
|
+
version: '0'
|
158
166
|
source:
|
159
|
-
type:
|
160
|
-
name: ruby/gem_rbs_collection
|
161
|
-
revision: ec140aff951e3af39846eed4525ba5d040d294fa
|
162
|
-
remote: https://github.com/ruby/gem_rbs_collection.git
|
163
|
-
repo_dir: gems
|
167
|
+
type: stdlib
|
164
168
|
- name: securerandom
|
165
169
|
version: '0'
|
166
170
|
source:
|
@@ -169,8 +173,16 @@ gems:
|
|
169
173
|
version: '0'
|
170
174
|
source:
|
171
175
|
type: stdlib
|
176
|
+
- name: steep
|
177
|
+
version: 1.6.0
|
178
|
+
source:
|
179
|
+
type: rubygems
|
180
|
+
- name: strscan
|
181
|
+
version: '0'
|
182
|
+
source:
|
183
|
+
type: stdlib
|
172
184
|
- name: tiktoken_ruby
|
173
|
-
version: 0.0.
|
185
|
+
version: 0.0.8
|
174
186
|
source:
|
175
187
|
type: rubygems
|
176
188
|
- name: time
|
@@ -181,6 +193,10 @@ gems:
|
|
181
193
|
version: '0'
|
182
194
|
source:
|
183
195
|
type: stdlib
|
196
|
+
- name: tsort
|
197
|
+
version: '0'
|
198
|
+
source:
|
199
|
+
type: stdlib
|
184
200
|
- name: uri
|
185
201
|
version: '0'
|
186
202
|
source:
|