fluxflow-cli 2.8.9 → 2.8.10

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 +11 -13
  2. package/package.json +1 -1
package/dist/fluxflow.js CHANGED
@@ -4922,9 +4922,7 @@ ${tail}`;
4922
4922
 
4923
4923
  - Stats: [${verifiedLineCount} lines, ${(verifiedSize / 1024).toFixed(1)} KB]
4924
4924
  ${ancestry}- Content Preview:
4925
- ${snippet}
4926
-
4927
- [SYSTEM] Check the content preview for verification [/SYSTEM]`;
4925
+ ${snippet}`;
4928
4926
  } catch (err) {
4929
4927
  const errorMsg = err instanceof Error ? err.message : String(err);
4930
4928
  return `ERROR: Failed to write file [${targetPath}]: ${errorMsg}`;
@@ -8034,7 +8032,7 @@ ${ideCtx.warnings}
8034
8032
  CWD: ${process.cwd()}${cwdMismatch ? ` (WARNING: CWD Mismatch! Previous Path: ${lastCwd})` : ""}
8035
8033
  **DIRECTORY STRUCTURE**
8036
8034
  ${dirStructure}${memoryPrompt}${ideBlock}
8037
- ${activeSummaryBlock}${thinkingLevel !== "Fast" && thinkingLevel !== "xHigh" && aiProvider === "Google" ? `${modelName.toLowerCase().startsWith("gemma") ? "[SYSTEM] **STRICTLY FOLLOW THINKING POLICY AS CRITICAL PRIORITY. DO NOT START A RESPONSE WITHOUT <think> ... </think>**\n[/SYSTEM]\n" : ""}` : ""}[USER] ${cleanAgentText.trim()} [/USER]`.trim();
8035
+ ${activeSummaryBlock}${thinkingLevel !== "Fast" && thinkingLevel !== "xHigh" && aiProvider === "Google" ? `${modelName.toLowerCase().startsWith("gemma") ? "[SYSTEM] **STRICTLY FOLLOW THINKING POLICY AS CRITICAL PRIORITY. DO NOT START A RESPONSE WITHOUT <think> ... </think>** [/SYSTEM]\n" : ""}` : ""}[USER] ${cleanAgentText.trim()} [/USER]`.trim();
8038
8036
  modifiedHistory.push({ role: "user", text: firstUserMsg });
8039
8037
  if (activeSummaryBlock && history[history.length - 1]?.id) {
8040
8038
  yield { type: "summary_injected", content: { id: history[history.length - 1].id, text: firstUserMsg } };
@@ -8057,7 +8055,7 @@ ${activeSummaryBlock}${thinkingLevel !== "Fast" && thinkingLevel !== "xHigh" &&
8057
8055
  modifiedHistory = getTruncatedHistory(modifiedHistory, 6);
8058
8056
  }
8059
8057
  if (loop > 0) {
8060
- yield { type: "status", content: "Working...." };
8058
+ yield { type: "status", content: "Working..." };
8061
8059
  }
8062
8060
  if (TERMINATION_SIGNAL) {
8063
8061
  yield { type: "status", content: "Request Cancelled" };
@@ -8072,7 +8070,7 @@ ${activeSummaryBlock}${thinkingLevel !== "Fast" && thinkingLevel !== "xHigh" &&
8072
8070
 
8073
8071
  [STEERING HINT]: ${hint}`;
8074
8072
  } else {
8075
- modifiedHistory.push({ role: "user", text: `${thinkingLevel !== "Fast" && thinkingLevel !== "xHigh" && aiProvider === "Google" ? `${modelName.toLowerCase().startsWith("gemma") ? "[SYSTEM] **STRICTLY FOLLOW THINKING POLICY AS CRITICAL PRIORITY. DO NOT START A RESPONSE WITHOUT <think> ... </think>**\n[/SYSTEM]\n" : ""}` : ""}[STEERING HINT]: ${hint}` });
8073
+ modifiedHistory.push({ role: "user", text: `${thinkingLevel !== "Fast" && thinkingLevel !== "xHigh" && aiProvider === "Google" ? `${modelName.toLowerCase().startsWith("gemma") ? "[SYSTEM] **STRICTLY FOLLOW THINKING POLICY AS CRITICAL PRIORITY. DO NOT START A RESPONSE WITHOUT <think> ... </think>** [/SYSTEM]\n" : ""}` : ""}[STEERING HINT]: ${hint}` });
8076
8074
  }
