@brainervirus/workit-cursor 0.8.6 → 0.8.7
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/.cursor-plugin/plugin.json +1 -1
- package/README.md +7 -6
- package/dist/mcp-server.js +16 -10
- package/hooks/hooks-cursor.json +1 -1
- package/mcp.json +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -23,7 +23,8 @@ npx @brainervirus/workit-cli init
|
|
|
23
23
|
"command": "npx",
|
|
24
24
|
"args": [
|
|
25
25
|
"-y",
|
|
26
|
-
"--
|
|
26
|
+
"--prefer-online",
|
|
27
|
+
"--package=@brainervirus/workit-cursor@latest",
|
|
27
28
|
"workit-cursor-mcp",
|
|
28
29
|
"${workspaceFolder}"
|
|
29
30
|
]
|
|
@@ -35,7 +36,7 @@ npx @brainervirus/workit-cli init
|
|
|
35
36
|
### Requirements
|
|
36
37
|
|
|
37
38
|
- **Node.js ≥ 22** — the MCP server and session-start hook are self-contained Node bundles invoked through `npx`.
|
|
38
|
-
- **Network** — `npx -y …@
|
|
39
|
+
- **Network** — `npx -y --prefer-online …@latest` resolves and downloads the package on first run in each environment; a machine that cannot reach the npm registry cannot start the MCP server or hook (see [Runtime](#runtime)).
|
|
39
40
|
|
|
40
41
|
## What it provides
|
|
41
42
|
|
|
@@ -59,11 +60,11 @@ Cursor adapts workit through policy-only confirmation: approvals and lifecycle t
|
|
|
59
60
|
|
|
60
61
|
Cursor launches the MCP server and session-start hook through `npx`, so the shipped manifests contain no repository-relative `dist` paths:
|
|
61
62
|
|
|
62
|
-
- **MCP server** — `npx -y --package=@brainervirus/workit-cursor@
|
|
63
|
-
- **Session-start hook** — `npx -y --package=@brainervirus/workit-cursor@
|
|
63
|
+
- **MCP server** — `npx -y --prefer-online --package=@brainervirus/workit-cursor@latest workit-cursor-mcp ${workspaceFolder}`. It speaks the MCP stdio protocol; `stdout` is reserved for protocol messages and diagnostics go to `stderr`.
|
|
64
|
+
- **Session-start hook** — `npx -y --prefer-online --package=@brainervirus/workit-cursor@latest workit-cursor-session-start`. It emits valid hook output and a diagnostic on runtime failure, and remains fail-open where Cursor's hook contract requires startup continuity.
|
|
64
65
|
- `npx` startup or network failure is surfaced by Cursor as an MCP/hook startup failure; Workit never silently substitutes stale local runtime code.
|
|
65
66
|
|
|
66
|
-
The runtime runs from the
|
|
67
|
+
The runtime runs from `@latest` with the mandatory `--prefer-online` flag: Cursor reviews plugin metadata from Git, while npm serves the runtime. `--prefer-online` forces npx to check the registry so a stale cached `latest` resolution is never reused. See [Update review](#update-review).
|
|
67
68
|
|
|
68
69
|
## Security and data handling
|
|
69
70
|
|
|
@@ -96,7 +97,7 @@ The repository root carries `.cursor-plugin/marketplace.json`, indexing `package
|
|
|
96
97
|
|
|
97
98
|
- **Installing from Marketplace** — a Marketplace admin adds the repository URL through Cursor's authenticated publisher flow; end users then install the plugin from the Cursor Marketplace UI, which reads `.cursor-plugin/plugin.json` and the tracked components directly from Git.
|
|
98
99
|
- **Submission** — Marketplace submission is a separate, later authenticated action at `https://cursor.com/marketplace/publish`. It is **not** performed here and no publication or acceptance is claimed; the repository is kept validated and submission-ready.
|
|
99
|
-
- **Update review** — Git plugin metadata (manifest, rules, skills, assets) is reviewed by Cursor on Marketplace updates, while the npm runtime
|
|
100
|
+
- **Update review** — Git plugin metadata (manifest, rules, skills, assets) is reviewed by Cursor on Marketplace updates, while the npm runtime runs from `@latest` with `--prefer-online`. The selector is shared across `mcp.json`, `hooks-cursor.json`, and `run-cursor-mcp.sh`, and a stale `latest` resolution is prevented by the mandatory `--prefer-online` flag.
|
|
100
101
|
- **Troubleshooting** — `workit doctor` (or the `workflow_doctor` tool) reports installation health including runtime, token, VCS/YouTrack, and log-writability checks; it exits nonzero on failure. An MCP/hook startup failure with no network is an `npx`/registry reachability issue, not a Workit defect.
|
|
101
102
|
|
|
102
103
|
## Docs
|
package/dist/mcp-server.js
CHANGED
|
@@ -21842,13 +21842,25 @@ function isWorkitPlugin(value) {
|
|
|
21842
21842
|
const pkgPath = s.includes("/packages/workit-opencode/") || s.includes("/packages/workit-cursor/") || s.includes("/node_modules/@brainervirus/workit-opencode/") || s.includes("/node_modules/@brainervirus/workit-cursor/");
|
|
21843
21843
|
return named(s, "workflow-toolkit") || named(s, "workflow-toolkit-opencode") || named(s, "local/workflow-toolkit") || named(s, "workit") || named(s, "local/workit") || named(s, "@brainervirus/workit-opencode") || named(s, "@brainervirus/workit-cursor") || url && pkgPath || s.startsWith("git+file://") && s.includes("workflow-toolkit");
|
|
21844
21844
|
}
|
|
21845
|
+
function cursorMcpServerEntry(_packageDir) {
|
|
21846
|
+
return {
|
|
21847
|
+
command: "npx",
|
|
21848
|
+
args: [
|
|
21849
|
+
"-y",
|
|
21850
|
+
"--prefer-online",
|
|
21851
|
+
`--package=${CURSOR_RUNTIME_PACKAGE}`,
|
|
21852
|
+
"workit-cursor-mcp",
|
|
21853
|
+
"${workspaceFolder}"
|
|
21854
|
+
]
|
|
21855
|
+
};
|
|
21856
|
+
}
|
|
21845
21857
|
function cursorHooksEntry(_packageDir) {
|
|
21846
21858
|
return {
|
|
21847
|
-
command: `npx -y --package=${CURSOR_RUNTIME_PACKAGE} workit-cursor-session-start`,
|
|
21859
|
+
command: `npx -y --prefer-online --package=${CURSOR_RUNTIME_PACKAGE} workit-cursor-session-start`,
|
|
21848
21860
|
args: []
|
|
21849
21861
|
};
|
|
21850
21862
|
}
|
|
21851
|
-
var named = (s, name) => s === name || s.startsWith(`${name}@`), CURSOR_RUNTIME_PACKAGE = "@brainervirus/workit-cursor@
|
|
21863
|
+
var named = (s, name) => s === name || s.startsWith(`${name}@`), CURSOR_RUNTIME_PACKAGE = "@brainervirus/workit-cursor@latest";
|
|
21852
21864
|
var init_registration = () => {};
|
|
21853
21865
|
|
|
21854
21866
|
// packages/workit-core/src/core/skill-manifests.ts
|
|
@@ -22189,12 +22201,9 @@ var TOKEN_PLACEHOLDER2 = "YOUR_TOKEN_HERE", findDevFromCwd = (cwd) => {
|
|
|
22189
22201
|
return "invalid";
|
|
22190
22202
|
}
|
|
22191
22203
|
const executable = path9.basename(command).toLowerCase();
|
|
22204
|
+
const canonical = cursorMcpServerEntry("").args;
|
|
22192
22205
|
if (executable === "npx" || executable === "npx.exe" || executable === "npx.cmd") {
|
|
22193
|
-
if (args
|
|
22194
|
-
return "invalid";
|
|
22195
|
-
if (args[1] !== `--package=${CURSOR_RUNTIME_PACKAGE}`)
|
|
22196
|
-
return "invalid";
|
|
22197
|
-
if (args[2] !== "workit-cursor-mcp")
|
|
22206
|
+
if (args.length !== canonical.length || args.some((a, i) => a !== canonical[i]))
|
|
22198
22207
|
return "invalid";
|
|
22199
22208
|
return { kind: "npx" };
|
|
22200
22209
|
}
|
|
@@ -24503,9 +24512,6 @@ var COORDINATOR_RECOVERY_TEXT, CURSOR_SUBAGENT_UNSUPPORTED_TEXT, MENU_CHOICES, e
|
|
|
24503
24512
|
}), resetForPlanDrift = (state) => ({
|
|
24504
24513
|
...state,
|
|
24505
24514
|
plan: { ...state.plan, status: "draft", evidence: null, approved_digest: null },
|
|
24506
|
-
menu: { presented: false, chosen: "", evidence: null },
|
|
24507
|
-
execution: { status: "pending", mode: null, evidence: null },
|
|
24508
|
-
handoff_destination: false,
|
|
24509
24515
|
updated_at: Date.now()
|
|
24510
24516
|
}), driftCodeFor = (root, relPath, storedDigest) => {
|
|
24511
24517
|
if (storedDigest === null)
|
package/hooks/hooks-cursor.json
CHANGED
package/mcp.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"mcpServers": {
|
|
3
3
|
"workit": {
|
|
4
4
|
"command": "npx",
|
|
5
|
-
"args": ["-y", "--package=@brainervirus/workit-cursor@
|
|
5
|
+
"args": ["-y", "--prefer-online", "--package=@brainervirus/workit-cursor@latest", "workit-cursor-mcp", "${workspaceFolder}"]
|
|
6
6
|
}
|
|
7
7
|
}
|
|
8
8
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@brainervirus/workit-cursor",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.7",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Workit Cursor plugin: MCP server, hooks, rules, marketplace manifest (thin over @brainervirus/workit-core)",
|
|
6
6
|
"keywords": [
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"build": "bun scripts/build.ts"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@brainervirus/workit-core": "^0.8.
|
|
42
|
+
"@brainervirus/workit-core": "^0.8.7",
|
|
43
43
|
"@modelcontextprotocol/sdk": "^1.12.0",
|
|
44
44
|
"zod": "^3.24.0"
|
|
45
45
|
},
|