Class: AgentHarness::Extensions::Adapters::SkillExtension

Inherits:
Base
  • Object
show all
Includes:
DeepDupable
Defined in:
lib/agent_harness/extensions.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#on_message_after, #on_message_before, #on_tools_available, #unsupported_features

Constructor Details

#initialize(name:, source_path:, description: nil, version: nil, tools: [], system_prompt_additions: [], mcp_servers: [], required_provider_capabilities: []) ⇒ SkillExtension

Returns a new instance of SkillExtension.



545
546
547
548
549
550
551
552
553
554
555
# File 'lib/agent_harness/extensions.rb', line 545

def initialize(name:, source_path:, description: nil, version: nil, tools: [],
  system_prompt_additions: [], mcp_servers: [], required_provider_capabilities: [])
  @name = name.to_s.strip.gsub(/[^a-zA-Z0-9]+/, "_").gsub(/\A_+|_+\z/, "").downcase.to_sym
  @description = description
  @version = version
  @tools = tools.freeze
  @system_prompt_additions = system_prompt_additions.freeze
  @mcp_servers = mcp_servers.freeze
  @required_provider_capabilities = required_provider_capabilities.freeze
  @source_path = source_path
end

Instance Attribute Details

#descriptionObject (readonly)

Returns the value of attribute description.



543
544
545
# File 'lib/agent_harness/extensions.rb', line 543

def description
  @description
end

#nameObject (readonly)

Returns the value of attribute name.



543
544
545
# File 'lib/agent_harness/extensions.rb', line 543

def name
  @name
end

#source_pathObject (readonly)

Returns the value of attribute source_path.



543
544
545
# File 'lib/agent_harness/extensions.rb', line 543

def source_path
  @source_path
end

#versionObject (readonly)

Returns the value of attribute version.



543
544
545
# File 'lib/agent_harness/extensions.rb', line 543

def version
  @version
end

Instance Method Details

#mcp_serversObject



561
562
563
# File 'lib/agent_harness/extensions.rb', line 561

def mcp_servers
  @mcp_servers.map { |server| deep_dup(server) }
end

#required_provider_capabilitiesObject



569
570
571
572
573
574
# File 'lib/agent_harness/extensions.rb', line 569

def required_provider_capabilities
  inferred = []
  inferred << :tool_use if @tools.any?
  inferred << :mcp if @mcp_servers.any?
  (@required_provider_capabilities + inferred).uniq
end

#system_prompt_additionsObject



565
566
567
# File 'lib/agent_harness/extensions.rb', line 565

def system_prompt_additions
  @system_prompt_additions.dup
end

#toolsObject



557
558
559
# File 'lib/agent_harness/extensions.rb', line 557

def tools
  @tools.map(&:dup)
end