Module: AgentC::Schema

Defined in:
lib/agent_c/schema.rb

Defined Under Namespace

Classes: AnyOneOf, ErrorSchema

Class Method Summary collapse

Class Method Details

.result(schema: nil) ⇒ Object



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/agent_c/schema.rb', line 56

def self.result(schema: nil, &)
  # Create the success schema
  success_schema = (
    if schema.nil?
      Class.new(RubyLLM::Schema) do
        string(
          :status,
          enum: ["success"],
        )

        instance_exec(&) if block_given?
      end
    elsif schema.respond_to?(:call)
      Class.new(RubyLLM::Schema) do
        string(
          :status,
          enum: ["success"],
        )

        instance_exec(&schema)
      end
    else
      schema
    end
  )

  AnyOneOf.new(success_schema, ErrorSchema)
end