fluxflow-cli 1.18.17 → 1.18.18
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/fluxflow.js +10 -21
- package/package.json +1 -1
package/dist/fluxflow.js
CHANGED
|
@@ -455,7 +455,7 @@ var init_TerminalBox = __esm({
|
|
|
455
455
|
return parts[parts.length - 1];
|
|
456
456
|
}).join("\n");
|
|
457
457
|
};
|
|
458
|
-
const cleanOutput = isPty ? output
|
|
458
|
+
const cleanOutput = (isPty ? processPTY(output) : (output || "").replace(/\r\n/g, "\n")).replace(/\n{3,}/g, "\n\n");
|
|
459
459
|
const displayOutput = isPty ? cleanOutput : cleanOutput ? wrapText(cleanOutput, columns - 6) : "";
|
|
460
460
|
return /* @__PURE__ */ React2.createElement(Box2, { flexDirection: "column", borderStyle: isFocused ? "double" : "round", borderColor: completed ? "#334155" : isFocused ? "yellow" : "cyan", paddingX: 2, paddingY: completed ? 0 : 1, width: "100%" }, /* @__PURE__ */ React2.createElement(Box2, { marginBottom: 1, justifyContent: "space-between", width: "100%" }, /* @__PURE__ */ React2.createElement(Box2, { flexShrink: 1, paddingRight: 2 }, /* @__PURE__ */ React2.createElement(Text2, null, /* @__PURE__ */ React2.createElement(Text2, { color: completed ? "gray" : isFocused ? "yellow" : "cyan", bold: true }, completed ? "\u{1F3C1} FINISHED:" : "\u26A1 EXECUTING:", " "), /* @__PURE__ */ React2.createElement(Text2, { color: completed ? "gray" : "white" }, command))), isPty && /* @__PURE__ */ React2.createElement(Box2, { flexShrink: 0, paddingX: 1 }, /* @__PURE__ */ React2.createElement(Text2, { color: completed ? "gray" : "magenta", bold: true }, "ADVANCE"))), displayOutput ? /* @__PURE__ */ React2.createElement(Box2, { marginTop: completed ? 0 : 1, backgroundColor: isPty ? void 0 : "#0a0a0a", paddingX: 1 }, /* @__PURE__ */ React2.createElement(Text2, { color: completed ? "gray" : void 0 }, displayOutput)) : !completed && /* @__PURE__ */ React2.createElement(Box2, { marginTop: 1, backgroundColor: isPty ? void 0 : "#0a0a0a", paddingX: 1 }, /* @__PURE__ */ React2.createElement(Text2, { color: "gray", italic: true }, "Waiting for output...")), /* @__PURE__ */ React2.createElement(Box2, { justifyContent: "space-between", marginTop: 1 }, !completed ? /* @__PURE__ */ React2.createElement(Text2, { color: "gray", dimColor: true, italic: true }, isFocused ? "Press TAB to unfocus, then double-press ESC to terminate." : "Double-press ESC to terminate if hanging.") : /* @__PURE__ */ React2.createElement(Box2, null), /* @__PURE__ */ React2.createElement(Text2, { color: completed ? "#475569" : isFocused ? "yellow" : "cyan", bold: true }, completed ? "\u25CF ARCHIVED" : isFocused ? "\u25B6 TERMINAL FOCUSED" : "\u25CF LIVE (Press TAB to focus)")));
|
|
461
461
|
});
|
|
@@ -1044,8 +1044,7 @@ var init_arg_parser = __esm({
|
|
|
1044
1044
|
const afterRaw = argsString.substring(qIdx + 1);
|
|
1045
1045
|
const after = afterRaw.trim();
|
|
1046
1046
|
const isLogicalEnd = after === "" || // End of entire string
|
|
1047
|
-
after
|
|
1048
|
-
/^(\w+)\s*=/.test(after) || // Next argument key=
|
|
1047
|
+
/^,\s*\w+\s*=/.test(after) || // Next argument separator (comma followed by key=)
|
|
1049
1048
|
after.startsWith(")") && (after.length === 1 || /^\)\s*([,\]\s]|tool:)/i.test(after));
|
|
1050
1049
|
if (isLogicalEnd && afterRaw.startsWith("\n")) {
|
|
1051
1050
|
const nextLine = after.split("\n")[0];
|
|
@@ -7682,16 +7681,16 @@ function App({ args = [] }) {
|
|
|
7682
7681
|
subs: apiTier === "Free" ? [
|
|
7683
7682
|
{
|
|
7684
7683
|
cmd: "gemma-4-31b-it",
|
|
7685
|
-
desc: "Standard Default
|
|
7684
|
+
desc: "Standard Default"
|
|
7686
7685
|
}
|
|
7687
7686
|
] : [
|
|
7688
7687
|
{
|
|
7689
7688
|
cmd: "gemini-3-flash-preview",
|
|
7690
|
-
desc: "Fast & Lightweight
|
|
7689
|
+
desc: "Fast & Lightweight"
|
|
7691
7690
|
},
|
|
7692
7691
|
{
|
|
7693
7692
|
cmd: "gemini-3.5-flash",
|
|
7694
|
-
desc: "
|
|
7693
|
+
desc: "Latest"
|
|
7695
7694
|
}
|
|
7696
7695
|
]
|
|
7697
7696
|
},
|
|
@@ -8338,21 +8337,11 @@ ${timestamp}` };
|
|
|
8338
8337
|
} else {
|
|
8339
8338
|
normalizedOutput = rawOutput.replace(/\r\n/g, "\n");
|
|
8340
8339
|
}
|
|
8341
|
-
const
|
|
8342
|
-
COMMAND: ${activeCommandRef.current}
|
|
8343
|
-
PTY: ${isActiveCommandPty}
|
|
8344
|
-
OUTPUT: ${
|
|
8345
|
-
|
|
8346
|
-
COMMAND: ${activeCommandRef.current}
|
|
8347
|
-
PTY: ${isActiveCommandPty}
|
|
8348
|
-
OUTPUT: ${normalizedOutput.replace(/\n{3,}/g, "\n\n")}`;
|
|
8349
|
-
return [...prev, {
|
|
8350
|
-
id: "term-" + Date.now(),
|
|
8351
|
-
role: "system",
|
|
8352
|
-
text: finalStatusRaw,
|
|
8353
|
-
fullText: finalStatusNormalized,
|
|
8354
|
-
isTerminalRecord: true
|
|
8355
|
-
}];
|
|
8340
|
+
const finalStatus = `[TERMINAL_RECORD]
|
|
8341
|
+
COMMAND: ${activeCommandRef.current}
|
|
8342
|
+
PTY: ${isActiveCommandPty}
|
|
8343
|
+
OUTPUT: ${normalizedOutput.replace(/\n{3,}/g, "\n\n")}`;
|
|
8344
|
+
return [...prev, { id: "term-" + Date.now(), role: "system", text: finalStatus, isTerminalRecord: true }];
|
|
8356
8345
|
});
|
|
8357
8346
|
setActiveCommand(null);
|
|
8358
8347
|
setIsTerminalFocused(false);
|