schema

package
v0.1.9 Latest Latest
Warning

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

Go to latest
Published: Jun 16, 2025 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ParamName = "payload"
)

Variables

This section is empty.

Functions

func GetSchemaType

func GetSchemaType(schemaType pulsar.SchemaType) string

GetSchemaType 返回Schema类型的字符串表示

Types

type AvroConverter

type AvroConverter struct {
	BaseConverter
}

func NewAvroConverter

func NewAvroConverter() *AvroConverter

func (*AvroConverter) SerializeMCPRequestToPulsarPayload

func (c *AvroConverter) SerializeMCPRequestToPulsarPayload(arguments map[string]any, targetPulsarSchemaInfo *cliutils.SchemaInfo) ([]byte, error)

func (*AvroConverter) ToMCPToolInputSchemaProperties

func (c *AvroConverter) ToMCPToolInputSchemaProperties(schemaInfo *cliutils.SchemaInfo) ([]mcp.ToolOption, error)

func (*AvroConverter) ValidateArguments

func (c *AvroConverter) ValidateArguments(arguments map[string]any, targetPulsarSchemaInfo *cliutils.SchemaInfo) error

type BaseConverter

type BaseConverter struct {
	ParamName string
}

type BooleanConverter

type BooleanConverter struct {
	BaseConverter
}

BooleanConverter handles the conversion for Pulsar BOOLEAN schemas.

func NewBooleanConverter

func NewBooleanConverter() *BooleanConverter

NewBooleanConverter creates a new instance of BooleanConverter.

func (*BooleanConverter) SerializeMCPRequestToPulsarPayload

func (c *BooleanConverter) SerializeMCPRequestToPulsarPayload(arguments map[string]any, targetPulsarSchemaInfo *cliutils.SchemaInfo) ([]byte, error)

func (*BooleanConverter) ToMCPToolInputSchemaProperties

func (c *BooleanConverter) ToMCPToolInputSchemaProperties(schemaInfo *cliutils.SchemaInfo) ([]mcp.ToolOption, error)

func (*BooleanConverter) ValidateArguments

func (c *BooleanConverter) ValidateArguments(arguments map[string]any, targetPulsarSchemaInfo *cliutils.SchemaInfo) error

type Converter

type Converter interface {
	ToMCPToolInputSchemaProperties(pulsarSchemaInfo *cliutils.SchemaInfo) ([]mcp.ToolOption, error)

	SerializeMCPRequestToPulsarPayload(arguments map[string]any, targetPulsarSchemaInfo *cliutils.SchemaInfo) ([]byte, error)

	ValidateArguments(arguments map[string]any, targetPulsarSchemaInfo *cliutils.SchemaInfo) error
}

func ConverterFactory

func ConverterFactory(schemaType string) (Converter, error)

type JSONConverter

type JSONConverter struct {
	BaseConverter
}

JSONConverter handles the conversion for Pulsar JSON schemas. It relies on the underlying AVRO schema definition for structure and validation, but serializes to a standard JSON text payload.

func NewJSONConverter

func NewJSONConverter() *JSONConverter

NewJSONConverter creates a new instance of JSONConverter.

func (*JSONConverter) SerializeMCPRequestToPulsarPayload

func (c *JSONConverter) SerializeMCPRequestToPulsarPayload(arguments map[string]any, targetPulsarSchemaInfo *cliutils.SchemaInfo) ([]byte, error)

SerializeMCPRequestToPulsarPayload validates arguments against the underlying AVRO schema definition and then serializes them to a JSON text payload for Pulsar.

func (*JSONConverter) ToMCPToolInputSchemaProperties

func (c *JSONConverter) ToMCPToolInputSchemaProperties(schemaInfo *cliutils.SchemaInfo) ([]mcp.ToolOption, error)

ToMCPToolInputSchemaProperties converts the Pulsar JSON SchemaInfo (which is AVRO based) to MCP tool input schema properties.

func (*JSONConverter) ValidateArguments

func (c *JSONConverter) ValidateArguments(arguments map[string]any, targetPulsarSchemaInfo *cliutils.SchemaInfo) error

ValidateArguments validates the given arguments against the Pulsar JSON SchemaInfo's underlying AVRO schema definition.

type NumberConverter

type NumberConverter struct {
	BaseConverter
}

NumberConverter handles the conversion for Pulsar numeric schemas (INT8, INT16, INT32, INT64, FLOAT, DOUBLE).

func NewNumberConverter

func NewNumberConverter() *NumberConverter

NewNumberConverter creates a new instance of NumberConverter.

func (*NumberConverter) SerializeMCPRequestToPulsarPayload

func (c *NumberConverter) SerializeMCPRequestToPulsarPayload(arguments map[string]any, targetPulsarSchemaInfo *cliutils.SchemaInfo) ([]byte, error)

func (*NumberConverter) ToMCPToolInputSchemaProperties

func (c *NumberConverter) ToMCPToolInputSchemaProperties(schemaInfo *cliutils.SchemaInfo) ([]mcp.ToolOption, error)

func (*NumberConverter) ValidateArguments

func (c *NumberConverter) ValidateArguments(arguments map[string]any, targetPulsarSchemaInfo *cliutils.SchemaInfo) error

type StringConverter

type StringConverter struct {
	BaseConverter
}

StringConverter handles the conversion for Pulsar STRING schemas.

func NewStringConverter

func NewStringConverter() *StringConverter

NewStringConverter creates a new instance of StringConverter.

func (*StringConverter) SerializeMCPRequestToPulsarPayload

func (c *StringConverter) SerializeMCPRequestToPulsarPayload(arguments map[string]any, targetPulsarSchemaInfo *cliutils.SchemaInfo) ([]byte, error)

func (*StringConverter) ToMCPToolInputSchemaProperties

func (c *StringConverter) ToMCPToolInputSchemaProperties(schemaInfo *cliutils.SchemaInfo) ([]mcp.ToolOption, error)

func (*StringConverter) ValidateArguments

func (c *StringConverter) ValidateArguments(arguments map[string]any, targetPulsarSchemaInfo *cliutils.SchemaInfo) error

Jump to

Keyboard shortcuts

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