spec

package
v0.2.5 Latest Latest
Warning

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

Go to latest
Published: Jul 13, 2026 License: MPL-2.0 Imports: 4 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
)
View Source
const (
	DefaultAuthorizationHeaderKey = "Authorization"
	DefaultAPITimeout             = 300 * time.Second

	DefaultAnthropicOrigin                 = "https://api.anthropic.com"
	DefaultAnthropicChatCompletionPrefix   = "/v1/messages"
	DefaultAnthropicAuthorizationHeaderKey = "x-api-key"

	DefaultOpenAIOrigin                = "https://api.openai.com"
	DefaultOpenAIChatCompletionsPrefix = "/v1/chat/completions"
)

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")
)
View Source
var OpenAIChatCompletionsDefaultHeaders = map[string]string{"content-type": "application/json"}

Functions

This section is empty.

Types

type DeleteModelPresetRequest

type DeleteModelPresetRequest struct {
	ProviderName  inferenceSpec.ProviderName `path:"providerName"  required:"true"`
	ModelPresetID 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 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 ModelDisplayName

type ModelDisplayName string

type ModelName

type ModelName string

type ModelPreset

type ModelPreset struct {
	ModelPresetPatch

	SchemaVersion string           `json:"schemaVersion" required:"true"`
	ID            ModelPresetID    `json:"id"            required:"true"`
	Name          ModelName        `json:"name"          required:"true"`
	DisplayName   ModelDisplayName `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 ModelPresetID

type ModelPresetID string

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 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 ModelPresetID              `path:"modelPresetID" required:"true"`
	Body          *PatchModelPresetRequestBody
}

type PatchModelPresetRequestBody

type PatchModelPresetRequestBody struct {
	ModelPresetPatch

	Name        *ModelName        `json:"name,omitempty"`
	Slug        *ModelSlug        `json:"slug,omitempty"`
	DisplayName *ModelDisplayName `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              *ProviderDisplayName           `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     *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 ModelPresetID              `path:"modelPresetID" required:"true"`
	Body          *PostModelPresetRequestBody
}

type PostModelPresetRequestBody added in v0.0.85

type PostModelPresetRequestBody struct {
	ModelPresetPatch

	Name        ModelName        `json:"name"        required:"true"`
	Slug        ModelSlug        `json:"slug"        required:"true"`
	DisplayName ModelDisplayName `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              ProviderDisplayName           `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 ProviderDisplayName

type ProviderDisplayName string

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   ProviderDisplayName           `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 ModelPresetID                 `json:"defaultModelPresetID"`
	ModelPresets         map[ModelPresetID]ModelPreset `json:"modelPresets"`
}

Jump to

Keyboard shortcuts

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