@synkro-sh/cli 1.4.5 → 1.4.6

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/bootstrap.js CHANGED
@@ -3679,9 +3679,21 @@ function patchClaudeJson() {
3679
3679
  });
3680
3680
  }
3681
3681
  function installLocalCC() {
3682
- const bunCheck = spawnSync("bun", ["--version"], { encoding: "utf-8" });
3682
+ let bunCheck = spawnSync("bun", ["--version"], { encoding: "utf-8" });
3683
3683
  if (bunCheck.status !== 0) {
3684
- throw new LocalCCInstallError("bun is required for the local-CC channel plugin. Install Bun (https://bun.sh) and retry.");
3684
+ if (process.platform === "darwin") {
3685
+ console.log(" Installing bun via brew...");
3686
+ const brewR = spawnSync("brew", ["install", "oven-sh/bun/bun"], { encoding: "utf-8", stdio: "inherit", timeout: 12e4 });
3687
+ if (brewR.status !== 0) {
3688
+ throw new LocalCCInstallError("bun auto-install failed. Install manually: curl -fsSL https://bun.sh/install | bash");
3689
+ }
3690
+ bunCheck = spawnSync("bun", ["--version"], { encoding: "utf-8" });
3691
+ if (bunCheck.status !== 0) {
3692
+ throw new LocalCCInstallError("bun installed but not found on PATH. Restart your terminal and re-run install.");
3693
+ }
3694
+ } else {
3695
+ throw new LocalCCInstallError("bun is required. Install it: curl -fsSL https://bun.sh/install | bash");
3696
+ }
3685
3697
  }
3686
3698
  writePluginFiles();
3687
3699
  runBunInstall();
@@ -3767,7 +3779,7 @@ done
3767
3779
  });
3768
3780
 
3769
3781
  // cli/local-cc/pueue.ts
3770
- import { execFileSync, spawnSync as spawnSync2 } from "child_process";
3782
+ import { execFileSync, spawnSync as spawnSync2, spawn } from "child_process";
3771
3783
  import { homedir as homedir8 } from "os";
3772
3784
  import { join as join9 } from "path";
3773
3785
  import { connect } from "net";
@@ -3907,11 +3919,13 @@ function assertPueueInstalled() {
3907
3919
  throw new PueueError("pueue not found. Install it: brew install pueue (macOS) or https://github.com/Nukesor/pueue");
3908
3920
  }
3909
3921
  }
3910
- const status = spawnSync2("pueue", ["status", "--json"], { encoding: "utf-8" });
3922
+ const status = spawnSync2("pueue", ["status", "--json"], { encoding: "utf-8", timeout: 5e3 });
3911
3923
  if (status.status !== 0) {
3912
3924
  console.log(" Starting pueued daemon...");
3913
- spawnSync2("pueued", ["-d"], { encoding: "utf-8" });
3914
- const retry = spawnSync2("pueue", ["status", "--json"], { encoding: "utf-8" });
3925
+ const child = spawn("pueued", ["-d"], { stdio: "ignore", detached: true });
3926
+ child.unref();
3927
+ spawnSync2("sleep", ["1"]);
3928
+ const retry = spawnSync2("pueue", ["status", "--json"], { encoding: "utf-8", timeout: 5e3 });
3915
3929
  if (retry.status !== 0) {
3916
3930
  throw new PueueError("pueue daemon not reachable after starting pueued. Check `pueued` manually.");
3917
3931
  }
@@ -4326,7 +4340,7 @@ function writeConfigEnv(opts) {
4326
4340
  `SYNKRO_CREDENTIALS_PATH=${shellQuoteSingle(credsPath)}`,
4327
4341
  `SYNKRO_TIER=${shellQuoteSingle(safeTier)}`,
4328
4342
  `SYNKRO_INFERENCE=${shellQuoteSingle(safeInference)}`,
4329
- `SYNKRO_VERSION=${shellQuoteSingle("1.4.5")}`
4343
+ `SYNKRO_VERSION=${shellQuoteSingle("1.4.6")}`
4330
4344
  ];
4331
4345
  if (safeSynkroBin) lines.push(`SYNKRO_CLI_BIN=${shellQuoteSingle(safeSynkroBin)}`);
4332
4346
  if (safeUserId) lines.push(`SYNKRO_USER_ID=${shellQuoteSingle(safeUserId)}`);
@@ -5320,7 +5334,7 @@ var scanPr_exports = {};
5320
5334
  __export(scanPr_exports, {
5321
5335
  scanPrCommand: () => scanPrCommand
5322
5336
  });
5323
- import { execSync as execSync6, spawn } from "child_process";
5337
+ import { execSync as execSync6, spawn as spawn2 } from "child_process";
5324
5338
  import { readFileSync as readFileSync13, existsSync as existsSync15 } from "fs";
5325
5339
  import { join as join15 } from "path";
5326
5340
  function parseMatchSpec(condition) {
@@ -5531,7 +5545,7 @@ ${hunks}`;
5531
5545
  const fullPrompt = promptHeader + userMessage;
5532
5546
  return new Promise((resolve2) => {
5533
5547
  const t0 = Date.now();
5534
- const proc = spawn(
5548
+ const proc = spawn2(
5535
5549
  "claude",
5536
5550
  ["--print", "--model", "claude-sonnet-4-6", "--output-format", "json", "--no-session-persistence"],
5537
5551
  {
@@ -5630,7 +5644,7 @@ ${JSON.stringify(findings, null, 2)}
5630
5644
  function spawnOpusConsolidator(findings, claudeToken) {
5631
5645
  return new Promise((resolve2) => {
5632
5646
  const prompt2 = buildConsolidationPrompt(findings);
5633
- const proc = spawn(
5647
+ const proc = spawn2(
5634
5648
  "claude",
5635
5649
  ["--print", "--model", "claude-opus-4-7", "--output-format", "json", "--no-session-persistence"],
5636
5650
  {