riffer-rig 0.4.0 → 0.6.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 (82) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +37 -0
  3. data/README.md +43 -6
  4. data/lib/riffer/rig/cli.rb +51 -47
  5. data/lib/riffer/rig/coding_agent.rb +1 -6
  6. data/lib/riffer/rig/credentials/resolution.rb +16 -0
  7. data/lib/riffer/rig/credentials.rb +151 -60
  8. data/lib/riffer/rig/env.rb +29 -0
  9. data/lib/riffer/rig/events/command_output.rb +27 -0
  10. data/lib/riffer/rig/events/event.rb +30 -0
  11. data/lib/riffer/rig/events/notify.rb +27 -0
  12. data/lib/riffer/rig/events/session_end.rb +24 -0
  13. data/lib/riffer/rig/events/session_start.rb +27 -0
  14. data/lib/riffer/rig/events/skill_activated.rb +24 -0
  15. data/lib/riffer/rig/events/turn_end.rb +32 -0
  16. data/lib/riffer/rig/events.rb +4 -0
  17. data/lib/riffer/rig/extension.rb +27 -0
  18. data/lib/riffer/rig/hosts/base.rb +36 -0
  19. data/lib/riffer/rig/hosts/mirror.rb +60 -0
  20. data/lib/riffer/rig/hosts/null.rb +36 -0
  21. data/lib/riffer/rig/provider_setup/field.rb +24 -0
  22. data/lib/riffer/rig/provider_setup.rb +84 -0
  23. data/lib/riffer/rig/registrar.rb +35 -0
  24. data/lib/riffer/rig/repl.rb +42 -31
  25. data/lib/riffer/rig/runtime/cancel_flag.rb +27 -0
  26. data/lib/riffer/rig/runtime.rb +225 -0
  27. data/lib/riffer/rig/settings/document.rb +28 -0
  28. data/lib/riffer/rig/settings/pricing.rb +11 -1
  29. data/lib/riffer/rig/settings.rb +49 -60
  30. data/lib/riffer/rig/token_tally.rb +1 -21
  31. data/lib/riffer/rig/tools/bash.rb +33 -12
  32. data/lib/riffer/rig/tools/edit.rb +1 -1
  33. data/lib/riffer/rig/tools/read.rb +2 -2
  34. data/lib/riffer/rig/ui/animator.rb +8 -15
  35. data/lib/riffer/rig/ui/cursor.rb +4 -6
  36. data/lib/riffer/rig/ui/renderer.rb +18 -31
  37. data/lib/riffer/rig/ui/smoother.rb +15 -23
  38. data/lib/riffer/rig/ui/theme.rb +4 -6
  39. data/lib/riffer/rig/version.rb +1 -1
  40. data/lib/riffer/rig.rb +26 -0
  41. data/sig/generated/riffer/rig/cli.rbs +27 -19
  42. data/sig/generated/riffer/rig/credentials/resolution.rbs +13 -0
  43. data/sig/generated/riffer/rig/credentials.rbs +71 -41
  44. data/sig/generated/riffer/rig/env.rbs +20 -0
  45. data/sig/generated/riffer/rig/events/command_output.rbs +19 -0
  46. data/sig/generated/riffer/rig/events/event.rbs +20 -0
  47. data/sig/generated/riffer/rig/events/notify.rbs +19 -0
  48. data/sig/generated/riffer/rig/events/session_end.rbs +16 -0
  49. data/sig/generated/riffer/rig/events/session_start.rbs +19 -0
  50. data/sig/generated/riffer/rig/events/skill_activated.rbs +16 -0
  51. data/sig/generated/riffer/rig/events/turn_end.rbs +22 -0
  52. data/sig/generated/riffer/rig/events.rbs +4 -0
  53. data/sig/generated/riffer/rig/extension.rbs +24 -0
  54. data/sig/generated/riffer/rig/hosts/base.rbs +26 -0
  55. data/sig/generated/riffer/rig/hosts/mirror.rbs +41 -0
  56. data/sig/generated/riffer/rig/hosts/null.rbs +26 -0
  57. data/sig/generated/riffer/rig/provider_setup/field.rbs +22 -0
  58. data/sig/generated/riffer/rig/provider_setup.rbs +30 -0
  59. data/sig/generated/riffer/rig/registrar.rbs +25 -0
  60. data/sig/generated/riffer/rig/repl.rbs +17 -16
  61. data/sig/generated/riffer/rig/runtime/cancel_flag.rbs +19 -0
  62. data/sig/generated/riffer/rig/runtime.rbs +120 -0
  63. data/sig/generated/riffer/rig/settings/document.rbs +24 -0
  64. data/sig/generated/riffer/rig/settings/pricing.rbs +4 -1
  65. data/sig/generated/riffer/rig/settings.rbs +28 -49
  66. data/sig/generated/riffer/rig/token_tally.rbs +2 -21
  67. data/sig/generated/riffer/rig/tools/bash.rbs +15 -3
  68. data/sig/generated/riffer/rig/tools/edit.rbs +2 -2
  69. data/sig/generated/riffer/rig/tools/read.rbs +3 -3
  70. data/sig/generated/riffer/rig/ui/animator.rbs +8 -16
  71. data/sig/generated/riffer/rig/ui/cursor.rbs +4 -6
  72. data/sig/generated/riffer/rig/ui/renderer.rbs +13 -35
  73. data/sig/generated/riffer/rig/ui/smoother.rbs +9 -22
  74. data/sig/generated/riffer/rig/ui/theme.rbs +3 -5
  75. data/sig/generated/riffer/rig.rbs +12 -0
  76. data/sig/manual/riffer/rig/cli.rbs +2 -4
  77. data/sig/manual/riffer/rig/credentials.rbs +2 -4
  78. data/sig/manual/riffer/rig/hosts.rbs +5 -0
  79. data/sig/manual/riffer/rig/settings.rbs +2 -4
  80. data/sig/manual/riffer/rig/ui/banner.rbs +2 -4
  81. data/sig/manual/riffer/rig.rbs +11 -0
  82. metadata +45 -3
