fluxflow-cli 1.12.6 → 1.12.7

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.
Files changed (2) hide show
  1. package/dist/fluxflow.js +13 -17
  2. package/package.json +2 -2
package/dist/fluxflow.js CHANGED
@@ -992,7 +992,7 @@ Your tool syntax is: '[tool:functions.ToolName(args...)]'
992
992
  [tool:functions.Chat(title="<short creative title of FULL conversation in 3-5 words>")]. Consider full chat context to generate title NOT just latest message.
993
993
  [tool:functions.Memory(action="temp", content="<summary of the user prompt & model responses ONLY FROM LATEST PROMPT UNDER 40 WORDS>. [Talked on: <date> <hour>]")]
994
994
 
995
- ${isMemoryEnabled ? `-- User-specific long-term/permanent memory (USE BASED ON CONVERSATION CONTEXT, PROACTIVE USAGE) --
995
+ ${isMemoryEnabled ? `-- User-specific long-term/permanent memory (USE BASED ON CONVERSATION CONTEXT, DO NOT RE-SAVE MEMORY WHICH IS ALREADY SAVED) --
996
996
  - Add: [tool:functions.Memory(action="user", method="add", content="<string to add>. [Saved on: <date ONLY>]")]
997
997
  - Delete: [tool:functions.Memory(action="user", method="delete", id="<memory id>")]
998
998
  - Update: [tool:functions.Memory(action="user", method="update", content-new="string to update", id="<memory id>")]
@@ -1060,12 +1060,13 @@ ${parts.join("\n\n")}
1060
1060
  if (thinkingLevel === "xHigh" || thinkingLevel === "Max") levelKey = "xHigh";
1061
1061
  const thinkingConfig = thinking_prompts_default[levelKey] || thinking_prompts_default["Medium"];
1062
1062
  const osDetected = process.platform === "win32" ? "Windows" : process.platform === "darwin" ? "macOS" : "Linux";
1063
- const nameStr = profile.name && profile.name?.length > 0 ? `User Name: ${profile.name}
1064
- ` : "";
1065
- const nicknameStr = profile.nickname && profile.nickname?.length > 0 ? `User Nickname: ${profile.nickname}
1066
- ` : "";
1067
1063
  const userInstrStr = profile.instructions && profile.instructions?.length > 0 ? `User Instructions: ${profile.instructions}
1064
+
1068
1065
  ` : "";
1066
+ const nicknameStr = profile.nickname && profile.nickname?.length > 0 ? `User Nickname: ${profile.nickname}
1067
+ ${userInstrStr.length ? "" : "\n"}` : "";
1068
+ const nameStr = profile.name && profile.name?.length > 0 ? `User Name: ${profile.name}
1069
+ ${nicknameStr.length || userInstrStr.length ? "" : "\n"}` : "";
1069
1070
  const cwdStr = process.cwd();
1070
1071
  const isSystemDir = (() => {
1071
1072
  const cwd = process.cwd().toLowerCase();
@@ -1092,8 +1093,7 @@ ${parts.join("\n\n")}
1092
1093
  -- PROJECT CONTEXT (Source of Truth) --
1093
1094
  ${foundFiles.map((f) => `- ${f.name}: ${f.desc}`).join("\n")}
1094
1095
  Check these first; these files > training data for project consistency. Safety rules apply` : "";
1095
- return `${nameStr}${nicknameStr}${userInstrStr}
1096
- [SYSTEM (OVERRIDES EVERYTHING)]
1096
+ return `${nameStr}${nicknameStr}${userInstrStr}[SYSTEM (OVERRIDES EVERYTHING)]
1097
1097
  Identity: Flux Flow (by Kushal Roy Chowdhury). Sassy, Friendly, Humorous, CLI Agent. No flirting ${mode === "Flux" ? "" : ""}
1098
1098
  Mode: ${mode}${thinkingLevel !== "Fast" ? "(Thinking Mode)" : ""}. ${mode === "Flux" ? "Goal-oriented, Logical" : "Conversational & UX-focused"}
1099
1099
  CWD: ${cwdStr}.${isSystemDir ? " [PROTECTED: ASK BEFORE MODIFYING]" : ""} OS: ${osDetected}${osDetected === "Windows" && mode === "Flux" ? ". PS via CMD" : ""}
@@ -1130,15 +1130,11 @@ ${projectContextBlock}
1130
1130
  [/SYSTEM]`.trim();
1131
1131
  };
1132
1132
  getJanitorInstruction = (userMemories = "", isMemoryEnabled = true, needTitle = true) => {
1133
- return `
1134
- ${userMemories ? `
1135
-
1136
- -- CURRENT PERSISTENT USER MEMORIES --
1133
+ return `${userMemories ? `-- CURRENT SAVED USER MEMORIES --
1137
1134
  ${userMemories}
1138
1135
  -------------------------------------------------
1139
- ` : ""}
1140
1136
 
1141
- === START SYSTEM PROMPT (STRICT HEADLESS LOGIC WORKER: ZERO USER-FACING TEXT POLICY, STRICTLY FOLLOW) ===
1137
+ ` : ""}=== START SYSTEM PROMPT (STRICT HEADLESS LOGIC WORKER: ZERO USER-FACING TEXT POLICY, STRICTLY FOLLOW) ===
1142
1138
  YOU ARE A SILENT BACKGROUND SYSTEM PROCESS. YOU HAVE NO MOUTH. YOUR ONLY OUTPUT MEDIUM IS VALID TOOL CALLS.
1143
1139
  [CRITICAL RULES]
1144
1140
  1. OUTPUT ONLY '[tool:functions.xxx(args)]' CALLS (BRACKET WRAP IS MANDATORY).
@@ -3531,7 +3527,7 @@ var init_ai = __esm({
3531
3527
  const isMemoryEnabled = systemSettings?.memory !== false;
3532
3528
  const persistentStorage = readEncryptedJson(MEMORIES_FILE, []);
3533
3529
  const janitorUserMemories = persistentStorage.map((m) => `- [${m.id}]: ${m.memory}`).join("\n");
3534
- const janitorContents = history.slice(0, -1).filter((msg) => msg.text && !msg.text.includes("[TOOL RESULT]") && !msg.text.includes("OBSERVATION:") && !msg.isMeta && !msg.isLogo && !String(msg.id).startsWith("welcome") && !String(msg.id).startsWith("logo")).slice(-18).map((msg) => {
3530
+ const janitorContents = history.slice(0, -1).filter((msg) => msg.text && !msg.text.includes("[TOOL RESULT]") && !msg.text.includes("OBSERVATION:") && !msg.isMeta && !msg.isLogo && !String(msg.id).startsWith("welcome") && !String(msg.id).startsWith("logo")).slice(-14).map((msg) => {
3535
3531
  let processedText = msg.text.replace(/\[tool:functions\..*?\]/g, "").replace(/<think>[\s\S]*?<\/think>/g, "").replace(/\[Prompted on:.*?\]/g, "").replace(/\[METADATA \(PRIORITY: DYNAMIC\)\] Time: ([^|\n]+)/g, (match, p1) => {
3536
3532
  return `[METADATA (PRIORITY: DYNAMIC)] Time: ${p1.replace(/:\d{2}/g, "")}`;
3537
3533
  }).replace(/\[turn: continue\]/g, "").replace(/\[turn: finish\]/g, "").replace(/\[TOOL RESULTS\]/g, "").replace(/\[tool results\]/g, "").replace(/\r?\n\r?\n/g, "\n").replace(/\n\n/g, "\n").replace(/\\n\\n/g, "").trim();
@@ -3571,7 +3567,7 @@ ${originalTextProcessed.length > USER_CONTEXT_LENGTH ? "... (truncated) ...\n\n"
3571
3567
  const MAX_JANITOR_RETRIES = 12;
3572
3568
  while (attempts <= MAX_JANITOR_RETRIES) {
3573
3569
  if (process.stdout.isTTY) {
3574
- process.stdout.write(`\x1B]0;Retrying Memory (${attempts + 1})...\x07`);
3570
+ process.stdout.write(`\x1B]0;Retrying Finalizing... (${attempts + 1})...\x07`);
3575
3571
  }
3576
3572
  try {
3577
3573
  if (!await checkQuota("background", settings)) {
@@ -3654,7 +3650,7 @@ ${originalTextProcessed.length > USER_CONTEXT_LENGTH ? "... (truncated) ...\n\n"
3654
3650
  attempts++;
3655
3651
  const date = (/* @__PURE__ */ new Date()).toLocaleString();
3656
3652
  if (process.stdout.isTTY) {
3657
- process.stdout.write(`\x1B]0;Memory Error\x07`);
3653
+ process.stdout.write(`\x1B]0;Finalizing Error\x07`);
3658
3654
  }
3659
3655
  await new Promise((resolve) => setTimeout(resolve, 1e3));
3660
3656
  const janitorErrDir = path14.join(LOGS_DIR, "janitor");
@@ -3675,7 +3671,7 @@ ${originalTextProcessed.length > USER_CONTEXT_LENGTH ? "... (truncated) ...\n\n"
3675
3671
  `);
3676
3672
  if (attempts >= MAX_JANITOR_RETRIES) {
3677
3673
  if (process.stdout.isTTY) {
3678
- process.stdout.write(`\x1B]0;Memory Error\x07`);
3674
+ process.stdout.write(`\x1B]0;Finalizing Error\x07`);
3679
3675
  }
3680
3676
  await new Promise((resolve) => setTimeout(resolve, 3e3));
3681
3677
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "fluxflow-cli",
3
- "version": "1.12.6",
4
- "date": "2026-05-22",
3
+ "version": "1.12.7",
4
+ "date": "2026-05-23",
5
5
  "description": "A high-fidelity agentic terminal assistant for the Flux Era.",
6
6
  "keywords": [
7
7
  "ai",