Class: Collavre::AgentSessionAbort

Inherits:
Object
  • Object
show all
Defined in:
app/services/collavre/agent_session_abort.rb

Overview

Vendor-neutral seam for aborting an in-flight agent session when a task is cancelled. Vendor engines register a handler keyed by llm_vendor; core never names a specific backend.

Class Method Summary collapse

Class Method Details

.call(agent:, task:, creative: nil, comment: nil) ⇒ Object



13
14
15
16
17
18
19
20
21
# File 'app/services/collavre/agent_session_abort.rb', line 13

def call(agent:, task:, creative: nil, comment: nil)
  handler = registry[agent&.llm_vendor&.downcase]
  return unless handler

  handler.call(agent: agent, task: task, creative: creative, comment: comment)
rescue StandardError => e
  # A failed abort must never break task cancellation.
  Rails.logger.warn("[AgentSessionAbort] abort failed: #{e.message}")
end

.register(vendor, handler) ⇒ Object



9
10
11
# File 'app/services/collavre/agent_session_abort.rb', line 9

def register(vendor, handler)
  registry[vendor.to_s.downcase] = handler
end

.registryObject



23
24
25
# File 'app/services/collavre/agent_session_abort.rb', line 23

def registry
  @registry ||= {}
end