Skip to content

Comments

Simplified custom model flow with canonical models#6934

Merged
katzdave merged 31 commits intomainfrom
dkatz/models-custom
Feb 24, 2026
Merged

Simplified custom model flow with canonical models#6934
katzdave merged 31 commits intomainfrom
dkatz/models-custom

Conversation

@katzdave
Copy link
Collaborator

@katzdave katzdave commented Feb 4, 2026

Summary

Use canonical models to provide a new flow for initializing custom models that are part of our models database.

  • Remove ALLOWED_PROVIDERS for canonical models; let's use them for everything (necessary to pickup all possible custom providers)
  • Introduce provider metadata catalog which lists providers + compatibility.
  • Serve the catalog to the client
  • Add a simplified flow to pre-create most fields for these entries
  • Attach non-null catalog_id. Will follow up with some kind of auto-update models flow (since those are hard-coded)
Screen.Recording.2026-02-19.at.1.02.38.AM.mov

@katzdave katzdave changed the title Dkatz/models custom Simplified custom model flow with canonical models Feb 4, 2026
Base automatically changed from dkatz/canonical-context to main February 17, 2026 16:48
* 'main' of github.com:block/goose: (40 commits)
  Remove trailing space from links (#7156)
  fix: detect low balance and prompt for top up (#7166)
  feat(apps): add support for MCP apps to sample (#7039)
  Typescript SDK for ACP extension methods (#7319)
  chore: upgrade to rmcp 0.16.0 (#7274)
  docs: add monitoring subagent activity section (#7323)
  docs: document Desktop UI recipe editing for model/provider and extensions (#7327)
  docs: add CLAUDE_THINKING_BUDGET and CLAUDE_THINKING_ENABLED environm… (#7330)
  fix: display 'Code Mode' instead of 'code_execution' in CLI (#7321)
  docs: add Permission Policy documentation for MCP Apps (#7325)
  update RPI plan prompt (#7326)
  docs: add CLI syntax highlighting theme customization (#7324)
  fix(cli): replace shell-based update with native Rust implementation (#7148)
  docs: rename Code Execution extension to Code Mode extension (#7316)
  docs: remove ALPHA_FEATURES flag from documentation (#7315)
  docs: escape variable syntax in recipes (#7314)
  docs: update OTel environment variable and config guides (#7221)
  docs: system proxy settings (#7311)
  docs: add Summon extension tutorial and update Skills references (#7310)
  docs: agent session id (#7289)
  ...
* 'main' of github.com:block/goose:
  fix: skip whitespace-only text blocks in Anthropic message (#7343)
  fix(goose-acp): heap allocations (#7322)
@katzdave katzdave marked this pull request as ready for review February 19, 2026 06:31
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This pull request introduces a simplified custom model provider configuration flow using canonical models from a provider catalog. The changes enable users to select from pre-configured provider templates that auto-fill configuration fields, making it easier to set up custom providers.

Changes:

  • Added a provider catalog system that fetches metadata from models.dev and creates templates for compatible providers
  • Introduced a new multi-step UI flow for provider setup: users can choose between selecting a template or manual configuration
  • Extended provider configuration to support catalog_provider_id for tracking template-based providers

Reviewed changes

Copilot reviewed 18 out of 20 changed files in this pull request and generated no comments.

Show a summary per file
File Description
ui/desktop/src/components/settings/providers/subcomponents/CardContainer.tsx Added optional className prop for custom styling
ui/desktop/src/components/settings/providers/modal/subcomponents/forms/CustomProviderForm.tsx Refactored to support multi-step flow with template selection, catalog browsing, and manual configuration
ui/desktop/src/components/settings/providers/modal/subcomponents/ProviderCatalogPicker.tsx New component for browsing and selecting provider templates from the catalog
ui/desktop/src/components/settings/providers/ProviderGrid.tsx Updated "Add Custom Provider" text to "Add Provider" with description
ui/desktop/src/api/*.ts Added new types and API endpoints for provider catalog functionality
ui/desktop/openapi.json Added OpenAPI schemas for catalog endpoints and types
crates/goose/src/providers/catalog.rs New module implementing provider catalog logic with format detection and template generation
crates/goose/src/providers/canonical/registry.rs Added method to get all models for a specific provider
crates/goose/src/providers/canonical/data/provider_metadata.json New 785-line JSON file with provider metadata from models.dev
crates/goose/src/providers/canonical/build_canonical_models.rs Updated build script to generate provider metadata and remove cost requirement
crates/goose/src/config/declarative_providers.rs Added catalog_provider_id field to provider configs
crates/goose-server/src/routes/config_management.rs Added endpoints for getting catalog and templates
crates/goose-cli/src/commands/configure.rs Updated CLI to pass catalog_provider_id as None
Files not reviewed (1)
  • ui/desktop/package-lock.json: Language not supported

Copy link
Collaborator

@lifeizhou-ap lifeizhou-ap left a comment

Choose a reason for hiding this comment

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

Great! Now it is easy to add new providers!

Copilot AI review requested due to automatic review settings February 20, 2026 15:44
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Copilot AI review requested due to automatic review settings February 24, 2026 00:16
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 24 out of 26 changed files in this pull request and generated no new comments.

Files not reviewed (1)
  • ui/desktop/package-lock.json: Language not supported

@katzdave katzdave added this pull request to the merge queue Feb 24, 2026
Merged via the queue into main with commit 716085c Feb 24, 2026
30 of 31 checks passed
@katzdave katzdave deleted the dkatz/models-custom branch February 24, 2026 01:17
lifeizhou-ap added a commit that referenced this pull request Feb 24, 2026
* main:
  Simplified custom model flow with canonical models (#6934)
  feat: simplify the text editor to be more like pi (#7426)
  docs: add YouTube short embed to Neighborhood extension tutorial (#7456)
  fix: flake.nix build failure and deprecation warning (#7408)
  feat(claude-code): add permission prompt routing for approve mode (#7420)
  docs: generate manpages (#7443)
  Blog/goose v1 25 0 release (#7433)
  fix: detect truncated LLM responses in apps extension (#7354)
  fix: removed unnecessary version for goose acp macro dependency (#7428)
  add flag to hide select voice providers (#7406)
  New navigation settings layout options and styling (#6645)
  refactor: MCP-compliant theme tokens and CSS class rename (#7275)
  Redirect llama.cpp logs through tracing to avoid polluting CLI stdout/stderr (#7434)
  refactor: change open recipe in new window to pass recipe id (#7392)
  fix: handle truncated tool calls that break conversation alternation (#7424)
  streamline some github actions (#7430)
  Enable bedrock prompt cache (#6710)
  fix: use BEGIN IMMEDIATE to prevent SQLite deadlocks (#7429)
  Display working dir (#7419)
lifeizhou-ap added a commit that referenced this pull request Feb 24, 2026
* main: (171 commits)
  fix: TLDR CLI tab in Neighborhood MCP docs (#7461)
  fix(summon): restore skill supporting files and directory path in load output (#7457)
  Simplified custom model flow with canonical models (#6934)
  feat: simplify the text editor to be more like pi (#7426)
  docs: add YouTube short embed to Neighborhood extension tutorial (#7456)
  fix: flake.nix build failure and deprecation warning (#7408)
  feat(claude-code): add permission prompt routing for approve mode (#7420)
  docs: generate manpages (#7443)
  Blog/goose v1 25 0 release (#7433)
  fix: detect truncated LLM responses in apps extension (#7354)
  fix: removed unnecessary version for goose acp macro dependency (#7428)
  add flag to hide select voice providers (#7406)
  New navigation settings layout options and styling (#6645)
  refactor: MCP-compliant theme tokens and CSS class rename (#7275)
  Redirect llama.cpp logs through tracing to avoid polluting CLI stdout/stderr (#7434)
  refactor: change open recipe in new window to pass recipe id (#7392)
  fix: handle truncated tool calls that break conversation alternation (#7424)
  streamline some github actions (#7430)
  Enable bedrock prompt cache (#6710)
  fix: use BEGIN IMMEDIATE to prevent SQLite deadlocks (#7429)
  ...
@katzdave katzdave restored the dkatz/models-custom branch February 24, 2026 18:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants