roast-ai 1.0.2 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. checksums.yaml +4 -4
  2. data/.claude/commands/docs/write-comments.md +1 -1
  3. data/.rubocop.yml +12 -1
  4. data/Gemfile +2 -2
  5. data/Gemfile.lock +149 -34
  6. data/README.md +56 -3
  7. data/examples/agent_with_multiple_prompts.rb +27 -0
  8. data/examples/custom_logging.rb +4 -2
  9. data/examples/demo/Gemfile.lock +49 -15
  10. data/examples/plugin-gem-example/Gemfile.lock +19 -15
  11. data/examples/simple_chat.rb +1 -1
  12. data/examples/simple_pi_agent.rb +18 -0
  13. data/internal/rubocop/cop/roast/no_test_class_nesting.rb +126 -0
  14. data/internal/rubocop/rubocop-roast.yml +6 -0
  15. data/internal/workflows/maintenance/branch_docs_impact.rb +97 -0
  16. data/internal/workflows/maintenance/deprecated_models_docs_updater.rb +78 -0
  17. data/lib/roast/cog/config.rb +1 -1
  18. data/lib/roast/cog/output.rb +2 -1
  19. data/lib/roast/cog/registry.rb +3 -3
  20. data/lib/roast/cog_input_manager.rb +28 -7
  21. data/lib/roast/cogs/agent/config.rb +2 -2
  22. data/lib/roast/cogs/agent/input.rb +20 -22
  23. data/lib/roast/cogs/agent/providers/claude/claude_invocation.rb +13 -5
  24. data/lib/roast/cogs/agent/providers/claude/messages/result_message.rb +1 -1
  25. data/lib/roast/cogs/agent/providers/claude/tool_result.rb +344 -4
  26. data/lib/roast/cogs/agent/providers/claude/tool_use.rb +356 -1
  27. data/lib/roast/cogs/agent/providers/claude.rb +16 -3
  28. data/lib/roast/cogs/agent/providers/pi/messages/tool_call_message.rb +60 -0
  29. data/lib/roast/cogs/agent/providers/pi/messages/tool_result_message.rb +57 -0
  30. data/lib/roast/cogs/agent/providers/pi/pi_invocation.rb +352 -0
  31. data/lib/roast/cogs/agent/providers/pi.rb +41 -0
  32. data/lib/roast/cogs/agent/stats.rb +29 -0
  33. data/lib/roast/cogs/agent/usage.rb +22 -0
  34. data/lib/roast/cogs/agent.rb +5 -6
  35. data/lib/roast/cogs/chat/config.rb +28 -2
  36. data/lib/roast/cogs/chat.rb +82 -10
  37. data/lib/roast/event.rb +1 -0
  38. data/lib/roast/event_monitor.rb +35 -3
  39. data/lib/roast/log.rb +21 -0
  40. data/lib/roast/log_formatter.rb +9 -7
  41. data/lib/roast/version.rb +1 -1
  42. data/lib/roast.rb +1 -3
  43. data/roast-ai.gemspec +2 -1
  44. data/sorbet/rbi/gems/activesupport@8.0.2.rbi +549 -383
  45. data/sorbet/rbi/gems/addressable@2.8.7.rbi +46 -44
  46. data/sorbet/rbi/gems/ast@2.4.3.rbi +7 -6
  47. data/sorbet/rbi/gems/async@2.34.0.rbi +21 -3
  48. data/sorbet/rbi/gems/benchmark@0.4.1.rbi +7 -7
  49. data/sorbet/rbi/gems/bigdecimal@3.2.2.rbi +198 -1
  50. data/sorbet/rbi/gems/concurrent-ruby@1.3.5.rbi +405 -328
  51. data/sorbet/rbi/gems/console@1.34.2.rbi +2 -2
  52. data/sorbet/rbi/gems/docile@1.4.1.rbi +30 -30
  53. data/sorbet/rbi/gems/drb@2.2.3.rbi +25 -25
  54. data/sorbet/rbi/gems/erubi@1.13.1.rbi +2 -0
  55. data/sorbet/rbi/gems/faraday-net_http@3.4.2.rbi +2 -77
  56. data/sorbet/rbi/gems/faraday-retry@2.3.2.rbi +2 -57
  57. data/sorbet/rbi/gems/faraday@2.14.1.rbi +382 -75
  58. data/sorbet/rbi/gems/guard-compat@1.2.1.rbi +1 -110
  59. data/sorbet/rbi/gems/guard-minitest@2.4.6.rbi +0 -139
  60. data/sorbet/rbi/gems/guard@2.19.1.rbi +38 -38
  61. data/sorbet/rbi/gems/hashdiff@1.2.0.rbi +3 -3
  62. data/sorbet/rbi/gems/i18n@1.14.7.rbi +53 -29
  63. data/sorbet/rbi/gems/io-event@1.14.0.rbi +67 -10
  64. data/sorbet/rbi/gems/json@2.18.1.rbi +227 -5
  65. data/sorbet/rbi/gems/lint_roller@1.1.0.rbi +83 -0
  66. data/sorbet/rbi/gems/listen@3.9.0.rbi +7 -7
  67. data/sorbet/rbi/gems/logger@1.7.0.rbi +3 -3
  68. data/sorbet/rbi/gems/lumberjack@1.2.10.rbi +21 -21
  69. data/sorbet/rbi/gems/marcel@1.1.0.rbi +1 -1
  70. data/sorbet/rbi/gems/minitest-rg@5.3.0.rbi +0 -96
  71. data/sorbet/rbi/gems/minitest@5.25.5.rbi +1 -16
  72. data/sorbet/rbi/gems/net-http@0.9.1.rbi +27 -19
  73. data/sorbet/rbi/gems/netrc@0.11.0.rbi +18 -0
  74. data/sorbet/rbi/gems/notiffany@0.1.3.rbi +20 -20
  75. data/sorbet/rbi/gems/ostruct@0.6.2.rbi +149 -15
  76. data/sorbet/rbi/gems/parser@3.3.8.0.rbi +141 -139
  77. data/sorbet/rbi/gems/prism@1.4.0.rbi +922 -864
  78. data/sorbet/rbi/gems/public_suffix@6.0.2.rbi +56 -35
  79. data/sorbet/rbi/gems/racc@1.8.1.rbi +10 -2
  80. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +12 -12
  81. data/sorbet/rbi/gems/rake@13.3.0.rbi +219 -318
  82. data/sorbet/rbi/gems/{rbi@0.3.6.rbi → rbi@0.3.9.rbi} +612 -2267
  83. data/sorbet/rbi/gems/{rbs@3.9.4.rbi → rbs@4.0.0.dev.5.rbi} +2013 -680
  84. data/sorbet/rbi/gems/regexp_parser@2.10.0.rbi +151 -113
  85. data/sorbet/rbi/gems/require-hooks@0.2.3.rbi +110 -0
  86. data/sorbet/rbi/gems/rexml@3.4.2.rbi +24 -51
  87. data/sorbet/rbi/gems/rubocop-ast@1.45.1.rbi +506 -815
  88. data/sorbet/rbi/gems/rubocop-sorbet@0.10.5.rbi +16 -16
  89. data/sorbet/rbi/gems/rubocop@1.77.0.rbi +2692 -2327
  90. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +8 -8
  91. data/sorbet/rbi/gems/ruby_llm@1.8.2.rbi +38 -23
  92. data/sorbet/rbi/gems/securerandom@0.4.1.rbi +1 -1
  93. data/sorbet/rbi/gems/simplecov-html@0.13.2.rbi +2 -131
  94. data/sorbet/rbi/gems/simplecov@0.22.0.rbi +28 -127
  95. data/sorbet/rbi/gems/{spoom@1.6.3.rbi → spoom@1.7.11.rbi} +1139 -2246
  96. data/sorbet/rbi/gems/sqlite3@2.9.0.rbi +91 -1
  97. data/sorbet/rbi/gems/{tapioca@0.16.11.rbi → tapioca@0.17.10.rbi} +721 -835
  98. data/sorbet/rbi/gems/thor@1.4.0.rbi +53 -53
  99. data/sorbet/rbi/gems/tsort@0.2.0.rbi +393 -0
  100. data/sorbet/rbi/gems/type_toolkit@0.0.5.rbi +49 -0
  101. data/sorbet/rbi/gems/tzinfo@2.0.6.rbi +144 -143
  102. data/sorbet/rbi/gems/uri@1.1.1.rbi +7 -7
  103. data/sorbet/rbi/gems/vcr@6.3.1.rbi +53 -36
  104. data/sorbet/rbi/gems/webmock@3.25.1.rbi +38 -13
  105. data/sorbet/rbi/gems/zeitwerk@2.7.3.rbi +39 -272
  106. data/sorbet/rbi/shims/lib/roast/execution_context.rbi +3 -3
  107. data/tutorial/01_your_first_workflow/README.md +9 -5
  108. data/tutorial/01_your_first_workflow/configured_chat.rb +1 -1
  109. data/tutorial/02_chaining_cogs/README.md +2 -2
  110. data/tutorial/02_chaining_cogs/code_review.rb +1 -1
  111. data/tutorial/02_chaining_cogs/session_resumption.rb +1 -1
  112. data/tutorial/03_targets_and_params/README.md +1 -1
  113. data/tutorial/04_configuration_options/README.md +2 -2
  114. data/tutorial/08_iterative_workflows/README.md +1 -1
  115. data/tutorial/README.md +1 -1
  116. metadata +39 -17
  117. data/docs/AGENT_STEPS.md +0 -288
  118. data/docs/INSTRUMENTATION.md +0 -243
  119. data/docs/ITERATION_SYNTAX.md +0 -147
  120. data/docs/VALIDATION.md +0 -178
  121. data/lib/roast/nil_assertions.rb +0 -23
  122. /data/internal/documentation/{architectural-notes.md → comments/architectural-notes.md} +0 -0
  123. /data/internal/documentation/{doc-comments-external.md → comments/doc-comments-external.md} +0 -0
  124. /data/internal/documentation/{doc-comments-internal.md → comments/doc-comments-internal.md} +0 -0
  125. /data/internal/documentation/{doc-comments.md → comments/doc-comments.md} +0 -0
