Documentation
¶
Index ¶
- func ActorHeadersAsAnthropicOpts(actor *context.Actor) []ant_option.RequestOption
- func ActorHeadersAsOpenAIOpts(actor *context.Actor) []oai_option.RequestOption
- func ActorIDHeader() string
- func ActorMetadataHeader(name string) string
- func BuildUpstreamHeaders(sdkHeader http.Header, clientHeaders http.Header, authHeaderName string) http.Header
- func IsActorHeader(name string) bool
- func PrepareClientHeaders(clientHeaders http.Header) http.Header
- type Interceptor
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ActorHeadersAsAnthropicOpts ¶
func ActorHeadersAsAnthropicOpts(actor *context.Actor) []ant_option.RequestOption
ActorHeadersAsAnthropicOpts produces a slice of headers using Anthropic's RequestOption type.
func ActorHeadersAsOpenAIOpts ¶
func ActorHeadersAsOpenAIOpts(actor *context.Actor) []oai_option.RequestOption
ActorHeadersAsOpenAIOpts produces a slice of headers using OpenAI's RequestOption type.
func ActorIDHeader ¶
func ActorIDHeader() string
func ActorMetadataHeader ¶
func BuildUpstreamHeaders ¶ added in v1.1.0
func BuildUpstreamHeaders(sdkHeader http.Header, clientHeaders http.Header, authHeaderName string) http.Header
BuildUpstreamHeaders produces the header set for an upstream SDK request. It starts from the prepared client headers, then preserves specific headers from the SDK-built request that must not be overwritten.
func IsActorHeader ¶
Types ¶
type Interceptor ¶
type Interceptor interface {
// ID returns the unique identifier for this interception.
ID() uuid.UUID
// Setup injects some required dependencies. This MUST be called before using the interceptor
// to process requests.
Setup(logger slog.Logger, recorder recorder.Recorder, mcpProxy mcp.ServerProxier)
// Model returns the model in use for this [Interceptor].
Model() string
// ProcessRequest handles the HTTP request.
ProcessRequest(w http.ResponseWriter, r *http.Request) error
// Specifies whether an interceptor handles streaming or not.
Streaming() bool
// TraceAttributes returns tracing attributes for this [Interceptor]
TraceAttributes(*http.Request) []attribute.KeyValue
// CorrelatingToolCallID returns the ID of a tool call result submitted
// in the request, if present. This is used to correlate the current
// interception back to the previous interception that issued those tool
// calls. If multiple tool use results are present, we use the last one
// (most recent). Both Anthropic's /v1/messages and OpenAI's /v1/responses
// require that ALL tool results are submitted for tool choices returned
// by the model, so any single tool call ID is sufficient to identify the
// parent interception.
CorrelatingToolCallID() *string
}
Interceptor describes a (potentially) stateful interaction with an AI provider.
Click to show internal directories.
Click to hide internal directories.