@nomad-e/bluma-cli 0.1.83 → 0.2.1

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
@@ -11,7 +11,7 @@
11
11
 
12
12
  > **Credit:** BluMa was conceived and architected by **Alex Fonseca**.
13
13
 
14
- **Current Version:** 0.1.74
14
+ **Current Version:** 0.1.84
15
15
 
16
16
  ---
17
17
 
@@ -42,7 +42,7 @@ BluMa operates as a **conversational agent** in the terminal, combining:
42
42
  - **Rich UI Layer**: React/Ink 5 components for interactive prompts, live overlays, and real-time feedback
43
43
  - **Agent Layer**: LLM orchestration via FactorRouter with tool invocation and context management
44
44
  - **Runtime Layer**: Task tracking, plugin system, hooks, diagnostics, session management, and coordinator mode
45
- - **Tool Layer**: 45+ native tools + MCP SDK integration for external tools
45
+ - **Tool Layer**: 50+ native tools + MCP SDK integration for external tools
46
46
 
47
47
  The agent maintains persistent conversation history, workspace snapshots, and coding memory across sessions.
48
48
 
@@ -63,22 +63,24 @@ The agent maintains persistent conversation history, workspace snapshots, and co
63
63
  - **Hook Registry**: Event-driven lifecycle tracking (tool calls, decisions, state changes)
64
64
  - **Task Store**: Persistent task management with PLANNING → EXECUTION → VERIFICATION flow
65
65
  - **Session Registry**: Multi-session support with process health monitoring
66
+ - **Thread System**: Multi-thread conversation management with isolated contexts
66
67
  - **Diagnostics**: Real-time system snapshot (tasks, hooks, plugins, sessions)
67
68
  - **Tool Execution Policy**: Intelligent decisions based on sandbox mode and safety
68
69
 
69
70
  ### Tools & Skills
70
- - **45+ Native Tools**: File operations, search, shell commands, web fetch, agent coordination, task management, MCP resources, cron scheduling, LSP queries, notebook editing
71
+ - **50+ Native Tools**: File operations, search, shell commands, web fetch, agent coordination, task management, MCP resources, cron scheduling, LSP queries, notebook editing, REPL execution
71
72
  - **Coordinator Mode**: Orchestrator playbook for delegating work to background workers
72
73
  - **MCP Integration**: Model Context Protocol SDK for external tool servers
73
74
  - **Skills System**: Pluggable knowledge modules (git, PDF, Excel, etc.)
74
- - **Agent Coordination**: Spawn/wait/list subagents for parallel work
75
+ - **Agent Coordination**: Spawn/wait/list subagents for parallel work with bidirectional mailbox system
75
76
 
76
77
  ### UI Components
77
- - **Slash Commands**: 20+ built-in commands (`/help`, `/model`, `/tasks`, `/plugins`, etc.)
78
+ - **Slash Commands**: 30+ built-in commands (`/help`, `/model`, `/tasks`, `/plugins`, `/threads`, etc.)
78
79
  - **Live Overlays**: Working timers, progress indicators, streaming text
79
80
  - **Diff Previews**: Side-by-side code comparisons before edits
80
81
  - **Tool Result Cards**: Structured display of tool outputs
81
82
  - **Session Panels**: Real-time monitoring with log streaming
83
+ - **Thread Management**: Multi-thread conversation UI with thread switching
82
84
 
83
85
  ---
84
86
 
@@ -153,6 +155,7 @@ npm start
153
155
  > run npm test in the background
154
156
  > /tasks to see active tasks
155
157
  > /model to switch LLM model
158
+ > /threads to manage conversation threads
156
159
  ```
157
160
 
158
161
  ---
@@ -187,7 +190,8 @@ npm start
187
190
  ├── coding_memory.json # Persistent coding notes
188
191
  ├── artifacts/ # Saved plans and documents
189
192
  ├── plugins/ # Global plugins
190
- └── sessions/ # Session history
193
+ ├── sessions/ # Session history
194
+ └── threads/ # Thread storage
191
195
  ```
192
196
 
193
197
  ---
@@ -198,15 +202,19 @@ npm start
198
202
  ┌─────────────────────────────────────────────────────────────┐
199
203
  │ UI Layer │
200
204
  │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────────┐ │
201
- │ │ App │ │ Input │ │ Slash │ │ ToolResult │ │
202
- │ │ (Ink) │ │ Prompt │ │ Commands │ │ Display │ │
205
+ │ │ Bluma │ │ Input │ │ Slash │ │ ToolResult │ │
206
+ │ │ Session │ │ Prompt │ │ Commands │ │ Display │ │
207
+ │ │ (Ink) │ │ │ │ │ │ │ │
203
208
  │ └────┬─────┘ └────┬─────┘ └────┬─────┘ └──────┬───────┘ │
204
- └───────┼────────────┼────────────┼──────────────┼───────────┘
205
- │ │
206
- └────────────┴────────────┴──────────────┘
207
-
208
- ┌────────────────────────┼────────────────────────────────────┐
209
- │ Agent Layer │
209
+ │ │ │ │ │ │
210
+ ┌────┴────────────┴────────────┴──────────────┴─────┐
211
+ │ │ BlumaShell / BlumaViewport │ │
212
+ │ BlumaTranscript / BlumaBottomDock │ │
213
+ │ └────────────────────────────────────────────────────┘ │
214
+ └─────────────────────────────────────────────────────────────┘
215
+
216
+ ┌─────────────────────────────┼────────────────────────────────┐
217
+ │ Agent Layer │
210
218
  │ ┌──────────────┐ ┌──────────┐ ┌──────────────────────┐ │
211
219
  │ │ Agent │ │ BluMa │ │ RouteManager │ │
212
220
  │ │ Orchestrator│ │ Core │ │ (FactorRouter) │ │
@@ -216,10 +224,13 @@ npm start
216
224
  │ │ ToolInvoker │ │ LLM │ │ PromptBuilder │ │
217
225
  │ │ │ │ Client │ │ + ContextManager │ │
218
226
  │ └──────────────┘ └─────────┘ └──────────────────────┘ │
227
+ │ ┌──────────────────────────────────────────────────────┐ │
228
+ │ │ Thread Manager / Thread Store │ │
229
+ │ └──────────────────────────────────────────────────────┘ │
219
230
  └─────────────────────────────────────────────────────────────┘
220
-
221
- ┌────────────────────────┼────────────────────────────────────┐
222
- │ Runtime Layer
231
+
232
+ ┌─────────────────────────────┼────────────────────────────────┐
233
+ │ Runtime Layer
223
234
  │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────────┐ │
224
235
  │ │TaskStore │ │HookReg. │ │PluginReg.│ │SessionReg. │ │
225
236
  │ │ │ │ │ │ │ │ │ │
@@ -232,18 +243,23 @@ npm start
232
243
  │ │Feature │ │Plan Mode │ │Tool Auto │ │Tool Permission│ │
233
244
  │ │Flags │ │Session │ │Approve │ │Classifier │ │
234
245
  │ └──────────┘ └──────────┘ └──────────┘ └──────────────┘ │
246
+ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────────┐ │
247
+ │ │Mailbox │ │Worker │ │Permission│ │Thread │ │
248
+ │ │Registry │ │Context │ │Rules │ │Manager │ │
249
+ │ └──────────┘ └──────────┘ └──────────┘ └──────────────┘ │
235
250
  └─────────────────────────────────────────────────────────────┘
236
-
237
- ┌────────────────────────┼────────────────────────────────────┐
238
- │ Tools Layer
251
+
252
+ ┌─────────────────────────────┼────────────────────────────────┐
253
+ │ Tools Layer
239
254
  │ ┌──────────────────────────────────────────────────────┐ │
240
- │ │ Native Tools (45+) │ │
255
+ │ │ Native Tools (50+) │ │
241
256
  │ │ edit_tool, file_write, shell_command, grep_search, │ │