@@ -5,7 +5,7 @@ class Riffer::Rig::Tools::Edit < Riffer::Tool
5
5
  # @rbs path: String
6
6
  # @rbs old_string: String
7
7
  # @rbs new_string: String
8
- # @rbs ?replace_all: bool
8
+ # @rbs replace_all: bool
9
9
  # @rbs return: Riffer::Tools::Response
10
- def call: (context: Riffer::Agent::Context?, path: String, old_string: String, new_string: String, ?replace_all: untyped) -> Riffer::Tools::Response
10
+ def call: (context: Riffer::Agent::Context?, path: String, old_string: String, new_string: String, ?replace_all: bool) -> Riffer::Tools::Response
11
11
  end
@@ -5,8 +5,8 @@ class Riffer::Rig::Tools::Read < Riffer::Tool
5
5
 
6
6
  # @rbs context: Riffer::Agent::Context?
7
7
  # @rbs path: String
8
- # @rbs ?offset: Integer?
9
- # @rbs ?limit: Integer
8
+ # @rbs offset: Integer?
9
+ # @rbs limit: Integer
10
10
  # @rbs return: Riffer::Tools::Response
11
- def call: (context: Riffer::Agent::Context?, path: String, ?offset: untyped, ?limit: untyped) -> Riffer::Tools::Response
11
+ def call: (context: Riffer::Agent::Context?, path: String, ?offset: Integer?, ?limit: Integer) -> Riffer::Tools::Response
12
12
  end
@@ -1,7 +1,5 @@
1
1
  # Generated from lib/riffer/rig/ui/animator.rb with RBS::Inline
2
2
 
3
- # Animated output is gated behind an interactive, colour-enabled TTY, so piped
4
- # or tested runs stay silent and escape-free.
5
3
  class Riffer::Rig::UI::Animator
6
4
  REVEAL_FRAME_SECONDS: Float
7
5
 
@@ -27,44 +25,38 @@ class Riffer::Rig::UI::Animator
27
25
 
28
26
  @theme: Riffer::Rig::UI::Theme
29
27
 
30
- @io: untyped
28
+ @io: IO
31
29
 
