spec

package
v0.0.81 Latest Latest
Warning

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

Go to latest
Published: Mar 3, 2026 License: MPL-2.0 Imports: 3 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")
	ErrModelPresetNotFound   = errors.New("model preset not found")
	ErrBuiltInProviderAbsent = errors.New("provider not found in built-in data")

	ErrNilProvider      = errors.New("provider preset is nil")
	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  inferencegoSpec.ProviderName `path:"providerName"  required:"true"`
	ModelPresetID ModelPresetID                `path:"modelPresetID" required:"true"`
}

type DeleteModelPresetResponse

type DeleteModelPresetResponse struct{}

type DeleteProviderPresetRequest

type DeleteProviderPresetRequest struct {
	ProviderName inferencegoSpec.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 inferencegoSpec.ProviderName
}

type GetModelPresetRequest added in v0.0.81

type GetModelPresetRequest struct {
	ProviderName  inferencegoSpec.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           []inferencegoSpec.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 ModelCapabilitiesOverride added in v0.0.81

type ModelCapabilitiesOverride struct {
	ModalitiesIn  []inferencegoSpec.Modality `json:"modalitiesIn,omitempty"`
	ModalitiesOut []inferencegoSpec.Modality `json:"modalitiesOut,omitempty"`

	ReasoningCapabilities    *ReasoningCapabilitiesOverride    `json:"reasoningCapabilities,omitempty"`
	StopSequenceCapabilities *StopSequenceCapabilitiesOverride `json:"stopSequenceCapabilities,omitempty"`
	OutputCapabilities       *OutputCapabilitiesOverride       `json:"outputCapabilities,omitempty"`
	ToolCapabilities         *ToolCapabilitiesOverride         `json:"toolCapabilities,omitempty"`
}

ModelCapabilitiesOverride is a "patch-like" version of inference-go's ModelCapabilities.

Semantics:

  • nil slice => no override provided
  • empty slice => override to empty (disable completely)
  • pointer scalars => nil means "not provided", non-nil means "override"

This struct is intended for storage and API transport as an override only. The effective/derived capabilities MUST be computed at runtime and should not be stored.

type ModelDisplayName

type ModelDisplayName string

type ModelName

type ModelName string

type ModelPreset

type ModelPreset struct {
	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"`

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

	OutputParam   *inferencegoSpec.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 *ModelCapabilitiesOverride `json:"capabilitiesOverride,omitempty"`

	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 ModelSlug

type ModelSlug string

type OutputCapabilitiesOverride added in v0.0.81

type OutputCapabilitiesOverride struct {
	SupportedOutputFormats []inferencegoSpec.OutputFormatKind `json:"supportedOutputFormats,omitempty"`
	SupportsVerbosity      *bool                              `json:"supportsVerbosity,omitempty"`
}

type PatchDefaultProviderRequest

type PatchDefaultProviderRequest struct {
	Body *PatchDefaultProviderRequestBody
}

type PatchDefaultProviderRequestBody

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

type PatchDefaultProviderResponse

type PatchDefaultProviderResponse struct{}

type PatchModelPresetRequest

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

type PatchModelPresetRequestBody

type PatchModelPresetRequestBody struct {
	IsEnabled bool `json:"isEnabled" required:"true"`
	// CapabilitiesOverride can only be patched for USER provider presets (not built-ins).
	// To clear the override entirely, set ClearCapabilitiesOverride=true.
	CapabilitiesOverride      *ModelCapabilitiesOverride `json:"capabilitiesOverride,omitempty"`
	ClearCapabilitiesOverride bool                       `json:"clearCapabilitiesOverride,omitempty"`
}

type PatchModelPresetResponse

type PatchModelPresetResponse struct{}

type PatchProviderPresetRequest

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

type PatchProviderPresetRequestBody

type PatchProviderPresetRequestBody struct {
	IsEnabled            *bool          `json:"isEnabled,omitempty"`
	DefaultModelPresetID *ModelPresetID `json:"defaultModelPresetID,omitempty"`
}

type PatchProviderPresetResponse

type PatchProviderPresetResponse struct{}

type PresetsSchema

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

type ProviderDisplayName

type ProviderDisplayName string

type ProviderPageToken

type ProviderPageToken struct {
	Names           []inferencegoSpec.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      inferencegoSpec.ProviderName   `json:"c,omitempty"` //nolint:tagliatelle // PageToken Specific.
}

type ProviderPreset

type ProviderPreset struct {
	SchemaVersion string                          `json:"schemaVersion" required:"true"`
	Name          inferencegoSpec.ProviderName    `json:"name"          required:"true"`
	DisplayName   ProviderDisplayName             `json:"displayName"   required:"true"`
	SDKType       inferencegoSpec.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 *ModelCapabilitiesOverride `json:"capabilitiesOverride,omitempty"`

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

type PutModelPresetRequest

type PutModelPresetRequest struct {
	ProviderName  inferencegoSpec.ProviderName `path:"providerName"  required:"true"`
	ModelPresetID ModelPresetID                `path:"modelPresetID" required:"true"`
	Body          *PutModelPresetRequestBody
}

type PutModelPresetRequestBody

type PutModelPresetRequestBody struct {
	Name        ModelName        `json:"name"        required:"true"`
	Slug        ModelSlug        `json:"slug"        required:"true"`
	DisplayName ModelDisplayName `json:"displayName" required:"true"`
	IsEnabled   bool             `json:"isEnabled"   required:"true"`

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

	OutputParam   *inferencegoSpec.OutputParam `json:"outputParam,omitempty"`
	StopSequences []string                     `json:"stopSequences,omitempty"`

	AdditionalParametersRawJSON *string                    `json:"additionalParametersRawJSON,omitempty"`
	CapabilitiesOverride        *ModelCapabilitiesOverride `json:"capabilitiesOverride,omitempty"`
}

type PutModelPresetResponse

type PutModelPresetResponse struct{}

type PutProviderPresetRequest

type PutProviderPresetRequest struct {
	ProviderName inferencegoSpec.ProviderName `path:"providerName" required:"true"`
	Body         *PutProviderPresetRequestBody
}

type PutProviderPresetRequestBody

type PutProviderPresetRequestBody struct {
	DisplayName              ProviderDisplayName             `json:"displayName"                    required:"true"`
	SDKType                  inferencegoSpec.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     *ModelCapabilitiesOverride      `json:"capabilitiesOverride,omitempty"`
}

type PutProviderPresetResponse

type PutProviderPresetResponse struct{}

type ReasoningCapabilitiesOverride added in v0.0.81

type ReasoningCapabilitiesOverride struct {
	SupportedReasoningTypes  []inferencegoSpec.ReasoningType  `json:"supportedReasoningTypes,omitempty"`
	SupportedReasoningLevels []inferencegoSpec.ReasoningLevel `json:"supportedReasoningLevels,omitempty"`

	SupportsSummaryStyle             *bool `json:"supportsSummaryStyle,omitempty"`
	SupportsEncryptedReasoningInput  *bool `json:"supportsEncryptedReasoningInput,omitempty"`
	TemperatureDisallowedWhenEnabled *bool `json:"temperatureDisallowedWhenEnabled,omitempty"`
}

type StopSequenceCapabilitiesOverride added in v0.0.81

type StopSequenceCapabilitiesOverride struct {
	IsSupported             *bool `json:"isSupported,omitempty"`
	DisallowedWithReasoning *bool `json:"disallowedWithReasoning,omitempty"`
	MaxSequences            *int  `json:"maxSequences,omitempty"`
}

type ToolCapabilitiesOverride added in v0.0.81

type ToolCapabilitiesOverride struct {
	SupportedToolTypes        []inferencegoSpec.ToolType       `json:"supportedToolTypes,omitempty"`
	SupportedToolPolicyModes  []inferencegoSpec.ToolPolicyMode `json:"supportedToolPolicyModes,omitempty"`
	SupportsParallelToolCalls *bool                            `json:"supportsParallelToolCalls,omitempty"`
	MaxForcedTools            *int                             `json:"maxForcedTools,omitempty"`
}

Jump to

Keyboard shortcuts

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