fluxflow-cli 1.8.23 → 1.8.24
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 +8 -10
- package/package.json +1 -1
package/dist/fluxflow.js
CHANGED
|
@@ -737,10 +737,10 @@ Use tools contextually when needed, don't flood with unnecessary tool calls.
|
|
|
737
737
|
var JANITOR_TOOLS_PROTOCOL;
|
|
738
738
|
var init_janitor_tools = __esm({
|
|
739
739
|
"src/data/janitor_tools.js"() {
|
|
740
|
-
JANITOR_TOOLS_PROTOCOL = (isMemoryEnabled = true, needTitle =
|
|
740
|
+
JANITOR_TOOLS_PROTOCOL = (isMemoryEnabled = true, needTitle = true) => `
|
|
741
741
|
${needTitle ? `-- START CHAT MANAGEMENT TOOLS --
|
|
742
742
|
1. YOU MUST UPDATE CHAT TITLE (URGENT PRIORITY):
|
|
743
|
-
tool:functions.chat(title='<short
|
|
743
|
+
tool:functions.chat(title='<short creative title of FULL conversation in 3-5 words>')
|
|
744
744
|
-- END CHAT MANAGEMENT TOOLS --
|
|
745
745
|
|
|
746
746
|
` : ""}
|
|
@@ -748,7 +748,7 @@ ${needTitle ? `-- START CHAT MANAGEMENT TOOLS --
|
|
|
748
748
|
Your tool syntax is: 'tool:functions.function_name(args...)'
|
|
749
749
|
You have access to the following memory functions to persist important information:
|
|
750
750
|
|
|
751
|
-
1. Temporary context (
|
|
751
|
+
1. Temporary context (URGENT PRIORITY):
|
|
752
752
|
tool:functions.memory(action='temp', content='<summary of the user prompt & model responses ONLY FROM LATEST PROMPT UNDER 40 WORDS>. [Talked on: <date> <hour>]')
|
|
753
753
|
|
|
754
754
|
${isMemoryEnabled ? `2. User-specific long-term memory (USE BASED ON CONVERSATION CONTEXT):
|
|
@@ -891,7 +891,7 @@ When you 'finish' an agentic loop, you will lose your previous turn 'thinking' d
|
|
|
891
891
|
Current date and Time is: ${dateTimeStr}
|
|
892
892
|
--- END SYSTEM INSTRUCTION ---`.trim();
|
|
893
893
|
};
|
|
894
|
-
getJanitorInstruction = (originalText, agentRaws, userMemories = "", isMemoryEnabled = true, needTitle =
|
|
894
|
+
getJanitorInstruction = (originalText, agentRaws, userMemories = "", isMemoryEnabled = true, needTitle = true) => {
|
|
895
895
|
let agentRes = `${agentRaws.replace(/tool:functions\..*\n/g, "").replace(/<think>.*<\/think>/g, "").replace(/\[Prompted on:.*?\]/g, "").replace(/\[turn: continue\]/g, "").replace(/\[turn: finish\]/g, "").replace(/\[TOOL_RESULTS\]/g, "").replace(/\[tool_results\]/g, "").substring(0, 3500)}`;
|
|
896
896
|
if (agentRes.length > 3500) {
|
|
897
897
|
agentRes += "\n... (truncated) ...";
|
|
@@ -2465,7 +2465,7 @@ var init_ai = __esm({
|
|
|
2465
2465
|
signalTermination = () => {
|
|
2466
2466
|
TERMINATION_SIGNAL = true;
|
|
2467
2467
|
};
|
|
2468
|
-
runJanitorTask = async (settings, agentText, fullAgentTextRaw, history,
|
|
2468
|
+
runJanitorTask = async (settings, agentText, fullAgentTextRaw, history, callbacks = {}) => {
|
|
2469
2469
|
const { onStatus, onMemoryUpdated, onBackgroundIncrement } = callbacks;
|
|
2470
2470
|
const { profile, thinkingLevel, mode, janitorModel, chatId, systemSettings, sessionStats } = settings;
|
|
2471
2471
|
const isMemoryEnabled = systemSettings?.memory !== false;
|
|
@@ -2476,14 +2476,12 @@ var init_ai = __esm({
|
|
|
2476
2476
|
parts: [{ text: msg.text.replace(/<think>[\s\S]*?<\/think>/g, "").trim() }]
|
|
2477
2477
|
}));
|
|
2478
2478
|
const cleanedFullResponse = fullAgentTextRaw.replace(/<think>[\s\S]*?<\/think>/g, "").trim();
|
|
2479
|
-
let thisRngHas40pChanceToBehave = Math.random() < 0.41;
|
|
2480
|
-
let generateTitle = needTitle || thisRngHas40pChanceToBehave;
|
|
2481
2479
|
const janitorPrompt = getJanitorInstruction(
|
|
2482
2480
|
agentText,
|
|
2483
2481
|
cleanedFullResponse,
|
|
2484
2482
|
janitorUserMemories,
|
|
2485
2483
|
isMemoryEnabled,
|
|
2486
|
-
|
|
2484
|
+
true
|
|
2487
2485
|
);
|
|
2488
2486
|
janitorContents.push({ role: "user", parts: [{ text: janitorPrompt }] });
|
|
2489
2487
|
let finalSynthesis = "";
|
|
@@ -2588,7 +2586,7 @@ DEBUG [${date}]: ${finalSynthesis}
|
|
|
2588
2586
|
await new Promise((resolve) => setTimeout(resolve, backoff));
|
|
2589
2587
|
}
|
|
2590
2588
|
}
|
|
2591
|
-
if (attempts
|
|
2589
|
+
if (attempts) {
|
|
2592
2590
|
const janitorErrDir = path16.join(LOGS_DIR, "janitor");
|
|
2593
2591
|
fs16.appendFileSync(path16.join(janitorErrDir, "error.log"), `-----------------------------------------------------------------------------
|
|
2594
2592
|
|
|
@@ -5234,7 +5232,7 @@ var init_app = __esm({
|
|
|
5234
5232
|
init_text();
|
|
5235
5233
|
SESSION_START_TIME = Date.now();
|
|
5236
5234
|
CHANGELOG_URL = "https://fluxflow-cli.onrender.com/changelog.html";
|
|
5237
|
-
versionFluxflow = "1.8.
|
|
5235
|
+
versionFluxflow = "1.8.24";
|
|
5238
5236
|
updatedOn = "2026-05-11";
|
|
5239
5237
|
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(
|
|
5240
5238
|
CommandMenu,
|