Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions crates/goose-providers/src/declarative.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ pub(crate) mod declarative_providers {
expose_declarative_providers!(
alibaba,
atomic_chat,
celeris,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Add the required provider feature self-test

This line exposes a new bundled provider, but the commit leaves goose-self-test.yaml unchanged, so the repository-required feature-level validation does not cover the integration or its unusual request constraints. Add an appropriate Celeris validation scenario to the self-test recipe before exposing the provider.

AGENTS.md reference: AGENTS.md:L71-L71

Useful? React with 👍 / 👎.

cerebras,
deepseek,
empiriolabs,
Expand Down
20 changes: 20 additions & 0 deletions crates/goose-providers/src/declarative/definitions/celeris.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"name": "celeris",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Enforce Celeris max-token granularity

When GOOSE_MAX_TOKENS is set to a positive value that is not 1 or a multiple of 256 (including documented examples such as 16000), materialize_model_config_inner accepts it and the OpenAI formatter forwards it unchanged, so every Celeris request fails with HTTP 400. Normalize or reject incompatible values for this provider before exposing it as supported.

Useful? React with 👍 / 👎.

"engine": "openai",
"display_name": "Celeris",
"description": "General-purpose diffusion language models over an OpenAI-compatible API. Tokens are generated in parallel blocks rather than one at a time, which makes them substantially faster than comparable autoregressive models. celeris-1 has an 8192 token context shared between the prompt and the completion, and the base URL pins the model in its path.",
"api_key_env": "CELERIS_API_KEY",
"base_url": "https://inference.celeris.ai/celeris-1/v1",
"models": [
{ "name": "celeris-1", "context_limit": 8192 }

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Reserve Celeris output tokens before advertising 8K context

With the default auto-compaction threshold (0.8) and no GOOSE_MAX_TOKENS/canonical limit, Goose sends no max_tokens, so a session around 6.2K–6.5K prompt tokens is considered under the 8,192-token limit and skips compaction. The Celeris API reference says omitted max_tokens defaults to 2,048 and prompt tokens plus max_tokens must be at most 8,192, so those requests will 400 before Goose compacts; either advertise an effective input budget here or add provider-specific handling that reserves/sizes the output budget.

Useful? React with 👍 / 👎.

],
"dynamic_models": false,
"skip_canonical_filtering": true,
"supports_streaming": true,
"model_doc_link": "https://docs.celeris.ai/api-reference",
"setup_steps": [
"Sign up at https://celeris.ai",
"Create an API key",
"Paste the key above as CELERIS_API_KEY"
]
}