8077
8075
  yield { type: "status", content: "Steering Hint Injected." };
8078
8076
  }
@@ -8205,13 +8203,13 @@ ${activeSummaryBlock}${thinkingLevel !== "Fast" && thinkingLevel !== "xHigh" &&
8205
8203
  const ideErr = ideCtxJIT ? ideCtxJIT.diagnostics : null;
8206
8204
  if (ideErr && lastUserMsg && lastUserMsg.role === "user" && lastUserMsg.parts?.[0]?.text) {
8207
8205
  lastUserMsg.parts[0].text += `
8208
- [COMPILE ERROR] ${ideErr} [/ERROR]`;
8206
+ ${ideErr} [/ERROR]`;
8209
8207
  }
8210
8208
  }
8211
8209
  const isGemma = modelName && modelName.toLowerCase().startsWith("gemma") && aiProvider === "Google";
8212
8210
  if (isGemma) {
8213
8211
  const jitInstruction = `
8214
- [SYSTEM] Tool result received. Analyze output and proceed with your turn${thinkingLevel !== "Fast" && thinkingLevel !== "xHigh" && aiProvider === "Google" ? `. **STRICTLY MAINTAIN THINKING POLICY. DO NOT START A RESPONSE WITHOUT <think> ... </think>**` : ""}[/SYSTEM]`;
8212
+ [SYSTEM] Tool result received. Analyze output and proceed with your turn${thinkingLevel !== "Fast" && thinkingLevel !== "xHigh" && aiProvider === "Google" ? `. **STRICTLY MAINTAIN THINKING POLICY. DO NOT START A RESPONSE WITHOUT <think> ... </think>**` : ""} [/SYSTEM]`;
8215
8213
  if (lastUserMsg && lastUserMsg.role === "user" && lastUserMsg.parts?.[0]?.text?.startsWith("[TOOL RESULT]")) {
8216
8214
  lastUserMsg.parts[0].text += jitInstruction;
8217
8215
  }
@@ -8221,7 +8219,7 @@ ${activeSummaryBlock}${thinkingLevel !== "Fast" && thinkingLevel !== "xHigh" &&
8221
8219
  const currentStep = loop + 1;
8222
8220
  if (currentStep >= stepThreshold && lastUserMsg && lastUserMsg.parts?.[0]) {
8223
8221
  lastUserMsg.parts[0].text += `
8224
- [SYSTEM] WARNING, Turn Limit Impending: Step ${currentStep}/${MAX_LOOPS}. Wrap up quickly/prompt user to continue & use [[END]] quickly.[/SYSTEM]`;
8222
+ [SYSTEM] WARNING, Turn Limit Impending: Step ${currentStep}/${MAX_LOOPS}. Wrap up quickly/prompt user to continue & use [[END]] quickly. [/SYSTEM]`;
8225
8223
  }
8226
8224
  }
8227
8225
  const abortPromise = new Promise((_, reject) => {
@@ -8432,7 +8430,7 @@ ${activeSummaryBlock}${thinkingLevel !== "Fast" && thinkingLevel !== "xHigh" &&
8432
8430
  ]);
8433
8431
  if (done) break;
8434
8432
  if (isFirstChunk) {
8435
- yield { type: "status", content: "Working..." };
8433
+ yield { type: "status", content: "Thinking..." };
8436
8434
  isFirstChunk = false;
8437
8435
  }
8438
8436
  if (TERMINATION_SIGNAL) {
@@ -9455,7 +9453,7 @@ ${boxBottom}` };
9455
9453
  const waitTime = Math.min(1e3 * Math.pow(2, inStreamRetryCount - 1), 24e3);
9456
9454
  if (turnText.trim().length > 0) {
9457
9455
  modifiedHistory.push({ role: "agent", text: turnText });
9458
- const recoveryText = "[SYSTEM]\n- SEAMLESS CONTINUATION: Resume immediately. Pick up from last words with zero gap/disruption\n- NO REPETITION: Do not repeat any text already written\n- NO RE-THINK: Do not restart or open <think> if reasoning already started. Continue the thinking and close thinking block </think> if opened before outputting user response\n- MID-TOOL SAFETY: If cutoff was mid-tool call, restart that tool call from start\n- STEALTH: Do not mention/apologize for cutoff[/SYSTEM]";
9456
+ const recoveryText = "[SYSTEM]\n- SEAMLESS CONTINUATION: Resume immediately. Pick up from last words with zero gap/disruption\n- NO REPETITION: Do not repeat any text already written\n- NO RE-THINK: Do not restart or open <think> if reasoning already started. Continue the thinking and close thinking block </think> if opened before outputting user response\n- MID-TOOL SAFETY: If cutoff was mid-tool call, restart that tool call from start\n- STEALTH: Do not mention/apologize for cutoff [/SYSTEM]";
9459
9457
  if (toolResults.length > 0) {
9460
9458
  toolResults.forEach((tr, idx) => {
9461
9459
  if (idx === toolResults.length - 1) {
@@ -9528,7 +9526,7 @@ Error Log can be found in ${path19.join(LOGS_DIR, "agent", "error.log")}`);
9528
9526
  const hasFinish = /\[\s*(turn\s*:)?\s*finish\s*\]/i.test(signalSafeText.toLowerCase()) || /\[\[END\]\]/i.test(signalSafeText.toLowerCase()) || true;
9529
9527
  const hasContinue = /\[\s*(turn\s*:)?\s*continue\s*\]/i.test(signalSafeText.toLowerCase());
9530
9528
  const shouldContinue = toolCallPointer > 0;
9531
- yield { type: "status", content: "Working..." };
9529
+ yield { type: "status", content: "Thinking..." };
9532
9530
  const cleanedTurnText = contextSafeReplace(turnText, /(\[\s*(turn\s*:)?\s*(continue|finish)\s*\]|\[\[END\]\])/gi, "").trim();
9533
9531
  let isActuallyFinished = (hasFinish || toolResults.length === 0) && !isThinkingLoop && !isStutteringLoop && !isGeneralLoop;
9534
9532
  isActuallyFinished = toolResults.length === 0 ? isActuallyFinished : false;
@@ -9561,7 +9559,7 @@ Error Log can be found in ${path19.join(LOGS_DIR, "agent", "error.log")}`);
9561
9559
  }
9562
9560
  } else {
9563
9561
  if (wasToolCalledInLastLoop) {
9564
- modifiedHistory.push({ role: "user", text: `[SYSTEM] Failed to verify tool execution, Verify tool syntax, proper escaping or ask user if tool worked when unsure[/SYSTEM]` });
9562
+ modifiedHistory.push({ role: "user", text: `[SYSTEM] Failed to verify tool execution, Verify tool syntax, proper escaping or ask user if tool worked when unsure [/SYSTEM]` });
9565
9563
  } else {
9566
9564
  modifiedHistory.push({ role: "user", text: `[SYSTEM] ${isStutteringLoop && !isThinkingLoop ? `STUTTERING DETECTED by Internal System. Re-calibrate your response & proceed.` : `${isThinkingLoop ? " OVER THINKING" : " LOOP"} DETECTED by Internal System${isThinkingLoop ? " for current EFFORT_LEVEL" : ""}. ${isThinkingLoop ? "If you have planned the task, prioritize execution/output" : "If you have finished your task use [[END]]"}`} [/SYSTEM]` });
9567
9565
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fluxflow-cli",
3
- "version": "2.8.9",
3
+ "version": "2.8.10",
4
4
  "date": "2026-06-19",
5
5
  "description": "A high-fidelity agentic terminal assistant for the Flux Era.",
6
6
  "keywords": [