util

package
v1.8.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 28, 2026 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Overview

Copyright 2026 Google LLC Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Index

Constants

View Source
const GDAClientID = "GENAI_TOOLBOX"

GDAClientID is the client ID for Gemini Data Analytics

Variables

This section is empty.

Functions

func AuthTokenClaimsFromContext added in v1.3.0

func AuthTokenClaimsFromContext(ctx context.Context) map[string]any

AuthTokenClaimsFromContext retrieves the auth token claims from context

func ClientIPFromContext added in v1.3.0

func ClientIPFromContext(ctx context.Context) (string, bool)

ClientIPFromContext retrieves the client IP address or returns false if not present

func ConvertNumbers

func ConvertNumbers(data any) (any, error)

ConvertNumbers traverses an interface and converts all json.Number instances to int64 or float64.

func DecodeJSON

func DecodeJSON(r io.Reader, v interface{}) error

DecodeJSON decodes a given reader into an interface using the json decoder.

func EnableDraftSpecsFromContext added in v1.6.0

func EnableDraftSpecsFromContext(ctx context.Context) (bool, bool)

EnableDraftSpecsFromContext retrieves enable draft specs bool from context

func ExtractClientIP added in v1.3.0

func ExtractClientIP(header http.Header) string

ExtractClientIP retrieves the leftmost client IP from X-Forwarded-For or X-Real-IP header

func GetGDAEndpoint added in v1.6.0

func GetGDAEndpoint() string

GetGDAEndpoint returns the Gemini Data Analytics API endpoint, choosing the mTLS endpoint if mTLS is enabled.

func IgnoreUnknownToolsFromContext added in v1.4.0

func IgnoreUnknownToolsFromContext(ctx context.Context) bool

IgnoreUnknownToolsFromContext retrieves the ignore-unknown-tools flag from context

func InstrumentationFromContext

func InstrumentationFromContext(ctx context.Context) (*telemetry.Instrumentation, error)

InstrumentationFromContext retrieves the instrumentation or return an error

func LogPrimitiveDeprecation added in v1.6.0

func LogPrimitiveDeprecation(ctx context.Context, kind string, primitiveType string, migrationStep string) error

LogPrimitiveDeprecation is a helper function to mark a primitive as deprecated.

kind: kind of primitive. E.g. source / tool / authService / etc. primitiveType: the type of primitive being deprecated. E.g. postgres-sql migrationStep: the migration step for this deprecation. E.g. "Please use [Alternative] instead." / "Please remove this from your configuration file."

func LoggerFromContext

func LoggerFromContext(ctx context.Context) (log.Logger, error)

LoggerFromContext retrieves the logger or return an error

func NewGDAClient added in v1.6.0

func NewGDAClient(ctx context.Context, opts ...option.ClientOption) (*http.Client, error)

NewGDAClient returns an HTTP client configured for Gemini Data Analytics. It handles mTLS and authentication if a token source is provided.

func NewStrictDecoder

func NewStrictDecoder(v interface{}) (*yaml.Decoder, error)

func SQLCommenterEnabledFromContext added in v1.3.0

func SQLCommenterEnabledFromContext(ctx context.Context) bool

SQLCommenterEnabledFromContext retrieves the sql-commenter-enabled flag from context

func SnakeFromCamelCase added in v1.7.0

func SnakeFromCamelCase(s string) string

SnakeFromCamelCase converts a camelCase string to snake_case.

func ToolboxVersionFromContext added in v1.3.0

func ToolboxVersionFromContext(ctx context.Context) (string, error)

ToolboxVersionFromContext retrieves the toolbox version or return an error

func UrlParamsFromContext added in v1.5.0

func UrlParamsFromContext(ctx context.Context) (map[string]string, bool)

UrlParamsFromContext retrieves URL parameters from context

func UserAgentFromContext

func UserAgentFromContext(ctx context.Context) (string, error)

UserAgentFromContext retrieves the user agent or return an error

func WithAuthTokenClaims added in v1.3.0

func WithAuthTokenClaims(ctx context.Context, claims map[string]any) context.Context

WithAuthTokenClaims adds auth token claims into the context as a value

func WithClientIP added in v1.3.0

func WithClientIP(ctx context.Context, clientIP string) context.Context

WithClientIP adds a client IP address into the context as a value

func WithEnableDraftSpecs added in v1.6.0

func WithEnableDraftSpecs(ctx context.Context, enableDraft bool) context.Context

WithEnableDraftSpecs adds enable draft specs bool into the context as a value

func WithGenAIMetricAttrs

func WithGenAIMetricAttrs(ctx context.Context, attrs *GenAIMetricAttrs) context.Context

WithGenAIMetricAttrs adds GenAIMetricAttrs to the context

func WithIgnoreUnknownTools added in v1.4.0

func WithIgnoreUnknownTools(ctx context.Context, ignore bool) context.Context

WithIgnoreUnknownTools adds the ignore-unknown-tools flag to the context