@@ -9,16 +9,42 @@
9
9
  module Kernel
10
10
  private
11
11
 
12
- # : (String) -> bool
13
- #
14
12
  # source://zeitwerk//lib/zeitwerk/core_ext/kernel.rb#23
15
13
  def require(path); end
16
14
 
15
+ # Zeitwerk's main idea is to define autoloads for project constants, and then
16
+ # intercept them when triggered in this thin `Kernel#require` wrapper.
17
+ #
18
+ # That allows us to complete the circle, invoke callbacks, autovivify modules,
19
+ # define autoloads for just autoloaded namespaces, update internal state, etc.
20
+ #
21
+ # On the other hand, if you publish a new version of a gem that is now managed
22
+ # by Zeitwerk, client code can reference directly your classes and modules and
23
+ # should not require anything. But if someone has legacy require calls around,
24
+ # they will work as expected, and in a compatible way. This feature is by now
25
+ # EXPERIMENTAL and UNDOCUMENTED.
26
+ #
27
+ # source://zeitwerk//lib/zeitwerk/core_ext/kernel.rb#17
28
+ def zeitwerk_original_require(name); end
29
+
17
30
  class << self
18
- # : (String) -> bool
19
- #
20
31
  # source://zeitwerk//lib/zeitwerk/core_ext/kernel.rb#23
21
32
  def require(path); end
33
+
34
+ # Zeitwerk's main idea is to define autoloads for project constants, and then
35
+ # intercept them when triggered in this thin `Kernel#require` wrapper.
36
+ #
37
+ # That allows us to complete the circle, invoke callbacks, autovivify modules,
38
+ # define autoloads for just autoloaded namespaces, update internal state, etc.
39
+ #
40
+ # On the other hand, if you publish a new version of a gem that is now managed
41
+ # by Zeitwerk, client code can reference directly your classes and modules and
42
+ # should not require anything. But if someone has legacy require calls around,
43
+ # they will work as expected, and in a compatible way. This feature is by now
44
+ # EXPERIMENTAL and UNDOCUMENTED.
45
+ #
46
+ # source://zeitwerk//lib/zeitwerk/core_ext/kernel.rb#19
47
+ def zeitwerk_original_require(name); end
22
48
  end
23
49
  end
24
50
 
@@ -31,7 +57,6 @@ module Zeitwerk
31
57
  class << self
32
58
  # This is a dangerous method.
33
59
  #
34
- # : () -> void
35
60
  #
36
61
  # source://zeitwerk//lib/zeitwerk.rb#23
37
62
  def with_loader; end
@@ -40,8 +65,6 @@ end
40
65
 
41
66
  # source://zeitwerk//lib/zeitwerk/core_ext/module.rb#3
42
67
  module Zeitwerk::ConstAdded
43
- # : (Symbol) -> void
44
- #
45
68
  # source://zeitwerk//lib/zeitwerk/core_ext/module.rb#5
46
69
  def const_added(cname); end
47
70
  end
@@ -64,128 +87,87 @@ class Zeitwerk::Cref
64
87
  # The type of the first argument is Module because Class < Module, class
65
88
  # objects are also valid.
66
89
  #
67
- # : (Module, Symbol) -> void
68
90
  #
69
91
  # @return [Cref] a new instance of Cref
70
92
  #
71
93
  # source://zeitwerk//lib/zeitwerk/cref.rb#28
72
94
  def initialize(mod, cname); end
73
95
 
74
- # : (String) -> nil
75
- #
76
96
  # source://zeitwerk//lib/zeitwerk/cref.rb#46
77
97
  def autoload(abspath); end
78
98
 
79
- # : () -> String?
80
- #
81
99
  # @return [Boolean]
82
100
  #
83
101
  # source://zeitwerk//lib/zeitwerk/cref.rb#41
84
102
  def autoload?; end
85
103
 
86
- # : Symbol
87
- #
88
104
  # source://zeitwerk//lib/zeitwerk/cref.rb#22
89
105
  def cname; end
90
106
 
91
- # : () -> bool
92
- #
93
107
  # @return [Boolean]
94
108
  #
95
109
  # source://zeitwerk//lib/zeitwerk/cref.rb#51
96
110
  def defined?; end
97
111
 
98
- # : () -> top ! NameError
99
- #
100
112
  # source://zeitwerk//lib/zeitwerk/cref.rb#61
101
113
  def get; end
102
114
 
103
- # : Module
104
- #
105
115
  # source://zeitwerk//lib/zeitwerk/cref.rb#19
106
116
  def mod; end
107
117
 
108
- # : () -> String
109
- #
110
118
  # source://zeitwerk//lib/zeitwerk/cref.rb#35
111
119
  def path; end
112
120
 
113
- # : () -> void ! NameError
114
- #
115
121
  # source://zeitwerk//lib/zeitwerk/cref.rb#66
116
122
  def remove; end
117
123
 
118
- # : (top) -> top
119
- #
120
124
  # source://zeitwerk//lib/zeitwerk/cref.rb#56
121
125
  def set(value); end
122
126
 
123
- # : () -> String
124
- #
125
- # source://zeitwerk//lib/zeitwerk/cref.rb#35
127
+ # source://zeitwerk//lib/zeitwerk/cref.rb#38
126
128
  def to_s; end
127
129
  end
128
130
 
129
- # : [Value]
130
- #
131
131
  # source://zeitwerk//lib/zeitwerk/cref/map.rb#73
132
132
  class Zeitwerk::Cref::Map
133
- # : () -> void
134
- #
135
133
  # @return [Map] a new instance of Map
136
134
  #
137
135
  # source://zeitwerk//lib/zeitwerk/cref/map.rb#75
138
136
  def initialize; end
139
137
 
