Skip to content

Composer model picker cannot set reasoning effort #375

Description

@martincarapia

Problem

Reasoning-capable models expose an effort level, but ComposerModelSelector has nowhere to surface it. Consumers wanting to offer the setting have to render a second, separate control next to the model pill — which is wrong on two counts: effort is meaningless without a model, and the valid levels depend on which model is selected.

Why it belongs in the component

The two settings are coupled. A separate control cannot know which levels are valid without duplicating model→provider knowledge that the picker already has in view.

Constraint

Effort scales are provider-specific and not interchangeable: OpenAI accepts minimal|low|medium|high, Anthropic also accepts xhigh|max. A value valid for one provider is a 400 on the other, so the component must not bake in either scale — the caller supplies the levels.

Acceptance criteria

  • Trigger shows the selected model and effort together
  • Effort levels are supplied by the caller, not derived in the component
  • The control is hidden entirely when no levels are offered (i.e. the model cannot reason)
  • The model's own default level is visually distinguishable
  • Keyboard navigable, consistent with the existing model list
  • Backwards compatible — omitting the new props renders as before

Resolved by PR #374.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions