Class: Collavre::AgentSessionAbort
- Inherits:
-
Object
- Object
- Collavre::AgentSessionAbort
- 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
- .call(agent:, task:, creative: nil, comment: nil) ⇒ Object
- .register(vendor, handler) ⇒ Object
- .registry ⇒ Object
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.}") 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 |
.registry ⇒ Object
23 24 25 |
# File 'app/services/collavre/agent_session_abort.rb', line 23 def registry @registry ||= {} end |