Class: Insika::Tools::UpdateBriefing::SetNextStep

Inherits:
RubyLLM::Tool
  • Object
show all
Includes:
BriefingWrite
Defined in:
lib/insika/tools/update_briefing.rb

Overview

The agreed next step: same engine-owned briefing object, sibling writer. Blank clears to nil.

Instance Method Summary collapse

Constructor Details

#initialize(session_store:, event_stream:, state:) ⇒ SetNextStep

Returns a new instance of SetNextStep.



106
107
108
109
110
111
# File 'lib/insika/tools/update_briefing.rb', line 106

def initialize(session_store:, event_stream:, state:)
  @session_store = session_store
  @event_stream = event_stream
  @state = state
  super()
end

Instance Method Details

#execute(text:) ⇒ Object



113
114
115
116
117
118
119
120
121
122
# File 'lib/insika/tools/update_briefing.rb', line 113

def execute(text:)
  sid = session_id
  return no_session_error if sid.to_s.empty?

  session = @session_store.set_next_step(sid, text: text.to_s)
  emit("next_step", nil, text.to_s)
  { next_step: session.briefing["next_step"] }
rescue Insika::NotFoundError
  { error: "session not found" }
end

#nameObject



104
# File 'lib/insika/tools/update_briefing.rb', line 104

def name = "set_next_step"