140
- # : (Zeitwerk::Cref) -> Value?
141
- #
142
138
  # source://zeitwerk//lib/zeitwerk/cref/map.rb#90
143
139
  def [](cref); end
144
140
 
145
- # : (Zeitwerk::Cref, Value) -> Value
146
- #
147
141
  # source://zeitwerk//lib/zeitwerk/cref/map.rb#82
148
142
  def []=(cref, value); end
149
143
 
150
- # : () -> void
151
- #
152
144
  # source://zeitwerk//lib/zeitwerk/cref/map.rb#147
153
145
  def clear; end
154
146
 
155
- # : (Zeitwerk::Cref) -> Value?
156
- #
157
147
  # source://zeitwerk//lib/zeitwerk/cref/map.rb#105
158
148
  def delete(cref); end
159
149
 
160
- # : (Value) -> void
161
- #
162
150
  # source://zeitwerk//lib/zeitwerk/cref/map.rb#124
163
151
  def delete_by_value(value); end
164
152
 
165
153
  # Ad-hoc for loader_for, called from const_added. That is a hot path, I prefer
166
154
  # to not create a cref in every call, since that is global.
167
155
  #
168
- # : (Module, Symbol) -> Value?
169
156
  #
170
157
  # source://zeitwerk//lib/zeitwerk/cref/map.rb#113
171
158
  def delete_mod_cname(mod, cname); end
172
159
 
173
160
  # Order of yielded crefs is undefined.
174
161
  #
175
- # : () { (Zeitwerk::Cref) -> void } -> void
176
162
  #
177
163
  # source://zeitwerk//lib/zeitwerk/cref/map.rb#136
178
164
  def each_key; end
179
165
 
180
- # : () -> bool
181
- #
182
166
  # @return [Boolean]
183
167
  #
184
168
  # source://zeitwerk//lib/zeitwerk/cref/map.rb#154
185
169
  def empty?; end
186
170
 
187
- # : (Zeitwerk::Cref, { () -> Value }) -> Value
188
- #
189
171
  # source://zeitwerk//lib/zeitwerk/cref/map.rb#97
190
172
  def get_or_set(cref, &block); end
191
173
  end
@@ -195,15 +177,11 @@ class Zeitwerk::Error < ::StandardError; end
195
177
 
196
178
  # source://zeitwerk//lib/zeitwerk/gem_inflector.rb#4
197
179
  class Zeitwerk::GemInflector < ::Zeitwerk::Inflector
198
- # : (String) -> void
199
- #
200
180
  # @return [GemInflector] a new instance of GemInflector
201
181
  #
202
182
  # source://zeitwerk//lib/zeitwerk/gem_inflector.rb#6
203
183
  def initialize(root_file); end
204
184
 
205
- # : (String, String) -> String
206
- #
207
185
  # source://zeitwerk//lib/zeitwerk/gem_inflector.rb#13
208
186
  def camelize(basename, abspath); end
209
187
  end
@@ -212,28 +190,20 @@ end
212
190
  #
213
191
  # source://zeitwerk//lib/zeitwerk/gem_loader.rb#5
214
192
  class Zeitwerk::GemLoader < ::Zeitwerk::Loader
215
- # : (String, namespace: Module, warn_on_extra_files: boolish) -> void
216
- #
217
193
  # @return [GemLoader] a new instance of GemLoader
218
194
  #
219
195
  # source://zeitwerk//lib/zeitwerk/gem_loader.rb#19
220
196
  def initialize(root_file, namespace:, warn_on_extra_files:); end
221
197
 
222
- # : () -> void
223
- #
224
198
  # source://zeitwerk//lib/zeitwerk/gem_loader.rb#34
225
199
  def setup; end
226
200
 
227
201
  private
228
202
 
229
- # : () -> void
230
- #
231
203
  # source://zeitwerk//lib/zeitwerk/gem_loader.rb#42
232
204
  def warn_on_extra_files; end
233
205
 
234
206
  class << self
235
- # : (String, namespace: Module, warn_on_extra_files: boolish) -> Zeitwerk::GemLoader
236
- #
237
207
  # @private
238
208
  #
239
209
  # source://zeitwerk//lib/zeitwerk/gem_loader.rb#14
@@ -241,6 +211,7 @@ class Zeitwerk::GemLoader < ::Zeitwerk::Loader
241
211
 
242
212
  private
243
213
 
214
+ # source://zeitwerk//lib/zeitwerk/gem_loader.rb#10
244
215
  def new(*_arg0); end
245
216
  end
246
217
  end
@@ -256,7 +227,6 @@ class Zeitwerk::Inflector
256
227
  #
257
228
  # Takes into account hard-coded mappings configured with `inflect`.
258
229
  #
259
- # : (String, String) -> String
260
230
  #
261
231
  # source://zeitwerk//lib/zeitwerk/inflector.rb#15
262
232
  def camelize(basename, _abspath); end
@@ -273,7 +243,6 @@ class Zeitwerk::Inflector
273
243
  # inflector.camelize("mysql_adapter", abspath) # => "MySQLAdapter"
274
244
  # inflector.camelize("users_controller", abspath) # => "UsersController"
275
245
  #
276
- # : (Hash[String, String]) -> void
277
246
  #
278
247
  # source://zeitwerk//lib/zeitwerk/inflector.rb#32
279
248
  def inflect(inflections); end
@@ -283,7 +252,6 @@ class Zeitwerk::Inflector
283
252
  # Hard-coded basename to constant name user maps that override the default
284
253
  # inflection logic.
285
254
  #
286
- # : () -> Hash[String, String]
287
255
  #
288
256
  # source://zeitwerk//lib/zeitwerk/inflector.rb#42
289
257
  def overrides; end
@@ -293,8 +261,6 @@ end
293
261
  #
294
262
  # source://zeitwerk//lib/zeitwerk/internal.rb#4
295
263
  module Zeitwerk::Internal
296
- # : (Symbol) -> void
297
- #
298
264
  # source://zeitwerk//lib/zeitwerk/internal.rb#6
299
265
  def internal(method_name); end
300
266
  end
@@ -314,37 +280,34 @@ class Zeitwerk::Loader
314
280
  # source://zeitwerk//lib/zeitwerk/loader.rb#107
315
281
  def initialize; end
316
282
 
317
- # source://zeitwerk//lib/zeitwerk/loader.rb#66
283
+ # source://zeitwerk//lib/zeitwerk/loader.rb#67
318
284
  def __autoloaded_dirs; end
319
285
 
320
- # source://zeitwerk//lib/zeitwerk/loader.rb#32
286
+ # source://zeitwerk//lib/zeitwerk/loader.rb#33
321
287
  def __autoloads; end
322
288
 
323
- # source://zeitwerk//lib/zeitwerk/loader.rb#56
289
+ # source://zeitwerk//lib/zeitwerk/loader.rb#57
324
290
  def __inceptions; end
325
291
 
326
- # source://zeitwerk//lib/zeitwerk/loader.rb#85
292
+ # source://zeitwerk//lib/zeitwerk/loader.rb#86
327
293
  def __namespace_dirs; end
328
294
 
329
295
  # source://zeitwerk//lib/zeitwerk/loader.rb#362
330
296
  def __shadowed_file?(file); end
331
297
 
332
- # source://zeitwerk//lib/zeitwerk/loader.rb#96
298
+ # source://zeitwerk//lib/zeitwerk/loader.rb#97
333
299
  def __shadowed_files; end
334
300
 
335
- # source://zeitwerk//lib/zeitwerk/loader.rb#76
301
+ # source://zeitwerk//lib/zeitwerk/loader.rb#77
336
302
  def __to_unload; end
337
303
 
338
304
  # Returns a hash that maps the absolute paths of the managed files and
339
305
  # directories to their respective expected constant paths.
340
306
  #
341
- # : () -> Hash[String, String]
342
307
  #
343
308
  # source://zeitwerk//lib/zeitwerk/loader.rb#247
344
309
  def all_expected_cpaths; end
345
310
 
346
- # : (String | Pathname) -> String?
347
- #
348
311
  # @raise [Zeitwerk::Error]
349
312
  #
350
313
  # source://zeitwerk//lib/zeitwerk/loader.rb#277
@@ -356,7 +319,6 @@ class Zeitwerk::Loader
356
319
  # This method is not thread-safe, please see how this can be achieved by
357
320
  # client code in the README of the project.
358
321
  #
359
- # : () -> void ! Zeitwerk::Error
360
322
  #
361
323
  # @raise [ReloadingDisabledError]
362
324
  #
@@ -365,7 +327,6 @@ class Zeitwerk::Loader
365
327
 
366
328
  # Sets autoloads in the root namespaces.
367
329
  #
368
- # : () -> void
369
330
  #
370
331
  # source://zeitwerk//lib/zeitwerk/loader.rb#128
371
332
  def setup; end
@@ -381,7 +342,6 @@ class Zeitwerk::Loader
381
342
  # means `unload` + `setup`. This one is available to be used together with
382
343
  # `unregister`, which is undocumented too.
383
344
  #
384
- # : () -> void
385
345
  #
386
346
  # source://zeitwerk//lib/zeitwerk/loader.rb#154
387
347
  def unload; end
@@ -392,7 +352,6 @@ class Zeitwerk::Loader
392
352
  # This is an undocumented method that I wrote to help transition from the
393
353
  # classic autoloader in Rails. Its usage was removed from Rails in 7.0.
394
354
  #
395
- # : (String) -> bool
396
355
  #
397
356
  # @return [Boolean]
398
357
  #
@@ -405,34 +364,26 @@ class Zeitwerk::Loader
405
364
  # This is an undocumented method that I wrote to help transition from the
406
365
  # classic autoloader in Rails. Its usage was removed from Rails in 7.0.
407
366
  #
408
- # : () -> Array[String]
409
367
  #
410
368
  # source://zeitwerk//lib/zeitwerk/loader.rb#342
411
369
  def unloadable_cpaths; end
412
370
 
413
371
  # This is a dangerous method.
414
372
  #
415
- # : () -> void
416
373
  #
417
374
  # source://zeitwerk//lib/zeitwerk/loader.rb#350
418
375
  def unregister; end
419
376
 
420
377
  private
421
378
 
422
- # : (Zeitwerk::Cref, String) -> void
423
- #
424
379
  # source://zeitwerk//lib/zeitwerk/loader.rb#513
425
380
  def autoload_file(cref, file); end
426
381
 
427
- # : (Zeitwerk::Cref) -> String?
428
- #
429
382
  # @return [Boolean]
430
383
  #
431
384
  # source://zeitwerk//lib/zeitwerk/loader.rb#565
432
385
  def autoload_path_set_by_me_for?(cref); end
433
386
 
434
- # : (Zeitwerk::Cref, String) -> void
435
- #
436
387
  # source://zeitwerk//lib/zeitwerk/loader.rb#484
437
388
  def autoload_subdir(cref, subdir); end
438
389
 
@@ -442,7 +393,6 @@ class Zeitwerk::Loader
442
393
  # Files are removed as they are autoloaded, but directories need to wait due
443
394
  # to concurrency (see why in Zeitwerk::Loader::Callbacks#on_dir_autoloaded).
444
395
  #
445
- # : Array[String]
446
396
  #
447
397
  # source://zeitwerk//lib/zeitwerk/loader.rb#66
448
398
  def autoloaded_dirs; end
@@ -454,23 +404,16 @@ class Zeitwerk::Loader
454
404
  # "/Users/fxn/blog/app/models/hotel/pricing.rb" => #<Zeitwerk::Cref:... @mod=Hotel, @cname=:Pricing, ...>,
455
405
  # ...
456
406
  #
457
- # : Hash[String, Zeitwerk::Cref]
458
407
  #
459
408
  # source://zeitwerk//lib/zeitwerk/loader.rb#32
460
409
  def autoloads; end
461
410
 
462
- # : (Zeitwerk::Cref, String) -> void
463
- #
464
411
  # source://zeitwerk//lib/zeitwerk/loader.rb#547
465
412
  def define_autoload(cref, abspath); end
466
413
 
467
- # : (String, Module) -> void
468
- #
469
414
  # source://zeitwerk//lib/zeitwerk/loader.rb#466
470
415
  def define_autoloads_for_dir(dir, parent); end
471
416
 
472
- # : Monitor
473
- #
474
417
  # source://zeitwerk//lib/zeitwerk/loader.rb#104
475
418
  def dirs_autoload_monitor; end
476
419
 
@@ -494,13 +437,10 @@ class Zeitwerk::Loader
494
437
  # The object Zeitwerk::Registry.inceptions, on the other hand, acts as a
495
438
  # global registry for them.
496
439
  #
497
- # : Zeitwerk::Cref::Map[String]
498
440
  #
499
441
  # source://zeitwerk//lib/zeitwerk/loader.rb#56
500
442
  def inceptions; end
501
443
 
502
- # : Mutex
503
- #
504
444
  # source://zeitwerk//lib/zeitwerk/loader.rb#100
505
445
  def mutex; end
506
446
 
@@ -509,7 +449,6 @@ class Zeitwerk::Loader
509
449
  # When these crefs get defined we know their children are spread over those
510
450
  # directories. We'll visit them to set up the corresponding autoloads.
511
451
  #
512
- # : Zeitwerk::Cref::Map[String]
513
452
  #
514
453
  # source://zeitwerk//lib/zeitwerk/loader.rb#85
515
454
  def namespace_dirs; end
@@ -517,28 +456,19 @@ class Zeitwerk::Loader
517
456
  # `dir` is the directory that would have autovivified a namespace. `file` is
518
457
  # the file where we've found the namespace is explicitly defined.
519
458
  #
520
- # : (dir: String, file: String, cref: Zeitwerk::Cref) -> void
521
459
  #
522
460
  # source://zeitwerk//lib/zeitwerk/loader.rb#534
523
461
  def promote_namespace_from_implicit_to_explicit(dir:, file:, cref:); end
524
462
 
525
- # : (String) -> void
526
- #
527
463
  # source://zeitwerk//lib/zeitwerk/loader.rb#598
528
464
  def raise_if_conflicting_directory(dir); end
529
465
 
530
- # : (Zeitwerk::Cref) -> void
531
- #
532
466
  # source://zeitwerk//lib/zeitwerk/loader.rb#574
533
467
  def register_explicit_namespace(cref); end
534
468
 
535
- # : (Zeitwerk::Cref, String) -> void
536
- #
537
469
  # source://zeitwerk//lib/zeitwerk/loader.rb#584
538
470
  def register_inception(cref, abspath); end
539
471
 
540
- # : (String, top, String) -> void
541
- #
542
472
  # source://zeitwerk//lib/zeitwerk/loader.rb#622
543
473
  def run_on_unload_callbacks(cref, value, abspath); end
544
474
 
@@ -552,7 +482,6 @@ class Zeitwerk::Loader
552
482
  # loader has only scanned the top-level, `shadowed_files` does not have the
553
483
  # shadowed files that may exist deep in the project tree.
554
484
  #
555
- # : Set[String]
556
485
  #
557
486
  # source://zeitwerk//lib/zeitwerk/loader.rb#96
558
487
  def shadowed_files; end
@@ -563,28 +492,19 @@ class Zeitwerk::Loader
563
492
  # On unload, the autoload paths are passed to callbacks, files deleted from
564
493
  # $LOADED_FEATURES, and the crefs are deleted.
565
494
  #
566
- # : Hash[String, Zeitwerk::Cref]
567
495
  #
568
496
  # source://zeitwerk//lib/zeitwerk/loader.rb#76
569
497
  def to_unload; end
570
498
 
571
- # : (Zeitwerk::Cref) -> void
572
- #
573
499
  # source://zeitwerk//lib/zeitwerk/loader.rb#629
574
500
  def unload_autoload(cref); end
575
501
 
