riffer-rig 0.5.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 (78) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +22 -0
  3. data/README.md +43 -6
  4. data/lib/riffer/rig/cli.rb +46 -41
  5. data/lib/riffer/rig/credentials/resolution.rb +16 -0
  6. data/lib/riffer/rig/credentials.rb +151 -60
  7. data/lib/riffer/rig/env.rb +29 -0
  8. data/lib/riffer/rig/events/command_output.rb +27 -0
  9. data/lib/riffer/rig/events/event.rb +30 -0
  10. data/lib/riffer/rig/events/notify.rb +27 -0
  11. data/lib/riffer/rig/events/session_end.rb +24 -0
  12. data/lib/riffer/rig/events/session_start.rb +27 -0
  13. data/lib/riffer/rig/events/skill_activated.rb +24 -0
  14. data/lib/riffer/rig/events/turn_end.rb +32 -0
  15. data/lib/riffer/rig/events.rb +4 -0
  16. data/lib/riffer/rig/extension.rb +0 -4
  17. data/lib/riffer/rig/hosts/base.rb +36 -0
  18. data/lib/riffer/rig/hosts/mirror.rb +60 -0
  19. data/lib/riffer/rig/hosts/null.rb +36 -0
  20. data/lib/riffer/rig/provider_setup/field.rb +24 -0
  21. data/lib/riffer/rig/provider_setup.rb +84 -0
  22. data/lib/riffer/rig/registrar.rb +14 -2
  23. data/lib/riffer/rig/repl.rb +7 -8
  24. data/lib/riffer/rig/runtime/cancel_flag.rb +27 -0
  25. data/lib/riffer/rig/runtime.rb +104 -41
  26. data/lib/riffer/rig/settings/document.rb +6 -1
  27. data/lib/riffer/rig/settings/pricing.rb +0 -1
  28. data/lib/riffer/rig/settings.rb +47 -50
  29. data/lib/riffer/rig/token_tally.rb +0 -20
  30. data/lib/riffer/rig/tools/bash.rb +32 -11
  31. data/lib/riffer/rig/ui/animator.rb +2 -9
  32. data/lib/riffer/rig/ui/cursor.rb +0 -2
  33. data/lib/riffer/rig/ui/renderer.rb +9 -24
  34. data/lib/riffer/rig/ui/smoother.rb +11 -19
  35. data/lib/riffer/rig/ui/theme.rb +3 -5
  36. data/lib/riffer/rig/version.rb +1 -1
  37. data/lib/riffer/rig.rb +2 -7
  38. data/sig/generated/riffer/rig/cli.rbs +20 -12
  39. data/sig/generated/riffer/rig/credentials/resolution.rbs +13 -0
  40. data/sig/generated/riffer/rig/credentials.rbs +70 -41
  41. data/sig/generated/riffer/rig/env.rbs +20 -0
  42. data/sig/generated/riffer/rig/events/command_output.rbs +19 -0
  43. data/sig/generated/riffer/rig/events/event.rbs +20 -0
  44. data/sig/generated/riffer/rig/events/notify.rbs +19 -0
  45. data/sig/generated/riffer/rig/events/session_end.rbs +16 -0
  46. data/sig/generated/riffer/rig/events/session_start.rbs +19 -0
  47. data/sig/generated/riffer/rig/events/skill_activated.rbs +16 -0
  48. data/sig/generated/riffer/rig/events/turn_end.rbs +22 -0
  49. data/sig/generated/riffer/rig/events.rbs +4 -0
  50. data/sig/generated/riffer/rig/extension.rbs +0 -4
  51. data/sig/generated/riffer/rig/hosts/base.rbs +26 -0
  52. data/sig/generated/riffer/rig/hosts/mirror.rbs +41 -0
  53. data/sig/generated/riffer/rig/hosts/null.rbs +26 -0
  54. data/sig/generated/riffer/rig/provider_setup/field.rbs +22 -0
  55. data/sig/generated/riffer/rig/provider_setup.rbs +30 -0
  56. data/sig/generated/riffer/rig/registrar.rbs +10 -2
  57. data/sig/generated/riffer/rig/repl.rbs +0 -8
  58. data/sig/generated/riffer/rig/runtime/cancel_flag.rbs +19 -0
  59. data/sig/generated/riffer/rig/runtime.rbs +58 -39
  60. data/sig/generated/riffer/rig/settings/document.rbs +5 -1
  61. data/sig/generated/riffer/rig/settings/pricing.rbs +0 -1
  62. data/sig/generated/riffer/rig/settings.rbs +25 -46
  63. data/sig/generated/riffer/rig/token_tally.rbs +0 -19
  64. data/sig/generated/riffer/rig/tools/bash.rbs +13 -1
  65. data/sig/generated/riffer/rig/ui/animator.rbs +0 -8
  66. data/sig/generated/riffer/rig/ui/cursor.rbs +0 -2
  67. data/sig/generated/riffer/rig/ui/renderer.rbs +0 -24
  68. data/sig/generated/riffer/rig/ui/smoother.rbs +5 -18
  69. data/sig/generated/riffer/rig/ui/theme.rbs +2 -4
  70. data/sig/generated/riffer/rig.rbs +0 -7
  71. data/sig/manual/riffer/rig/cli.rbs +2 -4
  72. data/sig/manual/riffer/rig/credentials.rbs +2 -4
  73. data/sig/manual/riffer/rig/hosts.rbs +5 -0
  74. data/sig/manual/riffer/rig/settings.rbs +2 -4
  75. data/sig/manual/riffer/rig/ui/banner.rbs +2 -4
  76. metadata +38 -13
  77. data/lib/riffer/rig/host.rb +0 -52
  78. data/sig/generated/riffer/rig/host.rbs +0 -42
