fluxflow-cli 1.8.14 → 1.8.15
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 +44 -8
- package/package.json +1 -1
package/dist/fluxflow.js
CHANGED
|
@@ -3601,6 +3601,20 @@ Check what's new using \`/changelog\` command.`,
|
|
|
3601
3601
|
const [activeCommand, setActiveCommand] = useState7(null);
|
|
3602
3602
|
const [execOutput, setExecOutput] = useState7("");
|
|
3603
3603
|
const [isTerminalFocused, setIsTerminalFocused] = useState7(false);
|
|
3604
|
+
useEffect5(() => {
|
|
3605
|
+
if (apiTier !== "Free" && activeModel === "gemma-4-31b-it") {
|
|
3606
|
+
setActiveModel("gemini-3-flash-preview");
|
|
3607
|
+
setMessages((prev) => {
|
|
3608
|
+
setCompletedIndex(prev.length + 1);
|
|
3609
|
+
return [...prev, {
|
|
3610
|
+
id: "tier-switch-" + Date.now(),
|
|
3611
|
+
role: "system",
|
|
3612
|
+
text: `\u26A0\uFE0F **[TIER LIMIT]** Gemma is only available on Free API tier. Automatically switched to Gemini 3 Flash Preview.`,
|
|
3613
|
+
isMeta: true
|
|
3614
|
+
}];
|
|
3615
|
+
});
|
|
3616
|
+
}
|
|
3617
|
+
}, [apiTier, activeModel]);
|
|
3604
3618
|
const terminalEnv = useMemo(() => {
|
|
3605
3619
|
const isIDE = process.env.TERM_PROGRAM === "vscode" || !!process.env.VSC_TERMINAL_URL || !!process.env.INTELLIJ_TERMINAL_COMMAND_BLOCKS;
|
|
3606
3620
|
return {
|
|
@@ -3878,7 +3892,7 @@ Check what's new using \`/changelog\` command.`,
|
|
|
3878
3892
|
cmd: "/model",
|
|
3879
3893
|
desc: "Switch AI model",
|
|
3880
3894
|
subs: [
|
|
3881
|
-
{ cmd: "gemma-4-31b-it", desc: "Standard Default (Free, Recommended)" },
|
|
3895
|
+
{ cmd: "gemma-4-31b-it", desc: apiTier === "Free" ? "Standard Default (Free, Recommended)" : "Standard Default (Free, Recommended) - Cannot use Gemma with paid API" },
|
|
3882
3896
|
{ cmd: "gemini-3.1-pro-preview", desc: "Most Capable (Paid)" },
|
|
3883
3897
|
{ cmd: "gemini-3-flash-preview", desc: "Fast & Lightweight (Paid, Free limited quota)" },
|
|
3884
3898
|
{ cmd: "gemini-3.1-flash-lite-preview", desc: "Ultra Fast (Paid, Free limited quota)" }
|
|
@@ -4045,11 +4059,24 @@ ${hintText}`, color: "magenta" }];
|
|
|
4045
4059
|
case "/model": {
|
|
4046
4060
|
if (parts[1]) {
|
|
4047
4061
|
const mod = parts.slice(1).join(" ");
|
|
4048
|
-
|
|
4049
|
-
|
|
4050
|
-
|
|
4051
|
-
|
|
4052
|
-
|
|
4062
|
+
if (mod === "gemma-4-31b-it" && apiTier !== "Free") {
|
|
4063
|
+
setMessages((prev) => {
|
|
4064
|
+
setCompletedIndex(prev.length + 1);
|
|
4065
|
+
return [...prev, {
|
|
4066
|
+
id: Date.now(),
|
|
4067
|
+
role: "system",
|
|
4068
|
+
text: `\u274C **[ACCESS DENIED]** Gemma is restricted to the Free API tier. Automatically switching you to **Gemini 3 Flash Preview** for optimal performance.`,
|
|
4069
|
+
isMeta: true
|
|
4070
|
+
}];
|
|
4071
|
+
});
|
|
4072
|
+
setActiveModel("gemini-3-flash-preview");
|
|
4073
|
+
} else {
|
|
4074
|
+
setActiveModel(mod);
|
|
4075
|
+
setMessages((prev) => {
|
|
4076
|
+
setCompletedIndex(prev.length + 1);
|
|
4077
|
+
return [...prev, { id: Date.now(), role: "system", text: `\u2699\uFE0F [SYSTEM] Model switched to ${mod}`, isMeta: true }];
|
|
4078
|
+
});
|
|
4079
|
+
}
|
|
4053
4080
|
} else {
|
|
4054
4081
|
setActiveView("model");
|
|
4055
4082
|
}
|
|
@@ -5094,8 +5121,17 @@ Selection: ${val}`,
|
|
|
5094
5121
|
visible.map((s, i) => {
|
|
5095
5122
|
const actualIdx = startIdx + i;
|
|
5096
5123
|
const isActive = actualIdx === selectedIndex;
|
|
5124
|
+
const isGemmaDisabled = s.cmd === "gemma-4-31b-it" && apiTier !== "Free";
|
|
5097
5125
|
const cmdText = s.cmd.padEnd(32);
|
|
5098
|
-
return /* @__PURE__ */ React10.createElement(Box10, { key: s.cmd, flexDirection: "row" }, /* @__PURE__ */ React10.createElement(Text10, { color: isActive ? "cyan" : "gray" }, isActive ? "\u276F " : " "), /* @__PURE__ */ React10.createElement(
|
|
5126
|
+
return /* @__PURE__ */ React10.createElement(Box10, { key: s.cmd, flexDirection: "row" }, /* @__PURE__ */ React10.createElement(Text10, { color: isActive ? "cyan" : "gray" }, isActive ? "\u276F " : " "), /* @__PURE__ */ React10.createElement(
|
|
5127
|
+
Text10,
|
|
5128
|
+
{
|
|
5129
|
+
color: isGemmaDisabled ? "gray" : isActive ? "yellow" : "gray",
|
|
5130
|
+
bold: isActive,
|
|
5131
|
+
dimColor: isGemmaDisabled
|
|
5132
|
+
},
|
|
5133
|
+
cmdText
|
|
5134
|
+
), /* @__PURE__ */ React10.createElement(Text10, { color: "gray", dimColor: true, italic: true }, s.desc));
|
|
5099
5135
|
}),
|
|
5100
5136
|
suggestions.length > 5 && /* @__PURE__ */ React10.createElement(Box10, { height: 1 }, remaining > 0 && /* @__PURE__ */ React10.createElement(Text10, { color: "gray", dimColor: true }, " ...(", remaining, "more)"))
|
|
5101
5137
|
);
|
|
@@ -5126,7 +5162,7 @@ var init_app = __esm({
|
|
|
5126
5162
|
init_text();
|
|
5127
5163
|
SESSION_START_TIME = Date.now();
|
|
5128
5164
|
CHANGELOG_URL = "https://fluxflow-cli.onrender.com/changelog.html";
|
|
5129
|
-
versionFluxflow = "1.8.
|
|
5165
|
+
versionFluxflow = "1.8.15";
|
|
5130
5166
|
updatedOn = "2026-05-09";
|
|
5131
5167
|
ResolutionModal = ({ data, onResolve, onEdit }) => /* @__PURE__ */ React10.createElement(Box10, { flexDirection: "column", borderStyle: "round", borderColor: "magenta", paddingX: 2, paddingY: 1, width: "100%" }, /* @__PURE__ */ React10.createElement(Text10, { color: "magenta", bold: true, underline: true }, "\u{1F7E3} STEERING HINT RESOLUTION"), /* @__PURE__ */ React10.createElement(Text10, { marginTop: 1 }, "The agent already finished the task before your hint was consumed."), /* @__PURE__ */ React10.createElement(Box10, { marginTop: 1, backgroundColor: "#222", paddingX: 1, width: "100%" }, /* @__PURE__ */ React10.createElement(Text10, { italic: true, color: "gray" }, '"', data, '"')), /* @__PURE__ */ React10.createElement(Box10, { marginTop: 1 }, /* @__PURE__ */ React10.createElement(Text10, { color: "cyan" }, "How would you like to proceed?")), /* @__PURE__ */ React10.createElement(Box10, { marginTop: 1 }, /* @__PURE__ */ React10.createElement(
|
|
5132
5168
|
CommandMenu,
|