@claudexor/harness-cursor 3.8.3 → 3.9.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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAGV,wBAAwB,EAKzB,MAAM,mBAAmB,CAAC;AAK3B,OAAO,KAAK,EAAc,cAAc,EAAoB,MAAM,iBAAiB,CAAC;AACpF,OAAO,EAML,aAAa,IAAI,oBAAoB,EACtC,MAAM,iBAAiB,CAAC;AAIzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAGL,qBAAqB,EAMtB,MAAM,WAAW,CAAC;AAQnB,OAAO,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAoB,KAAK,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC9F,OAAO,EAIL,KAAK,iBAAiB,EACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,EACrB,gCAAgC,GACjC,MAAM,WAAW,CAAC;AAEnB,eAAO,MAAM,GAAG,QAAqD,CAAC;AAMtE,4EAA4E;AAC5E,eAAO,MAAM,oBAAoB;aAAK,KAAK,EAAE,MAAM;CAAW,CAAC;AAE/D,eAAO,MAAM,yBAAyB,EAAE,wBA0BpC,CAAC;AAoBL,iBAAe,aAAa,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAY9E;AAED,iBAAS,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,MAAM,GAAG,IAAI,CAWpF;AAED,KAAK,wBAAwB,GAAG;IAAE,MAAM,EAAE,oBAAoB,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AACtF,KAAK,iBAAiB,GAAG;IACvB,aAAa,EAAE,OAAO,aAAa,CAAC;IACpC,YAAY,EAAE,OAAO,qBAAqB,CAAC;IAC3C,YAAY,EAAE,OAAO,YAAY,CAAC;IAClC,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,mBAAmB,EAAE,OAAO,mBAAmB,CAAC;IAChD,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IACrD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,yBAAyB,EAAE,MAAM,CAAC;IAClC,KAAK,EAAE,MAAM,MAAM,CAAC;IACpB,aAAa,EAAE,OAAO,oBAAoB,CAAC;IAC3C,uEAAuE;IACvE,oBAAoB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CACtD,CAAC;AA8EF,wBAAgB,mBAAmB,CAAC,IAAI,GAAE,OAAO,CAAC,iBAAiB,CAAM,GAAG,cAAc,CAuHzF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAGV,wBAAwB,EAKzB,MAAM,mBAAmB,CAAC;AAK3B,OAAO,KAAK,EAAc,cAAc,EAAoB,MAAM,iBAAiB,CAAC;AACpF,OAAO,EAML,aAAa,IAAI,oBAAoB,EACtC,MAAM,iBAAiB,CAAC;AAIzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAGL,qBAAqB,EAMtB,MAAM,WAAW,CAAC;AAQnB,OAAO,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEhF,OAAO,EAAE,mBAAmB,EAAoB,KAAK,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC9F,OAAO,EAIL,KAAK,iBAAiB,EACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,EACrB,gCAAgC,GACjC,MAAM,WAAW,CAAC;AAEnB,eAAO,MAAM,GAAG,QAAqD,CAAC;AAMtE,4EAA4E;AAC5E,eAAO,MAAM,oBAAoB;aAAK,KAAK,EAAE,MAAM;CAAW,CAAC;AAE/D,eAAO,MAAM,yBAAyB,EAAE,wBAkCpC,CAAC;AAoBL,iBAAe,aAAa,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAY9E;AAED,iBAAS,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,MAAM,GAAG,IAAI,CAWpF;AAED,KAAK,wBAAwB,GAAG;IAAE,MAAM,EAAE,oBAAoB,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AACtF,KAAK,iBAAiB,GAAG;IACvB,aAAa,EAAE,OAAO,aAAa,CAAC;IACpC,YAAY,EAAE,OAAO,qBAAqB,CAAC;IAC3C,YAAY,EAAE,OAAO,YAAY,CAAC;IAClC,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,mBAAmB,EAAE,OAAO,mBAAmB,CAAC;IAChD,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IACrD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,yBAAyB,EAAE,MAAM,CAAC;IAClC,KAAK,EAAE,MAAM,MAAM,CAAC;IACpB,aAAa,EAAE,OAAO,oBAAoB,CAAC;IAC3C,uEAAuE;IACvE,oBAAoB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CACtD,CAAC;AA8EF,wBAAgB,mBAAmB,CAAC,IAAI,GAAE,OAAO,CAAC,iBAAiB,CAAM,GAAG,cAAc,CAyHzF"}
package/dist/index.js CHANGED
@@ -9,6 +9,7 @@ import { cursorObservationAuthenticated, cursorObservationError, probeCursorNati
9
9
  import { probeCursorDoctorForAccounts } from "./doctor.js";
10
10
  import { probeCursorCredentialAccount, probeCursorCredentialProfile, resolveCursorRunRoute, stampCursorProfileEvents, } from "./profile.js";
11
11
  export { canonicalCursorProfileHome, cursorProfilePathEnv } from "./profile.js";
12
+ import { prepareCursorMcpInjection } from "./mcp-config.js";
12
13
  import { smokeIsolatedApiKey, unsmokedApiSmoke } from "./smoke.js";
13
14
  import { listCursorModelsFromReadyRoute, queryCursorModels, } from "./models.js";
14
15
  export { cleanupCursorSmokeBase, cursorApiSmokeFinalText, cursorApiSmokePassed, smokeIsolatedApiKey, } from "./smoke.js";
@@ -44,6 +45,14 @@ export const CURSOR_CAPABILITY_PROFILE = HarnessCapabilityProfileSchema.parse({
44
45
  isolation: {
45
46
  supported_containment: ["env_or_file_injection"],
46
47
  },
48
+ // Engine-owned MCP injection (delegation belt): `mcp.json` written into
49
+ // the Claudexor-owned lane CURSOR_CONFIG_DIR plus `--approve-mcps`
50
+ // (mcp-config.ts). requires_full_access stays false: cursor's access
51
+ // enforcement is a TOOL allowlist (ask mode), not a filesystem/network
52
+ // sandbox around MCP subprocesses, so the belt reaches the daemon at
53
+ // workspace_write like claude (contrast codex's seatbelt).
54
+ mcp_injection: true,
55
+ mcp_injection_requires_full_access: false,
47
56
  attachment_inputs: [],
48
57
  });
49
58
  /** True only when the supplied env explicitly selects the vendor FILE store
@@ -194,8 +203,10 @@ export function createCursorAdapter(deps = {}) {
194
203
  verify: true,
195
204
  synthesize: true,
196
205
  read_files: true,
197
- // No browser-MCP injection path exists for cursor-agent yet —
198
- // honest false until that path exists + is verified.
206
+ // The lane mcp.json injector (mcp-config.ts) now exists for
207
+ // engine-owned servers, but the BROWSER MCP specifically has no
208
+ // wired + live-verified cursor path — honest false until it does
209
+ // (INV-066).
199
210
  browser_tool: false,
200
211
  web_policy: "uncontrolled",
201
212
  // D-16: cursor has no native json_schema_output; the WorkReport rides
@@ -316,6 +327,28 @@ async function* runCursor(spec, deps) {
316
327
  yield { type: "completed", session_id: spec.session_id, ts: nowIso() };
317
328
  return;
318
329
  }
330
+ // Engine-owned MCP injection (delegation belt): reconcile the lane's
331
+ // mcp.json and approve MCPs headlessly, or refuse loudly (mcp-config.ts).
332
+ const injection = prepareCursorMcpInjection(env, spec.extra_mcp_servers ?? []);
333
+ if ("refusal" in injection) {
334
+ yield {
335
+ type: "error",
336
+ session_id: spec.session_id,
337
+ ts: nowIso(),
338
+ error: injection.refusal,
339
+ payload: { code: "required_mcp_startup_failed" },
340
+ };
341
+ yield { type: "completed", session_id: spec.session_id, ts: nowIso() };
342
+ return;
343
+ }
344
+ // Typed disclosures for content the reconcile deliberately preserved
345
+ // (unreadable, quarantined, or orphaned lanes); the detail names the case.
346
+ for (const detail of injection.disclosures) {
347
+ const payload = { code: "cursor_mcp_config_disclosure", detail };
348
+ yield { type: "message", session_id: spec.session_id, ts: nowIso(), payload };
349
+ }
350
+ if (injection.approved)
351
+ args.push("--approve-mcps");
319
352
  const credentialRoute = route === "local_session" ? "vendor_native" : "managed_api_key";
320
353
  const credentialSource = route === "local_session" ? "native_session" : "api_key_env";
321
354
  const cursorParser = createCursorParser(credentialRoute, credentialSource, spec.intent === "plan", false, spec.model_hint);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAUzC,OAAO,EACL,wBAAwB,IAAI,8BAA8B,EAC1D,eAAe,IAAI,qBAAqB,GACzC,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,gBAAgB,EAChB,UAAU,EACV,aAAa,IAAI,oBAAoB,GACtC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EACL,8BAA8B,EAC9B,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,gCAAgC,EAChC,uBAAuB,GAGxB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,EAC5B,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAA6B,MAAM,YAAY,CAAC;AAC9F,OAAO,EACL,8BAA8B,EAC9B,iBAAiB,GAGlB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,EACrB,gCAAgC,GACjC,MAAM,WAAW,CAAC;AAEnB,MAAM,CAAC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,cAAc,CAAC;AACtE,+EAA+E;AAC/E,+DAA+D;AAC/D,MAAM,6BAA6B,GAAG,EAAE,GAAG,MAAM,CAAC;AAClD,MAAM,qCAAqC,GAAG,MAAM,CAAC;AAErD,4EAA4E;AAC5E,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,KAAK,EAAE,MAAM,EAAW,CAAC;AAE/D,MAAM,CAAC,MAAM,yBAAyB,GACpC,8BAA8B,CAAC,KAAK,CAAC;IACnC,IAAI,EAAE;QACJ,iBAAiB,EAAE,CAAC,gBAAgB,EAAE,aAAa,CAAC;QACpD,gBAAgB,EAAE,IAAI;QACtB,qBAAqB,EAAE;YACrB,mEAAmE;YACnE,oEAAoE;YACpE,uEAAuE;YACvE,mEAAmE;YACnE,kDAAkD;YAClD,EAAE,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,EAAE,cAAc,EAAE,CAAC,MAAM,CAAC,EAAE;YAC3E,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,KAAK,CAAC,EAAE;SACpE;QACD,aAAa,EAAE,oBAAoB;KACpC;IACD,2EAA2E;IAC3E,0EAA0E;IAC1E,4EAA4E;IAC5E,4EAA4E;IAC5E,wEAAwE;IACxE,cAAc,EAAE,EAAE,kBAAkB,EAAE,gBAAgB,EAAE;IACxD,SAAS,EAAE;QACT,qBAAqB,EAAE,CAAC,uBAAuB,CAAC;KACjD;IACD,wEAAwE;IACxE,mEAAmE;IACnE,qEAAqE;IACrE,uEAAuE;IACvE,qEAAqE;IACrE,2DAA2D;IAC3D,aAAa,EAAE,IAAI;IACnB,kCAAkC,EAAE,KAAK;IACzC,iBAAiB,EAAE,EAAE;CACtB,CAAC,CAAC;AAEL;;wEAEwE;AACxE,SAAS,kBAAkB,CAAC,GAAY;IACtC,OAAO,GAAG,EAAE,CAAC,4BAA4B,CAAC,KAAK,MAAM,CAAC;AACxD,CAAC;AAED,qFAAqF;AACrF,SAAS,UAAU,CAAC,IAAoB;IACtC,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,uBAAuB,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,iBAAiB;QAAE,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAC7F,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB;QAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACzD,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;AACzD,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,WAAyB;IACpD,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE;YAC7C,SAAS,EAAE,MAAM;YACjB,WAAW;YACX,YAAY,EAAE,SAAS;YACvB,iBAAiB,EAAE,CAAC;SACrB,CAAC,CAAC;QACH,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,GAAG,oBAAoB,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,GAA+C;IACnE,IAAI,GAAG,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,0BAA0B,CAAC;QAC9E,OAAO,GAAG,CAAC,0BAA0B,CAAC,IAAI,IAAI,CAAC;IACjD,IAAI,GAAG,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC;QACpE,OAAO,GAAG,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC;IACvC,OAAO,CACL,OAAO,CAAC,GAAG,CAAC,wBAAwB;QACpC,aAAa,CAAC,QAAQ,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,cAAc;QAC1B,IAAI,CACL,CAAC;AACJ,CAAC;AAkBD,SAAS,sBAAsB,CAAC,GAAW;IACzC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACxD,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,IAAuB,EACvB,GAAW,EACX,KAAK,GAAG,KAAK;IAEb,MAAM,QAAQ,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IACzB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpE,IAAI,MAAM,IAAI,MAAM,CAAC,WAAW,GAAG,GAAG;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC;IAC7D,IAAI,MAAM;QAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC;IACnF,IAAI,CAAC,KAAK,IAAI,KAAK,GAAG,CAAC;QAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC;IAChG,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,aAAa,CAAC,GAAY;IACjC,OAAO,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,GAAG,gBAAgB,EAAE,EAAE,CAAC;AACnD,CAAC;AAED,SAAS,eAAe,CAAC,GAAY;IACnC,OAAO,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;AACzD,CAAC;AAED,KAAK,UAAU,sBAAsB,CACnC,IAAuB,EACvB,KAKC;IAQD,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,IAAI,MAAM,CAAC;IACtD,MAAM,GAAG,GAAG,cAAc,KAAK,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpF,0EAA0E;IAC1E,0EAA0E;IAC1E,oEAAoE;IACpE,MAAM,WAAW,GACf,cAAc,KAAK,SAAS,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC;QAC5D,CAAC,CAAE,EAAE,IAAI,EAAE,WAAW,EAAqC;QAC3D,CAAC,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IACtD,MAAM,YAAY,GAAG,8BAA8B,CAAC,WAAW,CAAC,CAAC;IACjE,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAC7D,MAAM,iBAAiB,GAAG,uBAAuB,CAAC;QAChD,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC;QACpB,cAAc;QACd,YAAY;QACZ,gBAAgB;KACjB,CAAC,CAAC;IACH,MAAM,QAAQ,GACZ,iBAAiB,IAAI,GAAG;QACtB,CAAC,CAAC,MAAM,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC;QAC1D,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC5B,MAAM,KAAK,GAAG,qBAAqB,CAAC;QAClC,cAAc;QACd,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC;QACpB,WAAW,EAAE,QAAQ,CAAC,EAAE;QACxB,YAAY;QACZ,UAAU;KACX,CAAC,CAAC;IACH,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAI,GAA+B,EAAE;IACvE,MAAM,OAAO,GAAsB;QACjC,aAAa;QACb,YAAY,EAAE,qBAAqB;QACnC,YAAY;QACZ,gBAAgB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QAChE,mBAAmB;QACnB,aAAa,EAAE,IAAI,GAAG,EAAE;QACxB,kBAAkB,EAAE,6BAA6B;QACjD,yBAAyB,EAAE,qCAAqC;QAChE,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;QACvB,aAAa,EAAE,oBAAoB;QACnC,oBAAoB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC;QACjD,GAAG,IAAI;KACR,CAAC;IACF,MAAM,iBAAiB,GAAG,CAAC,IAAgB,EAAE,EAAE,CAC7C,4BAA4B,CAAC,IAAI,EAAE;QACjC,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,WAAW,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC;QACnE,SAAS,EAAE,eAAe;QAC1B,YAAY,EAAE,kBAAkB;KACjC,CAAC,CAAC;IACL,OAAO;QACL,EAAE,EAAE,QAAQ;QACZ,iBAAiB,EAAE,yBAAyB;QAE5C,KAAK,CAAC,QAAQ;YACZ,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC;YAC9C,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,MAAM,IAAI,uBAAuB,CAC/B,2DAA2D,CAC5D,CAAC;YACJ,CAAC;YACD,wEAAwE;YACxE,qEAAqE;YACrE,qEAAqE;YACrE,uBAAuB;YACvB,MAAM,YAAY,GAAG,KAAK,CAAC;YAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,KAAK,IAAI,CAAC;YAC/C,OAAO,qBAAqB,CAAC,KAAK,CAAC;gBACjC,EAAE,EAAE,QAAQ;gBACZ,YAAY,EAAE,YAAY;gBAC1B,IAAI,EAAE,WAAW;gBACjB,OAAO;gBACP,eAAe,EAAE,iBAAiB;gBAClC,eAAe,EAAE,QAAQ;gBACzB,YAAY,EAAE;oBACZ,IAAI,EAAE,IAAI;oBACV,SAAS,EAAE,IAAI;oBACf,mBAAmB,EAAE,IAAI;oBACzB,MAAM,EAAE,IAAI;oBACZ,MAAM,EAAE,IAAI;oBACZ,UAAU,EAAE,IAAI;oBAChB,UAAU,EAAE,IAAI;oBAChB,4DAA4D;oBAC5D,gEAAgE;oBAChE,iEAAiE;oBACjE,aAAa;oBACb,YAAY,EAAE,KAAK;oBACnB,UAAU,EAAE,cAAc;oBAC1B,sEAAsE;oBACtE,oEAAoE;oBACpE,wDAAwD;oBACxD,qBAAqB,EAAE,WAAW;oBAClC,yBAAyB,EAAE,eAAe;oBAC1C,0EAA0E;oBAC1E,aAAa,EAAE,EAAE;iBAClB;gBACD,kBAAkB,EAAE;oBAClB,GAAG,yBAAyB;oBAC5B,IAAI,EAAE;wBACJ,GAAG,yBAAyB,CAAC,IAAI;wBACjC,iEAAiE;wBACjE,gEAAgE;wBAChE,gBAAgB,EAAE,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI;qBAClF;iBACF;gBACD,sEAAsE;gBACtE,qEAAqE;gBACrE,UAAU,EAAE;oBACV,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,eAAwB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnD,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;iBACxC;gBACD,yBAAyB,EAAE,CAAC,UAAU,EAAE,iBAAiB,EAAE,MAAM,EAAE,gBAAgB,CAAC;aACrF,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,IAAgB;YAC3B,OAAO,CAAC,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;QAChD,CAAC;QAED,iBAAiB;QAEjB,GAAG,CAAC,IAAoB;YACtB,OAAO,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,CAAC,IAAoB;YACzB,OAAO,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAClC,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,IAAuB;YAClC,OAAO,8BAA8B,CACnC,OAAO,EACP,IAAI,EACJ,CAAC,EAAE,YAAY,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAC7B,sBAAsB,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,EACtF,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CACvD,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,sBAAsB,CAAC,OAAO,EAAE,WAAW;YAC/C,OAAO,4BAA4B,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QACrE,CAAC;QAED,KAAK,CAAC,sBAAsB,CAAC,OAAO,EAAE,WAAW;YAC/C,OAAO,4BAA4B,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QACrE,CAAC;KACF,CAAC;AACJ,CAAC;AAED,KAAK,SAAS,CAAC,CAAC,SAAS,CACvB,IAAoB,EACpB,IAAuB;IAEvB,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,iBAAiB,EAAE,aAAa,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,iFAAiF;IACjF,8EAA8E;IAC9E,4EAA4E;IAC5E,2EAA2E;IAC3E,yEAAyE;IACzE,4EAA4E;IAC5E,2BAA2B;IAC3B,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU;QAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACrF,+EAA+E;IAC/E,IAAI,IAAI,CAAC,aAAa;QAAE,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAC7D,IAAI,IAAI,CAAC,UAAU;QAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3D,8DAA8D;IAC9D,IAAI,IAAI,CAAC,iBAAiB;QAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC1E,6EAA6E;IAC7E,6EAA6E;IAC7E,8EAA8E;IAC9E,uEAAuE;IACvE,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC3C,4EAA4E;IAC5E,2EAA2E;IAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC;IACxC,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAC1C,IAAI,EACJ,IAAI,EACJ,CAAC,EAAE,YAAY,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAC7B,sBAAsB,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAChF,mBAAmB,CAAC,IAAI,CAAC,CAC1B,CAAC;IACF,IAAI,SAAS,IAAI,QAAQ,EAAE,CAAC;QAC1B,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC5F,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC;QACvE,OAAO;IACT,CAAC;IACD,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC;IAC/D,IAAI,KAAK,KAAK,SAAS,IAAI,GAAG,EAAE,CAAC;QAC/B,GAAG,CAAC,cAAc,GAAG,GAAG,CAAC;QACzB,IACE,gCAAgC,CAAC;YAC/B,cAAc,EAAE,IAAI,CAAC,eAAe;YACpC,KAAK;YACL,YAAY;SACb,CAAC,EACF,CAAC;YACD,MAAM;gBACJ,IAAI,EAAE,SAAS;gBACf,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,EAAE,EAAE,MAAM,EAAE;gBACZ,OAAO,EAAE;oBACP,aAAa,EAAE,IAAI;oBACnB,cAAc,EAAE,eAAe;oBAC/B,YAAY,EAAE,SAAS;oBACvB,MAAM,EAAE,qBAAqB;iBAC9B;aACF,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,IAAI,KAAK,KAAK,eAAe,EAAE,CAAC;QACrC,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC;IAC5B,CAAC;SAAM,CAAC;QACN,MAAM;YACJ,IAAI,EAAE,OAAO;YACb,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,EAAE,EAAE,MAAM,EAAE;YACZ,KAAK,EAAE,OAAO;gBACZ,CAAC,CAAC,uBAAuB,OAAO,CAAC,UAAU,6DAA6D;gBACxG,CAAC,CAAC,UAAU;oBACV,CAAC,CAAC,uGAAuG;oBACzG,CAAC,CAAC,mFAAmF;SAC1F,CAAC;QACF,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC;QACvE,OAAO;IACT,CAAC;IACD,qEAAqE;IACrE,0EAA0E;IAC1E,MAAM,SAAS,GAAG,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;IAC/E,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;QAC3B,MAAM;YACJ,IAAI,EAAE,OAAO;YACb,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,EAAE,EAAE,MAAM,EAAE;YACZ,KAAK,EAAE,SAAS,CAAC,OAAO;YACxB,OAAO,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE;SACjD,CAAC;QACF,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC;QACvE,OAAO;IACT,CAAC;IACD,qEAAqE;IACrE,2EAA2E;IAC3E,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,8BAA8B,EAAE,MAAM,EAAE,CAAC;QACjE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC;IAChF,CAAC;IACD,IAAI,SAAS,CAAC,QAAQ;QAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACpD,MAAM,eAAe,GACnB,KAAK,KAAK,eAAe,CAAC,CAAC,CAAE,eAAyB,CAAC,CAAC,CAAE,iBAA2B,CAAC;IACxF,MAAM,gBAAgB,GACpB,KAAK,KAAK,eAAe,CAAC,CAAC,CAAE,gBAA0B,CAAC,CAAC,CAAE,aAAuB,CAAC;IACrF,MAAM,YAAY,GAAG,kBAAkB,CACrC,eAAe,EACf,gBAAgB,EAChB,IAAI,CAAC,MAAM,KAAK,MAAM,EACtB,KAAK,EACL,IAAI,CAAC,UAAU,CAChB,CAAC;IACF,KAAK,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;QACxB,GAAG,EAAE,GAAG;QACR,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,GAAG;QACH,KAAK,EAAE,cAAc;QACrB,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,wBAAwB,CAAC,OAAO,EAAE,YAAY,CAAC;QAC3D,uEAAuE;QACvE,yEAAyE;QACzE,0DAA0D;QAC1D,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC3B,MAAM,KAAK,GAAG,wBAAwB,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACvE,IAAI,KAAK,EAAE,CAAC;gBACV,KAAK,CAAC,gBAAgB,GAAG,eAAe,CAAC;gBACzC,KAAK,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;YAC7C,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,47 @@
1
+ import type { ExtraMcpServer } from "@claudexor/schema";
2
+ /** The lane config dir cursor-agent will actually read `mcp.json` from:
3
+ * the explicit CURSOR_CONFIG_DIR when the env carries one (profile routes),
4
+ * else the scoped HOME's `.cursor` (cursor's own default resolution). Null
5
+ * when the env has neither — the HOST ~/.cursor is never touched. */
6
+ export declare function resolveCursorMcpConfigDir(env: Record<string, string | null | undefined>): string | null;
7
+ /**
8
+ * Reconcile `<dir>/mcp.json` so it contains EXACTLY the requested engine
9
+ * servers among the Claudexor-managed entries: previously managed names are
10
+ * removed, the requested servers written, and foreign entries preserved.
11
+ * Returns typed disclosure lines for anything it deliberately left alone.
12
+ * Failure semantics (each pinned by a test):
13
+ * - unreadable MANIFEST: fall back to removing the deterministic engine-owned
14
+ * names (plus the requested ones) so a stale belt never rides orphaned; the
15
+ * manifest is deleted only once nothing managed can still ride;
16
+ * - unreadable MCP.JSON on cleanup: preserved untouched (bytes are not ours
17
+ * to delete) with a disclosure, and the manifest is KEPT — its entry may
18
+ * still ride inside the unreadable file;
19
+ * - unreadable MCP.JSON on injection: the bytes are quarantined aside
20
+ * (mcp.json.invalid-<ts>), never deleted, then a fresh file is written;
21
+ * - a FOREIGN entry squatting a requested engine name (readable manifest
22
+ * that does not list it): throws — the caller refuses injection typed
23
+ * rather than adopting and later destroying someone else's entry.
24
+ * Write order is crash-safe: the manifest (union of old and new names) lands
25
+ * BEFORE mcp.json, so a crash between the two leaves an over-wide manifest
26
+ * (harmless: removing an absent key is a no-op) instead of an untracked belt.
27
+ * Throws on an unwritable dir — the caller surfaces that typed (INV-030:
28
+ * never a silent drop).
29
+ */
30
+ export declare function syncCursorMcpServers(dir: string, servers: readonly ExtraMcpServer[]): string[];
31
+ /**
32
+ * One pre-spawn decision for runCursor: reconcile the lane's mcp.json —
33
+ * writing the requested servers, or removing previously managed ones so a
34
+ * stale belt never rides a non-delegate run — and report whether the run
35
+ * must add `--approve-mcps`, plus typed disclosures for anything the
36
+ * reconcile deliberately preserved. A run that REQUESTED injection but has
37
+ * no Claudexor-owned config dir to write into refuses loudly (the host
38
+ * ~/.cursor is never written, and a silent drop would fake a capability —
39
+ * INV-030/INV-063). On approval the env is pinned to the exact dir written.
40
+ */
41
+ export declare function prepareCursorMcpInjection(env: Record<string, string | null | undefined>, servers: readonly ExtraMcpServer[]): {
42
+ approved: boolean;
43
+ disclosures: string[];
44
+ } | {
45
+ refusal: string;
46
+ };
47
+ //# sourceMappingURL=mcp-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-config.d.ts","sourceRoot":"","sources":["../src/mcp-config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAoCxD;;;qEAGqE;AACrE,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,GAC7C,MAAM,GAAG,IAAI,CAMf;AAwDD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,cAAc,EAAE,GAAG,MAAM,EAAE,CAsG9F;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,EAC9C,OAAO,EAAE,SAAS,cAAc,EAAE,GACjC;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAuBpE"}
@@ -0,0 +1,233 @@
1
+ import { existsSync, mkdirSync, readFileSync, renameSync, rmSync, writeFileSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ import { redactSecrets } from "@claudexor/util";
4
+ /**
5
+ * Engine-owned MCP injection for cursor-agent (the delegation belt, and any
6
+ * future engine-owned server). Unlike claude (inline `--mcp-config` JSON) and
7
+ * codex (`-c mcp_servers.*` overrides), cursor-agent has no stateless
8
+ * transport: it reads `mcp.json` from its config dir. Claudexor already owns
9
+ * the per-lane `CURSOR_CONFIG_DIR` (a Claudexor-created state dir under the
10
+ * lane/profile HOME — INV-063: scoped vendor state stays outside every
11
+ * worktree), so injection writes `<CURSOR_CONFIG_DIR>/mcp.json` there and the
12
+ * run adds `--approve-mcps` so the headless agent does not stall on an
13
+ * approval prompt.
14
+ *
15
+ * The write is a RECONCILE, not a blind overwrite: a sidecar manifest
16
+ * (claudexor-managed-mcp.json) records exactly which server names Claudexor
17
+ * injected, so a later run without `extra_mcp_servers` removes ONLY those
18
+ * entries (a stale belt must never ride a non-delegate run — that would be an
19
+ * undisclosed injection), while entries written by the vendor or a human are
20
+ * structurally preserved (re-serialized through JSON, so formatting/key order
21
+ * normalize; their content is never dropped). Failure honesty: an UNREADABLE
22
+ * mcp.json is never silently deleted — cleanup preserves it with a typed
23
+ * disclosure, injection quarantines the bytes aside before writing fresh; an
24
+ * unreadable manifest falls back to the deterministic engine-owned names so a
25
+ * stale belt cannot ride orphaned; a readable-manifest miss on a same-named
26
+ * foreign entry refuses injection typed instead of adopting-then-deleting it.
27
+ */
28
+ const MANAGED_MANIFEST = "claudexor-managed-mcp.json";
29
+ /** Deterministic engine-owned server names (the delegation-belt descriptor's
30
+ * name — packages/cli/src/delegation-belt-descriptor.ts). Used ONLY as the
31
+ * corrupt-manifest fallback, so a lost/unreadable manifest can never orphan a
32
+ * stale engine entry into non-delegate runs. */
33
+ const ENGINE_OWNED_MCP_NAMES = ["claudexor"];
34
+ /** The lane config dir cursor-agent will actually read `mcp.json` from:
35
+ * the explicit CURSOR_CONFIG_DIR when the env carries one (profile routes),
36
+ * else the scoped HOME's `.cursor` (cursor's own default resolution). Null
37
+ * when the env has neither — the HOST ~/.cursor is never touched. */
38
+ export function resolveCursorMcpConfigDir(env) {
39
+ const explicit = env["CURSOR_CONFIG_DIR"];
40
+ if (typeof explicit === "string" && explicit.trim())
41
+ return explicit;
42
+ const home = env["HOME"];
43
+ if (typeof home === "string" && home.trim())
44
+ return join(home, ".cursor");
45
+ return null;
46
+ }
47
+ /** Read a JSON object file, distinguishing missing / readable / CORRUPT:
48
+ * a present-but-unparseable file must never be conflated with an empty one
49
+ * (that conflation is how bytes get silently dropped or a stale belt gets
50
+ * orphaned). */
51
+ function readJsonObjectFile(path) {
52
+ if (!existsSync(path))
53
+ return { exists: false, corrupt: false, value: {} };
54
+ try {
55
+ const parsed = JSON.parse(readFileSync(path, "utf8"));
56
+ return parsed !== null && typeof parsed === "object" && !Array.isArray(parsed)
57
+ ? { exists: true, corrupt: false, value: parsed }
58
+ : { exists: true, corrupt: true, value: {} };
59
+ }
60
+ catch {
61
+ return { exists: true, corrupt: true, value: {} };
62
+ }
63
+ }
64
+ function readManagedManifest(dir) {
65
+ const file = readJsonObjectFile(join(dir, MANAGED_MANIFEST));
66
+ if (!file.exists)
67
+ return { exists: false, corrupt: false, names: [] };
68
+ if (!file.corrupt && file.value["version"] === 1 && Array.isArray(file.value["names"])) {
69
+ return {
70
+ exists: true,
71
+ corrupt: false,
72
+ names: file.value["names"].filter((name) => typeof name === "string"),
73
+ };
74
+ }
75
+ return { exists: true, corrupt: true, names: [] };
76
+ }
77
+ function writeFileAtomic(path, content) {
78
+ const tmp = `${path}.tmp.${process.pid}`;
79
+ writeFileSync(tmp, content);
80
+ renameSync(tmp, path);
81
+ }
82
+ function writeManifest(dir, names) {
83
+ writeFileAtomic(join(dir, MANAGED_MANIFEST), `${JSON.stringify({ version: 1, names }, null, 2)}\n`);
84
+ }
85
+ /**
86
+ * Reconcile `<dir>/mcp.json` so it contains EXACTLY the requested engine
87
+ * servers among the Claudexor-managed entries: previously managed names are
88
+ * removed, the requested servers written, and foreign entries preserved.
89
+ * Returns typed disclosure lines for anything it deliberately left alone.
90
+ * Failure semantics (each pinned by a test):
91
+ * - unreadable MANIFEST: fall back to removing the deterministic engine-owned
92
+ * names (plus the requested ones) so a stale belt never rides orphaned; the
93
+ * manifest is deleted only once nothing managed can still ride;
94
+ * - unreadable MCP.JSON on cleanup: preserved untouched (bytes are not ours
95
+ * to delete) with a disclosure, and the manifest is KEPT — its entry may
96
+ * still ride inside the unreadable file;
97
+ * - unreadable MCP.JSON on injection: the bytes are quarantined aside
98
+ * (mcp.json.invalid-<ts>), never deleted, then a fresh file is written;
99
+ * - a FOREIGN entry squatting a requested engine name (readable manifest
100
+ * that does not list it): throws — the caller refuses injection typed
101
+ * rather than adopting and later destroying someone else's entry.
102
+ * Write order is crash-safe: the manifest (union of old and new names) lands
103
+ * BEFORE mcp.json, so a crash between the two leaves an over-wide manifest
104
+ * (harmless: removing an absent key is a no-op) instead of an untracked belt.
105
+ * Throws on an unwritable dir — the caller surfaces that typed (INV-030:
106
+ * never a silent drop).
107
+ */
108
+ export function syncCursorMcpServers(dir, servers) {
109
+ const disclosures = [];
110
+ const manifest = readManagedManifest(dir);
111
+ const mcpPath = join(dir, "mcp.json");
112
+ if (servers.length === 0 && !manifest.exists) {
113
+ // An engine-named entry with NO manifest is formally foreign, so
114
+ // preservation wins over deletion — but it is exactly the
115
+ // stale-or-squatted belt shape (pre-hardening crash window, manual
116
+ // manifest deletion), so a run passing through must say so LOUDLY
117
+ // instead of riding past it silently, every time.
118
+ const orphaned = readJsonObjectFile(mcpPath);
119
+ if (orphaned.corrupt) {
120
+ // The disclosure contract (final-gate finding) holds here too: an
121
+ // unreadable lane file is preserved untouched, but never silently.
122
+ disclosures.push(`cursor mcp.json at ${mcpPath} is unreadable and has NO Claudexor managed manifest — it was preserved untouched (bytes are not ours to delete); whether an engine-named MCP entry rides inside is unknown: repair or remove it by hand`);
123
+ return disclosures;
124
+ }
125
+ const orphanServers = orphaned.value["mcpServers"] !== null &&
126
+ typeof orphaned.value["mcpServers"] === "object" &&
127
+ !Array.isArray(orphaned.value["mcpServers"])
128
+ ? orphaned.value["mcpServers"]
129
+ : {};
130
+ const riding = ENGINE_OWNED_MCP_NAMES.filter((name) => name in orphanServers);
131
+ if (riding.length > 0) {
132
+ disclosures.push(`cursor mcp.json at ${mcpPath} carries engine-named MCP entr${riding.length > 1 ? "ies" : "y"} (${riding.join(", ")}) with NO Claudexor managed manifest — stale or foreign; it was NOT auto-removed: remove it by hand, or run a delegate turn to re-adopt it`);
133
+ }
134
+ return disclosures;
135
+ }
136
+ const managedNames = manifest.corrupt
137
+ ? [...new Set([...ENGINE_OWNED_MCP_NAMES, ...servers.map((server) => server.name)])]
138
+ : manifest.names;
139
+ const mcpFile = readJsonObjectFile(mcpPath);
140
+ if (mcpFile.corrupt) {
141
+ if (servers.length === 0) {
142
+ // Cleanup must never delete bytes it could not read; the manifest is
143
+ // kept too — its entry may still ride inside the unreadable file.
144
+ disclosures.push(`cursor mcp.json at ${mcpPath} is unreadable; cleanup skipped and the file preserved (repair or remove it by hand)`);
145
+ return disclosures;
146
+ }
147
+ const quarantine = `${mcpPath}.invalid-${Date.now()}`;
148
+ renameSync(mcpPath, quarantine);
149
+ disclosures.push(`cursor mcp.json at ${mcpPath} was unreadable; original bytes preserved at ${quarantine} before writing the engine config`);
150
+ }
151
+ const currentServers = mcpFile.corrupt ||
152
+ mcpFile.value["mcpServers"] === null ||
153
+ typeof mcpFile.value["mcpServers"] !== "object" ||
154
+ Array.isArray(mcpFile.value["mcpServers"])
155
+ ? {}
156
+ : { ...mcpFile.value["mcpServers"] };
157
+ // A readable manifest is the adoption authority: a same-named entry it does
158
+ // not list belongs to someone else — refuse instead of adopt-then-delete.
159
+ // (With a CORRUPT manifest the engine names are treated as previously
160
+ // managed — the deterministic-name fallback above — never as foreign.)
161
+ for (const server of servers) {
162
+ if (server.name in currentServers && !managedNames.includes(server.name)) {
163
+ throw new Error(`cursor mcp.json already defines "${server.name}" and the Claudexor manifest does not own it; refusing to overwrite a foreign MCP entry (remove or rename it in ${mcpPath})`);
164
+ }
165
+ }
166
+ for (const name of managedNames)
167
+ delete currentServers[name];
168
+ for (const server of servers) {
169
+ currentServers[server.name] = {
170
+ command: server.command,
171
+ args: server.args,
172
+ ...(Object.keys(server.env).length > 0 ? { env: server.env } : {}),
173
+ };
174
+ }
175
+ const base = mcpFile.corrupt ? {} : mcpFile.value;
176
+ const next = { ...base, mcpServers: currentServers };
177
+ const empty = Object.keys(currentServers).length === 0 &&
178
+ Object.keys(next).every((key) => key === "mcpServers");
179
+ if (empty) {
180
+ rmSync(mcpPath, { force: true });
181
+ rmSync(join(dir, MANAGED_MANIFEST), { force: true });
182
+ return disclosures;
183
+ }
184
+ mkdirSync(dir, { recursive: true });
185
+ const names = servers.map((server) => server.name);
186
+ if (names.length > 0) {
187
+ // Manifest FIRST (union of old and new): a crash before the mcp.json
188
+ // write leaves an over-wide manifest, never an untracked belt entry.
189
+ writeManifest(dir, [...new Set([...managedNames, ...names])]);
190
+ }
191
+ writeFileAtomic(mcpPath, `${JSON.stringify(next, null, 2)}\n`);
192
+ if (names.length > 0) {
193
+ writeManifest(dir, names);
194
+ }
195
+ else {
196
+ rmSync(join(dir, MANAGED_MANIFEST), { force: true });
197
+ }
198
+ return disclosures;
199
+ }
200
+ /**
201
+ * One pre-spawn decision for runCursor: reconcile the lane's mcp.json —
202
+ * writing the requested servers, or removing previously managed ones so a
203
+ * stale belt never rides a non-delegate run — and report whether the run
204
+ * must add `--approve-mcps`, plus typed disclosures for anything the
205
+ * reconcile deliberately preserved. A run that REQUESTED injection but has
206
+ * no Claudexor-owned config dir to write into refuses loudly (the host
207
+ * ~/.cursor is never written, and a silent drop would fake a capability —
208
+ * INV-030/INV-063). On approval the env is pinned to the exact dir written.
209
+ */
210
+ export function prepareCursorMcpInjection(env, servers) {
211
+ const dir = resolveCursorMcpConfigDir(env);
212
+ let disclosures = [];
213
+ try {
214
+ if (servers.length > 0 && dir === null) {
215
+ return {
216
+ refusal: "cursor MCP injection requires a Claudexor-owned lane config dir (CURSOR_CONFIG_DIR or a scoped HOME); the host ~/.cursor is never written",
217
+ };
218
+ }
219
+ if (dir !== null)
220
+ disclosures = syncCursorMcpServers(dir, servers);
221
+ }
222
+ catch (err) {
223
+ return {
224
+ refusal: `cursor MCP injection failed before spawn: ${redactSecrets(err instanceof Error ? err.message : String(err))}`,
225
+ };
226
+ }
227
+ if (servers.length > 0) {
228
+ env["CURSOR_CONFIG_DIR"] = dir;
229
+ return { approved: true, disclosures };
230
+ }
231
+ return { approved: false, disclosures };
232
+ }
233
+ //# sourceMappingURL=mcp-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-config.js","sourceRoot":"","sources":["../src/mcp-config.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@claudexor/harness-cursor",
3
- "version": "3.8.3",
3
+ "version": "3.9.0",
4
4
  "license": "MIT",
5
5
  "description": "Cursor CLI adapter (cursor-agent -p --output-format stream-json).",
6
6
  "type": "module",
@@ -16,10 +16,10 @@
16
16
  "dist"
17
17
  ],
18
18
  "dependencies": {
19
- "@claudexor/core": "3.8.3",
20
- "@claudexor/util": "3.8.3",
21
- "@claudexor/secrets": "3.8.3",
22
- "@claudexor/schema": "3.8.3"
19
+ "@claudexor/core": "3.9.0",
20
+ "@claudexor/schema": "3.9.0",
21
+ "@claudexor/secrets": "3.9.0",
22
+ "@claudexor/util": "3.9.0"
23
23
  },
24
24
  "repository": {
25
25
  "type": "git",