fluxflow-cli 2.15.0 → 2.15.2
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 +19 -10
- package/package.json +1 -1
package/dist/fluxflow.js
CHANGED
|
@@ -4791,9 +4791,9 @@ var init_StatusBar = __esm({
|
|
|
4791
4791
|
paddingX: 1,
|
|
4792
4792
|
width: "100%"
|
|
4793
4793
|
},
|
|
4794
|
-
/* @__PURE__ */ React5.createElement(Box4, null, /* @__PURE__ */ React5.createElement(Box4, { marginRight: 1 }, /* @__PURE__ */ React5.createElement(Text5, { color: "white", bold: true },
|
|
4795
|
-
/* @__PURE__ */ React5.createElement(Box4, { flexGrow: 1, justifyContent: "center", paddingX: 2 }, /* @__PURE__ */ React5.createElement(Text5, { color: "white", italic: true },
|
|
4796
|
-
/* @__PURE__ */ React5.createElement(Box4, null, /* @__PURE__ */ React5.createElement(Text5, { color: "gray", dimColor: true }, "\u2503
|
|
4794
|
+
/* @__PURE__ */ React5.createElement(Box4, null, /* @__PURE__ */ React5.createElement(Box4, { marginRight: 1 }, /* @__PURE__ */ React5.createElement(Text5, { color: "white", bold: true }, mode.toUpperCase())), /* @__PURE__ */ React5.createElement(Text5, { color: "gray", dimColor: true }, "\u2503"), /* @__PURE__ */ React5.createElement(Box4, { marginX: 1 }, /* @__PURE__ */ React5.createElement(Text5, { color: "white", bold: true }, thinkingLevel.toUpperCase())), /* @__PURE__ */ React5.createElement(Text5, { color: "gray", dimColor: true }, "\u2503"), /* @__PURE__ */ React5.createElement(Box4, { marginX: 1 }, /* @__PURE__ */ React5.createElement(Text5, { color: "gray", bold: true }, "MEM: "), /* @__PURE__ */ React5.createElement(Text5, { color: "white", bold: true }, isMemoryEnabled ? "ON" : "OFF"))),
|
|
4795
|
+
/* @__PURE__ */ React5.createElement(Box4, { flexGrow: 1, justifyContent: "center", paddingX: 2 }, /* @__PURE__ */ React5.createElement(Text5, { color: "white", italic: true }, truncatePath(process.cwd(), 35))),
|
|
4796
|
+
/* @__PURE__ */ React5.createElement(Box4, null, /* @__PURE__ */ React5.createElement(Text5, { color: "gray", dimColor: true }, "\u2503"), /* @__PURE__ */ React5.createElement(Box4, { marginX: 1 }, /* @__PURE__ */ React5.createElement(Text5, { color: "white" }, formatTokens(tokensTotal), " ", /* @__PURE__ */ React5.createElement(Text5, { dimColor: true }, (tokens / maxLimit * 100).toFixed(0), "%"))), /* @__PURE__ */ React5.createElement(Text5, { color: "gray", dimColor: true }, "\u2503"), /* @__PURE__ */ React5.createElement(Box4, { marginX: 1 }, /* @__PURE__ */ React5.createElement(Text5, { color: "grey", bold: true }, memoryUsage, "/", memoryLimit, " ", memoryUnit)), /* @__PURE__ */ React5.createElement(Text5, { color: "gray", dimColor: true }, "\u2503"), /* @__PURE__ */ React5.createElement(Box4, { marginLeft: 1 }, /* @__PURE__ */ React5.createElement(Text5, { color: "gray", bold: true }, chatId), (apiTier === "Custom" || apiTier === "Paid") && /* @__PURE__ */ React5.createElement(Box4, null, /* @__PURE__ */ React5.createElement(Text5, { color: "gray", dimColor: true }, " \u2503 "), /* @__PURE__ */ React5.createElement(Text5, { color: "gray", bold: true }, "PAID"))))
|
|
4797
4797
|
);
|
|
4798
4798
|
});
|
|
4799
4799
|
StatusBar_default = StatusBar;
|
|
@@ -5015,7 +5015,7 @@ Internal tools. **MUST use the EXACT syntax** [tool:functions.ToolName(args)]. *
|
|
|
5015
5015
|
|
|
5016
5016
|
**TOOL USAGE POLICY:**
|
|
5017
5017
|
- **MAX 3 TOOL CALLS PER TURN${mode === "Flux" ? " (EXCEPTION FOR Todo TOOL: 3+ CALLS ALLOWED, Run: Limit 1 OR 2 CONSECUTIVE Run)" : ""}. Next Turn, verify tool results, plan next**
|
|
5018
|
-
${mode === "Flux" ? "- USE multiple search & replace on patch tool if editing same file/path with many changes \u2190 **HIGHLY RECOMMENDED**\n- Tool execution denied? MUST use 'Ask' tool immediately for user reason/changes. NEVER END RESPONSE OR PROCEED BLINDLY \u2190 **MANDATORY**\n- FileMap >> ReadFile to understand file efficiently\n- Want spefific STRING across project/file? SearchKeyword >> Guessing/ReadFile\n- HUGE FILES? SearchKeyword >> FileMap/Full File read\n- **MUST MARK DONE/APPEND Todos BASED ON REALTIME TASK PROGRESS ON *EACH TURN***" : ""}
|
|
5018
|
+
${mode === "Flux" ? "- USE multiple search & replace on patch tool if editing same file/path with many changes \u2190 **HIGHLY RECOMMENDED**\n- Tool execution denied? MUST use 'Ask' tool immediately for user reason/changes. NEVER END RESPONSE OR PROCEED BLINDLY \u2190 **MANDATORY**\n- FileMap >> ReadFile to understand file efficiently\n- Want spefific STRING across project/file? SearchKeyword >> Guessing/ReadFile\n- HUGE FILES? SearchKeyword >> FileMap/Full File read\n- No tool spamming\n- **MUST MARK DONE/APPEND Todos BASED ON REALTIME TASK PROGRESS ON *EACH TURN***" : ""}
|
|
5019
5019
|
${mode === "Flux" ? "- **File Tools >> Code in chat**\n\n" : ""}- COMMUNICATION TOOLS -
|
|
5020
5020
|
1. [tool:functions.Ask(question="...", optionA="option::description", ...MAX 4)]. Ambiguity Resolution. Mandatory Triggers: Path Divergence, Security, Risk Mitigation. ask >> finish. Suggest best options; don't ask for preferences
|
|
5021
5021
|
|
|
@@ -5908,7 +5908,7 @@ function SettingsMenu({
|
|
|
5908
5908
|
setActiveView("parserDownload");
|
|
5909
5909
|
}
|
|
5910
5910
|
};
|
|
5911
|
-
return /* @__PURE__ */ React7.createElement(Box6, { flexDirection: "column", borderStyle: "round", borderColor: "white", padding: 0, width: "100%", minHeight: 32 }, /* @__PURE__ */ React7.createElement(Box6, { paddingX: 1, paddingY: 0, marginBottom: 0, borderStyle: "single", borderColor: "gray", width: "100%" }, /* @__PURE__ */ React7.createElement(Text7, { color: "
|
|
5911
|
+
return /* @__PURE__ */ React7.createElement(Box6, { flexDirection: "column", borderStyle: "round", borderColor: "white", padding: 0, width: "100%", minHeight: 32 }, /* @__PURE__ */ React7.createElement(Box6, { paddingX: 1, paddingY: 0, marginBottom: 0, borderStyle: "single", borderColor: "gray", width: "100%" }, /* @__PURE__ */ React7.createElement(Text7, { color: "white", bold: true }, "SYSTEM CONFIGURATION")), /* @__PURE__ */ React7.createElement(Box6, { flexDirection: "row", width: "100%", minHeight: 26 }, /* @__PURE__ */ React7.createElement(Box6, { flexDirection: "column", width: "30%", borderStyle: "round", borderColor: activeColumn === "categories" ? "white" : "grey", padding: 1, paddingY: 0 }, /* @__PURE__ */ React7.createElement(Box6, { marginBottom: 1 }, /* @__PURE__ */ React7.createElement(Text7, { color: activeColumn === "categories" ? "white" : "grey", bold: true, underline: true }, "CATEGORIES")), CATEGORIES.map((cat, index) => {
|
|
5912
5912
|
const isSelected = selectedCategoryIndex === index;
|
|
5913
5913
|
const isExit = cat.id === "exit";
|
|
5914
5914
|
return /* @__PURE__ */ React7.createElement(
|
|
@@ -17559,12 +17559,12 @@ Selection: ${val}`,
|
|
|
17559
17559
|
}
|
|
17560
17560
|
);
|
|
17561
17561
|
case "apiTier": {
|
|
17562
|
-
return /* @__PURE__ */ React15.createElement(Box15, { flexDirection: "column", borderStyle: "round", borderColor: "white", padding: 0, width: "100%" }, /* @__PURE__ */ React15.createElement(Box15, { paddingX: 1, marginBottom: 1 }, /* @__PURE__ */ React15.createElement(Text16, { color: "
|
|
17562
|
+
return /* @__PURE__ */ React15.createElement(Box15, { flexDirection: "column", borderStyle: "round", borderColor: "white", padding: 0, width: "100%" }, /* @__PURE__ */ React15.createElement(Box15, { paddingX: 1, marginBottom: 1 }, /* @__PURE__ */ React15.createElement(Text16, { color: "white", bold: true }, "SELECT API MODE FOR ", aiProvider.toUpperCase())), /* @__PURE__ */ React15.createElement(
|
|
17563
17563
|
SelectInput2,
|
|
17564
17564
|
{
|
|
17565
17565
|
items: [
|
|
17566
|
-
{ label: "Free
|
|
17567
|
-
{ label: `Billing
|
|
17566
|
+
{ label: "Free Mode (For Free APIs) [Free Models Only]", value: "Free" },
|
|
17567
|
+
{ label: `Paid Mode (For Billing APIs) [Premium Models Unlocked] ${apiTier === "Paid" ? "\u25CF" : ""}`, value: "Paid" },
|
|
17568
17568
|
{ label: "Back", value: "settings" }
|
|
17569
17569
|
],
|
|
17570
17570
|
onSelect: (item) => {
|
|
@@ -17763,7 +17763,7 @@ Selection: ${val}`,
|
|
|
17763
17763
|
const monthName = resetDate.toLocaleString("default", { month: "short" });
|
|
17764
17764
|
resetInfo = `Resets on: ${resetDay}-${monthName}`;
|
|
17765
17765
|
}
|
|
17766
|
-
return /* @__PURE__ */ React15.createElement(Box15, { flexDirection: "column", borderStyle: "round", borderColor: "white", padding: 1, width: "100%" }, /* @__PURE__ */ React15.createElement(Box15, { marginBottom: 1, justifyContent: "space-between", width: "100%" }, /* @__PURE__ */ React15.createElement(Text16, { color: "white", bold: true, underline: true }, "BUDGET LIMIT STATUS"
|
|
17766
|
+
return /* @__PURE__ */ React15.createElement(Box15, { flexDirection: "column", borderStyle: "round", borderColor: "white", padding: 1, width: "100%" }, /* @__PURE__ */ React15.createElement(Box15, { marginBottom: 1, justifyContent: "space-between", width: "100%" }, /* @__PURE__ */ React15.createElement(Text16, { color: "white", bold: true, underline: true }, "BUDGET LIMIT STATUS"), /* @__PURE__ */ React15.createElement(Text16, { color: "gray" }, "[ ESC to Close ]")), limitsNotSet ? /* @__PURE__ */ React15.createElement(Box15, { padding: 1, justifyContent: "center", alignItems: "center", width: "100%" }, /* @__PURE__ */ React15.createElement(Text16, { color: "white", bold: true }, "LIMITS NOT SET")) : usingProviderBudgets && configuredProviders.length > 0 ? /* @__PURE__ */ React15.createElement(Box15, { flexDirection: "column", gap: 1, width: "100%" }, configuredProviders.map((prov) => {
|
|
17767
17767
|
const pb = providerBudgetsMap[prov];
|
|
17768
17768
|
const provReqCurrent = dailyUsage?.providerRequests?.[prov] || 0;
|
|
17769
17769
|
let provTokenCurrent = 0;
|
|
@@ -18029,9 +18029,18 @@ Selection: ${val}`,
|
|
|
18029
18029
|
deleteChatSummary(chatId);
|
|
18030
18030
|
if (stdout) {
|
|
18031
18031
|
stdout.write("\x1B[2J\x1B[3J\x1B[H");
|
|
18032
|
+
if (stdout.isTTY) {
|
|
18033
|
+
stdout.write("\x1B[?2004h");
|
|
18034
|
+
}
|
|
18032
18035
|
}
|
|
18033
18036
|
setClearKey((prev) => prev + 1);
|
|
18034
18037
|
clearBlocksCache();
|
|
18038
|
+
cachedHistoryRef.current = {
|
|
18039
|
+
completedIndex: 0,
|
|
18040
|
+
columns: 0,
|
|
18041
|
+
historicalBlocks: [],
|
|
18042
|
+
seenSelections: /* @__PURE__ */ new Set()
|
|
18043
|
+
};
|
|
18035
18044
|
const targetIdx = messages.findLastIndex(
|
|
18036
18045
|
(m) => m.role === "user" && m.text && (m.text.startsWith(targetPrompt) || m.text.includes(targetPrompt))
|
|
18037
18046
|
);
|
|
@@ -18410,7 +18419,7 @@ Selection: ${val}`,
|
|
|
18410
18419
|
url = "https://build.nvidia.com/settings/api-keys";
|
|
18411
18420
|
label2 = "billing";
|
|
18412
18421
|
}
|
|
18413
|
-
return /* @__PURE__ */ React15.createElement(Text16, { color: "gray", dimColor: true, italic: true }, "Paid API has more models. Configure ", /* @__PURE__ */ React15.createElement(Text16, { color: "cyan", underline: true }, `\x1B]8;;${url}\x07${label2}\x1B]8;;\x07`), " & /settings");
|
|
18422
|
+
return /* @__PURE__ */ React15.createElement(Text16, { color: "gray", dimColor: true, italic: true }, "Paid API Strategy has more models. Configure ", /* @__PURE__ */ React15.createElement(Text16, { color: "cyan", underline: true }, `\x1B]8;;${url}\x07${label2}\x1B]8;;\x07`), " & /settings");
|
|
18414
18423
|
})() : null),
|
|
18415
18424
|
visible.map((s, i) => {
|
|
18416
18425
|
const actualIdx = startIdx + i;
|