pi-cursor-sdk 0.1.13 → 0.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.14 - 2026-05-18
4
+
5
+ ### Changed
6
+ - Refreshed the Cursor fallback model snapshot and bundled default/non-Max context-window cache from the current `@cursor/sdk` 1.0.13 catalog, including Composer 2.5 (`composer-2.5` and `composer-2-5`) with default fast-mode support.
7
+ - Updated README, demo, and maintainer model UX docs to use Composer 2.5 as the primary Composer example.
8
+
3
9
  ## 0.1.13 - 2026-05-18
4
10
 
5
11
  ### Fixed
package/README.md CHANGED
@@ -21,7 +21,7 @@ pi install https://github.com/fitchmultz/pi-cursor-sdk
21
21
  2. Start pi with a Cursor model:
22
22
 
23
23
  ```bash
24
- pi --model cursor/composer-2
24
+ pi --model cursor/composer-2.5
25
25
  ```
26
26
 
27
27
  3. In pi, run `/login`, choose `Use an API key`, choose `Cursor`, and paste your Cursor API key.
@@ -30,7 +30,7 @@ If pi started without a key, run `/cursor-refresh-models` after `/login` to refr
30
30
 
31
31
  ## Requirements
32
32
 
33
- - Node.js 18+
33
+ - Node.js 22.19+
34
34
  - pi
35
35
  - a Cursor API key saved through `/login`, available as `CURSOR_API_KEY`, or passed with pi's `--api-key`
36
36
 
@@ -64,7 +64,7 @@ For development from this repository:
64
64
 
65
65
  ```bash
66
66
  npm install
67
- pi -e . --model cursor/composer-2
67
+ pi -e . --model cursor/composer-2.5
68
68
  ```
69
69
 
70
70
  ## Configure your Cursor API key
@@ -72,7 +72,7 @@ pi -e . --model cursor/composer-2
72
72
  Preferred setup:
73
73
 
74
74
  ```bash
75
- pi --model cursor/composer-2
75
+ pi --model cursor/composer-2.5
76
76
  ```
77
77
 
78
78
  Then, inside pi:
@@ -89,13 +89,13 @@ Environment setup:
89
89
 
90
90
  ```bash
91
91
  export CURSOR_API_KEY="your-key"
92
- pi --model cursor/composer-2
92
+ pi --model cursor/composer-2.5
93
93
  ```
94
94
 
95
95
  One-shot setup:
96
96
 
97
97
  ```bash
98
- pi --api-key "your-key" --model cursor/composer-2 --cursor-no-fast -p "Say ok only."
98
+ pi --api-key "your-key" --model cursor/composer-2.5 --cursor-no-fast -p "Say ok only."
99
99
  ```
100
100
 
101
101
  Discovery uses pi's native resolution order for this extension: `--api-key`, the stored `cursor` key in `~/.pi/agent/auth.json`, then `CURSOR_API_KEY`.
@@ -118,7 +118,7 @@ Expected behavior:
118
118
  Smoke test:
119
119
 
120
120
  ```bash
121
- pi --model cursor/composer-2 --cursor-no-fast -p "Reply with: ok"
121
+ pi --model cursor/composer-2.5 --cursor-no-fast -p "Reply with: ok"
122
122
  ```
123
123
 
124
124
  ## Choosing a model
@@ -126,7 +126,7 @@ pi --model cursor/composer-2 --cursor-no-fast -p "Reply with: ok"
126
126
  Choose Cursor models interactively with `/model`, or pass a model on the command line:
127
127
 
128
128
  ```bash
129
- pi --model cursor/composer-2
129
+ pi --model cursor/composer-2.5
130
130
  pi --model cursor/gpt-5.5@1m
131
131
  pi --model cursor/gpt-5.5@272k
132
132
  pi --model cursor/claude-opus-4-7@300k
@@ -180,10 +180,10 @@ For one run, force fast on or off without changing saved defaults:
180
180
 
181
181
  ```bash
182
182
  pi --model cursor/gpt-5.5@1m --cursor-fast -p "Say ok only"
