Merge branch 'v3' into v3-t103

This commit is contained in:
2026-11-12 19:45:59 +00:00
12 changed files with 43712 additions and 42910 deletions
+5 -3
View File
@@ -187,11 +187,13 @@ Run `sausage init`. Set `providers.<name>.api_key` in the config, then run `saus
The defaults use Anthropic Messages and OpenAI Responses, with empty keys.
The config also shows a commented OpenAI-compatible Chat Completions endpoint.
Each provider has `type`, `base_url`, `api_key`, and `models`. References use `<provider>/<model>`.
An optional `catalog` selects the models.dev provider ID. It defaults to the configured provider's name.
The host refreshes models.dev metadata at startup and caches it in `host/models-dev.json`.
If the refresh fails, the host uses that cache or the packaged snapshot.
An optional `catalog` selects a provider ID from pi-ai's catalog. It defaults to the configured provider's name.
Each model retains pi-ai's complete catalog entry, including API flags, thinking mappings, input limits, and price tiers.
The host needs no separate metadata download, cache, or snapshot.
Model objects can override `context_window`, `max_tokens`, `reasoning`, and `cost`.
Cost fields are `input`, `output`, `cache_read`, and `cache_write`, in USD per million tokens.
Overrides retain unspecified catalog fields. The base URL always comes from the config.
For example, `catalog: anthropic` with an Opus 5.5 context override retains adaptive thinking.
An unknown model needs all metadata fields. Its error names the missing fields and config path.
Pi-ai stores estimated call costs in assistant usage.