vgxness 1.2.1 → 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.
- package/README.md +7 -6
- package/dist/cli/cli-help.js +4 -7
- package/dist/cli/commands/index.js +1 -1
- package/dist/cli/commands/interactive-entrypoint-dispatcher.js +150 -0
- package/dist/cli/commands/setup-dispatcher.js +7 -4
- package/dist/cli/dispatcher.js +1 -8
- package/dist/cli/index.js +0 -0
- package/dist/cli/setup-wizard-renderer.js +1 -1
- package/dist/cli/tui/main-menu/index.js +0 -1
- package/dist/cli/tui/main-menu/main-menu-controller.js +0 -2
- package/dist/cli/tui/main-menu/main-menu-read-model.js +2 -8
- package/dist/cli/tui/main-menu/main-menu-render-shape.js +5 -1
- package/dist/cli/tui/main-menu/main-menu-state.js +1 -1
- package/dist/cli/tui/opentui/code/index.js +210 -0
- package/dist/cli/tui/opentui/code/screen.js +107 -0
- package/dist/cli/tui/opentui/code/smoke.js +32 -0
- package/dist/cli/tui/opentui/main-menu/index.js +3 -0
- package/dist/cli/tui/opentui/main-menu/renderer.js +68 -0
- package/dist/cli/tui/opentui/main-menu/screen.js +62 -0
- package/dist/cli/tui/opentui/main-menu/smoke.js +17 -0
- package/dist/cli/tui/opentui/main-menu/view.js +8 -0
- package/dist/cli/tui/opentui/setup/index.js +3 -0
- package/dist/cli/tui/opentui/setup/renderer.js +87 -0
- package/dist/cli/tui/opentui/setup/screen.js +170 -0
- package/dist/cli/tui/opentui/setup/smoke.js +42 -0
- package/dist/cli/tui/opentui/setup/view.js +12 -0
- package/dist/cli/tui/setup/setup-tui-input.js +43 -0
- package/dist/cli/tui/setup/setup-tui-read-model.js +1 -1
- package/dist/cli/tui/setup/setup-tui-render-shape.js +1 -1
- package/dist/cli/tui/setup/setup-tui-view-helpers.js +46 -0
- package/dist/cli/tui/visual/index.js +0 -2
- package/dist/code/tui/approval-actions.js +33 -0
- package/dist/code/tui/prompt-mode.js +11 -0
- package/dist/code/tui/runtime-events.js +320 -0
- package/dist/sdd/sdd-workflow-service.js +0 -24
- package/dist/setup/providers/antigravity-setup-adapter.js +1 -1
- package/dist/setup/providers/claude-setup-adapter.js +2 -2
- package/dist/setup/providers/custom-setup-adapter.js +1 -1
- package/dist/setup/providers/opencode-setup-adapter.js +3 -3
- package/dist/setup/setup-lifecycle-service.js +1 -1
- package/docs/architecture.md +4 -4
- package/docs/cli.md +11 -10
- package/docs/funcionamiento-del-sistema.md +6 -7
- package/docs/prd.md +4 -4
- package/docs/vgxcode.md +76 -0
- package/package.json +5 -6
- package/dist/cli/commands/dashboard-dispatcher.js +0 -560
- package/dist/cli/dashboard-operational-read-models.js +0 -428
- package/dist/cli/dashboard-renderer.js +0 -158
- package/dist/cli/dashboard-screen-renderers.js +0 -256
- package/dist/cli/dashboard-tui-read-model.js +0 -73
- package/dist/cli/dashboard-tui-state.js +0 -314
- package/dist/cli/interactive-dashboard.js +0 -34
- package/dist/cli/tui/dashboard/dashboard-adapter.js +0 -4
- package/dist/cli/tui/main-menu/main-menu-app.js +0 -28
- package/dist/cli/tui/render-ink-app.js +0 -10
- package/dist/cli/tui/setup/screens/applying-screen.js +0 -6
- package/dist/cli/tui/setup/screens/cancellation-screen.js +0 -6
- package/dist/cli/tui/setup/screens/error-recovery-screen.js +0 -6
- package/dist/cli/tui/setup/screens/final-confirmation-screen.js +0 -6
- package/dist/cli/tui/setup/screens/opencode-details-screen.js +0 -10
- package/dist/cli/tui/setup/screens/plan-review-screen.js +0 -6
- package/dist/cli/tui/setup/screens/project-database-screen.js +0 -6
- package/dist/cli/tui/setup/screens/provider-screen.js +0 -7
- package/dist/cli/tui/setup/screens/result-screen.js +0 -16
- package/dist/cli/tui/setup/screens/screen-components.js +0 -103
- package/dist/cli/tui/setup/screens/welcome-screen.js +0 -6
- package/dist/cli/tui/setup/setup-tui-app.js +0 -113
- package/dist/cli/tui/visual/choice-list.js +0 -10
- 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 #
|
|
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
|
-
##
|
|
208
|
+
## OpenTUI main menu
|
|
209
209
|
|
|
210
|
-
Use
|
|
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
|
|
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,
|
|
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
|
-
|
|
220
|
+
For scriptable status, use explicit read-only commands:
|
|
223
221
|
|
|
224
|
-
|
|
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
|
-
|
|
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
|
-
|
|
|
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 /
|
|
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
|
|
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
|
-
|
|
|
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
|
|
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,
|
|
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
|
-
-
|
|
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
|
|
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
|
|
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
|
|
339
|
+
- Hosted observability and evaluation UI.
|
|
340
340
|
- Skill marketplace or shared skill catalog.
|
|
341
341
|
|
|
342
342
|
## Success criteria
|
package/docs/vgxcode.md
ADDED
|
@@ -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.
|
|
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
|
-
"
|
|
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
|
-
"
|
|
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
|
},
|