@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 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
+ ![BluMa Background](assets/bg.png)
2
4
 
3
5
  [![License: Apache 2.0](https://img.shields.io/badge/license-Apache%2.0-blue.svg?style=flat-square)](LICENSE)
4
6
  [![Node.js >=20](https://img.shields.io/badge/node-%3E%3D20-brightgreen?style=flat-square)](https://nodejs.org/)
5
7
  [![Version](https://img.shields.io/npm/v/@nomad-e/bluma-cli?style=flat-square)](https://www.npmjs.com/package/@nomad-e/bluma-cli)
8
+ [![Build Status](https://img.shields.io/badge/build-passing-brightgreen?style=flat-square)](https://github.com/Nomad-e/bluma-cli/actions)
9
+ [![Tests](https://img.shields.io/badge/tests-Jest-blue?style=flat-square)](https://jestjs.io/)
10
+ [![TypeScript](https://img.shields.io/badge/%3C%2F%3E-TypeScript-%230074c1.svg?style=flat-square)](https://www.typescriptlang.org/)
11
+ [![Code Style](https://img.shields.io/badge/code_style-Prettier-ff69b4?style=flat-square)](https://prettier.io/)
12
+ [![Downloads](https://img.shields.io/npm/dm/@nomad-e/bluma-cli?style=flat-square)](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
- ### 🤖 **50+ Native Tools**
31
- Comprehensive toolset for file operations, code analysis, web search, and more:
32
- - **Filesystem**: `edit_tool`, `file_write`, `read_file_lines`, `ls_tool`, `find_by_name`, `grep_search`
33
- - **Execution**: `shell_command`, `repl`, `command_status`, `kill_command`
34
- - **Communication**: `ask_user_question`, `send_message`, `brief`, `signal_mailbox`
35
- - **Planning**: `todo`, `task_boundary`, `task_create`, `task_update`, `enter_plan_mode`
36
- - **Knowledge**: `search_web`, `web_fetch`, `coding_memory`, `ctx_inspect`
37
- - **Agent Coordination**: `spawn_agent`, `wait_agent`, `list_agents`, `kill_agent`
38
- - **Specialized**: `context_collapse`, `dream_engine`, `snip`, `lsp_query`, `notebook_edit`
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
- ### 📝 **50+ Slash Commands**
47
- Quick access to common operations:
48
- - **Session**: `/undo`, `/redo`, `/diff`, `/clear`, `/sessions`, `/attach`, `/bridge`, `/logs`, `/resume`, `/kill`
49
- - **Inspect**: `/explain`, `/fix`, `/editor`, `/config`, `/bug`, `/optimize`, `/refactor`, `/document`, `/search`, `/context`, `/token`, `/settings`, `/history`, `/alias`, `/macro`, `/template`, `/share`, `/copy`
50
- - **Agent**: `/test`, `/chat`, `/code`, `/terminal`, `/file`
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 control
57
- - **Snip Tool**: Extract and remove old conversation snippets
58
- - **Dream Engine**: Background memory consolidation and deduplication
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
- ### 🔧 **Plan Mode**
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
- ### 🛠️ **Skills System**
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
- - **Workers overlay** for multi-agent visualization
82
- - **Thread management** for multi-thread conversations
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
- - **FactorAI integration**: Optional sandbox backend for isolated execution
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
- ### 📦 **Native Performance**
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
- Message Queue │ Agent Core │ Tool Invoker
113
- Session Manager │ Prompt Builder
159
+ Session Registry │ Agent Core │ Tool Invoker
160
+ Thread Manager │ Prompt Builder Mailbox IPC │
114
161
  ├─────────────────────────────────────────────────────────────┤
115
- │ Native Tools (50+) │ Skills │ MCP Clients
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/`: Native tool implementations
129
- - `runtime/`: Session runtime, sandbox policy
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
- - **`src/app/hooks/`**: React hooks for state management
132
- - **`src/app/utils/`**: Utility functions and helpers
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 Rust native modules |
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 dev to main # Create PR from dev to main
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
- ## 🔧 Tool Categories
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
- - **Issues**: Report bugs and suggest features on GitHub
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
- ## 📄 License
363
+ ## 👤 Author
364
364
 
365
- Apache 2.0see [LICENSE](LICENSE) for details.
365
+ **Alex Fonseca** — [@nomad-e](https://github.com/Nomad-e)
366
366
 
367
367
  ---
368
368
 
369
- <p align="center">
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
Binary file
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. Only the first question is shown; options must be single-select.",
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": "Not supported yet; omit or false." },
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
  }