Class: ActiveAgent::Providers::OpenRouter::Requests::Messages::MessagesType

Inherits:
ActiveModel::Type::Value
  • Object
show all
Defined in:
lib/active_agent/providers/open_router/requests/messages/_types.rb

Overview

ActiveModel type for casting and normalizing messages

Delegates to OpenRouter transforms which use OpenAI’s message normalization.

Direct Known Subclasses

MessageType

Instance Method Summary collapse

Instance Method Details

#cast(value) ⇒ Array?

Casts value to normalized messages array

Parameters:

  • value (Array, String, Hash, nil)

Returns:

  • (Array, nil)


18
19
20
21
# File 'lib/active_agent/providers/open_router/requests/messages/_types.rb', line 18

def cast(value)
  return nil if value.nil?
  Transforms.normalize_messages(value)
end

#deserialize(value) ⇒ Array?

Parameters:

  • value (Object)

Returns:

  • (Array, nil)


39
40
41
# File 'lib/active_agent/providers/open_router/requests/messages/_types.rb', line 39

def deserialize(value)
  cast(value)
end

#serialize(value) ⇒ Array?

Serializes messages to hash array

Parameters:

  • value (Array, nil)

Returns:

  • (Array, nil)


27
28
29
30
31
32
33
34
35
# File 'lib/active_agent/providers/open_router/requests/messages/_types.rb', line 27

def serialize(value)
  return nil if value.nil?

  # If already serialized as hashes, return as-is
  return value if value.is_a?(Array) && value.all? { |m| m.is_a?(Hash) }

  # Otherwise convert gem objects to hashes
  value.map { |msg| Transforms.gem_to_hash(msg) }
end