32
- # @rbs io: untyped
33
- # @rbs ?theme: Riffer::Rig::UI::Theme
30
+ # @rbs io: IO
31
+ # @rbs theme: Riffer::Rig::UI::Theme
34
32
  # @rbs return: void
35
- def initialize: (?io: untyped, ?theme: untyped) -> void
33
+ def initialize: (?io: IO, ?theme: Riffer::Rig::UI::Theme) -> void
36
34
 
37
- # When not on a TTY, prints the final frame once instead of animating.
38
- #
39
35
  # @rbs frames: Array[Array[String]]
40
36
  # @rbs return: void
41
37
  def reveal: (Array[Array[String]] frames) -> void
42
38
 
43
- # @rbs ?mode: Symbol
39
+ # @rbs mode: Symbol
44
40
  # @rbs return: void
45
- def start: (?untyped mode) -> void
41
+ def start: (?Symbol mode) -> void
46
42
 
47
43
  # @rbs return: void
48
44
  def stop: () -> void
49
45
 
50
46
  # @rbs tick: Integer
51
- # @rbs ?label: String
47
+ # @rbs label: String
52
48
  # @rbs return: String
53
- def equalizer: (Integer tick, ?untyped label) -> String
49
+ def equalizer: (Integer tick, ?String label) -> String
54
50
 
55
51
  private
56
52
 
57
53
  # @rbs return: void
58
54
  def animate: () -> void
59
55
 
60
- # Re-rolls both phrase and duration whenever the reasoning tick expires.
61
- #
62
56
  # @rbs roll_at: Float
63
57
  # @rbs return: Float
64
58
  def roll_phrase: (Float roll_at) -> Float
65
59
 
66
- # Range rand returns nil for an empty range; this one is a non-empty constant.
67
- #
68
60
  # @rbs return: Integer
69
61
  def roll_rand: () -> Integer
70
62
 
@@ -1,20 +1,18 @@
1
1
  # Generated from lib/riffer/rig/ui/cursor.rb with RBS::Inline
2
2
 
3
- # Hides the terminal cursor while a turn is in flight: a hidden cursor can't
4
- # flicker against the animator's erase-and-redraw churn.
5
3
  class Riffer::Rig::UI::Cursor
6
4
  HIDE: String
7
5
 
8
6
  SHOW: String
9
7
 
10
- @io: untyped
8
+ @io: IO
11
9
 
12
10
  @theme: Riffer::Rig::UI::Theme
13
11
 
14
- # @rbs io: untyped
15
- # @rbs ?theme: Riffer::Rig::UI::Theme
12
+ # @rbs io: IO
13
+ # @rbs theme: Riffer::Rig::UI::Theme
16
14
  # @rbs return: void
17
- def initialize: (?io: untyped, ?theme: untyped) -> void
15
+ def initialize: (?io: IO, ?theme: Riffer::Rig::UI::Theme) -> void
18
16
 
19
17
  # @rbs return: void
20
18
  def hide: () -> void
@@ -13,31 +13,22 @@ class Riffer::Rig::UI::Renderer
13
13
 
14
14
  @theme: Riffer::Rig::UI::Theme
15
15
 
16
- @io: untyped
16
+ @io: IO
17
17
 
18
- # @rbs io: untyped
19
- # @rbs ?theme: Riffer::Rig::UI::Theme
20
- # @rbs ?tally: Riffer::Rig::TokenTally?
21
- # @rbs ?smoother: Riffer::Rig::UI::Smoother | PassThroughSmoother?
18
+ # @rbs io: IO
19
+ # @rbs theme: Riffer::Rig::UI::Theme
20
+ # @rbs tally: Riffer::Rig::TokenTally?
21
+ # @rbs smoother: Riffer::Rig::UI::Smoother | PassThroughSmoother?
22
22
  # @rbs return: void
23
- def initialize: (?io: untyped, ?theme: untyped, ?tally: untyped, ?smoother: untyped) -> void
23
+ def initialize: (?io: IO, ?theme: Riffer::Rig::UI::Theme, ?tally: Riffer::Rig::TokenTally?, ?smoother: Riffer::Rig::UI::Smoother | PassThroughSmoother?) -> void
24
24
 
