fluxflow-cli 1.7.7 → 1.7.9

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 +24 -4
  2. package/package.json +1 -1
package/dist/fluxflow.js CHANGED
@@ -2380,6 +2380,9 @@ USER_PROMPT: ${agentText}`.trim();
2380
2380
  }
2381
2381
  });
2382
2382
  for (let loop = 0; loop < MAX_LOOPS; loop++) {
2383
+ if (loop > 0) {
2384
+ yield { type: "status", content: "Processed. Reconnecting..." };
2385
+ }
2383
2386
  if (TERMINATION_SIGNAL) {
2384
2387
  yield { type: "status", content: "Termination Signal Received." };
2385
2388
  break;
@@ -2458,12 +2461,14 @@ USER_PROMPT: ${agentText}`.trim();
2458
2461
  }
2459
2462
  let turnText = "";
2460
2463
  let lastToolSniffed = null;
2464
+ let lastToolEventTime = null;
2461
2465
  for await (const chunk of stream) {
2462
2466
  if (TERMINATION_SIGNAL) break;
2463
2467
  if (chunk.text) {
2464
2468
  turnText += chunk.text;
2465
2469
  yield { type: "text", content: chunk.text };
2466
2470
  if (turnText.includes("tool:functions.")) {
2471
+ if (!lastToolEventTime) lastToolEventTime = Date.now();
2467
2472
  const parts = turnText.split("tool:functions.");
2468
2473
  const potentialTool = parts[parts.length - 1].split("(")[0].trim();
2469
2474
  if (potentialTool && /^[a-z_]+$/.test(potentialTool) && potentialTool !== lastToolSniffed) {
@@ -2494,7 +2499,13 @@ USER_PROMPT: ${agentText}`.trim();
2494
2499
  let toolResults = [];
2495
2500
  const shouldContinue = toolCalls.length > 0;
2496
2501
  if (toolCalls.length > 0) {
2502
+ let toolIdx = 0;
2497
2503
  for (const toolCall of toolCalls) {
2504
+ if (toolIdx > 0) {
2505
+ yield { type: "status", content: `Preparing next tool (${toolCall.toolName})...` };
2506
+ await new Promise((resolve) => setTimeout(resolve, 3e3));
2507
+ }
2508
+ toolIdx++;
2498
2509
  yield { type: "turn_reset", content: true };
2499
2510
  yield { type: "status", content: `Working (${toolCall.toolName})...` };
2500
2511
  let label = "";
@@ -2623,7 +2634,7 @@ ${boxBottom}
2623
2634
  }
2624
2635
  }
2625
2636
  }
2626
- const toolStart = Date.now();
2637
+ const effectiveStart = lastToolEventTime || Date.now();
2627
2638
  let result = await dispatchTool(toolCall.toolName, toolCall.args, {
2628
2639
  chatId,
2629
2640
  history,
@@ -2631,7 +2642,8 @@ ${boxBottom}
2631
2642
  onAskUser: settings.onAskUser
2632
2643
  });
2633
2644
  const toolEnd = Date.now();
2634
- yield { type: "tool_time", content: toolEnd - toolStart };
2645
+ yield { type: "tool_time", content: toolEnd - effectiveStart };
2646
+ lastToolEventTime = toolEnd;
2635
2647
  let binaryPart = null;
2636
2648
  if (typeof result === "object" && result.binaryPart) {
2637
2649
  binaryPart = result.binaryPart;
@@ -3470,6 +3482,14 @@ Check what's new using \`/changelog\` command.`,
3470
3482
  if (!absoluteClean.trim()) return;
3471
3483
  if (isProcessing) {
3472
3484
  const hintText = absoluteClean.trim();
3485
+ if (hintText.startsWith("/")) {
3486
+ setMessages((prev) => {
3487
+ setCompletedIndex(prev.length + 1);
3488
+ return [...prev, { id: "hint-err-" + Date.now(), role: "system", text: "\u274C [RESTRICTED] Steering Hints cannot start with /", isMeta: true }];
3489
+ });
3490
+ setInput("");
3491
+ return;
3492
+ }
3473
3493
  setQueuedPrompt(hintText);
3474
3494
  queuedPromptRef.current = hintText;
3475
3495
  setMessages((prev) => {
@@ -4659,8 +4679,8 @@ var init_app = __esm({
4659
4679
  init_setup();
4660
4680
  SESSION_START_TIME = Date.now();
4661
4681
  CHANGELOG_URL = "https://fluxflow-cli.onrender.com/changelog.html";
4662
- versionFluxflow = "1.7.7";
4663
- updatedOn = "2026-05-03";
4682
+ versionFluxflow = "1.7.9";
4683
+ updatedOn = "2026-05-04";
4664
4684
  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(
4665
4685
  CommandMenu,
4666
4686
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fluxflow-cli",
3
- "version": "1.7.7",
3
+ "version": "1.7.9",
4
4
  "description": "A high-fidelity agentic terminal assistant for the Flux Era.",
5
5
  "keywords": [
6
6
  "ai",