242
257
  │ │ spawn_agent, wait_agent, list_agents, │ │
258
+ │ │ send_message, list_mailbox_messages, signal_mailbox,│ │
243
259
  │ │ todo, task_boundary, task_create, task_list, │ │
244
260
  │ │ task_get, task_update, task_stop, │ │
245
261
  │ │ coding_memory, search_web, web_fetch, load_skill, │ │
246
- │ │ message, ask_user_question, │ │
262
+ │ │ message, ask_user_question, repl, │ │
247
263
  │ │ list_mcp_resources, read_mcp_resource, │ │
248
264
  │ │ cron_create, cron_list, cron_delete, │ │
249
265
  │ │ lsp_query, notebook_edit, │ │
@@ -260,7 +276,7 @@ npm start
260
276
 
261
277
  ## Native Tools
262
278
 
263
- BluMa includes **45+ built-in tools** organized by category:
279
+ BluMa includes **50+ built-in tools** organized by category:
264
280
 
265
281
  ### File Operations
266
282
  | Tool | Description |
@@ -292,7 +308,7 @@ BluMa includes **45+ built-in tools** organized by category:
292
308
  | `send_message` | Send follow-up to running worker (continue without re-spawn) |
293
309
  | `list_mailbox_messages` | Read messages from workers (progress, permission requests) |
294
310
  | `signal_mailbox` | Send ack/nack/progress signals to workers |
295
- | `poll_mailbox` | Poll mailbox for new messages (legacy polling mode) |
311
+ | `poll_mailbox` | Poll mailbox for new messages |
296
312
 
297
313
  ### Task & Project Management
298
314
  | Tool | Description |
@@ -304,8 +320,17 @@ BluMa includes **45+ built-in tools** organized by category:
304
320
  | `task_get` | Get one task by id |
305
321
  | `task_update` | Update task fields |
306
322
  | `task_stop` | Cancel a task |
307
- | `create_artifact` | Save documents under `<workspace>/.bluma/artifacts/<session>/` (see `task_boundary` → `artifacts_dir`) |
308
- | `read_artifact` | Read artifacts from the current session directory under `.bluma/artifacts/` |
323
+ | `task_output` | Read task output in real-time |
324
+ | `create_artifact` | Save documents under `<workspace>/.bluma/artifacts/<session>/` |
325
+ | `read_artifact` | Read artifacts from the current session directory |
326
+
327
+ ### Thread Management (v0.1.84+)
328
+ | Tool | Description |
329
+ |------|-------------|
330
+ | `thread_create` | Create new conversation thread |
331
+ | `thread_list` | List all threads |
332
+ | `thread_switch` | Switch to different thread |
333
+ | `thread_archive` | Archive a thread |
309
334
 
310
335
  ### Knowledge & Research
311
336
  | Tool | Description |
@@ -339,7 +364,6 @@ BluMa includes **45+ built-in tools** organized by category:
339
364
  |------|-------------|
340
365
  | `lsp_query` | LSP go-to-definition or references (TS/JS) |
341
366
  | `repl` | Interactive code execution (Python, Node, Bash) |
342
- | `task_output` | Read task output in real-time |
343
367
 
344
368
  ### Specialized
345
369
  | Tool | Description |
@@ -363,6 +387,29 @@ BluMa includes **45+ built-in tools** organized by category:
363
387
 
364
388
  ## Current Features
365
389
 
390
+ ### Thread System (v0.1.84+)
391
+ **Multi-thread conversation management** for isolated contexts:
392
+
393
+ ```typescript
394
+ // Create a new thread
395
+ thread_create({
396
+ name: "Feature Implementation",
397
+ context: "Working on authentication module"
398
+ })
399
+
400
+ // List all threads
401
+ thread_list()
402
+
403
+ // Switch between threads
404
+ thread_switch({ threadId: "thread-123" })
405
+ ```
406
+
407
+ **Key Benefits:**
408
+ - **Isolated contexts** - Each thread maintains separate conversation history
409
+ - **Parallel work** - Work on multiple features simultaneously
410
+ - **Context preservation** - Switch without losing previous context
411
+ - **Thread-specific memory** - Coding memories scoped to threads
412
+
366
413
  ### Mailbox System (Bidirectional Communication)