25
25
  # @rbs event: Riffer::StreamEvents::Base
26
26
  # @rbs return: void
27
27
  def render: (Riffer::StreamEvents::Base event) -> void
28
28
 
29
- # The prompt holds the line open for typed input, so unlike render_block it
30
- # ends without a newline. It sits at the renderer so a tool group left open by
31
- # the previous turn closes here, and the next turn's blocks open cleanly.
32
- #
33
29
  # @rbs return: void
34
30
  def prompt: () -> void
35
31
 
36
- # Usage arrives per model call but tool results arrive via the session
37
- # callback after each call's stream ends, so rendering inline would print the
38
- # stats above the results they belong with. Held until the turn's output is
39
- # done, then printed as one line below it.
40
- #
41
32
  # @rbs return: void
42
33
  def flush_usage: () -> void
43
34
 
@@ -47,31 +38,20 @@ class Riffer::Rig::UI::Renderer
47
38
 
48
39
  private
49
40
 
50
- # Rule 2 for one-off blocks (skill line, interrupt, stats): one blank line
51
- # above, no indent. The smoother drains first so any pending partial prose
52
- # block ends cleanly before the gap is written, and any open tool group closes
53
- # so the next group opens with its own gap.
54
- #
55
41
  # @rbs indent: Integer
42
+ # @rbs &block: () -> String
56
43
  # @rbs return: void
57
- def render_block: (Integer indent) ?{ (?) -> untyped } -> void
44
+ def render_block: (Integer indent) { () -> String } -> void
58
45
 
59
- # The blank line above a prose block is written at the first delta after a
60
- # non-prose block. Streaming makes "which block is first?" a stateful
61
- # question, so the answer is tracked rather than embedded at each render site.
62
- #
63
46
  # @rbs content: String
64
47
  # @rbs return: void
65
48
  def render_prose: (String content) -> void
66
49
 
67
50
  # @rbs indent: Integer
51
+ # @rbs &block: () -> String
68
52
  # @rbs return: void
69
- def render_tool_activity: (Integer indent) ?{ (?) -> untyped } -> void
53
+ def render_tool_activity: (Integer indent) { () -> String } -> void
70
54
 
71
- # Tool-activity lines (⚙ calls, ↳ results) share one blank line above the
72
- # group instead of one between each line — the gap goes between groups, not
73
- # inside a pair. The group stays open so prose after it pays the closing gap.
74
- #
75
55
  # @rbs return: void
76
56
  def open_tool_activity: () -> void
77
57
 
@@ -83,14 +63,12 @@ class Riffer::Rig::UI::Renderer
83
63
  # @rbs return: Riffer::Rig::UI::Smoother | PassThroughSmoother
84
64
  def smoother: () -> (Riffer::Rig::UI::Smoother | PassThroughSmoother)
85
65
 
86
- # Stand-in when no smoother is injected, so a bare Riffer::Rig::UI::Renderer still prints
87
- # synchronously.
88
66
  class PassThroughSmoother
89
- @io: untyped
67
+ @io: IO
90
68
 
91
- # @rbs io: untyped
69
+ # @rbs io: IO
92
70
  # @rbs return: void
93
- def initialize: (untyped io) -> void
71
+ def initialize: (IO io) -> void
94
72
 
95
73
  # @rbs content: String
96
74
  # @rbs return: self
@@ -1,19 +1,15 @@
1
1
  # Generated from lib/riffer/rig/ui/smoother.rb with RBS::Inline
2
2
 
3
- # Paces streamed text onto a 60fps cadence so API bursts read as continuous
4
- # typing. On a non-TTY output it is transparent: writes pass through
5
- # synchronously and no thread ever runs.
6
3
  class Riffer::Rig::UI::Smoother
7
4
  TICK_SECONDS: Float
8
5
 
9
- # A frame removes only a sixtieth of the remaining backlog — an exponential
10
- # decay whose tail keeps text flowing for a second or more, so the reveal
11
- # never visibly stops between chunks. The carry accrues sub-character
12
- # releases so the effective rate can settle at the provider's throughput;
13
- # the floor is fractional (10 chars/s) so it can't over-drain a backlog
14
- # that's trickling in slower than 60 chars/s.
6
+ # Releasing a fraction of the backlog, not a fixed rate, makes the reveal an
7
+ # exponential decay: its tail keeps text flowing for a second or more, so
8
+ # output never visibly stops between chunks.
15
9
  BACKLOG_FRACTION_PER_TICK: Rational
