Class: A2A::Models::Message

Inherits:
Base
  • Object
show all
Defined in:
lib/simple_a2a/models/message.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#==, attribute, attributes, from_hash, inherited, #to_h, #to_json

Constructor Details

#initialize(**kwargs) ⇒ Message

Returns a new instance of Message.



28
29
30
31
# File 'lib/simple_a2a/models/message.rb', line 28

def initialize(**kwargs)
  kwargs[:message_id] ||= SecureRandom.uuid
  super
end

Class Method Details

.agent(*content) ⇒ Object



19
20
21
# File 'lib/simple_a2a/models/message.rb', line 19

def self.agent(*content)
  new(message_id: SecureRandom.uuid, role: Types::Role::AGENT, parts: build_parts(content))
end

.user(*content) ⇒ Object



15
16
17
# File 'lib/simple_a2a/models/message.rb', line 15

def self.user(*content)
  new(message_id: SecureRandom.uuid, role: Types::Role::USER, parts: build_parts(content))
end

Instance Method Details

#agent?Boolean

Returns:

  • (Boolean)


34
# File 'lib/simple_a2a/models/message.rb', line 34

def agent? = role == Types::Role::AGENT

#text_contentObject



36
37
38
# File 'lib/simple_a2a/models/message.rb', line 36

def text_content
  parts.select(&:text?).map(&:text).join("\n")
end

#user?Boolean

Returns:

  • (Boolean)


33
# File 'lib/simple_a2a/models/message.rb', line 33

def user?  = role == Types::Role::USER

#valid?Boolean

Returns:

  • (Boolean)


40
41
42
# File 'lib/simple_a2a/models/message.rb', line 40

def valid?
  !role.nil? && !parts.nil? && !parts.empty?
end