-
Notifications
You must be signed in to change notification settings - Fork 1
refactor: replace hardcoded model names in pipelines with adapter-agnostic tiers (cheapest/fastest/strongest) #704
Copy link
Copy link
Open
Labels
enhancementNew feature or requestNew feature or requestpipelinesPipeline-related changesPipeline-related changesrefactor
Description
Summary
Pipelines and personas currently reference adapter-specific model names (e.g. claude-sonnet-4-5-20250514). This couples pipeline definitions to a single adapter. Instead, steps should declare a model tier — cheapest, fastest, or strongest — and the runtime should resolve the tier to a concrete model based on the active adapter's configuration in wave.yaml.
Original Description
i want pipelines and personas to be adapter agnostic, this means for each step we just choose from "cheapest, fastest or strongest" and this adapts to the three categories in the wave manifest file
so when choosing to run with --adapter opencode, the pipeline should change to those three models (depending on the users preferences)
Current Behavior
- Pipeline YAML and persona definitions use hardcoded model names tied to a specific adapter (e.g. Claude model IDs).
- Switching adapters via
--adapterdoes not remap models; the pipeline fails or uses wrong models.
Desired Behavior
- Pipeline steps and personas declare a tier (
cheapest,fastest, orstrongest) instead of a concrete model name. - The
wave.yamlmanifest maps each tier to a concrete model per adapter. - At runtime, the executor resolves the tier to the correct model for the active adapter.
- Users can override tier→model mappings in their manifest.
Acceptance Criteria
- Define a
model_tierenum (cheapest,fastest,strongest) in pipeline/persona schema - Add tier→model mapping section to
wave.yamladapter configuration - Pipeline executor resolves tier to concrete model at step execution time
- All built-in pipelines and personas use tiers instead of hardcoded model names
-
--adapter <name>flag correctly resolves tiers for the selected adapter - Backward compatibility: raw model names still work if specified directly
- Documentation updated for manifest tier configuration
Implementation Notes
- The manifest already has adapter sections — tier mappings could nest under each adapter config.
- Consider a sensible default mapping so users don't need to configure every tier for every adapter.
- Persona
modelfield should accept both tier keywords and raw model strings.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requestpipelinesPipeline-related changesPipeline-related changesrefactor