parameters

package
v0.27.0 Latest Latest
Warning

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

Go to latest
Published: Feb 13, 2026 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	TypeString = "string"
	TypeInt    = "integer"
	TypeFloat  = "float"
	TypeBool   = "boolean"
	TypeArray  = "array"
	TypeMap    = "map"
)

Variables

This section is empty.

Functions

func CheckDuplicateParameters

func CheckDuplicateParameters(ps Parameters) error

CheckDuplicateParameters verify there are no duplicate parameter names

func CheckParamRequired

func CheckParamRequired(required bool, defaultV any) bool

CheckParamRequired checks if a parameter is required based on the required and default field.

func ConvertAnySliceToTyped

func ConvertAnySliceToTyped(s []any, itemType string) (any, error)

ConvertAnySliceToTyped a []any to typed slice ([]string, []int, []float etc.)

func ConvertArrayParamToString

func ConvertArrayParamToString(param any) (string, error)

helper function to convert a string array parameter to a comma separated string

func MatchStringOrRegex

func MatchStringOrRegex(input, target any) bool

MatchStringOrRegex checks if the input matches the target

func PopulateTemplate

func PopulateTemplate(templateName, templateString string, data map[string]any) (string, error)

PopulateTemplate populate a Go template with no custom formatters

func PopulateTemplateWithFunc

func PopulateTemplateWithFunc(templateName, templateString string, data map[string]any, funcMap template.FuncMap) (string, error)

PopulateTemplateWithFunc populate a Go template with provided functions

func PopulateTemplateWithJSON

func PopulateTemplateWithJSON(templateName, templateString string, data map[string]any) (string, error)

PopulateTemplateWithJSON populate a Go template with a custom `json` array formatter

func ProcessParameters

func ProcessParameters(templateParams Parameters, params Parameters) (Parameters, []ParameterManifest, error)

ProcessParameters concatenate templateParameters and parameters from a tool. It returns a list of concatenated parameters, concatenated Toolbox manifest, and concatenated MCP Manifest.

func ResolveTemplateParams

func ResolveTemplateParams(templateParams Parameters, originalStatement string, paramsMap map[string]any) (string, error)

Types

type ArrayParameter

type ArrayParameter struct {
	CommonParameter `yaml:",inline"`
	Default         *[]any    `yaml:"default"`
	Items           Parameter `yaml:"items"`
}

ArrayParameter is a parameter representing the "array" type.

func NewArrayParameter

func NewArrayParameter(name string, desc string, items Parameter) *ArrayParameter

NewArrayParameter is a convenience function for initializing a ArrayParameter.

func NewArrayParameterWithAllowedValues

func NewArrayParameterWithAllowedValues(name string, desc string, allowedValues []any, items Parameter) *ArrayParameter

NewArrayParameterWithAllowedValues is a convenience function for initializing a ArrayParameter with a list of allowed values.

func NewArrayParameterWithAuth

func NewArrayParameterWithAuth(name string, desc string, items Parameter, authServices []ParamAuthService) *ArrayParameter

NewArrayParameterWithAuth is a convenience function for initializing a ArrayParameter with a list of ParamAuthService.

func NewArrayParameterWithDefault

func NewArrayParameterWithDefault(name string, defaultV []any, desc string, items Parameter) *ArrayParameter

NewArrayParameterWithDefault is a convenience function for initializing a ArrayParameter with default value.

func NewArrayParameterWithExcludedValues

func NewArrayParameterWithExcludedValues(name string, desc string, excludedValues []any, items Parameter) *ArrayParameter

NewArrayParameterWithExcludedValues is a convenience function for initializing a ArrayParameter with a list of excluded values.

func NewArrayParameterWithRequired

func NewArrayParameterWithRequired(name string, desc string, required bool, items Parameter) *ArrayParameter

NewArrayParameterWithRequired is a convenience function for initializing a ArrayParameter with default value.

func (*ArrayParameter) GetAuthServices

func (p *ArrayParameter) GetAuthServices() []ParamAuthService

