vgxness 1.2.0 → 1.3.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.
Files changed (70) hide show
  1. package/README.md +7 -6
  2. package/dist/cli/cli-help.js +8 -7
  3. package/dist/cli/commands/index.js +1 -1
  4. package/dist/cli/commands/interactive-entrypoint-dispatcher.js +150 -0
  5. package/dist/cli/commands/setup-dispatcher.js +7 -4
  6. package/dist/cli/dispatcher.js +10 -8
  7. package/dist/cli/index.js +0 -0
  8. package/dist/cli/setup-wizard-renderer.js +1 -1
  9. package/dist/cli/tui/main-menu/index.js +0 -1
  10. package/dist/cli/tui/main-menu/main-menu-controller.js +0 -2
  11. package/dist/cli/tui/main-menu/main-menu-read-model.js +2 -8
  12. package/dist/cli/tui/main-menu/main-menu-render-shape.js +5 -1
  13. package/dist/cli/tui/main-menu/main-menu-state.js +1 -1
  14. package/dist/cli/tui/opentui/code/index.js +210 -0
  15. package/dist/cli/tui/opentui/code/screen.js +107 -0
  16. package/dist/cli/tui/opentui/code/smoke.js +32 -0
  17. package/dist/cli/tui/opentui/main-menu/index.js +3 -0
  18. package/dist/cli/tui/opentui/main-menu/renderer.js +68 -0
  19. package/dist/cli/tui/opentui/main-menu/screen.js +62 -0
  20. package/dist/cli/tui/opentui/main-menu/smoke.js +17 -0
  21. package/dist/cli/tui/opentui/main-menu/view.js +8 -0
  22. package/dist/cli/tui/opentui/setup/index.js +3 -0
  23. package/dist/cli/tui/opentui/setup/renderer.js +87 -0
  24. package/dist/cli/tui/opentui/setup/screen.js +170 -0
  25. package/dist/cli/tui/opentui/setup/smoke.js +42 -0
  26. package/dist/cli/tui/opentui/setup/view.js +12 -0
  27. package/dist/cli/tui/setup/setup-tui-input.js +43 -0
  28. package/dist/cli/tui/setup/setup-tui-read-model.js +1 -1
  29. package/dist/cli/tui/setup/setup-tui-render-shape.js +1 -1
  30. package/dist/cli/tui/setup/setup-tui-view-helpers.js +46 -0
  31. package/dist/cli/tui/visual/index.js +0 -2
  32. package/dist/code/tui/approval-actions.js +33 -0
  33. package/dist/code/tui/prompt-mode.js +11 -0
  34. package/dist/code/tui/runtime-events.js +320 -0
  35. package/dist/sdd/sdd-workflow-service.js +0 -24
  36. package/dist/setup/providers/antigravity-setup-adapter.js +1 -1
  37. package/dist/setup/providers/claude-setup-adapter.js +2 -2
  38. package/dist/setup/providers/custom-setup-adapter.js +1 -1
  39. package/dist/setup/providers/opencode-setup-adapter.js +3 -3
  40. package/dist/setup/setup-lifecycle-service.js +1 -1
  41. package/docs/architecture.md +4 -4
  42. package/docs/cli.md +11 -10
  43. package/docs/funcionamiento-del-sistema.md +6 -7
  44. package/docs/prd.md +4 -4
  45. package/docs/vgxcode.md +76 -0
  46. package/package.json +5 -6
  47. package/dist/cli/commands/dashboard-dispatcher.js +0 -560
  48. package/dist/cli/dashboard-operational-read-models.js +0 -428
  49. package/dist/cli/dashboard-renderer.js +0 -158
  50. package/dist/cli/dashboard-screen-renderers.js +0 -256
  51. package/dist/cli/dashboard-tui-read-model.js +0 -73
  52. package/dist/cli/dashboard-tui-state.js +0 -314
  53. package/dist/cli/interactive-dashboard.js +0 -34
  54. package/dist/cli/tui/dashboard/dashboard-adapter.js +0 -4
  55. package/dist/cli/tui/main-menu/main-menu-app.js +0 -28
  56. package/dist/cli/tui/render-ink-app.js +0 -10
  57. package/dist/cli/tui/setup/screens/applying-screen.js +0 -6
  58. package/dist/cli/tui/setup/screens/cancellation-screen.js +0 -6
  59. package/dist/cli/tui/setup/screens/error-recovery-screen.js +0 -6
  60. package/dist/cli/tui/setup/screens/final-confirmation-screen.js +0 -6
  61. package/dist/cli/tui/setup/screens/opencode-details-screen.js +0 -10
  62. package/dist/cli/tui/setup/screens/plan-review-screen.js +0 -6
  63. package/dist/cli/tui/setup/screens/project-database-screen.js +0 -6
  64. package/dist/cli/tui/setup/screens/provider-screen.js +0 -7
  65. package/dist/cli/tui/setup/screens/result-screen.js +0 -16
  66. package/dist/cli/tui/setup/screens/screen-components.js +0 -103
  67. package/dist/cli/tui/setup/screens/welcome-screen.js +0 -6
  68. package/dist/cli/tui/setup/setup-tui-app.js +0 -113
  69. package/dist/cli/tui/visual/choice-list.js +0 -10
  70. package/dist/cli/tui/visual/layout.js +0 -10
