summaryrefslogtreecommitdiffhomepage
path: root/lib/dispatch/adapter/interface/tool_definition.rb
blob: 4a8ca5a1fb9758f9c7e084987913fadf0039bd7e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# frozen_string_literal: true

module Dispatch
  module Adapter
    # +cache_control+ values:
    #   nil                                — no cache breakpoint (default)
    #   { type: :ephemeral }               — provider default TTL
    #   { type: :ephemeral, ttl: :"5m" }   — short-lived cache
    #   { type: :ephemeral, ttl: :"1h" }   — long-lived cache
    ToolDefinition = Struct.new(
      :name, :description, :parameters, :cache_control,
      keyword_init: true
    ) do
      def initialize(name:, description:, parameters:, cache_control: nil)
        super
      end
    end
  end
end