spec

package
v0.2.21 Latest Latest
Warning

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

Go to latest
Published: Sep 9, 2026 License: MPL-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ModelPresetsFile                     = "modelpresets.json" // Single JSON file.
	ModelPresetsBuiltInOverlayDBFileName = "modelpresetsbuiltin.overlay.sqlite"
)
View Source
const (
	SchemaVersion = "2025-07-01"

	MaxPageSize           = 256 // Max allowed page size.
	DefaultPageSize       = 256 // Default page size.
	BuiltInSnapshotMaxAge = time.Hour
)

Variables

View Source
var (
	ErrInvalidDir = errors.New("invalid directory")

	ErrProviderNotFound            = errors.New("provider not found")
	ErrProviderPresetAlreadyExists = errors.New("provider preset already exists")
	ErrBuiltInProviderAbsent       = errors.New("provider not found in built-in data")
	ErrNilProvider                 = errors.New("provider preset is nil")

	ErrModelPresetNotFound      = errors.New("model preset not found")
	ErrModelPresetAlreadyExists = errors.New("model preset already exists")
	ErrNilModelPreset           = errors.New("model preset is nil")
	ErrNoModelPresets           = errors.New("provider has no model presets")

	ErrInvalidTimestamp = errors.New("zero timestamp")
	ErrBuiltInReadOnly  = errors.New("built-in resource is read-only")
)

Functions

This section is empty.

Types

type DeleteModelPresetRequest

type DeleteModelPresetRequest struct {
	ProviderName  inferenceSpec.ProviderName `path:"providerName"  required:"true"`
	ModelPresetID modelpreset.ModelPresetID  `path:"modelPresetID" required:"true"`
}

type DeleteModelPresetResponse

type DeleteModelPresetResponse struct{}

type DeleteProviderPresetRequest

type DeleteProviderPresetRequest struct {
	ProviderName inferenceSpec.ProviderName `path:"providerName" required:"true"`
}

type DeleteProviderPresetResponse

type DeleteProviderPresetResponse struct{}

type GetDefaultProviderRequest

type GetDefaultProviderRequest struct{}

type GetDefaultProviderResponse

type GetDefaultProviderResponse struct {
	Body *GetDefaultProviderResponseBody
}

type GetDefaultProviderResponseBody

type GetDefaultProviderResponseBody struct {
	DefaultProvider inferenceSpec.ProviderName `json:"defaultProvider"`
}

type GetModelPresetRequest added in v0.0.81

type GetModelPresetRequest struct {
	ProviderName  inferenceSpec.ProviderName `path:"providerName"  required:"true"`
	ModelPresetID modelpreset.ModelPresetID  `path:"modelPresetID" required:"true"`

	// If false, disabled provider/model return an error.
	IncludeDisabled bool `query:"includeDisabled"`
}

type GetModelPresetResponse added in v0.0.81

type GetModelPresetResponse struct {
	Body *GetModelPresetResponseBody
}

type GetModelPresetResponseBody added in v0.0.81

type GetModelPresetResponseBody struct {
	// Provider includes CapabilitiesOverride (provider-wide).
	// ModelPresets map is intentionally omitted/empty in store response for safety/perf.
	Provider ProviderPreset `json:"provider"`

	// Model includes Name + CapabilitiesOverride (model-specific).
	Model ModelPreset `json:"model"`
}

type ListProviderPresetsRequest

type ListProviderPresetsRequest struct {
	Names           []inferenceSpec.ProviderName `query:"names"`
	IncludeDisabled bool                         `query:"includeDisabled"`
	PageSize        int                          `query:"pageSize"`
	PageToken       string                       `query:"pageToken"`
}

type ListProviderPresetsResponse

type ListProviderPresetsResponse struct {
	Body *ListProviderPresetsResponseBody
}

type ListProviderPresetsResponseBody

type ListProviderPresetsResponseBody struct {
	Providers     []ProviderPreset `json:"providers"`
	NextPageToken *string          `json:"nextPageToken,omitempty"`
}

type ModelPreset

type ModelPreset struct {
	ModelPresetPatch

	SchemaVersion string                    `json:"schemaVersion" required:"true"`
	ID            modelpreset.ModelPresetID `json:"id"            required:"true"`
	Name          inferenceSpec.ModelName   `json:"name"          required:"true"`
	DisplayName   string                    `json:"displayName"   required:"true"`
	Slug          ModelSlug                 `json:"slug"          required:"true"`
	IsEnabled     bool                      `json:"isEnabled"     required:"true"`

	CreatedAt  time.Time `json:"createdAt"`
	ModifiedAt time.Time `json:"modifiedAt"`
	IsBuiltIn  bool      `json:"isBuiltIn"`
}

ModelPreset is the entire "model + default knobs" bundle the user can save. Anything not present in the preset is considered to be taken as default from any global or inbuilt model defaults.

