triflux 6.0.15 → 6.0.17

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/bin/triflux.mjs CHANGED
@@ -1615,10 +1615,10 @@ function cmdUpdate() {
1615
1615
  stdio: ["pipe", "pipe", "pipe"],
1616
1616
  windowsHide: true,
1617
1617
  }).trim().split(/\r?\n/)[0];
1618
- } catch (retryErr) {
1619
- // Windows: 자기 자신의 파일 잠금으로 첫 시도 실패 가능 → 1회 재시도
1620
- info("첫 시도 실패, 재시도 중...");
1621
- result = execSync(npmCmd, {
1618
+ } catch {
1619
+ // Windows: 자기 자신의 파일 잠금으로 첫 시도 실패 가능 → --force 재시도
1620
+ info("첫 시도 실패, --force 재시도 중...");
1621
+ result = execSync(`${npmCmd} --force`, {
1622
1622
  encoding: "utf8",
1623
1623
  timeout: 90000,
1624
1624
  stdio: ["pipe", "pipe", "pipe"],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "triflux",
3
- "version": "6.0.15",
3
+ "version": "6.0.17",
4
4
  "description": "CLI-first multi-model orchestrator for Claude Code — route tasks to Codex, Gemini, and Claude",
5
5
  "type": "module",
6
6
  "bin": {
package/scripts/setup.mjs CHANGED
@@ -7,7 +7,7 @@
7
7
  import { copyFileSync, mkdirSync, readFileSync, writeFileSync, readdirSync, existsSync, chmodSync, unlinkSync } from "fs";
8
8
  import { join, dirname } from "path";
9
9
  import { homedir } from "os";
10
- import { spawn } from "child_process";
10
+ import { spawn, execFileSync } from "child_process";
11
11
  import { fileURLToPath } from "url";
12
12
 
13
13
  const PLUGIN_ROOT = dirname(dirname(fileURLToPath(import.meta.url)));
@@ -404,6 +404,27 @@ if (existsSync(HUB_PID_FILE)) {
404
404
  }
405
405
  }
406
406
 
407
+ // ── psmux 자동 설치 (Windows, headless 모드용) ──
408
+
409
+ if (process.platform === "win32") {
410
+ try {
411
+ execFileSync("where", ["psmux"], { stdio: "ignore" });
412
+ } catch {
413
+ // psmux 미설치 — winget으로 자동 설치 시도
414
+ console.log(" psmux 미설치 — winget으로 설치 중...");
415
+ try {
416
+ execFileSync("winget", ["install", "--id", "marlocarlo.psmux", "--accept-package-agreements", "--accept-source-agreements"], {
417
+ stdio: ["ignore", "pipe", "pipe"],
418
+ timeout: 60000,
419
+ });
420
+ console.log(" \x1b[32m✓\x1b[0m psmux 설치 완료");
421
+ synced++;
422
+ } catch {
423
+ console.log(" \x1b[33m⚠\x1b[0m psmux 자동 설치 실패 — 수동 설치: winget install psmux");
424
+ }
425
+ }
426
+ }
427
+
407
428
  // ── HUD 에러 캐시 자동 클리어 (업데이트/재설치 시) ──
408
429
 
409
430
  const cacheDir = join(CLAUDE_DIR, "cache");