fluxflow-cli 3.20.1 → 3.20.3
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/README.md +139 -139
- package/dist/fluxflow.js +5 -5
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,139 +1,139 @@
|
|
|
1
|
-
# 🌌 Flux Flow (`fluxflow-cli`)
|
|
2
|
-

|
|
3
|
-
|
|
4
|
-
<p align="left">
|
|
5
|
-
<a href="https://github.com/KushalRoyChowdhury/fluxflow-cli"><img src="https://img.shields.io/badge/FluxFlow-v3-blue?style=plastic" alt="FluxFlow Version"></a>
|
|
6
|
-
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg?style=plastic" alt="License MIT"></a>
|
|
7
|
-
<a href="https://nodejs.org"><img src="https://img.shields.io/badge/Node-%3E%3D20-green?style=plastic" alt="Node Compatibility"></a>
|
|
8
|
-
</p>
|
|
9
|
-
|
|
10
|
-
### *The High-Fidelity Agentic CLI with Sub-Agents for the Flux Era.*
|
|
11
|
-
|
|
12
|
-
📖 **[Official Documentation](https://fluxflow-cli.onrender.com/)**
|
|
13
|
-
|
|
14
|
-
**Flux Flow** is not just another CLI—it's a high-speed, sassy, and goal-oriented CLI AI Agent powered by multi-provider frontier models (Google Gemini, DeepSeek, OpenRouter, and more). Designed for developers who demand a premium UI/UX while managing complex file-system tasks, web research, and autonomous workflows.
|
|
15
|
-
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
## 🚀 Instant Ignition (No Setup Required)
|
|
19
|
-
You don't even need to install it. Just fire up your terminal and run:
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
# Run instantly (Zero Setup)
|
|
23
|
-
npx fluxflow-cli
|
|
24
|
-
|
|
25
|
-
# OR Install Globally
|
|
26
|
-
npm install -g fluxflow-cli
|
|
27
|
-
fluxflow-cli
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
*The agent will prompt you for your API Key on the first run and store it securely in an encrypted vault.*
|
|
31
|
-
|
|
32
|
-
- **Multi-Provider Support**: Choose your preferred engine!
|
|
33
|
-
- **Google GenAI** (Gemini & Gemma models)
|
|
34
|
-
- **DeepSeek** (Deepseek v4 Models)
|
|
35
|
-
- **NVIDIA** (Access to open models)
|
|
36
|
-
- **Ollama** (Local Models / Ollama Cloud Models)
|
|
37
|
-
- **Mistral** (Access to selected models; *Experimental*)
|
|
38
|
-
- **OpenRouter** (Access to hundreds of models; *Experimental*)
|
|
39
|
-
|
|
40
|
-
---
|
|
41
|
-
|
|
42
|
-
## ✨ Why Flux Flow?
|
|
43
|
-
|
|
44
|
-
### 🎨 **Premium Visual Sovereignty**
|
|
45
|
-
Experience a terminal UI that feels alive. Built with **Ink** and **React**, Flux Flow features:
|
|
46
|
-
- **Dynamic Status Bar**: Real-time telemetry showing your "Neural Headroom" (token usage), Thinking Level, and Session ID.
|
|
47
|
-
|
|
48
|
-
### 🔌 **High-Fidelity IDE Companion**
|
|
49
|
-
Flux Flow now pairs with a dedicated VS Code extension to bridge the gap between terminal and editor:
|
|
50
|
-
- **Surgical Diagnostic Sync**: Proactive background scanning for errors. If your project breaks, a "Magic Wand" icon $(\text{sparkle})$ appears in your editor title bar for an instant AI fix.
|
|
51
|
-
- **Live Status Heartbeat**: The VS Code Status Bar acts as a live feed, showing the agent's current task (*Thinking*, *Web Searching*, *Patching*, etc.).
|
|
52
|
-
- **Clickable Terminal Links**: Jump from the terminal output straight to your code with clickable file:line links.
|
|
53
|
-
- **Right-Click Integration**: "FluxFlow > Chat" is available in the editor, explorer, and tab bars, even when no files are open.
|
|
54
|
-
- **Selection-Driven Reasoning**: Select a block of code and ask "What does this do?"—the agent receives your selection instantly.
|
|
55
|
-
- **Universal Compatibility**: Works flawlessly with VS Code, Cursor, VSCodium, Trae, and Antigravity.
|
|
56
|
-
|
|
57
|
-
### 👁️ **Native Multimodality**
|
|
58
|
-
Flux Flow can now see! Use the `view_file` tool to analyze images (JPG, PNG) or deep-dive into PDF technical papers. The agent extracts high-fidelity visual context natively, making it a true multimodal companion.
|
|
59
|
-
|
|
60
|
-
### 📑 **Document Engineering Suite**
|
|
61
|
-
Need a report or a presentation? Just ask. Flux Flow features a high-fidelity "Printing Press" that generates professional, branded documents natively:
|
|
62
|
-
- **PDF**: Branded documents from HTML/CSS with automatic watermarking.
|
|
63
|
-
- **DOCX**: Native Word documents with multi-page support and automatic numbering.
|
|
64
|
-
|
|
65
|
-
### ⏱️ **Codebase Time Travel (Git-less Reversion)**
|
|
66
|
-
Refactor and build with absolute fearlessness. Flux Flow maintains transaction-based secure snapshots of files before they are generated or edited:
|
|
67
|
-
- **Instant Rollback**: Revert your workspace files (source code, generated documents, images) to their exact state prior to any selected prompt in the history.
|
|
68
|
-
- **Double-ESC Shortcut**: Press `ESC` twice while idle to pop open a sleek selection modal.
|
|
69
|
-
- **`/revert` Command**: Run the `/revert` command directly in the chat to open the checkpoint viewer.
|
|
70
|
-
|
|
71
|
-
### 🚑 **Self-Healing Infrastructure**
|
|
72
|
-
Zero setup means zero setup. On first run, Flux Flow performs an integrity check and autonomously installs its own Chromium engine if needed, ensuring features like PDF generation work 100% of the time without manual intervention.
|
|
73
|
-
|
|
74
|
-
- **Archived Terminal Flow**: See execution outputs transform from live elements into permanent conversation records.
|
|
75
|
-
- **Rich Aesthetics**: High-contrast, sleek design with smooth transitions and micro-animations.
|
|
76
|
-
|
|
77
|
-
### 🧠 **The Dual-Intelligence System**
|
|
78
|
-
- **Flux Mode (Dev)**: High-speed, agentic problem solving for massive coding tasks.
|
|
79
|
-
- **Flow Mode (Chat)**: Optimized for high-quality conversation and web-assisted reasoning.
|
|
80
|
-
|
|
81
|
-
### 🛡️ **Digital Fortress Governance**
|
|
82
|
-
Security isn't an afterthought; it's a boundary.
|
|
83
|
-
- **Sandbox Presets**: Choose from **Strict**, **Balanced**, **Autonomous**, or **Custom** security profiles to control agent autonomy.
|
|
84
|
-
- **Granular Command Policies**: Configure Auto-Approve (`Auto` / `Read-Only` / `None`), Auto-Disallow (`Auto` / `Destructive` / `None`), Network Access toggle, and Auto-Approve Git Commits independently.
|
|
85
|
-
- **External Path Hardlock**: Restricts the agent to your Current Working Directory (CWD) unless you explicitly unlock it.
|
|
86
|
-
- **Human-in-the-Loop (HITL)**: Every file write and terminal command requires your high-fidelity approval.
|
|
87
|
-
|
|
88
|
-
### 🧹 **The Background Janitor**
|
|
89
|
-
While you move at high speed, the Janitor follows behind—refining session titles, compressing data, and ensuring your context window remains at absolute peak performance.
|
|
90
|
-
|
|
91
|
-
### 🤖 **Autonomous Subagent System**
|
|
92
|
-
Delegate complex tasks to subagents. Spawns blocking subagents (`invokeSync`) or asynchronous background subagents (`invoke`) with distinct telemetry and silent background logging. Built-in transaction-safe reversion logs all subagent changes under the active turn, preserving rollback security.
|
|
93
|
-
|
|
94
|
-
---
|
|
95
|
-
|
|
96
|
-
## 🛠️ Key Capabilities
|
|
97
|
-
- **Deep File-System Interaction**: Edit, move, and refactor code across multiple files with atomic precision.
|
|
98
|
-
- **Real-Time Web Intelligence**: Autonomous web-searching via DuckDuckGo for live news and technical research.
|
|
99
|
-
- **Autonomous Project Alignment**: Automatically detects and adheres to project-specific instructions in `Agent.md`, `Skills.md`, and `Fluxflow.md` for high-fidelity alignment with your coding standards and custom workflows.
|
|
100
|
-
|
|
101
|
-
- **Persistent Memory**: The agent learns from your preferences and project requirements across sessions.
|
|
102
|
-
|
|
103
|
-
---
|
|
104
|
-
|
|
105
|
-
## 💻 CLI Startup Arguments
|
|
106
|
-
Customize your session parameters directly from your console launch command:
|
|
107
|
-
|
|
108
|
-
```bash
|
|
109
|
-
fluxflow [options]
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
### Supported Flags:
|
|
113
|
-
- `--model <model-name>`: Temporary override for the active AI model (e.g., `gemini-2.5-pro`). Keeps settings file untouched.
|
|
114
|
-
- `--memory <on | off>`: Toggle persistent long-term agent memory for the session.
|
|
115
|
-
- `--resume <session-id>`: Resume a previous chat session programmatically.
|
|
116
|
-
- `--update <check | latest>`: Manually run an update check (`check`) or execute latest update setup (`latest`).
|
|
117
|
-
- `--package <npm | pnpm | yarn | bun>`: Override default package manager to run core application updates.
|
|
118
|
-
- `--auto-del <1d | 7d | 30d>`: Set automated chat log deletion schedule.
|
|
119
|
-
- `--yolo <on | off>`: Toggle autonomous execution permission.
|
|
120
|
-
- `--external-access <on | off>`: Toggle permission to let agent read files outside CWD.
|
|
121
|
-
- `--thinking <Fast | Low | Medium/Standard | High | xHigh>`: Override thinking level for reasoning depth. `Medium` and `Standard` is the same (Deepseek compatibility).
|
|
122
|
-
- `--key <key@google | key@deepseek | key@openrouter>`: Set API key and provider.
|
|
123
|
-
- `--provider <google | deepseek | openrouter>`: Override default provider.
|
|
124
|
-
|
|
125
|
-
---
|
|
126
|
-
|
|
127
|
-
## ⚙️ Configuration
|
|
128
|
-
Type `/settings` in-app to live-configure:
|
|
129
|
-
- **Thinking Level**: Fast (No Reasoning), Low, Medium, High, xHigh (Extended Reasoning).
|
|
130
|
-
- **Sandbox Preset**: Strict, Balanced, Autonomous, or Custom security profiles.
|
|
131
|
-
- **Security Perimeter**: Toggle External Workspace access, Network Access, and Git Commit auto-approval.
|
|
132
|
-
|
|
133
|
-
---
|
|
134
|
-
|
|
135
|
-
## 🏁 License
|
|
136
|
-
MIT © 2026 Flux Flow.
|
|
137
|
-
|
|
138
|
-
---
|
|
139
|
-
*Forged with ⚡ and 🧬. Welcome to the FluxFlow.*
|
|
1
|
+
# 🌌 Flux Flow (`fluxflow-cli`)
|
|
2
|
+

|
|
3
|
+
|
|
4
|
+
<p align="left">
|
|
5
|
+
<a href="https://github.com/KushalRoyChowdhury/fluxflow-cli"><img src="https://img.shields.io/badge/FluxFlow-v3-blue?style=plastic" alt="FluxFlow Version"></a>
|
|
6
|
+
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg?style=plastic" alt="License MIT"></a>
|
|
7
|
+
<a href="https://nodejs.org"><img src="https://img.shields.io/badge/Node-%3E%3D20-green?style=plastic" alt="Node Compatibility"></a>
|
|
8
|
+
</p>
|
|
9
|
+
|
|
10
|
+
### *The High-Fidelity Agentic CLI with Sub-Agents for the Flux Era.*
|
|
11
|
+
|
|
12
|
+
📖 **[Official Documentation](https://fluxflow-cli.onrender.com/)**
|
|
13
|
+
|
|
14
|
+
**Flux Flow** is not just another CLI—it's a high-speed, sassy, and goal-oriented CLI AI Agent powered by multi-provider frontier models (Google Gemini, DeepSeek, OpenRouter, and more). Designed for developers who demand a premium UI/UX while managing complex file-system tasks, web research, and autonomous workflows.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 🚀 Instant Ignition (No Setup Required)
|
|
19
|
+
You don't even need to install it. Just fire up your terminal and run:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
# Run instantly (Zero Setup)
|
|
23
|
+
npx fluxflow-cli
|
|
24
|
+
|
|
25
|
+
# OR Install Globally
|
|
26
|
+
npm install -g fluxflow-cli
|
|
27
|
+
fluxflow-cli
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
*The agent will prompt you for your API Key on the first run and store it securely in an encrypted vault.*
|
|
31
|
+
|
|
32
|
+
- **Multi-Provider Support**: Choose your preferred engine!
|
|
33
|
+
- **Google GenAI** (Gemini & Gemma models)
|
|
34
|
+
- **DeepSeek** (Deepseek v4 Models)
|
|
35
|
+
- **NVIDIA** (Access to open models)
|
|
36
|
+
- **Ollama** (Local Models / Ollama Cloud Models)
|
|
37
|
+
- **Mistral** (Access to selected models; *Experimental*)
|
|
38
|
+
- **OpenRouter** (Access to hundreds of models; *Experimental*)
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## ✨ Why Flux Flow?
|
|
43
|
+
|
|
44
|
+
### 🎨 **Premium Visual Sovereignty**
|
|
45
|
+
Experience a terminal UI that feels alive. Built with **Ink** and **React**, Flux Flow features:
|
|
46
|
+
- **Dynamic Status Bar**: Real-time telemetry showing your "Neural Headroom" (token usage), Thinking Level, and Session ID.
|
|
47
|
+
|
|
48
|
+
### 🔌 **High-Fidelity IDE Companion**
|
|
49
|
+
Flux Flow now pairs with a dedicated VS Code extension to bridge the gap between terminal and editor:
|
|
50
|
+
- **Surgical Diagnostic Sync**: Proactive background scanning for errors. If your project breaks, a "Magic Wand" icon $(\text{sparkle})$ appears in your editor title bar for an instant AI fix.
|
|
51
|
+
- **Live Status Heartbeat**: The VS Code Status Bar acts as a live feed, showing the agent's current task (*Thinking*, *Web Searching*, *Patching*, etc.).
|
|
52
|
+
- **Clickable Terminal Links**: Jump from the terminal output straight to your code with clickable file:line links.
|
|
53
|
+
- **Right-Click Integration**: "FluxFlow > Chat" is available in the editor, explorer, and tab bars, even when no files are open.
|
|
54
|
+
- **Selection-Driven Reasoning**: Select a block of code and ask "What does this do?"—the agent receives your selection instantly.
|
|
55
|
+
- **Universal Compatibility**: Works flawlessly with VS Code, Cursor, VSCodium, Trae, and Antigravity.
|
|
56
|
+
|
|
57
|
+
### 👁️ **Native Multimodality**
|
|
58
|
+
Flux Flow can now see! Use the `view_file` tool to analyze images (JPG, PNG) or deep-dive into PDF technical papers. The agent extracts high-fidelity visual context natively, making it a true multimodal companion.
|
|
59
|
+
|
|
60
|
+
### 📑 **Document Engineering Suite**
|
|
61
|
+
Need a report or a presentation? Just ask. Flux Flow features a high-fidelity "Printing Press" that generates professional, branded documents natively:
|
|
62
|
+
- **PDF**: Branded documents from HTML/CSS with automatic watermarking.
|
|
63
|
+
- **DOCX**: Native Word documents with multi-page support and automatic numbering.
|
|
64
|
+
|
|
65
|
+
### ⏱️ **Codebase Time Travel (Git-less Reversion)**
|
|
66
|
+
Refactor and build with absolute fearlessness. Flux Flow maintains transaction-based secure snapshots of files before they are generated or edited:
|
|
67
|
+
- **Instant Rollback**: Revert your workspace files (source code, generated documents, images) to their exact state prior to any selected prompt in the history.
|
|
68
|
+
- **Double-ESC Shortcut**: Press `ESC` twice while idle to pop open a sleek selection modal.
|
|
69
|
+
- **`/revert` Command**: Run the `/revert` command directly in the chat to open the checkpoint viewer.
|
|
70
|
+
|
|
71
|
+
### 🚑 **Self-Healing Infrastructure**
|
|
72
|
+
Zero setup means zero setup. On first run, Flux Flow performs an integrity check and autonomously installs its own Chromium engine if needed, ensuring features like PDF generation work 100% of the time without manual intervention.
|
|
73
|
+
|
|
74
|
+
- **Archived Terminal Flow**: See execution outputs transform from live elements into permanent conversation records.
|
|
75
|
+
- **Rich Aesthetics**: High-contrast, sleek design with smooth transitions and micro-animations.
|
|
76
|
+
|
|
77
|
+
### 🧠 **The Dual-Intelligence System**
|
|
78
|
+
- **Flux Mode (Dev)**: High-speed, agentic problem solving for massive coding tasks.
|
|
79
|
+
- **Flow Mode (Chat)**: Optimized for high-quality conversation and web-assisted reasoning.
|
|
80
|
+
|
|
81
|
+
### 🛡️ **Digital Fortress Governance**
|
|
82
|
+
Security isn't an afterthought; it's a boundary.
|
|
83
|
+
- **Sandbox Presets**: Choose from **Strict**, **Balanced**, **Autonomous**, or **Custom** security profiles to control agent autonomy.
|
|
84
|
+
- **Granular Command Policies**: Configure Auto-Approve (`Auto` / `Read-Only` / `None`), Auto-Disallow (`Auto` / `Destructive` / `None`), Network Access toggle, and Auto-Approve Git Commits independently.
|
|
85
|
+
- **External Path Hardlock**: Restricts the agent to your Current Working Directory (CWD) unless you explicitly unlock it.
|
|
86
|
+
- **Human-in-the-Loop (HITL)**: Every file write and terminal command requires your high-fidelity approval.
|
|
87
|
+
|
|
88
|
+
### 🧹 **The Background Janitor**
|
|
89
|
+
While you move at high speed, the Janitor follows behind—refining session titles, compressing data, and ensuring your context window remains at absolute peak performance.
|
|
90
|
+
|
|
91
|
+
### 🤖 **Autonomous Subagent System**
|
|
92
|
+
Delegate complex tasks to subagents. Spawns blocking subagents (`invokeSync`) or asynchronous background subagents (`invoke`) with distinct telemetry and silent background logging. Built-in transaction-safe reversion logs all subagent changes under the active turn, preserving rollback security.
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## 🛠️ Key Capabilities
|
|
97
|
+
- **Deep File-System Interaction**: Edit, move, and refactor code across multiple files with atomic precision.
|
|
98
|
+
- **Real-Time Web Intelligence**: Autonomous web-searching via DuckDuckGo for live news and technical research.
|
|
99
|
+
- **Autonomous Project Alignment**: Automatically detects and adheres to project-specific instructions in `Agent.md`, `Skills.md`, and `Fluxflow.md` for high-fidelity alignment with your coding standards and custom workflows.
|
|
100
|
+
|
|
101
|
+
- **Persistent Memory**: The agent learns from your preferences and project requirements across sessions.
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## 💻 CLI Startup Arguments
|
|
106
|
+
Customize your session parameters directly from your console launch command:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
fluxflow [options]
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### Supported Flags:
|
|
113
|
+
- `--model <model-name>`: Temporary override for the active AI model (e.g., `gemini-2.5-pro`). Keeps settings file untouched.
|
|
114
|
+
- `--memory <on | off>`: Toggle persistent long-term agent memory for the session.
|
|
115
|
+
- `--resume <session-id>`: Resume a previous chat session programmatically.
|
|
116
|
+
- `--update <check | latest>`: Manually run an update check (`check`) or execute latest update setup (`latest`).
|
|
117
|
+
- `--package <npm | pnpm | yarn | bun>`: Override default package manager to run core application updates.
|
|
118
|
+
- `--auto-del <1d | 7d | 30d>`: Set automated chat log deletion schedule.
|
|
119
|
+
- `--yolo <on | off>`: Toggle autonomous execution permission.
|
|
120
|
+
- `--external-access <on | off>`: Toggle permission to let agent read files outside CWD.
|
|
121
|
+
- `--thinking <Fast | Low | Medium/Standard | High | xHigh>`: Override thinking level for reasoning depth. `Medium` and `Standard` is the same (Deepseek compatibility).
|
|
122
|
+
- `--key <key@google | key@deepseek | key@openrouter>`: Set API key and provider.
|
|
123
|
+
- `--provider <google | deepseek | openrouter>`: Override default provider.
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## ⚙️ Configuration
|
|
128
|
+
Type `/settings` in-app to live-configure:
|
|
129
|
+
- **Thinking Level**: Fast (No Reasoning), Low, Medium, High, xHigh (Extended Reasoning).
|
|
130
|
+
- **Sandbox Preset**: Strict, Balanced, Autonomous, or Custom security profiles.
|
|
131
|
+
- **Security Perimeter**: Toggle External Workspace access, Network Access, and Git Commit auto-approval.
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## 🏁 License
|
|
136
|
+
MIT © 2026 Flux Flow.
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
*Forged with ⚡ and 🧬. Welcome to the FluxFlow.*
|
package/dist/fluxflow.js
CHANGED
|
@@ -7035,7 +7035,7 @@ ${mode === "Flux" ? `- WORKSPACE TOOLS (path = relative; FIRST ARGUMENT, path se
|
|
|
7035
7035
|
- [tool:functions.WriteFile(path="...", content="...")]. Creates/Overwrites. File Exist? PatchFile > WriteFile
|
|
7036
7036
|
- [tool:functions.SearchKeyword(keyword="...", path="optional, dir/file/glob/regex", fuzzy="bool optional, default: false", regex="bool optional, default: auto")]. path scopes search. Find definitions, logic, relevant code
|
|
7037
7037
|
- [tool:functions.Run(command="...")]. Runs ${osDetected === "Windows" ? isPsAvailable() ? `POWERSHELL` : `WINDOWS CMD` : `BASH`} command. Destructive/Irreversible ops \u2192 Ask user
|
|
7038
|
-
- [tool:functions.Todo(method="create/append/get", tasks=[ARRAY
|
|
7038
|
+
- [tool:functions.Todo(method="create/append/get", tasks=[STRING ARRAY], markDone=[TASK ID ARRAY])]. Analyze request: ONLY if long multi-task, break it down & create Todos BEFORE starting. \`tasks\` & \`markDone\` optional with \`get\`. Use \`get + markDone\` to mark complete. UPDATE EVERY TURN WHEN CREATED
|
|
7039
7039
|
${_cachedAdvanceRollback ? `
|
|
7040
7040
|
- EMERGENCY TOOLS -
|
|
7041
7041
|
Info: \`initial\` = current task prompt. Revert \`id\` = turn before disaster (eg. disaster: \`turn_3\` \u2192 revert: \`turn_2\`). Reason explicitly
|
|
@@ -25242,7 +25242,7 @@ Selection: ${val}`,
|
|
|
25242
25242
|
case "providerBudgetSelect": {
|
|
25243
25243
|
const PROVIDERS_LIST = ["Google", "DeepSeek", "Mistral", "NVIDIA", "OpenRouter", "Ollama"];
|
|
25244
25244
|
const anySelected = PROVIDERS_LIST.some((p) => pbsSelected[p]);
|
|
25245
|
-
return /* @__PURE__ */ React16.createElement(Box14, { flexDirection: "column", borderStyle: "round", borderColor: colors.borderMuted, padding: 0, width: "100%" }, /* @__PURE__ */ React16.createElement(Box14, { paddingX: 1, marginBottom: 1 }, /* @__PURE__ */ React16.createElement(Text16, { color: colors.text, bold: true }, "SELECT PROVIDERS TO SET
|
|
25245
|
+
return /* @__PURE__ */ React16.createElement(Box14, { flexDirection: "column", borderStyle: "round", borderColor: colors.borderMuted, padding: 0, width: "100%" }, /* @__PURE__ */ React16.createElement(Box14, { paddingX: 1, marginBottom: 1 }, /* @__PURE__ */ React16.createElement(Text16, { color: colors.text, bold: true }, "SELECT PROVIDERS TO SET LIMMITS FOR")), PROVIDERS_LIST.map((prov, i) => {
|
|
25246
25246
|
const isActive = i === pbsCursor;
|
|
25247
25247
|
const isChecked = !!pbsSelected[prov];
|
|
25248
25248
|
return /* @__PURE__ */ React16.createElement(Box14, { key: prov, backgroundColor: isActive ? colors.highlightBg || "#2a2a2a" : void 0, paddingX: 1, width: "100%", flexDirection: "row" }, /* @__PURE__ */ React16.createElement(Text16, { color: isActive ? colors.text : colors.textMuted, bold: isActive }, isActive ? "\u276F " : " "), /* @__PURE__ */ React16.createElement(Text16, { color: isChecked ? colors.success || "green" : colors.textMuted }, isChecked ? "\u2611" : "\u2610"), /* @__PURE__ */ React16.createElement(Text16, { color: isActive ? colors.text : colors.textMuted, bold: isActive }, " ", prov), isChecked && quotas.providerBudgets?.[prov]?.agentLimit ? /* @__PURE__ */ React16.createElement(Text16, { color: colors.primary || "cyan" }, " (budget set)") : null);
|
|
@@ -25255,7 +25255,7 @@ Selection: ${val}`,
|
|
|
25255
25255
|
fields.push({ provider: prov, subKey: "monthlyTokenLimit", label: "Monthly Tokens (tokens/month)" });
|
|
25256
25256
|
}
|
|
25257
25257
|
const saveButtonIndex = fields.length;
|
|
25258
|
-
return /* @__PURE__ */ React16.createElement(Box14, { flexDirection: "column", borderStyle: "round", borderColor: colors.borderMuted, padding: 0, width: "100%" }, /* @__PURE__ */ React16.createElement(Box14, { paddingX: 1, marginBottom:
|
|
25258
|
+
return /* @__PURE__ */ React16.createElement(Box14, { flexDirection: "column", borderStyle: "round", borderColor: colors.borderMuted, padding: 0, width: "100%" }, /* @__PURE__ */ React16.createElement(Box14, { paddingX: 1, marginBottom: 0 }, /* @__PURE__ */ React16.createElement(Text16, { color: colors.text, bold: true }, "PROVIDER LIMIT CONFIGURATION")), /* @__PURE__ */ React16.createElement(Box14, { paddingX: 1, paddingBottom: 0, marginBottom: 0 }, /* @__PURE__ */ React16.createElement(Text16, { color: colors.textMuted, italic: true }, "Set limits for selected providers (leave blank or 0 for no limit)")), providerBudgetQueue.map((prov) => {
|
|
25259
25259
|
const provFields = fields.filter((f) => f.provider === prov);
|
|
25260
25260
|
return /* @__PURE__ */ React16.createElement(Box14, { key: prov, flexDirection: "column", marginY: 0, paddingX: 1 }, /* @__PURE__ */ React16.createElement(Text16, { color: colors.primary || "cyan", bold: true }, `
|
|
25261
25261
|
\u2500\u2500 ${prov} \u2500\u2500`), provFields.map((field) => {
|
|
@@ -25283,7 +25283,7 @@ Selection: ${val}`,
|
|
|
25283
25283
|
}
|
|
25284
25284
|
) : /* @__PURE__ */ React16.createElement(Text16, { color: currentVal ? colors.text : colors.textMuted }, currentVal ? currentVal : "0 (Unlimited)"));
|
|
25285
25285
|
}));
|
|
25286
|
-
}), /* @__PURE__ */ React16.createElement(Box14, { paddingX: 2, marginTop: 1 }, pbfFieldIndex === saveButtonIndex ? /* @__PURE__ */ React16.createElement(Box14, { backgroundColor: colors.highlightBg || "#2a2a2a", paddingX: 1 }, /* @__PURE__ */ React16.createElement(Text16, { color: colors.success || "green", bold: true }, "\u276F [ Save & Apply Budgets ]")) : /* @__PURE__ */ React16.createElement(Text16, { color: colors.textMuted }, "
|
|
25286
|
+
}), /* @__PURE__ */ React16.createElement(Box14, { paddingX: 2, marginTop: 1 }, pbfFieldIndex === saveButtonIndex ? /* @__PURE__ */ React16.createElement(Box14, { backgroundColor: colors.highlightBg || "#2a2a2a", paddingX: 1 }, /* @__PURE__ */ React16.createElement(Text16, { color: colors.success || "green", bold: true }, "\u276F [ Save & Apply Budgets ]")) : /* @__PURE__ */ React16.createElement(Text16, { color: colors.textMuted }, " [ Save & Apply Budgets ]")), /* @__PURE__ */ React16.createElement(Box14, { paddingX: 1, marginTop: 1, flexDirection: "column" }, /* @__PURE__ */ React16.createElement(Text16, { color: colors.textMuted, italic: true }, "\u2191\u2193 Navigate fields \u2022 Enter next / save \u2022 ESC to go back")));
|
|
25287
25287
|
}
|
|
25288
25288
|
case "budgetResetMode":
|
|
25289
25289
|
return /* @__PURE__ */ React16.createElement(
|
|
@@ -25358,7 +25358,7 @@ Selection: ${val}`,
|
|
|
25358
25358
|
const hoursLeft = totalHours % 24;
|
|
25359
25359
|
resetCountdown = `(${daysLeft} days: ${hoursLeft} hrs left)`;
|
|
25360
25360
|
}
|
|
25361
|
-
return /* @__PURE__ */ React16.createElement(Box14, { flexDirection: "column", borderStyle: "round", borderColor: colors.borderMuted, padding: 1, paddingBottom: 0, width: "100%" }, /* @__PURE__ */ React16.createElement(Box14, { marginBottom: 1, justifyContent: "space-between", width: "100%" }, /* @__PURE__ */ React16.createElement(Text16, { color: colors.text, bold: true, underline: true }, "USAGE LIMITS"), /* @__PURE__ */ React16.createElement(Text16, { color: colors.textMuted }, "[ ESC to Close ]")), limitsNotSet ? /* @__PURE__ */ React16.createElement(Box14, { padding: 1, justifyContent: "center", alignItems: "center", width: "100%" }, /* @__PURE__ */ React16.createElement(Text16, { color: colors.text, bold: true }, "LIMITS NOT SET")) : usingProviderBudgets && configuredProviders.length > 0 ? /* @__PURE__ */ React16.createElement(Box14, { flexDirection: "column", gap: 0, width: "100%" }, (() => {
|
|
25361
|
+
return /* @__PURE__ */ React16.createElement(Box14, { flexDirection: "column", borderStyle: "round", borderColor: colors.borderMuted, padding: 1, paddingBottom: 0, paddingTop: 0, width: "100%" }, /* @__PURE__ */ React16.createElement(Box14, { marginBottom: 1, justifyContent: "space-between", width: "100%" }, /* @__PURE__ */ React16.createElement(Text16, { color: colors.text, bold: true, underline: true }, "USAGE LIMITS"), /* @__PURE__ */ React16.createElement(Text16, { color: colors.textMuted }, "[ ESC to Close ]")), limitsNotSet ? /* @__PURE__ */ React16.createElement(Box14, { padding: 1, justifyContent: "center", alignItems: "center", width: "100%" }, /* @__PURE__ */ React16.createElement(Text16, { color: colors.text, bold: true }, "LIMITS NOT SET")) : usingProviderBudgets && configuredProviders.length > 0 ? /* @__PURE__ */ React16.createElement(Box14, { flexDirection: "column", gap: 0, width: "100%" }, (() => {
|
|
25362
25362
|
const cols = stdout?.columns || terminalSize?.columns || 80;
|
|
25363
25363
|
const isNarrow = cols < 115;
|
|
25364
25364
|
if (isNarrow) {
|