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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +37 -0
- data/README.md +43 -6
- data/lib/riffer/rig/cli.rb +51 -47
- data/lib/riffer/rig/coding_agent.rb +1 -6
- data/lib/riffer/rig/credentials/resolution.rb +16 -0
- data/lib/riffer/rig/credentials.rb +151 -60
- data/lib/riffer/rig/env.rb +29 -0
- data/lib/riffer/rig/events/command_output.rb +27 -0
- data/lib/riffer/rig/events/event.rb +30 -0
- data/lib/riffer/rig/events/notify.rb +27 -0
- data/lib/riffer/rig/events/session_end.rb +24 -0
- data/lib/riffer/rig/events/session_start.rb +27 -0
- data/lib/riffer/rig/events/skill_activated.rb +24 -0
- data/lib/riffer/rig/events/turn_end.rb +32 -0
- data/lib/riffer/rig/events.rb +4 -0
- data/lib/riffer/rig/extension.rb +27 -0
- data/lib/riffer/rig/hosts/base.rb +36 -0
- data/lib/riffer/rig/hosts/mirror.rb +60 -0
- data/lib/riffer/rig/hosts/null.rb +36 -0
- data/lib/riffer/rig/provider_setup/field.rb +24 -0
- data/lib/riffer/rig/provider_setup.rb +84 -0
- data/lib/riffer/rig/registrar.rb +35 -0
- data/lib/riffer/rig/repl.rb +42 -31
- data/lib/riffer/rig/runtime/cancel_flag.rb +27 -0
- data/lib/riffer/rig/runtime.rb +225 -0
- data/lib/riffer/rig/settings/document.rb +28 -0
- data/lib/riffer/rig/settings/pricing.rb +11 -1
- data/lib/riffer/rig/settings.rb +49 -60
- data/lib/riffer/rig/token_tally.rb +1 -21
- data/lib/riffer/rig/tools/bash.rb +33 -12
- data/lib/riffer/rig/tools/edit.rb +1 -1
- data/lib/riffer/rig/tools/read.rb +2 -2
- data/lib/riffer/rig/ui/animator.rb +8 -15
- data/lib/riffer/rig/ui/cursor.rb +4 -6
- data/lib/riffer/rig/ui/renderer.rb +18 -31
- data/lib/riffer/rig/ui/smoother.rb +15 -23
- data/lib/riffer/rig/ui/theme.rb +4 -6
- data/lib/riffer/rig/version.rb +1 -1
- data/lib/riffer/rig.rb +26 -0
- data/sig/generated/riffer/rig/cli.rbs +27 -19
- data/sig/generated/riffer/rig/credentials/resolution.rbs +13 -0
- data/sig/generated/riffer/rig/credentials.rbs +71 -41
- data/sig/generated/riffer/rig/env.rbs +20 -0
- data/sig/generated/riffer/rig/events/command_output.rbs +19 -0
- data/sig/generated/riffer/rig/events/event.rbs +20 -0
- data/sig/generated/riffer/rig/events/notify.rbs +19 -0
- data/sig/generated/riffer/rig/events/session_end.rbs +16 -0
- data/sig/generated/riffer/rig/events/session_start.rbs +19 -0
- data/sig/generated/riffer/rig/events/skill_activated.rbs +16 -0
- data/sig/generated/riffer/rig/events/turn_end.rbs +22 -0
- data/sig/generated/riffer/rig/events.rbs +4 -0
- data/sig/generated/riffer/rig/extension.rbs +24 -0
- data/sig/generated/riffer/rig/hosts/base.rbs +26 -0
- data/sig/generated/riffer/rig/hosts/mirror.rbs +41 -0
- data/sig/generated/riffer/rig/hosts/null.rbs +26 -0
- data/sig/generated/riffer/rig/provider_setup/field.rbs +22 -0
- data/sig/generated/riffer/rig/provider_setup.rbs +30 -0
- data/sig/generated/riffer/rig/registrar.rbs +25 -0
- data/sig/generated/riffer/rig/repl.rbs +17 -16
- data/sig/generated/riffer/rig/runtime/cancel_flag.rbs +19 -0
- data/sig/generated/riffer/rig/runtime.rbs +120 -0
- data/sig/generated/riffer/rig/settings/document.rbs +24 -0
- data/sig/generated/riffer/rig/settings/pricing.rbs +4 -1
- data/sig/generated/riffer/rig/settings.rbs +28 -49
- data/sig/generated/riffer/rig/token_tally.rbs +2 -21
- data/sig/generated/riffer/rig/tools/bash.rbs +15 -3
- data/sig/generated/riffer/rig/tools/edit.rbs +2 -2
- data/sig/generated/riffer/rig/tools/read.rbs +3 -3
- data/sig/generated/riffer/rig/ui/animator.rbs +8 -16
- data/sig/generated/riffer/rig/ui/cursor.rbs +4 -6
- data/sig/generated/riffer/rig/ui/renderer.rbs +13 -35
- data/sig/generated/riffer/rig/ui/smoother.rbs +9 -22
- data/sig/generated/riffer/rig/ui/theme.rbs +3 -5
- data/sig/generated/riffer/rig.rbs +12 -0
- data/sig/manual/riffer/rig/cli.rbs +2 -4
- data/sig/manual/riffer/rig/credentials.rbs +2 -4
- data/sig/manual/riffer/rig/hosts.rbs +5 -0
- data/sig/manual/riffer/rig/settings.rbs +2 -4
- data/sig/manual/riffer/rig/ui/banner.rbs +2 -4
- data/sig/manual/riffer/rig.rbs +11 -0
- 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
|
|
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:
|
|
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
|
|
9
|
-
# @rbs
|
|
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:
|
|
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:
|
|
28
|
+
@io: IO
|
|
31
29
|
|
|
32
|
-
# @rbs io:
|
|
33
|
-
# @rbs
|
|
30
|
+
# @rbs io: IO
|
|
31
|
+
# @rbs theme: Riffer::Rig::UI::Theme
|
|
34
32
|
# @rbs return: void
|
|
35
|
-
def initialize: (?io:
|
|
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
|
|
39
|
+
# @rbs mode: Symbol
|
|
44
40
|
# @rbs return: void
|
|
45
|
-
def start: (?
|
|
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
|
|
47
|
+
# @rbs label: String
|
|
52
48
|
# @rbs return: String
|
|
53
|
-
def equalizer: (Integer tick, ?
|
|
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:
|
|
8
|
+
@io: IO
|
|
11
9
|
|
|
12
10
|
@theme: Riffer::Rig::UI::Theme
|
|
13
11
|
|
|
14
|
-
# @rbs io:
|
|
15
|
-
# @rbs
|
|
12
|
+
# @rbs io: IO
|
|
13
|
+
# @rbs theme: Riffer::Rig::UI::Theme
|
|
16
14
|
# @rbs return: void
|
|
17
|
-
def initialize: (?io:
|
|
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:
|
|
16
|
+
@io: IO
|
|
17
17
|
|
|
18
|
-
# @rbs io:
|
|
19
|
-
# @rbs
|
|
20
|
-
# @rbs
|
|
21
|
-
# @rbs
|
|
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:
|
|
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)
|
|
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)
|
|
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:
|
|
67
|
+
@io: IO
|
|
90
68
|
|
|
91
|
-
# @rbs io:
|
|
69
|
+
# @rbs io: IO
|
|
92
70
|
# @rbs return: void
|
|
93
|
-
def initialize: (
|
|
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
|
-
#
|
|
10
|
-
# decay
|
|
11
|
-
# never visibly stops between chunks.
|
|
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:
|
|
31
|
+
@io: IO
|
|
36
32
|
|
|
37
|
-
# @rbs io:
|
|
38
|
-
# @rbs
|
|
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:
|
|
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:
|
|
13
|
+
# @rbs io: IO
|
|
14
|
+
# @rbs env: Riffer::Rig::Env
|
|
17
15
|
# @rbs return: Riffer::Rig::UI::Theme
|
|
18
|
-
def self.for: (
|
|
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
|
|
2
|
-
#
|
|
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
|
|
2
|
-
#
|
|
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
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
# rbs-inline does not emit `extend self
|
|
2
|
-
#
|
|
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
|
|
2
|
-
#
|
|
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
|
+
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.
|
|
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.
|
|
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
|