Class: A2A::Server::CapabilityBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/a2a/server/agent.rb

Overview

Builder class for capability DSL

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ CapabilityBuilder

Returns a new instance of CapabilityBuilder.



355
356
357
358
# File 'lib/a2a/server/agent.rb', line 355

def initialize(name)
  @name = name
  @attributes = {}
end

Instance Method Details

#async_supported(supported = true) ⇒ Object

Set async support

Parameters:

  • supported (Boolean) (defaults to: true)

    Whether async execution is supported



428
429
430
# File 'lib/a2a/server/agent.rb', line 428

def async_supported(supported = true)
  @attributes[:async_supported] = supported
end

#buildA2A::Protocol::Capability

Build the capability

Returns:



445
446
447
448
449
450
# File 'lib/a2a/server/agent.rb', line 445

def build
  A2A::Protocol::Capability.new(
    name: @name,
    **@attributes
  )
end

#description(desc) ⇒ Object

Set the capability description

Parameters:

  • desc (String)

    The description



372
373
374
# File 'lib/a2a/server/agent.rb', line 372

def description(desc)
  @attributes[:description] = desc
end

#example(example) ⇒ Object

Add an example

Parameters:

  • example (Hash)

    Example with input/output/description



436
437
438
439
# File 'lib/a2a/server/agent.rb', line 436

def example(example)
  @attributes[:examples] ||= []
  @attributes[:examples] << example
end

#input_schema(schema) ⇒ Object

Set the input schema

Parameters:

  • schema (Hash)

    The JSON Schema for input validation



380
381
382
# File 'lib/a2a/server/agent.rb', line 380

def input_schema(schema)
  @attributes[:input_schema] = schema
end

#metadata(meta) ⇒ Object

Set additional metadata

Parameters:

  • meta (Hash)

    Metadata hash



412
413
414
# File 'lib/a2a/server/agent.rb', line 412

def (meta)
  @attributes[:metadata] = meta
end

#method(method_name) ⇒ Object

Set the method name for this capability

Parameters:

  • method_name (String, Symbol)

    The A2A method name



364
365
366
# File 'lib/a2a/server/agent.rb', line 364

def method(method_name)
  @attributes[:method] = method_name.to_s
end

#output_schema(schema) ⇒ Object

Set the output schema

Parameters:

  • schema (Hash)

    The JSON Schema for output validation



388
389
390
# File 'lib/a2a/server/agent.rb', line 388

def output_schema(schema)
  @attributes[:output_schema] = schema
end

#security_requirements(requirements) ⇒ Object

Set security requirements

Parameters:

  • requirements (Array<String>)

    List of required security schemes



404
405
406
# File 'lib/a2a/server/agent.rb', line 404

def security_requirements(requirements)
  @attributes[:security_requirements] = requirements
end

#streaming_supported(supported = true) ⇒ Object

Set streaming support

Parameters:

  • supported (Boolean) (defaults to: true)

    Whether streaming is supported



420
421
422
# File 'lib/a2a/server/agent.rb', line 420

def streaming_supported(supported = true)
  @attributes[:streaming_supported] = supported
end

#tags(tag_list) ⇒ Object

Set capability tags

Parameters:

  • tag_list (Array<String>)

    List of tags



396
397
398
# File 'lib/a2a/server/agent.rb', line 396

def tags(tag_list)
  @attributes[:tags] = tag_list
end