Add a supervised Cursor CLI runtime for routed Cursor model sessions. - Stream Cursor prompt output into Fusion session callbacks with resume support. - Support Windows Cursor shims, inactivity-based supervision, and cursor-agent to cursor fallback execution. - Route Cursor CLI models through the bundled plugin and document the runtime contract. Files changed: .changeset/fn-9097-cursor-cli-runtime.md | 7 ++ docs/cursor-cli-contract.md | 21 ++++ docs/settings-reference.md | 4 +- .../cli-runtime-routing-conformance.test.ts | 11 +- .../engine/src/agents/agent-session-helpers.ts | 6 +- packages/engine/src/agents/cli-provider-routing.ts | 27 ++--- plugins/fusion-plugin-cursor-runtime/README.md | 21 ++++ plugins/fusion-plugin-cursor-runtime/package.json | 1 + .../src/__tests__/cli-spawn.test.ts | 25 ++++- .../src/__tests__/prompt-transport.test.ts | 58 ++++++++++ .../src/__tests__/runtime-adapter.test.ts | 44 +++++--- .../src/__tests__/stream-parser.test.ts | 12 +++ .../fusion-plugin-cursor-runtime/src/cli-spawn.ts | 57 +++++++++- plugins/fusion-plugin-cursor-runtime/src/index.ts | 4 +- .../src/prompt-transport.ts | 120 +++++++++++++++++++++ .../src/runtime-adapter.ts | 59 ++++++---- .../src/stream-parser.ts | 43 ++++++++ plugins/fusion-plugin-cursor-runtime/src/types.ts | 18 ++-- pnpm-lock.yaml | 3 + 19 files changed, 458 insertions(+), 83 deletions(-) Fusion-Task-Id: FN-9097 Fusion-Task-Lineage: a4eed861-6059-4528-9f80-3426f5ccad58 Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
42 lines
924 B
JSON
42 lines
924 B
JSON
{
|
|
"name": "@fusion-plugin-examples/cursor-runtime",
|
|
"version": "0.1.54",
|
|
"type": "module",
|
|
"description": "Cursor CLI runtime plugin for Fusion",
|
|
"keywords": [
|
|
"fusion-plugin",
|
|
"cursor",
|
|
"runtime"
|
|
],
|
|
"exports": {
|
|
".": {
|
|
"types": "./src/index.ts",
|
|
"source": "./src/index.ts",
|
|
"import": "./dist/index.js"
|
|
},
|
|
"./probe": {
|
|
"types": "./src/probe.ts",
|
|
"source": "./src/probe.ts",
|
|
"import": "./dist/probe.js"
|
|
}
|
|
},
|
|
"private": true,
|
|
"scripts": {
|
|
"build": "tsc",
|
|
"test": "vitest run --silent=passed-only --reporter=dot"
|
|
},
|
|
"dependencies": {
|
|
"@fusion/core": "workspace:*",
|
|
"@fusion/plugin-sdk": "workspace:*"
|
|
},
|
|
"peerDependencies": {
|
|
"@earendil-works/pi-ai": "*",
|
|
"@earendil-works/pi-coding-agent": "*"
|
|
},
|
|
"devDependencies": {
|
|
"@types/node": "^25.5.2",
|
|
"typescript": "^5.7.0",
|
|
"vitest": "^4.1.10"
|
|
}
|
|
}
|