func (*ArrayParameter) GetDefault

func (p *ArrayParameter) GetDefault() any

func (*ArrayParameter) GetItems

func (p *ArrayParameter) GetItems() Parameter

func (*ArrayParameter) IsAllowedValues

func (p *ArrayParameter) IsAllowedValues(v []any) bool

func (*ArrayParameter) IsExcludedValues

func (p *ArrayParameter) IsExcludedValues(v []any) bool

func (*ArrayParameter) Manifest

func (p *ArrayParameter) Manifest() ParameterManifest

Manifest returns the manifest for the ArrayParameter.

func (*ArrayParameter) McpManifest

func (p *ArrayParameter) McpManifest() (ParameterMcpManifest, []string)

McpManifest returns the MCP manifest for the ArrayParameter.

func (*ArrayParameter) Parse

func (p *ArrayParameter) Parse(v any) (any, error)

func (*ArrayParameter) UnmarshalYAML

func (p *ArrayParameter) UnmarshalYAML(ctx context.Context, unmarshal func(interface{}) error) error

type BooleanParameter

type BooleanParameter struct {
	CommonParameter `yaml:",inline"`
	Default         *bool `yaml:"default"`
}

BooleanParameter is a parameter representing the "boolean" type.

func NewBooleanParameter

func NewBooleanParameter(name string, desc string) *BooleanParameter

NewBooleanParameter is a convenience function for initializing a BooleanParameter.

func NewBooleanParameterWithAllowedValues

func NewBooleanParameterWithAllowedValues(name string, desc string, allowedValues []any) *BooleanParameter

NewBooleanParameterWithAllowedValues is a convenience function for initializing a BooleanParameter with a list of allowed values.

func NewBooleanParameterWithAuth

func NewBooleanParameterWithAuth(name string, desc string, authServices []ParamAuthService) *BooleanParameter

NewBooleanParameterWithAuth is a convenience function for initializing a BooleanParameter with a list of ParamAuthService.

func NewBooleanParameterWithDefault

func NewBooleanParameterWithDefault(name string, defaultV bool, desc string) *BooleanParameter

NewBooleanParameterWithDefault is a convenience function for initializing a BooleanParameter with default value.

func NewBooleanParameterWithExcludedValues

func NewBooleanParameterWithExcludedValues(name string, desc string, excludedValues []any) *BooleanParameter

NewBooleanParameterWithExcludedValues is a convenience function for initializing a BooleanParameter with a list of excluded values.

func NewBooleanParameterWithRequired

func NewBooleanParameterWithRequired(name string, desc string, required bool) *BooleanParameter

NewBooleanParameterWithRequired is a convenience function for initializing a BooleanParameter.

func (*BooleanParameter) GetAuthServices

func (p *BooleanParameter) GetAuthServices() []ParamAuthService

func (*BooleanParameter) GetDefault

func (p *BooleanParameter) GetDefault() any

func (*BooleanParameter) Manifest

func (p *BooleanParameter) Manifest() ParameterManifest

Manifest returns the manifest for the BooleanParameter.

func (*BooleanParameter) Parse

func (p *BooleanParameter) Parse(v any) (any, error)

type CommonParameter

type CommonParameter struct {
	Name           string             `yaml:"name" validate:"required"`
	Type           string             `yaml:"type" validate:"required"`
	Desc           string             `yaml:"description" validate:"required"`
	Required       *bool              `yaml:"required"`
	AllowedValues  []any              `yaml:"allowedValues"`
	ExcludedValues []any              `yaml:"excludedValues"`
	AuthServices   []ParamAuthService `yaml:"authServices"`
	AuthSources    []ParamAuthService `yaml:"authSources"` // Deprecated: Kept for compatibility.
	EmbeddedBy     string             `yaml:"embeddedBy"`
	ValueFromParam string             `yaml:"valueFromParam"`
}

CommonParameter are default fields that are emebdding in most Parameter implementations. Embedding this stuct will give the object Name() and Type() functions.

func (*CommonParameter) GetAllowedValues

