Module: Legion::Extensions::Llm::Canonical

Defined in:
lib/legion/extensions/llm/canonical.rb,
lib/legion/extensions/llm/canonical/chunk.rb,
lib/legion/extensions/llm/canonical/usage.rb,
lib/legion/extensions/llm/canonical/params.rb,
lib/legion/extensions/llm/canonical/message.rb,
lib/legion/extensions/llm/canonical/request.rb,
lib/legion/extensions/llm/canonical/response.rb,
lib/legion/extensions/llm/canonical/thinking.rb,
lib/legion/extensions/llm/canonical/tool_call.rb,
lib/legion/extensions/llm/canonical/content_block.rb,
lib/legion/extensions/llm/canonical/tool_definition.rb

Overview

rubocop:disable Style/Documentation – module doc is in canonical.rb entry point

Defined Under Namespace

Classes: Chunk, ContentBlock, Message, Params, Request, Response, Thinking, ThinkingConfig, ToolCall, ToolDefinition, Usage

Constant Summary collapse

CONTRACT_VERSION =
'1.0.0'
TYPES =

Available canonical types.

%i[
  Thinking Usage Params ContentBlock
  ToolDefinition ToolCall Message
  Request Response Chunk
].freeze
TOOL_NAME_MAX_LENGTH =
64

Class Method Summary collapse

Class Method Details

.type?(name) ⇒ Boolean

Check if a given constant name is a registered canonical type.

Returns:

  • (Boolean)


42
43
44
# File 'lib/legion/extensions/llm/canonical.rb', line 42

def type?(name)
  TYPES.include?(name.to_sym)
end

.typesObject

List all canonical type classes.



37
38
39
# File 'lib/legion/extensions/llm/canonical.rb', line 37

def types
  TYPES.map { |name| const_get(name) }
end