type ModelPresetPatch added in v0.0.85

type ModelPresetPatch struct {
	Stream          *bool                         `json:"stream,omitempty"`
	MaxPromptLength *int                          `json:"maxPromptLength,omitempty"`
	MaxOutputLength *int                          `json:"maxOutputLength,omitempty"`
	Temperature     *float64                      `json:"temperature,omitempty"`
	Reasoning       *inferenceSpec.ReasoningParam `json:"reasoning,omitempty"`
	SystemPrompt    *string                       `json:"systemPrompt,omitempty"`
	Timeout         *int                          `json:"timeout,omitempty"`

	CacheControl  *inferenceSpec.CacheControl `json:"cacheControl,omitempty"`
	OutputParam   *inferenceSpec.OutputParam  `json:"outputParam,omitempty"`
	StopSequences *[]string                   `json:"stopSequences,omitempty"`

	AdditionalParametersRawJSON *string `json:"additionalParametersRawJSON,omitempty"`

	// CapabilitiesOverride is a stored override for runtime capability resolution.
	// This is NOT the derived/effective capability profile.
	CapabilitiesOverride *capabilityoverride.ModelCapabilitiesOverride `json:"capabilitiesOverride,omitempty"`
}

ModelPresetPatch is the reusable set of persisted model-preset knobs.

PATCH semantics:

  • nil pointer/object fields => not provided
  • StopSequences is a pointer-to-slice so PATCH can distinguish:
  • nil => not provided
  • non-nil empty slice => explicitly set to empty

Note: PATCH does not support generic "clear to nil" semantics.

type ModelPresetRef added in v0.0.85

type ModelPresetRef struct {
	ProviderName  inferenceSpec.ProviderName `json:"providerName"`
	ModelPresetID modelpreset.ModelPresetID  `json:"modelPresetID"`
}

ModelPresetRef identifies a model preset inside a provider namespace. It is intended for internal helpers and JSON payloads, not HTTP path binding.

func (ModelPresetRef) IsZero added in v0.0.85

func (r ModelPresetRef) IsZero() bool

type ModelSlug

type ModelSlug string

type PatchDefaultProviderRequest

type PatchDefaultProviderRequest struct {
	Body *PatchDefaultProviderRequestBody
}

type PatchDefaultProviderRequestBody

type PatchDefaultProviderRequestBody struct {
	DefaultProvider inferenceSpec.ProviderName `json:"defaultProvider" required:"true"`
}

type PatchDefaultProviderResponse

type PatchDefaultProviderResponse struct{}

type PatchModelPresetRequest

type PatchModelPresetRequest struct {
	ProviderName  inferenceSpec.ProviderName `path:"providerName"  required:"true"`
	ModelPresetID modelpreset.ModelPresetID  `path:"modelPresetID" required:"true"`
	Body          *PatchModelPresetRequestBody
}

type PatchModelPresetRequestBody

type PatchModelPresetRequestBody struct {
	ModelPresetPatch

	Name        *inferenceSpec.ModelName `json:"name,omitempty"`
	Slug        *ModelSlug               `json:"slug,omitempty"`
	DisplayName *string                  `json:"displayName,omitempty"`
	IsEnabled   *bool                    `json:"isEnabled,omitempty"`
}

PatchModelPresetRequestBody patches a stored model preset.

Semantics:

  • nil pointer/object fields => not provided
  • StopSequences=nil => not provided
  • StopSequences=&[]{} => explicitly set to empty
  • at least one field/override field must be supplied

type PatchModelPresetResponse

type PatchModelPresetResponse struct{}

type PatchProviderPresetRequest

type PatchProviderPresetRequest struct {
	ProviderName inferenceSpec.ProviderName `path:"providerName" required:"true"`
	Body         *PatchProviderPresetRequestBody
}

type PatchProviderPresetRequestBody

type PatchProviderPresetRequestBody struct {
	DisplayName              *string                        `json:"displayName,omitempty"`
	SDKType                  *inferenceSpec.ProviderSDKType `json:"sdkType,omitempty"`
	IsEnabled                *bool                          `json:"isEnabled,omitempty"`
	Origin                   *string                        `json:"origin,omitempty"`
	ChatCompletionPathPrefix *string                        `json:"chatCompletionPathPrefix,omitempty"`
	APIKeyHeaderKey          *string                        `json:"apiKeyHeaderKey,omitempty"`
	DefaultHeaders           map[string]string              `json:"defaultHeaders,omitempty"`
	DefaultModelPresetID     *modelpreset.ModelPresetID     `json:"defaultModelPresetID,omitempty"`

	CapabilitiesOverride *capabilityoverride.ModelCapabilitiesOverride `json:"capabilitiesOverride,omitempty"`
}

