Class: Assistant::TechnicalSupport::CaseReplayEvidence::ToolPayload

Inherits:
Object
  • Object
show all
Defined in:
app/services/assistant/technical_support/case_replay_evidence/tool_payload.rb

Overview

Parses only successful tool result envelopes. A failure can never provide
citation provenance, even when its error message happens to contain a URL.

Class Method Summary collapse

Class Method Details

.call(tool_call) ⇒ Object



7
8
9
10
11
12
13
14
15
16
# File 'app/services/assistant/technical_support/case_replay_evidence/tool_payload.rb', line 7

def call(tool_call)
  payload = JSON.parse(tool_call.result)
  return unless payload.is_a?(Hash)
  return if payload['success'] == false
  return if error?(payload)

  payload
rescue JSON::ParserError, TypeError
  nil
end

.requested_record_returned?(tool_call, payload) ⇒ Boolean

Returns:

  • (Boolean)


18
19
20
21
22
23
# File 'app/services/assistant/technical_support/case_replay_evidence/tool_payload.rb', line 18

def requested_record_returned?(tool_call, payload)
  returned_id = payload['id'].to_i
  requested_id = tool_call.arguments['id'].to_i

  returned_id.positive? && (!requested_id.positive? || returned_id == requested_id)
end