Class: Legion::Gaia::Channels::CliAdapter
Constant Summary
collapse
- CAPABILITIES =
%i[rich_text inline_code file_attachment syntax_highlighting].freeze
Instance Attribute Summary
#capabilities, #channel_id
Instance Method Summary
collapse
#start, #started?, #stop, #supports?
Constructor Details
Returns a new instance of CliAdapter.
9
10
11
12
|
# File 'lib/legion/gaia/channels/cli_adapter.rb', line 9
def initialize
super(channel_id: :cli, capabilities: CAPABILITIES)
@output_buffer = []
end
|
Instance Method Details
#deliver(rendered_content) ⇒ Object
31
32
33
34
|
# File 'lib/legion/gaia/channels/cli_adapter.rb', line 31
def deliver(rendered_content)
@output_buffer << rendered_content
rendered_content
end
|
#drain_output ⇒ Object
36
37
38
39
40
|
# File 'lib/legion/gaia/channels/cli_adapter.rb', line 36
def drain_output
output = @output_buffer.dup
@output_buffer.clear
output
end
|
#last_output ⇒ Object
42
43
44
|
# File 'lib/legion/gaia/channels/cli_adapter.rb', line 42
def last_output
@output_buffer.last
end
|
#output_buffer_size ⇒ Object
46
47
48
|
# File 'lib/legion/gaia/channels/cli_adapter.rb', line 46
def output_buffer_size
@output_buffer.size
end
|
#translate_inbound(raw_input) ⇒ Object
14
15
16
17
18
19
20
21
22
23
24
25
|
# File 'lib/legion/gaia/channels/cli_adapter.rb', line 14
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 }
)
end
|
#translate_outbound(output_frame) ⇒ Object
27
28
29
|
# File 'lib/legion/gaia/channels/cli_adapter.rb', line 27
def translate_outbound(output_frame)
output_frame.content.to_s
end
|