fluxflow-cli 1.16.2 → 1.16.5
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.
- package/dist/fluxflow.js +13 -13
- package/package.json +1 -1
package/dist/fluxflow.js
CHANGED
|
@@ -732,16 +732,16 @@ function SettingsMenu({
|
|
|
732
732
|
updated.allowExternalAccess = false;
|
|
733
733
|
updated.networkAccess = false;
|
|
734
734
|
updated.autoApproveCommands = "";
|
|
735
|
-
updated.autoDisallowCommands = "rm -rf, rm -f, del /f, rd /s, rmdir /s, format";
|
|
736
|
-
updated.alwaysAskCommands = "";
|
|
735
|
+
updated.autoDisallowCommands = "rm -rf, rm -f, del /f, del /q, rd /s, rmdir /s, format, mkfs, dd if=/dev, shred, srm, Remove-Item -Recurse -Force, Initialize-Disk, Clear-Disk, format c:, flashrom, nvram -c";
|
|
736
|
+
updated.alwaysAskCommands = "killall, pkill, taskkill, shutdown, reboot, init 0, init 6, Stop-Process, Stop-Service, mv /*, move c:\\*, chmod 000, chmod -R 777, chown, icacls, netsh advfirewall, iptables -F, ufw disable, git reset --hard, git clean -fd, npm r, npm uninstall";
|
|
737
737
|
updated.autoApproveGit = false;
|
|
738
738
|
} else if (nextPreset === "Balanced") {
|
|
739
739
|
updated.autoExec = true;
|
|
740
740
|
updated.allowExternalAccess = false;
|
|
741
741
|
updated.networkAccess = true;
|
|
742
|
-
updated.autoApproveCommands = "ls, dir, cat, type, echo, pwd, cd, git status, git log, git diff, help, mkdir, touch, md";
|
|
743
|
-
updated.autoDisallowCommands = "rm -rf, rm -f, del /f, rd /s, rmdir /s, format";
|
|
744
|
-
updated.alwaysAskCommands = "";
|
|
742
|
+
updated.autoApproveCommands = "ls, dir, cat, type, echo, pwd, cd, git status, git log, git diff, git branch, git show, help, mkdir, touch, md, whoami, hostname, ps, Get-Process, date, time";
|
|
743
|
+
updated.autoDisallowCommands = "rm -rf, rm -f, del /f, del /q, rd /s, rmdir /s, format, mkfs, dd if=/dev, shred, srm, Remove-Item -Recurse -Force, Initialize-Disk, Clear-Disk, format c:, flashrom, nvram -c";
|
|
744
|
+
updated.alwaysAskCommands = "killall, pkill, taskkill, Stop-Process, mv /*, move c:\\*, chmod 000, chmod -R 777, chown, icacls, shutdown, reboot, init 0, init 6, git reset --hard, git clean -fd, npm r, npm uninstall";
|
|
745
745
|
updated.autoApproveGit = false;
|
|
746
746
|
} else if (nextPreset === "Autonomous") {
|
|
747
747
|
updated.autoExec = true;
|
|
@@ -749,7 +749,7 @@ function SettingsMenu({
|
|
|
749
749
|
updated.networkAccess = true;
|
|
750
750
|
updated.autoApproveCommands = "";
|
|
751
751
|
updated.autoDisallowCommands = "";
|
|
752
|
-
updated.alwaysAskCommands = "";
|
|
752
|
+
updated.alwaysAskCommands = "rm -rf, rm -f, del /f, del /q, rd /s, rmdir /s, format, mkfs, dd if=/dev, shred, srm, Remove-Item -Recurse -Force, Initialize-Disk, Clear-Disk, format c:, flashrom, nvram -c";
|
|
753
753
|
updated.autoApproveGit = true;
|
|
754
754
|
}
|
|
755
755
|
return updated;
|
|
@@ -915,9 +915,9 @@ var init_SettingsMenu = __esm({
|
|
|
915
915
|
const approve = settings.autoApproveCommands || "";
|
|
916
916
|
const disallow = settings.autoDisallowCommands || "";
|
|
917
917
|
const alwaysAsk = settings.alwaysAskCommands || "";
|
|
918
|
-
const isStrict = settings.autoExec === false && settings.allowExternalAccess === false && settings.networkAccess === false && approve === "" && disallow === "rm -rf, rm -f, del /f, rd /s, rmdir /s, format" && alwaysAsk === "" && settings.autoApproveGit === false;
|
|
919
|
-
const isBalanced = settings.autoExec === true && settings.allowExternalAccess === false && settings.networkAccess !== false && approve === "ls, dir, cat, type, echo, pwd, cd, git status, git log, git diff, help, mkdir, touch, md" && disallow === "rm -rf, rm -f, del /f, rd /s, rmdir /s, format" && alwaysAsk === "" && settings.autoApproveGit === false;
|
|
920
|
-
const isAutonomous = settings.autoExec === true && settings.allowExternalAccess === true && settings.networkAccess !== false && approve === "" && disallow === "" && alwaysAsk === "" && settings.autoApproveGit === true;
|
|
918
|
+
const isStrict = settings.autoExec === false && settings.allowExternalAccess === false && settings.networkAccess === false && approve === "" && disallow === "rm -rf, rm -f, del /f, del /q, rd /s, rmdir /s, format, mkfs, dd if=/dev, shred, srm, Remove-Item -Recurse -Force, Initialize-Disk, Clear-Disk, format c:, flashrom, nvram -c" && alwaysAsk === "killall, pkill, taskkill, shutdown, reboot, init 0, init 6, Stop-Process, Stop-Service, mv /*, move c:\\*, chmod 000, chmod -R 777, chown, icacls, netsh advfirewall, iptables -F, ufw disable, git reset --hard, git clean -fd, npm r, npm uninstall" && settings.autoApproveGit === false;
|
|
919
|
+
const isBalanced = settings.autoExec === true && settings.allowExternalAccess === false && settings.networkAccess !== false && approve === "ls, dir, cat, type, echo, pwd, cd, git status, git log, git diff, git branch, git show, help, mkdir, touch, md, whoami, hostname, ps, Get-Process, date, time" && disallow === "rm -rf, rm -f, del /f, del /q, rd /s, rmdir /s, format, mkfs, dd if=/dev, shred, srm, Remove-Item -Recurse -Force, Initialize-Disk, Clear-Disk, format c:, flashrom, nvram -c" && alwaysAsk === "killall, pkill, taskkill, Stop-Process, mv /*, move c:\\*, chmod 000, chmod -R 777, chown, icacls, shutdown, reboot, init 0, init 6, git reset --hard, git clean -fd, npm r, npm uninstall" && settings.autoApproveGit === false;
|
|
920
|
+
const isAutonomous = settings.autoExec === true && settings.allowExternalAccess === true && settings.networkAccess !== false && approve === "" && disallow === "" && alwaysAsk === "rm -rf, rm -f, del /f, del /q, rd /s, rmdir /s, format, mkfs, dd if=/dev, shred, srm, Remove-Item -Recurse -Force, Initialize-Disk, Clear-Disk, format c:, flashrom, nvram -c" && settings.autoApproveGit === true;
|
|
921
921
|
if (isStrict) return "Strict";
|
|
922
922
|
if (isBalanced) return "Balanced";
|
|
923
923
|
if (isAutonomous) return "Autonomous";
|
|
@@ -925,7 +925,7 @@ var init_SettingsMenu = __esm({
|
|
|
925
925
|
};
|
|
926
926
|
truncateCSV = (val) => {
|
|
927
927
|
if (!val || val.trim() === "") return "None";
|
|
928
|
-
if (val.length >
|
|
928
|
+
if (val.length > 40) return val.substring(0, 40) + "...";
|
|
929
929
|
return val;
|
|
930
930
|
};
|
|
931
931
|
}
|
|
@@ -1275,6 +1275,7 @@ var init_main_tools = __esm({
|
|
|
1275
1275
|
TOOL_PROTOCOL = (mode, osDetected) => `
|
|
1276
1276
|
-- TOOL DEFINITIONS --
|
|
1277
1277
|
Access to internal tools. To call a tool, MUST use the exact syntax on a new line: [tool:functions.ToolName(args)]
|
|
1278
|
+
- **STRICT POLICY: MAX 3 TOOL CALLS PER TURN. Next Turn, verify results and plan next**
|
|
1278
1279
|
|
|
1279
1280
|
- COMMUNICATION TOOLS -
|
|
1280
1281
|
1. [tool:functions.Ask(question="...", optionA="option::description", ...MAX 4)]. Ambiguity Resolution. Mandatory Triggers: Path Divergence, Security, Risk Mitigation. ask >> finish
|
|
@@ -1444,7 +1445,6 @@ ${projectContextBlock}
|
|
|
1444
1445
|
-- RESPONSE RULES --
|
|
1445
1446
|
- End with [turn: continue] to continue or [turn: finish] when task done
|
|
1446
1447
|
- Tool Called? No post tool response until [turn: continue]
|
|
1447
|
-
- **STRICT: MAX 3 TOOL CALL STACK PER TURN**
|
|
1448
1448
|
- Task Complete? End loop with [turn: finish]
|
|
1449
1449
|
[/SYSTEM]`.trim();
|
|
1450
1450
|
};
|
|
@@ -6190,7 +6190,7 @@ function App({ args = [] }) {
|
|
|
6190
6190
|
} else {
|
|
6191
6191
|
setMessages((prev2) => {
|
|
6192
6192
|
setCompletedIndex(prev2.length + 1);
|
|
6193
|
-
return [...prev2, { id: "revert-empty-" + Date.now(), role: "system", text: "\
|
|
6193
|
+
return [...prev2, { id: "revert-empty-" + Date.now(), role: "system", text: "\u{1F6C8} No revert checkpoints found for this session.", isMeta: true }];
|
|
6194
6194
|
});
|
|
6195
6195
|
}
|
|
6196
6196
|
});
|
|
@@ -8023,7 +8023,7 @@ Selection: ${val}`,
|
|
|
8023
8023
|
const agentActiveMs = sessionApiTime + sessionToolTime;
|
|
8024
8024
|
const apiPercent = agentActiveMs > 0 ? (sessionApiTime / agentActiveMs * 100).toFixed(1) : "0.0";
|
|
8025
8025
|
const toolPercent = agentActiveMs > 0 ? (sessionToolTime / agentActiveMs * 100).toFixed(1) : "0.0";
|
|
8026
|
-
return /* @__PURE__ */ React12.createElement(Box12, { flexDirection: "column", borderStyle: "round", paddingX: 3, paddingY: 1, borderColor: "red", width: Math.min(100, (stdout?.columns || 100) - 2), marginTop: 1 }, /* @__PURE__ */ React12.createElement(Box12, { marginBottom: 1 }, /* @__PURE__ */ React12.createElement(Text12, { color: "cyan", bold: true }, "Agent powering down. ", /* @__PURE__ */ React12.createElement(Text12, { color: "magenta" }, "Goodbye!"))), /* @__PURE__ */ React12.createElement(Box12, { flexDirection: "column" }, /* @__PURE__ */ React12.createElement(Text12, { color: "white", bold: true, underline: true }, "Interaction Summary"), /* @__PURE__ */ React12.createElement(Box12, { marginTop: 1 }, /* @__PURE__ */ React12.createElement(Box12, { width: 20 }, /* @__PURE__ */ React12.createElement(Text12, { color: "blue" }, "Session ID:")), /* @__PURE__ */ React12.createElement(Text12, { color: "white" }, chatId)), /* @__PURE__ */ React12.createElement(Box12, null, /* @__PURE__ */ React12.createElement(Box12, { width: 20 }, /* @__PURE__ */ React12.createElement(Text12, { color: "blue" }, "Tool Calls:")), /* @__PURE__ */ React12.createElement(Text12, { color: "white" }, sessionToolSuccess + sessionToolFailure + sessionToolDenied, " ( ", /* @__PURE__ */ React12.createElement(Text12, { color: "green" }, "\u2713 ", sessionToolSuccess), " ", /* @__PURE__ */ React12.createElement(Text12, { color: "yellow" }, "\u2298 ", sessionToolDenied), " ", /* @__PURE__ */ React12.createElement(Text12, { color: "red" }, "\u2715 ", sessionToolFailure), " )")), /* @__PURE__ */ React12.createElement(Box12, null, /* @__PURE__ */ React12.createElement(Box12, { width: 20 }, /* @__PURE__ */ React12.createElement(Text12, { color: "blue" }, "Success Rate:")), /* @__PURE__ */ React12.createElement(Text12, { color: "white" }, successRate, "%")), /* @__PURE__ */ React12.createElement(Box12, null, /* @__PURE__ */ React12.createElement(Box12, { width: 20 }, /* @__PURE__ */ React12.createElement(Text12, { color: "blue" }, "Code Changes:")), /* @__PURE__ */ React12.createElement(Text12, { color: "white" }, /* @__PURE__ */ React12.createElement(Text12, { color: "green" }, "+", linesAdded), " ", /* @__PURE__ */ React12.createElement(Text12, { color: "red" }, "-", linesRemoved))), /* @__PURE__ */ React12.createElement(Box12, null, /* @__PURE__ */ React12.createElement(Box12, { width: 20 }, /* @__PURE__ */ React12.createElement(Text12, { color: "blue" }, "Tokens Consumed:")), /* @__PURE__ */ React12.createElement(Text12, { color: "white" }, formatTokens(sessionTotalTokens))), /* @__PURE__ */ React12.createElement(Box12, null, /* @__PURE__ */ React12.createElement(Box12, { width: 20 }, /* @__PURE__ */ React12.createElement(Text12, { color: "blue" }, "Images Made:")), /* @__PURE__ */ React12.createElement(Text12, { color: "white" }, sessionImageCount || 0)), /* @__PURE__ */ React12.createElement(Box12, null, /* @__PURE__ */ React12.createElement(Box12, { width: 20 }, /* @__PURE__ */ React12.createElement(Text12, { color: "blue" }, "Image Credits:")), /* @__PURE__ */ React12.createElement(Text12, { color: "white" }, Number(((sessionImageCredits || 0) * 1e3).toFixed(0)), " credits"))), /* @__PURE__ */ React12.createElement(Box12, { flexDirection: "column", marginTop: 1 }, /* @__PURE__ */ React12.createElement(Text12, { color: "white", bold: true, underline: true }, "Performance"), /* @__PURE__ */ React12.createElement(Box12, { marginTop: 1 }, /* @__PURE__ */ React12.createElement(Box12, { width: 20 }, /* @__PURE__ */ React12.createElement(Text12, { color: "blue" }, "Wall Time:")), /* @__PURE__ */ React12.createElement(Text12, { color: "white" }, formatMsDuration(wallTimeMs))), /* @__PURE__ */ React12.createElement(Box12, null, /* @__PURE__ */ React12.createElement(Box12, { width: 20 }, /* @__PURE__ */ React12.createElement(Text12, { color: "blue" }, "Agent Active:")), /* @__PURE__ */ React12.createElement(Text12, { color: "white" }, formatMsDuration(agentActiveMs))), /* @__PURE__ */ React12.createElement(Box12, { marginLeft: 2 }, /* @__PURE__ */ React12.createElement(Box12, { width: 18 }, /* @__PURE__ */ React12.createElement(Text12, { color: "blue", dimColor: true }, "\xBB API Time:")), /* @__PURE__ */ React12.createElement(Text12, { color: "white" }, formatMsDuration(sessionApiTime), " (", apiPercent, "%)")), /* @__PURE__ */ React12.createElement(Box12, { marginLeft: 2 }, /* @__PURE__ */ React12.createElement(Box12, { width: 18 }, /* @__PURE__ */ React12.createElement(Text12, { color: "blue", dimColor: true }, "\xBB Tool Time:")), /* @__PURE__ */ React12.createElement(Text12, { color: "white" }, formatMsDuration(sessionToolTime), " (", toolPercent, "%)"))));
|
|
8026
|
+
return /* @__PURE__ */ React12.createElement(Box12, { flexDirection: "column", borderStyle: "round", paddingX: 3, paddingY: 1, borderColor: "red", width: Math.min(100, (stdout?.columns || 100) - 2), marginTop: 0, marginBottom: 1 }, /* @__PURE__ */ React12.createElement(Box12, { marginBottom: 1 }, /* @__PURE__ */ React12.createElement(Text12, { color: "cyan", bold: true }, "Agent powering down. ", /* @__PURE__ */ React12.createElement(Text12, { color: "magenta" }, "Goodbye!"))), /* @__PURE__ */ React12.createElement(Box12, { flexDirection: "column" }, /* @__PURE__ */ React12.createElement(Text12, { color: "white", bold: true, underline: true }, "Interaction Summary"), /* @__PURE__ */ React12.createElement(Box12, { marginTop: 1 }, /* @__PURE__ */ React12.createElement(Box12, { width: 20 }, /* @__PURE__ */ React12.createElement(Text12, { color: "blue" }, "Session ID:")), /* @__PURE__ */ React12.createElement(Text12, { color: "white" }, chatId)), /* @__PURE__ */ React12.createElement(Box12, null, /* @__PURE__ */ React12.createElement(Box12, { width: 20 }, /* @__PURE__ */ React12.createElement(Text12, { color: "blue" }, "Tool Calls:")), /* @__PURE__ */ React12.createElement(Text12, { color: "white" }, sessionToolSuccess + sessionToolFailure + sessionToolDenied, " ( ", /* @__PURE__ */ React12.createElement(Text12, { color: "green" }, "\u2713 ", sessionToolSuccess), " ", /* @__PURE__ */ React12.createElement(Text12, { color: "yellow" }, "\u2298 ", sessionToolDenied), " ", /* @__PURE__ */ React12.createElement(Text12, { color: "red" }, "\u2715 ", sessionToolFailure), " )")), /* @__PURE__ */ React12.createElement(Box12, null, /* @__PURE__ */ React12.createElement(Box12, { width: 20 }, /* @__PURE__ */ React12.createElement(Text12, { color: "blue" }, "Success Rate:")), /* @__PURE__ */ React12.createElement(Text12, { color: "white" }, successRate, "%")), /* @__PURE__ */ React12.createElement(Box12, null, /* @__PURE__ */ React12.createElement(Box12, { width: 20 }, /* @__PURE__ */ React12.createElement(Text12, { color: "blue" }, "Code Changes:")), /* @__PURE__ */ React12.createElement(Text12, { color: "white" }, /* @__PURE__ */ React12.createElement(Text12, { color: "green" }, "+", linesAdded), " ", /* @__PURE__ */ React12.createElement(Text12, { color: "red" }, "-", linesRemoved))), /* @__PURE__ */ React12.createElement(Box12, null, /* @__PURE__ */ React12.createElement(Box12, { width: 20 }, /* @__PURE__ */ React12.createElement(Text12, { color: "blue" }, "Tokens Consumed:")), /* @__PURE__ */ React12.createElement(Text12, { color: "white" }, formatTokens(sessionTotalTokens))), /* @__PURE__ */ React12.createElement(Box12, null, /* @__PURE__ */ React12.createElement(Box12, { width: 20 }, /* @__PURE__ */ React12.createElement(Text12, { color: "blue" }, "Images Made:")), /* @__PURE__ */ React12.createElement(Text12, { color: "white" }, sessionImageCount || 0)), /* @__PURE__ */ React12.createElement(Box12, null, /* @__PURE__ */ React12.createElement(Box12, { width: 20 }, /* @__PURE__ */ React12.createElement(Text12, { color: "blue" }, "Image Credits:")), /* @__PURE__ */ React12.createElement(Text12, { color: "white" }, Number(((sessionImageCredits || 0) * 1e3).toFixed(0)), " credits"))), /* @__PURE__ */ React12.createElement(Box12, { flexDirection: "column", marginTop: 1 }, /* @__PURE__ */ React12.createElement(Text12, { color: "white", bold: true, underline: true }, "Performance"), /* @__PURE__ */ React12.createElement(Box12, { marginTop: 1 }, /* @__PURE__ */ React12.createElement(Box12, { width: 20 }, /* @__PURE__ */ React12.createElement(Text12, { color: "blue" }, "Wall Time:")), /* @__PURE__ */ React12.createElement(Text12, { color: "white" }, formatMsDuration(wallTimeMs))), /* @__PURE__ */ React12.createElement(Box12, null, /* @__PURE__ */ React12.createElement(Box12, { width: 20 }, /* @__PURE__ */ React12.createElement(Text12, { color: "blue" }, "Agent Active:")), /* @__PURE__ */ React12.createElement(Text12, { color: "white" }, formatMsDuration(agentActiveMs))), /* @__PURE__ */ React12.createElement(Box12, { marginLeft: 2 }, /* @__PURE__ */ React12.createElement(Box12, { width: 18 }, /* @__PURE__ */ React12.createElement(Text12, { color: "blue", dimColor: true }, "\xBB API Time:")), /* @__PURE__ */ React12.createElement(Text12, { color: "white" }, formatMsDuration(sessionApiTime), " (", apiPercent, "%)")), /* @__PURE__ */ React12.createElement(Box12, { marginLeft: 2 }, /* @__PURE__ */ React12.createElement(Box12, { width: 18 }, /* @__PURE__ */ React12.createElement(Text12, { color: "blue", dimColor: true }, "\xBB Tool Time:")), /* @__PURE__ */ React12.createElement(Text12, { color: "white" }, formatMsDuration(sessionToolTime), " (", toolPercent, "%)"))));
|
|
8027
8027
|
})(), suggestions.length > 0 && (() => {
|
|
8028
8028
|
const windowSize = 5;
|
|
8029
8029
|
const startIdx = Math.max(0, Math.min(selectedIndex - 2, suggestions.length - windowSize));
|