fluxflow-cli 1.6.1 → 1.6.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 +18 -20
- package/package.json +1 -1
package/dist/fluxflow.js
CHANGED
|
@@ -678,9 +678,11 @@ ${mode === "Flux" ? `
|
|
|
678
678
|
3. Read Folder: tool:functions.read_folder(path="relative/path"). Detailed stats of a directory.
|
|
679
679
|
4. Write File: tool:functions.write_file(path="path", content="content"). Creates/Overwrites. NO CODE BLOCKS. RETURNS: Disk verification + original content (if overwritten) for 100% reversibility.
|
|
680
680
|
5. Update File: tool:functions.update_file(path="relative/path", content_to_replace="old", content_to_add="new"). Surgical patching. RETURNS: High-fidelity visual diff and old code block. You MUST verify that the change specifically matches your intent using the returned diff. PREFFER UPDATE FILE OVER WRITE FILE if file already exists for better reversal tracking (if a file has 500+ lines, try to stick with update_file over full-rewrite). DONT WRAP UPDATE FILE CALL CONTENT IN MARKDOWN CODE BLOCKS.
|
|
681
|
-
6. Write PDF: tool:functions.write_pdf(path="path", content="<html/css content>", orientation="portrait/landscape"). Generates a professional PDF document. Orientation are optional. A4 size page will be used, so any multi-page PDFs calculate your alightment and page breaks to not mess up A4 page layout
|
|
681
|
+
6. Write PDF: tool:functions.write_pdf(path="path", content="<html/css content>", orientation="portrait/landscape"). Generates a professional PDF document. Orientation are optional. A4 size page will be used, so any multi-page PDFs calculate your alightment and page breaks to not mess up A4 page layout. DO NOT ADD FOOTER MANUALLY, the system will handle it automatically. USE CSS TO VISUALLY BEAUTIFY THE DOCUMENT, USE full 100vh & 100vw for page area. ENSURE THE CONTENT IS NEVER BROKEN IN BETWEEN PAGES, USE PAGE BREAKS PROACTIVELY FOR A A4 PAGE LAYOUT.
|
|
682
682
|
7. Execution: tool:functions.exec_command(command="terminal command"). Runs a shell command.
|
|
683
683
|
|
|
684
|
+
AFTER GETTING THE TOOL RESULT, YOU MUST VERIFY THAT ITS A SUCCESS, IF IT GIVES A ERROR, TELL THE USER AND TRY TO FIX IF YOU CAN. DO NOT HALLUCINATE SUCCESS IF TOOL RETURNS ERROR.
|
|
685
|
+
|
|
684
686
|
**NOTE:** WHEN WRITING/UPDATING FILES, USE ACTUAL NEW LINE CONTROL CHARACTER (LF) FOR LINE BREAKS RATHER THAN STRING '\\n'`.trim() : `
|
|
685
687
|
- DEV & FILE TOOLS ARE NOT AVAILABLE IN FLOW MODE. If you need to access files, tell the user to switch to FLUX MODE (manually by user).`.trim()}
|
|
686
688
|
-----------------
|
|
@@ -2119,6 +2121,7 @@ USER_PROMPT: ${agentText}`.trim();
|
|
|
2119
2121
|
});
|
|
2120
2122
|
success = true;
|
|
2121
2123
|
yield { type: "model_update", content: null };
|
|
2124
|
+
yield { type: "status", content: "Working..." };
|
|
2122
2125
|
} catch (err) {
|
|
2123
2126
|
const errMsg = err.status || err.error && err.error.message || String(err);
|
|
2124
2127
|
const date = (/* @__PURE__ */ new Date()).toISOString().slice(0, 19).replace("T", " ");
|
|
@@ -2155,7 +2158,6 @@ USER_PROMPT: ${agentText}`.trim();
|
|
|
2155
2158
|
lastUsage = chunk.usageMetadata;
|
|
2156
2159
|
if (lastUsage) {
|
|
2157
2160
|
yield { type: "liveTokens", content: lastUsage.totalTokenCount };
|
|
2158
|
-
yield { type: "status", content: "Working..." };
|
|
2159
2161
|
}
|
|
2160
2162
|
}
|
|
2161
2163
|
await incrementUsage("agent");
|
|
@@ -2502,7 +2504,7 @@ var init_settings = __esm({
|
|
|
2502
2504
|
try {
|
|
2503
2505
|
if (await fs15.exists(src)) {
|
|
2504
2506
|
await fs15.ensureDir(dest);
|
|
2505
|
-
await fs15.copy(src, dest, { overwrite:
|
|
2507
|
+
await fs15.copy(src, dest, { overwrite: true });
|
|
2506
2508
|
}
|
|
2507
2509
|
} catch (err) {
|
|
2508
2510
|
console.error(`Migration failed for ${folder}:`, err);
|
|
@@ -3053,7 +3055,7 @@ Check what's new using \`/changelog\` command.`,
|
|
|
3053
3055
|
{ cmd: "/changelog", desc: "View latest updates" },
|
|
3054
3056
|
{ cmd: "/update", desc: "Check/Install updates", subs: [
|
|
3055
3057
|
{ cmd: "check", desc: "Check for new version" },
|
|
3056
|
-
{ cmd: "latest", desc: "Install
|
|
3058
|
+
{ cmd: "latest", desc: "Install latest release" }
|
|
3057
3059
|
] }
|
|
3058
3060
|
];
|
|
3059
3061
|
const handleSubmit = (value) => {
|
|
@@ -3585,22 +3587,18 @@ Selection: ${val}`,
|
|
|
3585
3587
|
}
|
|
3586
3588
|
return newMsgs;
|
|
3587
3589
|
});
|
|
3588
|
-
} else if (!inThinkMode
|
|
3589
|
-
|
|
3590
|
-
|
|
3591
|
-
if (toolIdx !== -1) {
|
|
3592
|
-
cleanedText = cleanedText.substring(0, toolIdx);
|
|
3590
|
+
} else if (!inThinkMode) {
|
|
3591
|
+
const chunkLower2 = chunkText.toLowerCase();
|
|
3592
|
+
if (!toolCallEncounteredInTurn && chunkLower2.includes("tool:functions.")) {
|
|
3593
3593
|
toolCallEncounteredInTurn = true;
|
|
3594
3594
|
}
|
|
3595
|
-
if (
|
|
3596
|
-
|
|
3597
|
-
|
|
3598
|
-
|
|
3599
|
-
|
|
3600
|
-
|
|
3601
|
-
|
|
3602
|
-
));
|
|
3603
|
-
}
|
|
3595
|
+
if (!currentAgentId) {
|
|
3596
|
+
currentAgentId = "agent-" + Date.now();
|
|
3597
|
+
setMessages((prev) => [...prev, { id: currentAgentId, role: "agent", text: chunkText, isStreaming: true }]);
|
|
3598
|
+
} else {
|
|
3599
|
+
setMessages((prev) => prev.map(
|
|
3600
|
+
(m) => m.id === currentAgentId ? { ...m, text: m.text + chunkText, isStreaming: true } : m
|
|
3601
|
+
));
|
|
3604
3602
|
}
|
|
3605
3603
|
}
|
|
3606
3604
|
}
|
|
@@ -3629,7 +3627,7 @@ Selection: ${val}`,
|
|
|
3629
3627
|
}
|
|
3630
3628
|
setMessages((prev) => {
|
|
3631
3629
|
const newMsgs = prev.map((m) => m.isStreaming ? { ...m, isStreaming: false } : m);
|
|
3632
|
-
const historyToSave = newMsgs.filter((m) => !String(m.id).startsWith("welcome") && !m.
|
|
3630
|
+
const historyToSave = newMsgs.filter((m) => !String(m.id).startsWith("welcome") && !m.isMeta);
|
|
3633
3631
|
saveChat(chatId, null, historyToSave);
|
|
3634
3632
|
setCompletedIndex(newMsgs.length);
|
|
3635
3633
|
return newMsgs;
|
|
@@ -4298,7 +4296,7 @@ var init_app = __esm({
|
|
|
4298
4296
|
init_setup();
|
|
4299
4297
|
SESSION_START_TIME = Date.now();
|
|
4300
4298
|
CHANGELOG_URL = "https://fluxflow-cli.onrender.com/changelog.html";
|
|
4301
|
-
versionFluxflow = "1.6.
|
|
4299
|
+
versionFluxflow = "1.6.3";
|
|
4302
4300
|
updatedOn = "2026-05-02";
|
|
4303
4301
|
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 (turn: finish) 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(
|
|
4304
4302
|
CommandMenu,
|