Skip to content
Kward Search API index

Class: Kward::SessionTabDriver

Inherits:
Object
  • Object
show all
Defined in:
lib/kward/tab_driver.rb

Overview

Adapts a session-backed agent to the tab runtime interface. Plugin tab drivers implement the same small surface without becoming Kward sessions.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(session:, agent:) ⇒ SessionTabDriver

Returns a new instance of SessionTabDriver.



8
9
10
11
# File 'lib/kward/tab_driver.rb', line 8

def initialize(session:, agent:)
  @session = session
  @agent = agent
end

Instance Attribute Details

#agentObject (readonly)

Returns the value of attribute agent.



6
7
8
# File 'lib/kward/tab_driver.rb', line 6

def agent
  @agent
end

#sessionObject (readonly)

Returns the value of attribute session.



6
7
8
# File 'lib/kward/tab_driver.rb', line 6

def session
  @session
end

Instance Method Details

#assistant_labelObject



40
41
42
# File 'lib/kward/tab_driver.rb', line 40

def assistant_label
  nil
end

#conversationObject



17
18
19
# File 'lib/kward/tab_driver.rb', line 17

def conversation
  agent.conversation
end

#descriptorObject



28
29
30
# File 'lib/kward/tab_driver.rb', line 28

def descriptor
  { "kind" => "session", "session_path" => session.path }
end

#messagesObject



13
14
15
# File 'lib/kward/tab_driver.rb', line 13

def messages
  agent.conversation.messages
end

#session?Boolean

Returns:

  • (Boolean)


32
33
34
# File 'lib/kward/tab_driver.rb', line 32

def session?
  true
end

#submit(input, display_input:, cancellation:, steering: nil, &block) ⇒ Object



21
22
23
24
25
26
# File 'lib/kward/tab_driver.rb', line 21

def submit(input, display_input:, cancellation:, steering: nil, &block)
  options = { cancellation: cancellation }
  options[:display_input] = display_input unless display_input.nil?
  options[:steering] = steering if steering
  agent.ask(input, **options, &block)
end

#supports_steering?Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/kward/tab_driver.rb', line 36

def supports_steering?
  true
end