16
10
 
11
+ # Fractional (10 chars/s) so the floor can't over-drain a backlog that's
12
+ # trickling in slower than 60 chars/s.
17
13
  MIN_CHARS_PER_TICK: Rational
18
14
 
19
15
  @newline_pending: bool
@@ -32,13 +28,13 @@ class Riffer::Rig::UI::Smoother
32
28
 
33
29
  @theme: Riffer::Rig::UI::Theme
34
30
 
35
- @io: untyped
31
+ @io: IO
36
32
 
37
- # @rbs io: untyped
38
- # @rbs ?theme: Riffer::Rig::UI::Theme
33
+ # @rbs io: IO
34
+ # @rbs theme: Riffer::Rig::UI::Theme
39
35
  # @rbs clock: singleton(Kernel)
40
36
  # @rbs return: void
41
- def initialize: (?io: untyped, ?theme: untyped, ?clock: singleton(Kernel)) -> void
37
+ def initialize: (?io: IO, ?theme: Riffer::Rig::UI::Theme, ?clock: singleton(Kernel)) -> void
42
38
 
43
39
  # @rbs return: void
44
40
  def start: () -> void
@@ -47,21 +43,12 @@ class Riffer::Rig::UI::Smoother
47
43
  # @rbs return: self
48
44
  def <<: (String content) -> self
49
45
 
50
- # The write sits inside the mutex so a concurrent tick can't reorder a drain.
51
- #
52
46
  # @rbs return: void
53
47
  def tick: () -> void
54
48
 
55
- # Called before non-prose output so printed order matches stream order. The
56
- # backlog is flushed, then any partial prose block the model left without a
57
- # trailing newline gets one, so block spacing never depends on the model's
58
- # last character.
59
- #
60
49
  # @rbs return: void
61
50
  def drain: () -> void
62
51
 
63
- # Idempotent: the REPL's ensure path runs it even after a happy-path finish.
64
- #
65
52
  # @rbs return: void
66
53
  def finish: () -> void
67
54
 
@@ -1,11 +1,8 @@
1
1
  # Generated from lib/riffer/rig/ui/theme.rb with RBS::Inline
2
2
 
3
- # +enabled+ gates every escape so the same code path emits plain, escape-free
4
- # text when piped or tested.
5
3
  class Riffer::Rig::UI::Theme
6
4
  @enabled: bool
7
5
 
8
- # @rbs return: bool
9
6
  # @dynamic enabled
10
7
  attr_reader enabled: bool
11
8
 
@@ -13,9 +10,10 @@ class Riffer::Rig::UI::Theme
13
10
  # @rbs return: void
14
11
  def initialize: (enabled: bool) -> void
15
12
 
16
- # @rbs io: untyped
13
+ # @rbs io: IO
14
+ # @rbs env: Riffer::Rig::Env
17
15
  # @rbs return: Riffer::Rig::UI::Theme
18
- def self.for: (untyped io) -> Riffer::Rig::UI::Theme
16
+ def self.for: (IO io, ?env: Riffer::Rig::Env) -> Riffer::Rig::UI::Theme
19
17
 
20
18
  # @rbs text: String
21
19
  # @rbs rgb: Array[Integer]
@@ -1,2 +1,14 @@
1
1
  # Generated from lib/riffer/rig.rb with RBS::Inline
2
2
 