package/docs/cli.md CHANGED
@@ -52,7 +52,7 @@ Recommended user flow after `npm install -g vgxness`:
52
52
 
53
53
  ```bash
54
54
  vgx --help
55
- vgx # operational dashboard in a TTY; static safe guidance in CI/non-TTY
55
+ vgx # OpenTUI main menu in a TTY; static safe setup guidance in CI/non-TTY
56
56
  vgx init # setup wizard in a TTY; read-only plan in CI/non-TTY
57
57
  vgx setup plan # human-readable, read-only plan
58
58
  vgx setup status # human-readable, read-only setup status
@@ -205,23 +205,24 @@ npm run cli -- sdd status --project vgxness --change my-change
205
205
 
206
206
  `opencode preview` returns a combined, preview-only injection envelope for future OpenCode/MCP/hook callers. It does **not** execute OpenCode, install hooks or MCP servers, create runs, record skill usage, or write provider config.
207
207
 
208
- ## Operational dashboard
208
+ ## OpenTUI main menu
209
209
 
210
- Use the interactive dashboard for a read-only operational view:
210
+ Use no arguments in a TTY to open the main menu:
211
211
 
212
212
  ```bash
213
213
  npm run cli --
214
- npm run cli -- dashboard interactive [--project vgxness] [--change my-change]
215
- npm run cli -- dashboard status --project vgxness [--change my-change]
216
214
  ```
217
215
 
218
- The installed `vgxness`/`vgx` binary opens the same operational dashboard as `dashboard interactive` when run with no arguments in a TTY. With no TTY, no-args prints deterministic safe guidance, exits 0, and does not read dashboard status, infer a project, open project state, toggle raw mode, or write provider/config artifacts. Use `vgxness --help` or `vgxness -h` to print command help without starting the dashboard; explicit subcommands keep their normal behavior.
216
+ The installed `vgxness`/`vgx` binary opens the OpenTUI main menu when run with no arguments in a TTY. With no TTY, no-args prints deterministic safe setup guidance, exits 0, and does not infer a project, open project state, toggle raw mode, or write provider/config artifacts. Use `vgxness --help` or `vgxness -h` to print command help without starting the main menu; explicit subcommands keep their normal behavior.
219
217
 
220
- The top-level menu is: **Installation, Status, Agents, Skills, Memory, SDD, Runs, Approvals, Permissions, Settings**. Terminal controls are `1-9`/`0` to switch screens, `r` to refresh, `?` for help, and `q` to quit. `Enter` shows details only; operational actions remain copy-only and must be run outside the TUI.
218
+ The top-level menu is: **Installation, Doctor / recovery, SDD / workflow guidance, Advanced CLI, Exit**. Terminal controls are `↑/↓` or `j/k` to move, `Enter` to open the focused item, `?` for help, and `q` to quit.
221
219
 
222
- `dashboard interactive` can launch without `--project`; it opens Installation/status-oriented guidance while project-scoped checks are deferred rather than failed. Project-scoped screens render recoverable `project-required` states until you relaunch or refresh with a project.
220
+ For scriptable status, use explicit read-only commands:
223
221
 
224
- `dashboard status --project <name>` is the scriptable/read-only renderer. It intentionally remains separate from no-args behavior and validates required project/limit flags.
222
+ ```bash
223
+ npm run cli -- setup status --project vgxness
224
+ npm run cli -- sdd status --project vgxness --change my-change
225
+ ```
225
226
 
226
227
  Provider support shown in the Installation surface is:
227
228
 
@@ -230,7 +231,7 @@ Provider support shown in the Installation surface is:
230
231
  - **Antigravity** — placeholder/coming-soon guidance only.
231
232
  - **Custom/future** — extension point with safe manual/default unsupported behavior.
232
233
 
233
- The dashboard displays preview/status data, workflow registry entries, run traces, and approvals/preflights as read-only/copy-only data. It does **not** silently write OpenCode or other provider config, does **not** call provider executables, does **not** run install/apply/doctor/workflow commands, and does **not** approve/reject preflights. Any operational next action is copied for explicit execution outside the TUI.
234
+ Setup and main-menu TUI surfaces do **not** silently write OpenCode or other provider config, do **not** call provider executables, and do **not** approve/reject preflights. Any operational next action is copied for explicit execution outside the TUI.
234
235
 
235
236
  ## Natural-language orchestrator preview
236
237
 
@@ -25,7 +25,7 @@ Para resolverlos, el sistema se construye sobre estos bloques:
25
25
  | Politica de permisos | Decide si una operacion se permite, se bloquea o requiere aprobacion humana. |
26
26
  | MCP server | Expone herramientas para que agentes consulten y actualicen el control plane. |
27
27
  | CLI | Permite operar el sistema desde comandos reproducibles. |
28
- | Dashboard/TUI | Muestra estado local, setup, runs y progreso SDD para humanos. |
28
+ | TUI | Muestra setup y guias operativas locales para humanos. |
29
29
 
30
30
  ## Que problema resuelve
31
31
 
@@ -71,7 +71,7 @@ Humano / operador
71
71
  |
72
72
  | usa
73
73
  v
74
- CLI / Dashboard / TUI
74
+ CLI / TUI
75
75
  |
76
76
  | llama servicios locales
77
77
  v
@@ -92,7 +92,7 @@ MCP control plane
92
92
  Core de vgxness
93
93
  ```
