@claudexor/harness-cursor 3.3.7-rc.0 → 3.3.8

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/auth.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { AuthPreference, CredentialProfile, CredentialProfileStatus } from "@claudexor/schema";
1
+ import type { AuthPreference } from "@claudexor/schema";
2
2
  import { runCapture } from "@claudexor/core";
3
3
  export interface CursorNativeAuthProbe {
4
4
  authed: boolean;
@@ -30,9 +30,12 @@ export declare function shouldSmokeCursorApiKey(input: {
30
30
  nativeProbeError: string | null;
31
31
  }): boolean;
32
32
  /**
33
- * INV-135: a cursor profile is exactly its secret-ref API key; other kinds,
34
- * a non-namespaced or foreign-slot ref (which would alias the engine default
35
- * or route another provider's key), and a missing secret are a typed refusal,
33
+ * INV-135: an API-key cursor profile is exactly its namespaced secret-ref key.
34
+ * `config_dir_login` profiles are supported but resolved earlier by the
35
+ * profile route owner (profile.ts), so this helper only ever sees the
36
+ * remaining kinds: a non-api_key kind here (e.g. `oauth_token`), a
37
+ * non-namespaced or foreign-slot ref (which would alias the engine default or
38
+ * route another provider's key), and a missing secret are a typed refusal,
36
39
  * never the default ladder. ONE owner for the run route and the doctor probe.
37
40
  */
38
41
  export declare function cursorProfileKeyOrRefusal(profile: {
@@ -45,11 +48,4 @@ export declare function cursorProfileKeyOrRefusal(profile: {
45
48
  refusal: string;
46
49
  reason: "misconfigured" | "missing_secret";
47
50
  };
48
- /**
49
- * Doctor projection for one cursor profile (INV-135, release wave round-15
50
- * #1): the SAME resolution the run route uses, mapped to a status. PRESENCE
51
- * is the honest doctor fact for a stored key; liveness stays the API-key
52
- * smoke's job at run time.
53
- */
54
- export declare function probeCursorCredentialProfile(profile: CredentialProfile, resolve?: (ref: string) => string | null): CredentialProfileStatus;
55
51
  //# sourceMappingURL=auth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAEpG,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAO7C,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,+EAA+E;AAC/E,wBAAsB,qBAAqB,CACzC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,EAC/C,WAAW,CAAC,EAAE,WAAW,EACzB,OAAO,GAAE,OAAO,UAAuB,GACtC,OAAO,CAAC,qBAAqB,CAAC,CAuBhC;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAiBpF;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,eAAe,GAAG,aAAa,CAAC;AAE1E,yEAAyE;AACzE,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,cAAc,EAAE,cAAc,CAAC;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;CACrB,GAAG,eAAe,CAOlB;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE;IACtD,cAAc,EAAE,cAAc,CAAC;IAC/B,KAAK,EAAE,eAAe,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;CACvB,GAAG,OAAO,CAEV;AAED,sEAAsE;AACtE,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,EAAE,cAAc,CAAC;IAC/B,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC,GAAG,OAAO,CAIV;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE;IACP,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,EACD,OAAO,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAoB,GACtD;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,eAAe,GAAG,gBAAgB,CAAA;CAAE,CAmBnF;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,iBAAiB,EAC1B,OAAO,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAoB,GACtD,uBAAuB,CAyBzB"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAO7C,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,+EAA+E;AAC/E,wBAAsB,qBAAqB,CACzC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,EAC/C,WAAW,CAAC,EAAE,WAAW,EACzB,OAAO,GAAE,OAAO,UAAuB,GACtC,OAAO,CAAC,qBAAqB,CAAC,CAuBhC;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAiBpF;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,eAAe,GAAG,aAAa,CAAC;AAE1E,yEAAyE;AACzE,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,cAAc,EAAE,cAAc,CAAC;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;CACrB,GAAG,eAAe,CAOlB;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE;IACtD,cAAc,EAAE,cAAc,CAAC;IAC/B,KAAK,EAAE,eAAe,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;CACvB,GAAG,OAAO,CAEV;AAED,sEAAsE;AACtE,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,EAAE,cAAc,CAAC;IAC/B,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC,GAAG,OAAO,CAIV;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE;IACP,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,EACD,OAAO,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAoB,GACtD;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,eAAe,GAAG,gBAAgB,CAAA;CAAE,CAmBnF"}
package/dist/auth.js CHANGED
@@ -1,5 +1,4 @@
1
1
  import { namespacedSecretRefBase, resolveSecret } from "@claudexor/secrets";
2
- import { CredentialProfileStatus as CredentialProfileStatusSchema } from "@claudexor/schema";
3
2
  import { runCapture } from "@claudexor/core";
4
3
  import { redactSecrets } from "@claudexor/util";
5
4
  const BIN = process.env.CLAUDEXOR_CURSOR_BIN || "cursor-agent";
@@ -76,15 +75,18 @@ export function shouldSmokeCursorApiKey(input) {
76
75
  return !input.nativeAuthed && input.nativeProbeError === null;
77
76
  }
78
77
  /**
79
- * INV-135: a cursor profile is exactly its secret-ref API key; other kinds,
80
- * a non-namespaced or foreign-slot ref (which would alias the engine default
81
- * or route another provider's key), and a missing secret are a typed refusal,
78
+ * INV-135: an API-key cursor profile is exactly its namespaced secret-ref key.
79
+ * `config_dir_login` profiles are supported but resolved earlier by the
80
+ * profile route owner (profile.ts), so this helper only ever sees the
81
+ * remaining kinds: a non-api_key kind here (e.g. `oauth_token`), a
82
+ * non-namespaced or foreign-slot ref (which would alias the engine default or
83
+ * route another provider's key), and a missing secret are a typed refusal,
82
84
  * never the default ladder. ONE owner for the run route and the doctor probe.
83
85
  */
84
86
  export function cursorProfileKeyOrRefusal(profile, resolve = resolveSecret) {
85
87
  if (profile.credential_kind !== "api_key")
86
88
  return {
87
- refusal: `credential profile "${profile.profile_id}": cursor supports only the api_key transport`,
89
+ refusal: `credential profile "${profile.profile_id}": cursor credential kind "${profile.credential_kind}" is not supported (use api_key or config_dir_login)`,
88
90
  reason: "misconfigured",
89
91
  };
90
92
  const ref = profile.secret_ref ?? "";
@@ -101,37 +103,4 @@ export function cursorProfileKeyOrRefusal(profile, resolve = resolveSecret) {
101
103
  };
102
104
  return { key };
103
105
  }
104
- /**
105
- * Doctor projection for one cursor profile (INV-135, release wave round-15
106
- * #1): the SAME resolution the run route uses, mapped to a status. PRESENCE
107
- * is the honest doctor fact for a stored key; liveness stays the API-key
108
- * smoke's job at run time.
109
- */
110
- export function probeCursorCredentialProfile(profile, resolve = resolveSecret) {
111
- const base = { profile_id: profile.profile_id, harness_id: "cursor" };
112
- try {
113
- const gate = cursorProfileKeyOrRefusal(profile, resolve);
114
- if ("refusal" in gate)
115
- return CredentialProfileStatusSchema.parse({
116
- ...base,
117
- availability: "unavailable",
118
- verification: gate.reason === "missing_secret" ? "not_run" : "failed",
119
- detail: gate.refusal,
120
- });
121
- return CredentialProfileStatusSchema.parse({
122
- ...base,
123
- availability: "available",
124
- verification: "not_run",
125
- detail: `secret "${profile.secret_ref}" is stored`,
126
- });
127
- }
128
- catch (err) {
129
- return CredentialProfileStatusSchema.parse({
130
- ...base,
131
- availability: "unavailable",
132
- verification: "failed",
133
- detail: redactSecrets(err instanceof Error ? err.message : String(err)).slice(0, 300),
134
- });
135
- }
136
- }
137
106
  //# sourceMappingURL=auth.js.map
package/dist/auth.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -3,9 +3,11 @@ import type { HarnessAdapter } from "@claudexor/core";
3
3
  import { runCapture, runCliHarness as runCliHarnessDefault } from "@claudexor/core";
4
4
  export { parseCursorModelList } from "./parse.js";
5
5
  import { probeCursorNativeAuth } from "./auth.js";
6
+ export { canonicalCursorProfileHome, cursorProfilePathEnv } from "./profile.js";
6
7
  export { cursorStatusAuthenticated, cursorStatusLoggedOut, selectCursorAuthRoute, shouldDiscloseCursorAutoApiRoute, } from "./auth.js";
7
8
  declare function detectVersion(abortSignal?: AbortSignal): Promise<string | null>;
8
9
  declare function cursorApiKey(env?: Record<string, string | null | undefined>): string | null;
10
+ type EnvMap = Record<string, string | null | undefined>;
9
11
  type CursorApiSmokeResult = {
10
12
  ok: boolean;
11
13
  detail: string;
@@ -42,6 +44,6 @@ export declare function cleanupCursorSmokeBase(base: string, opts?: {
42
44
  retries?: number;
43
45
  }): Promise<void>;
44
46
  export declare function smokeIsolatedApiKey(key?: string | null, options?: CursorApiSmokeOptions): Promise<CursorApiSmokeResult>;
45
- declare function listCursorModels(env?: Record<string, string | null | undefined>): Promise<HarnessModel[]>;
47
+ declare function listCursorModels(env?: EnvMap): Promise<HarnessModel[]>;
46
48
  export declare function createCursorAdapter(deps?: Partial<CursorRuntimeDeps>): HarnessAdapter;
47
49
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -8,7 +8,9 @@ import { resolveSecret } from "@claudexor/secrets";
8
8
  import { CLAUDEXOR_VERSION, nowIso, redactSecrets } from "@claudexor/util";
9
9
  import { createCursorParser, parseCursorModelList } from "./parse.js";
10
10
  export { parseCursorModelList } from "./parse.js";
11
- import { cursorProfileKeyOrRefusal, probeCursorCredentialProfile, probeCursorNativeAuth, selectCursorAuthRoute, shouldDiscloseCursorAutoApiRoute, shouldSmokeCursorApiKey, } from "./auth.js";
11
+ import { probeCursorNativeAuth, selectCursorAuthRoute, shouldDiscloseCursorAutoApiRoute, shouldSmokeCursorApiKey, } from "./auth.js";
12
+ import { probeCursorCredentialProfile, resolveCursorRunRoute, stampCursorProfileEvents, } from "./profile.js";
13
+ export { canonicalCursorProfileHome, cursorProfilePathEnv } from "./profile.js";
12
14
  export { cursorStatusAuthenticated, cursorStatusLoggedOut, selectCursorAuthRoute, shouldDiscloseCursorAutoApiRoute, } from "./auth.js";
13
15
  const BIN = process.env.CLAUDEXOR_CURSOR_BIN || "cursor-agent";
14
16
  // Long enough for one sequential reviewer panel pass; still bounded so revoked
@@ -20,32 +22,35 @@ const CURSOR_CAPABILITY_PROFILE = HarnessCapabilityProfileSchema.parse({
20
22
  supported_sources: ["native_session", "api_key_env"],
21
23
  preferred_source: null,
22
24
  credential_transports: [
25
+ // Default native auth uses the OS Keychain. Named profiles select
26
+ // Cursor's vendor-supported file store, whose auth path is HOME/XDG/
27
+ // APPDATA-relocatable while config/session state is relocated separately.
23
28
  { source: "native_session", kind: "os_keychain", relocatable_by: ["HOME"] },
29
+ { source: "native_session", kind: "config_file", relocatable_by: ["HOME"] },
24
30
  { source: "api_key_env", kind: "env_var", relocatable_by: ["ENV"] },
25
31
  ],
26
32
  },
27
- access_control: { readonly_mechanism: "fs_sandbox" },
33
+ // Ask mode is the mechanism: the CLI withholds the write/shell tools there
34
+ // ("--mode ask ... (read-only)" per cursor-agent --help), which is a tool
35
+ // allowlist, not a filesystem sandbox. `--sandbox enabled` alone was proven
36
+ // NOT to enforce readonly: a print-mode agent run "has access to all tools,
37
+ // including write and shell", and a live probe wrote a file through it.
38
+ access_control: { readonly_mechanism: "tool_allowlist" },
28
39
  isolation: {
29
40
  supported_containment: ["scoped_home_keychain_bridge", "env_or_file_injection"],
30
41
  },
31
42
  attachment_inputs: [],
32
43
  });
33
- function accessArgs(access) {
34
- switch (access) {
35
- case "readonly":
36
- return ["--sandbox", "enabled", "--trust"];
37
- case "workspace_write":
38
- // `--force` alone force-allows commands with NO sandbox materially
39
- // broader than claude acceptEdits / codex --sandbox workspace-write for
40
- // the same profile. Keep the sandbox on for workspace_write parity.
41
- return ["--force", "--sandbox", "enabled", "--trust"];
42
- case "full":
43
- case "external_sandbox_full":
44
- return ["--force", "--sandbox", "disabled", "--trust"];
45
- case "inherit_native":
46
- return ["--trust"];
47
- }
48
- }
44
+ // `--force` alone force-allows commands with NO sandbox — materially broader
45
+ // than claude acceptEdits / codex --sandbox workspace-write for the same
46
+ // profile. Keep the sandbox on for workspace_write parity.
47
+ const accessArgs = {
48
+ readonly: ["--sandbox", "enabled", "--trust"],
49
+ workspace_write: ["--force", "--sandbox", "enabled", "--trust"],
50
+ full: ["--force", "--sandbox", "disabled", "--trust"],
51
+ external_sandbox_full: ["--force", "--sandbox", "disabled", "--trust"],
52
+ inherit_native: ["--trust"],
53
+ };
49
54
  async function detectVersion(abortSignal) {
50
55
  try {
51
56
  const r = await runCapture(BIN, ["--version"], {
@@ -70,6 +75,11 @@ function cursorApiKey(env) {
70
75
  process.env.CURSOR_API_KEY ||
71
76
  null);
72
77
  }
78
+ /** The route did not need (or could not run) the isolated key smoke. */
79
+ const unsmokedApiSmoke = (key) => ({
80
+ ok: false,
81
+ detail: key ? "Cursor API-key smoke not required for selected route" : "no Cursor API key",
82
+ });
73
83
  export function cursorApiSmokeFinalText(stdout) {
74
84
  const replies = [];
75
85
  for (const rawLine of stdout.replaceAll("\r", "").split("\n")) {
@@ -234,16 +244,10 @@ async function listCursorModels(env = { ...providerScrubEnv() }) {
234
244
  }
235
245
  }
236
246
  function cursorBaseEnv(env) {
237
- return {
238
- ...(env ?? {}),
239
- ...providerScrubEnv(),
240
- };
247
+ return { ...(env ?? {}), ...providerScrubEnv() };
241
248
  }
242
249
  function cursorNativeEnv(env) {
243
- return {
244
- ...cursorBaseEnv(env),
245
- CURSOR_API_KEY: null,
246
- };
250
+ return { ...cursorBaseEnv(env), CURSOR_API_KEY: null };
247
251
  }
248
252
  function maybeBridgeScopedHome(env) {
249
253
  const home = env["HOME"];
@@ -253,7 +257,7 @@ function maybeBridgeScopedHome(env) {
253
257
  async function resolveCursorAuthRoute(deps, input) {
254
258
  const env = cursorBaseEnv(input.env);
255
259
  const scopedHome = Boolean(input.env?.["HOME"]);
256
- if (scopedHome)
260
+ if (scopedHome && input.bridgeNativeSession !== false)
257
261
  maybeBridgeScopedHome(env);
258
262
  const authPreference = input.authPreference ?? "auto";
259
263
  const key = authPreference === "subscription" ? null : deps.cursorApiKey(input.env);
@@ -269,12 +273,7 @@ async function resolveCursorAuthRoute(deps, input) {
269
273
  });
270
274
  const apiSmoke = shouldSmokeApiKey && key
271
275
  ? await smokeCursorApiKey(deps, key, input.fresh === true)
272
- : {
273
- ok: false,
274
- detail: key
275
- ? "Cursor API-key smoke not required for selected route"
276
- : "no Cursor API key",
277
- };
276
+ : unsmokedApiSmoke(key);
278
277
  const route = selectCursorAuthRoute({
279
278
  authPreference,
280
279
  hasKey: Boolean(key),
@@ -282,15 +281,7 @@ async function resolveCursorAuthRoute(deps, input) {
282
281
  nativeAuthed,
283
282
  scopedHome,
284
283
  });
285
- return {
286
- route,
287
- env,
288
- key,
289
- nativeAuthed,
290
- nativeProbeError: nativeProbe.probeError,
291
- apiSmoke,
292
- scopedHome,
293
- };
284
+ return { route, env, key, nativeAuthed, scopedHome };
294
285
  }
295
286
  async function listCursorModelsFromReadyRoute(deps, spec) {
296
287
  const catalogOnly = () => {
@@ -409,7 +400,16 @@ export function createCursorAdapter(deps = {}) {
409
400
  ...(nativeAuthed ? ["local_session"] : []),
410
401
  ...(apiKey ? ["api_key"] : []),
411
402
  ],
412
- access_profiles_supported: ["readonly", "workspace_write", "inherit_native"],
403
+ // external_sandbox_full: cursor's own sandbox stands down (--force
404
+ // --sandbox disabled), mirroring codex/claude; the engine applies its
405
+ // own OS boundary only on delegated runs. Bare `full` stays
406
+ // undeclared/refused (no boundary, not proven).
407
+ access_profiles_supported: [
408
+ "readonly",
409
+ "workspace_write",
410
+ "external_sandbox_full",
411
+ "inherit_native",
412
+ ],
413
413
  });
414
414
  },
415
415
  async doctor(_spec) {
@@ -448,12 +448,7 @@ export function createCursorAdapter(deps = {}) {
448
448
  });
449
449
  const apiSmoke = key && shouldSmokeApiKey
450
450
  ? await smokeCursorApiKey(runtime, key, _spec.fresh === true)
451
- : {
452
- ok: false,
453
- detail: key
454
- ? "Cursor API-key smoke not required for selected route"
455
- : "no Cursor API key",
456
- };
451
+ : unsmokedApiSmoke(key);
457
452
  // Readiness doctrine: a key string alone is source availability, not
458
453
  // proven readiness. A bridged native status probe proves the exact scoped
459
454
  // environment; API fallback still requires its isolated smoke.
@@ -585,29 +580,37 @@ export function createCursorAdapter(deps = {}) {
585
580
  async models(spec) {
586
581
  return listCursorModelsFromReadyRoute(runtime, spec);
587
582
  },
588
- // INV-135 (release wave round-15 #1): a valid cursor profile must admit
589
- // the route even when the default store is logged out — the orchestrator
590
- // consults THIS probe to override the default auth verdict.
591
- async probeCredentialProfile(profile) {
592
- return probeCursorCredentialProfile(profile, runtime.resolveProfileSecret);
583
+ async probeCredentialProfile(profile, abortSignal) {
584
+ return probeCursorCredentialProfile(profile, runtime, abortSignal);
593
585
  },
594
586
  };
595
587
  }
596
588
  async function* runCursor(spec, deps) {
597
- if (spec.access === "full" || spec.access === "external_sandbox_full") {
589
+ // Bare `full` claims NO boundary at all and stays refused (unproven).
590
+ // `external_sandbox_full` stands cursor's weaker sandbox down (`--force
591
+ // --sandbox disabled` via accessArgs) — the same mapping codex
592
+ // (danger-full-access) and claude (bypassPermissions) implement. The engine
593
+ // applies its OWN OS boundary only on delegated runs; requested directly,
594
+ // this profile runs unrestricted (and is not behind the trust allow).
595
+ if (spec.access === "full") {
598
596
  yield {
599
597
  type: "error",
600
598
  session_id: spec.session_id,
601
599
  ts: nowIso(),
602
- error: "cursor full access is not conformance-proven; use workspace_write or another harness",
600
+ error: "cursor full access is not conformance-proven; use workspace_write, or external_sandbox_full (cursor's sandbox stands down; the engine applies its own boundary only on delegated runs — otherwise unrestricted)",
603
601
  };
604
602
  yield { type: "completed", session_id: spec.session_id, ts: nowIso() };
605
603
  return;
606
604
  }
607
- const args = ["-p", "--output-format", "stream-json", ...accessArgs(spec.access)];
605
+ const args = ["-p", "--output-format", "stream-json", ...accessArgs[spec.access]];
608
606
  // Native Plan's createPlan schema cannot carry D-16 WorkReport; native read-only
609
607
  // Ask preserves prompt-owned plan intent and the model-authored final report.
610
- if (spec.intent === "plan")
608
+ // `readonly` access rides the SAME mode: Ask is the only mechanism this CLI
609
+ // has that actually withholds the write/shell tools. Without it a readonly
610
+ // run is a full agent run — `--sandbox enabled` gates commands, not file
611
+ // edits (proven by a live probe: the agent created a file under exactly the
612
+ // previous readonly argv).
613
+ if (spec.intent === "plan" || spec.access === "readonly")
611
614
  args.push("--mode", "ask");
612
615
  // W-C4 live deltas (engine-gated; the parser applies the documented taxonomy).
613
616
  if (spec.stream_deltas)
@@ -620,24 +623,16 @@ async function* runCursor(spec, deps) {
620
623
  // Cursor has no native system-prompt flag; layer instructions as a delimited
621
624
  // prompt prefix (the engine already withheld them from synthesis/reviewers).
622
625
  args.push(promptWithInstructions(spec));
623
- // INV-135 strict profile routing: cursor's native login is a singleton, so
624
- // a profile is exactly its secret-ref API key (smoked before use like the
625
- // default key route); other kinds refuse typed.
626
+ // INV-135 strict profile routing lives in profile.ts; the callback resolves
627
+ // the engine-default credential ladder for profile-less (or API-key) runs.
626
628
  const profile = spec.credential_profile;
627
- const profileGate = profile
628
- ? cursorProfileKeyOrRefusal(profile, deps.resolveProfileSecret)
629
- : null;
630
- if (profileGate && "refusal" in profileGate) {
631
- yield { type: "error", session_id: spec.session_id, ts: nowIso(), error: profileGate.refusal };
629
+ const resolved = await resolveCursorRunRoute(spec, deps, ({ cursorApiKey, ...input }) => resolveCursorAuthRoute(cursorApiKey ? { ...deps, cursorApiKey } : deps, input), abortSignalFromSpec(spec));
630
+ if ("refusal" in resolved) {
631
+ yield { type: "error", session_id: spec.session_id, ts: nowIso(), error: resolved.refusal };
632
632
  yield { type: "completed", session_id: spec.session_id, ts: nowIso() };
633
633
  return;
634
634
  }
635
- const routeDeps = profileGate ? { ...deps, cursorApiKey: () => profileGate.key } : deps;
636
- const { route, env, key, nativeAuthed, scopedHome } = await resolveCursorAuthRoute(routeDeps, {
637
- env: spec.env,
638
- authPreference: profile ? "api_key" : spec.auth_preference,
639
- abortSignal: abortSignalFromSpec(spec),
640
- });
635
+ const { route, env, key, nativeAuthed, scopedHome } = resolved;
641
636
  if (route === "api_key" && key) {
642
637
  env.CURSOR_API_KEY = key;
643
638
  if (shouldDiscloseCursorAutoApiRoute({
@@ -683,13 +678,7 @@ async function* runCursor(spec, deps) {
683
678
  env,
684
679
  label: "cursor-agent",
685
680
  redact: redactSecrets,
686
- parseEvent: (obj, sessionId) => {
687
- const out = cursorParser(obj, sessionId);
688
- if (out && profile)
689
- for (const ev of out)
690
- ev.credential_profile_id = profile.profile_id;
691
- return out;
692
- },
681
+ parseEvent: stampCursorProfileEvents(profile, cursorParser),
693
682
  });
694
683
  }
695
684
  //# sourceMappingURL=index.js.map
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":"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"}
@@ -0,0 +1,71 @@
1
+ import type { AuthPreference, CredentialProfile, CredentialProfileStatus } from "@claudexor/schema";
2
+ import { probeCursorNativeAuth, type CursorAuthRoute } from "./auth.js";
3
+ import type { CursorEventParser } from "./parse.js";
4
+ type EnvMap = Record<string, string | null | undefined>;
5
+ export interface CursorProfileRuntimeDeps {
6
+ nativeAuthOk: typeof probeCursorNativeAuth;
7
+ resolveProfileSecret: (ref: string) => string | null;
8
+ }
9
+ /** Canonical, Claudexor-owned HOME for one additive Cursor identity. */
10
+ export declare function canonicalCursorProfileHome(locator: string): string;
11
+ /**
12
+ * Cursor's vendor-supported file credential store is selected by HOME on
13
+ * macOS, XDG_CONFIG_HOME on Linux, and APPDATA on Windows. Cursor's mutable
14
+ * config/session data remains independently relocatable, so a run can keep
15
+ * that state in its lane/envelope HOME while reading auth only from the named
16
+ * profile HOME.
17
+ */
18
+ export declare function cursorProfilePathEnv(profileHome: string, stateHome?: string): Record<string, string>;
19
+ /** Exact strict-profile run/probe environment; never bridges the host Keychain. */
20
+ export declare function cursorProfileRunEnv(profileHome: string, specEnv?: EnvMap): EnvMap;
21
+ export type CursorResolvedProfileRoute = {
22
+ kind: "native";
23
+ env: EnvMap;
24
+ } | {
25
+ kind: "api_key";
26
+ key: string;
27
+ } | {
28
+ refusal: string;
29
+ };
30
+ /** Strict profile resolution: the named identity or a typed refusal, never default auth. */
31
+ export declare function resolveCursorProfileRoute(profile: CredentialProfile, specEnv: EnvMap, runtime: CursorProfileRuntimeDeps, abortSignal?: AbortSignal): Promise<CursorResolvedProfileRoute>;
32
+ /** The resolved auth route a cursor run executes with (profile or default ladder). */
33
+ export type CursorRunRoute = {
34
+ route: CursorAuthRoute;
35
+ env: EnvMap;
36
+ key: string | null;
37
+ nativeAuthed: boolean;
38
+ scopedHome: boolean;
39
+ };
40
+ export type CursorDefaultRouteInput = {
41
+ env: EnvMap;
42
+ authPreference: AuthPreference;
43
+ abortSignal: AbortSignal | undefined;
44
+ bridgeNativeSession: boolean;
45
+ /** Set only for API-key profiles: overrides the default key lookup (INV-062 transient). */
46
+ cursorApiKey?: (env?: EnvMap) => string | null;
47
+ };
48
+ /**
49
+ * INV-135 strict profile routing for a run: named native profiles use Cursor's
50
+ * own file credential store; API-key profiles keep their existing smoked route.
51
+ * Neither path receives the default host-Keychain bridge. Without a profile the
52
+ * caller-supplied default resolver runs the engine-default credential ladder.
53
+ */
54
+ export declare function resolveCursorRunRoute(spec: {
55
+ credential_profile: CredentialProfile | null;
56
+ env: EnvMap;
57
+ auth_preference: AuthPreference;
58
+ }, runtime: CursorProfileRuntimeDeps, resolveDefaultRoute: (input: CursorDefaultRouteInput) => Promise<CursorRunRoute>, abortSignal?: AbortSignal): Promise<CursorRunRoute | {
59
+ refusal: string;
60
+ }>;
61
+ /** INV-135 attribution: stamp every parsed run event with the profile that ran it. */
62
+ export declare function stampCursorProfileEvents(profile: CredentialProfile | null, parse: CursorEventParser): CursorEventParser;
63
+ /**
64
+ * Doctor projection for one Cursor profile, using the same route resolver
65
+ * facts. INV-135 (release wave round-15 #1): a valid cursor profile must admit
66
+ * the route even when the default store is logged out — the orchestrator
67
+ * consults THIS probe to override the default auth verdict.
68
+ */
69
+ export declare function probeCursorCredentialProfile(profile: CredentialProfile, runtime: CursorProfileRuntimeDeps, abortSignal?: AbortSignal): Promise<CredentialProfileStatus>;
70
+ export {};
71
+ //# sourceMappingURL=profile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../src/profile.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAGpG,OAAO,EAEL,qBAAqB,EACrB,KAAK,eAAe,EAErB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,KAAK,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;AAExD,MAAM,WAAW,wBAAwB;IACvC,YAAY,EAAE,OAAO,qBAAqB,CAAC;IAC3C,oBAAoB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CACtD;AAED,wEAAwE;AACxE,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAElE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,SAAS,GAAE,MAAoB,GAC9B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAYxB;AAED,mFAAmF;AACnF,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,MAAW,GAAG,MAAM,CAQrF;AAED,MAAM,MAAM,0BAA0B,GACpC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3F,4FAA4F;AAC5F,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,wBAAwB,EACjC,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,0BAA0B,CAAC,CAiBrC;AAED,sFAAsF;AACtF,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,eAAe,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,cAAc,CAAC;IAC/B,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC;IACrC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,2FAA2F;IAC3F,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CAChD,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE;IACJ,kBAAkB,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,EAAE,cAAc,CAAC;CACjC,EACD,OAAO,EAAE,wBAAwB,EACjC,mBAAmB,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,OAAO,CAAC,cAAc,CAAC,EAChF,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,cAAc,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAsB/C;AAED,sFAAsF;AACtF,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,iBAAiB,GAAG,IAAI,EACjC,KAAK,EAAE,iBAAiB,GACvB,iBAAiB,CAOnB;AA8BD;;;;;GAKG;AACH,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,wBAAwB,EACjC,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,uBAAuB,CAAC,CAuClC"}
@@ -0,0 +1,175 @@
1
+ import { join } from "node:path";
2
+ import { canonicalIsolationLocator, providerScrubEnv } from "@claudexor/core";
3
+ import { CredentialProfileStatus as CredentialProfileStatusSchema } from "@claudexor/schema";
4
+ import { nowIso, redactSecrets } from "@claudexor/util";
5
+ import { cursorProfileKeyOrRefusal, } from "./auth.js";
6
+ /** Canonical, Claudexor-owned HOME for one additive Cursor identity. */
7
+ export function canonicalCursorProfileHome(locator) {
8
+ return canonicalIsolationLocator(locator, "credential profile Cursor HOME");
9
+ }
10
+ /**
11
+ * Cursor's vendor-supported file credential store is selected by HOME on
12
+ * macOS, XDG_CONFIG_HOME on Linux, and APPDATA on Windows. Cursor's mutable
13
+ * config/session data remains independently relocatable, so a run can keep
14
+ * that state in its lane/envelope HOME while reading auth only from the named
15
+ * profile HOME.
16
+ */
17
+ export function cursorProfilePathEnv(profileHome, stateHome = profileHome) {
18
+ const home = canonicalCursorProfileHome(profileHome);
19
+ const state = stateHome.trim() || home;
20
+ return {
21
+ HOME: home,
22
+ USERPROFILE: home,
23
+ APPDATA: join(home, "AppData", "Roaming"),
24
+ XDG_CONFIG_HOME: join(home, ".config"),
25
+ CURSOR_CONFIG_DIR: join(state, ".cursor"),
26
+ CURSOR_DATA_DIR: join(state, ".cursor"),
27
+ AGENT_CLI_CREDENTIAL_STORE: "file",
28
+ };
29
+ }
30
+ /** Exact strict-profile run/probe environment; never bridges the host Keychain. */
31
+ export function cursorProfileRunEnv(profileHome, specEnv = {}) {
32
+ const stateHome = specEnv["HOME"] || profileHome;
33
+ return {
34
+ ...specEnv,
35
+ ...providerScrubEnv(),
36
+ ...cursorProfilePathEnv(profileHome, stateHome),
37
+ CURSOR_API_KEY: null,
38
+ };
39
+ }
40
+ /** Strict profile resolution: the named identity or a typed refusal, never default auth. */
41
+ export async function resolveCursorProfileRoute(profile, specEnv, runtime, abortSignal) {
42
+ if (profile.credential_kind === "config_dir_login") {
43
+ try {
44
+ const env = cursorProfileRunEnv(profile.isolation_locator ?? "", specEnv);
45
+ const probe = await runtime.nativeAuthOk(env, abortSignal);
46
+ if (probe.authed)
47
+ return { kind: "native", env };
48
+ return {
49
+ refusal: probe.probeError
50
+ ? `credential profile "${profile.profile_id}": Cursor status probe failed — ${probe.probeError}`
51
+ : `credential profile "${profile.profile_id}" has no Cursor login in its profile HOME (run the profile login first)`,
52
+ };
53
+ }
54
+ catch (err) {
55
+ return { refusal: err instanceof Error ? err.message : String(err) };
56
+ }
57
+ }
58
+ const gate = cursorProfileKeyOrRefusal(profile, runtime.resolveProfileSecret);
59
+ return "refusal" in gate ? gate : { kind: "api_key", key: gate.key };
60
+ }
61
+ /**
62
+ * INV-135 strict profile routing for a run: named native profiles use Cursor's
63
+ * own file credential store; API-key profiles keep their existing smoked route.
64
+ * Neither path receives the default host-Keychain bridge. Without a profile the
65
+ * caller-supplied default resolver runs the engine-default credential ladder.
66
+ */
67
+ export async function resolveCursorRunRoute(spec, runtime, resolveDefaultRoute, abortSignal) {
68
+ const profile = spec.credential_profile;
69
+ const profileRoute = profile
70
+ ? await resolveCursorProfileRoute(profile, spec.env, runtime, abortSignal)
71
+ : null;
72
+ if (profileRoute && "refusal" in profileRoute)
73
+ return profileRoute;
74
+ if (profileRoute?.kind === "native")
75
+ return {
76
+ route: "local_session",
77
+ env: profileRoute.env,
78
+ key: null,
79
+ nativeAuthed: true,
80
+ scopedHome: Boolean(spec.env["HOME"]),
81
+ };
82
+ const keyOverride = profileRoute?.kind === "api_key" ? profileRoute.key : null;
83
+ return resolveDefaultRoute({
84
+ env: spec.env,
85
+ authPreference: profile ? "api_key" : spec.auth_preference,
86
+ abortSignal,
87
+ bridgeNativeSession: profile === null,
88
+ ...(keyOverride === null ? {} : { cursorApiKey: () => keyOverride }),
89
+ });
90
+ }
91
+ /** INV-135 attribution: stamp every parsed run event with the profile that ran it. */
92
+ export function stampCursorProfileEvents(profile, parse) {
93
+ if (!profile)
94
+ return parse;
95
+ return (obj, sessionId) => {
96
+ const out = parse(obj, sessionId);
97
+ if (out)
98
+ for (const ev of out)
99
+ ev.credential_profile_id = profile.profile_id;
100
+ return out;
101
+ };
102
+ }
103
+ function cursorProfileNativeStatus(profile, probe) {
104
+ const base = { profile_id: profile.profile_id, harness_id: "cursor" };
105
+ if (probe.authed)
106
+ return CredentialProfileStatusSchema.parse({
107
+ ...base,
108
+ availability: "available",
109
+ verification: "passed",
110
+ detail: "Cursor login verified in the profile HOME file store",
111
+ last_verified_at: nowIso(),
112
+ });
113
+ if (probe.probeError)
114
+ return CredentialProfileStatusSchema.parse({
115
+ ...base,
116
+ availability: "unknown",
117
+ verification: "not_run",
118
+ detail: probe.probeError,
119
+ });
120
+ return CredentialProfileStatusSchema.parse({
121
+ ...base,
122
+ availability: "unavailable",
123
+ verification: "not_run",
124
+ detail: "no Cursor login in the profile HOME (run the profile login)",
125
+ });
126
+ }
127
+ /**
128
+ * Doctor projection for one Cursor profile, using the same route resolver
129
+ * facts. INV-135 (release wave round-15 #1): a valid cursor profile must admit
130
+ * the route even when the default store is logged out — the orchestrator
131
+ * consults THIS probe to override the default auth verdict.
132
+ */
133
+ export async function probeCursorCredentialProfile(profile, runtime, abortSignal) {
134
+ if (profile.credential_kind !== "config_dir_login") {
135
+ const base = { profile_id: profile.profile_id, harness_id: "cursor" };
136
+ try {
137
+ const gate = cursorProfileKeyOrRefusal(profile, runtime.resolveProfileSecret);
138
+ if ("refusal" in gate)
139
+ return CredentialProfileStatusSchema.parse({
140
+ ...base,
141
+ availability: "unavailable",
142
+ verification: gate.reason === "missing_secret" ? "not_run" : "failed",
143
+ detail: gate.refusal,
144
+ });
145
+ return CredentialProfileStatusSchema.parse({
146
+ ...base,
147
+ availability: "available",
148
+ verification: "not_run",
149
+ detail: `secret "${profile.secret_ref}" is stored`,
150
+ });
151
+ }
152
+ catch (err) {
153
+ return CredentialProfileStatusSchema.parse({
154
+ ...base,
155
+ availability: "unavailable",
156
+ verification: "failed",
157
+ detail: redactSecrets(err instanceof Error ? err.message : String(err)).slice(0, 300),
158
+ });
159
+ }
160
+ }
161
+ try {
162
+ const env = cursorProfileRunEnv(profile.isolation_locator ?? "");
163
+ return cursorProfileNativeStatus(profile, await runtime.nativeAuthOk(env, abortSignal));
164
+ }
165
+ catch (err) {
166
+ return CredentialProfileStatusSchema.parse({
167
+ profile_id: profile.profile_id,
168
+ harness_id: "cursor",
169
+ availability: "unavailable",
170
+ verification: "failed",
171
+ detail: redactSecrets(err instanceof Error ? err.message : String(err)).slice(0, 300),
172
+ });
173
+ }
174
+ }
175
+ //# sourceMappingURL=profile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../src/profile.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.3.7-rc.0",
3
+ "version": "3.3.8",
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.3.7-rc.0",
20
- "@claudexor/schema": "3.3.7-rc.0",
21
- "@claudexor/secrets": "3.3.7-rc.0",
22
- "@claudexor/util": "3.3.7-rc.0"
19
+ "@claudexor/core": "3.3.8",
20
+ "@claudexor/secrets": "3.3.8",
21
+ "@claudexor/schema": "3.3.8",
22
+ "@claudexor/util": "3.3.8"
23
23
  },
24
24
  "repository": {
25
25
  "type": "git",