3
+ module Riffer::Rig
4
+ self.@extensions: Hash[String, Riffer::Rig::Extension]
5
+
6
+ # @rbs name: String
7
+ # @rbs requires: String?
8
+ # @rbs &block: (::Riffer::Rig::Registrar) -> void
9
+ # @rbs return: Riffer::Rig::Extension
10
+ def self.extension: (String name, ?requires: String?) { (::Riffer::Rig::Registrar) -> void } -> Riffer::Rig::Extension
11
+
12
+ # @rbs return: Hash[String, Riffer::Rig::Extension]
13
+ def self.extensions: () -> Hash[String, Riffer::Rig::Extension]
14
+ end
@@ -1,7 +1,5 @@
1
- # rbs-inline does not emit `extend self` for modules that use it, so their
2
- # instance methods aren't visible as singleton methods (e.g.
3
- # `Riffer::Rig::CLI.list_providers`). Reopening the module here to `extend`
4
- # itself restores that, matching the runtime behaviour.
1
+ # rbs-inline does not emit `extend self`, so without this reopen the module's
2
+ # methods aren't visible as singleton methods.
5
3
 
6
4
  module Riffer::Rig::CLI
7
5
  extend ::Riffer::Rig::CLI
@@ -1,7 +1,5 @@
1
- # rbs-inline does not emit `extend self` for modules that use it, so their
2
- # instance methods aren't visible as singleton methods (e.g.
3
- # `Riffer::Rig::Credentials.anthropic_api_key`). Reopening the module here to
4
- # `extend` itself restores that, matching the runtime behaviour.
1
+ # rbs-inline does not emit `extend self`, so without this reopen the module's
2
+ # methods aren't visible as singleton methods.
5
3
 
6
4
  module Riffer::Rig::Credentials
7
5
  extend ::Riffer::Rig::Credentials
@@ -0,0 +1,5 @@
1
+ # Zeitwerk autovivifies this namespace module in Ruby; RBS needs it declared
2
+ # explicitly so the compact `Riffer::Rig::Hosts::*` signatures resolve.
3
+
4
+ module Riffer::Rig::Hosts
5
+ end
@@ -1,7 +1,5 @@
1
- # rbs-inline does not emit `extend self` for modules that use it, so their
2
- # instance methods aren't visible as singleton methods (e.g.
3
- # `Riffer::Rig::Settings.load`). Reopening the module here to `extend` itself
4
- # restores that, matching the runtime behaviour.
1
+ # rbs-inline does not emit `extend self`, so without this reopen the module's
2
+ # methods aren't visible as singleton methods.
5
3
 
6
4
  module Riffer::Rig::Settings
7
5
  extend ::Riffer::Rig::Settings
@@ -1,7 +1,5 @@
1
- # rbs-inline does not emit `extend self` for modules that use it, so their
2
- # instance methods aren't visible as singleton methods (e.g.
3
- # `Riffer::Rig::UI::Banner.render`). Reopening the module here to `extend`
4
- # itself restores that, matching the runtime behaviour.
1
+ # rbs-inline does not emit `extend self`, so without this reopen the module's
2
+ # methods aren't visible as singleton methods.
5
3
 
6
4
  module Riffer::Rig::UI::Banner
7
5
  extend ::Riffer::Rig::UI::Banner
@@ -0,0 +1,11 @@
1
+ # rbs-inline emits the `def self.extension` / `def self.extensions`
2
+ # declarations in `sig/generated/riffer/rig.rbs`, but Steep binds them to the
3
+ # file that first declares the module in RBS (`lib/riffer/rig/version.rb`'s
4
+ # empty reopen), so it reports MethodDefinitionMissing at that reopen. Making
5
+ # the generated declarations visible there without duplicating them needs a
6
+ # `...` alias per method.
7
+
8
+ module Riffer::Rig
9
+ def self.extension: ...
10
+ def self.extensions: ...
11
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: riffer-rig
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jake Bottrall
@@ -57,14 +57,14 @@ dependencies:
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: 0.45.0
60
+ version: 0.49.0
61
61
  type: :runtime
62
62
  prerelease: false
63
63
  version_requirements: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: 0.45.0
67
+ version: 0.49.0
68
68
  - !ruby/object:Gem::Dependency
69
69
  name: zeitwerk
70
70
  requirement: !ruby/object:Gem::Requirement
@@ -95,8 +95,28 @@ files:
95
95
  - lib/riffer/rig/cli.rb
96
96
  - lib/riffer/rig/coding_agent.rb
97
97
  - lib/riffer/rig/credentials.rb
