rbs_goose 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +9 -2
  3. data/.ruby-version +1 -1
  4. data/Gemfile +20 -13
  5. data/Gemfile.lock +69 -38
  6. data/README-ja.md +88 -0
  7. data/README.md +25 -22
  8. data/Rakefile +53 -8
  9. data/Steepfile +1 -3
  10. data/evaluations/01_rbs_goose/claude_haiku.log +1494 -0
  11. data/evaluations/01_rbs_goose/claude_opus.log +1439 -0
  12. data/evaluations/01_rbs_goose/claude_sonnet.log +1437 -0
  13. data/evaluations/01_rbs_goose/gpt-3-5-turbo.log +1241 -0
  14. data/evaluations/01_rbs_goose/gpt-4-turbo.log +1304 -0
  15. data/examples/fix_errors/Steepfile +6 -0
  16. data/examples/fix_errors/error_messages.txt +26 -0
  17. data/{lib/rbs_goose/examples/rbs_samples → examples/fix_errors}/refined/sig/email.rbs +1 -1
  18. data/{lib/rbs_goose/examples/rbs_samples → examples/fix_errors}/refined/sig/person.rbs +2 -2
  19. data/{lib/rbs_goose/examples/rbs_samples → examples/fix_errors}/refined/sig/phone.rbs +1 -1
  20. data/examples/fix_errors/sig/email.rbs +11 -0
  21. data/examples/fix_errors/sig/person.rbs +15 -0
  22. data/examples/fix_errors/sig/phone.rbs +15 -0
  23. data/examples/rbs_samples/lib/email.rb +16 -0
  24. data/examples/rbs_samples/lib/person.rb +23 -0
  25. data/examples/rbs_samples/lib/phone.rb +22 -0
  26. data/examples/rbs_samples/refined/sig/email.rbs +11 -0
  27. data/examples/rbs_samples/refined/sig/person.rbs +15 -0
  28. data/examples/rbs_samples/refined/sig/phone.rbs +15 -0
  29. data/examples/rbs_syntax/Steepfile +6 -0
  30. data/examples/rbs_syntax/lib/a.rb +53 -0
  31. data/examples/rbs_syntax/lib/list.rb +9 -0
  32. data/examples/rbs_syntax/lib/main.rb +17 -0
  33. data/examples/rbs_syntax/refined/sig/a.rbs +47 -0
  34. data/examples/rbs_syntax/refined/sig/list.rbs +7 -0
  35. data/examples/rbs_syntax/refined/sig/main.rbs +26 -0
  36. data/examples/rbs_syntax/sig/a.rbs +47 -0
  37. data/examples/rbs_syntax/sig/list.rbs +7 -0
  38. data/examples/rbs_syntax/sig/main.rbs +26 -0
  39. data/lib/rbs_goose/configuration.rb +93 -23
  40. data/lib/rbs_goose/io/example.rb +2 -2
  41. data/lib/rbs_goose/io/example_group.rb +16 -7
  42. data/lib/rbs_goose/io/target_group.rb +1 -1
  43. data/lib/rbs_goose/io/typed_ruby.rb +3 -3
  44. data/lib/rbs_goose/orthoses/fix_error.rb +26 -0
  45. data/lib/rbs_goose/orthoses/infer.rb +26 -0
  46. data/lib/rbs_goose/orthoses.rb +9 -0
  47. data/lib/rbs_goose/templates/base.rb +77 -0
  48. data/lib/rbs_goose/templates/fix_error_template.rb +43 -0
  49. data/lib/rbs_goose/templates/infer_template.rb +30 -0
  50. data/lib/rbs_goose/templates.rb +3 -1
  51. data/lib/rbs_goose/type_inferrer.rb +73 -2
  52. data/lib/rbs_goose/version.rb +1 -1
  53. data/lib/rbs_goose.rb +24 -4
  54. data/rbs_collection.lock.yaml +63 -47
  55. data/renovate.json +5 -0
  56. data/sig/rbs_goose/configuration.rbs +20 -12
  57. data/sig/rbs_goose/io/example.rbs +7 -7
  58. data/sig/rbs_goose/io/example_group.rbs +9 -7
  59. data/sig/rbs_goose/io/file.rbs +10 -10
  60. data/sig/rbs_goose/io/target_group.rbs +2 -2
  61. data/sig/rbs_goose/io/typed_ruby.rbs +7 -7
  62. data/sig/rbs_goose/io.rbs +1 -1
  63. data/sig/rbs_goose/orthoses/fix_error.rbs +11 -0
  64. data/sig/rbs_goose/orthoses/infer.rbs +11 -0
  65. data/sig/rbs_goose/orthoses.rbs +2 -0
  66. data/sig/rbs_goose/templates/base.rbs +18 -0
  67. data/sig/rbs_goose/templates/fix_error_template.rbs +6 -0
  68. data/sig/rbs_goose/templates/infer_template.rbs +6 -0
  69. data/sig/rbs_goose/templates.rbs +1 -1
  70. data/sig/rbs_goose/type_inferrer.rbs +9 -1
  71. data/sig/rbs_goose.rbs +18 -9
  72. metadata +137 -21
  73. data/README-EN-US.md +0 -85
  74. data/lib/rbs_goose/templates/default_template.rb +0 -49
  75. data/sig/rbs_goose/templates/default_template.rbs +0 -10
  76. /data/{lib/rbs_goose/examples/rbs_samples → examples/fix_errors}/lib/email.rb +0 -0
  77. /data/{lib/rbs_goose/examples/rbs_samples → examples/fix_errors}/lib/person.rb +0 -0
  78. /data/{lib/rbs_goose/examples/rbs_samples → examples/fix_errors}/lib/phone.rb +0 -0
  79. /data/{lib/rbs_goose/examples → examples}/rbs_samples/Steepfile +0 -0
  80. /data/{lib/rbs_goose/examples → examples}/rbs_samples/sig/email.rbs +0 -0
  81. /data/{lib/rbs_goose/examples → examples}/rbs_samples/sig/person.rbs +0 -0
  82. /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 << Example.from_path(
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, '../examples')
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
@@ -10,7 +10,7 @@ module RbsGoose
10
10
  group << TypedRuby.from_path(
11
11
  ruby_path: ::File.join(code_dir, path),
12
12
  rbs_path: ::File.join(sig_dir, "#{path}s"),
13
- base_path: base_path
13
+ base_path:
14
14
  )