@@ -1,56 +1,85 @@
1
1
  # Generated from lib/riffer/rig/credentials.rb with RBS::Inline
2
2
 
3
- # Reads and writes API keys for each supported provider in
4
- # <tt>~/.riffer/auth.json</tt>.
5
- #
6
- # Keys are stored under the provider name, e.g.:
7
- #
8
- # {
9
- # "anthropic": "sk-ant-...",
10
- # "openai": "sk-...",
11
- # "gemini": "...",
12
- # "openrouter": "sk-or-..."
13
- # }
14
- #
15
- # The environment variable checked per provider:
16
- #
17
- # anthropic → ANTHROPIC_API_KEY
18
- # openai → OPENAI_API_KEY
19
- # gemini → GEMINI_API_KEY
20
- # openrouter → OPENROUTER_API_KEY
21
3
  module Riffer::Rig::Credentials
22
4
  PATH: String
23
5
 
24
- PROVIDER_ENV_VARS: Hash[String, String]
6
+ ENTRY_TYPE: ::String
25
7
 
26
- # Returns the API key for +provider+, checking the environment variable first,
27
- # then the stored file. Returns +nil+ if no key is available.
28
- #
29
- # @rbs provider: String?
30
- # @rbs path: String
31
- # @rbs return: String?
32
- def api_key_for: (String? provider, ?path: String) -> String?
8
+ # @rbs identifier: String | Symbol
9
+ # @rbs host: Riffer::Rig::Hosts::Base
10
+ # @rbs setup: Riffer::Rig::ProviderSetup
11
+ # @rbs env: Riffer::Rig::Env
12
+ # @rbs auth_path: String
13
+ # @rbs settings_path: String
14
+ # @rbs return: Resolution
15
+ def resolve: (String | Symbol identifier, host: Riffer::Rig::Hosts::Base, ?setup: Riffer::Rig::ProviderSetup, ?env: Riffer::Rig::Env, ?auth_path: String, ?settings_path: String) -> Resolution
33
16
 
