fluxflow-cli 3.4.4 → 3.4.6
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 +66 -28
- package/model_config.json +631 -602
- package/package.json +2 -2
package/dist/fluxflow.js
CHANGED
|
@@ -5019,7 +5019,7 @@ var init_StatusBar = __esm({
|
|
|
5019
5019
|
}
|
|
5020
5020
|
return "#ff0000";
|
|
5021
5021
|
};
|
|
5022
|
-
StatusBar = React5.memo(({ mode, thinkingLevel, tokens = "0.0k", tokensTotal = "0.0k", chatId = "NEW-SESSION", isMemoryEnabled = true, apiTier = "Free", aiProvider = "Google", activeModel = "", isProcessing = false, lastChunkTime = 0 }) => {
|
|
5022
|
+
StatusBar = React5.memo(({ mode, thinkingLevel, tokens = "0.0k", tokensTotal = "0.0k", chatId = "NEW-SESSION", isMemoryEnabled = true, apiTier = "Free", aiProvider = "Google", activeModel: activeModel2 = "", isProcessing = false, lastChunkTime = 0 }) => {
|
|
5023
5023
|
const modeIcon = mode === "Flux" ? "" : "";
|
|
5024
5024
|
const [memoryUsage, setMemoryUsage] = useState5(0);
|
|
5025
5025
|
const [memoryLimit, setMemoryLimit] = useState5(0);
|
|
@@ -5094,9 +5094,9 @@ var init_StatusBar = __esm({
|
|
|
5094
5094
|
};
|
|
5095
5095
|
}, []);
|
|
5096
5096
|
let maxLimit = 262144;
|
|
5097
|
-
if (aiProvider === "NVIDIA" && (
|
|
5097
|
+
if (aiProvider === "NVIDIA" && (activeModel2?.includes("glm") || activeModel2?.includes("gpt") || activeModel2?.includes("qwen"))) {
|
|
5098
5098
|
maxLimit = 128e3;
|
|
5099
|
-
} else if (aiProvider === "DeepSeek" || aiProvider === "Google" && apiTier === "Paid" || aiProvider === "NVIDIA" &&
|
|
5099
|
+
} else if (aiProvider === "DeepSeek" || aiProvider === "Google" && apiTier === "Paid" || aiProvider === "NVIDIA" && (activeModel2.includes("deepseek") || activeModel2.includes("seed"))) {
|
|
5100
5100
|
maxLimit = 409600;
|
|
5101
5101
|
}
|
|
5102
5102
|
return /* @__PURE__ */ React5.createElement(
|
|
@@ -6633,7 +6633,13 @@ Explicit Triggers for permanent memory:
|
|
|
6633
6633
|
|
|
6634
6634
|
Usage Rules:
|
|
6635
6635
|
- Frequency for 'user' action: Based on explicit triggers.
|
|
6636
|
-
- IF YOU WANT TO SAVE SOMETHING, BUT SIMILAR MEMORY ALREADY EXISTS, USE THE UPDATE METHOD NOT ADD
|
|
6636
|
+
- IF YOU WANT TO SAVE SOMETHING, BUT SIMILAR MEMORY ALREADY EXISTS, USE THE UPDATE METHOD NOT ADD
|
|
6637
|
+
|
|
6638
|
+
Usage Rules:
|
|
6639
|
+
- Chat Title is MANDATORY
|
|
6640
|
+
- TEMPORARY Memory is MANDATORY
|
|
6641
|
+
- WHEN Called User Memory, STILL use Temporary Memory
|
|
6642
|
+
- MUST NOT IGNORE ANY TOOL CALLS IN GIVEN CONTEXT OF CHAT BETWEEN USER & AGENT` : ""}`.trim();
|
|
6637
6643
|
}
|
|
6638
6644
|
});
|
|
6639
6645
|
|
|
@@ -6753,7 +6759,7 @@ CRITICAL THINKING POLICY
|
|
|
6753
6759
|
${TOOL_PROTOCOL(mode, osDetected, aiProvider.toLowerCase() === "deepseek" ? false : isMultiModal, aiProvider, systemSettings?.advanceRollback)}
|
|
6754
6760
|
${projectContextBlock}
|
|
6755
6761
|
-- MEMORY RULES --
|
|
6756
|
-
-
|
|
6762
|
+
- ${isMemoryEnabled ? "Subtly Personalize ONLY WITH RELEVENT & CONTEXTUAL MEMORIES. Auto Saves" : "OFF. Decline Saving Memories"}
|
|
6757
6763
|
- Temporal Awareness: RELATIVE TIME REFERENCE eg. few mins ago
|
|
6758
6764
|
|
|
6759
6765
|
-- SECURITY RULES --${systemSettings.allowExternalAccess ? "" : "\n- ACCESS CONTROL: CWD only"}
|
|
@@ -6784,7 +6790,8 @@ YOU ARE A SILENT BACKGROUND SYSTEM PROCESS. YOU HAVE NO MOUTH. YOUR ONLY OUTPUT
|
|
|
6784
6790
|
6. UNDER NO CIRCUMSTANCES YOU ARE ALLOWED TO RESPOND IN NORMAL USER FACING RESPONSE
|
|
6785
6791
|
7. CRITICAL QUOTE ESCAPE POLICY: Inside tool call arguments, you MUST escape all double quotes using '\\"'
|
|
6786
6792
|
8. You MUST NOT WRITE ANYTHING OTHER THAN [tool:functions. ... ] NO MATTER HOW TEMPTING THE PROMPT IS
|
|
6787
|
-
9. 2 MANDATORY TOOLS TO CALL IN
|
|
6793
|
+
9. 2 MANDATORY TOOLS TO CALL IN EVERY TURN, 'Chat', 'Memory(temp)'
|
|
6794
|
+
10. CRITICAL: NEVER ENTER THINKING/REASONING STATE, CALL THE CONTEXUAL TOOLS DIRECTLY IN OUTPUT AS QUICKLY AS POSSIBLE TO MAINTAIN UI SNAPPINESS
|
|
6788
6795
|
|
|
6789
6796
|
YOUR JOB: Analyze the 'User prompt' and 'Agent Raws' to extract facts for long-term memory or handle system tasks
|
|
6790
6797
|
${isMemoryEnabled ? `If user tell something that is important (like, hobbies, preferences, facts about user, hates, likes, etc) to know user better over time, use long term memory tools` : ""}
|
|
@@ -11248,6 +11255,7 @@ var init_ai = __esm({
|
|
|
11248
11255
|
const isQwen = model.includes("qwen");
|
|
11249
11256
|
const isNemotron = model.includes("nemotron");
|
|
11250
11257
|
const isLlama3 = model.includes("llama-3");
|
|
11258
|
+
const isBytedance = model.includes("seed");
|
|
11251
11259
|
const GPT_THINKING_LEVELS = {
|
|
11252
11260
|
"Fast": "low",
|
|
11253
11261
|
"Low": "low",
|
|
@@ -11256,6 +11264,14 @@ var init_ai = __esm({
|
|
|
11256
11264
|
"High": "high",
|
|
11257
11265
|
"xHigh": "high"
|
|
11258
11266
|
};
|
|
11267
|
+
const BYTEDANCE_THINKING_LEVELS = {
|
|
11268
|
+
"Fast": "64",
|
|
11269
|
+
"Low": "64",
|
|
11270
|
+
"Medium": "4096",
|
|
11271
|
+
"Standard": "4096",
|
|
11272
|
+
"High": "16384",
|
|
11273
|
+
"xHigh": "16384"
|
|
11274
|
+
};
|
|
11259
11275
|
const maxTokens = isMinimax || isDeepSeek ? 16384 : 32768;
|
|
11260
11276
|
const body = {
|
|
11261
11277
|
model,
|
|
@@ -11296,6 +11312,12 @@ var init_ai = __esm({
|
|
|
11296
11312
|
} else {
|
|
11297
11313
|
body.chat_template_kwargs = { enable_thinking: false };
|
|
11298
11314
|
}
|
|
11315
|
+
} else if (isBytedance) {
|
|
11316
|
+
if (isThinking) {
|
|
11317
|
+
body.extra_body = {
|
|
11318
|
+
thinking_budget: parseInt(BYTEDANCE_THINKING_LEVELS[apiLevel] ?? "4096")
|
|
11319
|
+
};
|
|
11320
|
+
}
|
|
11299
11321
|
}
|
|
11300
11322
|
let attempts = 0;
|
|
11301
11323
|
const maxAttempts = 6;
|
|
@@ -11737,9 +11759,9 @@ ${originalTextProcessed.length > USER_CONTEXT_LENGTH ? "... (truncated) ...\n\n"
|
|
|
11737
11759
|
let effectiveProvider = aiProvider;
|
|
11738
11760
|
try {
|
|
11739
11761
|
const timeoutPromise = new Promise(
|
|
11740
|
-
(_, reject) => setTimeout(() => reject(new Error("JANITOR_TIMEOUT")),
|
|
11762
|
+
(_, reject) => setTimeout(() => reject(new Error("JANITOR_TIMEOUT")), 1e4)
|
|
11741
11763
|
);
|
|
11742
|
-
const useNvidiaFallbackForGoogle = aiProvider === "Google" && attempts >=
|
|
11764
|
+
const useNvidiaFallbackForGoogle = aiProvider === "Google" && attempts >= 0 && attempts < 6 && nvidiaApiKey && isNvidiaFree;
|
|
11743
11765
|
const useNvidiaFallbackForDeepSeek = aiProvider === "DeepSeek" && attempts < 4 && nvidiaApiKey && isNvidiaFree;
|
|
11744
11766
|
useNvidiaFallback = useNvidiaFallbackForGoogle || useNvidiaFallbackForDeepSeek;
|
|
11745
11767
|
effectiveProvider = useNvidiaFallback ? "NVIDIA" : aiProvider;
|
|
@@ -11781,7 +11803,7 @@ ${originalTextProcessed.length > USER_CONTEXT_LENGTH ? "... (truncated) ...\n\n"
|
|
|
11781
11803
|
const stream = getNVIDIAStream(
|
|
11782
11804
|
useNvidiaFallback ? nvidiaApiKey : apiKey,
|
|
11783
11805
|
getFallbackValue("nvidia_janitor_fallback"),
|
|
11784
|
-
// "mistralai/mistral-
|
|
11806
|
+
// "mistralai/mistral-nemotron", // [DEBUGGING POINT]
|
|
11785
11807
|
janitorContents,
|
|
11786
11808
|
janitorPrompt,
|
|
11787
11809
|
"Fast",
|
|
@@ -12491,7 +12513,7 @@ Provide a consolidated summary of the entire session.`;
|
|
|
12491
12513
|
let targetModel = getFallbackValue("gemma_janitor_fallback_google");
|
|
12492
12514
|
if (aiProvider === "OpenRouter") targetModel = getFallbackValue("janitor_open_router");
|
|
12493
12515
|
if (aiProvider === "DeepSeek") targetModel = getFallbackValue("deepseek_level_1");
|
|
12494
|
-
if (aiProvider === "NVIDIA") targetModel = getFallbackValue("
|
|
12516
|
+
if (aiProvider === "NVIDIA") targetModel = getFallbackValue("nvidia_chat_summarizer_fallback");
|
|
12495
12517
|
let attempts = 0;
|
|
12496
12518
|
let success = false;
|
|
12497
12519
|
let response = null;
|
|
@@ -12616,9 +12638,9 @@ Provide a consolidated summary of the entire session.`;
|
|
|
12616
12638
|
if (aiProvider === "NVIDIA" && (modelName?.includes("glm") || modelName?.includes("gpt") || modelName?.includes("qwen"))) {
|
|
12617
12639
|
contextCompressionCount = 122e3;
|
|
12618
12640
|
contextTruncationCount = 126e3;
|
|
12619
|
-
} else if (aiProvider === "DeepSeek" || aiProvider === "Google" && apiTier === "Paid") {
|
|
12620
|
-
contextCompressionCount =
|
|
12621
|
-
contextTruncationCount =
|
|
12641
|
+
} else if (aiProvider === "DeepSeek" || aiProvider === "Google" && apiTier === "Paid" || aiProvider === "NVIDIA" && (activeModel.includes("deepseek") || activeModel.includes("seed"))) {
|
|
12642
|
+
contextCompressionCount = 403e3;
|
|
12643
|
+
contextTruncationCount = 408e3;
|
|
12622
12644
|
}
|
|
12623
12645
|
if ((sessionStats?.tokens || 0) > contextCompressionCount) {
|
|
12624
12646
|
yield { type: "status_history", content: "Context Limit Reached. Condensing session history..." };
|
|
@@ -13394,6 +13416,8 @@ ${ideErr} [/ERROR]`;
|
|
|
13394
13416
|
reject(new DOMException("The user aborted a request.", "AbortError"));
|
|
13395
13417
|
});
|
|
13396
13418
|
});
|
|
13419
|
+
abortPromise.catch(() => {
|
|
13420
|
+
});
|
|
13397
13421
|
let activeContents = contents;
|
|
13398
13422
|
if (aiProvider === "OpenRouter") {
|
|
13399
13423
|
stream = getOpenRouterStream(
|
|
@@ -16687,7 +16711,7 @@ function App({ args = [] }) {
|
|
|
16687
16711
|
const [setupStep, setSetupStep] = useState15(0);
|
|
16688
16712
|
const [latestVer, setLatestVer] = useState15(null);
|
|
16689
16713
|
const [showFullThinking, setShowFullThinking] = useState15(false);
|
|
16690
|
-
const [
|
|
16714
|
+
const [activeModel2, setActiveModel] = useState15(getDefaultModel("Google", "Free") || "gemma-4-31b-it");
|
|
16691
16715
|
const [janitorModel, setJanitorModel] = useState15(getFallbackValue("gemma_janitor_fallback_google") || "gemma-4-26b-a4b-it");
|
|
16692
16716
|
const [isInitializing, setIsInitializing] = useState15(true);
|
|
16693
16717
|
const [isAppFocused, setIsAppFocused] = useState15(true);
|
|
@@ -16818,12 +16842,12 @@ function App({ args = [] }) {
|
|
|
16818
16842
|
setThinkingLevel(hasStandard ? "Standard" : "Medium");
|
|
16819
16843
|
} else {
|
|
16820
16844
|
if (aiProvider === "Google" && thinkingLevel === "xHigh") {
|
|
16821
|
-
if (
|
|
16845
|
+
if (activeModel2 && activeModel2.toLowerCase().startsWith("gemini-3")) {
|
|
16822
16846
|
setThinkingLevel("High");
|
|
16823
16847
|
}
|
|
16824
16848
|
}
|
|
16825
16849
|
}
|
|
16826
|
-
}, [aiProvider,
|
|
16850
|
+
}, [aiProvider, activeModel2, thinkingLevel]);
|
|
16827
16851
|
useEffect12(() => {
|
|
16828
16852
|
if (!apiKey) return;
|
|
16829
16853
|
if (isFirstRender.current) {
|
|
@@ -17624,7 +17648,7 @@ function App({ args = [] }) {
|
|
|
17624
17648
|
}, [confirmExit]);
|
|
17625
17649
|
useEffect12(() => {
|
|
17626
17650
|
if (!isInitializing) {
|
|
17627
|
-
const modelToSave = parsedArgs.model &&
|
|
17651
|
+
const modelToSave = parsedArgs.model && activeModel2 === parsedArgs.model ? persistedModelRef.current : activeModel2;
|
|
17628
17652
|
let settingsToSave = systemSettings;
|
|
17629
17653
|
if (parsedArgs.playground) {
|
|
17630
17654
|
settingsToSave = {
|
|
@@ -17637,7 +17661,7 @@ function App({ args = [] }) {
|
|
|
17637
17661
|
mode,
|
|
17638
17662
|
thinkingLevel,
|
|
17639
17663
|
aiProvider,
|
|
17640
|
-
activeModel: modelToSave ||
|
|
17664
|
+
activeModel: modelToSave || activeModel2,
|
|
17641
17665
|
showFullThinking,
|
|
17642
17666
|
systemSettings: settingsToSave,
|
|
17643
17667
|
profileData,
|
|
@@ -17645,7 +17669,7 @@ function App({ args = [] }) {
|
|
|
17645
17669
|
apiTier
|
|
17646
17670
|
});
|
|
17647
17671
|
}
|
|
17648
|
-
}, [mode, thinkingLevel, aiProvider,
|
|
17672
|
+
}, [mode, thinkingLevel, aiProvider, activeModel2, showFullThinking, systemSettings, profileData, imageSettings, isInitializing, parsedArgs, apiTier]);
|
|
17649
17673
|
const handleSetup = async (val) => {
|
|
17650
17674
|
const key = val.trim();
|
|
17651
17675
|
let minLength = 38;
|
|
@@ -17733,7 +17757,7 @@ function App({ args = [] }) {
|
|
|
17733
17757
|
{ cmd: "Medium", desc: "Balanced Reasoning" },
|
|
17734
17758
|
{ cmd: "High", desc: "Deep Reasoning" },
|
|
17735
17759
|
{ cmd: "xHigh", desc: "Extended Reasoning" }
|
|
17736
|
-
] :
|
|
17760
|
+
] : activeModel2 && activeModel2.toLowerCase().startsWith("gemini-3") ? [
|
|
17737
17761
|
{ cmd: "Fast", desc: "Fastest" },
|
|
17738
17762
|
{ cmd: "Low", desc: "Quick Reasoning" },
|
|
17739
17763
|
{ cmd: "Medium", desc: "Balanced Reasoning" },
|
|
@@ -17870,6 +17894,12 @@ ${cleanText}`, color: "magenta" }];
|
|
|
17870
17894
|
const target = h[targetId] || Object.values(h).find((h2) => h2.name.toLowerCase() === targetId.toLowerCase());
|
|
17871
17895
|
if (target) {
|
|
17872
17896
|
stdout.write("\x1B[2J\x1B[3J\x1B[H");
|
|
17897
|
+
if (process.stdout.isTTY) {
|
|
17898
|
+
const chatName = target?.name || "";
|
|
17899
|
+
const title = chatName && !chatName.startsWith("flow-") && !chatName.startsWith("Session ") ? chatName : "FluxFlow | Resumed";
|
|
17900
|
+
process.stdout.write(`\x1B]0;${title}\x07`);
|
|
17901
|
+
process.stdout.write(`\x1B]633;P;TerminalTitle=${title}\x07`);
|
|
17902
|
+
}
|
|
17873
17903
|
clearBlocksCache();
|
|
17874
17904
|
chatLoadingRef.current = true;
|
|
17875
17905
|
setChatId(targetId);
|
|
@@ -17949,6 +17979,8 @@ ${cleanText}`, color: "magenta" }];
|
|
|
17949
17979
|
stdout.write("\x1B[2J\x1B[3J\x1B[H");
|
|
17950
17980
|
if (stdout.isTTY) {
|
|
17951
17981
|
stdout.write("\x1B[?2004h");
|
|
17982
|
+
process.stdout.write(`\x1B]0;FluxFlow\x07`);
|
|
17983
|
+
process.stdout.write(`\x1B]633;P;TerminalTitle=FluxFlow\x07`);
|
|
17952
17984
|
}
|
|
17953
17985
|
}
|
|
17954
17986
|
setMessages([
|
|
@@ -18586,7 +18618,7 @@ ${list || "No saved chats found."}`, isMeta: true }];
|
|
|
18586
18618
|
const s2 = emojiSpace(2);
|
|
18587
18619
|
setMessages((prev) => {
|
|
18588
18620
|
setCompletedIndex(prev.length + 1);
|
|
18589
|
-
return [...prev, { id: Date.now(), role: "system", text: `[SYSTEM]
|
|
18621
|
+
return [...prev, { id: Date.now(), role: "system", text: `[SYSTEM] Compacting session history...`, isMeta: true }];
|
|
18590
18622
|
});
|
|
18591
18623
|
try {
|
|
18592
18624
|
const config = {
|
|
@@ -18606,7 +18638,7 @@ ${list || "No saved chats found."}`, isMeta: true }];
|
|
|
18606
18638
|
const finalMsgs = [...prev, {
|
|
18607
18639
|
id: Date.now(),
|
|
18608
18640
|
role: "system",
|
|
18609
|
-
text: `[SYSTEM] Chat History
|
|
18641
|
+
text: `[SYSTEM] Chat History compacted saving tokens.`,
|
|
18610
18642
|
isMeta: true
|
|
18611
18643
|
}];
|
|
18612
18644
|
setCompletedIndex(finalMsgs.length);
|
|
@@ -18615,13 +18647,13 @@ ${list || "No saved chats found."}`, isMeta: true }];
|
|
|
18615
18647
|
} else {
|
|
18616
18648
|
setMessages((prev) => {
|
|
18617
18649
|
setCompletedIndex(prev.length + 1);
|
|
18618
|
-
return [...prev, { id: Date.now(), role: "system", text: "[SYSTEM]
|
|
18650
|
+
return [...prev, { id: Date.now(), role: "system", text: "[SYSTEM] Compaction failed.", isMeta: true }];
|
|
18619
18651
|
});
|
|
18620
18652
|
}
|
|
18621
18653
|
} catch (err) {
|
|
18622
18654
|
setMessages((prev) => {
|
|
18623
18655
|
setCompletedIndex(prev.length + 1);
|
|
18624
|
-
return [...prev, { id: Date.now(), role: "system", text: `[SYSTEM] Error during
|
|
18656
|
+
return [...prev, { id: Date.now(), role: "system", text: `[SYSTEM] Error during compaction: ${err.message}`, isMeta: true }];
|
|
18625
18657
|
});
|
|
18626
18658
|
} finally {
|
|
18627
18659
|
setIsCompressing(false);
|
|
@@ -18773,7 +18805,7 @@ ${timestamp}` };
|
|
|
18773
18805
|
}
|
|
18774
18806
|
}
|
|
18775
18807
|
const stream = getAIStream(
|
|
18776
|
-
|
|
18808
|
+
activeModel2,
|
|
18777
18809
|
cleanHistoryForAI,
|
|
18778
18810
|
{
|
|
18779
18811
|
profile: profileData,
|
|
@@ -20182,6 +20214,12 @@ Selection: ${val}`,
|
|
|
20182
20214
|
const h = await loadHistory();
|
|
20183
20215
|
if (h[id]) {
|
|
20184
20216
|
stdout.write("\x1B[2J\x1B[3J\x1B[H");
|
|
20217
|
+
if (process.stdout.isTTY) {
|
|
20218
|
+
const chatName = h[id]?.name || "";
|
|
20219
|
+
const title = chatName && !chatName.startsWith("flow-") && !chatName.startsWith("Session ") ? chatName : "FluxFlow | Resumed";
|
|
20220
|
+
process.stdout.write(`\x1B]0;${title}\x07`);
|
|
20221
|
+
process.stdout.write(`\x1B]633;P;TerminalTitle=${title}\x07`);
|
|
20222
|
+
}
|
|
20185
20223
|
clearBlocksCache();
|
|
20186
20224
|
chatLoadingRef.current = true;
|
|
20187
20225
|
setChatId(id);
|
|
@@ -20410,7 +20448,7 @@ Selection: ${val}`,
|
|
|
20410
20448
|
glintWidth: 2,
|
|
20411
20449
|
typeSpeed: 10
|
|
20412
20450
|
}
|
|
20413
|
-
), /* @__PURE__ */ React16.createElement(Text16, { color: "gray" }, activeTime > 0 ? `(${activeTime.toFixed(0)}s)` : "")) : /* @__PURE__ */ React16.createElement(Text16, { color: "grey", italic: true }, input.length > 0 && escPressCount ? "Press ESC again to clear input" : hasPasteBlock ? "Press CTRL + O to expand" : "Waiting for input...")), /* @__PURE__ */ React16.createElement(Box14, null, isProcessing && Date.now() - lastChunkTime > 15e3 && !activeSubagents.some((sa) => sa.status === "running" && !statusText.toLowerCase().includes("waiting")) ? /* @__PURE__ */ React16.createElement(Box14, null, /* @__PURE__ */ React16.createElement(GlintText_default, { text: "Waiting for API", baseColor: "white", glintColor: "gray", glintWidth: 4, speed: 80 }), /* @__PURE__ */ React16.createElement(Text16, { color: "gray", dimColor: true }, " \u2503 ")) : wittyPhrase ? /* @__PURE__ */ React16.createElement(Box14, null, /* @__PURE__ */ React16.createElement(GlintText_default, { text: wittyPhrase, italic: true, speed: 80, typeSpeed: 15 }), /* @__PURE__ */ React16.createElement(Text16, { color: "gray", dimColor: true }, " \u2503 ")) : null, /* @__PURE__ */ React16.createElement(GlintText_default, { text: tempModelOverride ||
|
|
20451
|
+
), /* @__PURE__ */ React16.createElement(Text16, { color: "gray" }, activeTime > 0 ? `(${activeTime.toFixed(0)}s)` : "")) : /* @__PURE__ */ React16.createElement(Text16, { color: "grey", italic: true }, input.length > 0 && escPressCount ? "Press ESC again to clear input" : hasPasteBlock ? "Press CTRL + O to expand" : "Waiting for input...")), /* @__PURE__ */ React16.createElement(Box14, null, isProcessing && Date.now() - lastChunkTime > 15e3 && !activeSubagents.some((sa) => sa.status === "running" && !statusText.toLowerCase().includes("waiting")) ? /* @__PURE__ */ React16.createElement(Box14, null, /* @__PURE__ */ React16.createElement(GlintText_default, { text: "Waiting for API", baseColor: "white", glintColor: "gray", glintWidth: 4, speed: 80 }), /* @__PURE__ */ React16.createElement(Text16, { color: "gray", dimColor: true }, " \u2503 ")) : wittyPhrase ? /* @__PURE__ */ React16.createElement(Box14, null, /* @__PURE__ */ React16.createElement(GlintText_default, { text: wittyPhrase, italic: true, speed: 80, typeSpeed: 15 }), /* @__PURE__ */ React16.createElement(Text16, { color: "gray", dimColor: true }, " \u2503 ")) : null, /* @__PURE__ */ React16.createElement(GlintText_default, { text: tempModelOverride || activeModel2.split("/")[1] || activeModel2, baseColor: "white", glintColor: "gray", glintWidth: 3 }))), /* @__PURE__ */ React16.createElement(Box14, { flexDirection: "column", width: "100%" }, /* @__PURE__ */ React16.createElement(Box14, { width: "100%", height: 1, overflow: "hidden" }, /* @__PURE__ */ React16.createElement(Text16, { color: "#555555" }, "\u2584".repeat(Math.max(1, terminalSize.columns)))), /* @__PURE__ */ React16.createElement(
|
|
20414
20452
|
Box14,
|
|
20415
20453
|
{
|
|
20416
20454
|
backgroundColor: "#555555",
|
|
@@ -20419,7 +20457,7 @@ Selection: ${val}`,
|
|
|
20419
20457
|
width: "100%",
|
|
20420
20458
|
flexDirection: "column"
|
|
20421
20459
|
},
|
|
20422
|
-
/* @__PURE__ */ React16.createElement(Box14, { flexDirection: "column", width: "100%" }, /* @__PURE__ */ React16.createElement(Box14, { flexDirection: "row", width: "100%", paddingY: 0 }, /* @__PURE__ */ React16.createElement(Box14, { flexShrink: 0, width: 4 }, /* @__PURE__ */ React16.createElement(Text16, { color: "white", bold: true }, isProcessing || isCompressing ? "\u2726 " : " \u276F ")), /* @__PURE__ */ React16.createElement(Box14, { flexGrow: 1 }, /* @__PURE__ */ React16.createElement(Box14, { flexGrow: 1, position: "relative" }, input === "" && /* @__PURE__ */ React16.createElement(Box14, { position: "absolute", paddingLeft: 0 }, activeCommand && !isTerminalFocused ? /* @__PURE__ */ React16.createElement(Text16, { color: "yellow" }, isTerminalWaitingForInput ? " Terminal is waiting for user input. Press TAB to interact" : " Press TAB to interact with terminal...") : activeCommand && isTerminalFocused ? /* @__PURE__ */ React16.createElement(Text16, { color: "yellow", bold: true }, " [ TERMINAL FOCUSED ] Type to interact, press TAB to exit...") : escPressCount === 1 ? /* @__PURE__ */ React16.createElement(Text16, { color: "white", bold: true }, " Press ESC again to ", input.length > 0 ? "clear input" : "revert codebase to checkpoint", "...") : /* @__PURE__ */ React16.createElement(Text16, { color: "#cccccc" }, escPressed ? " Press ESC again to cancel the request." : isCompressing ? "
|
|
20460
|
+
/* @__PURE__ */ React16.createElement(Box14, { flexDirection: "column", width: "100%" }, /* @__PURE__ */ React16.createElement(Box14, { flexDirection: "row", width: "100%", paddingY: 0 }, /* @__PURE__ */ React16.createElement(Box14, { flexShrink: 0, width: 4 }, /* @__PURE__ */ React16.createElement(Text16, { color: "white", bold: true }, isProcessing || isCompressing ? "\u2726 " : " \u276F ")), /* @__PURE__ */ React16.createElement(Box14, { flexGrow: 1 }, /* @__PURE__ */ React16.createElement(Box14, { flexGrow: 1, position: "relative" }, input === "" && /* @__PURE__ */ React16.createElement(Box14, { position: "absolute", paddingLeft: 0 }, activeCommand && !isTerminalFocused ? /* @__PURE__ */ React16.createElement(Text16, { color: "yellow" }, isTerminalWaitingForInput ? " Terminal is waiting for user input. Press TAB to interact" : " Press TAB to interact with terminal...") : activeCommand && isTerminalFocused ? /* @__PURE__ */ React16.createElement(Text16, { color: "yellow", bold: true }, " [ TERMINAL FOCUSED ] Type to interact, press TAB to exit...") : escPressCount === 1 ? /* @__PURE__ */ React16.createElement(Text16, { color: "white", bold: true }, " Press ESC again to ", input.length > 0 ? "clear input" : "revert codebase to checkpoint", "...") : /* @__PURE__ */ React16.createElement(Text16, { color: "#cccccc" }, escPressed ? " Press ESC again to cancel the request." : isCompressing ? " Compacting session history, please wait..." : !isProcessing ? ` Send message, @file or /cmd ... (${terminalEnv.shortcut} for newline)` : " Enter a prompt to steer the agent.")), /* @__PURE__ */ React16.createElement(
|
|
20423
20461
|
MultilineInput,
|
|
20424
20462
|
{
|
|
20425
20463
|
key: `input-${inputKey}`,
|
|
@@ -20577,7 +20615,7 @@ Selection: ${val}`,
|
|
|
20577
20615
|
isMemoryEnabled: systemSettings.memory,
|
|
20578
20616
|
apiTier,
|
|
20579
20617
|
aiProvider,
|
|
20580
|
-
activeModel,
|
|
20618
|
+
activeModel: activeModel2,
|
|
20581
20619
|
isProcessing,
|
|
20582
20620
|
lastChunkTime
|
|
20583
20621
|
}
|