15
15
  end
16
16
  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: base_path)
8
+ ruby = File.new(path: ruby_path, base_path:)
9
9
  rbs = begin
10
- File.new(path: rbs_path, base_path: base_path)
10
+ File.new(path: rbs_path, base_path:)
11
11
  rescue StandardError
12
12
  nil
13
13
  end
14
- new(ruby: ruby, rbs: rbs)
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,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'orthoses/fix_error'
4
+ require_relative 'orthoses/infer'
5
+
6
+ module RbsGoose
7
+ module Orthoses
8
+ end
9
+ 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
@@ -1,6 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'templates/default_template'
3
+ require_relative 'templates/base'
4
+ require_relative 'templates/fix_error_template'
5
+ require_relative 'templates/infer_template'
4
6
 
5
7
  module RbsGoose
6
8
  module Templates
@@ -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
- template = RbsGoose.configuration.template
9
- result = RbsGoose.llm.complete(prompt: template.format(target_group)).completion
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RbsGoose
4
- VERSION = '0.1.1'
4
+ VERSION = '0.2.0'
5
5
  end
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(&block)
17
- @configuration = Configuration.new(&block)
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: code_dir, sig_dir: sig_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, :llm, :instruction, :example_groups
55
+ def_delegators :configuration, :infer_instruction, :infer_example_groups, :llm_mode
56
+ def_delegator :configuration, :llm_client, :llm
37
57
  end
38
58
  end
@@ -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: ec140aff951e3af39846eed4525ba5d040d294fa
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: ec140aff951e3af39846eed4525ba5d040d294fa
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: ec140aff951e3af39846eed4525ba5d040d294fa
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: ec140aff951e3af39846eed4525ba5d040d294fa
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: ec140aff951e3af39846eed4525ba5d040d294fa
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: ec140aff951e3af39846eed4525ba5d040d294fa
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: ec140aff951e3af39846eed4525ba5d040d294fa
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: parallel
109
- version: '1.20'
124
+ - name: net-http
125
+ version: '0'
110
126
  source:
111
- type: git
112
- name: ruby/gem_rbs_collection
113
- revision: ec140aff951e3af39846eed4525ba5d040d294fa
114
- remote: https://github.com/ruby/gem_rbs_collection.git
115
- repo_dir: gems
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: ec140aff951e3af39846eed4525ba5d040d294fa
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: ec140aff951e3af39846eed4525ba5d040d294fa
157
+ revision: 7a105f52053ce1c708b605dfa9c1ab8473424036
130
158
  remote: https://github.com/ruby/gem_rbs_collection.git
131
159
  repo_dir: gems
132
- - name: rake
133
- version: '13.0'
160
+ - name: rbs
161
+ version: 3.4.1
134
162
  source:
135
- type: git
136
- name: ruby/gem_rbs_collection
137
- revision: ec140aff951e3af39846eed4525ba5d040d294fa
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: git
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.6
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:
data/renovate.json CHANGED
@@ -10,6 +10,11 @@
10
10
  {
11
11
  "groupName": "rubocop",
12
12
  "matchPackagePatterns": [ "rubocop" ]
13
+ },
14
+ {
15
+ "matchUpdateTypes": ["minor", "patch"],
16
+ "matchCurrentVersion": "!/^0/",
17
+ "automerge": true
13
18
  }
14
19
  ]
15
20
  }