98
+ - lib/riffer/rig/credentials/resolution.rb
99
+ - lib/riffer/rig/env.rb
100
+ - lib/riffer/rig/events.rb
101
+ - lib/riffer/rig/events/command_output.rb
102
+ - lib/riffer/rig/events/event.rb
103
+ - lib/riffer/rig/events/notify.rb
104
+ - lib/riffer/rig/events/session_end.rb
105
+ - lib/riffer/rig/events/session_start.rb
106
+ - lib/riffer/rig/events/skill_activated.rb
107
+ - lib/riffer/rig/events/turn_end.rb
108
+ - lib/riffer/rig/extension.rb
109
+ - lib/riffer/rig/hosts/base.rb
110
+ - lib/riffer/rig/hosts/mirror.rb
111
+ - lib/riffer/rig/hosts/null.rb
112
+ - lib/riffer/rig/provider_setup.rb
113
+ - lib/riffer/rig/provider_setup/field.rb
114
+ - lib/riffer/rig/registrar.rb
98
115
  - lib/riffer/rig/repl.rb
116
+ - lib/riffer/rig/runtime.rb
117
+ - lib/riffer/rig/runtime/cancel_flag.rb
99
118
  - lib/riffer/rig/settings.rb
119
+ - lib/riffer/rig/settings/document.rb
100
120
  - lib/riffer/rig/settings/pricing.rb
101
121
  - lib/riffer/rig/token_tally.rb
102
122
  - lib/riffer/rig/tools/bash.rb
@@ -115,8 +135,28 @@ files:
115
135
  - sig/generated/riffer/rig/cli.rbs
116
136
  - sig/generated/riffer/rig/coding_agent.rbs
117
137
  - sig/generated/riffer/rig/credentials.rbs
138
+ - sig/generated/riffer/rig/credentials/resolution.rbs
139
+ - sig/generated/riffer/rig/env.rbs
140
+ - sig/generated/riffer/rig/events.rbs
141
+ - sig/generated/riffer/rig/events/command_output.rbs
142
+ - sig/generated/riffer/rig/events/event.rbs
143
+ - sig/generated/riffer/rig/events/notify.rbs
144
+ - sig/generated/riffer/rig/events/session_end.rbs
145
+ - sig/generated/riffer/rig/events/session_start.rbs
146
+ - sig/generated/riffer/rig/events/skill_activated.rbs
147
+ - sig/generated/riffer/rig/events/turn_end.rbs
148
+ - sig/generated/riffer/rig/extension.rbs
149
+ - sig/generated/riffer/rig/hosts/base.rbs
150
+ - sig/generated/riffer/rig/hosts/mirror.rbs
151
+ - sig/generated/riffer/rig/hosts/null.rbs
152
+ - sig/generated/riffer/rig/provider_setup.rbs
153
+ - sig/generated/riffer/rig/provider_setup/field.rbs
154
+ - sig/generated/riffer/rig/registrar.rbs
118
155
  - sig/generated/riffer/rig/repl.rbs
156
+ - sig/generated/riffer/rig/runtime.rbs
157
+ - sig/generated/riffer/rig/runtime/cancel_flag.rbs
119
158
  - sig/generated/riffer/rig/settings.rbs
159
+ - sig/generated/riffer/rig/settings/document.rbs
120
160
  - sig/generated/riffer/rig/settings/pricing.rbs
121
161
  - sig/generated/riffer/rig/token_tally.rbs
122
162
  - sig/generated/riffer/rig/tools/bash.rbs
@@ -131,8 +171,10 @@ files:
131
171
  - sig/generated/riffer/rig/ui/smoother.rbs
132
172
  - sig/generated/riffer/rig/ui/theme.rbs
133
173
  - sig/generated/riffer/rig/version.rbs
174
+ - sig/manual/riffer/rig.rbs
134
175
  - sig/manual/riffer/rig/cli.rbs
135
176
  - sig/manual/riffer/rig/credentials.rbs
177
+ - sig/manual/riffer/rig/hosts.rbs
136
178
  - sig/manual/riffer/rig/settings.rbs
137
179
  - sig/manual/riffer/rig/tools.rbs
138
180
  - sig/manual/riffer/rig/ui.rbs