claude-overnight 1.23.1 → 1.23.3

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
- export declare const VERSION = "1.23.1";
1
+ export declare const VERSION = "1.23.3";
package/dist/_version.js CHANGED
@@ -1,2 +1,2 @@
1
1
  // Auto-generated by build — do not edit manually.
2
- export const VERSION = "1.23.1";
2
+ export const VERSION = "1.23.3";
package/dist/index.js CHANGED
@@ -158,6 +158,8 @@ async function promptResumeOverrides(state, cliFlags, argv, noTTY, runDir) {
158
158
  console.log();
159
159
  }
160
160
  async function main() {
161
+ // Prevent macOS keychain popups from the Cursor CLI agent subprocess.
162
+ process.env.CURSOR_SKIP_KEYCHAIN ??= "1";
161
163
  const argv = process.argv.slice(2);
162
164
  if (argv.includes("-v") || argv.includes("--version")) {
163
165
  const __dirname = dirname(fileURLToPath(import.meta.url));
@@ -221,7 +223,7 @@ async function main() {
221
223
  const proxyUp = await healthCheckCursorProxy();
222
224
  if (!proxyUp) {
223
225
  console.warn(chalk.yellow(`\n ⚠ ${savedCursorProviders.length} Cursor provider(s) saved but proxy is not running at ${PROXY_DEFAULT_URL}`));
224
- console.warn(chalk.yellow(` Start it: npx cursor-api-proxy`));
226
+ console.warn(chalk.yellow(` Start it: npx @claude-overnight/cursor-api-proxy`));
225
227
  console.warn(chalk.dim(` (Continuing — you can still use Anthropic models)\n`));
226
228
  }
227
229
  }
@@ -740,7 +742,8 @@ async function main() {
740
742
  setPlannerEnvResolver(envForModel);
741
743
  // Fail fast if a custom provider is misconfigured -- one bad key would
742
744
  // otherwise surface as N agent failures scattered across the run.
743
- if (plannerProvider || workerProvider || fastProvider) {
745
+ // Skip when NO_PREFLIGHT=1 (used by e2e tests).
746
+ if ((plannerProvider || workerProvider || fastProvider) && process.env.NO_PREFLIGHT !== "1") {
744
747
  const seen = new Set();
745
748
  const all = [
746
749
  ["planner", plannerProvider],
@@ -767,7 +770,7 @@ async function main() {
767
770
  if (!result.ok) {
768
771
  console.error(chalk.red(` ✗ ${role} preflight failed: ${chalk.dim(result.error)}`));
769
772
  if (isCursorProxyProvider(provider)) {
770
- console.error(chalk.yellow(` The proxy at ${PROXY_DEFAULT_URL} may have crashed. Start it: npx cursor-api-proxy`));
773
+ console.error(chalk.yellow(` The proxy at ${PROXY_DEFAULT_URL} may have crashed. Start it: npx @claude-overnight/cursor-api-proxy`));
771
774
  }
772
775
  else {
773
776
  console.error(chalk.red(` Fix the provider at ~/.claude/claude-overnight/providers.json and retry.`));
package/dist/providers.js CHANGED
@@ -486,6 +486,7 @@ async function startProxyProcess(baseUrl, url, port) {
486
486
  CURSOR_BRIDGE_API_KEY: process.env.CURSOR_BRIDGE_API_KEY
487
487
  || loadProviders().find(p => p.cursorProxy)?.cursorApiKey
488
488
  || "unused",
489
+ CURSOR_SKIP_KEYCHAIN: "1",
489
490
  };
490
491
  if (sysNode && agentJs) {
491
492
  proxyEnv.CURSOR_AGENT_NODE = sysNode;
@@ -493,7 +494,7 @@ async function startProxyProcess(baseUrl, url, port) {
493
494
  console.log(chalk.dim(` Using system node for agent subprocess: ${sysNode}`));
494
495
  }
495
496
  try {
496
- const child = spawn("npx", ["cursor-api-proxy"], {
497
+ const child = spawn("npx", ["@claude-overnight/cursor-api-proxy"], {
497
498
  detached: true,
498
499
  stdio: "ignore",
499
500
  env: proxyEnv,
@@ -547,15 +548,15 @@ function setupSteps() {
547
548
  label: "cursor-api-proxy server",
548
549
  check: () => {
549
550
  try {
550
- execSync("npx cursor-api-proxy --help", { stdio: "pipe", timeout: 10_000 });
551
+ execSync("npx @claude-overnight/cursor-api-proxy --help", { stdio: "pipe", timeout: 10_000 });
551
552
  return true;
552
553
  }
553
554
  catch {
554
555
  return false;
555
556
  }
556
557
  },
557
- autoCmd: "npx cursor-api-proxy",
558
- manualCmd: "npx cursor-api-proxy",
558
+ autoCmd: "npx @claude-overnight/cursor-api-proxy",
559
+ manualCmd: "npx @claude-overnight/cursor-api-proxy",
559
560
  successMsg: "cursor-api-proxy available",
560
561
  },
561
562
  ];
@@ -670,24 +671,24 @@ export async function setupCursorProxy() {
670
671
  if (choice === "a") {
671
672
  console.log(chalk.dim(` Checking install…`));
672
673
  try {
673
- execSync("npx cursor-api-proxy --help", { stdio: "pipe", timeout: 15_000 });
674
+ execSync("npx @claude-overnight/cursor-api-proxy --help", { stdio: "pipe", timeout: 15_000 });
674
675
  console.log(chalk.green(` ✓ cursor-api-proxy is installed`));
675
676
  }
676
677
  catch {
677
678
  console.log(chalk.dim(` Installing…`));
678
679
  try {
679
- execSync("npm install -g cursor-api-proxy", { stdio: "inherit", timeout: 120_000 });
680
+ execSync("npm install -g @claude-overnight/cursor-api-proxy", { stdio: "inherit", timeout: 120_000 });
680
681
  console.log(chalk.green(` ✓ Installed`));
681
682
  }
682
683
  catch {
683
- console.log(chalk.yellow(" Install failed — try manual: npm install -g cursor-api-proxy"));
684
+ console.log(chalk.yellow(" Install failed — try manual: npm install -g @claude-overnight/cursor-api-proxy"));
684
685
  return false;
685
686
  }
686
687
  }
687
688
  }
688
689
  else if (choice === "m") {
689
- console.log(chalk.cyan(`\n Install: ${chalk.bold("npm install -g cursor-api-proxy")}`));
690
- console.log(chalk.cyan(` Start: ${chalk.bold("npx cursor-api-proxy")}\n`));
690
+ console.log(chalk.cyan(`\n Install: ${chalk.bold("npm install -g @claude-overnight/cursor-api-proxy")}`));
691
+ console.log(chalk.cyan(` Start: ${chalk.bold("npx @claude-overnight/cursor-api-proxy")}\n`));
691
692
  const ok = await selectKey(` Started it?`, [
692
693
  { key: "r", desc: "eady" },
693
694
  { key: "c", desc: "ancel" },
@@ -705,7 +706,7 @@ export async function setupCursorProxy() {
705
706
  return true;
706
707
  // Auto-start failed or not responding — offer manual fallback
707
708
  console.log(chalk.yellow(`\n Couldn't start the proxy automatically. Start it manually:`));
708
- console.log(chalk.white(` ${chalk.bold("npx cursor-api-proxy")}`));
709
+ console.log(chalk.white(` ${chalk.bold("npx @claude-overnight/cursor-api-proxy")}`));
709
710
  for (;;) {
710
711
  const choice = await selectKey(` Proxy started?`, [
711
712
  { key: "r", desc: "etry (re-attempt auto-start + kill stale)" },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-overnight",
3
- "version": "1.23.1",
3
+ "version": "1.23.3",
4
4
  "description": "Background lane for your Claude Max plan. Parallel Claude Agent SDK sessions in git worktrees with a usage cap that reserves headroom for your interactive Claude Code. Crash-safe resume. Provider-agnostic model catalog with capability-based planning.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-overnight",
3
- "version": "1.23.1",
3
+ "version": "1.23.3",
4
4
  "description": "Claude Code skill for understanding, installing, and inspecting claude-overnight runs -- parallel Claude agents in git worktrees with thinking waves, multi-wave steering, and crash-safe resume. Supports Cursor API Proxy, Qwen, OpenRouter.",
5
5
  "author": {
6
6
  "name": "Francesco Fornace"