94
94
 
95
- La regla importante es que CLI, MCP y dashboard no deberian tener reglas de negocio duplicadas. Todos deben pasar por los mismos servicios de dominio.
95
+ La regla importante es que CLI, MCP y TUI no deberian tener reglas de negocio duplicadas. Todos deben pasar por los mismos servicios de dominio.
96
96
 
97
97
  ## Capas del sistema
98
98
 
@@ -105,7 +105,7 @@ El sistema tiene varias superficies de uso.
105
105
  | CLI | Humano, scripts, smoke tests | `src/cli/dispatcher.ts` | Parsear comandos y llamar servicios. |
106
106
  | MCP stdio | Agentes y herramientas IA | `src/mcp/stdio-server.ts` | Exponer herramientas MCP locales. |
107
107
  | MCP control plane | Capa interna MCP | `src/mcp/control-plane.ts` | Validar tool calls y despacharlas a servicios. |
108
- | Dashboard/TUI | Humano local | `src/cli/interactive-dashboard.ts` | Mostrar estado operativo y permitir navegacion local. |
108
+ | TUI | Humano local | `src/cli/tui/` | Mostrar setup y guias operativas locales. |
109
109
 
110
110
  La CLI es intencionalmente fina. Abre la base local, instancia servicios y devuelve JSON o texto. No deberia contener la logica profunda del producto.
111
111
 
@@ -633,7 +633,6 @@ Areas principales vistas en el dispatcher:
633
633
  | `sdd` | Estado, readiness y guardado de artefactos SDD. |
634
634
  | `orchestrator` | Preview de ruteo desde lenguaje natural hacia direct, plan, sdd o diagnose. |
635
635
  | `opencode` | Previews/integracion OpenCode. |
636
- | `dashboard` | Estado visual o interactivo. |
637
636
  | `mcp` | Setup, doctor e instalacion MCP. |
638
637
 
639
638
  La base se selecciona con la misma regla que el resto del sistema:
@@ -693,7 +692,7 @@ El proyecto ya contiene implementaciones concretas de:
693
692
  7. Politica de permisos base.
694
693
  8. MCP stdio server y control plane.
695
694
  9. CLI para operar los servicios.
696
- 10. Setup status y dashboard local.
695
+ 10. Setup status y TUI local.
697
696
  11. Integracion inicial con OpenCode.
698
697
  12. CLI instalable con memoria global por defecto y compatibilidad explicita con `--db`.
699
698
 
