pi-cursor-sdk 0.1.54 → 0.1.55

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
@@ -2,6 +2,16 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.1.55 - 2026-07-02
6
+
7
+ ### Changed
8
+
9
+ - Show Cursor models that do not expose a Cursor `fast` parameter as `cursor-fast:n/a` in the interactive footer instead of plain `cursor`, including `cursor-fast:n/a · plan` when Cursor plan mode is active.
10
+
11
+ ### Validation
12
+
13
+ - `npm test`, `npm run typecheck`, `npm run typecheck:tests`, `npm pack --dry-run`, `npm run smoke:platform:all`, and release review pass locally.
14
+
5
15
  ## 0.1.54 - 2026-07-02
6
16
 
7
17
  ### Changed
package/README.md CHANGED
@@ -239,15 +239,15 @@ Composer 2 and Composer 2.5 can default to fast. Use `--cursor-no-fast` or a `:s
239
239
  In interactive mode, the footer shows Cursor status only while a Cursor model is active. Fast-capable models show fast state explicitly, and fast and plan mode share one Cursor status value so they do not overwrite each other:
240
240
 
241
241
  ```text
242
- cursor
243
- cursor · plan
242
+ cursor-fast:n/a
243
+ cursor-fast:n/a · plan
244
244
  cursor-fast:off
245
245
  cursor-fast:on
246
246
  cursor-fast:off · plan
247
247
  cursor-fast:on · plan
248
248
  ```
249
249
 
250
- `cursor-fast:off` means fast mode is off. A plain `cursor` status means the active Cursor model does not expose a fast parameter. If you do not see `plan`, Cursor SDK mode is the default `agent` mode.
250
+ `cursor-fast:off` means fast mode is off. `cursor-fast:n/a` means the active Cursor model does not expose a fast parameter. If you do not see `plan`, Cursor SDK mode is the default `agent` mode.
251
251
 
252
252
  ## Cursor SDK mode
253
253
 
@@ -404,7 +404,7 @@ That does not mean the model cannot think. It means the Cursor SDK does not expo
404
404
 
405
405
  ### I do not see `cursor-fast:on` / `cursor-fast:off` or `plan` in the footer
406
406
 
407
- The Cursor footer appears only while a Cursor model is active. Fast-capable models show `cursor-fast:on` or `cursor-fast:off`; Cursor models without a fast parameter show plain `cursor`. Cursor SDK mode is the default `agent` mode when `plan` is absent. When both are active, pi shows one combined Cursor status such as `cursor-fast:on · plan` or `cursor · plan`.
407
+ The Cursor footer appears only while a Cursor model is active. Fast-capable models show `cursor-fast:on` or `cursor-fast:off`; Cursor models without a fast parameter show `cursor-fast:n/a`. Cursor SDK mode is the default `agent` mode when `plan` is absent. When both are active, pi shows one combined Cursor status such as `cursor-fast:on · plan` or `cursor-fast:n/a · plan`.
408
408
 
409
409
  ### My Cursor app settings or rules do not seem to apply
410
410
 
@@ -410,7 +410,7 @@ Rules:
410
410
  Status examples:
411
411
 
412
412
  ```text
413
- cursor · plan
413
+ cursor-fast:n/a · plan
414
414
  cursor-fast:off · plan
415
415
  cursor-fast:on · plan
416
416
  ```
@@ -435,7 +435,7 @@ Expected native footer behavior:
435
435
  - provider/model is shown by pi from the selected `cursor` model,
436
436
  - thinking level is shown by pi when `reasoning` is true,
437
437
  - context usage is computed from `contextWindow`,
438
- - extension status adds only Cursor-only text such as `cursor`, `cursor · plan`, `cursor-fast:off`, `cursor-fast:on`, or `cursor-fast:on · plan`.
438
+ - extension status adds only Cursor-only text such as `cursor-fast:n/a`, `cursor-fast:n/a · plan`, `cursor-fast:off`, `cursor-fast:on`, or `cursor-fast:on · plan`.
439
439
 
440
440
  `ctx.ui.setStatus()` adds an extension status line in the default footer. It does not patch the built-in model segment. The native shape is closer to:
441
441
 
@@ -706,7 +706,7 @@ Before calling done:
706
706
  - verify default pi footer remains unchanged
707
707
  - verify Cursor status appears only for Cursor models
708
708
  - verify Cursor fast-capable models show `cursor-fast:on` or `cursor-fast:off`
709
- - verify Cursor `plan` status appears only in non-default mode and combines with status as `cursor · plan`, `cursor-fast:on · plan`, or `cursor-fast:off · plan`
709
+ - verify Cursor `plan` status appears only in non-default mode and combines with status as `cursor-fast:n/a · plan`, `cursor-fast:on · plan`, or `cursor-fast:off · plan`
710
710
  - verify non-cursor footer/status unchanged
711
711
  - verify `shift+tab` uses pi native thinking
712
712
  - verify context changes through native model selection
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-cursor-sdk",
3
- "version": "0.1.54",
3
+ "version": "0.1.55",
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",
@@ -204,7 +204,7 @@ export function getCursorProviderAgentModeOrThrow(): AgentModeOption {
204
204
  }
205
205
 
206
206
  function formatCursorStatus(fast: boolean | undefined): string {
207
- const parts = [fast === true ? "cursor-fast:on" : fast === false ? "cursor-fast:off" : "cursor"];
207
+ const parts = [fast === true ? "cursor-fast:on" : fast === false ? "cursor-fast:off" : "cursor-fast:n/a"];
208
208
  const modeResolution = resolveCursorAgentMode();
209
209
  if (modeResolution.kind === "invalid") {
210
210
  parts.push("mode invalid");