fluxflow-cli 2.15.1 → 2.15.3
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 -7
- package/package.json +1 -1
package/dist/fluxflow.js
CHANGED
|
@@ -2679,8 +2679,11 @@ var init_text = __esm({
|
|
|
2679
2679
|
let activeBlock = null;
|
|
2680
2680
|
let pendingChunk = [];
|
|
2681
2681
|
let pendingChunkType = null;
|
|
2682
|
-
const flushPending = () => {
|
|
2682
|
+
const flushPending = (force = false) => {
|
|
2683
2683
|
if (!pendingChunk.length) return;
|
|
2684
|
+
if (msg.isStreaming && !force) {
|
|
2685
|
+
return;
|
|
2686
|
+
}
|
|
2684
2687
|
const batch = pendingChunk;
|
|
2685
2688
|
pendingChunk = [];
|
|
2686
2689
|
pendingChunkType = null;
|
|
@@ -2692,10 +2695,10 @@ var init_text = __esm({
|
|
|
2692
2695
|
});
|
|
2693
2696
|
};
|
|
2694
2697
|
const enqueue = (block) => {
|
|
2695
|
-
if (pendingChunkType !== null && pendingChunkType !== block.type) flushPending();
|
|
2698
|
+
if (pendingChunkType !== null && pendingChunkType !== block.type) flushPending(true);
|
|
2696
2699
|
pendingChunk.push(block);
|
|
2697
2700
|
pendingChunkType = block.type;
|
|
2698
|
-
if (pendingChunk.length >= CHUNK_SIZE) flushPending();
|
|
2701
|
+
if (pendingChunk.length >= CHUNK_SIZE) flushPending(false);
|
|
2699
2702
|
};
|
|
2700
2703
|
if (msg.role === "think") {
|
|
2701
2704
|
completedBlocks.push(getBlock(`${msg.id}-header`, "think-header", ""));
|
|
@@ -4793,7 +4796,7 @@ var init_StatusBar = __esm({
|
|
|
4793
4796
|
},
|
|
4794
4797
|
/* @__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
4798
|
/* @__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(
|
|
4799
|
+
/* @__PURE__ */ React5.createElement(Box4, null, /* @__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
4800
|
);
|
|
4798
4801
|
});
|
|
4799
4802
|
StatusBar_default = StatusBar;
|
|
@@ -5015,7 +5018,7 @@ Internal tools. **MUST use the EXACT syntax** [tool:functions.ToolName(args)]. *
|
|
|
5015
5018
|
|
|
5016
5019
|
**TOOL USAGE POLICY:**
|
|
5017
5020
|
- **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***" : ""}
|
|
5021
|
+
${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
5022
|
${mode === "Flux" ? "- **File Tools >> Code in chat**\n\n" : ""}- COMMUNICATION TOOLS -
|
|
5020
5023
|
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
5024
|
|
|
@@ -6361,8 +6364,8 @@ ${projectContextBlock}
|
|
|
6361
6364
|
-- FORMATTING --
|
|
6362
6365
|
- GFM Supported
|
|
6363
6366
|
- NO CHAT **AFTER** FIRING TOOLS IN CURRENT TURN
|
|
6364
|
-
- Short headsup
|
|
6365
|
-
- Task Complete & Results Verified? End response with summary of changes made and files edited
|
|
6367
|
+
- Short headsup summary of actions before firing tools
|
|
6368
|
+
- Task Complete & Results Verified? End response with summary of changes made (why) and files edited
|
|
6366
6369
|
- Basic LaTeX${mode === "Flux" ? "" : ". Kaomojis"}
|
|
6367
6370
|
=== END SYSTEM PROMPT ===`.trim();
|
|
6368
6371
|
};
|
|
@@ -18029,9 +18032,18 @@ Selection: ${val}`,
|
|
|
18029
18032
|
deleteChatSummary(chatId);
|
|
18030
18033
|
if (stdout) {
|
|
18031
18034
|
stdout.write("\x1B[2J\x1B[3J\x1B[H");
|
|
18035
|
+
if (stdout.isTTY) {
|
|
18036
|
+
stdout.write("\x1B[?2004h");
|
|
18037
|
+
}
|
|
18032
18038
|
}
|
|
18033
18039
|
setClearKey((prev) => prev + 1);
|
|
18034
18040
|
clearBlocksCache();
|
|
18041
|
+
cachedHistoryRef.current = {
|
|
18042
|
+
completedIndex: 0,
|
|
18043
|
+
columns: 0,
|
|
18044
|
+
historicalBlocks: [],
|
|
18045
|
+
seenSelections: /* @__PURE__ */ new Set()
|
|
18046
|
+
};
|
|
18035
18047
|
const targetIdx = messages.findLastIndex(
|
|
18036
18048
|
(m) => m.role === "user" && m.text && (m.text.startsWith(targetPrompt) || m.text.includes(targetPrompt))
|
|
18037
18049
|
);
|