func (p *CommonParameter) GetAllowedValues() []any

GetAllowedValues returns the allowed values for the Parameter.

func (*CommonParameter) GetEmbeddedBy added in v0.25.0

func (p *CommonParameter) GetEmbeddedBy() string

GetEmbeddedBy returns the embedding model name for the Parameter.

func (*CommonParameter) GetExcludedValues

func (p *CommonParameter) GetExcludedValues() []any

GetExcludedValues returns the excluded values for the Parameter.

func (*CommonParameter) GetName

func (p *CommonParameter) GetName() string

GetName returns the name specified for the Parameter.

func (*CommonParameter) GetRequired

func (p *CommonParameter) GetRequired() bool

GetRequired returns the type specified for the Parameter.

func (*CommonParameter) GetType

func (p *CommonParameter) GetType() string

GetType returns the type specified for the Parameter.

func (*CommonParameter) GetValueFromParam added in v0.26.0

func (p *CommonParameter) GetValueFromParam() string

GetValueFromParam returns the param value to copy from.

func (*CommonParameter) IsAllowedValues

func (p *CommonParameter) IsAllowedValues(v any) bool

IsAllowedValues checks if the value is allowed.

func (*CommonParameter) IsExcludedValues

func (p *CommonParameter) IsExcludedValues(v any) bool

IsExcludedValues checks if the value is allowed.

func (*CommonParameter) McpManifest

func (p *CommonParameter) McpManifest() (ParameterMcpManifest, []string)

McpManifest returns the MCP manifest for the Parameter.

type FloatParameter

type FloatParameter struct {
	CommonParameter `yaml:",inline"`
	Default         *float64 `yaml:"default"`
	MinValue        *float64 `yaml:"minValue"`
	MaxValue        *float64 `yaml:"maxValue"`
}

FloatParameter is a parameter representing the "float" type.

func NewFloatParameter

func NewFloatParameter(name string, desc string) *FloatParameter

NewFloatParameter is a convenience function for initializing a FloatParameter.

func NewFloatParameterWithAllowedValues

func NewFloatParameterWithAllowedValues(name string, desc string, allowedValues []any) *FloatParameter

NewFloatParameterWithAllowedValues is a convenience function for initializing a FloatParameter with a list of allowed values.

func NewFloatParameterWithAuth

func NewFloatParameterWithAuth(name string, desc string, authServices []ParamAuthService) *FloatParameter

NewFloatParameterWithAuth is a convenience function for initializing a FloatParameter with a list of ParamAuthService.

func NewFloatParameterWithDefault

func NewFloatParameterWithDefault(name string, defaultV float64, desc string) *FloatParameter

NewFloatParameterWithDefault is a convenience function for initializing a FloatParameter with default value.

func NewFloatParameterWithExcludedValues

func NewFloatParameterWithExcludedValues(name string, desc string, excludedValues []any) *FloatParameter

NewFloatParameterWithExcludedValues is a convenience function for initializing a FloatParameter with a list of excluded values.

func NewFloatParameterWithRange

func NewFloatParameterWithRange(name string, desc string, minValue *float64, maxValue *float64) *FloatParameter

NewFloatParameterWithRange is a convenience function for initializing a FloatParameter.

func NewFloatParameterWithRequired

func NewFloatParameterWithRequired(name string, desc string, required bool) *FloatParameter

NewFloatParameterWithRequired is a convenience function for initializing a FloatParameter.

func (*FloatParameter) GetAuthServices

func (p *FloatParameter) GetAuthServices() []ParamAuthService

func (*FloatParameter) GetDefault

func (p *FloatParameter) GetDefault() any

func (*FloatParameter) Manifest

func (p *FloatParameter) Manifest() ParameterManifest

Manifest returns the manifest for the FloatParameter.

func (*FloatParameter) McpManifest

func (p *FloatParameter) McpManifest() (ParameterMcpManifest, []string)

McpManifest returns the MCP manifest for the FloatParameter. json schema only allow numeric types of 'integer' and 'number'.

