@nomad-e/bluma-cli 0.3.0 → 0.5.0
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 +138 -140
- package/assets/bg.png +0 -0
- package/assets/bg1.png +0 -0
- package/assets/bluma.png +0 -0
- package/assets/image.png +0 -0
- package/dist/assets/bg.png +0 -0
- package/dist/assets/bg1.png +0 -0
- package/dist/assets/bluma.png +0 -0
- package/dist/assets/image.png +0 -0
- package/dist/config/native_tools.json +12 -3
- package/dist/main.js +7435 -3285
- package/package.json +7 -6
- package/dist/WorkingTimer.js +0 -130
- package/dist/components/StreamingText.js +0 -113
- package/dist/components/reasoningText.js +0 -18
- package/dist/components/streamingTextFlush.js +0 -11
- package/dist/config/skills/xlsx/scripts/office/__pycache__/__init__.cpython-312.pyc +0 -0
- package/dist/config/skills/xlsx/scripts/office/__pycache__/pack.cpython-312.pyc +0 -0
- package/dist/config/skills/xlsx/scripts/office/__pycache__/soffice.cpython-312.pyc +0 -0
- package/dist/config/skills/xlsx/scripts/office/__pycache__/unpack.cpython-312.pyc +0 -0
- package/dist/config/skills/xlsx/scripts/office/__pycache__/validate.cpython-312.pyc +0 -0
- package/dist/constants/toolUiSymbols.js +0 -10
- package/dist/theme/blumaTerminal.js +0 -79
- package/dist/theme/m3Layout.js +0 -68
- package/dist/utils/formatTurnDurationMs.js +0 -16
- package/dist/utils/toolActionLabels.js +0 -167
package/README.md
CHANGED
|
@@ -1,8 +1,15 @@
|
|
|
1
|
-
# BluMa CLI — AI Agent for Advanced Software Engineering
|
|
1
|
+
# BluMa CLI — AI-Powered Agent for Advanced Software Engineering
|
|
2
|
+
|
|
3
|
+

|
|
2
4
|
|
|
3
5
|
[](LICENSE)
|
|
4
6
|
[](https://nodejs.org/)
|
|
5
7
|
[](https://www.npmjs.com/package/@nomad-e/bluma-cli)
|
|
8
|
+
[](https://github.com/Nomad-e/bluma-cli/actions)
|
|
9
|
+
[](https://jestjs.io/)
|
|
10
|
+
[](https://www.typescriptlang.org/)
|
|
11
|
+
[](https://prettier.io/)
|
|
12
|
+
[](https://www.npmjs.com/package/@nomad-e/bluma-cli)
|
|
6
13
|
|
|
7
14
|
**BluMa** is an independent AI agent CLI for automation and advanced software engineering. It combines powerful tool orchestration, multi-agent coordination, and intelligent context management to help you build software faster and with higher quality.
|
|
8
15
|
|
|
@@ -14,9 +21,12 @@
|
|
|
14
21
|
# Install globally
|
|
15
22
|
npm install -g @nomad-e/bluma-cli
|
|
16
23
|
|
|
17
|
-
# Run BluMa
|
|
24
|
+
# Run BluMa (new session)
|
|
18
25
|
bluma
|
|
19
26
|
|
|
27
|
+
# Resume a previous session
|
|
28
|
+
bluma resume {session_id}
|
|
29
|
+
|
|
20
30
|
# Or run from source
|
|
21
31
|
npm install
|
|
22
32
|
npm run build
|
|
@@ -27,75 +37,112 @@ npm start
|
|
|
27
37
|
|
|
28
38
|
## ✨ Key Features
|
|
29
39
|
|
|
30
|
-
### 🤖 **
|
|
31
|
-
Comprehensive toolset
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
-
|
|
36
|
-
-
|
|
37
|
-
|
|
38
|
-
|
|
40
|
+
### 🤖 **Native Tools** (45+ tools)
|
|
41
|
+
Comprehensive toolset organized by category with risk levels and auto-approve policies.
|
|
42
|
+
Tools are now modularly structured in `src/app/agent/tools/` with separate UI components:
|
|
43
|
+
|
|
44
|
+
**Filesystem** (10 tools):
|
|
45
|
+
- `ls_tool`, `read_file_lines`, `count_file_lines`, `find_by_name`, `grep_search`
|
|
46
|
+
- `view_file_outline`, `edit_tool`, `file_write`, `notebook_edit`, `lsp_query`
|
|
47
|
+
|
|
48
|
+
**Execution** (6 tools):
|
|
49
|
+
- `shell_command`, `command_status`, `send_command_input`, `kill_command`
|
|
50
|
+
- `repl` (interactive code execution for Python/Node/Bash)
|
|
51
|
+
- `task_output` (real-time output following)
|
|
52
|
+
|
|
53
|
+
**Communication** (7 tools):
|
|
54
|
+
- `message`, `ask_user_question`, `brief`, `send_message`
|
|
55
|
+
- `list_mailbox_messages`, `poll_mailbox`, `signal_mailbox`
|
|
56
|
+
|
|
57
|
+
**Planning** (11 tools):
|
|
58
|
+
- `todo`, `task_boundary`, `task_create`, `task_update`, `task_stop`
|
|
59
|
+
- `task_list`, `task_get`, `enter_plan_mode`, `exit_plan_mode`
|
|
60
|
+
- `cron_create`, `cron_list`, `cron_delete`
|
|
61
|
+
|
|
62
|
+
**Knowledge** (10 tools):
|
|
63
|
+
- `search_web`, `web_fetch`, `load_skill`, `coding_memory`
|
|
64
|
+
- `ctx_inspect`, `dream`, `context_collapse`, `snip`
|
|
65
|
+
- `list_mcp_resources`, `read_mcp_resource`
|
|
66
|
+
|
|
67
|
+
**Agent Coordination** (4 tools):
|
|
68
|
+
- `spawn_agent`, `wait_agent`, `list_agents`, `kill_agent`
|
|
69
|
+
|
|
70
|
+
**FactorAI Sandbox** (5 tools):
|
|
71
|
+
- `factorai.sh.create_next_app`, `factorai.sh.deploy_app`
|
|
72
|
+
- `factorai.sh.get_app_status`, `factorai.sh.apply_app_changes`
|
|
73
|
+
- `factorai.sh.redeploy_app`
|
|
39
74
|
|
|
40
75
|
### 🧠 **Multi-Agent Orchestration**
|
|
41
76
|
- **Coordinator Mode**: Product Owner + Engineering Manager hybrid that delegates to specialist workers
|
|
42
77
|
- **Parallel Execution**: Launch multiple workers concurrently for research, implementation, and verification
|
|
43
|
-
- **Mailbox IPC**: Bidirectional communication between coordinator and workers
|
|
78
|
+
- **Mailbox IPC**: Bidirectional communication between coordinator and workers via `send_message`, `list_mailbox_messages`, `poll_mailbox`, `signal_mailbox`
|
|
44
79
|
- **Worker Types**: Researchers, implementers, verifiers with specialized roles
|
|
80
|
+
- **Session Registry**: Track and manage agent sessions with lifecycle events
|
|
81
|
+
|
|
82
|
+
### 📝 **Slash Commands** (80+ commands)
|
|
83
|
+
Quick access to common operations across 5 categories:
|
|
45
84
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
- **
|
|
49
|
-
- **
|
|
50
|
-
- **
|
|
51
|
-
- **Git**: `/pr` (create PRs), `/release` (release engineering)
|
|
52
|
-
- **Input**: `/help`, Ctrl+V for images
|
|
85
|
+
- **Session** (25+): `/clear`, `/sessions`, `/attach`, `/follow`, `/bridge`, `/status`, `/logs`, `/resume`, `/kill`, `/compact`, `/export`, `/summarize`, `/history`, `/share`, `/copy`, `/commit`, `/pr`, `/release`, `/snip`, `/collapse`, `/brief`, `/undo`, `/redo`, `/thread` (with subcommands: list/new/resume/fork/rename/archive/delete)
|
|
86
|
+
- **Inspect** (30+): `/plugins`, `/plugin`, `/diagnostics`, `/permissions`, `/features`, `/hooks`, `/model`, `/effort`, `/style`, `/sandbox`, `/worktree`, `/statusline`, `/skills`, `/tools`, `/mcp`, `/debug-workers`, `/cost`, `/memory`, `/stats`, `/theme`, `/keybindings`, `/vim`, `/ctx`, `/dream`, `/diff`, `/editor`, `/config`, `/file`, `/search`, `/context`, `/token`, `/settings`, `/alias`, `/macro`, `/thread stats`
|
|
87
|
+
- **Agent** (15+): `/agent`, `/agents`, `/img`, `/image`, `/init`, `/review`, `/explain`, `/fix`, `/debug`, `/bug`, `/test`, `/optimize`, `/refactor`, `/document`, `/chat`, `/code`, `/terminal`, `/template`
|
|
88
|
+
- **Help**: `/help`
|
|
89
|
+
- **Input**: `Ctrl+V`/`Cmd+V` (paste image/text/file), `Ctrl+Shift+I` (same as Ctrl+V)
|
|
53
90
|
|
|
54
91
|
### 🎯 **Intelligent Context Management**
|
|
55
92
|
- **Auto Memory**: Persistent coding notes across sessions (`coding_memory`)
|
|
56
|
-
- **Context Collapse**: Advanced history compaction with token budget
|
|
57
|
-
- **Snip Tool**: Extract and remove old conversation snippets
|
|
58
|
-
- **Dream Engine**: Background memory consolidation and
|
|
93
|
+
- **Context Collapse**: Advanced history compaction with multiple strategies (aggressive, moderate, minimal, target token budget)
|
|
94
|
+
- **Snip Tool**: Extract and remove old conversation snippets (extract/remove/auto modes)
|
|
95
|
+
- **Dream Engine**: Background memory consolidation — deduplicates, merges, prunes, and enriches coding memory entries
|
|
59
96
|
- **Token Tracking**: Real-time token usage monitoring with `ctx_inspect`
|
|
97
|
+
- **Thread Management**: Full thread lifecycle with create, resume, fork, rename, archive, delete operations
|
|
60
98
|
|
|
61
|
-
###
|
|
99
|
+
### 🛠️ **Plan Mode**
|
|
62
100
|
Structured problem-solving workflow with 3 phases:
|
|
63
101
|
1. **PLANNING**: Research and design
|
|
64
102
|
2. **EXECUTION**: Implementation
|
|
65
103
|
3. **VERIFICATION**: Testing and validation
|
|
66
104
|
|
|
67
|
-
###
|
|
105
|
+
### 🔧 **Skills System**
|
|
68
106
|
Extendable expertise modules with progressive disclosure:
|
|
69
|
-
- **git-commit**: Conventional commits automation
|
|
107
|
+
- **git-commit**: Conventional commits automation with BluMa watermark
|
|
70
108
|
- **git-pr**: Pull request creation and management
|
|
71
|
-
- **git-release**: Full release engineering workflow
|
|
72
|
-
- **pdf**: PDF generation and manipulation
|
|
73
|
-
- **xlsx**: Spreadsheet processing
|
|
109
|
+
- **git-release**: Full release engineering workflow (version bumps, changelog, tags, npm publish)
|
|
110
|
+
- **pdf**: PDF generation and manipulation (reports, merge, forms, OCR)
|
|
111
|
+
- **xlsx**: Spreadsheet processing (create, edit, formulas, charting, cleaning)
|
|
74
112
|
- **skill-creator**: Create custom skills
|
|
75
113
|
|
|
76
114
|
### 🎨 **Modern UI**
|
|
77
115
|
- Built with **Ink** (React for CLI)
|
|
78
|
-
- **Shimmer effects** for working states
|
|
79
|
-
- **Streamlined transcript** with syntax highlighting
|
|
80
|
-
- **Bottom dock** for status and controls
|
|
81
|
-
- **
|
|
82
|
-
- **
|
|
116
|
+
- **Shimmer effects** for working states (WorkingShimmerText, Spinner with ShimmerChar/FlashingChar)
|
|
117
|
+
- **Streamlined transcript** with syntax highlighting (HighlightedCode, MarkdownRenderer)
|
|
118
|
+
- **Bottom dock** for status and controls (BlumaBottomDock, StatusBar)
|
|
119
|
+
- **Worker overlay** for multi-agent visualization (WorkerOverlay, WorkerStatusList)
|
|
120
|
+
- **Real-time streaming** (StreamingMarkdown, StreamingText, TypewriterText)
|
|
121
|
+
- **Animated indicators** (Spinner, ProgressBar)
|
|
122
|
+
- **Theme system** with configurable themes (blumaTerminal theme)
|
|
83
123
|
|
|
84
124
|
### 🔒 **Sandbox Security**
|
|
85
125
|
- **Permission modes**: Local (auto-approve) vs Sandbox (confirmation required)
|
|
86
126
|
- **Policy enforcement**: `rm -rf` protection, sudo blocking, dangerous command detection
|
|
87
|
-
- **
|
|
127
|
+
- **Tool risk levels**: safe, write, execute, network — with per-mode auto-approve settings
|
|
128
|
+
- **FactorAI integration**: Optional sandbox backend for isolated execution with workspace manifest persistence
|
|
88
129
|
|
|
89
|
-
### 📦 **
|
|
90
|
-
- **Rust clipboard**: Cross-platform clipboard support (no wl-paste/xclip dependencies)
|
|
91
|
-
- **Native modules**: High-performance bindings for critical operations
|
|
130
|
+
### 📦 **Performance**
|
|
92
131
|
- **TypeScript**: Full type safety with strict mode
|
|
132
|
+
- **ES Modules**: Modern module system with bundler resolution
|
|
133
|
+
- **React 19**: Latest React with concurrent features
|
|
134
|
+
- **Optimized rendering**: Memoized message blocks, offscreen freeze, expandable previews
|
|
93
135
|
|
|
94
136
|
### 🔌 **MCP Support**
|
|
95
137
|
- **Model Context Protocol**: Connect to external MCP servers
|
|
96
138
|
- **Resource listing**: Discover and read MCP resources
|
|
97
139
|
- **SSE transport**: Server-Sent Events for real-time communication
|
|
98
140
|
|
|
141
|
+
### 🧵 **Thread Management**
|
|
142
|
+
- **Thread lifecycle**: Create, resume, fork, rename, archive, delete threads
|
|
143
|
+
- **Thread stats**: View thread metadata and statistics
|
|
144
|
+
- **Codex-style interface**: Familiar thread management commands
|
|
145
|
+
|
|
99
146
|
---
|
|
100
147
|
|
|
101
148
|
## 🏗️ Architecture
|
|
@@ -105,31 +152,62 @@ Extendable expertise modules with progressive disclosure:
|
|
|
105
152
|
│ BluMa CLI (Ink UI) │
|
|
106
153
|
├─────────────────────────────────────────────────────────────┤
|
|
107
154
|
│ BlumaShell │ BlumaViewport │ BlumaTranscript │
|
|
108
|
-
│ BlumaBottomDock │ BlumaWorkersOverlay
|
|
155
|
+
│ BlumaBottomDock │ BlumaWorkersOverlay │ PlanPopup │
|
|
109
156
|
├─────────────────────────────────────────────────────────────┤
|
|
110
157
|
│ useBlumaSessionRuntime (Hook) │
|
|
111
158
|
├─────────────────────────────────────────────────────────────┤
|
|
112
|
-
│
|
|
113
|
-
│
|
|
159
|
+
│ Session Registry │ Agent Core │ Tool Invoker │
|
|
160
|
+
│ Thread Manager │ Prompt Builder │ Mailbox IPC │
|
|
114
161
|
├─────────────────────────────────────────────────────────────┤
|
|
115
|
-
│ Native Tools (
|
|
162
|
+
│ Native Tools (45+) │ Skills (6) │ MCP Clients │
|
|
163
|
+
│ FactorAI Sandbox │ Hook Registry │ Feature Flags │
|
|
116
164
|
└─────────────────────────────────────────────────────────────┘
|
|
117
165
|
```
|
|
118
166
|
|
|
167
|
+
### Modular Tool Architecture
|
|
168
|
+
|
|
169
|
+
Each tool in `src/app/agent/tools/` follows a consistent structure:
|
|
170
|
+
|
|
171
|
+
```
|
|
172
|
+
ToolName/
|
|
173
|
+
├── index.ts # Public API exports
|
|
174
|
+
├── ToolName.ts # Core implementation logic
|
|
175
|
+
├── UI.tsx # React/Ink UI component
|
|
176
|
+
└── types.ts # Type definitions
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
This modular design enables:
|
|
180
|
+
- **Independent testing** of each tool
|
|
181
|
+
- **Clear separation** of logic and presentation
|
|
182
|
+
- **Easy discovery** and maintenance
|
|
183
|
+
- **Consistent patterns** across the codebase
|
|
184
|
+
|
|
119
185
|
### Core Components
|
|
120
186
|
|
|
121
|
-
- **`src/main.ts`**: Entry point
|
|
187
|
+
- **`src/main.ts`**: Entry point with CLI mode, agent mode, session management
|
|
122
188
|
- **`src/app/ui/`**: React/Ink UI components
|
|
123
189
|
- `App.tsx`: Main orchestrator
|
|
124
|
-
- `BlumaSession.tsx`: Session management
|
|
125
|
-
- `components/`: Reusable UI elements
|
|
190
|
+
- `BlumaSession.tsx`: Session management and UI lifecycle
|
|
191
|
+
- `components/`: Reusable UI elements (40+ components)
|
|
192
|
+
- `hooks/`: React hooks for state management
|
|
193
|
+
- `theme/`: Theme system and terminal styling
|
|
194
|
+
- `utils/`: Utility functions and slash command registry
|
|
126
195
|
- **`src/app/agent/`**: AI agent core
|
|
127
|
-
- `core/`: Prompt building, context management
|
|
128
|
-
- `tools/`:
|
|
129
|
-
|
|
196
|
+
- `core/`: Prompt building, context management, LLM integration, thread management
|
|
197
|
+
- `tools/`: **Modular tool architecture** — 43+ tool directories, each with:
|
|
198
|
+
- Implementation logic (`*.ts`)
|
|
199
|
+
- UI components (`UI.tsx`)
|
|
200
|
+
- Type definitions (`types.ts`)
|
|
201
|
+
- Index exports (`index.ts`)
|
|
202
|
+
- `runtime/`: Session runtime, sandbox policy, plugin system, hook registry
|
|
130
203
|
- `session_manager/`: Multi-session orchestration
|
|
131
|
-
-
|
|
132
|
-
-
|
|
204
|
+
- `subagents/`: Worker system with base LLM subagent and coordinator tools
|
|
205
|
+
- `bluma/`: BluMa-specific core logic and turn start payload
|
|
206
|
+
- **`src/app/agent/config/`**: Configuration files and skill definitions
|
|
207
|
+
- **`src/ink/`**: Ink renderer shims and compatibility layer
|
|
208
|
+
- **`src/shims/`**: Build-time shims for react-compiler-runtime and bidi-js
|
|
209
|
+
- **`native/`**: Rust-based native modules (clipboard, yoga-layout)
|
|
210
|
+
- **`vscode-extension/`**: VS Code extension for chat integration
|
|
133
211
|
|
|
134
212
|
---
|
|
135
213
|
|
|
@@ -172,7 +250,6 @@ BLUMA_PERMISSION_MODE=sandbox
|
|
|
172
250
|
|
|
173
251
|
- Node.js >= 20
|
|
174
252
|
- npm >= 9
|
|
175
|
-
- Rust (for native clipboard module, optional)
|
|
176
253
|
|
|
177
254
|
### Setup
|
|
178
255
|
|
|
@@ -187,9 +264,6 @@ npm install
|
|
|
187
264
|
# Build the project
|
|
188
265
|
npm run build
|
|
189
266
|
|
|
190
|
-
# Or build with native modules
|
|
191
|
-
npm run build:all
|
|
192
|
-
|
|
193
267
|
# Start BluMa
|
|
194
268
|
npm start
|
|
195
269
|
```
|
|
@@ -199,12 +273,14 @@ npm start
|
|
|
199
273
|
| Script | Description |
|
|
200
274
|
|--------|-------------|
|
|
201
275
|
| `npm run build` | TypeScript check + bundle |
|
|
202
|
-
| `npm run build:native` | Build
|
|
276
|
+
| `npm run build:native` | Build native modules |
|
|
203
277
|
| `npm run build:all` | Build native + TypeScript |
|
|
278
|
+
| `npm run precommit` | Run pre-commit validation |
|
|
204
279
|
| `npm start` | Build + run BluMa |
|
|
205
280
|
| `npm test` | Run Jest tests |
|
|
206
281
|
| `npm run test:watch` | Watch mode for tests |
|
|
207
282
|
| `npm run test:parallel` | Parallel test execution |
|
|
283
|
+
| `npm run test:parallel:fast` | Fast parallel tests with 8 workers |
|
|
208
284
|
| `npm run lint` | ESLint check |
|
|
209
285
|
| `npm run lint:fix` | Auto-fix lint errors |
|
|
210
286
|
|
|
@@ -235,8 +311,9 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for detailed contribution guidelines.
|
|
|
235
311
|
- **[Developer Guide](docs/BLUMA_DEVELOPER_GUIDE.md)**: Complete technical reference
|
|
236
312
|
- **[Skills Guide](docs/SKILLS.md)**: How to create and use skills
|
|
237
313
|
- **[Mailbox IPC](docs/MAILBOX_IPC.md)**: Multi-agent communication
|
|
238
|
-
- **[Plan Mode](docs/plan-mode/)**: Structured problem-solving workflow
|
|
239
314
|
- **[CI/CD](docs/CI-TEST.md)**: Continuous integration setup
|
|
315
|
+
- **[Message Queue](docs/message-queue-design.md)**: IPC system design
|
|
316
|
+
- **[Parallel Tests](docs/parallel-tests.md)**: Test parallelization guide
|
|
240
317
|
|
|
241
318
|
---
|
|
242
319
|
|
|
@@ -272,100 +349,21 @@ bluma
|
|
|
272
349
|
|
|
273
350
|
### 4. **Pull Request Creation**
|
|
274
351
|
```bash
|
|
275
|
-
/pr
|
|
276
|
-
/pr feature/auth to develop --draft # Draft PR
|
|
277
|
-
```
|
|
278
|
-
|
|
279
|
-
### 5. **Context Management**
|
|
280
|
-
```bash
|
|
281
|
-
/context # Inspect current context
|
|
282
|
-
/token # View token usage
|
|
283
|
-
/summarize # Summarize conversation
|
|
352
|
+
/pr "feat: add new authentication" # Create PR with conventional commit
|
|
284
353
|
```
|
|
285
354
|
|
|
286
355
|
---
|
|
287
356
|
|
|
288
|
-
##
|
|
289
|
-
|
|
290
|
-
### Filesystem Tools (12)
|
|
291
|
-
`edit_tool`, `file_write`, `read_file_lines`, `ls_tool`, `find_by_name`, `grep_search`, `view_file_outline`, `count_file_lines`, `file_write`, `snip`, `ctx_inspect`, `workspace_snapshot`
|
|
292
|
-
|
|
293
|
-
### Execution Tools (6)
|
|
294
|
-
`shell_command`, `command_status`, `send_command_input`, `kill_command`, `repl`, `task_output`
|
|
295
|
-
|
|
296
|
-
### Communication Tools (5)
|
|
297
|
-
`ask_user_question`, `send_message`, `list_mailbox_messages`, `signal_mailbox`, `brief`
|
|
298
|
-
|
|
299
|
-
### Planning Tools (8)
|
|
300
|
-
`todo`, `task_boundary`, `task_create`, `task_update`, `task_stop`, `task_list`, `enter_plan_mode`, `exit_plan_mode`
|
|
301
|
-
|
|
302
|
-
### Knowledge Tools (6)
|
|
303
|
-
`search_web`, `web_fetch`, `coding_memory`, `ctx_inspect`, `dream_engine`, `load_skill`
|
|
304
|
-
|
|
305
|
-
### Agent Coordination Tools (6)
|
|
306
|
-
`spawn_agent`, `wait_agent`, `list_agents`, `kill_agent`, `send_message`, `list_mailbox_messages`
|
|
307
|
-
|
|
308
|
-
### Specialized Tools (7)
|
|
309
|
-
`context_collapse`, `snip`, `brief`, `lsp_query`, `notebook_edit`, `createNextApp`, `deployApp`
|
|
310
|
-
|
|
311
|
-
### MCP Tools (2)
|
|
312
|
-
`list_mcp_resources`, `read_mcp_resource`
|
|
313
|
-
|
|
314
|
-
### Session Tools (3)
|
|
315
|
-
`cronCreate`, `cronList`, `cronDelete`
|
|
316
|
-
|
|
317
|
-
---
|
|
318
|
-
|
|
319
|
-
## 🎨 UI Components
|
|
320
|
-
|
|
321
|
-
- **BlumaShell**: Main application shell with header and footer
|
|
322
|
-
- **BlumaViewport**: Scrollable transcript view
|
|
323
|
-
- **BlumaTranscript**: Message rendering with syntax highlighting
|
|
324
|
-
- **BlumaBottomDock**: Status bar and controls
|
|
325
|
-
- **BlumaWorkersOverlay**: Worker status visualization
|
|
326
|
-
- **WorkingShimmerText**: Animated working state indicator
|
|
327
|
-
- **FilePathLink**: Clickable file paths
|
|
328
|
-
- **HighlightedCode**: Syntax-highlighted code blocks
|
|
329
|
-
- **CtrlOToExpand**: Expandable content indicator
|
|
330
|
-
|
|
331
|
-
---
|
|
332
|
-
|
|
333
|
-
## 🔐 Security
|
|
334
|
-
|
|
335
|
-
- **Sandbox Policy**: Blocks dangerous commands (`rm -rf /`, `sudo`, etc.)
|
|
336
|
-
- **Permission Modes**: Configurable auto-approve vs confirmation
|
|
337
|
-
- **Input Validation**: JSON argument validation for tool calls
|
|
338
|
-
- **Error Handling**: User-friendly error messages with hints
|
|
339
|
-
- **Rate Limiting**: Web search and external API rate limiting
|
|
340
|
-
|
|
341
|
-
---
|
|
342
|
-
|
|
343
|
-
## 📦 Package Info
|
|
344
|
-
|
|
345
|
-
- **Name**: `@nomad-e/bluma-cli`
|
|
346
|
-
- **Version**: `0.2.3`
|
|
347
|
-
- **License**: Apache 2.0
|
|
348
|
-
- **Engine**: Node.js >= 20
|
|
349
|
-
- **Type**: ES Modules
|
|
350
|
-
- **Main**: `dist/main.js`
|
|
351
|
-
- **Bin**: `bluma`
|
|
352
|
-
|
|
353
|
-
---
|
|
354
|
-
|
|
355
|
-
## 🤝 Community
|
|
357
|
+
## 📄 License
|
|
356
358
|
|
|
357
|
-
|
|
358
|
-
- **Discussions**: Open questions and community discussions
|
|
359
|
-
- **Contributions**: See [CONTRIBUTING.md](CONTRIBUTING.md)
|
|
359
|
+
Apache 2.0 — see [LICENSE](LICENSE) for details.
|
|
360
360
|
|
|
361
361
|
---
|
|
362
362
|
|
|
363
|
-
##
|
|
363
|
+
## 👤 Author
|
|
364
364
|
|
|
365
|
-
|
|
365
|
+
**Alex Fonseca** — [@nomad-e](https://github.com/Nomad-e)
|
|
366
366
|
|
|
367
367
|
---
|
|
368
368
|
|
|
369
|
-
|
|
370
|
-
<sub>Built with ❤️ by <a href="https://github.com/Nomad-e">NomadEngenuity</a></sub>
|
|
371
|
-
</p>
|
|
369
|
+
*BluMa CLI v0.3.1 — Built with TypeScript, React/Ink, and ES modules.*
|
package/assets/bg.png
ADDED
|
Binary file
|
package/assets/bg1.png
ADDED
|
Binary file
|
package/assets/bluma.png
ADDED
|
Binary file
|
package/assets/image.png
ADDED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -294,6 +294,10 @@
|
|
|
294
294
|
"filepath": {
|
|
295
295
|
"type": "string",
|
|
296
296
|
"description": "Path to the file to count lines from. Can be relative or absolute."
|
|
297
|
+
},
|
|
298
|
+
"file_path": {
|
|
299
|
+
"type": "string",
|
|
300
|
+
"description": "Alias for filepath, accepted for consistency with edit/file tools."
|
|
297
301
|
}
|
|
298
302
|
},
|
|
299
303
|
"required": [
|
|
@@ -314,6 +318,10 @@
|
|
|
314
318
|
"type": "string",
|
|
315
319
|
"description": "Path to the file (workspace-relative or absolute)."
|
|
316
320
|
},
|
|
321
|
+
"file_path": {
|
|
322
|
+
"type": "string",
|
|
323
|
+
"description": "Alias for filepath, accepted for consistency with edit/file tools."
|
|
324
|
+
},
|
|
317
325
|
"offset": {
|
|
318
326
|
"type": "integer",
|
|
319
327
|
"description": "1-based start line; same as start_line. Defaults to 1."
|
|
@@ -765,7 +773,7 @@
|
|
|
765
773
|
"type": "function",
|
|
766
774
|
"function": {
|
|
767
775
|
"name": "ask_user_question",
|
|
768
|
-
"description": "Ask the user one or more multiple-choice questions in the terminal (AskUserQuestion). Blocks until they answer.
|
|
776
|
+
"description": "Ask the user one or more multiple-choice questions in the terminal (AskUserQuestion). Blocks until they answer. Supports multiple questions, option previews, and optional multi-select.",
|
|
769
777
|
"parameters": {
|
|
770
778
|
"type": "object",
|
|
771
779
|
"properties": {
|
|
@@ -776,14 +784,15 @@
|
|
|
776
784
|
"properties": {
|
|
777
785
|
"question": { "type": "string", "description": "Question text" },
|
|
778
786
|
"header": { "type": "string", "description": "Short section title" },
|
|
779
|
-
"multiSelect": { "type": "boolean", "description": "
|
|
787
|
+
"multiSelect": { "type": "boolean", "description": "Allow selecting multiple options for this question." },
|
|
780
788
|
"options": {
|
|
781
789
|
"type": "array",
|
|
782
790
|
"items": {
|
|
783
791
|
"type": "object",
|
|
784
792
|
"properties": {
|
|
785
793
|
"label": { "type": "string" },
|
|
786
|
-
"description": { "type": "string" }
|
|
794
|
+
"description": { "type": "string" },
|
|
795
|
+
"preview": { "type": "string", "description": "Optional rendered preview shown beside the options." }
|
|
787
796
|
},
|
|
788
797
|
"required": ["label"]
|
|
789
798
|
}
|