fluxflow-cli 1.7.8 → 1.7.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 +17 -5
  2. package/package.json +1 -1
package/dist/fluxflow.js CHANGED
@@ -301,11 +301,15 @@ var init_ChatLayout = __esm({
301
301
  });
302
302
  MessageItem = React2.memo(({ msg, showFullThinking, columns = 80 }) => {
303
303
  const isDiffResult = msg.role === "system" && msg.text?.includes("[DIFF_START]");
304
+ const isPatchError = msg.role === "system" && msg.text?.includes("[TOOL_RESULT]: ERROR:") && (msg.toolName === "update_file" || msg.text?.includes("Could not find exact match"));
304
305
  const isTerminalRecord = msg.isTerminalRecord;
305
306
  if (msg.isVisualFeedback) {
306
307
  return /* @__PURE__ */ React2.createElement(Box2, { marginBottom: 1, paddingX: 1, width: "100%" }, /* @__PURE__ */ React2.createElement(Text2, { color: "white" }, msg.text));
307
308
  }
308
- if (msg.role === "system" && msg.text?.includes("[TOOL_RESULT]") && !isDiffResult && !isTerminalRecord) return null;
309
+ if (isPatchError) {
310
+ return /* @__PURE__ */ React2.createElement(Box2, { marginBottom: 1 }, /* @__PURE__ */ React2.createElement(Box2, { flexDirection: "column", borderStyle: "round", borderColor: "red", paddingX: 1, paddingY: 0 }, /* @__PURE__ */ React2.createElement(Text2, { color: "red", bold: true, underline: true }, "\u274C PATCH FAILED"), /* @__PURE__ */ React2.createElement(Box2, { marginTop: 1 }, /* @__PURE__ */ React2.createElement(Text2, { color: "red" }, "Patch failed: ", /* @__PURE__ */ React2.createElement(Text2, { color: "white", bold: true }, "Model generated malformed edit.")))));
311
+ }
312
+ if (msg.role === "system" && msg.text?.includes("[TOOL_RESULT]") && !isDiffResult && !isTerminalRecord && !isPatchError) return null;
309
313
  if (msg.isAskRecord) {
310
314
  const selectionMatch = msg.text.match(/Selection: (.*)/);
311
315
  const selection = selectionMatch ? selectionMatch[1] : "No selection";
@@ -2499,7 +2503,13 @@ USER_PROMPT: ${agentText}`.trim();
2499
2503
  let toolResults = [];
2500
2504
  const shouldContinue = toolCalls.length > 0;
2501
2505
  if (toolCalls.length > 0) {
2506
+ let toolIdx = 0;
2502
2507
  for (const toolCall of toolCalls) {
2508
+ if (toolIdx > 0) {
2509
+ yield { type: "status", content: `Preparing next tool (${toolCall.toolName})...` };
2510
+ await new Promise((resolve) => setTimeout(resolve, 3e3));
2511
+ }
2512
+ toolIdx++;
2503
2513
  yield { type: "turn_reset", content: true };
2504
2514
  yield { type: "status", content: `Working (${toolCall.toolName})...` };
2505
2515
  let label = "";
@@ -2678,8 +2688,9 @@ ${boxBottom}
2678
2688
  type: "tool_result",
2679
2689
  content: uiContent,
2680
2690
  aiContent,
2681
- binaryPart
2691
+ binaryPart,
2682
2692
  // Multi-modal stage (v1.5.0)
2693
+ toolName: toolCall.toolName
2683
2694
  };
2684
2695
  if (toolCall.toolName === "memory" && result.includes("SUCCESS")) {
2685
2696
  yield { type: "memory_updated" };
@@ -3925,8 +3936,9 @@ Selection: ${val}`,
3925
3936
  text: packet.content,
3926
3937
  fullText: packet.aiContent,
3927
3938
  // Preserve raw data for next turn
3928
- binaryPart: packet.binaryPart
3939
+ binaryPart: packet.binaryPart,
3929
3940
  // v1.5.0 Multimodal Support
3941
+ toolName: packet.toolName
3930
3942
  }]);
3931
3943
  continue;
3932
3944
  }
@@ -4673,8 +4685,8 @@ var init_app = __esm({
4673
4685
  init_setup();
4674
4686
  SESSION_START_TIME = Date.now();
4675
4687
  CHANGELOG_URL = "https://fluxflow-cli.onrender.com/changelog.html";
4676
- versionFluxflow = "1.7.8";
4677
- updatedOn = "2026-05-03";
4688
+ versionFluxflow = "1.7.10";
4689
+ updatedOn = "2026-05-04";
4678
4690
  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 (turn: finish) 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(
4679
4691
  CommandMenu,
4680
4692
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fluxflow-cli",
3
- "version": "1.7.8",
3
+ "version": "1.7.10",
4
4
  "description": "A high-fidelity agentic terminal assistant for the Flux Era.",
5
5
  "keywords": [
6
6
  "ai",