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 +10 -0
- package/README.md +4 -4
- package/docs/cursor-model-ux-spec.md +3 -3
- package/package.json +1 -1
- package/src/cursor-state.ts +1 -1
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.
|
|
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
|
|
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
package/src/cursor-state.ts
CHANGED
|
@@ -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");
|