func WithInstrumentation

func WithInstrumentation(ctx context.Context, instrumentation *telemetry.Instrumentation) context.Context

WithInstrumentation adds an instrumentation into the context as a value

func WithLogger

func WithLogger(ctx context.Context, logger log.Logger) context.Context

WithLogger adds a logger into the context as a value

func WithSQLCommenterEnabled added in v1.3.0

func WithSQLCommenterEnabled(ctx context.Context, enabled bool) context.Context

WithSQLCommenterEnabled adds the sql-commenter-enabled flag to the context

func WithTelemetryAttributes added in v1.3.0

func WithTelemetryAttributes(ctx context.Context, attrs *TelemetryAttributes) context.Context

WithTelemetryAttributes adds TelemetryAttributes to the context

func WithToolboxVersionKey added in v1.3.0

func WithToolboxVersionKey(ctx context.Context, versionString string) context.Context

WithToolboxVersionKey adds a toolbox version into the context as a value

func WithUrlParams added in v1.5.0

func WithUrlParams(ctx context.Context, params map[string]string) context.Context

WithUrlParams adds URL parameters into the context as a value

func WithUserAgent

func WithUserAgent(ctx context.Context, versionString string) context.Context

WithUserAgent adds a user agent into the context as a value

Types

type AgentError

type AgentError struct {
	Msg   string
	Cause error
}

Agent Errors return 200 to the sender

func NewAgentError

func NewAgentError(msg string, cause error) *AgentError

func (*AgentError) Category

func (e *AgentError) Category() ErrorCategory

func (*AgentError) Error

func (e *AgentError) Error() string

func (*AgentError) Unwrap

func (e *AgentError) Unwrap() error

type ClientServerError

type ClientServerError struct {
	Msg   string
	Code  int
	Cause error
}

ClientServerError returns 4XX/5XX error code

func NewClientServerError

func NewClientServerError(msg string, code int, cause error) *ClientServerError

func (*ClientServerError) Category

func (e *ClientServerError) Category() ErrorCategory

func (*ClientServerError) Error

func (e *ClientServerError) Error() string

func (*ClientServerError) Unwrap

func (e *ClientServerError) Unwrap() error

type DelayedUnmarshaler

type DelayedUnmarshaler struct {
	// contains filtered or unexported fields
}

DelayedUnmarshaler is struct that saves the provided unmarshal function passed to UnmarshalYAML so it can be re-used later once the target interface is known.

func (*DelayedUnmarshaler) Unmarshal

func (d *DelayedUnmarshaler) Unmarshal(v interface{}) error

func (*DelayedUnmarshaler) UnmarshalYAML

func (d *DelayedUnmarshaler) UnmarshalYAML(ctx context.Context, unmarshal func(interface{}) error) error

type ErrorCategory

type ErrorCategory string
const (
	CategoryAgent  ErrorCategory = "AGENT_ERROR"
	CategoryServer ErrorCategory = "SERVER_ERROR"
)

type GenAIMetricAttrs

type GenAIMetricAttrs struct {
	OperationName          string
	ToolName               string
	PromptName             string
	GroupName              string
	NetworkProtocolName    string
	NetworkProtocolVersion string
}

GenAIMetricAttrs holds gen_ai and network attributes for metrics

func GenAIMetricAttrsFromContext

func GenAIMetricAttrsFromContext(ctx context.Context) *GenAIMetricAttrs

GenAIMetricAttrsFromContext retrieves GenAIMetricAttrs from context

type TelemetryAttributes added in v1.3.0

type TelemetryAttributes struct {
	ClientName    string
	ClientVersion string
	ClientModel   string
	ClientUserID  string
	ClientAgentID string
}

TelemetryAttributes holds client-provided telemetry metadata from _meta["dev.mcp-toolbox/telemetry"].

func TelemetryAttributesFromContext added in v1.3.0

func TelemetryAttributesFromContext(ctx context.Context) *TelemetryAttributes

TelemetryAttributesFromContext retrieves TelemetryAttributes from context

type ToolboxError

type ToolboxError interface {
	error
	Category() ErrorCategory
	Error() string
	Unwrap() error
}

ToolboxError is the interface all custom errors must satisfy

func ProcessGcpError

func ProcessGcpError(err error) ToolboxError

ProcessGcpError catches auth related errors in GCP requests results and return 401/403 error codes Returns AgentError for all other errors

func ProcessGeneralError

func ProcessGeneralError(err error) ToolboxError

ProcessGeneralError handles generic errors by inspecting the error string for common status code patterns.

type UserAgentRoundTripper

type UserAgentRoundTripper struct {
	// contains filtered or unexported fields
}

func NewUserAgentRoundTripper

func NewUserAgentRoundTripper(ua string, next http.RoundTripper) *UserAgentRoundTripper

func (*UserAgentRoundTripper) RoundTrip

func (rt *UserAgentRoundTripper) RoundTrip(req *http.Request) (*http.Response, error)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL