modelcatalog

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Aug 6, 2026 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
const EnvKey = "CHETTER_MODEL_CATALOG_YAML"

Variables

This section is empty.

Functions

func MarshalYAML

func MarshalYAML(catalog *Catalog) (string, error)

Types

type Catalog

type Catalog struct {
	Version         int                       `yaml:"version" json:"version"`
	DefaultProvider string                    `yaml:"default_provider" json:"default_provider"`
	DefaultModel    string                    `yaml:"default_model" json:"default_model"`
	Defaults        map[string]HarnessDefault `yaml:"defaults" json:"defaults"`
	Providers       map[string]Provider       `yaml:"providers" json:"providers"`
}

func Default

func Default() *Catalog

func ParseYAML

func ParseYAML(data []byte) (*Catalog, error)

func ParseYAMLOrDefault

func ParseYAMLOrDefault(data string) *Catalog

func (Catalog) Counts

func (c Catalog) Counts() (providers, models int)

func (Catalog) DefaultForHarness

func (c Catalog) DefaultForHarness(harness, fallbackProvider, fallbackModel string) (string, string)

func (Catalog) OpenCodeProviders

func (c Catalog) OpenCodeProviders() []OpenCodeProvider

func (Catalog) Validate

func (c Catalog) Validate() error

type HarnessDefault

type HarnessDefault struct {
	Provider string `yaml:"provider" json:"provider"`
	Model    string `yaml:"model" json:"model"`
}

type Model

type Model struct {
	ID        string                  `yaml:"id" json:"id"`
	Name      string                  `yaml:"name" json:"name"`
	Aliases   []string                `yaml:"aliases" json:"aliases"`
	Harnesses map[string]ModelHarness `yaml:"harnesses" json:"harnesses"`
}

type ModelHarness

type ModelHarness struct {
	ID       string         `yaml:"id" json:"id"`
	Disabled bool           `yaml:"disabled" json:"disabled"`
	Options  map[string]any `yaml:"options" json:"options"`
}

type OpenCodeProvider

type OpenCodeProvider struct {
	ID        string
	Name      string
	BaseURL   string
	APIKeyEnv string
	Models    []string
}

type Provider

type Provider struct {
	Name       string                     `yaml:"name" json:"name"`
	Kind       string                     `yaml:"kind" json:"kind"`
	BaseURL    string                     `yaml:"base_url" json:"base_url"`
	APIKeyEnv  string                     `yaml:"api_key_env" json:"api_key_env"`
	AwsProfile string                     `yaml:"aws_profile" json:"aws_profile"`
	AwsRegion  string                     `yaml:"aws_region" json:"aws_region"`
	Models     []Model                    `yaml:"models" json:"models"`
	Harnesses  map[string]ProviderHarness `yaml:"harnesses" json:"harnesses"`
}

type ProviderHarness

type ProviderHarness struct {
	ID         string `yaml:"id" json:"id"`
	Name       string `yaml:"name" json:"name"`
	BaseURL    string `yaml:"base_url" json:"base_url"`
	APIKeyEnv  string `yaml:"api_key_env" json:"api_key_env"`
	AwsProfile string `yaml:"aws_profile" json:"aws_profile"`
	AwsRegion  string `yaml:"aws_region" json:"aws_region"`
	API        string `yaml:"api" json:"api"`
	AuthHeader bool   `yaml:"auth_header" json:"auth_header"`
	Disabled   bool   `yaml:"disabled" json:"disabled"`
}

Jump to

Keyboard shortcuts

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