fluxflow-cli 1.14.2 → 1.14.4

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 -11
  2. package/package.json +1 -1
package/dist/fluxflow.js CHANGED
@@ -1027,20 +1027,20 @@ var thinking_prompts_default;
1027
1027
  var init_thinking_prompts = __esm({
1028
1028
  "src/data/thinking_prompts.json"() {
1029
1029
  thinking_prompts_default = {
1030
- xHigh: `EFFORT_LEVEL: HIGHEST
1031
- Think in a continuous, fluid analytical monologue within the <think>...</think> block. Do NOT use headings, bullet points, or artificial sections. Engage in a rigorous "Stream of Consciousness" that aggressively interrogates the problem:
1030
+ xHigh: `EFFORT_LEVEL: MAX
1031
+ Think in a continuous, fluid analytical monologue within the <think>...</think> block. Do NOT use headings, markers, bullet points, or artificial sections. Engage in a rigorous "Stream of Consciousness" that aggressively interrogates the problem:
1032
1032
  Deep Contextual Analysis: Deconstruct requirements, trace implicit assumptions, and evaluate system-wide implications.
1033
1033
  First-Principles Design: Formulate solutions focusing on extreme modularity, DRY principles, and clean abstractions. Mentally simulate the architecture.
1034
1034
  Adversarial Critique: Actively try to break your own logic. Search for edge cases, race conditions, memory leaks, and security flaws. If a flaw is found, pivot immediately.
1035
1035
  Execution Orchestration: Map out a granular, step-by-step operational plan before writing code or using tools.
1036
1036
  RULES:
1037
- - NO HEADINGS. Maintain a dense, unbroken analytical monologue.
1037
+ - NO HEADINGS/MARKERS. Maintain a dense, unbroken analytical monologue.
1038
1038
  - Be exhaustive. Detail the exact 'why' behind architectural choices and algorithm selections.
1039
1039
  - Question your own logic ruthlessly as you go.
1040
1040
  - MANDATORY THINKING: You MUST engage in full reasoning regardless of simplicity, even for greetings`,
1041
- 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:\nTask Decomposition: Break the objective down into atomic, executable steps.\nLogic Simulation: Mentally execute your planned code/actions. Identify missing dependencies or potential failure states.\nStructural Strategy: Ensure your approach adheres to good folder structures, modularity, and clean code practices.\nRULES:\n- NO HEADINGS. Maintain a fluid monologue style.\n- Be detailed and rigorous in self-correction.\n- Focus heavily on technical correctness, clean abstractions, and edge-case prevention.\n- MANDATORY THINKING: You MUST enter reasoning to verify the path forward, even for greeting.",
1042
- Medium: "EFFORT_LEVEL: MEDIUM\nThink in a concise, stable monologue within the <think>...</think> block. Focus on the core logic required to solve the task efficiently:\nDirect Path Identification: Determine the most straightforward solution that meets the requirements.\nSanity Check: Briefly review the chosen approach against obvious anti-patterns or missing imports.\nExecution Readiness: Outline the exact files and functions to modify.\nRULES:\n- NO HEADINGS. Keep it as a simple, logical stream.\n- Be efficient but deliberate. Spend energy primarily on actionable steps.\n- MANDATORY THINKING: Engage in a baseline mental check for all technical tasks, even for greeting",
1043
- Minimal: "EFFORT_LEVEL: LOW\nThink in a brief, focused monologue within the <think>...</think> block. Just a quick mental check before acting:\nIntent Verification: Confirm what the user is asking.\nAction Mapping: Note the specific tool or file to target.\nRULES:\n- NO HEADINGS. Keep it to a few lines of clear, linear thought.\n- Use minimal thinking suitable for simple or conversational requests, even for greetings.",
1041
+ High: "EFFORT_LEVEL: HIGH\nThink in a stable, analytical monologue within the <think>...</think> block. Avoid headings, markers or structured formatting. Your thinking should be a continuous stream of logical deduction:\nTask Decomposition: Break the objective down into atomic, executable steps.\nLogic Simulation: Mentally execute your planned code/actions. Identify missing dependencies or potential failure states.\nStructural Strategy: Ensure your approach adheres to good folder structures, modularity, and clean code practices.\nRULES:\n- NO HEADINGS/MARKERS. Maintain a fluid monologue style.\n- Be detailed and rigorous in self-correction.\n- Focus heavily on technical correctness, clean abstractions, and edge-case prevention.\n- MANDATORY THINKING: You MUST enter reasoning to verify the path forward, even for greeting.",
1042
+ Medium: "EFFORT_LEVEL: MEDIUM\nThink in a concise, stable monologue within the <think>...</think> block. Focus on the core logic required to solve the task efficiently:\nDirect Path Identification: Determine the most straightforward solution that meets the requirements.\nSanity Check: Briefly review the chosen approach against obvious anti-patterns or missing imports.\nExecution Readiness: Outline the exact files and functions to modify.\nRULES:\n- NO HEADINGS/MARKERS. Keep it as a simple, logical stream.\n- Be efficient but deliberate. Spend energy primarily on actionable steps.\n- MANDATORY THINKING: Engage in a baseline mental check for all technical tasks, even for greeting",
1043
+ Minimal: "EFFORT_LEVEL: LOW\nThink in a brief, focused monologue within the <think>...</think> block. Just a quick mental check before acting:\nIntent Verification: Confirm what the user is asking.\nAction Mapping: Note the specific tool or file to target.\nRULES:\n- NO HEADINGS/MARKERS. Keep it to a few lines of clear, linear thought.\n- Use minimal thinking suitable for simple or conversational requests, even for greetings.",
1044
1044
  Off: "EFFORT_LEVEL: FAST\nNo internal thinking required. Respond directly"
1045
1045
  };
1046
1046
  }
@@ -5088,7 +5088,7 @@ function ResumeModal({ onSelect, onDelete, onClose }) {
5088
5088
  }
5089
5089
  }
5090
5090
  const visibleKeys = keys.slice(startIndex, startIndex + MAX_VISIBLE);
5091
- return /* @__PURE__ */ React7.createElement(Box7, { flexDirection: "column", borderStyle: "round", borderColor: "gray", padding: 0, width: 95 }, /* @__PURE__ */ React7.createElement(Box7, { paddingX: 1, marginBottom: 1 }, /* @__PURE__ */ React7.createElement(Text7, { color: "cyan", bold: true }, "\u{1F4A0} CHAT HISTORY: RESUME CONVERSATION")), keys.length === 0 ? /* @__PURE__ */ React7.createElement(Box7, { paddingX: 2, paddingY: 1 }, /* @__PURE__ */ React7.createElement(Text7, { italic: true, color: "gray" }, "No saved chats found.")) : /* @__PURE__ */ React7.createElement(Box7, { flexDirection: "column", width: "100%" }, startIndex > 0 && /* @__PURE__ */ React7.createElement(Box7, { paddingX: 2, marginBottom: 1 }, /* @__PURE__ */ React7.createElement(Text7, { color: "gray", dimColor: true }, "\u25B2 (+", startIndex, " more chats above)")), visibleKeys.map((id, index) => {
5091
+ return /* @__PURE__ */ React7.createElement(Box7, { flexDirection: "column", borderStyle: "round", borderColor: "gray", padding: 0, width: "100%" }, /* @__PURE__ */ React7.createElement(Box7, { paddingX: 1, marginBottom: 1 }, /* @__PURE__ */ React7.createElement(Text7, { color: "cyan", bold: true }, "\u{1F4A0} CHAT HISTORY: RESUME CONVERSATION")), keys.length === 0 ? /* @__PURE__ */ React7.createElement(Box7, { paddingX: 2, paddingY: 1 }, /* @__PURE__ */ React7.createElement(Text7, { italic: true, color: "gray" }, "No saved chats found.")) : /* @__PURE__ */ React7.createElement(Box7, { flexDirection: "column", width: "100%" }, startIndex > 0 && /* @__PURE__ */ React7.createElement(Box7, { paddingX: 2, marginBottom: 1 }, /* @__PURE__ */ React7.createElement(Text7, { color: "gray", dimColor: true }, "\u25B2 (+", startIndex, " more chats above)")), visibleKeys.map((id, index) => {
5092
5092
  const chat2 = history[id];
5093
5093
  const actualIndex = startIndex + index;
5094
5094
  const isSelected = actualIndex === selectedIndex;
@@ -5187,7 +5187,7 @@ function MemoryModal({ onClose }) {
5187
5187
  return "red";
5188
5188
  };
5189
5189
  const s = emojiSpace(2);
5190
- return /* @__PURE__ */ React8.createElement(Box8, { flexDirection: "column", borderStyle: "round", borderColor: "gray", padding: 0, width: 80 }, /* @__PURE__ */ React8.createElement(Box8, { paddingX: 1, marginBottom: 1, justifyContent: "space-between" }, /* @__PURE__ */ React8.createElement(Text8, { color: "cyan", bold: true }, "\u{1F9E0} AGENT MEMORY: LONG-TERM KNOWLEDGE"), /* @__PURE__ */ React8.createElement(Box8, null, /* @__PURE__ */ React8.createElement(Text8, { color: "gray" }, "Vault: "), /* @__PURE__ */ React8.createElement(Text8, { color: getBarColor() }, barStr), /* @__PURE__ */ React8.createElement(Text8, { color: "white", bold: true }, " ", usagePercent, "%"))), !isMemoryOn && memories.length > 0 ? /* @__PURE__ */ React8.createElement(Box8, { paddingX: 2, paddingY: 1 }, /* @__PURE__ */ React8.createElement(Text8, { italic: true, color: "gray" }, "Memory is currently Off...")) : memories.length === 0 ? /* @__PURE__ */ React8.createElement(Box8, { paddingX: 2, paddingY: 1 }, /* @__PURE__ */ React8.createElement(Text8, { italic: true, color: "gray" }, isMemoryOn ? "Learning..." : "Memory not available...")) : /* @__PURE__ */ React8.createElement(Box8, { flexDirection: "column" }, memories.map((mem, idx) => {
5190
+ return /* @__PURE__ */ React8.createElement(Box8, { flexDirection: "column", borderStyle: "round", borderColor: "gray", padding: 0, width: "100%" }, /* @__PURE__ */ React8.createElement(Box8, { paddingX: 1, marginBottom: 1, justifyContent: "space-between" }, /* @__PURE__ */ React8.createElement(Text8, { color: "cyan", bold: true }, "\u{1F9E0} AGENT MEMORY: LONG-TERM KNOWLEDGE"), /* @__PURE__ */ React8.createElement(Box8, null, /* @__PURE__ */ React8.createElement(Text8, { color: "gray" }, "Vault: "), /* @__PURE__ */ React8.createElement(Text8, { color: getBarColor() }, barStr), /* @__PURE__ */ React8.createElement(Text8, { color: "white", bold: true }, " ", usagePercent, "%"))), !isMemoryOn && memories.length > 0 ? /* @__PURE__ */ React8.createElement(Box8, { paddingX: 2, paddingY: 1 }, /* @__PURE__ */ React8.createElement(Text8, { italic: true, color: "gray" }, "Memory is currently Off...")) : memories.length === 0 ? /* @__PURE__ */ React8.createElement(Box8, { paddingX: 2, paddingY: 1 }, /* @__PURE__ */ React8.createElement(Text8, { italic: true, color: "gray" }, isMemoryOn ? "Learning..." : "Memory not available...")) : /* @__PURE__ */ React8.createElement(Box8, { flexDirection: "column" }, memories.map((mem, idx) => {
5191
5191
  const isSelected = idx === selectedIndex;
5192
5192
  return /* @__PURE__ */ React8.createElement(
5193
5193
  Box8,
@@ -5312,7 +5312,7 @@ function RevertModal({ prompts, onSelect, onClose }) {
5312
5312
  }
5313
5313
  }
5314
5314
  const visiblePrompts = prompts.slice(startIndex, startIndex + MAX_VISIBLE);
5315
- return /* @__PURE__ */ React10.createElement(Box10, { flexDirection: "column", borderStyle: "round", borderColor: "cyan", padding: 0, width: 95 }, /* @__PURE__ */ React10.createElement(Box10, { paddingX: 1, marginBottom: 1 }, /* @__PURE__ */ React10.createElement(Text10, { color: "cyan", bold: true }, "\u{1F504} CODEBASE TIME TRAVEL: SELECT UNDO POINT")), /* @__PURE__ */ React10.createElement(Box10, { paddingX: 2, marginBottom: 1 }, /* @__PURE__ */ React10.createElement(Text10, null, "Select a prompt to revert the codebase back to the state ", /* @__PURE__ */ React10.createElement(Text10, { bold: true, color: "blue" }, "immediately before"), " it was executed:")), prompts.length === 0 ? /* @__PURE__ */ React10.createElement(Box10, { paddingX: 2, paddingY: 1 }, /* @__PURE__ */ React10.createElement(Text10, { italic: true, color: "gray" }, "No prompt checkpoints found for this session.")) : /* @__PURE__ */ React10.createElement(Box10, { flexDirection: "column", width: "100%" }, startIndex > 0 && /* @__PURE__ */ React10.createElement(Box10, { paddingX: 2, marginBottom: 1 }, /* @__PURE__ */ React10.createElement(Text10, { color: "gray", dimColor: true }, "\u25B2 (+", startIndex, " more prompts above)")), visiblePrompts.map((p, index) => {
5315
+ return /* @__PURE__ */ React10.createElement(Box10, { flexDirection: "column", borderStyle: "round", borderColor: "cyan", padding: 0, width: "100%" }, /* @__PURE__ */ React10.createElement(Box10, { paddingX: 1, marginBottom: 1 }, /* @__PURE__ */ React10.createElement(Text10, { color: "cyan", bold: true }, "\u{1F504} CODEBASE TIME TRAVEL: SELECT UNDO POINT")), /* @__PURE__ */ React10.createElement(Box10, { paddingX: 2, marginBottom: 1 }, /* @__PURE__ */ React10.createElement(Text10, null, "Select a prompt to revert the codebase back to the state ", /* @__PURE__ */ React10.createElement(Text10, { bold: true, color: "blue" }, "immediately before"), " it was executed:")), prompts.length === 0 ? /* @__PURE__ */ React10.createElement(Box10, { paddingX: 2, paddingY: 1 }, /* @__PURE__ */ React10.createElement(Text10, { italic: true, color: "gray" }, "No prompt checkpoints found for this session.")) : /* @__PURE__ */ React10.createElement(Box10, { flexDirection: "column", width: "100%" }, startIndex > 0 && /* @__PURE__ */ React10.createElement(Box10, { paddingX: 2, marginBottom: 1 }, /* @__PURE__ */ React10.createElement(Text10, { color: "gray", dimColor: true }, "\u25B2 (+", startIndex, " more prompts above)")), visiblePrompts.map((p, index) => {
5316
5316
  const actualIndex = startIndex + index;
5317
5317
  const isSelected = actualIndex === selectedIndex;
5318
5318
  const dateStr = formatDate2(p.timestamp);
@@ -5345,8 +5345,8 @@ function formatPromptPreview(prompt) {
5345
5345
  if (!prompt) return "";
5346
5346
  const firstLine = prompt.split("\n")[0] || "";
5347
5347
  const words = firstLine.split(/\s+/).filter(Boolean);
5348
- if (words.length > 50) {
5349
- return words.slice(0, 50).join(" ") + "...";
5348
+ if (words.length > 25) {
5349
+ return words.slice(0, 25).join(" ") + "...";
5350
5350
  }
5351
5351
  if (prompt.includes("\n")) {
5352
5352
  return firstLine + "...";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fluxflow-cli",
3
- "version": "1.14.2",
3
+ "version": "1.14.4",
4
4
  "date": "2026-05-25",
5
5
  "description": "A high-fidelity agentic terminal assistant for the Flux Era.",
6
6
  "keywords": [