Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -283,6 +283,13 @@ les paramètres de modèle propres à Cursor :
Les variantes explicites envoient le modèle `default` de Cursor avec son paramètre `optimization`, ce qui préserve la
sélection à chaque requête. Elles restent disponibles lorsque la découverte en direct omet `default`.

### Vision

La vision native Cursor utilise `SelectedImage` (plafond JPEG souple + `blobIdWithData`) pour les modèles
qui voient les images nativement — Claude, Gemini, GPT, Kimi et Grok notamment — à partir des images
`data:` du tour actif uniquement. Auto, la famille Composer et GLM (`glm-5.2`, `glm-5.3`) restent
sur la liste curatée `noVisionModels` et passent par le sidecar de description d'images.

Les outils locaux pilotés par le serveur Cursor sont désactivés par défaut. Codex continue d'utiliser ses propres outils tels que
`apply_patch` et `exec_command` avec sa propre politique d'approbation et de bac à sable :

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -285,6 +285,13 @@ Cursor-specific model parameters:
Explicit variants send Cursor's `default` model with its `optimization` parameter, preserving the
selection on every request. They remain available when live discovery omits `default`.

### Vision

Native Cursor vision uses `SelectedImage` (JPEG soft-cap + `blobIdWithData`) for models that can
see images natively — Claude, Gemini, GPT, Kimi, and Grok among them — using active-turn `data:`
images only. Auto, the Composer family, and GLM (`glm-5.2`, `glm-5.3`) stay on the curated `noVisionModels`
list and use the vision describe sidecar instead.

Cursor server-driven local tools are disabled by default. Codex continues using its own tools such as
`apply_patch` and `exec_command` with its own approval and sandbox policy:

Expand Down
22 changes: 22 additions & 0 deletions src/adapters/cursor/discovery.ts
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,28 @@ export const CURSOR_ROUTER_MODEL_IDS = [
...CURSOR_ROUTING_LEVELS.map(level => `${CURSOR_AUTO_MODEL_ID}-${level}`),
] as const;

/**
* Cursor models that cannot see images natively. OpenCodex routes them through the vision
* sidecar (the catalog still advertises image so Codex can attach). Evidence:
* - Composer family: Cursor staff — text-only; "Model does not support images"
* - Auto / router modes: Cursor docs omit Images for Auto Cost; staff — pick Claude/GPT for images
* - glm-5.2: Cursor docs omit Images; Z.ai GLM-5.2 is text-only (vision is GLM-5V)
* - glm-5.3: same family; seeded as text-only ahead of Cursor's lineup update
*
* Composer ids are enumerated explicitly — prefix wildcard matching is deliberately out of
* scope here; a live-discovered new Composer slug stays native-path until curated. Everyone
* else in the static seed (Claude, Gemini, GPT, Kimi, Grok) takes SelectedImage. Other
* live-discovered ids stay unclassified (native path) until curated.
*/
export const CURSOR_NO_VISION_MODELS = [
...CURSOR_ROUTER_MODEL_IDS,
"composer-1",
"composer-2.5",
"composer-2.5-fast",
"glm-5.2",
"glm-5.3",
] as const;

/** Wire id Cursor Connect expects for the auto-router (GetUsableModels returns `default`, not `auto`). */
export const CURSOR_AUTO_WIRE_MODEL_ID = "default";

Expand Down
Loading
Loading