183
- pi --model cursor/composer-2 --cursor-no-fast -p "Say ok only"
183
+ pi --model cursor/composer-2.5 --cursor-no-fast -p "Say ok only"
184
184
  ```
185
185
 
186
- `composer-2` can default to fast. Use `--cursor-no-fast` for a one-shot no-fast `composer-2` run. In print mode (`-p`), `--cursor-no-fast` is silent and does not write `~/.pi/agent/cursor-sdk.json`.
186
+ Composer 2 and Composer 2.5 can default to fast. Use `--cursor-no-fast` for a one-shot no-fast Composer run. In print mode (`-p`), `--cursor-no-fast` is silent and does not write `~/.pi/agent/cursor-sdk.json`.
187
187
 
188
188
  In interactive mode, the footer only shows fast mode when fast is enabled:
189
189
 
@@ -199,14 +199,11 @@ Images from the latest user message are forwarded to Cursor. Historical images a
199
199
 
200
200
  ## Fallback models
201
201
 
202
- If no key is available from `/login`, `CURSOR_API_KEY`, or `--api-key`, model discovery fails, or discovery returns no models, the extension registers conservative fallback Cursor models and notifies interactive users when possible:
202
+ If no key is available from `/login`, `CURSOR_API_KEY`, or `--api-key`, model discovery fails, or discovery returns no models, the extension registers a bundled fallback snapshot of the latest reviewed Cursor SDK model catalog and notifies interactive users when possible.
203
203
 
204
- - `composer-2`
205
- - `gpt-5.5@1m`, `gpt-5.5@272k`
206
- - `claude-sonnet-4-6@1m`, `claude-sonnet-4-6@200k`
207
- - `claude-opus-4-7@1m`, `claude-opus-4-7@300k`
204
+ The fallback snapshot includes Composer 2.5 (`composer-2.5` and `composer-2-5`), Composer 2, GPT, Claude, Gemini, Grok, Kimi, and other model IDs exposed by the reviewed `Cursor.models.list()` output. The exact checked-in snapshot lives in `src/cursor-fallback-models.generated.ts`.
208
205
 
209
- Fallback models are a conservative startup model list. Actual Cursor runs still need a key from `/login`, `CURSOR_API_KEY`, or `--api-key`. If you add auth after startup, run `/cursor-refresh-models` to refresh the full live Cursor model catalog without restarting pi.
206
+ Actual Cursor runs still need a key from `/login`, `CURSOR_API_KEY`, or `--api-key`. If you add auth after startup, run `/cursor-refresh-models` to refresh the full live Cursor model catalog without restarting pi.
210
207
 
211
208
  ## Limits
212
209
 
@@ -229,13 +226,13 @@ You can also restart pi with a key in the same shell or launcher that starts pi:
229
226
 
230
227
  ```bash
231
228
  export CURSOR_API_KEY="your-key"
232
- pi --model cursor/composer-2
229
+ pi --model cursor/composer-2.5
233
230
  ```
234
231
 
235
232
  Or run a one-shot command:
236
233
 
237
234
  ```bash
238
- pi --api-key "your-key" --model cursor/composer-2 -p "Say ok only"
235
+ pi --api-key "your-key" --model cursor/composer-2.5 -p "Say ok only"
239
236
  ```
240
237
 
241
238
  ### `pi --list-models cursor` shows no Cursor models
@@ -273,7 +270,7 @@ Cursor SDK local agents load MCP servers from Cursor setting sources and inline
273
270
  Cursor native replay is a UI enhancement for interactive TTY sessions. If another extension already owns `read`, `bash`, `ls`, `cursor_edit`, or `cursor_write`, this extension skips only the conflicting native replay wrapper and uses the scrubbed Cursor activity transcript for that tool instead. To disable Cursor native replay registration entirely, start pi with:
274
271
 
275
272
  ```bash
276
- PI_CURSOR_NATIVE_TOOL_DISPLAY=0 pi --model cursor/composer-2
273
+ PI_CURSOR_NATIVE_TOOL_DISPLAY=0 pi --model cursor/composer-2.5
277
274
  ```
278
275
 
279
276
  `PI_CURSOR_REGISTER_NATIVE_TOOLS=0` is also accepted as a registration-only opt-out.
@@ -306,7 +303,7 @@ Local development run:
306
303
 
307
304
  ```bash
308
305
  npm install
309
- CURSOR_API_KEY="your-key" pi -e . --model cursor/composer-2
306
+ CURSOR_API_KEY="your-key" pi -e . --model cursor/composer-2.5
310
307
  ```
311
308
 
312
309
  Maintainer design notes live in [`docs/cursor-model-ux-spec.md`](docs/cursor-model-ux-spec.md).
@@ -149,7 +149,7 @@ cursor/gpt-5.5@1m
149
149
  cursor/gpt-5.5@272k
150
150
  cursor/claude-opus-4-7@1m
151
151
  cursor/claude-opus-4-7@300k
152
- cursor/composer-2
152
+ cursor/composer-2.5
153
153
  ```
154
154
 
155
155
  Avoid colon-based context IDs in the first implementation unless this spec is intentionally changed:
@@ -428,7 +428,7 @@ Use Cursor default variants:
428
428
 
429
429
  ```text
430
430
  gpt-5.5 -> cursor/gpt-5.5@1m, thinking medium, fast=false
431
- composer-2 -> cursor/composer-2, fast=true
431
+ composer-2.5 -> cursor/composer-2.5, fast=true
432
432
  ```
433
433
 
434
434
  ### Resume Session
@@ -492,7 +492,7 @@ These examples document the capability shapes the extension handles, not an exha
492
492
  | Example model shape | Cursor controls | Pi representation |
493
493
  |---|---|---|
494
494
  | plain model, such as `default` or models with no exposed controls | none | plain model |
495
- | `composer-2`-style model | fast | plain model + fast extension state |
495
+ | Composer-style model such as `composer-2.5` or `composer-2` | fast | plain model + fast extension state |
496
496
  | GPT-style reasoning model with context variants | context, reasoning, fast when exposed | context variants + native thinking + optional fast state |
497
497
  | Claude-style thinking model with context variants | thinking, context, effort when exposed | context variants + native thinking + optional fast state |
498
498
  | Claude-style thinking model without context variants | thinking and/or effort | plain model + native thinking |
@@ -504,12 +504,12 @@ If Cursor later adds `fast`, `context`, `reasoning`, `effort`, or aliases to a m
504
504
 
505
505
  ## Detailed Examples
506
506
 
507
- ### `composer-2`
507
+ ### Composer 2 / 2.5
508
508
 
509
- Initial Cursor default:
509
+ Initial Cursor default for Composer 2.5:
510
510
 
511
511
  ```text
512
- pi model: cursor/composer-2
512
+ pi model: cursor/composer-2.5
513
513
  Cursor params: fast=true
514
514
  pi thinking: off
515
515
  Cursor status: cursor fast
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-cursor-sdk",
3
- "version": "0.1.13",
3
+ "version": "0.1.14",
4
4
  "description": "pi provider extension backed by @cursor/sdk local agents",
5
5
  "author": "Mitch Fultz (https://github.com/fitchmultz)",
6
6
  "license": "MIT",
@@ -1,14 +1,16 @@
1
- // Generated from Cursor SDK checkpoint tokenDetails.maxTokens on 2026-05-04.
1
+ // Generated from Cursor SDK checkpoint tokenDetails.maxTokens on 2026-05-18.
2
+ // Refresh with: npm run refresh:cursor-snapshots -- --write --context-windows ~/.pi/agent/cursor-sdk-context-windows.json
2
3
  // These are default/non-Max-mode SDK context windows for Cursor models that do not
3
4
  // expose a catalog `context` parameter. Do not replace them with Max Mode values
4
5
  // unless the Cursor SDK exposes an exact Max Mode model selection and the extension
5
6
  // uses that selection for matching pi model IDs.
6
7
  export const BUNDLED_CONTEXT_WINDOWS = {
8
+ "default": 200000,
7
9
  "claude-haiku-4-5": 200000,
8
10
  "claude-opus-4-5": 200000,
9
11
  "composer-1.5": 200000,
10
12
  "composer-2": 200000,
11
- default: 200000,
13
+ "composer-2.5": 200000,
12
14
  "gemini-2.5-flash": 200000,
13
15
  "gemini-3-flash": 200000,
14
16
  "gemini-3.1-pro": 200000,
@@ -22,6 +24,7 @@ export const BUNDLED_CONTEXT_WINDOWS = {
22
24
  "gpt-5.3-codex-spark": 128000,
23
25
  "gpt-5.4-mini": 272000,
24
26
  "gpt-5.4-nano": 272000,
27
+ "gpt-5.5@272k": 272000,
25
28
  "grok-4-20": 200000,
26
29
  "kimi-k2.5": 262000,
27
30
  } as const satisfies Record<string, number>;