576
- # : (Zeitwerk::Cref) -> void
577
- #
578
502
  # source://zeitwerk//lib/zeitwerk/loader.rb#635
579
503
  def unload_cref(cref); end
580
504
 
581
- # : () -> void
582
- #
583
505
  # source://zeitwerk//lib/zeitwerk/loader.rb#579
584
506
  def unregister_explicit_namespaces; end
585
507
 
586
- # : () -> void
587
- #
588
508
  # source://zeitwerk//lib/zeitwerk/loader.rb#590
589
509
  def unregister_inceptions; end
590
510
 
@@ -592,25 +512,19 @@ class Zeitwerk::Loader
592
512
  # Returns an array with the absolute paths of the root directories of all
593
513
  # registered loaders. This is a read-only collection.
594
514
  #
595
- # : () -> Array[String]
596
515
  #
597
516
  # source://zeitwerk//lib/zeitwerk/loader.rb#456
598
517
  def all_dirs; end
599
518
 
600
- # : call(String) -> void | debug(String) -> void | nil
601
- #
602
519
  # source://zeitwerk//lib/zeitwerk/loader.rb#372
603
520
  def default_logger; end
604
521
 
605
- # : call(String) -> void | debug(String) -> void | nil
606
- #
607
522
  # source://zeitwerk//lib/zeitwerk/loader.rb#372
608
523
  def default_logger=(_arg0); end
609
524
 
610
525
  # Broadcasts `eager_load` to all loaders. Those that have not been setup
611
526
  # are skipped.
612
527
  #
613
- # : () -> void
614
528
  #
615
529
  # source://zeitwerk//lib/zeitwerk/loader.rb#428
616
530
  def eager_load_all; end
@@ -618,7 +532,6 @@ class Zeitwerk::Loader
618
532
  # Broadcasts `eager_load_namespace` to all loaders. Those that have not
619
533
  # been setup are skipped.
620
534
  #
621
- # : (Module) -> void
622
535
  #
623
536
  # source://zeitwerk//lib/zeitwerk/loader.rb#442
624
537
  def eager_load_namespace(mod); end
@@ -638,7 +551,6 @@ class Zeitwerk::Loader
638
551
  # This method returns a subclass of Zeitwerk::Loader, but the exact type
639
552
  # is private, client code can only rely on the interface.
640
553
  #
641
- # : (?warn_on_extra_files: boolish) -> Zeitwerk::GemLoader
642
554
  #
643
555
  # source://zeitwerk//lib/zeitwerk/loader.rb#390
644
556
  def for_gem(warn_on_extra_files: T.unsafe(nil)); end
@@ -658,7 +570,6 @@ class Zeitwerk::Loader
658
570
  # This method returns a subclass of Zeitwerk::Loader, but the exact type
659
571
  # is private, client code can only rely on the interface.
660
572
  #
661
- # : (Module) -> Zeitwerk::GemLoader
662
573
  #
663
574
  # source://zeitwerk//lib/zeitwerk/loader.rb#411
664
575
  def for_gem_extension(namespace); end
@@ -689,8 +600,6 @@ module Zeitwerk::Loader::Callbacks
689
600
  # source://zeitwerk//lib/zeitwerk/loader/callbacks.rb#77
690
601
  def on_namespace_loaded(cref, namespace); end
691
602
 
692
- # : (String, top, String) -> void
693
- #
694
603
  # source://zeitwerk//lib/zeitwerk/loader/callbacks.rb#88
695
604
  def run_on_load_callbacks(cpath, value, abspath); end
696
605
  end
@@ -706,11 +615,11 @@ module Zeitwerk::Loader::Config
706
615
  # source://zeitwerk//lib/zeitwerk/loader/config.rb#289
707
616
  def __ignores?(abspath); end
708
617
 
618
+ # source://zeitwerk//lib/zeitwerk/loader/config.rb#30
709
619
  def __roots; end
710
620
 
711
621
  # Configure directories or glob patterns to be collapsed.
712
622
  #
713
- # : (*(String | Pathname | Array[String | Pathname])) -> void
714
623
  #
715
624
  # source://zeitwerk//lib/zeitwerk/loader/config.rb#213
716
625
  def collapse(*glob_patterns); end
@@ -724,7 +633,6 @@ module Zeitwerk::Loader::Config
724
633
  #
725
634
  # These are read-only collections, please add to them with `push_dir`.
726
635
  #
727
- # : (?namespaces: boolish, ?ignored: boolish) -> Array[String] | Hash[String, Module]
728
636
  #
729
637
  # source://zeitwerk//lib/zeitwerk/loader/config.rb#154
730
638
  def dirs(namespaces: T.unsafe(nil), ignored: T.unsafe(nil)); end
@@ -732,7 +640,6 @@ module Zeitwerk::Loader::Config
732
640
  # Let eager load ignore the given files or directories. The constants defined
733
641
  # in those files are still autoloadable.
734
642
  #
735
- # : (*(String | Pathname | Array[String | Pathname])) -> void
736
643
  #
737
644
  # source://zeitwerk//lib/zeitwerk/loader/config.rb#195
738
645
  def do_not_eager_load(*paths); end
@@ -740,42 +647,31 @@ module Zeitwerk::Loader::Config
740
647
  # You need to call this method before setup in order to be able to reload.
741
648
  # There is no way to undo this, either you want to reload or you don't.
742
649
  #
743
- # : () -> void ! Zeitwerk::Error
744
650
  #
745
651
  # source://zeitwerk//lib/zeitwerk/loader/config.rb#174
746
652
  def enable_reloading; end
747
653
 
748
654
  # Configure files, directories, or glob patterns to be totally ignored.
749
655
  #
750
- # : (*(String | Pathname | Array[String | Pathname])) -> void
751
656
  #
752
657
  # source://zeitwerk//lib/zeitwerk/loader/config.rb#202
753
658
  def ignore(*glob_patterns); end
754
659
 
755
- # : camelize(String, String) -> String
756
- #
757
660
  # source://zeitwerk//lib/zeitwerk/loader/config.rb#11
758
661
  def inflector; end
759
662
 
760
- # : camelize(String, String) -> String
761
- #
762
663
  # source://zeitwerk//lib/zeitwerk/loader/config.rb#11
763
664
  def inflector=(_arg0); end
764
665
 
765
666
  # Logs to `$stdout`, handy shortcut for debugging.
766
667
  #
767
- # : () -> void
768
668
  #
769
669
  # source://zeitwerk//lib/zeitwerk/loader/config.rb#281
770
670
  def log!; end
771
671
 
772
- # : call(String) -> void | debug(String) -> void | nil
773
- #
774
672
  # source://zeitwerk//lib/zeitwerk/loader/config.rb#14
775
673
  def logger; end
776
674
 
777
- # : call(String) -> void | debug(String) -> void | nil
778
- #
779
675
  # source://zeitwerk//lib/zeitwerk/loader/config.rb#14
780
676
  def logger=(_arg0); end
781
677
 
@@ -793,7 +689,6 @@ module Zeitwerk::Loader::Config
793
689
  # # ...
794
690
  # end
795
691
  #
796
- # : (String?) { (top, String) -> void } -> void ! TypeError
797
692
  #
798
693
  # @raise [TypeError]
799
694
  #
@@ -803,7 +698,6 @@ module Zeitwerk::Loader::Config
803
698
  # Configure a block to be called after setup and on each reload.
804
699
  # If setup was already done, the block runs immediately.
805
700
  #
806
- # : () { () -> void } -> void
807
701
  #
808
702
  # source://zeitwerk//lib/zeitwerk/loader/config.rb#225
809
703
  def on_setup(&block); end
@@ -822,7 +716,6 @@ module Zeitwerk::Loader::Config
822
716
  # # ...
823
717
  # end
824
718
  #
825
- # : (String?) { (top, String) -> void } -> void ! TypeError
826
719
  #
827
720
  # @raise [TypeError]
828
721
  #
@@ -835,13 +728,10 @@ module Zeitwerk::Loader::Config
835
728
  # the same process already manages that directory or one of its ascendants or