34
- # Saves an API key for +provider+ to the auth file with 0600 permissions.
35
- #
36
- # @rbs provider: String
37
- # @rbs key: String
38
- # @rbs path: String
39
- # @rbs return: String
40
- def save_api_key: (String provider, String key, ?path: String) -> String
17
+ # @rbs identifier: String | Symbol
18
+ # @rbs values: Hash[Symbol, String]
19
+ # @rbs config: Riffer::Config
20
+ # @rbs return: void
21
+ def apply: (String | Symbol identifier, Hash[Symbol, String] values, ?config: Riffer::Config) -> void
22
+
23
+ # @rbs identifier: String | Symbol
24
+ # @rbs values: Hash[Symbol, String]
25
+ # @rbs setup: Riffer::Rig::ProviderSetup
26
+ # @rbs auth_path: String
27
+ # @rbs settings_path: String
28
+ # @rbs return: void
29
+ def store: (String | Symbol identifier, Hash[Symbol, String] values, ?setup: Riffer::Rig::ProviderSetup, ?auth_path: String, ?settings_path: String) -> void
30
+
31
+ # @rbs identifier: String | Symbol
32
+ # @rbs auth_path: String
33
+ # @rbs settings_path: String
34
+ # @rbs return: void
35
+ def remove: (String | Symbol identifier, ?auth_path: String, ?settings_path: String) -> void
36
+
37
+ # @rbs identifier: String | Symbol
38
+ # @rbs setup: Riffer::Rig::ProviderSetup
39
+ # @rbs env: Riffer::Rig::Env
40
+ # @rbs auth_path: String
41
+ # @rbs return: :env | :stored | :chain | :missing
42
+ def status: (String | Symbol identifier, ?setup: Riffer::Rig::ProviderSetup, ?env: Riffer::Rig::Env, ?auth_path: String) -> (:env | :stored | :chain | :missing)
41
43
 
42
44
  private
43
45
 
44
- # @rbs provider: String?
45
- # @rbs path: String
46
+ # @rbs fields: Array[Riffer::Rig::ProviderSetup::Field]
47
+ # @rbs identifier: String | Symbol
48
+ # @rbs host: Riffer::Rig::Hosts::Base
49
+ # @rbs return: Hash[Symbol, String]
50
+ def ask_for: (Array[Riffer::Rig::ProviderSetup::Field] fields, String | Symbol identifier, Riffer::Rig::Hosts::Base host) -> Hash[Symbol, String]
51
+
52
+ # @rbs field: Riffer::Rig::ProviderSetup::Field
53
+ # @rbs secrets: Hash[String, String]
54
+ # @rbs plain: Hash[String, String]
55
+ # @rbs env: Riffer::Rig::Env
56
+ # @rbs return: String?
57
+ def stored_value: (Riffer::Rig::ProviderSetup::Field field, Hash[String, String] secrets, Hash[String, String] plain, Riffer::Rig::Env env) -> String?
58
+
59
+ # @rbs value: String?
60
+ # @rbs env: Riffer::Rig::Env
61
+ # @rbs return: String?
62
+ def expand: (String? value, Riffer::Rig::Env env) -> String?
63
+
64
+ # @rbs command: String
65
+ # @rbs return: String?
66
+ def run: (String command) -> String?
67
+
68
+ # @rbs value: String?
46
69
  # @rbs return: String?
47
- def key_from_file: (String? provider, String path) -> String?
70
+ def presence: (String? value) -> String?
48
71
 
49
- # The parsed auth file, or an empty hash when the file is absent or
50
- # malformed. Non-string values can't be keys, so they're dropped here rather
51
- # than re-checked by every reader.
52
- #
72
+ # @rbs identifier: String | Symbol
53
73
  # @rbs path: String
54
74
  # @rbs return: Hash[String, String]
55
- def read: (String path) -> Hash[String, String]
75
+ def stored_secrets: (String | Symbol identifier, String path) -> Hash[String, String]
76
+
77
+ # @rbs path: String
78
+ # @rbs return: Hash[String, Hash[String, String]]
79
+ def read_auth: (String path) -> Hash[String, Hash[String, String]]
80
+
81
+ # @rbs path: String
82
+ # @rbs entries: Hash[String, Hash[String, String]]
83
+ # @rbs return: void
84
+ def write_auth: (String path, Hash[String, Hash[String, String]] entries) -> void
56
85
  end
