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/strict.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/tool_schema.rb,
lib/legion/extensions/llm/canonical/content_block.rb,
lib/legion/extensions/llm/canonical/thinking_config.rb,
lib/legion/extensions/llm/canonical/tool_definition.rb

Overview

-- required for Data.define block scope

Defined Under Namespace

Modules: Strict, ToolSchema Classes: Chunk, ContentBlock, Message, Params, Request, Response, Thinking, ToolCall, ToolDefinition, Usage

Constant Summary collapse

CONTRACT_VERSION =
'1.0.0'
TYPES =

Available canonical types (the frozen 04 ยง1 inventory).

%i[
  Message ContentBlock ToolCall ToolDefinition ToolSchema
  Params Thinking Thinking::Config
  Request Response Chunk Usage
].freeze
OBJECT_SCHEMA_KEYWORDS =
%i[properties required additionalProperties].freeze
COMPOSITE_SCHEMA_KEYWORDS =
%i[oneOf anyOf allOf enum $ref $defs definitions].freeze

Class Method Summary collapse

Class Method Details

.type?(name) ⇒ Boolean

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

Returns:

  • (Boolean)


45
46
47
# File 'lib/legion/extensions/llm/canonical.rb', line 45

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

.typesObject

List all canonical type classes.



40
41
42
# File 'lib/legion/extensions/llm/canonical.rb', line 40

def types
  TYPES.map { |name| name.to_s.split('::').reduce(self) { |mod, part| mod.const_get(part) } }
end