hablas-ai 1.3.19 → 1.3.20

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/CHANGELOG.md CHANGED
@@ -7,6 +7,43 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ---
9
9
 
10
+ ## [1.3.20] — 2026-06-12 · Stable Runtime Recovery
11
+
12
+ ### Changed
13
+ - Removed public mode-era commands from the stable CLI surface:
14
+ - `hablas build`
15
+ - `hablas design`
16
+ - `hablas ask`
17
+ - `/mode`
18
+ - Re-centered the product around a **single command surface**:
19
+ - `hablas`
20
+ - `hablas run "..."`
21
+ - Replaced visible mode thinking with an internal unified runtime model based on:
22
+ - `executionPath: direct | team`
23
+ - `taskKind: conversation | analysis | implementation`
24
+ - Updated the interactive REPL and non-interactive `run` command to enter through the unified runtime path first.
25
+ - Simplified setup and help messaging to match the stable mental model.
26
+
27
+ ### Removed
28
+ - Hidden gate-based routing from the active stable-line code path.
29
+ - Gate defaults from agent model configuration.
30
+ - Gate mindset registration from the built-in mindset registry.
31
+
32
+ ### Added
33
+ - Unified runtime regression smoke tests covering:
34
+ - direct casual handling
35
+ - direct quick questions
36
+ - team analysis routing
37
+ - continuity routing
38
+ - one-step delivery routing
39
+ - Stable runtime recovery documentation in:
40
+ - `docs/stable-runtime-recovery-plan-2026-06-12.md`
41
+
42
+ ### Verified
43
+ - `npm test` passes
44
+ - `npm run build` passes
45
+ - CLI help no longer exposes removed public mode commands
46
+
10
47
  ## [1.0.0] — 2026-05-31 · **First Public Release**
11
48
 
12
49
  The first formal, polished, production-ready release of Hablas CLI. Months of
package/README.md CHANGED
@@ -4,12 +4,12 @@
4
4
 
5
5
  **Premium multi-agent AI coding agent for your terminal**
6
6
 
7
- Local-first · Cloud-compatible · Watch the team work in front of you
7
+ Local-first · Cloud-compatible · One command surface · Internal specialist coordination
8
8
 
9
9
  *by [Abdulmoin Hablas](https://portfolio-monopoly63s-projects.vercel.app/)*
10
10
 
11
11
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
12
- [![Version](https://img.shields.io/badge/version-1.0.0-gold.svg)](CHANGELOG.md)
12
+ [![Version](https://img.shields.io/badge/version-1.3.20-gold.svg)](CHANGELOG.md)
13
13
  [![Node.js](https://img.shields.io/badge/Node.js-20%2B-green.svg)](https://nodejs.org)
14
14
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.5-blue.svg)](https://www.typescriptlang.org)
15
15
 
@@ -19,47 +19,47 @@ Local-first · Cloud-compatible · Watch the team work in front of you
19
19
 
20
20
  ## ✦ Overview
21
21
 
22
- **Hablas** is a multi-agent AI development system that runs in your terminal.
23
- Unlike single-model assistants, Hablas leads a **team of specialists** —
24
- Emma (Product), Bob (Architect), Alex (Engineer), David (Analyst) — and
25
- **you watch them collaborate live**, in character, while Hablas (the Team
26
- Leader) remains your single point of contact.
22
+ **Hablas** is a terminal AI development system with a **single user-facing agent** and an **internal team of specialists**.
27
23
 
28
- It runs **locally via Ollama**, or against **any OpenAI-compatible API**
29
- (NVIDIA NIM, OpenAI, Groq, Together, OpenRouter, and more).
24
+ You talk only to **Hablas**. Internally, Hablas can coordinate:
25
+ - **Emma** for product framing and requirements
26
+ - **Bob** for architecture and systems design
27
+ - **Alex** for implementation and debugging
28
+ - **David** for research and supporting analysis
30
29
 
31
- ### What makes v1.0.0 different
30
+ The current stable direction is intentionally simple:
31
+ - no visible mode system
32
+ - no hidden theatrical router persona
33
+ - one unified runtime that decides, internally and honestly, between:
34
+ - **direct leader handling** for simple turns
35
+ - **coordinated team execution** for serious engineering work
32
36
 
33
- - **Live Team Theatre** see the team handoff tasks, think, run tools,
34
- and review each other's work in real time, with an executive-silver TUI.
35
- - **Hablas-only conversation** — you talk to one leader; the rest is theatre.
36
- - **Persona-faithful** — each agent stays in their distinctive voice
37
- (Hablas is INTJ-direct, Bob is methodical, Alex is pragmatic, …).
38
- - **Token-bounded dialogue** — the inter-agent chat is capped and
39
- gracefully falls back to deterministic lines when offline.
37
+ Hablas runs **locally via Ollama**, or against **any OpenAI-compatible API**
38
+ including **NVIDIA NIM**, OpenAI, Groq, Together, OpenRouter, and others.
39
+
40
+ ### ✨ Stable-line principles
41
+
42
+ - **Single command surface** — use `hablas` interactively or `hablas run "..."` non-interactively.
43
+ - **Architectural honesty** routing is internal runtime behavior, not a public mode maze.
44
+ - **Leader-first UX** — the user speaks to Hablas only; specialists stay internal.
45
+ - **Real execution paths** — direct turns use the main agentic loop; coordinated turns use the internal team.
46
+ - **Continuity-aware** — unfinished project requests can stay on the team path and reuse context.
47
+ - **One-step delivery support** — requests like “finished project, no questions” preserve a dedicated internal flag.
40
48
 
41
49
  ### Key Features
42
50
 
43
- - **Multi-Agent System** — 5 specialized agents with their own mindsets
44
- and (optionally) their own models per role.
45
- - **T-shirt Sizing** — XS/S/M/L/XL routing so a "hi" doesn't trigger a plan.
46
- - **Plan Approval** — for L/XL tasks, you approve / edit / skip before exec.
47
- - **Dual Provider** — Ollama (local), NVIDIA NIM, or any
48
- OpenAI-compatible API. Switch live with `/provider`.
49
- - **Dynamic Model Discovery** — `/models` lists everything your API exposes.
50
- - **Agentic Loop** — multi-step tool execution with auto-retry,
51
- smart abort, and recovery hints.
52
- - **15+ Built-in Tools** — file ops, shell, codebase search, web search,
53
- web scraping, PDF reading, code execution, bug detection, and more.
54
- - **Smart Context** — project-aware prompts, memory with categories and
55
- importance decay, shared notebook, auto-injection of mentioned files.
56
- - **Premium TUI** — executive-silver theme, spinners, progress, plan
57
- boxes, session summaries.
58
- - **Three-tier safety** — `safe / confirm / dangerous` per tool.
59
- - **Ctrl+C UX** — single = cancel current op, double = exit cleanly.
60
- - **Auto Mode** — `--auto` skips tool confirmations for scripting
61
- (plan approval still required).
62
- - **Checkpoints & Undo** — `/checkpoint save|restore`, `/undo`.
51
+ - **Unified Runtime** — one internal runtime decides `direct` vs `team` execution.
52
+ - **Multi-Agent Coordination** Hablas can internally orchestrate Emma, Bob, Alex, and David.
53
+ - **Dual Provider** — Ollama (local), NVIDIA NIM, or any OpenAI-compatible API.
54
+ - **Dynamic Model Discovery** — `/models` lists everything your provider exposes.
55
+ - **Agentic Loop** — multi-step tool execution with retries, tool safety, and recovery hints.
56
+ - **Built-in Tools** file ops, shell, codebase search, web search, scraping, PDF reading, code execution, and more.
57
+ - **Smart Context** — project-aware prompts, persistent memory, shared notebook, and file auto-injection.
58
+ - **Premium TUI** — executive-silver terminal UI with team rendering and status components.
59
+ - **Three-tier safety** `safe / confirm / dangerous` tool policy behavior.
60
+ - **Ctrl+C UX** — single press cancels the current op, double press exits cleanly.
61
+ - **Auto Mode** `--auto` skips tool confirmations when appropriate.
62
+ - **Checkpoints & Undo** — `/checkpoint ...`, `/undo ...`.
63
63
  - **Team Mode** — optional Supabase + Git-based locks and presence sync.
64
64
 
65
65
  ---
@@ -71,7 +71,7 @@ git clone https://github.com/Monopoly63/mobile-bot.git
71
71
  cd mobile-bot/flowagent
72
72
  npm install
73
73
  npm run build
74
- npm link # exposes the `hablas` command globally
74
+ npm link
75
75
  ```
76
76
 
77
77
  ### Requirements
@@ -82,7 +82,11 @@ npm link # exposes the `hablas` command globally
82
82
  - An **OpenAI-compatible API** key
83
83
  - **NVIDIA NIM** API key
84
84
 
85
- First run launches a setup wizard. You can re-run it anytime with `hablas --setup`.
85
+ First run launches a setup wizard. You can re-run it anytime with:
86
+
87
+ ```bash
88
+ hablas --setup
89
+ ```
86
90
 
87
91
  ---
88
92
 
@@ -92,7 +96,10 @@ First run launches a setup wizard. You can re-run it anytime with `hablas --setu
92
96
  # Interactive REPL
93
97
  hablas
94
98
 
95
- # One-shot command
99
+ # Interactive REPL with auto-confirm for tools
100
+ hablas --auto
101
+
102
+ # One-shot unified runtime execution
96
103
  hablas run "refactor src/auth.ts to use bcrypt"
97
104
 
98
105
  # Generate a commit message from staged changes
@@ -107,6 +114,27 @@ hablas doctor
107
114
 
108
115
  ---
109
116
 
117
+ ## ✦ Mental Model
118
+
119
+ Hablas no longer exposes public modes like `build`, `design`, or `ask`.
120
+
121
+ Instead, every request goes through one internal runtime:
122
+
123
+ 1. **User input**
124
+ 2. **Unified runtime routing**
125
+ 3. **Direct leader path** *or* **coordinated team path**
126
+ 4. **Final answer from Hablas**
127
+
128
+ Examples:
129
+
130
+ - `hi` → direct reply
131
+ - `what is the current version of this project?` → direct reply
132
+ - `design the architecture for auth` → team analysis path
133
+ - `continue the unfinished flower store project` → team continuity path
134
+ - `just give me the finished project in one step no questions` → team one-step delivery path
135
+
136
+ ---
137
+
110
138
  ## ✦ Commands Reference
111
139
 
112
140
  ### Core Slash Commands
@@ -117,7 +145,7 @@ hablas doctor
117
145
  | `/about` · `/version` | Identity & version info |
118
146
  | `/team` · `/agents` | Team roster · multi-agent system status |
119
147
  | `/agents on\|off\|status\|models` | Toggle and inspect agents |
120
- | `/delegate <agent> <task>` | Manually assign a task to one agent |
148
+ | `/delegate <agent> <task>` | Manually assign a task to one visible specialist |
121
149
  | `/mindset <name>` · `/mindsets` | Switch / list agent mindsets |
122
150
  | `/clear` · `/history [n]` | Reset context · show recent turns |
123
151
  | `/status` · `/quit` | Show status · exit |
@@ -127,7 +155,7 @@ hablas doctor
127
155
  | Command | Description |
128
156
  |---|---|
129
157
  | `/model [name]` | Show or switch the active model |
130
- | `/models [page\|query]` | Browse available models (paged + search) |
158
+ | `/models [page\|query]` | Browse available models |
131
159
  | `/provider [ollama\|nvidia\|custom\|test]` | Switch / test the provider |
132
160
  | `/addmodel` · `/listmodels` · `/usemodel <name>` · `/removemodel <name>` | Manage saved provider profiles |
133
161
 
@@ -149,18 +177,18 @@ hablas doctor
149
177
  | Command | Description |
150
178
  |---|---|
151
179
  | `/memory [set\|del\|search\|clear]` | Persistent project memory |
152
- | `/learn "<preference>"` | Teach the agent a preference (importance: 9) |
180
+ | `/learn "<preference>"` | Teach the agent a preference |
153
181
  | `/context [set\|get\|del\|decisions\|clear]` | Cross-agent shared notebook |
154
- | `/plan status\|finish\|next\|reset` | Inspect the active plan |
182
+ | `/plan status\|finish\|next\|reset` | Inspect the active plan state if one exists |
155
183
 
156
184
  ### Plugins & Diagnostics
157
185
 
158
186
  | Command | Description |
159
187
  |---|---|
160
- | `/plugins [enable\|disable]` | Manage plugins (~/.hablas/plugins/) |
188
+ | `/plugins [enable\|disable]` | Manage plugins (`~/.hablas/plugins/`) |
161
189
  | `/alias [set\|del]` | Custom command aliases |
162
190
  | `/doctor` | System diagnostics |
163
- | `/session save\|list` | Save/load conversation state |
191
+ | `/session save\|list\|load` | Save/load conversation state |
164
192
 
165
193
  ---
166
194
 
@@ -172,12 +200,12 @@ hablas doctor
172
200
  | `-p, --project <path>` | Set the working directory |
173
201
  | `--provider <ollama\|custom\|nvidia>` | Choose LLM provider |
174
202
  | `--api-url <url>` · `--api-key <key>` | Configure custom/NVIDIA provider |
175
- | `--auto` | Skip tool confirmations (plan approval still required) |
203
+ | `--auto` | Skip tool confirmations where allowed |
176
204
  | `--timeout <ms>` | Per-request timeout (default 120000) |
177
205
  | `--theme <dark\|light\|galaxy\|ocean\|forest>` | UI theme |
178
206
  | `--team --user <name> --team-key <pwd>` | Enable Team Mode |
179
207
  | `--setup` | Run the first-time wizard |
180
- | `hablas run "<prompt>"` | Non-interactive single shot |
208
+ | `hablas run "<prompt>"` | Non-interactive unified runtime execution |
181
209
  | `hablas commit` · `pr` · `changelog` | Git intelligence sub-commands |
182
210
  | `hablas info` · `doctor` · `security` · `stats` | Project insights |
183
211
  | `hablas api --port 8080` | Start the REST API server |
@@ -191,10 +219,10 @@ hablas doctor
191
219
  | `read_file`, `list_dir`, `get_file_info` | Read filesystem | safe |
192
220
  | `write_file`, `edit_file`, `patch_file`, `append_to_file`, `search_and_replace` | Mutate files | confirm |
193
221
  | `delete_file`, `move_file`, `create_dir` | Manage paths | dangerous / confirm |
194
- | `run_command` | Shell execution (with timeout + blocklist) | dangerous |
195
- | `search_codebase` | Ripgrep-style search | safe |
222
+ | `run_command` | Shell execution (timeout + blocklist) | dangerous |
223
+ | `search_codebase` | Codebase search | safe |
196
224
  | `detect_bugs` | Static analysis | safe |
197
- | `web_search` | DuckDuckGo search | safe |
225
+ | `web_search` | Web search | safe |
198
226
  | `scrape_url`, `extract_links` | HTML scraping | safe |
199
227
  | `read_pdf`, `pdf_metadata` | PDF reading | safe |
200
228
  | `execute_code` | Sandboxed code execution | confirm |
@@ -203,7 +231,7 @@ hablas doctor
203
231
 
204
232
  ## ✦ Configuration
205
233
 
206
- Config lives at **`~/.hablas/config.json`**. Sub-files:
234
+ Config lives at **`~/.hablas/config.json`**.
207
235
 
208
236
  | File | Purpose |
209
237
  |---|---|
@@ -217,25 +245,18 @@ Config lives at **`~/.hablas/config.json`**. Sub-files:
217
245
 
218
246
  ---
219
247
 
220
- ## ✦ The Multi-Agent Team
248
+ ## ✦ The Internal Team
221
249
 
222
- | Agent | Title | Role | Voice |
223
- |---|---|---|---|
224
- | **★ Hablas** | Team Leader | Coordination, planning, synthesis, the only one you talk to | INTJ, authoritative, terse |
225
- | **◆ Emma** | Product Manager | Requirements, PRDs, user stories | Calm, structured |
226
- | **◆ Bob** | Architect | System design, schemas, contracts, peer-reviews Alex | Methodical, principled |
227
- | **◆ Alex** | Engineer | Implementation, debugging, tests | Pragmatic, action-biased |
228
- | **◆ David** | Data Analyst | Research, documentation, comparisons | Factual, evidence-driven |
229
-
230
- Routing is automatic and complexity-aware (T-shirt sizing):
231
-
232
- | Size | Trigger | Behavior |
250
+ | Agent | Title | Primary Responsibility |
233
251
  |---|---|---|
234
- | **XS** | Greetings, casual chat | Hablas replies directly, no tools |
235
- | **S** | Single clear question | Single agent, no plan |
236
- | **M** | Single focused task | Live theatre, one specialist + Hablas synthesis |
237
- | **L** | Multi-step, multi-concern | Plan approval live theatre with peer review |
238
- | **XL** | Full system / feature | XL plan (Emma writes PRD first) → approval → full theatre |
252
+ | **★ Hablas** | Team Leader | User interface, routing, synthesis, final delivery |
253
+ | **◆ Emma** | Product Manager | Requirements, framing, PRDs, scope |
254
+ | **◆ Bob** | Architect | Architecture, structure, trade-offs |
255
+ | **◆ Alex** | Engineer | Implementation, debugging, code changes |
256
+ | **◆ David** | Data Analyst | Research, comparisons, supporting analysis |
257
+
258
+ The user speaks to **Hablas only**.
259
+ The rest of the team is an internal execution system.
239
260
 
240
261
  ---
241
262
 
@@ -245,10 +266,13 @@ Routing is automatic and complexity-aware (T-shirt sizing):
245
266
  # Read, then edit
246
267
  > read src/auth.ts and add JWT validation
247
268
 
248
- # Multi-step (triggers L flow)
249
- > design and implement a /users endpoint with tests
269
+ # Architecture-heavy request
270
+ > design the architecture for a /users endpoint with tests and clear module boundaries
271
+
272
+ # Continuity request
273
+ > continue the unfinished flower store project from the previous PRD
250
274
 
251
- # Specific agent
275
+ # Specific visible specialist
252
276
  > /delegate bob design the cache layer for the search API
253
277
 
254
278
  # Git workflow
@@ -265,14 +289,14 @@ Routing is automatic and complexity-aware (T-shirt sizing):
265
289
 
266
290
  ## ✦ Architecture
267
291
 
268
- ```
292
+ ```text
269
293
  src/
270
- ├── repl/ REPL loop, slash commands, TUI, live theatre
271
- ├── agents/ Orchestrator, conductor, runner, channel, dialogue
272
- ├── planner/ T-shirt sizing, plan lifecycle, task queue
273
- ├── llm/ Unified provider (Ollama/Custom/NVIDIA), tool parser v2
294
+ ├── repl/ REPL loop, slash commands, terminal rendering
295
+ ├── agents/ Agent runner, conductor, channel, shared execution engine
296
+ ├── runtime/ Unified router, contracts, planner, state, reviewer
297
+ ├── llm/ Unified provider layer (Ollama/Custom/NVIDIA)
274
298
  ├── mindset/ Per-agent system prompts
275
- ├── tools/ Tool registry + 15 built-in tools
299
+ ├── tools/ Tool registry + built-in tools
276
300
  ├── context/ Session, memory, shared notebook, auto-inject
277
301
  ├── config/ Defaults + JSON loader
278
302
  ├── collaboration/ Optional Team Mode (Supabase + Git locks)
@@ -284,21 +308,42 @@ src/
284
308
  └── utils/ logger, diff, tokens
285
309
  ```
286
310
 
287
- 74 TypeScript files, ~21,000 LOC, `strict` mode, zero `@ts-ignore`,
288
- zero unused locals/parameters.
311
+ Stable-line architecture focus:
312
+ - **one runtime entry**
313
+ - **direct vs team execution path**
314
+ - **single leader UX**
315
+ - **no public mode system**
289
316
 
290
317
  ---
291
318
 
292
319
  ## ✦ Development
293
320
 
294
321
  ```bash
295
- npm install # install deps
296
- npm run build # tsc → dist/
297
- npm run lint # tsc --noEmit
298
- npm test # run the channel unit tests
299
- npm run dev -- run "your prompt" # dev mode without build
322
+ npm install
323
+ npm run build
324
+ npm run lint
325
+ npm test
326
+ npm run dev -- run "your prompt"
300
327
  ```
301
328
 
329
+ Current automated verification includes:
330
+ - agent channel tests
331
+ - execution parity tests
332
+ - unified runtime routing regression tests
333
+
334
+ ---
335
+
336
+ ## ✦ Documentation Notes
337
+
338
+ Some older design documents in `docs/` describe intermediate runtime experiments
339
+ such as visible modes or hidden gate-based routing.
340
+
341
+ For the current stable direction, start with:
342
+ - `docs/stable-runtime-recovery-plan-2026-06-12.md`
343
+
344
+ Treat older redesign / migration docs as **historical context**, not as the
345
+ current product surface.
346
+
302
347
  ---
303
348
 
304
349
  ## ✦ Author