@@ -814,7 +813,7 @@ Si todo vive solo en prompts, el sistema depende de disciplina del LLM. Si todo
814
813
  ```text
815
814
  src/
816
815
  agents/ Registro, resolucion, activacion y renderers de agentes.
817
- cli/ Dispatcher, dashboard y renderers de salida CLI.
816
+ cli/ Dispatcher, TUI y renderers de salida CLI.
818
817
  export/ Redaccion/export de snapshots.
819
818
  harness/ Handlers reutilizables para tools internas.
820
819
  mcp/ Servidor stdio, schemas, validacion, doctor e instalacion MCP.
package/docs/prd.md CHANGED
@@ -190,7 +190,7 @@ TUI state requirements:
190
190
 
191
191
  - Loading, empty, error, success, blocked, and permission states must be explicit and actionable.
192
192
  - Keyboard navigation and visible focus are required.
193
- - The dashboard TUI is read-only; provider config writes/install/apply are external-only, require explicit confirmation outside the dashboard, and are not run by dashboard flows.
193
+ - TUI status/setup surfaces are read-only; provider config writes/install/apply are external-only, require explicit confirmation outside the TUI, and are not run by preview/status flows.
194
194
 
195
195
  #### Installation experience
196
196
 
@@ -299,7 +299,7 @@ Minimum capabilities:
299
299
  - Cloud sync.
300
300
  - Multi-user collaboration.
301
301
  - Team permissions and governance.
302
- - Web dashboard.
302
+ - Web console.
303
303
  - Hosted memory service.
304
304
  - Marketplace for agents.
305
305
  - Full provider parity across every AI coding tool.
@@ -332,11 +332,11 @@ After the MVP proves local individual usage, expand toward:
332
332
  - Team/shared memory spaces.
333
333
  - Permissions, governance, and audit trails.
334
334
  - PR and chained-PR coordination.
335
- - Hosted dashboard for inspection and collaboration.
335
+ - Hosted web console for inspection and collaboration.
336
336
  - Additional provider adapters.
337
337
  - Import/export between local and cloud memory backends.
338
338
  - Distributed agent workers.
339
- - Hosted observability and evaluation dashboard.
339
+ - Hosted observability and evaluation UI.
340
340
  - Skill marketplace or shared skill catalog.
341
341
 
342
342
  ## Success criteria
@@ -0,0 +1,76 @@
1
+ # vgxcode OpenTUI root-owned shell
2
+
3
+ Experimental Bun/OpenTUI coding interface for VGXNESS.
4
+
5
+ ## Why this is root-owned
6
+
7
+ VGXNESS ships the existing `vgx`/`vgxness` CLI bins while the OpenTUI coding interface remains an internal root-owned surface. The repository root owns `@opentui/core`, the Bun lockfile, and verification.
8
+
9
+ This keeps the shipped `vgx`/`vgxness` CLI stable while letting us build the OpenTUI experience directly from root source.
10
+
11
+ ## Run
12
+
13
+ Prerequisite: install Bun.
14
+
15
+ ```bash
16
+ bun src/cli/tui/opentui/code/index.ts
17
+ ```
18
+
19
+ Interactive mode is read-only. Type a task/question and press `Enter`; `vgxcode` runs the root CLI bridge as either:
20
+
21
+ ```bash
22
+ bun run cli:bun -- code inspect "<your prompt>" --events-jsonl
23
+ bun run cli:bun -- code plan "<your prompt>" --events-jsonl
24
+ ```
25
+
26
+ The prompt defaults to `inspect`. Press `Tab` to toggle between `inspect` and `plan`, or prefix a prompt with `/inspect` or `/plan`:
27
+
28
+ ```text
29
+ /plan outline a safe implementation
30
+ /inspect summarize the current architecture
31
+ ```
32
+
33
+ After submit, the prompt input is cleared and the submitted prompt remains visible as `Last submitted`. The UI shows explicit `idle`, `running`, `completed`, and `error` states. It is intentionally mutation-disabled: no `craft`, no SDD writes, and no approval flow lives in this internal shell.
34
+
35
+ To replay real read-only runtime events without spawning the root CLI, pipe the root Bun CLI JSONL bridge into `vgxcode`:
36
+
37
+ ```bash
38
+ bun run cli:bun -- code inspect "What is this project?" --events-jsonl | bun src/cli/tui/opentui/code/index.ts
39
+ bun run cli:bun -- code plan "Plan a safe change" --events-jsonl | bun src/cli/tui/opentui/code/index.ts
40
+ ```
41
+
42
+ Use `bun run cli:bun -- ...` for OpenTUI-adjacent local testing. `npm run cli -- ...` uses Node/tsx and can fail when a path loads `@opentui/core`.
43
+
44
+ Press `Ctrl+C` to exit.
45
+
46
+ ## Current scope
47
+
48
+ The shell reads newline-delimited `CodeRuntimeEvent` JSON from stdin when piped. If stdin has events or parse errors, `vgxcode` renders that stream and does not spawn the root CLI. If stdin is a TTY, the OpenTUI entrypoint opens the interactive prompt and uses read-only `inspect` through the JSONL bridge.
49
+
50
+ Errors are shown in the Activity panel when JSONL parsing fails, unsupported runtime events appear, npm/lifecycle banners appear in the stream, or the spawned root CLI exits non-zero.
51
+
52
+ ## Checks
53
+
54
+ ```bash
55
+ npm run check:bun-lock # from the repository root; read-only/advisory
56
+ bun run verify:typecheck
57
+ node --import tsx --test test/cli/tui/opentui-code.test.ts
58
+ bun run smoke:opentui-code
59
+ ```
60
+
61
+ The root `npm run check:bun-lock` command compares root `package.json`
62
+ dependency specifiers with the root `bun.lock` without installing Bun or
63
+ mutating `node_modules`. The root lockfile is the repository dependency
64
+ authority; package evidence is validated by `bun run package:bun:evidence`.
65
+
66
+ Manual interactive check:
67
+
68
+ ```bash
69
+ bun src/cli/tui/opentui/code/index.ts
70
+ # type: What is this project?
71
+ # press Enter
72
+ ```
73
+
74
+ ## Safety rule
75
+
76
+ `vgxcode` renders state. It must not execute tools, bypass approvals, or own mutation policy. Runtime, approvals, verification, SDD, and memory stay in the VGXNESS core runtime.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vgxness",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "description": "CLI and MCP control plane for guided AI-agent workflows, SDD, memory, and OpenCode setup.",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "repository": {
@@ -21,7 +21,8 @@
21
21
  "type": "module",
22
22
  "scripts": {
23
23
  "cli": "tsx src/cli/index.ts",
24
- "build": "tsc -p tsconfig.build.json && node scripts/copy-migrations.mjs",
24
+ "cli:bun": "bun src/cli/index.ts",
25
+ "build": "node scripts/clean-dist.mjs && tsc -p tsconfig.build.json && node scripts/copy-migrations.mjs",
25
26
  "verify": "bun run verify:typecheck && bun run verify:test && bun run verify:test:bun-storage && bun run verify:bun-sqlite && bun run verify:package",
26
27
  "verify:typecheck": "tsc --noEmit",
27
28
  "verify:test": "node scripts/run-node-tests.mjs",
@@ -30,11 +31,11 @@
30
31
  "verify:bun-sqlite": "bun scripts/probe-bun-sqlite.mjs",
31
32
  "ci:bun": "bun run check:bun-lock && bun run verify",
32
33
  "check:bun-lock": "node scripts/check-bun-lock.mjs",
33
- "check:vgxcode:bun-lock": "node scripts/check-bun-lock.mjs --package-json packages/vgxcode/package.json --bun-lock packages/vgxcode/bun.lock",
34
34
  "check:bun:typecheck": "node scripts/run-bun-typecheck.mjs",
35
35
  "probe:bun": "node scripts/probe-bun-compat.mjs",
36
36
  "probe:bun-runtime": "node scripts/probe-bun-runtime-cli-mcp.mjs",
37
37
  "verify:bun-runtime": "node scripts/probe-bun-runtime-cli-mcp.mjs --require-pass",
38
+ "smoke:opentui-code": "bun src/cli/tui/opentui/code/smoke.ts",
38
39
  "package:bun:evidence": "node scripts/probe-bun-package-evidence.mjs",
39
40
  "test": "node scripts/run-node-tests.mjs",
40
41
  "typecheck": "tsc --noEmit"
@@ -53,13 +54,11 @@
53
54
  ],
54
55
  "dependencies": {
55
56
  "@modelcontextprotocol/sdk": "^1.29.0",
56
- "ink": "^7.0.3",
57
- "react": "^19.2.6",
57
+ "@opentui/core": "^0.2.16",
58
58
  "zod": "^4.4.3"
59
59
  },
60
60
  "devDependencies": {
61
61
  "@types/node": "^22.15.18",
62
- "@types/react": "^19.2.15",
63
62
  "tsx": "^4.19.4",
64
63
  "typescript": "^5.8.3"
65
64
  },