@@ -0,0 +1,20 @@
1
+ # Generated from lib/riffer/rig/env.rb with RBS::Inline
2
+
3
+ class Riffer::Rig::Env
4
+ @source: Hash[String, String]
5
+
6
+ # @dynamic no_color
7
+ attr_reader no_color: bool
8
+
9
+ # @rbs source: Hash[String, String]
10
+ # @rbs return: void
11
+ def initialize: (?Hash[String, String] source) -> void
12
+
13
+ # @rbs name: String
14
+ # @rbs return: String?
15
+ def []: (String name) -> String?
16
+
17
+ # @rbs field: Riffer::Rig::ProviderSetup::Field
18
+ # @rbs return: String?
19
+ def value_for: (Riffer::Rig::ProviderSetup::Field field) -> String?
20
+ end
@@ -0,0 +1,19 @@
1
+ # Generated from lib/riffer/rig/events/command_output.rb with RBS::Inline
2
+
3
+ class Riffer::Rig::Events::CommandOutput < Riffer::Rig::Events::Event
4
+ # @dynamic command, text
5
+ attr_reader command: String
6
+
7
+ attr_reader text: String
8
+
9
+ # @rbs command: String
10
+ # @rbs text: String
11
+ # @rbs return: void
12
+ def initialize: (String command, String text) -> void
13
+
14
+ # @rbs return: Symbol
15
+ def type: () -> Symbol
16
+
17
+ # @rbs return: Hash[Symbol, untyped]
18
+ def to_h: () -> Hash[Symbol, untyped]
19
+ end
@@ -0,0 +1,20 @@
1
+ # Generated from lib/riffer/rig/events/event.rb with RBS::Inline
2
+
3
+ class Riffer::Rig::Events::Event
4
+ # @rbs return: Symbol
5
+ def type: () -> Symbol
6
+
7
+ # @rbs return: Hash[Symbol, untyped]
8
+ def to_h: () -> Hash[Symbol, untyped]
9
+
10
+ # @rbs other: untyped
11
+ # @rbs return: bool
12
+ def ==: (untyped other) -> bool
13
+
14
+ # @rbs return: Integer
15
+ def hash: () -> Integer
16
+
17
+ # @rbs other: untyped
18
+ # @rbs return: bool
19
+ def eql?: (untyped other) -> bool
20
+ end
@@ -0,0 +1,19 @@
1
+ # Generated from lib/riffer/rig/events/notify.rb with RBS::Inline
2
+
3
+ class Riffer::Rig::Events::Notify < Riffer::Rig::Events::Event
4
+ # @dynamic message, level
5
+ attr_reader message: String?
6
+
7
+ attr_reader level: Symbol
8
+
9
+ # @rbs message: String?
10
+ # @rbs level: Symbol
11
+ # @rbs return: void
12
+ def initialize: (String? message, Symbol level) -> void
13
+
14
+ # @rbs return: Symbol
15
+ def type: () -> Symbol
16
+
17
+ # @rbs return: Hash[Symbol, untyped]
18
+ def to_h: () -> Hash[Symbol, untyped]
19
+ end
@@ -0,0 +1,16 @@
1
+ # Generated from lib/riffer/rig/events/session_end.rb with RBS::Inline
2
+
3
+ class Riffer::Rig::Events::SessionEnd < Riffer::Rig::Events::Event
4
+ # @dynamic reason
5
+ attr_reader reason: Symbol
6
+
7
+ # @rbs reason: Symbol
8
+ # @rbs return: void
9
+ def initialize: (Symbol reason) -> void
10
+
11
+ # @rbs return: Symbol
12
+ def type: () -> Symbol
13
+
14
+ # @rbs return: Hash[Symbol, untyped]
15
+ def to_h: () -> Hash[Symbol, untyped]
16
+ end
@@ -0,0 +1,19 @@
1
+ # Generated from lib/riffer/rig/events/session_start.rb with RBS::Inline
2
+
3
+ class Riffer::Rig::Events::SessionStart < Riffer::Rig::Events::Event
4
+ # @dynamic id, reason
5
+ attr_reader id: String
6
+
7
+ attr_reader reason: Symbol
8
+
9
+ # @rbs id: String
10
+ # @rbs reason: Symbol
11
+ # @rbs return: void
12
+ def initialize: (String id, Symbol reason) -> void
13
+
14
+ # @rbs return: Symbol
15
+ def type: () -> Symbol
16
+
17
+ # @rbs return: Hash[Symbol, untyped]
18
+ def to_h: () -> Hash[Symbol, untyped]
19
+ end
@@ -0,0 +1,16 @@
1
+ # Generated from lib/riffer/rig/events/skill_activated.rb with RBS::Inline
2
+
3
+ class Riffer::Rig::Events::SkillActivated < Riffer::Rig::Events::Event
4
+ # @dynamic name
5
+ attr_reader name: String
6
+
7
+ # @rbs name: String
8
+ # @rbs return: void
9
+ def initialize: (String name) -> void
10
+
11
+ # @rbs return: Symbol
12
+ def type: () -> Symbol
13
+
14
+ # @rbs return: Hash[Symbol, untyped]
15
+ def to_h: () -> Hash[Symbol, untyped]
16
+ end
@@ -0,0 +1,22 @@
1
+ # Generated from lib/riffer/rig/events/turn_end.rb with RBS::Inline
2
+
3
+ class Riffer::Rig::Events::TurnEnd < Riffer::Rig::Events::Event
4
+ # @dynamic stop_reason, usage
5
+ attr_reader stop_reason: Symbol
6
+
7
+ attr_reader usage: ::Riffer::Providers::TokenUsage?
8
+
9
+ # @rbs stop_reason: Symbol
10
+ # @rbs usage: ::Riffer::Providers::TokenUsage?
11
+ # @rbs return: void
12
+ def initialize: (Symbol stop_reason, ::Riffer::Providers::TokenUsage? usage) -> void
13
+
14
+ # @rbs return: Float?
15
+ def cost: () -> Float?
16
+
17
+ # @rbs return: Symbol
18
+ def type: () -> Symbol
19
+
20
+ # @rbs return: Hash[Symbol, untyped]
21
+ def to_h: () -> Hash[Symbol, untyped]
22
+ end
@@ -0,0 +1,4 @@
1
+ # Generated from lib/riffer/rig/events.rb with RBS::Inline
2
+
3
+ module Riffer::Rig::Events
4
+ end
@@ -1,9 +1,5 @@
1
1
  # Generated from lib/riffer/rig/extension.rb with RBS::Inline
