@neurcode-ai/cli 0.15.8 → 0.16.0
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/dist/api-client.d.ts +19 -0
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js +10 -0
- package/dist/api-client.js.map +1 -1
- package/dist/commands/cursor.d.ts.map +1 -1
- package/dist/commands/cursor.js +71 -2
- package/dist/commands/cursor.js.map +1 -1
- package/dist/commands/runtime-adapter.d.ts.map +1 -1
- package/dist/commands/runtime-adapter.js +10 -5
- package/dist/commands/runtime-adapter.js.map +1 -1
- package/dist/utils/agent-guard.d.ts.map +1 -1
- package/dist/utils/agent-guard.js +49 -5
- package/dist/utils/agent-guard.js.map +1 -1
- package/dist/utils/cursor-gate.d.ts +2 -0
- package/dist/utils/cursor-gate.d.ts.map +1 -1
- package/dist/utils/cursor-gate.js +11 -1
- package/dist/utils/cursor-gate.js.map +1 -1
- package/dist/utils/cursor-mcp-agent.d.ts +21 -0
- package/dist/utils/cursor-mcp-agent.d.ts.map +1 -0
- package/dist/utils/cursor-mcp-agent.js +133 -0
- package/dist/utils/cursor-mcp-agent.js.map +1 -0
- package/dist/utils/cursor-pilot-readiness.d.ts +16 -0
- package/dist/utils/cursor-pilot-readiness.d.ts.map +1 -0
- package/dist/utils/cursor-pilot-readiness.js +35 -0
- package/dist/utils/cursor-pilot-readiness.js.map +1 -0
- package/dist/utils/mcp-server-pin.d.ts +1 -1
- package/dist/utils/mcp-server-pin.js +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CURSOR_MCP_AGENT_SCHEMA_VERSION = void 0;
|
|
4
|
+
exports.inspectCursorAgentMcpSurface = inspectCursorAgentMcpSurface;
|
|
5
|
+
exports.inspectCursorMcpAdoptionPath = inspectCursorMcpAdoptionPath;
|
|
6
|
+
const node_fs_1 = require("node:fs");
|
|
7
|
+
const node_os_1 = require("node:os");
|
|
8
|
+
const node_path_1 = require("node:path");
|
|
9
|
+
const node_child_process_1 = require("node:child_process");
|
|
10
|
+
const agent_adapter_setup_1 = require("./agent-adapter-setup");
|
|
11
|
+
const mcp_server_pin_1 = require("./mcp-server-pin");
|
|
12
|
+
const v0_governance_1 = require("./v0-governance");
|
|
13
|
+
exports.CURSOR_MCP_AGENT_SCHEMA_VERSION = 'neurcode.cursor-mcp-agent.v1';
|
|
14
|
+
function cursorProjectsDir() {
|
|
15
|
+
return (0, node_path_1.join)((0, node_os_1.homedir)(), '.cursor', 'projects');
|
|
16
|
+
}
|
|
17
|
+
function repoPathSlug(repoRoot) {
|
|
18
|
+
return (0, node_path_1.resolve)(repoRoot).replace(/\\/g, '/').replace(/\//g, '-').replace(/^-/, '');
|
|
19
|
+
}
|
|
20
|
+
function mcpsDirHasNeurcodeTools(mcpsDir) {
|
|
21
|
+
if (!(0, node_fs_1.existsSync)(mcpsDir))
|
|
22
|
+
return false;
|
|
23
|
+
for (const server of (0, node_fs_1.readdirSync)(mcpsDir)) {
|
|
24
|
+
if (!/neurcode/i.test(server))
|
|
25
|
+
continue;
|
|
26
|
+
const toolsDir = (0, node_path_1.join)(mcpsDir, server, 'tools');
|
|
27
|
+
if (!(0, node_fs_1.existsSync)(toolsDir))
|
|
28
|
+
return true;
|
|
29
|
+
if ((0, node_fs_1.readdirSync)(toolsDir).some((tool) => tool.includes('edit_before') || tool.includes('agent_edit_before'))) {
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
function inspectCursorAgentMcpSurface(repoRoot) {
|
|
36
|
+
const projectsDir = cursorProjectsDir();
|
|
37
|
+
if (!(0, node_fs_1.existsSync)(projectsDir)) {
|
|
38
|
+
return {
|
|
39
|
+
neurcodeInAgentToolList: false,
|
|
40
|
+
matchingProjectIds: [],
|
|
41
|
+
message: 'Cursor has not indexed MCP tools for this machine yet (.cursor/projects missing).',
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
const slug = repoPathSlug(repoRoot);
|
|
45
|
+
const matchingProjectIds = [];
|
|
46
|
+
let neurcodeInAgentToolList = false;
|
|
47
|
+
for (const projectId of (0, node_fs_1.readdirSync)(projectsDir)) {
|
|
48
|
+
const mcpsDir = (0, node_path_1.join)(projectsDir, projectId, 'mcps');
|
|
49
|
+
if (!mcpsDirHasNeurcodeTools(mcpsDir))
|
|
50
|
+
continue;
|
|
51
|
+
neurcodeInAgentToolList = true;
|
|
52
|
+
if (projectId.includes(slug.slice(-48)) || projectId.endsWith(slug.slice(-32))) {
|
|
53
|
+
matchingProjectIds.push(projectId);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
if (neurcodeInAgentToolList && matchingProjectIds.length === 0) {
|
|
57
|
+
matchingProjectIds.push('user-neurcode-or-global');
|
|
58
|
+
}
|
|
59
|
+
return {
|
|
60
|
+
neurcodeInAgentToolList,
|
|
61
|
+
matchingProjectIds,
|
|
62
|
+
message: neurcodeInAgentToolList
|
|
63
|
+
? `Neurcode MCP indexed in Cursor Agent (${matchingProjectIds.join(', ') || 'Home MCP'}).`
|
|
64
|
+
: 'Neurcode MCP is not present in Cursor Agent tool list. Enable Home MCP and reload the window.',
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
function runPinnedMcpDoctor(repoRoot) {
|
|
68
|
+
const globalRoot = (0, mcp_server_pin_1.pinnedMcpBaseRoot)(repoRoot, true);
|
|
69
|
+
const pinned = (0, mcp_server_pin_1.ensurePinnedMcpServer)(globalRoot);
|
|
70
|
+
if (!pinned.ok) {
|
|
71
|
+
return {
|
|
72
|
+
id: 'mcp_server_pinned',
|
|
73
|
+
status: 'fail',
|
|
74
|
+
message: pinned.message,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
const doctor = (0, node_child_process_1.spawnSync)(process.execPath, [(0, mcp_server_pin_1.mcpServerEntryScriptPath)(globalRoot), '--doctor'], { encoding: 'utf8', stdio: ['ignore', 'pipe', 'pipe'] });
|
|
78
|
+
const ok = doctor.status === 0;
|
|
79
|
+
return {
|
|
80
|
+
id: 'mcp_server_doctor',
|
|
81
|
+
status: ok ? 'pass' : 'fail',
|
|
82
|
+
message: ok
|
|
83
|
+
? 'Pinned @neurcode-ai/mcp-server --doctor reports ready.'
|
|
84
|
+
: (doctor.stderr || doctor.stdout || 'MCP server doctor failed').trim().slice(0, 240),
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
function inspectCursorMcpAdoptionPath(dir) {
|
|
88
|
+
const repoRoot = (0, v0_governance_1.resolveRepoRoot)(dir || process.cwd());
|
|
89
|
+
const checks = [];
|
|
90
|
+
const remediation = [];
|
|
91
|
+
const repoMcp = (0, agent_adapter_setup_1.inspectAgentSetup)({ target: 'cursor', repoRoot, global: false });
|
|
92
|
+
checks.push({
|
|
93
|
+
id: 'repo_mcp_config',
|
|
94
|
+
status: repoMcp.configured ? 'pass' : 'fail',
|
|
95
|
+
message: repoMcp.configured
|
|
96
|
+
? `Repo MCP pinned at ${repoMcp.configPath}.`
|
|
97
|
+
: repoMcp.message,
|
|
98
|
+
});
|
|
99
|
+
const homeMcp = (0, agent_adapter_setup_1.inspectAgentSetup)({ target: 'cursor', repoRoot, global: true });
|
|
100
|
+
const homeConfigured = homeMcp.configured === true;
|
|
101
|
+
checks.push({
|
|
102
|
+
id: 'home_mcp_config',
|
|
103
|
+
status: homeConfigured ? 'pass' : 'fail',
|
|
104
|
+
message: homeConfigured
|
|
105
|
+
? `Home MCP pinned at ${homeMcp.configPath}. Enable Home MCP in Cursor Settings → MCP.`
|
|
106
|
+
: `Missing or stale Home MCP at ${homeMcp.configPath}. Run: neurcode cursor onboard --strict`,
|
|
107
|
+
});
|
|
108
|
+
if (!homeConfigured) {
|
|
109
|
+
remediation.push('neurcode cursor onboard --strict');
|
|
110
|
+
remediation.push('Cursor Settings → MCP → enable Home MCP, then Developer: Reload Window');
|
|
111
|
+
}
|
|
112
|
+
checks.push(runPinnedMcpDoctor(repoRoot));
|
|
113
|
+
const agentSurface = inspectCursorAgentMcpSurface(repoRoot);
|
|
114
|
+
checks.push({
|
|
115
|
+
id: 'cursor_agent_mcp_tools',
|
|
116
|
+
status: agentSurface.neurcodeInAgentToolList ? 'pass' : 'fail',
|
|
117
|
+
message: agentSurface.message,
|
|
118
|
+
});
|
|
119
|
+
if (!agentSurface.neurcodeInAgentToolList) {
|
|
120
|
+
remediation.push('Reload Cursor after onboarding; confirm user-neurcode appears under Agent MCP tools');
|
|
121
|
+
remediation.push('If tools stay missing, verify ~/.cursor/mcp.json uses absolute node path to pinned mcp-server');
|
|
122
|
+
}
|
|
123
|
+
const failCount = checks.filter((check) => check.status === 'fail').length;
|
|
124
|
+
return {
|
|
125
|
+
schemaVersion: exports.CURSOR_MCP_AGENT_SCHEMA_VERSION,
|
|
126
|
+
ok: failCount === 0,
|
|
127
|
+
repoRoot,
|
|
128
|
+
checks,
|
|
129
|
+
remediation: [...new Set(remediation)],
|
|
130
|
+
neurcodeInAgentToolList: agentSurface.neurcodeInAgentToolList,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=cursor-mcp-agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cursor-mcp-agent.js","sourceRoot":"","sources":["../../src/utils/cursor-mcp-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type PilotReadinessReport } from '../governance/pilot-readiness';
|
|
2
|
+
import { type GovernanceHealthReport } from './governance-health';
|
|
3
|
+
import { type CursorMcpAgentInspection } from './cursor-mcp-agent';
|
|
4
|
+
export declare const CURSOR_PILOT_READINESS_SCHEMA_VERSION: "neurcode.cursor-pilot-readiness.v1";
|
|
5
|
+
export interface CursorPilotReadinessReport {
|
|
6
|
+
schemaVersion: typeof CURSOR_PILOT_READINESS_SCHEMA_VERSION;
|
|
7
|
+
ready: boolean;
|
|
8
|
+
repoRoot: string;
|
|
9
|
+
blockers: string[];
|
|
10
|
+
warnings: string[];
|
|
11
|
+
repo: PilotReadinessReport;
|
|
12
|
+
health: GovernanceHealthReport;
|
|
13
|
+
mcp: CursorMcpAgentInspection;
|
|
14
|
+
}
|
|
15
|
+
export declare function runCursorPilotReadinessCheck(dir?: string): CursorPilotReadinessReport;
|
|
16
|
+
//# sourceMappingURL=cursor-pilot-readiness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cursor-pilot-readiness.d.ts","sourceRoot":"","sources":["../../src/utils/cursor-pilot-readiness.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAClG,OAAO,EAA4B,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC5F,OAAO,EAAgC,KAAK,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAGjG,eAAO,MAAM,qCAAqC,EAAG,oCAA6C,CAAC;AAEnG,MAAM,WAAW,0BAA0B;IACzC,aAAa,EAAE,OAAO,qCAAqC,CAAC;IAC5D,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,EAAE,oBAAoB,CAAC;IAC3B,MAAM,EAAE,sBAAsB,CAAC;IAC/B,GAAG,EAAE,wBAAwB,CAAC;CAC/B;AAED,wBAAgB,4BAA4B,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,0BAA0B,CA0BrF"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CURSOR_PILOT_READINESS_SCHEMA_VERSION = void 0;
|
|
4
|
+
exports.runCursorPilotReadinessCheck = runCursorPilotReadinessCheck;
|
|
5
|
+
const pilot_readiness_1 = require("../governance/pilot-readiness");
|
|
6
|
+
const governance_health_1 = require("./governance-health");
|
|
7
|
+
const cursor_mcp_agent_1 = require("./cursor-mcp-agent");
|
|
8
|
+
const v0_governance_1 = require("./v0-governance");
|
|
9
|
+
exports.CURSOR_PILOT_READINESS_SCHEMA_VERSION = 'neurcode.cursor-pilot-readiness.v1';
|
|
10
|
+
function runCursorPilotReadinessCheck(dir) {
|
|
11
|
+
const repoRoot = (0, v0_governance_1.resolveRepoRoot)(dir || process.cwd());
|
|
12
|
+
const repo = (0, pilot_readiness_1.runPilotReadinessCheck)(repoRoot);
|
|
13
|
+
const health = (0, governance_health_1.evaluateGovernanceHealth)(repoRoot);
|
|
14
|
+
const mcp = (0, cursor_mcp_agent_1.inspectCursorMcpAdoptionPath)(repoRoot);
|
|
15
|
+
const blockers = [
|
|
16
|
+
...repo.blockers,
|
|
17
|
+
...health.checks.filter((check) => check.status === 'fail').map((check) => `[${check.id}] ${check.message}`),
|
|
18
|
+
...mcp.checks.filter((check) => check.status === 'fail').map((check) => `[${check.id}] ${check.message}`),
|
|
19
|
+
];
|
|
20
|
+
const warnings = [
|
|
21
|
+
...repo.warnings,
|
|
22
|
+
...health.checks.filter((check) => check.status === 'warn').map((check) => `[${check.id}] ${check.message}`),
|
|
23
|
+
];
|
|
24
|
+
return {
|
|
25
|
+
schemaVersion: exports.CURSOR_PILOT_READINESS_SCHEMA_VERSION,
|
|
26
|
+
ready: blockers.length === 0 && mcp.ok && health.verdict !== 'ungoverned',
|
|
27
|
+
repoRoot,
|
|
28
|
+
blockers,
|
|
29
|
+
warnings,
|
|
30
|
+
repo,
|
|
31
|
+
health,
|
|
32
|
+
mcp,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=cursor-pilot-readiness.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cursor-pilot-readiness.js","sourceRoot":"","sources":["../../src/utils/cursor-pilot-readiness.ts"],"names":[],"mappings":";;;AAkBA,oEA0BC;AA5CD,mEAAkG;AAClG,2DAA4F;AAC5F,yDAAiG;AACjG,mDAAkD;AAErC,QAAA,qCAAqC,GAAG,oCAA6C,CAAC;AAanG,SAAgB,4BAA4B,CAAC,GAAY;IACvD,MAAM,QAAQ,GAAG,IAAA,+BAAe,EAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,IAAA,wCAAsB,EAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,IAAA,4CAAwB,EAAC,QAAQ,CAAC,CAAC;IAClD,MAAM,GAAG,GAAG,IAAA,+CAA4B,EAAC,QAAQ,CAAC,CAAC;IAEnD,MAAM,QAAQ,GAAG;QACf,GAAG,IAAI,CAAC,QAAQ;QAChB,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;QAC5G,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;KAC1G,CAAC;IACF,MAAM,QAAQ,GAAG;QACf,GAAG,IAAI,CAAC,QAAQ;QAChB,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;KAC7G,CAAC;IAEF,OAAO;QACL,aAAa,EAAE,6CAAqC;QACpD,KAAK,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,MAAM,CAAC,OAAO,KAAK,YAAY;QACzE,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,GAAG;KACJ,CAAC;AACJ,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare const MCP_SERVER_PACKAGE: "@neurcode-ai/mcp-server";
|
|
2
|
-
export declare const MIN_MCP_SERVER_VERSION: "0.2.
|
|
2
|
+
export declare const MIN_MCP_SERVER_VERSION: "0.2.5";
|
|
3
3
|
/** Legacy relative paths fail when Cursor MCP cwd is not the workspace root. */
|
|
4
4
|
export declare const PINNED_MCP_ENTRY_RELATIVE: "mcp-server/node_modules/@neurcode-ai/mcp-server/dist/index.js";
|
|
5
5
|
export declare function pinnedMcpBaseRoot(repoRoot: string, global?: boolean): string;
|
|
@@ -18,7 +18,7 @@ const node_os_1 = require("node:os");
|
|
|
18
18
|
const node_path_1 = require("node:path");
|
|
19
19
|
const node_child_process_1 = require("node:child_process");
|
|
20
20
|
exports.MCP_SERVER_PACKAGE = '@neurcode-ai/mcp-server';
|
|
21
|
-
exports.MIN_MCP_SERVER_VERSION = '0.2.
|
|
21
|
+
exports.MIN_MCP_SERVER_VERSION = '0.2.5';
|
|
22
22
|
/** Legacy relative paths fail when Cursor MCP cwd is not the workspace root. */
|
|
23
23
|
exports.PINNED_MCP_ENTRY_RELATIVE = 'mcp-server/node_modules/@neurcode-ai/mcp-server/dist/index.js';
|
|
24
24
|
function pinnedMcpBaseRoot(repoRoot, global = false) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@neurcode-ai/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.0",
|
|
4
4
|
"description": "Neurcode CLI \u2014 deterministic operational governance runtime for AI-assisted engineering (intent contracts, import-edge governance, replay continuity)",
|
|
5
5
|
"bin": {
|
|
6
6
|
"neurcode": "dist/index.js"
|