fluxflow-cli 1.8.29 → 1.8.31
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 +22 -16
- package/package.json +1 -1
package/dist/fluxflow.js
CHANGED
|
@@ -758,8 +758,8 @@ ${mode === "Flux" ? `
|
|
|
758
758
|
1. View File: [tool:functions.view_file(path="relative/path", start_line=number, end_line=number)]. Reads file content. Auto-truncates at 500 lines unless start_line and end_line are provided. YOU CAN ALSO USE THIS TOOL TO SEE IMAGES AND DOCUMENTS IN A FOLDER. IF USER ASK HOW TO SHARE A IMAGE TELL THEM TO PASTE THE IMAGE IN THE CURRENT FOLDER. IF USER GIVES A IMAGE/DOCUMENT, YOU MUST SEE IT FIRST BEFORE DOING ANYTHING.
|
|
759
759
|
2. Read Folder: [tool:functions.read_folder(path="relative/path")]. Detailed stats of a directory.
|
|
760
760
|
3. Write File: [tool:functions.write_file(path="path", content="First Line
|
|
761
|
-
Second Line with literal [/n] sequence")]. Creates/Overwrites.
|
|
762
|
-
4. Update File: [tool:functions.update_file(path="path", content_to_replace="old content", content_to_add="new content with [/n]")]. Surgical patching.
|
|
761
|
+
Second Line with literal [/n] sequence")]. Creates/Overwrites. DO NOT USE CODE BLOCKS IN FILES. IF FILE ALREADY EXISTS, USE update_file OVER write_file, IF NOT ABSOLUTELY NECESSARY.
|
|
762
|
+
4. Update File: [tool:functions.update_file(path="path", content_to_replace="old content", content_to_add="new content with [/n]")]. Surgical patching. DO NOT USE CODE BLOCKS IN FILES.
|
|
763
763
|
5. 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. Keep generous margins for better redability.
|
|
764
764
|
6. Write DOCX: [tool:functions.write_docx(path="path", content="<html content>")]. Generates a professional Word document (.docx) from HTML. You can make multiple pages. Default Page dimentions will be A4, use proper margins and page break strategy.
|
|
765
765
|
7. Write PPTX: [tool:functions.write_pptx(path="path", content="<h1 style='color: #0088CC;'>Title</h1><ul style='font-size: 14pt;'><li>Point A</li></ul>
|
|
@@ -773,7 +773,7 @@ Second Line with literal [/n] sequence")]. Creates/Overwrites. NO CODE BLOCKS.
|
|
|
773
773
|
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.
|
|
774
774
|
NEVER GUESS A CODE, IF UNSURE READ THE FILE FIRST BEFORE EDITING IT.
|
|
775
775
|
|
|
776
|
-
Prefer
|
|
776
|
+
Prefer file write/update tools over writing code in chat.
|
|
777
777
|
|
|
778
778
|
*** [\u{1F6A8} CRITICAL POLICY: NEWLINE CONTROL \u{1F6A8}] ***
|
|
779
779
|
1. FOR ACTUAL CODE STRUCTURE (Line Breaks): Use standard LF (Press ENTER inside the tool argument).
|
|
@@ -836,6 +836,7 @@ var init_thinking_prompts = __esm({
|
|
|
836
836
|
"src/data/thinking_prompts.json"() {
|
|
837
837
|
thinking_prompts_default = {
|
|
838
838
|
Max: `EFFORT_LEVEL: MAX
|
|
839
|
+
**THINKING <think> ... </think> IS MANDATORY**
|
|
839
840
|
Think in a continuous, fluid analytical monologue within the <think>...</think> block. Do NOT use headings, bullet points, or artificial sections. Engage in a deep "Stream of Consciousness" that follows this cognitive path:
|
|
840
841
|
Deep Analysis: Deconstruct the request into its core technical and logic requirements.
|
|
841
842
|
Hypothesis & Test: Propose multiple solutions mentally and critique them for edge cases or security risks.
|
|
@@ -846,10 +847,10 @@ RULES:
|
|
|
846
847
|
- NO HEADINGS. Just a solid, stable analytical monologue.
|
|
847
848
|
- Be thorough and exhaustive. Explore the 'why' behind every decision.
|
|
848
849
|
- Use internal critique: Question your own logic as you go.
|
|
849
|
-
- MANDATORY
|
|
850
|
-
High: "EFFORT_LEVEL: HIGH\nThink in a stable, analytical monologue within the <think>...</think> block. Avoid headings or structured formatting. Your thinking should be a continuous stream of logical deduction:\nAnalyze the immediate task and its dependencies.\nMentally simulate the execution to identify potential failure points.\nStructure a precise plan that addresses both primary goals and secondary constraints.\n\nRULES:\n- NO HEADINGS. Maintain a fluid monologue style.\n- Be detailed and rigorous in your self-questioning.\n- Focus on accuracy and technical correctness.\n- MANDATORY
|
|
851
|
-
Medium: "EFFORT_LEVEL: MEDIUM\nThink in a concise, stable monologue within the <think>...</think> block. No headings needed. Focus on the core logic required to solve the task efficiently:\nIdentify the most direct path to the solution.\nBriefly consider and discard obvious alternatives.\nConfirm the plan meets the user's immediate requirements.\n\nRULES:\n- NO HEADINGS. Keep it as a simple, logical stream.\n- Be efficient. Spend energy only on what matters for the task.\n-
|
|
852
|
-
Minimal: "EFFORT_LEVEL: LOW\nThink in a brief, focused monologue within the <think>...</think> block. No headings. Just a quick mental check before acting:\nVerify the objective.\nNote the target files/tools.\n\nRULES:\n- NO HEADINGS. Just a few lines of clear, linear thought.\n- Use minimal
|
|
850
|
+
- MANDATORY THINKING: You MUST engage in full reasoning regardless of perceived simplicity.`,
|
|
851
|
+
High: "EFFORT_LEVEL: HIGH\n**THINKING <think> ... </think> IS MANDATORY**\nThink in a stable, analytical monologue within the <think>...</think> block. Avoid headings or structured formatting. Your thinking should be a continuous stream of logical deduction:\nAnalyze the immediate task and its dependencies.\nMentally simulate the execution to identify potential failure points.\nStructure a precise plan that addresses both primary goals and secondary constraints.\n\nRULES:\n- NO HEADINGS. Maintain a fluid monologue style.\n- Be detailed and rigorous in your self-questioning.\n- Focus on accuracy and technical correctness.\n- MANDATORY THINKING: You MUST enter reasoning to verify the path forward.",
|
|
852
|
+
Medium: "EFFORT_LEVEL: MEDIUM\n**THINKING <think> ... </think> IS MANDATORY**\nThink in a concise, stable monologue within the <think>...</think> block. No headings needed. Focus on the core logic required to solve the task efficiently:\nIdentify the most direct path to the solution.\nBriefly consider and discard obvious alternatives.\nConfirm the plan meets the user's immediate requirements.\n\nRULES:\n- NO HEADINGS. Keep it as a simple, logical stream.\n- Be efficient. Spend energy only on what matters for the task.\n- MANDATORY THINKING: Engage in a baseline mental check for all technical tasks.",
|
|
853
|
+
Minimal: "EFFORT_LEVEL: LOW\n**THINKING <think> ... </think> IS MANDATORY**\nThink in a brief, focused monologue within the <think>...</think> block. No headings. Just a quick mental check before acting:\nVerify the objective.\nNote the target files/tools.\n\nRULES:\n- NO HEADINGS. Just a few lines of clear, linear thought.\n- Use minimal thinking for simple or conversational requests."
|
|
853
854
|
};
|
|
854
855
|
}
|
|
855
856
|
});
|
|
@@ -890,18 +891,22 @@ ${userMemories}
|
|
|
890
891
|
` : ""}${isMemoryEnabled ? `${tempMemoriesStr}
|
|
891
892
|
|
|
892
893
|
` : ""}${nameStr}${nicknameStr}${userInstrStr}
|
|
893
|
-
--- START SYSTEM INSTRUCTION (STRICT PRIORITY, OVERRIDES EVERYTHING) ---
|
|
894
|
-
You are Flux Flow (made by Kushal Roy Chowdhury). A CLI Agent. Your tone will be friendly, warm, sassy, approchable, funny, Avoid romantic or flirty words. Dont mention modes unless explicitly asked. ${mode === "Flux" ? `You are currently operating in FLUX mode. Keep your agentic approach goal oriented, conversation quality and user experience. Use provided tools when needed.
|
|
895
|
-
MUST FOLLOW THE "CRITICAL NEWLINE PROTOCOL"
|
|
894
|
+
--- START SYSTEM INSTRUCTION (STRICT PRIORITY, OVERRIDES EVERYTHING, THINKING IS MANDATORY) ---
|
|
895
|
+
You are Flux Flow (made by Kushal Roy Chowdhury). A CLI Agent. Your tone will be friendly, warm, sassy, approchable, funny, Avoid romantic or flirty words. Dont mention modes unless explicitly asked. ${mode === "Flux" ? `You are currently operating in FLUX mode (THINKING IS MANDATORY). Keep your agentic approach goal oriented, conversation quality and user experience. Use provided tools when needed. Analyze user prompt and project requirements, then plan your approach.` : `You are currently operating in Flow mode. Focus more on conversation quality and user experience. Keep Agentic Loops to minimum. You will get access to only Web Tools & User Communication Tool in this mode.`}
|
|
896
|
+
MUST FOLLOW THE "CRITICAL NEWLINE PROTOCOL", "CRITICAL QUOTE ESCAPE POLICY" AND "CRITICAL THINKING POLICY" ALWAYS. **NO EXCEPTIONS.**
|
|
896
897
|
CURRENT_WORKING_DIRECTORY: ${cwdStr}.
|
|
897
898
|
OS: ${osDetected}. ${osDetected === "Windows" && mode === "Flux" ? "Your terminal commands will run on CMD. 'Prefer using PS scripts via CMD' instead of raw CMD commands." : ""}
|
|
898
899
|
If you see a [STEERING HINT] from user, give that prompt priority for the task at hand, user can use it to help you guide if you go wrong way.
|
|
899
900
|
|
|
900
|
-
|
|
901
901
|
-- START THINKING INSTRUCTIONS --
|
|
902
902
|
${thinkingConfig}
|
|
903
903
|
|
|
904
|
-
|
|
904
|
+
*** \u{1F6A8} CRITICAL THINKING POLICY \u{1F6A8} ***
|
|
905
|
+
- AS A THINKING AGENT YOU **SHOULD** FIRST USE <think> ... </think> BEFORE ANSWERING **ANYTHING** OR USING **ANY TOOL**.
|
|
906
|
+
- **NEVER** SKIP THE THINKING STEP. EVEN FOR THE **SIMPLEST** OF TASKS/CONVERSATIONS/ROLEPLAYS/BASIC MATHS/LOGIC PROBLEMS/CODE WRITING/OR EVEN SIMPLE GREETINGS. **NO EXCEPTIONS**.
|
|
907
|
+
- **ALWAYS** THINK BEFORE RESPONDING. ALWAYS PUT YOUR THOUGHT PROCESS IN <think> ... </think> AS INSTRUCTED.
|
|
908
|
+
- **NEVER** JUMP TO RESPONSES DIRECTLY EVEN IF YOU CAN SOLVE IT FASTER.
|
|
909
|
+
- BREAKING THIS POLICY AND NOT USING <think> ... </think>, MEANS YOU ARE BREAKING A CORE SYSTEM RULE.
|
|
905
910
|
-- END THINKING INSTRUCTIONS --
|
|
906
911
|
|
|
907
912
|
${TOOL_PROTOCOL(mode)}
|
|
@@ -2549,7 +2554,7 @@ var init_ai = __esm({
|
|
|
2549
2554
|
const isMemoryEnabled = systemSettings?.memory !== false;
|
|
2550
2555
|
const persistentStorage = readEncryptedJson(MEMORIES_FILE, []);
|
|
2551
2556
|
const janitorUserMemories = persistentStorage.map((m) => `- [${m.id}]: ${m.memory}`).join("\n");
|
|
2552
|
-
const janitorContents = history.slice(-
|
|
2557
|
+
const janitorContents = history.slice(-12).filter((msg) => msg.text && !msg.text.includes("[TOOL_RESULT]") && !msg.text.includes("OBSERVATION:")).map((msg) => ({
|
|
2553
2558
|
role: msg.role === "user" ? "user" : "model",
|
|
2554
2559
|
parts: [{ text: msg.text.replace(/<think>[\s\S]*?<\/think>/g, "").trim() }]
|
|
2555
2560
|
}));
|
|
@@ -2887,7 +2892,8 @@ DEBUG [${date}]: ${finalSynthesis}
|
|
|
2887
2892
|
const persistentStorage = readEncryptedJson(MEMORIES_FILE, []);
|
|
2888
2893
|
const mainUserMemories = persistentStorage.map((m) => `- ${m.memory}`).join("\n");
|
|
2889
2894
|
const janitorUserMemories = persistentStorage.map((m) => `- [${m.id}]: ${m.memory}`).join("\n");
|
|
2890
|
-
const firstUserMsg = `
|
|
2895
|
+
const firstUserMsg = `[SYSTEM] MUST FOLLOW THINKING RULES, NEWLINE, ESCAPE POLICY AS PRIORITY.
|
|
2896
|
+
USER_PROMPT: "${agentText}"`.trim();
|
|
2891
2897
|
modifiedHistory.push({ role: "user", text: firstUserMsg });
|
|
2892
2898
|
let lastUsage = null;
|
|
2893
2899
|
const MAX_LOOPS = mode === "Flux" ? 50 : 7;
|
|
@@ -3299,7 +3305,7 @@ ${boxBottom}
|
|
|
3299
3305
|
if (toolResults.length > 0) {
|
|
3300
3306
|
toolResults.forEach((tr) => modifiedHistory.push(tr));
|
|
3301
3307
|
}
|
|
3302
|
-
modifiedHistory.push({ role: "user", text: "[SYSTEM] Response got cut for internal error, continue from checkpoint seamlessly and DON'T repeat what you already said!" });
|
|
3308
|
+
modifiedHistory.push({ role: "user", text: "[SYSTEM] Response got cut for internal error, continue from checkpoint seamlessly from the EXACT word it left off and DON'T repeat what you already said! IF you were in a thinking block, complete the thinking and close the thinking with proper </think> then respond. PICK UP FROM TE WORD IN A WAY THAT USER SHOULD NOT NOTICE ANY CUTOFF." });
|
|
3303
3309
|
accumulatedContext += turnText;
|
|
3304
3310
|
for (let i = waitTime / 1e3; i > 0; i--) {
|
|
3305
3311
|
yield { type: "status", content: `Error Occured. Recovering Stream (${inStreamRetryCount}/${MAX_RETRIES}) [${i}s]...` };
|
|
@@ -5336,7 +5342,7 @@ var init_app = __esm({
|
|
|
5336
5342
|
init_text();
|
|
5337
5343
|
SESSION_START_TIME = Date.now();
|
|
5338
5344
|
CHANGELOG_URL = "https://fluxflow-cli.onrender.com/changelog.html";
|
|
5339
|
-
versionFluxflow = "1.8.
|
|
5345
|
+
versionFluxflow = "1.8.31";
|
|
5340
5346
|
updatedOn = "2026-05-12";
|
|
5341
5347
|
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(
|
|
5342
5348
|
CommandMenu,
|