2
2
 
3
- # An extension recorded by <tt>Riffer::Rig.extension</tt>: a name, an optional
4
- # Gem::Requirement on riffer-rig, and the block that runs against a Runtime's
5
- # registrar. The process registry holds these objects; Runtime.new runs their
6
- # blocks.
7
3
  class Riffer::Rig::Extension
8
4
  @name: String
9
5
 
@@ -0,0 +1,26 @@
1
+ # Generated from lib/riffer/rig/hosts/base.rb with RBS::Inline
2
+
3
+ class Riffer::Rig::Hosts::Base
4
+ # @rbs return: Set[Symbol]
5
+ def capabilities: () -> Set[Symbol]
6
+
7
+ # @rbs question: String?
8
+ # @rbs options: Array[String]?
9
+ # @rbs secret: bool
10
+ # @rbs return: String?
11
+ def ask: (?String? question, ?options: Array[String]?, ?secret: bool) -> String?
12
+
13
+ # @rbs question: String?
14
+ # @rbs return: bool
15
+ def confirm: (?String? question) -> bool
16
+
17
+ # @rbs message: String?
18
+ # @rbs level: Symbol
19
+ # @rbs return: void
20
+ def notify: (?String? message, ?level: Symbol) -> void
21
+
22
+ # @rbs label: String?
23
+ # @rbs &: ? () -> void
24
+ # @rbs return: void
25
+ def progress: (?String? label) ?{ () -> void } -> void
26
+ end
@@ -0,0 +1,41 @@
1
+ # Generated from lib/riffer/rig/hosts/mirror.rb with RBS::Inline
2
+
3
+ class Riffer::Rig::Hosts::Mirror < Riffer::Rig::Hosts::Base
4
+ @host: Riffer::Rig::Hosts::Base
5
+
6
+ @queue: Array[Riffer::Rig::Events::Event]
7
+
8
+ # @dynamic capabilities
9
+ attr_reader capabilities: Set[Symbol]
10
+
11
+ # @rbs host: Riffer::Rig::Hosts::Base
12
+ # @rbs return: void
13
+ def initialize: (Riffer::Rig::Hosts::Base host) -> void
14
+
15
+ # @rbs question: String?
16
+ # @rbs options: Array[String]?
17
+ # @rbs secret: bool
18
+ # @rbs return: String?
19
+ def ask: (?String? question, ?options: Array[String]?, ?secret: bool) -> String?
20
+
21
+ # @rbs question: String?
22
+ # @rbs return: bool
23
+ def confirm: (?String? question) -> bool
24
+
25
+ # @rbs message: String?
26
+ # @rbs level: Symbol
27
+ # @rbs return: void
28
+ def notify: (?String? message, ?level: Symbol) -> void
29
+
30
+ # @rbs label: String?
31
+ # @rbs &block: ? () -> void
32
+ # @rbs return: void
33
+ def progress: (?String? label) ?{ () -> void } -> void
34
+
35
+ # @rbs event: Riffer::Rig::Events::Event
36
+ # @rbs return: void
37
+ def queue: (Riffer::Rig::Events::Event event) -> void
38
+
39
+ # @rbs return: Array[Riffer::Rig::Events::Event]
40
+ def drain: () -> Array[Riffer::Rig::Events::Event]
41
+ end
@@ -0,0 +1,26 @@
1
+ # Generated from lib/riffer/rig/hosts/null.rb with RBS::Inline
2
+
3
+ class Riffer::Rig::Hosts::Null < Riffer::Rig::Hosts::Base
4
+ # @rbs return: Set[Symbol]
5
+ def capabilities: () -> Set[Symbol]
6
+
7
+ # @rbs question: String?
8
+ # @rbs options: Array[String]?
9
+ # @rbs secret: bool
10
+ # @rbs return: String?
11
+ def ask: (?String? question, ?options: Array[String]?, ?secret: bool) -> String?
12
+
13
+ # @rbs question: String?
14
+ # @rbs return: bool
15
+ def confirm: (?String? question) -> bool
16
+
17
+ # @rbs message: String?
18
+ # @rbs level: Symbol
19
+ # @rbs return: void
20
+ def notify: (?String? message, ?level: Symbol) -> void
21
+
22
+ # @rbs label: String?
23
+ # @rbs &block: ? () -> void
24
+ # @rbs return: void
25
+ def progress: (?String? label) ?{ () -> void } -> void
26
+ end
@@ -0,0 +1,22 @@
1
+ # Generated from lib/riffer/rig/provider_setup/field.rb with RBS::Inline
2
+
3
+ class Riffer::Rig::ProviderSetup::Field
4
+ # @dynamic name, env, secret, required, fallback
5
+ attr_reader name: Symbol
6
+
7
+ attr_reader env: Array[String]
8
+
9
+ attr_reader secret: bool
10
+
11
+ attr_reader required: bool
12
+
13
+ attr_reader fallback: (^() -> String?)?
14
+
15
+ # @rbs name: Symbol
16
+ # @rbs env: Array[String]
17
+ # @rbs secret: bool
18
+ # @rbs required: bool
19
+ # @rbs fallback: (^() -> String?)?
20
+ # @rbs return: void
21
+ def initialize: (name: Symbol, env: Array[String], secret: bool, required: bool, ?fallback: (^() -> String?)?) -> void
22
+ end
@@ -0,0 +1,30 @@
1
+ # Generated from lib/riffer/rig/provider_setup.rb with RBS::Inline
2
+
3
+ class Riffer::Rig::ProviderSetup
4
+ # @dynamic url, chain, fields
5
+ attr_reader url: String?
6
+
7
+ attr_reader chain: bool
8
+
9
+ attr_reader fields: Array[Riffer::Rig::ProviderSetup::Field]
10
+
11
+ # @rbs fields: Array[Riffer::Rig::ProviderSetup::Field]
12
+ # @rbs url: String?
13
+ # @rbs chain: bool
14
+ # @rbs return: void
15
+ def initialize: (fields: Array[Riffer::Rig::ProviderSetup::Field], ?url: String?, ?chain: bool) -> void
16
+
17
+ AWS_SHARED_CONFIG_REGION: ^() -> String?
18
+
19
+ # Upstream candidate: each riffer provider could declare its own credential
20
+ # fields, and this table would go.
21
+ TABLE: Hash[Symbol, Riffer::Rig::ProviderSetup]
22
+
23
+ # @rbs identifier: String | Symbol
24
+ # @rbs return: Riffer::Rig::ProviderSetup?
25
+ def self.[]: (String | Symbol identifier) -> Riffer::Rig::ProviderSetup?
26
+
27
+ # @rbs identifier: String | Symbol
28
+ # @rbs return: Riffer::Rig::ProviderSetup
29
+ def self.for: (String | Symbol identifier) -> Riffer::Rig::ProviderSetup
30
+ end
@@ -1,10 +1,10 @@
1
1
  # Generated from lib/riffer/rig/registrar.rb with RBS::Inline