367
414
  **Push-based communication** between coordinator and workers using EventEmitter:
368
415
 
@@ -619,6 +666,18 @@ task_boundary({
619
666
  });
620
667
  ```
621
668
 
669
+ ### Thread Manager (v0.1.84+)
670
+
671
+ Manage multiple conversation threads:
672
+
673
+ ```typescript
674
+ // Thread operations
675
+ thread_create({ name: "Feature A" })
676
+ thread_list()
677
+ thread_switch({ threadId: "..." })
678
+ thread_archive({ threadId: "..." })
679
+ ```
680
+
622
681
  ### Hook Registry
623
682
 
624
683
  Event-driven lifecycle tracking:
@@ -659,6 +718,7 @@ Real-time system snapshot:
659
718
  > /diagnostics hooks # Hook registry status
660
719
  > /diagnostics plugins # Plugin registry status
661
720
  > /diagnostics sessions # Active sessions
721
+ > /diagnostics threads # Thread overview
662
722
  ```
663
723
 
664
724
  ### Runtime Files
@@ -669,6 +729,7 @@ Real-time system snapshot:
669
729
  | `~/.bluma/hooks.json` | Hook registry state |
670
730
  | `~/.bluma/sessions/` | Session history and logs |
671
731
  | `~/.bluma/plugins/` | Global plugin storage |
732
+ | `~/.bluma/threads/` | Thread storage |
672
733
 
673
734
  ### Tool Execution Policy
674
735
 
@@ -705,6 +766,14 @@ Built-in terminal commands (type `/` to see all):
705
766
  | `/compact` | Manually compact conversation context |
706
767
  | `/export` | Export conversation as markdown |
707
768
 
769
+ ### Threads (v0.1.84+)
770
+ | Command | Description |
771
+ |---------|-------------|
772
+ | `/threads` | List all conversation threads |
773
+ | `/thread [id]` | Switch to thread or show current |
774
+ | `/thread new [name]` | Create new thread |
775
+ | `/thread archive [id]` | Archive a thread |
776
+
708
777
  ### Agent
709
778
  | Command | Description |
710
779
  |---------|-------------|
@@ -750,6 +819,7 @@ Built-in terminal commands (type `/` to see all):
750
819
  |----------|-------------|
751
820
  | `Ctrl+V / Cmd+V` | Paste from clipboard: image → cache `~/.cache/bluma/clipboard`; text; or file path as image |
752
821
  | `Ctrl+Shift+I` | Same as Ctrl+V (paste image, text, or file path) |
822
+ | `Ctrl+O` | Expand truncated previews in tool results |
753
823
 
754
824
  ---
755
825
 
@@ -759,6 +829,8 @@ Built-in terminal commands (type `/` to see all):
759
829
 
760
830
  ```bash
761
831
  npm run build # Production build
832
+ npm run build:native # Build native modules
833
+ npm run build:all # Build native + main
762
834
  npm start # Build + run
763
835
  ```
764
836
 
@@ -769,6 +841,15 @@ npm run lint # Check code style
769
841
  npm run lint:fix # Auto-fix issues
770
842
  ```
771
843
 
844
+ ### Test
845
+
846
+ ```bash
847
+ npm test # Run all tests
848
+ npm run test:watch # Watch mode
849
+ npm run test:parallel # Parallel test execution
850
+ npm run test:parallel:fast # Fast parallel with 8 workers
851
+ ```
852
+
772
853
  ### Project Structure
773
854
 
774
855
  ```
@@ -787,7 +868,7 @@ src/
787
868
  │ │ │ └── types/
788
869
  │ │ │ └── errors.ts # Error type definitions
789
870
  │ │ ├── config/
790
- │ │ │ ├── native_tools.json # Tool definitions (45+)
871
+ │ │ │ ├── native_tools.json # Tool definitions (50+)
791
872
  │ │ │ ├── skills/ # Bundled skills
792
873
  │ │ │ │ ├── git-commit/
793
874
  │ │ │ │ ├── git-pr/
@@ -797,10 +878,6 @@ src/
797
878
  │ │ │ │ └── xlsx/
798
879
  │ │ │ │ └── scripts/
799
880
  │ │ │ │ └── office/ # Office document handling
800
- │ │ │ │ ├── pack.py
801
- │ │ │ │ ├── unpack.py
802
- │ │ │ │ ├── validate.py
803
- │ │ │ │ └── soffice.py
804
881
  │ │ ├── core/ # LLM, context, prompts
805
882
  │ │ │ ├── context-api/ # Context management
806
883
  │ │ │ │ ├── context_manager.ts # Token-aware context
@@ -820,13 +897,18 @@ src/
820
897
  │ │ │ │ ├── system_prompt_sections.ts
821
898
  │ │ │ │ ├── system_reminders.ts
822
899
  │ │ │ │ └── tool_guidance.ts
900
+ │ │ │ ├── thread/ # Thread management (v0.1.84+)
901
+ │ │ │ │ ├── index.ts
902
+ │ │ │ │ ├── thread_manager.ts
903
+ │ │ │ │ ├── thread_store.ts
904
+ │ │ │ │ └── types.ts
823
905
  │ │ │ └── context_viz.ts # Context visualization
824
906
  │ │ ├── docs/
825
907
  │ │ │ └── TOOL_PARITY.md # Tool parity documentation
826
908
  │ │ ├── feedback/
827
909
  │ │ │ └── feedback_system.ts # Smart feedback system
828
910
  │ │ │ └── feedback_scoring.ts # User feedback scoring
829
- │ │ ├── runtime/ # Orchestration layer (v0.1.41+)
911
+ │ │ ├── runtime/ # Orchestration layer
830
912
  │ │ │ ├── diagnostics.ts # System snapshots
831
913
  │ │ │ ├── feature_flags.ts # Feature gates
832
914
  │ │ │ ├── hook_registry.ts # Event-driven hooks
@@ -867,7 +949,7 @@ src/
867
949
  │ │ │ │ └── mcp_client.ts # MCP SDK client
868
950
  │ │ │ ├── shared/
869
951
  │ │ │ │ └── token_utils.ts # Token utilities
870
- │ │ │ └── natives/ # 45+ native tool implementations
952
+ │ │ │ └── natives/ # 50+ native tool implementations
871
953
  │ │ │ ├── agent_coordination.ts
872
954
  │ │ │ ├── ask_user_question.ts
873
955
  │ │ │ ├── async_command.ts
@@ -879,6 +961,7 @@ src/
879
961
  │ │ │ ├── file_write.ts
880
962
  │ │ │ ├── find_by_name.ts
881
963
  │ │ │ ├── grep_search.ts
964
+ │ │ │ ├── list_mailbox_messages.ts
882
965
  │ │ │ ├── load_skill.ts
883
966
  │ │ │ ├── ls.ts
884
967
  │ │ │ ├── lsp_query.ts
@@ -886,11 +969,16 @@ src/
886
969
  │ │ │ ├── message.ts
887
970
  │ │ │ ├── notebook_edit.ts
888
971
  │ │ │ ├── plan_mode_tools.ts
972
+ │ │ │ ├── poll_mailbox.ts
889
973
  │ │ │ ├── readLines.ts
974
+ │ │ │ ├── repl.ts
890
975
  │ │ │ ├── search_web.ts
976
+ │ │ │ ├── send_message.ts
891
977
  │ │ │ ├── session_cron.ts
892
978
  │ │ │ ├── shell_command.ts
979
+ │ │ │ ├── signal_mailbox.ts
893
980
  │ │ │ ├── task_boundary.ts
981
+ │ │ │ ├── task_output.ts
894
982
  │ │ │ ├── task_tools.ts
895
983
  │ │ │ ├── todo.ts
896
984
  │ │ │ ├── view_file_outline.ts
@@ -905,29 +993,38 @@ src/
905
993
  │ │ └── user_message_images.ts
906
994
  │ └── ui/
907
995
  │ ├── App.tsx # Main UI component
996
+ │ ├── BlumaSession.tsx # Session component (v0.1.84+)
908
997
  │ ├── Asci/
909
998
  │ │ └── AsciiArt.ts
910
- │ ├── components/ # 25+ UI components
999
+ │ ├── components/ # 35+ UI components
911
1000
  │ │ ├── AnimatedBorder.tsx
912
1001
  │ │ ├── AskUserQuestionPrompt.tsx
913
1002
  │ │ ├── AssistantMessageDisplay.tsx
1003
+ │ │ ├── BlumaBottomDock.tsx # Bottom dock (v0.1.84+)
1004
+ │ │ ├── BlumaShell.tsx # Shell container (v0.1.84+)
1005
+ │ │ ├── BlumaTranscript.tsx # Message transcript (v0.1.84+)
1006
+ │ │ ├── BlumaViewport.tsx # Viewport container (v0.1.84+)
1007
+ │ │ ├── BlumaWorkersOverlay.tsx # Workers overlay (v0.1.84+)
914
1008
  │ │ ├── CollapsibleResult.tsx
915
1009
  │ │ ├── ConfirmationPrompt.tsx # Permission confirmation dialog
1010
+ │ │ ├── CtrlOToExpand.tsx # Ctrl+O expansion (v0.1.84+)
916
1011
  │ │ ├── EditToolDiffPanel.tsx # Diff preview for edits
917
1012
  │ │ ├── ErrorMessage.tsx
918
1013
  │ │ ├── ExpandedPreviewBlock.tsx
1014
+ │ │ ├── FilePathLink.tsx # File path links (v0.1.84+)
1015
+ │ │ ├── HighlightedCode.tsx # Syntax highlighting (v0.1.84+)
919
1016
  │ │ ├── InputPrompt.tsx # User input
920
1017
  │ │ ├── InteractiveMenu.tsx # Interactive menu component
921
1018
  │ │ ├── MarkdownRenderer.tsx
922
1019
  │ │ ├── ProgressBar.tsx
923
1020
  │ │ ├── ReasoningDisplay.tsx # LLM reasoning
924
- │ │ │ ├── SessionInfoConnectingMCP.tsx
925
1021
  │ │ ├── SessionStats.tsx
926
1022
  │ │ ├── SimpleDiff.tsx
927
1023
  │ │ ├── SlashCommands.tsx # 30+ commands
928
- │ │ ├── StatusNotification.tsx
929
1024
  │ │ ├── StartupUpdateGate.tsx # Update check gate
1025
+ │ │ ├── StatusNotification.tsx
930
1026
  │ │ ├── StreamingText.tsx # Live text output
1027
+ │ │ ├── TaskDisplay.tsx
931
1028
  │ │ ├── TodoPlanDisplay.tsx # Task visualization
932
1029
  │ │ ├── ToolCallDisplay.tsx
933
1030
  │ │ ├── ToolInvocationBlock.tsx
@@ -939,33 +1036,35 @@ src/
939
1036
  │ │ ├── WorkerStatusList.tsx # Active workers list
940
1037
  │ │ ├── WorkerTranscript.tsx # Worker conversation transcript
941
1038
  │ │ ├── WorkingTimer.tsx # Work duration timer
1039
+ │ │ ├── WorkingShimmerText.tsx # Shimmer text effect
942
1040
  │ │ ├── streamingTextFlush.ts
943
- │ │ └── toolCallRenderers.tsx
1041
+ │ │ ├── toolCallRenderers.tsx
1042
+ │ │ └── slash-commands/ # Slash command renderers
1043
+ │ │ ├── SessionLivePanel.tsx
1044
+ │ │ ├── SlashCommands.types.ts
1045
+ │ │ ├── commandHelpers.tsx
1046
+ │ │ ├── constants.ts
1047
+ │ │ └── renderers/
1048
+ │ │ ├── index.ts
1049
+ │ │ ├── configRenderers.tsx
1050
+ │ │ ├── infoRenderers.tsx
1051
+ │ │ ├── permissionRenderers.tsx
1052
+ │ │ ├── pluginRenderers.tsx
1053
+ │ │ ├── sessionRenderers.tsx
1054
+ │ │ ├── staticRenderers.tsx
1055
+ │ │ ├── taskRenderers.tsx
1056
+ │ │ └── threadRenderers.tsx # Thread renderers (v0.1.84+)
944
1057
  │ ├── constants/
945
1058
  │ │ ├── historyLayout.ts # History layout constants
946
1059
  │ │ ├── inputPaste.ts # Input paste constants
947
- │ │ └── toolUiPreview.ts # Tool UI preview constants
1060
+ │ │ ├── toolUiPreview.ts # Tool UI preview constants
948
1061
  │ │ └── toolUiSymbols.ts # Tool UI symbols
949
1062
  │ ├── hooks/
950
1063
  │ │ ├── useAtCompletion.ts # Completion hook
1064
+ │ │ ├── useBlumaSessionRuntime.tsx # Session runtime hook (v0.1.84+)
951
1065
  │ │ └── useWorkerProgress.ts # Worker progress hook
952
1066
  │ ├── prompts/
953
1067
  │ │ └── initCommandPrompt.ts # Init command prompt
954
- │ ├── slash-commands/
955
- │ │ ├── SlashCommands.types.ts # Type definitions
956
- │ │ ├── commandHelpers.tsx # Command helpers
957
- │ │ ├── constants.ts # Slash command constants
958
- │ │ ├── SessionLivePanel.tsx # Session live panel
959
- │ │ ├── streamingTextFlush.ts # Streaming text flush
960
- │ │ └── renderers/
961
- │ │ ├── index.ts
962
- │ │ ├── configRenderers.tsx
963
- │ │ ├── infoRenderers.tsx
964
- │ │ ├── permissionRenderers.tsx
965
- │ │ ├── pluginRenderers.tsx
966
- │ │ ├── sessionRenderers.tsx
967
- │ │ ├── staticRenderers.tsx
968
- │ │ └── taskRenderers.tsx
969
1068
  │ ├── theme/
970
1069
  │ │ ├── blumaTerminal.ts
971
1070
  │ │ ├── themes.ts # Theme definitions
@@ -984,7 +1083,10 @@ src/
984
1083
  │ ├── toolActionLabels.ts # Tool action labels
985
1084
  │ ├── toolDisplayLabels.ts # Tool display labels
986
1085
  │ ├── toolInvocationPairing.ts
987
- └── useSimpleInputBuffer.ts
1086
+ ├── toolResultStatusStore.ts
1087
+ │ ├── update_message.ts
1088
+ │ ├── useSimpleInputBuffer.ts
1089
+ │ └── vim_engine.ts # Vim mode engine
988
1090
  ├── main.ts # Entry point
989
1091
  └── types/
990
1092
  └── semver-functions.d.ts
@@ -997,12 +1099,14 @@ src/
997
1099
  ```bash
998
1100
  npm test # Run all tests
999
1101
  npm run test:watch # Watch mode
1102
+ npm run test:parallel # Parallel execution
1103
+ npm run test:parallel:fast # Fast mode with 8 workers
1000
1104
  ```
1001
1105
 
1002
1106
  ### Test Structure
1003
1107
 
1004
1108
  ```
1005
- tests/ # 35+ test files (flat structure)
1109
+ tests/ # 40+ test files
1006
1110
  ├── agent_*.spec.ts # Agent routing, overlays, coordination
1007
1111
  ├── edit_tool.spec.ts # File editing operations
1008
1112
  ├── file_write.spec.ts # File write operations
@@ -1026,6 +1130,8 @@ tests/ # 35+ test files (flat structure)
1026
1130
  ├── ui_*.spec.ts(x) # UI component tests
1027
1131
  ├── llm_stream_partial.spec.ts # LLM streaming partial handling
1028
1132
  ├── llm_errors.spec.ts # LLM error handling
1133
+ ├── context_manager_sanitize.spec.ts # Context sanitization
1134
+ ├── coordinator-worker-mailbox.integration.spec.ts # Mailbox system
1029
1135
  ├── jest-resolver.cjs # Jest resolver configuration
1030
1136
  └── ... # Additional integration and unit tests
1031
1137
  ```
@@ -1067,16 +1173,20 @@ Apache 2.0 — see [LICENSE](LICENSE) for details.
1067
1173
  - **Author & Architect**: Alex Fonseca (conceived and architected BluMa)
1068
1174
  - **npm Package**: [@nomad-e/bluma-cli](https://www.npmjs.com/package/@nomad-e/bluma-cli)
1069
1175
 
1070
- ### Runtime Modules (v0.1.41+)
1176
+ ### Runtime Modules
1071
1177
 
1072
1178
  BluMa's runtime layer provides enterprise-grade orchestration:
1073
1179
 
1074
1180
  | Module | Purpose | Key Features |
1075
1181
  |--------|---------|--------------|
1076
1182
  | `task_store.ts` | Task lifecycle | PLANNING → EXECUTION → VERIFICATION phases, persistence |
1183
+ | `thread_manager.ts` | Thread management | Multi-thread conversations, context isolation |
1077
1184
  | `hook_registry.ts` | Event system | Tool calls, decisions, state changes |
1078
1185
  | `plugin_registry.ts` | Plugin system | Load from `.bluma/plugins/`, lifecycle management |
1079
1186
  | `session_registry.ts` | Multi-session | Process health monitoring, session isolation |
1187
+ | `mailbox_registry.ts` | Communication | Bidirectional coordinator-worker messaging |
1188
+ | `worker_context.ts` | Worker isolation | AsyncLocalStorage-based context |
1189
+ | `permission_rules.ts` | Permissions | Granular allow/deny rules |
1080
1190
  | `sandbox_policy.ts` | Safety | Safe vs dangerous tool classification |
1081
1191
  | `tool_execution_policy.ts` | Execution rules | Auto-approve, confirm, block decisions |
1082
1192
  | `diagnostics.ts` | System snapshots | Tasks, hooks, plugins, sessions overview |
@@ -1096,6 +1206,12 @@ Key UI components that power the rich terminal experience:
1096
1206
 
1097
1207
  | Component | Purpose |
1098
1208
  |-----------|---------|
1209
+ | `BlumaSession.tsx` | Main session component with event handling |
1210
+ | `BlumaShell.tsx` | Shell container for layout |
1211
+ | `BlumaViewport.tsx` | Viewport container for responsive layout |
1212
+ | `BlumaTranscript.tsx` | Message transcript display |
1213
+ | `BlumaBottomDock.tsx` | Bottom dock for status and controls |
1214
+ | `BlumaWorkersOverlay.tsx` | Overlay for worker status |
1099
1215
  | `EditToolDiffPanel.tsx` | Side-by-side diff previews before edits |
1100
1216
  | `ToolResultCard.tsx` | Structured tool output display |
1101
1217
  | `SlashCommands.tsx` | Command palette and help |
@@ -1109,6 +1225,10 @@ Key UI components that power the rich terminal experience:
1109
1225
  | `AskUserQuestionPrompt.tsx` | Multiple-choice question UI |
1110
1226
  | `ToolInvocationBlock.tsx` | Tool call visualization |
1111
1227
  | `AssistantMessageDisplay.tsx` | Assistant message formatting |
1228
+ | `CtrlOToExpand.tsx` | Ctrl+O expansion for previews |
1229
+ | `FilePathLink.tsx` | Clickable file path links |
1230
+ | `HighlightedCode.tsx` | Syntax highlighted code blocks |
1231
+ | `WorkingShimmerText.tsx` | Shimmer text effect for loading states |
1112
1232
 
1113
1233
  ---
1114
1234