func (*FloatParameter) Parse

func (p *FloatParameter) Parse(v any) (any, error)

type IntParameter

type IntParameter struct {
	CommonParameter `yaml:",inline"`
	Default         *int `yaml:"default"`
	MinValue        *int `yaml:"minValue"`
	MaxValue        *int `yaml:"maxValue"`
}

IntParameter is a parameter representing the "int" type.

func NewIntParameter

func NewIntParameter(name string, desc string) *IntParameter

NewIntParameter is a convenience function for initializing a IntParameter.

func NewIntParameterWithAllowedValues

func NewIntParameterWithAllowedValues(name string, desc string, allowedValues []any) *IntParameter

NewIntParameterWithAllowedValues is a convenience function for initializing a IntParameter with a list of allowedValues

func NewIntParameterWithAuth

func NewIntParameterWithAuth(name string, desc string, authServices []ParamAuthService) *IntParameter

NewIntParameterWithAuth is a convenience function for initializing a IntParameter with a list of ParamAuthService.

func NewIntParameterWithDefault

func NewIntParameterWithDefault(name string, defaultV int, desc string) *IntParameter

NewIntParameterWithDefault is a convenience function for initializing a IntParameter with default value.

func NewIntParameterWithExcludedValues

func NewIntParameterWithExcludedValues(name string, desc string, excludedValues []any) *IntParameter

NewIntParameterWithExcludedValues is a convenience function for initializing a IntParameter with a list of excludedValues

func NewIntParameterWithRange

func NewIntParameterWithRange(name string, desc string, minValue *int, maxValue *int) *IntParameter

NewIntParameterWithRange is a convenience function for initializing a IntParameter.

func NewIntParameterWithRequired

func NewIntParameterWithRequired(name string, desc string, required bool) *IntParameter

NewIntParameterWithRequired is a convenience function for initializing a IntParameter.

func (*IntParameter) GetAuthServices

func (p *IntParameter) GetAuthServices() []ParamAuthService

func (*IntParameter) GetDefault

func (p *IntParameter) GetDefault() any

func (*IntParameter) Manifest

func (p *IntParameter) Manifest() ParameterManifest

Manifest returns the manifest for the IntParameter.

func (*IntParameter) Parse

func (p *IntParameter) Parse(v any) (any, error)

type MapParameter

type MapParameter struct {
	CommonParameter `yaml:",inline"`
	Default         *map[string]any `yaml:"default,omitempty"`
	ValueType       string          `yaml:"valueType,omitempty"`
}

MapParameter is a parameter representing a map with string keys. If ValueType is specified (e.g., "string"), values are validated against that type. If ValueType is empty, it is treated as a generic map[string]any.

func NewMapParameter

func NewMapParameter(name string, desc string, valueType string) *MapParameter

NewMapParameter is a convenience function for initializing a MapParameter.

func NewMapParameterWithAllowedValues

func NewMapParameterWithAllowedValues(name string, desc string, allowedValues []any, valueType string) *MapParameter

NewMapParameterWithAllowedValues is a convenience function for initializing a MapParameter with a list of allowed values.

func NewMapParameterWithAuth

func NewMapParameterWithAuth(name string, desc string, valueType string, authServices []ParamAuthService) *MapParameter

NewMapParameterWithAuth is a convenience function for initializing a MapParameter with auth services.

func NewMapParameterWithDefault

func NewMapParameterWithDefault(name string, defaultV map[string]any, desc string, valueType string) *MapParameter

NewMapParameterWithDefault is a convenience function for initializing a MapParameter with a default value.

func NewMapParameterWithExcludedValues

func NewMapParameterWithExcludedValues(name string, desc string, excludedValues []any, valueType string) *MapParameter

NewMapParameterWithExcludedValues is a convenience function for initializing a MapParameter with a list of excluded values.

func NewMapParameterWithRequired

func NewMapParameterWithRequired(name string, desc string, required bool, valueType string) *MapParameter

NewMapParameterWithRequired is a convenience function for initializing a MapParameter as required.