2
2
 
3
- # The per-Runtime registrar extension blocks run against. Seams are added one
4
- # at a time; today only #tool exists.
5
3
  class Riffer::Rig::Registrar
6
4
  @tools: Array[singleton(Riffer::Tool)]
7
5
 
6
+ @prompts: Hash[Symbol, ^(Riffer::Rig::Runtime) -> String?]
7
+
8
8
  # @rbs return: void
9
9
  def initialize: () -> void
10
10
 
@@ -12,6 +12,14 @@ class Riffer::Rig::Registrar
12
12
  # @rbs return: void
13
13
  def tool: (singleton(Riffer::Tool) klass) -> void
14
14
 
15
+ # @rbs name: Symbol
16
+ # @rbs &block: (Riffer::Rig::Runtime) -> String?
17
+ # @rbs return: void
18
+ def prompt: (Symbol name) { (Riffer::Rig::Runtime) -> String? } -> void
19
+
15
20
  # @rbs return: Array[singleton(Riffer::Tool)]
16
21
  def tools: () -> Array[singleton(Riffer::Tool)]
22
+
23
+ # @rbs return: Hash[Symbol, ^(Riffer::Rig::Runtime) -> String?]
24
+ def prompts: () -> Hash[Symbol, ^(Riffer::Rig::Runtime) -> String?]
17
25
  end
