Class: Legion::Gaia::Channels::CliAdapter
Constant Summary
collapse
- CAPABILITIES =
%i[rich_text inline_code file_attachment syntax_highlighting].freeze
Legion::Gaia::ChannelAdapter::DIRECT_ADDRESS_PATTERN
Instance Attribute Summary
#capabilities, #channel_id
Class Method Summary
collapse
Instance Method Summary
collapse
inherited, register_adapter, #start, #started?, #stop, #supports?
Constructor Details
Returns a new instance of CliAdapter.
15
16
17
18
|
# File 'lib/legion/gaia/channels/cli_adapter.rb', line 15
def initialize
super(channel_id: :cli, capabilities: CAPABILITIES)
@output_buffer = []
end
|
Class Method Details
.from_settings(settings) ⇒ Object
9
10
11
12
13
|
# File 'lib/legion/gaia/channels/cli_adapter.rb', line 9
def self.from_settings(settings)
return nil if settings&.dig(:channels, :cli, :enabled) == false
new
end
|
Instance Method Details
#deliver(rendered_content) ⇒ Object
37
38
39
40
|
# File 'lib/legion/gaia/channels/cli_adapter.rb', line 37
def deliver(rendered_content)
@output_buffer << rendered_content
rendered_content
end
|
#drain_output ⇒ Object
42
43
44
45
46
|
# File 'lib/legion/gaia/channels/cli_adapter.rb', line 42
def drain_output
output = @output_buffer.dup
@output_buffer.clear
output
end
|
#last_output ⇒ Object
48
49
50
|
# File 'lib/legion/gaia/channels/cli_adapter.rb', line 48
def last_output
@output_buffer.last
end
|
#output_buffer_size ⇒ Object
52
53
54
|
# File 'lib/legion/gaia/channels/cli_adapter.rb', line 52
def output_buffer_size
@output_buffer.size
end
|
#translate_inbound(raw_input) ⇒ Object
20
21
22
23
24
25
26
27
28
29
30
31
|
# File 'lib/legion/gaia/channels/cli_adapter.rb', line 20
def translate_inbound(raw_input)
text = raw_input.is_a?(String) ? raw_input : raw_input.to_s
InputFrame.new(
content: text,
channel_id: :cli,
content_type: :text,
channel_capabilities: CAPABILITIES,
device_context: { platform: :desktop, input_method: :keyboard },
metadata: { source_type: :human_direct, salience: 0.9, direct_address: direct_address?(text) }
)
end
|
#translate_outbound(output_frame) ⇒ Object
33
34
35
|
# File 'lib/legion/gaia/channels/cli_adapter.rb', line 33
def translate_outbound(output_frame)
output_frame.content.to_s
end
|