PatchProviderPresetRequestBody patches an existing provider preset.

Semantics:

  • nil pointer fields => not provided
  • DefaultHeaders nil => not provided
  • DefaultHeaders {} => replace with empty map
  • only user providers can patch provider metadata/capabilities
  • built-ins only support isEnabled and defaultModelPresetID

type PatchProviderPresetResponse

type PatchProviderPresetResponse struct{}

type PostModelPresetRequest added in v0.0.85

type PostModelPresetRequest struct {
	ProviderName  inferenceSpec.ProviderName `path:"providerName"  required:"true"`
	ModelPresetID modelpreset.ModelPresetID  `path:"modelPresetID" required:"true"`
	Body          *PostModelPresetRequestBody
}

type PostModelPresetRequestBody added in v0.0.85

type PostModelPresetRequestBody struct {
	ModelPresetPatch

	Name        inferenceSpec.ModelName `json:"name"        required:"true"`
	Slug        ModelSlug               `json:"slug"        required:"true"`
	DisplayName string                  `json:"displayName" required:"true"`
	IsEnabled   bool                    `json:"isEnabled"   required:"true"`
}

type PostModelPresetResponse added in v0.0.85

type PostModelPresetResponse struct{}

type PostProviderPresetRequest added in v0.0.85

type PostProviderPresetRequest struct {
	ProviderName inferenceSpec.ProviderName `path:"providerName" required:"true"`
	Body         *PostProviderPresetRequestBody
}

type PostProviderPresetRequestBody added in v0.0.85

type PostProviderPresetRequestBody struct {
	DisplayName              string                        `json:"displayName"              required:"true"`
	SDKType                  inferenceSpec.ProviderSDKType `json:"sdkType"                  required:"true"`
	IsEnabled                bool                          `json:"isEnabled"                required:"true"`
	Origin                   string                        `json:"origin"                   required:"true"`
	ChatCompletionPathPrefix string                        `json:"chatCompletionPathPrefix" required:"true"`

	APIKeyHeaderKey      string                                        `json:"apiKeyHeaderKey,omitempty"`
	DefaultHeaders       map[string]string                             `json:"defaultHeaders,omitempty"`
	CapabilitiesOverride *capabilityoverride.ModelCapabilitiesOverride `json:"capabilitiesOverride,omitempty"`
}

type PostProviderPresetResponse added in v0.0.85

type PostProviderPresetResponse struct{}

type PresetsSchema

type PresetsSchema struct {
	SchemaVersion   string                                        `json:"schemaVersion"`
	DefaultProvider inferenceSpec.ProviderName                    `json:"defaultProvider"`
	ProviderPresets map[inferenceSpec.ProviderName]ProviderPreset `json:"providerPresets"`
}

type ProviderPageToken

type ProviderPageToken struct {
	Names           []inferenceSpec.ProviderName `json:"n,omitempty"` //nolint:tagliatelle // PageToken Specific.
	IncludeDisabled bool                         `json:"d,omitempty"` //nolint:tagliatelle // PageToken Specific.
	PageSize        int                          `json:"s,omitempty"` //nolint:tagliatelle // PageToken Specific.
	CursorSlug      inferenceSpec.ProviderName   `json:"c,omitempty"` //nolint:tagliatelle // PageToken Specific.
}

type ProviderPreset

type ProviderPreset struct {
	SchemaVersion string                        `json:"schemaVersion" required:"true"`
	Name          inferenceSpec.ProviderName    `json:"name"          required:"true"`
	DisplayName   string                        `json:"displayName"   required:"true"`
	SDKType       inferenceSpec.ProviderSDKType `json:"sdkType"       required:"true"`
	IsEnabled     bool                          `json:"isEnabled"     required:"true"`

	CreatedAt  time.Time `json:"createdAt"`
	ModifiedAt time.Time `json:"modifiedAt"`
	IsBuiltIn  bool      `json:"isBuiltIn"`

	Origin                   string            `json:"origin"                   required:"true"`
	ChatCompletionPathPrefix string            `json:"chatCompletionPathPrefix" required:"true"`
	APIKeyHeaderKey          string            `json:"apiKeyHeaderKey"          required:"true"`
	DefaultHeaders           map[string]string `json:"defaultHeaders"`
	// CapabilitiesOverride is a provider-wide stored override. Model overrides take precedence.
	// This is NOT the derived/effective capability profile.
	CapabilitiesOverride *capabilityoverride.ModelCapabilitiesOverride `json:"capabilitiesOverride,omitempty"`

	DefaultModelPresetID modelpreset.ModelPresetID                 `json:"defaultModelPresetID"`
	ModelPresets         map[modelpreset.ModelPresetID]ModelPreset `json:"modelPresets"`
}

Jump to

Keyboard shortcuts

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