836
729
  # descendants.
837
730
  #
838
- # : (String | Pathname, namespace: Module) -> void ! Zeitwerk::Error
839
731
  #
840
732
  # source://zeitwerk//lib/zeitwerk/loader/config.rb#109
841
733
  def push_dir(path, namespace: T.unsafe(nil)); end
842
734
 
843
- # : () -> bool
844
- #
845
735
  # @return [Boolean]
846
736
  #
847
737
  # source://zeitwerk//lib/zeitwerk/loader/config.rb#187
@@ -852,27 +742,21 @@ module Zeitwerk::Loader::Config
852
742
  # Implemented as a method instead of via attr_reader for symmetry with the
853
743
  # writer below.
854
744
  #
855
- # : () -> String
856
745
  #
857
746
  # source://zeitwerk//lib/zeitwerk/loader/config.rb#133
858
747
  def tag; end
859
748
 
860
749
  # Sets a tag for the loader, useful for logging.
861
750
  #
862
- # : (to_s() -> String) -> void
863
751
  #
864
752
  # source://zeitwerk//lib/zeitwerk/loader/config.rb#140
865
753
  def tag=(tag); end
866
754
 
867
755
  private
868
756
 
869
- # : () -> Array[String]
870
- #
871
757
  # source://zeitwerk//lib/zeitwerk/loader/config.rb#307
872
758
  def actual_roots; end
873
759
 
874
- # : (String) -> bool
875
- #
876
760
  # @return [Boolean]
877
761
  #
878
762
  # source://zeitwerk//lib/zeitwerk/loader/config.rb#332
@@ -881,51 +765,39 @@ module Zeitwerk::Loader::Config
881
765
  # The actual collection of absolute directory names at the time the collapse
882
766
  # glob patterns were expanded. Computed on setup, and recomputed on reload.
883
767
  #
884
- # : Set[String]
885
768
  #
886
769
  # source://zeitwerk//lib/zeitwerk/loader/config.rb#56
887
770
  def collapse_dirs; end
888
771
 
889
772
  # Absolute paths of directories or glob patterns to be collapsed.
890
773
  #
891
- # : Set[String]
892
774
  #
893
775
  # source://zeitwerk//lib/zeitwerk/loader/config.rb#49
894
776
  def collapse_glob_patterns; end
895
777
 
896
778
  # Absolute paths of files or directories not to be eager loaded.
897
779
  #
898
- # : Set[String]
899
780
  #
900
781
  # source://zeitwerk//lib/zeitwerk/loader/config.rb#62
901
782
  def eager_load_exclusions; end
902
783
 
903
- # : (String) -> bool
904
- #
905
784
  # @return [Boolean]
906
785
  #
907
786
  # source://zeitwerk//lib/zeitwerk/loader/config.rb#319
908
787
  def excluded_from_eager_load?(abspath); end
909
788
 
910
- # : (Array[String]) -> Array[String]
911
- #
912
789
  # source://zeitwerk//lib/zeitwerk/loader/config.rb#342
913
790
  def expand_glob_patterns(glob_patterns); end
914
791
 
915
- # : (String | Pathname | Array[String | Pathname]) -> Array[String]
916
- #
917
792
  # source://zeitwerk//lib/zeitwerk/loader/config.rb#337
918
793
  def expand_paths(paths); end
919
794
 
920
795
  # Absolute paths of files, directories, or glob patterns to be ignored.
921
796
  #
922
- # : Set[String]
923
797
  #
924
798
  # source://zeitwerk//lib/zeitwerk/loader/config.rb#35
925
799
  def ignored_glob_patterns; end
926
800
 
927
- # : (String) -> bool
928
- #
929
801
  # @return [Boolean]
930
802
  #
931
803
  # source://zeitwerk//lib/zeitwerk/loader/config.rb#302
@@ -935,7 +807,6 @@ module Zeitwerk::Loader::Config
935
807
  # ignored glob patterns were expanded. Computed on setup, and recomputed on
936
808
  # reload.
937
809
  #
938
- # : Set[String]
939
810
  #
940
811
  # source://zeitwerk//lib/zeitwerk/loader/config.rb#43
941
812
  def ignored_paths; end
@@ -945,39 +816,28 @@ module Zeitwerk::Loader::Config
945
816
 
946
817
  # User-oriented callbacks to be fired when a constant is loaded.
947
818
  #
948
- # : Hash[String, Array[{ (top, String) -> void }]]
949
- # | Hash[Symbol, Array[{ (String, top, String) -> void }]]
950
819
  #
951
820
  # source://zeitwerk//lib/zeitwerk/loader/config.rb#75
952
821
  def on_load_callbacks; end
953
822
 
954
823
  # User-oriented callbacks to be fired on setup and on reload.
955
824
  #
956
- # : Array[{ () -> void }]
957
825
  #
958
826
  # source://zeitwerk//lib/zeitwerk/loader/config.rb#68
959
827
  def on_setup_callbacks; end
960
828
 
961
829
  # User-oriented callbacks to be fired before constants are removed.
962
830
  #
963
- # : Hash[String, Array[{ (top, String) -> void }]]
964
- # | Hash[Symbol, Array[{ (String, top, String) -> void }]]
965
831
  #
966
832
  # source://zeitwerk//lib/zeitwerk/loader/config.rb#82
967
833
  def on_unload_callbacks; end
968
834
 
969
- # : () -> void
970
- #
971
835
  # source://zeitwerk//lib/zeitwerk/loader/config.rb#354
972
836
  def recompute_collapse_dirs; end
973
837
 
974
- # : () -> void
975
- #
976
838
  # source://zeitwerk//lib/zeitwerk/loader/config.rb#349
977
839
  def recompute_ignored_paths; end
978
840
 
979
- # : (String) -> bool
980
- #
981
841
  # @return [Boolean]
982
842
  #
983
843
  # source://zeitwerk//lib/zeitwerk/loader/config.rb#314
@@ -995,7 +855,6 @@ module Zeitwerk::Loader::Config
995
855
  # This is a private collection maintained by the loader. The public
996
856
  # interface for it is `push_dir` and `dirs`.
997
857
  #
998
- # : Hash[String, Module]
999
858
  #
1000
859
  # source://zeitwerk//lib/zeitwerk/loader/config.rb#29
1001
860
  def roots; end
@@ -1009,20 +868,15 @@ module Zeitwerk::Loader::EagerLoad
1009
868
  # specific files and directories with `do_not_eager_load`, and that can be
1010
869
  # overridden passing `force: true`.
1011
870
  #
1012
- # : (?force: boolish) -> void
1013
871
  #
1014
872
  # source://zeitwerk//lib/zeitwerk/loader/eager_load.rb#9
1015
873
  def eager_load(force: T.unsafe(nil)); end
1016
874
 
1017
- # : (String | Pathname) -> void
1018
- #
1019
875
  # @raise [Zeitwerk::SetupRequired]
1020
876
  #
1021
877
  # source://zeitwerk//lib/zeitwerk/loader/eager_load.rb#32
1022
878
  def eager_load_dir(path); end
1023
879
 
1024
- # : (Module) -> void
1025
- #
1026
880
  # @raise [Zeitwerk::SetupRequired]
1027
881
  #
1028
882
  # source://zeitwerk//lib/zeitwerk/loader/eager_load.rb#74
@@ -1035,7 +889,6 @@ module Zeitwerk::Loader::EagerLoad
1035
889
  # The method is implemented as `constantize` for files, in a sense, to be able
1036
890
  # to descend orderly and make sure the file is loadable.
1037
891
  #
1038
- # : (String | Pathname) -> void
1039
892
  #
1040
893
  # @raise [Zeitwerk::Error]
1041
894
  #
@@ -1047,7 +900,6 @@ module Zeitwerk::Loader::EagerLoad
1047
900
  # The caller is responsible for making sure `namespace` is the namespace that
1048
901
  # corresponds to `dir`.
1049
902
  #
1050
- # : (String, Module, ?force: boolish) -> void
1051
903
  #
