Skip to content

Map OpenAI reasoning effort to Cursor model variants #39

Description

@cty41

Problem

Cursor CLI exposes reasoning levels as separate model IDs (for example, gpt-5.6-sol-low, gpt-5.6-sol-high, and gpt-5.6-sol-max). OpenAI-compatible clients instead send a logical model plus reasoning_effort (Chat Completions) or reasoning.effort (Responses).

Today the proxy ignores those controls, so clients such as DeepSeek Harness cannot change reasoning level without treating every Cursor variant as a separate model.

Proposed behavior

Resolve the requested logical/explicit model against the live agent --list-models catalog:

  • gpt-5.6-sol + high -> gpt-5.6-sol-high
  • preserve -fast while changing effort
  • normalize off to Cursor's none, and accept xhigh / extra-high
  • only select variants present in the live catalog
  • return a clear 400 error when the family does not offer the requested level

This should apply to both Chat Completions and Responses. I have a tested implementation ready and will link the PR here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions