@pellux/goodvibes-tui 0.19.53 → 0.19.55

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.
Files changed (48) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/README.md +10 -13
  3. package/docs/foundation-artifacts/knowledge-store.sql +27 -0
  4. package/docs/foundation-artifacts/operator-contract.json +15736 -7265
  5. package/package.json +2 -2
  6. package/src/audio/spoken-turn-controller.ts +4 -1
  7. package/src/input/command-args-hint.ts +36 -0
  8. package/src/input/command-registry.ts +3 -1
  9. package/src/input/commands/config.ts +7 -521
  10. package/src/input/commands/knowledge.ts +111 -1
  11. package/src/input/commands/local-runtime.ts +0 -80
  12. package/src/input/commands/operator-runtime.ts +3 -3
  13. package/src/input/commands/planning-runtime.ts +83 -34
  14. package/src/input/commands/shell-core.ts +2 -34
  15. package/src/input/commands/tts-runtime.ts +1 -389
  16. package/src/input/commands.ts +0 -2
  17. package/src/input/handler-modal-routes.ts +61 -7
  18. package/src/input/handler-modal-token-routes.ts +1 -0
  19. package/src/input/handler-picker-routes.ts +50 -4
  20. package/src/input/model-picker-provider-filter.ts +28 -0
  21. package/src/input/model-picker-types.ts +12 -0
  22. package/src/input/model-picker.ts +65 -23
  23. package/src/input/selection-modal.ts +1 -1
  24. package/src/input/settings-modal-behavior.ts +2 -0
  25. package/src/input/settings-modal-subscriptions.ts +95 -0
  26. package/src/input/settings-modal-types.ts +50 -3
  27. package/src/input/settings-modal.ts +106 -134
  28. package/src/input/tts-settings-actions.ts +100 -0
  29. package/src/main.ts +50 -45
  30. package/src/panels/builtin/agent.ts +15 -0
  31. package/src/panels/builtin/shared.ts +17 -0
  32. package/src/panels/project-planning-panel.ts +370 -0
  33. package/src/planning/project-planning-coordinator.ts +249 -0
  34. package/src/renderer/compositor.ts +2 -1
  35. package/src/renderer/conversation-overlays.ts +4 -5
  36. package/src/renderer/model-workspace.ts +488 -0
  37. package/src/renderer/settings-modal-helpers.ts +16 -1
  38. package/src/renderer/settings-modal.ts +616 -716
  39. package/src/runtime/bootstrap-command-context.ts +6 -0
  40. package/src/runtime/bootstrap-command-parts.ts +5 -0
  41. package/src/runtime/bootstrap-shell.ts +2 -0
  42. package/src/runtime/services.ts +33 -2
  43. package/src/runtime/terminal-output-guard.ts +228 -0
  44. package/src/runtime/ui-services.ts +4 -0
  45. package/src/shell/ui-openers.ts +59 -3
  46. package/src/utils/clipboard.ts +2 -1
  47. package/src/version.ts +1 -1
  48. package/src/input/commands/permissions-runtime.ts +0 -104
package/CHANGELOG.md CHANGED
@@ -4,6 +4,41 @@ All notable changes to GoodVibes TUI.
4
4
 
5
5
  ---
6
6
 
7
+ ## [0.19.55] — 2026-05-01
8
+
9
+ ### Changed
10
+ - Updated `@pellux/goodvibes-sdk` to `0.28.1`.
11
+ - Documented SDK-owned Home Graph and base knowledge refinement budget behavior: Ask returns current evidence quickly with `refinementTaskIds`, reindex queues repair work instead of blocking, broad refinement runs cap effective work per run, and stale active tasks recover to retriable blocked state.
12
+
13
+ ### Fixed
14
+ - Picked up SDK Home Graph refinement fixes for async ask repair, capped broad refinement runs, stale searching/evaluating task recovery, and non-blocking reindex repair queueing.
15
+
16
+ ## [0.19.54] — 2026-05-01
17
+
18
+ ### Added
19
+ - Added a TUI-owned Project Planning coordinator that detects explicit planning intent in normal terminal conversation, stores project-scoped planning state through the SDK, records open-question answers, and keeps daemon/non-TUI surfaces passive.
20
+ - Added the `Planning` panel for project readiness, next questions, gaps, task graph, verification gates, decisions, project language, and agent handoff metadata.
21
+ - Added documentation for TUI project planning, project-scoped knowledge spaces, the Planning panel, and passive SDK route/operator boundaries.
22
+ - Added `/knowledge ask <query>` to render the SDK-returned semantic answer, sources, facts, linked objects, gaps, confidence, and synthesized state without locally building snippets from search results.
23
+
24
+ ### Changed
25
+ - Updated `@pellux/goodvibes-sdk` to `0.28.0`.
26
+ - Reworked `/plan` so it inspects/seeds SDK-backed project planning state and no longer injects a model-authored execution-plan prompt that claims agents will spawn automatically.
27
+ - Wired the SDK semantic knowledge service into both base knowledge and Home Graph routes, using the SDK-owned bounded provider-backed semantic LLM wrapper with timeout, abort, concurrency, and capped broad-reindex LLM attempts.
28
+ - Wired the SDK web-backed semantic gap repairer into the TUI/daemon runtime composition so Home Graph and base knowledge refinement can search, ingest, and repair gaps instead of reporting an unconfigured repairer.
29
+ - Routed main provider/model, helper/tool/TTS model overrides, TTS provider/voice selection, secret-backed settings, MCP trust, subscriptions, feature flags, and all SDK config keys through the fullscreen `/config` workspace.
30
+ - Kept `/model`, `/provider`, and `/effort` as quick access model-selection commands while `/config` owns persistent settings.
31
+ - Documented SDK 0.28.0 durable knowledge refinement routes, Home Graph readiness/refinement tasks/pages/map facets, daemon OpenAI-compatible `/v1/models` and `/v1/chat/completions`, and non-terminal provider-scoped `STREAM_END` semantics.
32
+
33
+ ### Fixed
34
+ - Picked up SDK Home Graph map, ask, PDF repair, reindex, generated-page, and shared semantic knowledge/wiki fixes through `0.27.8`, including SDK-owned knowledge/Home Graph map facets, Home Assistant map filters, trailing-slash/JSON POST map compatibility, tighter TV/media-player question scoping, repair-needed handling for garbled PDF extraction text, compressed PDF stream extraction, source auto-linking by Home Assistant identity/model, `GET /api/homeassistant/home-graph/pages`, base `POST /api/knowledge/ask`, semantic Home Graph answer fields, strict candidate filtering, cleaner deterministic fact filtering by query intent, tighter semantic evidence ranking, safer subject-term handling, generated semantic page/fact anchor suppression, deterministic-to-provider enrichment upgrades, feature/spec boilerplate suppression, generated page fact-quality filtering, semantic artifact exclusion from linked objects, non-blocking Home Graph answer synthesis while semantic enrichment continues in the background, truncated deterministic fragment filtering, and lower-value manual/accessory/service text filtering in feature/spec answer prompts.
35
+ - Kept `/tts` spoken turns active across provider-scoped `STREAM_END` events so tool-using or multi-step turns continue collecting assistant deltas until `TURN_COMPLETED`, `TURN_ERROR`, `TURN_CANCEL`, or `PREFLIGHT_FAIL`.
36
+
37
+ ### Removed
38
+ - Removed the superseded `/config-old` raw config command and `/config-tts` TTS configuration command; TTS settings now live under `/config tts`.
39
+
40
+ ---
41
+
7
42
  ## [0.19.53] — 2026-04-28
8
43
 
9
44
  ### Added
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![CI](https://github.com/mgd34msu/goodvibes-tui/actions/workflows/ci.yml/badge.svg)](https://github.com/mgd34msu/goodvibes-tui/actions/workflows/ci.yml)
4
4
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
- [![Version](https://img.shields.io/badge/version-0.19.53-blue.svg)](https://github.com/mgd34msu/goodvibes-tui)
5
+ [![Version](https://img.shields.io/badge/version-0.19.55-blue.svg)](https://github.com/mgd34msu/goodvibes-tui)
6
6
 
7
7
  A terminal-native AI coding, operations, automation, knowledge, and integration console with a typed runtime, omnichannel surfaces, structured memory/knowledge, and a raw ANSI renderer.
8
8
 
@@ -165,7 +165,7 @@ The TUI now consumes the extracted `@pellux/goodvibes-sdk` platform layer for sh
165
165
  - Controller-flagged synthetic issues render above reviewer issues as `[CRITICAL]` "Controller flags"
166
166
  - Agent-detail modal surfaces `systemPromptAddendum` (WRFC engineer addendum) when present on the agent record
167
167
  - System-message router surfaces `WORKFLOW_CONSTRAINTS_ENUMERATED` as an operator-visible message when constraints are loaded
168
- - Built-in planning/strategy layer with execution plans, adaptive plan modes, and status/explain/override controls
168
+ - Built-in planning/strategy layer with TUI-owned project planning, passive SDK-backed planning artifacts, execution plans, adaptive plan modes, and status/explain/override controls
169
169
 
170
170
  ### Tools And Intelligence
171
171
  - Built-in native tools include `read`, `write`, `edit`, `find`, `exec`, `fetch`, `web-search`, `analyze`, `inspect`, `agent`, `state`, `workflow`, `registry`, `task`, `team`, `worklist`, `mcp`, `packet`, `query`, `remote`, `repl`, `control`, and `channel`
@@ -492,7 +492,7 @@ Settings are layered, not stored in a single working-directory file:
492
492
  - project overrides: `.goodvibes/tui/settings.json`
493
493
  - CLI/runtime overrides
494
494
 
495
- The shared file `~/.goodvibes/goodvibes.json` is reserved for future cross-app state; TUI settings do not live there. You can view and edit settings live with `/config` or the `/settings` modal.
495
+ The shared file `~/.goodvibes/goodvibes.json` is reserved for future cross-app state; TUI settings do not live there. You can view and edit settings live with the fullscreen `/config` workspace or `/settings`.
496
496
 
497
497
  Related storage paths:
498
498
 
@@ -808,7 +808,8 @@ GoodVibes includes an automation layer with:
808
808
  - hook-point contracts with execution authority, mutation/injection permissions, timeout policy, and failure policy metadata
809
809
  - workflow state machines such as `wrfc`, `fix_loop`, `test_then_fix`, and `review_only`
810
810
  - cron-like scheduled agent tasks with timezone-aware schedules, missed-run tracking, run history, and manual trigger support
811
- - planning commands with active-plan review, mode/explain/override/status controls, and model-authored execution-plan generation
811
+ - TUI-owned project planning with readiness gaps, one-question-at-a-time clarification, project language, decision records, task/dependency/verification metadata, and explicit execution approval
812
+ - planning commands with project-planning inspection, active-plan review, and mode/explain/override/status controls
812
813
 
813
814
  Key commands:
814
815
 
@@ -1201,16 +1202,15 @@ Those pieces cover conversation-noise routing, panel-health/performance budgets,
1201
1202
 
1202
1203
  | Command | Aliases | Description |
1203
1204
  |---------|---------|-------------|
1204
- | `/model [id]` | `/m` | Select or display the current LLM model |
1205
- | `/provider [name]` | `/p` | Switch provider, or `add <name> <baseURL> [apiKey]` / `remove <name>` |
1205
+ | `/model [id]` | `/m` | Open the fullscreen provider/model workspace, or set the current model by id |
1206
+ | `/provider [name]` | `/p` | Open provider-first model selection, or `add <name> <baseURL> [apiKey]` / `remove <name>` |
1206
1207
  | `/effort [level]` | `/e` | Show or set reasoning effort level |
1207
- | `/config [key] [value]` | `/cfg` | Show, set, or reset config values. Subcommands: `profile`, `diff`, `reset` |
1208
+ | `/config [category\|key]` | `/cfg` | Open the fullscreen configuration workspace for all SDK config keys, TTS settings, model routes, secrets-backed settings, MCP trust, subscriptions, and feature flags |
1208
1209
  | `/debug` | — | Toggle debug mode |
1209
- | `/lines [all\|code\|off]` | — | Cycle or set line-number mode |
1210
1210
  | `/expand [type]` | — | Expand blocks by type (all/thinking/tool/code) |
1211
1211
  | `/collapse [type]` | — | Collapse blocks by type |
1212
1212
  | `/bookmarks` | `/bm` | List bookmarked blocks |
1213
- | `/settings` | `/cfg-ui` | Open the config/settings browser modal |
1213
+ | `/settings` | `/cfg-ui` | Open the fullscreen configuration workspace |
1214
1214
  | `/clear` | `/cls` | Clear the conversation display (keeps LLM context) |
1215
1215
  | `/reset` | — | Full reset: clear display and conversation context |
1216
1216
  | `/compact` | — | Compact conversation context using hybrid structured compaction (v2) |
@@ -1226,7 +1226,6 @@ Those pieces cover conversation-noise routing, panel-health/performance budgets,
1226
1226
  | `/retry [text]` | `/r` | Re-send the last user message |
1227
1227
  | `/template` | `/tmpl` | Manage prompt templates: save, use, list, edit, delete |
1228
1228
  | `/tools` | `/t` | List available tools |
1229
- | `/permissions` | `/perms` | Show or set permission mode and per-tool settings |
1230
1229
  | `/secrets` | — | Manage encrypted and provider-backed API key secrets (set/link/get/test/list/delete) |
1231
1230
  | `/services` | `/svc` | Manage API service configurations |
1232
1231
  | `/accounts [action]` | — | Review provider-account routes, auth posture, and repair actions |
@@ -1242,7 +1241,7 @@ Those pieces cover conversation-noise routing, panel-health/performance budgets,
1242
1241
  | `/unpin [id]` | — | Remove a model from favorites |
1243
1242
  | `/git [action]` | `/g` | Git commands: status, log, diff. Opens git panel if no action given |
1244
1243
  | `/scan` | — | Scan for local LLM servers |
1245
- | `/plan [task]` | — | Manage execution plans: create, list, or `show <id>` |
1244
+ | `/plan [goal]` | — | Inspect or seed TUI-owned project planning state; `panel`, `approve`, `list`, and `show <id>` are supported |
1246
1245
  | `/panel [action]` | `/panels` | Panel management: open, close, list, toggle, move, focus, split, width, height |
1247
1246
  | `/plugin [action]` | — | Manage plugins (enable/disable/reload/list) |
1248
1247
  | `/marketplace [action]` | — | Browse curated plugin, skill, hook-pack, and policy-pack surfaces |
@@ -1264,14 +1263,12 @@ Those pieces cover conversation-noise routing, panel-health/performance budgets,
1264
1263
  | `/commands` | `/cmds` | Browse all commands in a scrollable list |
1265
1264
  | `/shortcuts` | `/keys`, `/keybinds` | Show keyboard shortcuts reference |
1266
1265
  | `/keybindings` | `/kb` | List current keyboard bindings and their config file path |
1267
- | `/danger [key] [value]` | — | Danger zone settings (agent recursion, daemon, HTTP listener) |
1268
1266
  | `/schedule [action]` | `/sched` | Manage scheduled agent tasks (cron): add, list, remove, enable, disable, run |
1269
1267
  | `/image <path>` | `/img` | Attach an image file to the next message |
1270
1268
  | `/refresh-models` | — | Refresh model catalog, benchmarks, and token limits |
1271
1269
  | `/notify [action]` | `/ntf` | Manage webhook notifications (ntfy.sh): add, remove, list, clear, test |
1272
1270
  | `/voice [action]` | — | Review optional voice posture and export/inspect voice bundles |
1273
1271
  | `/tts <prompt>` | — | Submit a normal prompt and play the assistant response through live TTS |
1274
- | `/config-tts [action]` | `/tts-config` | Open TTS configuration for provider, voice, and optional `/tts` response-model override |
1275
1272
  | `/cloudflare [action]` | `/cf` | Configure optional Cloudflare Workers/Queues batch and remote control-plane provisioning |
1276
1273
  | `/diff [target]` | `/d` | Show unified diff: session, head, working, staged, or a git ref |
1277
1274
  | `/mcp [tools]` | — | List connected MCP servers and their tools |
@@ -114,6 +114,33 @@ CREATE INDEX IF NOT EXISTS idx_knowledge_job_runs_job_id ON knowledge_job_runs(j
114
114
 
115
115
  CREATE INDEX IF NOT EXISTS idx_knowledge_job_runs_requested_at ON knowledge_job_runs(requested_at);
116
116
 
117
+ CREATE TABLE IF NOT EXISTS knowledge_refinement_tasks (
118
+ id TEXT PRIMARY KEY,
119
+ space_id TEXT NOT NULL,
120
+ subject_kind TEXT,
121
+ subject_id TEXT,
122
+ subject_title TEXT,
123
+ subject_type TEXT,
124
+ gap_id TEXT,
125
+ issue_id TEXT,
126
+ state TEXT NOT NULL,
127
+ priority TEXT NOT NULL,
128
+ trigger TEXT NOT NULL,
129
+ budget TEXT NOT NULL DEFAULT '{}',
130
+ attempt_count INTEGER NOT NULL DEFAULT 0,
131
+ blocked_reason TEXT,
132
+ trace TEXT NOT NULL DEFAULT '[]',
133
+ metadata TEXT NOT NULL DEFAULT '{}',
134
+ created_at INTEGER NOT NULL,
135
+ updated_at INTEGER NOT NULL
136
+ );
137
+
138
+ CREATE INDEX IF NOT EXISTS idx_knowledge_refinement_space_state ON knowledge_refinement_tasks(space_id, state);
139
+
140
+ CREATE INDEX IF NOT EXISTS idx_knowledge_refinement_gap ON knowledge_refinement_tasks(gap_id);
141
+
142
+ CREATE INDEX IF NOT EXISTS idx_knowledge_refinement_subject ON knowledge_refinement_tasks(subject_kind, subject_id);
143
+
117
144
  CREATE TABLE IF NOT EXISTS knowledge_usage_records (
118
145
  id TEXT PRIMARY KEY,
119
146
  target_kind TEXT NOT NULL,