Files

4.2 KiB

ADDED Requirements

Requirement: Discover Models From Base URL And API Key

The system SHALL allow users to fetch a provider's available model list using the currently entered Base URL and API key.

Scenario: Normalize root base URL before discovery

  • GIVEN the user enters a provider root URL such as https://api.tu-zi.com
  • WHEN the system performs model discovery
  • THEN the request SHALL be sent to the normalized models endpoint under /v1/models

Scenario: Normalize v1 base URL before discovery

  • GIVEN the user enters a Base URL such as https://api.tu-zi.com/v1
  • WHEN the system performs model discovery
  • THEN the request SHALL be sent to the models endpoint under the same API namespace

Scenario: Surface discovery failure without breaking existing settings

  • GIVEN the current Base URL or API key cannot fetch a valid model list
  • WHEN the discovery request fails, returns non-JSON, or returns an empty list
  • THEN the user SHALL receive a visible failure message
  • AND the existing static model list fallback SHALL remain available

Requirement: Adapt Remote Models To Runtime Model Config

Remote model list items SHALL be converted into the internal model configuration format used by model selectors.

Scenario: Reuse static metadata for known models

  • GIVEN a discovered model ID matches an existing static model definition
  • WHEN the runtime model config is built
  • THEN the system SHALL reuse the known short code, tags, and default parameters when available

Scenario: Create safe defaults for unknown models

  • GIVEN a discovered model ID does not match any static model definition
  • WHEN the runtime model config is built
  • THEN the system SHALL still expose that model as selectable
  • AND assign safe fallback values for display label, short code, and description

Requirement: Classify Discovered Models By Type

The system SHALL classify discovered models into image, video, or text groups for the corresponding selectors.

Scenario: Classify video models from endpoint hints

  • GIVEN a discovered model exposes video-oriented endpoint types or video-specific model identifiers
  • WHEN the runtime model config is built
  • THEN the model SHALL appear in the video model selector

Scenario: Classify image models from endpoint hints

  • GIVEN a discovered model exposes image-oriented endpoint types or image-specific model identifiers
  • WHEN the runtime model config is built
  • THEN the model SHALL appear in the image model selector

Scenario: Default non-image non-video models to text

  • GIVEN a discovered model does not match image or video classification rules
  • WHEN the runtime model config is built
  • THEN the model SHALL appear in the text model selector

Requirement: Group Discovered Models By Provider Vendor

The system SHALL present discovered models under provider vendor groupings compatible with the existing model dropdown vendor tabs.

Scenario: Use provider ownership as primary vendor hint

  • GIVEN a discovered model includes a recognized owned_by value
  • WHEN the runtime model config is built
  • THEN the model SHALL be assigned to the mapped vendor group for dropdown display

Scenario: Fallback to model identifier for custom ownership

  • GIVEN a discovered model uses a generic or custom owned_by value
  • WHEN the runtime model config is built
  • THEN the system SHALL infer the vendor from model identifier keywords when possible

Requirement: Reuse Runtime Model Lists Across Selectors

All model selectors that currently depend on static model lists SHALL prefer the discovered runtime model lists when available.

Scenario: Settings dialog uses discovered lists

  • GIVEN model discovery has completed successfully
  • WHEN the user opens the settings dialog
  • THEN the image, video, and text model selectors SHALL use the discovered runtime lists first

Scenario: Generation entry points use discovered lists

  • GIVEN model discovery has completed successfully
  • WHEN the user opens the AI input bar or generation dialogs
  • THEN those selectors SHALL use the same discovered runtime lists
  • AND continue to work with saved model IDs from settings