func (*MapParameter) GetAuthServices

func (p *MapParameter) GetAuthServices() []ParamAuthService

func (*MapParameter) GetDefault

func (p *MapParameter) GetDefault() any

func (*MapParameter) GetValueType

func (p *MapParameter) GetValueType() string

func (*MapParameter) IsAllowedValues

func (p *MapParameter) IsAllowedValues(v map[string]any) bool

func (*MapParameter) IsExcludedValues

func (p *MapParameter) IsExcludedValues(v map[string]any) bool

func (*MapParameter) Manifest

func (p *MapParameter) Manifest() ParameterManifest

Manifest returns the manifest for the MapParameter.

func (*MapParameter) McpManifest

func (p *MapParameter) McpManifest() (ParameterMcpManifest, []string)

McpManifest returns the MCP manifest for the MapParameter.

func (*MapParameter) Parse

func (p *MapParameter) Parse(v any) (any, error)

Parse validates and parses an incoming value for the map parameter.

func (*MapParameter) UnmarshalYAML

func (p *MapParameter) UnmarshalYAML(ctx context.Context, unmarshal func(interface{}) error) error

UnmarshalYAML handles parsing the MapParameter from YAML input.

type McpToolsSchema

type McpToolsSchema struct {
	Type       string                          `json:"type"`
	Properties map[string]ParameterMcpManifest `json:"properties"`
	Required   []string                        `json:"required"`
}

McpToolsSchema is the representation of input schema for McpManifest.

type ParamAuthService

type ParamAuthService struct {
	Name  string `yaml:"name"`
	Field string `yaml:"field"`
}

type ParamValue

type ParamValue struct {
	Name  string
	Value any
}

ParamValue represents the parameter's name and value.

type ParamValues

type ParamValues []ParamValue

ParamValues is an ordered list of ParamValue

func EmbedParams added in v0.25.0

func EmbedParams(ctx context.Context, ps Parameters, paramValues ParamValues, embeddingModelsMap map[string]embeddingmodels.EmbeddingModel, formatter embeddingmodels.VectorFormatter) (ParamValues, error)

func GetParams

func GetParams(params Parameters, paramValuesMap map[string]any) (ParamValues, error)

GetParams return the ParamValues that are associated with the Parameters.

func ParseParams

func ParseParams(ps Parameters, data map[string]any, claimsMap map[string]map[string]any) (ParamValues, error)

ParseParams is a helper function for parsing Parameters from an arbitraryJSON object.

func (ParamValues) AsMap

func (p ParamValues) AsMap() map[string]interface{}

AsMap returns a map of ParamValue's names to values.

func (ParamValues) AsMapByOrderedKeys

func (p ParamValues) AsMapByOrderedKeys() map[string]interface{}

AsMapByOrderedKeys returns a map of a key's position to it's value, as necessary for Spanner PSQL. Example { $1 -> "value1", $2 -> "value2" }

func (ParamValues) AsMapWithDollarPrefix

func (p ParamValues) AsMapWithDollarPrefix() map[string]interface{}

AsMapWithDollarPrefix ensures all keys are prefixed with a dollar sign for Dgraph. Example: Input: {"role": "admin", "$age": 30} Output: {"$role": "admin", "$age": 30}

func (ParamValues) AsSlice

func (p ParamValues) AsSlice() []any

AsSlice returns a slice of the Param's values (in order).

type Parameter

type Parameter interface {
	// Note: It's typically not idiomatic to include "Get" in the function name,
	// but this is done to differentiate it from the fields in CommonParameter.
	GetName() string
	GetType() string
	GetDefault() any
	GetRequired() bool
	GetAuthServices() []ParamAuthService
	GetEmbeddedBy() string
	GetValueFromParam() string
	Parse(any) (any, error)
	Manifest() ParameterManifest
	McpManifest() (ParameterMcpManifest, []string)
}

func ParseParameter

func ParseParameter(ctx context.Context, p map[string]any, paramType string) (Parameter, error)

ParseParameter parses a raw map into a Parameter object based on its "type" field.

type ParameterManifest

type ParameterManifest struct {
	Name                 string             `json:"name"`
	Type                 string             `json:"type"`
	Required             bool               `json:"required"`
	Description          string             `json:"description"`
	AuthServices         []string           `json:"authSources"`
	Items                *ParameterManifest `json:"items,omitempty"`
	Default              any                `json:"default,omitempty"`
	AdditionalProperties any                `json:"additionalProperties,omitempty"`
	EmbeddedBy           string             `json:"embeddedBy,omitempty"`
	ValueFromParam       string             `json:"valueFromParam,omitempty"`
}

ParameterManifest represents parameters when served as part of a ToolManifest.

type ParameterMcpManifest

type ParameterMcpManifest struct {
	Type                 string                `json:"type"`
	Description          string                `json:"description"`
	Items                *ParameterMcpManifest `json:"items,omitempty"`
	Default              any                   `json:"default,omitempty"`
	AdditionalProperties any                   `json:"additionalProperties,omitempty"`
}

ParameterMcpManifest represents properties when served as part of a ToolMcpManifest.

type Parameters

type Parameters []Parameter

Parameters is a type used to allow unmarshal a list of parameters

func (Parameters) Manifest

func (ps Parameters) Manifest() []ParameterManifest

func (Parameters) McpManifest

func (ps Parameters) McpManifest() (McpToolsSchema, map[string][]string)

func (*Parameters) UnmarshalYAML

func (c *Parameters) UnmarshalYAML(ctx context.Context, unmarshal func(interface{}) error) error

type ParseTypeError

type ParseTypeError struct {
	Name  string
	Type  string
	Value any
}

ParseTypeError is a custom error for incorrectly typed Parameters.

func (ParseTypeError) Error

func (e ParseTypeError) Error() string

type StringParameter

type StringParameter struct {
	CommonParameter `yaml:",inline"`
	Default         *string `yaml:"default"`
	Escape          *string `yaml:"escape"`
}

StringParameter is a parameter representing the "string" type.

func NewStringParameter

func NewStringParameter(name string, desc string) *StringParameter

NewStringParameter is a convenience function for initializing a StringParameter.

func NewStringParameterWithAllowedValues

func NewStringParameterWithAllowedValues(name string, desc string, allowedValues []any) *StringParameter

NewStringParameterWithAllowedValues is a convenience function for initializing a StringParameter with a list of allowedValues

func NewStringParameterWithAuth

func NewStringParameterWithAuth(name string, desc string, authServices []ParamAuthService) *StringParameter

NewStringParameterWithAuth is a convenience function for initializing a StringParameter with a list of ParamAuthService.

func NewStringParameterWithDefault

func NewStringParameterWithDefault(name string, defaultV, desc string) *StringParameter

NewStringParameterWithDefault is a convenience function for initializing a StringParameter with default value.

func NewStringParameterWithEscape

func NewStringParameterWithEscape(name, desc, escape string) *StringParameter

NewStringParameterWithEscape is a convenience function for initializing a StringParameter.

func NewStringParameterWithExcludedValues

func NewStringParameterWithExcludedValues(name string, desc string, excludedValues []any) *StringParameter

NewStringParameterWithExcludedValues is a convenience function for initializing a StringParameter with a list of excludedValues

func NewStringParameterWithRequired

func NewStringParameterWithRequired(name string, desc string, required bool) *StringParameter

NewStringParameterWithRequired is a convenience function for initializing a StringParameter.

func (*StringParameter) GetAuthServices

func (p *StringParameter) GetAuthServices() []ParamAuthService

func (*StringParameter) GetDefault

func (p *StringParameter) GetDefault() any

func (*StringParameter) Manifest

func (p *StringParameter) Manifest() ParameterManifest

Manifest returns the manifest for the StringParameter.

func (*StringParameter) Parse

func (p *StringParameter) Parse(v any) (any, error)

Parse casts the value "v" as a "string".

Jump to

Keyboard shortcuts

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