1052
904
  # source://zeitwerk//lib/zeitwerk/loader/eager_load.rb#160
1053
905
  def actual_eager_load_dir(dir, namespace, force: T.unsafe(nil)); end
@@ -1055,7 +907,6 @@ module Zeitwerk::Loader::EagerLoad
1055
907
  # In order to invoke this method, the caller has to ensure `child` is a
1056
908
  # strict namespace descendant of `root_namespace`.
1057
909
  #
1058
- # : (Module, String, String, Module) -> void
1059
910
  #
1060
911
  # source://zeitwerk//lib/zeitwerk/loader/eager_load.rb#193
1061
912
  def eager_load_child_namespace(child, child_name, root_dir, root_namespace); end
@@ -1065,13 +916,9 @@ end
1065
916
  module Zeitwerk::Loader::Helpers
1066
917
  private
1067
918
 
1068
- # : (String, String) -> Symbol ! Zeitwerk::NameError
1069
- #
1070
919
  # source://zeitwerk//lib/zeitwerk/loader/helpers.rb#107
1071
920
  def cname_for(basename, abspath); end
1072
921
 
1073
- # : (String) -> bool
1074
- #
1075
922
  # @return [Boolean]
1076
923
  #
1077
924
  # source://zeitwerk//lib/zeitwerk/loader/helpers.rb#83
@@ -1081,39 +928,28 @@ module Zeitwerk::Loader::Helpers
1081
928
  # important to list as less directories as possible and return fast in the
1082
929
  # common case in which there are Ruby files.
1083
930
  #
1084
- # : (String) -> bool
1085
931
  #
1086
932
  # @return [Boolean]
1087
933
  #
1088
934
  # source://zeitwerk//lib/zeitwerk/loader/helpers.rb#56
1089
935
  def has_at_least_one_ruby_file?(dir); end
1090
936
 
1091
- # : (String) -> bool
1092
- #
1093
937
  # @return [Boolean]
1094
938
  #
1095
939
  # source://zeitwerk//lib/zeitwerk/loader/helpers.rb#88
1096
940
  def hidden?(basename); end
1097
941
 
1098
- # : (to_s() -> String) -> void
1099
- #
1100
942
  # source://zeitwerk//lib/zeitwerk/loader/helpers.rb#7
1101
943
  def log(message); end
1102
944
 
1103
- # : (String) { (String, String, Symbol) -> void } -> void
1104
- #
1105
945
  # source://zeitwerk//lib/zeitwerk/loader/helpers.rb#15
1106
946
  def ls(dir); end
1107
947
 
1108
- # : (String) -> bool
1109
- #
1110
948
  # @return [Boolean]
1111
949
  #
1112
950
  # source://zeitwerk//lib/zeitwerk/loader/helpers.rb#78
1113
951
  def ruby?(path); end
1114
952
 
1115
- # : (String) { (String) -> void } -> void
1116
- #
1117
953
  # source://zeitwerk//lib/zeitwerk/loader/helpers.rb#93
1118
954
  def walk_up(abspath); end
1119
955
  end
@@ -1123,8 +959,6 @@ end
1123
959
  # source://zeitwerk//lib/zeitwerk/loader/helpers.rb#103
1124
960
  module Zeitwerk::Loader::Helpers::CNAME_VALIDATOR; end
1125
961
 
1126
- # : Mutex
1127
- #
1128
962
  # source://zeitwerk//lib/zeitwerk/loader.rb#21
1129
963
  Zeitwerk::Loader::MUTEX = T.let(T.unsafe(nil), Thread::Mutex)
1130
964
 
@@ -1133,8 +967,6 @@ class Zeitwerk::NameError < ::NameError; end
1133
967
 
1134
968
  # source://zeitwerk//lib/zeitwerk/null_inflector.rb#1
1135
969
  class Zeitwerk::NullInflector
1136
- # : (String, String) -> String
1137
- #
1138
970
  # source://zeitwerk//lib/zeitwerk/null_inflector.rb#3
1139
971
  def camelize(basename, _abspath); end
1140
972
  end
@@ -1148,14 +980,11 @@ module Zeitwerk::RealModName
1148
980
  # with a permanent name, not so much what the user considers to be the name of
1149
981
  # a certain class or module of theirs.
1150
982
  #
1151
- # : (Module) -> String?
1152
983
  #
1153
984
  # source://zeitwerk//lib/zeitwerk/real_mod_name.rb#16
1154
985
  def real_mod_name(mod); end
1155
986
  end
1156
987
 
1157
- # : UnboundMethod
1158
- #
1159
988
  # source://zeitwerk//lib/zeitwerk/real_mod_name.rb#5
1160
989
  Zeitwerk::RealModName::UNBOUND_METHOD_MODULE_NAME = T.let(T.unsafe(nil), UnboundMethod)
1161
990
 
@@ -1167,15 +996,12 @@ module Zeitwerk::Registry
1167
996
  # This information is used by our decorated `Kernel#require` to be able to
1168
997
  # invoke callbacks and autovivify modules.
1169
998
  #
1170
- # : Zeitwerk::Registry::Autoloads
1171
999
  #
1172
1000
  # @private
1173
1001
  #
1174
1002
  # source://zeitwerk//lib/zeitwerk/registry.rb#31
1175
1003
  def autoloads; end
1176
1004
 
1177
- # : Zeitwerk::Registry::ExplicitNamespaces
1178
- #
1179
1005
  # @private
1180
1006
  #
1181
1007
  # source://zeitwerk//lib/zeitwerk/registry.rb#35
@@ -1183,15 +1009,12 @@ module Zeitwerk::Registry
1183
1009
 
1184
1010
  # Registers gem loaders to let `for_gem` be idempotent in case of reload.
1185
1011
  #
1186
- # : Hash[String, Zeitwerk::Loader]
1187
1012
  #
1188
1013
  # @private
1189
1014
  #
1190
1015
  # source://zeitwerk//lib/zeitwerk/registry.rb#22
1191
1016
  def gem_loaders_by_root_file; end
1192
1017
 
1193
- # : Zeitwerk::Registry::Inceptions
1194
- #
1195
1018
  # @private
1196
1019
  #
1197
1020
  # source://zeitwerk//lib/zeitwerk/registry.rb#39
@@ -1200,7 +1023,6 @@ module Zeitwerk::Registry
1200
1023
  # This method returns always a loader, the same instance for the same root
1201
1024
  # file. That is how Zeitwerk::Loader.for_gem is idempotent.
1202
1025
  #
1203
- # : (String, namespace: Module, warn_on_extra_files: boolish) -> Zeitwerk::Loader
1204
1026
  #
1205
1027
  # @private
1206
1028
  #
@@ -1210,15 +1032,12 @@ module Zeitwerk::Registry
1210
1032
  # Keeps track of all loaders. Useful to broadcast messages and to prevent
1211
1033
  # them from being garbage collected.
1212
1034
  #
1213
- # : Zeitwerk::Registry::Loaders
1214
1035
  #
1215
1036
  # @private
1216
1037
  #
1217
1038
  # source://zeitwerk//lib/zeitwerk/registry.rb#16
1218
1039
  def loaders; end
1219
1040
 
1220
- # : (Zeitwerk::Loader) -> void
1221
- #
1222
1041
  # @private
1223
1042
  #
1224
1043
  # source://zeitwerk//lib/zeitwerk/registry.rb#43
@@ -1228,44 +1047,30 @@ end
1228
1047
 
1229
1048
  # source://zeitwerk//lib/zeitwerk/registry/autoloads.rb#2
1230
1049
  class Zeitwerk::Registry::Autoloads
1231
- # : () -> void
1232
- #
1233
1050
  # @return [Autoloads] a new instance of Autoloads
1234
1051
  #
1235
1052
  # source://zeitwerk//lib/zeitwerk/registry/autoloads.rb#4
1236
1053
  def initialize; end
1237
1054
 
1238
- # : () -> void
1239
- #
1240
1055
  # source://zeitwerk//lib/zeitwerk/registry/autoloads.rb#34
1241
1056
  def clear; end
1242
1057
 
1243
- # : () -> bool
1244
- #
1245
1058
  # @return [Boolean]
1246
1059
  #
1247
1060
  # source://zeitwerk//lib/zeitwerk/registry/autoloads.rb#29
1248
1061
  def empty?; end
1249
1062
 
1250
- # : (String, Zeitwerk::Loader) -> Zeitwerk::Loader
1251
- #
1252
1063
  # source://zeitwerk//lib/zeitwerk/registry/autoloads.rb#9
1253
1064
  def register(abspath, loader); end
1254
1065
 
1255
- # : (String) -> Zeitwerk::Loader?
1256
- #
1257
1066
  # @return [Boolean]
1258
1067
  #
1259
1068
  # source://zeitwerk//lib/zeitwerk/registry/autoloads.rb#14
1260
1069
  def registered?(path); end
1261
1070
 
1262
- # : (String) -> Zeitwerk::Loader?
1263
- #
1264
1071
  # source://zeitwerk//lib/zeitwerk/registry/autoloads.rb#19
1265
1072
  def unregister(abspath); end
1266
1073
 
1267
- # : (Zeitwerk::Loader) -> void
1268
- #
1269
1074
  # source://zeitwerk//lib/zeitwerk/registry/autoloads.rb#24
1270
1075
  def unregister_loader(loader); end
1271
1076
  end
@@ -1290,42 +1095,32 @@ end
1290
1095
  #
1291
1096
  # source://zeitwerk//lib/zeitwerk/registry/explicit_namespaces.rb#21
1292
1097
  class Zeitwerk::Registry::ExplicitNamespaces
1293
- # : () -> void
1294
- #
1295
1098
  # @return [ExplicitNamespaces] a new instance of ExplicitNamespaces
1296
1099
  #
1297
1100
  # source://zeitwerk//lib/zeitwerk/registry/explicit_namespaces.rb#23
1298
1101
  def initialize; end
1299
1102
 
1300
- # : () -> void
1301
- #
1302
1103
  # source://zeitwerk//lib/zeitwerk/registry/explicit_namespaces.rb#57
1303
1104
  def clear; end
1304
1105
 
1305
- # : (Module, Symbol) -> Zeitwerk::Loader?
1306
- #
1307
1106
  # source://zeitwerk//lib/zeitwerk/registry/explicit_namespaces.rb#40
1308
1107
  def loader_for(mod, cname); end
1309
1108
 
1310
1109
  # Registers `cref` as being the constant path of an explicit namespace
1311
1110
  # managed by `loader`.
1312
1111
  #
1313
- # : (Zeitwerk::Cref, Zeitwerk::Loader) -> void
1314
1112
  #
1315
1113
  # source://zeitwerk//lib/zeitwerk/registry/explicit_namespaces.rb#35
1316
1114
  def register(cref, loader); end
1317
1115
 
1318
1116
  # This is an internal method only used by the test suite.
1319
1117
  #
1320
- # : (Zeitwerk::Cref) -> Zeitwerk::Loader?
1321
1118
  #
1322
1119
  # @return [Boolean]
1323
1120
  #
1324
1121
  # source://zeitwerk//lib/zeitwerk/registry/explicit_namespaces.rb#52
1325
1122
  def registered?(cref); end
1326
1123
 
1327
- # : (Zeitwerk::Loader) -> void
1328
- #
1329
1124
  # source://zeitwerk//lib/zeitwerk/registry/explicit_namespaces.rb#45
1330
1125
  def unregister_loader(loader); end
1331
1126
  end
@@ -1336,77 +1131,53 @@ end
1336
1131
  #
1337
1132
  # source://zeitwerk//lib/zeitwerk/registry/inceptions.rb#5
1338
1133
  class Zeitwerk::Registry::Inceptions
1339
- # : () -> void
1340
- #
1341
1134
  # @return [Inceptions] a new instance of Inceptions
1342
1135
  #
1343
1136
  # source://zeitwerk//lib/zeitwerk/registry/inceptions.rb#7
1344
1137
  def initialize; end
1345
1138
 
1346
- # : () -> void
1347
- #
1348
1139
  # source://zeitwerk//lib/zeitwerk/registry/inceptions.rb#27
1349
1140
  def clear; end
1350
1141
 
1351
- # : (Zeitwerk::Cref, String) -> void
1352
- #
1353
1142
  # source://zeitwerk//lib/zeitwerk/registry/inceptions.rb#12
1354
1143
  def register(cref, abspath); end
1355
1144
 
1356
- # : (Zeitwerk::Cref) -> String?
1357
- #
1358
1145
  # @return [Boolean]
1359
1146
  #
1360
1147
  # source://zeitwerk//lib/zeitwerk/registry/inceptions.rb#17
1361
1148
  def registered?(cref); end
1362
1149
 
1363
- # : (Zeitwerk::Cref) -> void
1364
- #
1365
1150
  # source://zeitwerk//lib/zeitwerk/registry/inceptions.rb#22
1366
1151
  def unregister(cref); end
1367
1152
  end
1368
1153
 
1369
1154
  # source://zeitwerk//lib/zeitwerk/registry/loaders.rb#2
1370
1155
  class Zeitwerk::Registry::Loaders
1371
- # : () -> void
1372
- #
1373
1156
  # @return [Loaders] a new instance of Loaders
1374
1157
  #
1375
1158
  # source://zeitwerk//lib/zeitwerk/registry/loaders.rb#4
1376
1159
  def initialize; end
1377
1160
 
1378
- # : () -> void
1379
- #
1380
1161
  # source://zeitwerk//lib/zeitwerk/registry/loaders.rb#29
1381
1162
  def clear; end
1382
1163
 
1383
- # : ({ (Zeitwerk::Loader) -> void }) -> void
1384
- #
1385
1164
  # source://zeitwerk//lib/zeitwerk/registry/loaders.rb#9
1386
1165
  def each(&block); end
1387
1166
 
1388
- # : (Zeitwerk::Loader) -> void
1389
- #
1390
1167
  # source://zeitwerk//lib/zeitwerk/registry/loaders.rb#14
1391
1168
  def register(loader); end
1392
1169
 
1393
- # : (Zeitwerk::Loader) -> bool
1394
- #
1395
1170
  # @return [Boolean]
1396
1171
  #
1397
1172
  # source://zeitwerk//lib/zeitwerk/registry/loaders.rb#24
1398
1173
  def registered?(loader); end
1399
1174
 
1400
- # : (Zeitwerk::Loader) -> Zeitwerk::Loader?
1401
- #
1402
1175
  # source://zeitwerk//lib/zeitwerk/registry/loaders.rb#19
1403
1176
  def unregister(loader); end
1404
1177
  end
1405
1178
 
1406
1179
  # source://zeitwerk//lib/zeitwerk/error.rb#7
1407
1180
  class Zeitwerk::ReloadingDisabledError < ::Zeitwerk::Error
1408
- # : () -> void
1409
- #
1410
1181
  # @return [ReloadingDisabledError] a new instance of ReloadingDisabledError
1411
1182
  #
1412
1183
  # source://zeitwerk//lib/zeitwerk/error.rb#9
@@ -1415,15 +1186,11 @@ end
1415
1186
 
1416
1187
  # source://zeitwerk//lib/zeitwerk/error.rb#17
1417
1188
  class Zeitwerk::SetupRequired < ::Zeitwerk::Error
1418
- # : () -> void
1419
- #
1420
1189
  # @return [SetupRequired] a new instance of SetupRequired
1421
1190
  #
1422
1191
  # source://zeitwerk//lib/zeitwerk/error.rb#19
1423
1192
  def initialize; end
1424
1193
  end
1425
1194
 
1426
- # : String
1427
- #
1428
1195
  # source://zeitwerk//lib/zeitwerk/version.rb#5
1429
1196
  Zeitwerk::VERSION = T.let(T.unsafe(nil), String)