triflux 4.0.3 → 4.0.4

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
@@ -249,7 +249,7 @@ function isDevUpdateRequested(argv = process.argv) {
249
249
  function checkShellAvailable(shell) {
250
250
  const cmds = { bash: "bash --version", cmd: "cmd /c echo ok", pwsh: "pwsh -NoProfile -c echo ok" };
251
251
  try {
252
- execSync(cmds[shell], { encoding: "utf8", timeout: 5000, stdio: ["pipe", "pipe", "ignore"] });
252
+ execSync(cmds[shell], { encoding: "utf8", timeout: 5000, stdio: ["pipe", "pipe", "ignore"], windowsHide: true });
253
253
  return true;
254
254
  } catch { return false; }
255
255
  }
@@ -1529,6 +1529,7 @@ function cmdUpdate() {
1529
1529
  encoding: "utf8",
1530
1530
  timeout: 10000,
1531
1531
  stdio: ["pipe", "pipe", "ignore"],
1532
+ windowsHide: true,
1532
1533
  });
1533
1534
  if (npmList.includes("triflux")) installMode = "npm-global";
1534
1535
  } catch {}
@@ -1560,6 +1561,7 @@ function cmdUpdate() {
1560
1561
  encoding: "utf8",
1561
1562
  timeout: 30000,
1562
1563
  cwd: gitDir,
1564
+ windowsHide: true,
1563
1565
  }).trim();
1564
1566
  ok(`git pull — ${result}`);
1565
1567
  updated = true;
@@ -1577,6 +1579,7 @@ function cmdUpdate() {
1577
1579
  encoding: "utf8",
1578
1580
  timeout: 90000,
1579
1581
  stdio: ["pipe", "pipe", "pipe"],
1582
+ windowsHide: true,
1580
1583
  }).trim().split(/\r?\n/)[0];
1581
1584
  } catch (retryErr) {
1582
1585
  // Windows: 자기 자신의 파일 잠금으로 첫 시도 실패 가능 → 1회 재시도
@@ -1585,6 +1588,7 @@ function cmdUpdate() {
1585
1588
  encoding: "utf8",
1586
1589
  timeout: 90000,
1587
1590
  stdio: ["pipe", "pipe", "pipe"],
1591
+ windowsHide: true,
1588
1592
  }).trim().split(/\r?\n/)[0];
1589
1593
  }
1590
1594
  ok(`${npmCmd} — ${result || "완료"}`);
@@ -1598,6 +1602,7 @@ function cmdUpdate() {
1598
1602
  timeout: 60000,
1599
1603
  cwd: process.cwd(),
1600
1604
  stdio: ["pipe", "pipe", "ignore"],
1605
+ windowsHide: true,
1601
1606
  }).trim().split(/\r?\n/)[0];
1602
1607
  ok(`${isDev ? "npm install triflux@dev" : "npm update triflux"} — ${result || "완료"}`);
1603
1608
  updated = true;
@@ -1608,6 +1613,7 @@ function cmdUpdate() {
1608
1613
  encoding: "utf8",
1609
1614
  timeout: 30000,
1610
1615
  cwd: PKG_ROOT,
1616
+ windowsHide: true,
1611
1617
  }).trim();
1612
1618
  ok(`git pull — ${result}`);
1613
1619
  updated = true;
@@ -1799,6 +1805,7 @@ function checkForUpdate() {
1799
1805
  encoding: "utf8",
1800
1806
  timeout: 5000,
1801
1807
  stdio: ["pipe", "pipe", "ignore"],
1808
+ windowsHide: true,
1802
1809
  }).trim();
1803
1810
 
1804
1811
  if (!existsSync(cacheDir)) mkdirSync(cacheDir, { recursive: true });
@@ -2007,11 +2014,11 @@ function autoRegisterMcp(mcpUrl) {
2007
2014
  if (which("codex")) {
2008
2015
  try {
2009
2016
  // 이미 등록됐는지 확인
2010
- const list = execSync("codex mcp list 2>&1", { encoding: "utf8", timeout: 10000, stdio: ["pipe", "pipe", "pipe"] });
2017
+ const list = execSync("codex mcp list 2>&1", { encoding: "utf8", timeout: 10000, stdio: ["pipe", "pipe", "pipe"], windowsHide: true });
2011
2018
  if (list.includes("tfx-hub")) {
2012
2019
  ok("Codex: 이미 등록됨");
2013
2020
  } else {
2014
- execFileSync("codex", ["mcp", "add", "tfx-hub", "--url", mcpUrl], { timeout: 10000, stdio: "ignore" });
2021
+ execFileSync("codex", ["mcp", "add", "tfx-hub", "--url", mcpUrl], { timeout: 10000, stdio: "ignore", windowsHide: true });
2015
2022
  ok("Codex: MCP 등록 완료");
2016
2023
  }
2017
2024
  } catch {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "triflux",
3
- "version": "4.0.3",
3
+ "version": "4.0.4",
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": {
@@ -55,6 +55,7 @@ export function getCodexMcp() {
55
55
  encoding: 'utf8',
56
56
  timeout: 15000,
57
57
  stdio: ['pipe', 'pipe', 'ignore'],
58
+ windowsHide: true,
58
59
  });
59
60
  const lines = output.trim().split(/\r?\n/).filter((line) => line.trim());
60
61
  if (lines.length < 2) return [];
@@ -85,7 +85,7 @@ function getNotionMcpClis(useGuest) {
85
85
  function cliExists(name) {
86
86
  try {
87
87
  const cmd = process.platform === "win32" ? `where ${name} 2>nul` : `which ${name} 2>/dev/null`;
88
- const result = execSync(cmd, { encoding: "utf8", timeout: 5000, stdio: ["pipe", "pipe", "ignore"] });
88
+ const result = execSync(cmd, { encoding: "utf8", timeout: 5000, stdio: ["pipe", "pipe", "ignore"], windowsHide: true });
89
89
  return !!result.trim();
90
90
  } catch {
91
91
  return false;
@@ -205,6 +205,7 @@ function runWithCli(cliType, prompt, timeout, runMode = 'fg') {
205
205
  maxBuffer: 10 * 1024 * 1024,
206
206
  stdio: ['pipe', 'pipe', 'pipe'],
207
207
  cwd: process.cwd(),
208
+ windowsHide: true,
208
209
  });
209
210
  } catch (e) {
210
211
  exitCode = e.status || (e.killed ? 124 : 1);