@@ -55,10 +55,6 @@ class Riffer::Rig::REPL
55
55
  # @rbs return: String
56
56
  def skill_block: (String name, String body) -> String
57
57
 
58
- # Chrome lines that never pass through the renderer (errors, exit line) end
59
- # their line with a newline but leave the renderer's tool-group state alone —
60
- # they can only follow prose, never mid-group.
61
- #
62
58
  # @rbs &block: () -> String
63
59
  # @rbs return: void
64
60
  def print_block: () { () -> String } -> void
@@ -67,10 +63,6 @@ class Riffer::Rig::REPL
67
63
  # @rbs return: void
68
64
  def render_tool_result: (Riffer::Messages::Base message) -> void
69
65
 
70
- # Every animator start sits behind a smoother drain: the smoother's backlog
71
- # may still be trickling out from streamed prose, and spinner frames drawn
72
- # mid-drain would carve `\r…\e[K` through a half-printed sentence.
73
- #
74
66
  # @rbs mode: Symbol
75
67
  # @rbs return: void
76
68
  def start_animator: (?Symbol mode) -> void
@@ -0,0 +1,19 @@
1
+ # Generated from lib/riffer/rig/runtime/cancel_flag.rb with RBS::Inline
2
+
3
+ class Riffer::Rig::Runtime::CancelFlag
4
+ @mutex: Thread::Mutex
5
+
6
+ @set: bool
7
+
8
+ # @rbs return: void
9
+ def initialize: () -> void
10
+
11
+ # @rbs return: void
12
+ def set: () -> void
13
+
14
+ # @rbs return: void
15
+ def clear: () -> void
16
+
17
+ # @rbs return: bool
18
+ def set?: () -> bool
19
+ end