vgxness 1.2.1 → 1.3.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 +20 -19
- 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 +11 -8
- package/dist/cli/dispatcher.js +1 -8
- package/dist/cli/doctor-renderer.js +1 -1
- package/dist/cli/index.js +0 -0
- package/dist/cli/sdd-renderer.js +7 -7
- package/dist/cli/setup-status-renderer.js +1 -0
- 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 +10 -8
- package/dist/cli/tui/main-menu/main-menu-render-shape.js +19 -2
- 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 +68 -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 +4 -4
- package/dist/cli/tui/setup/setup-tui-render-shape.js +9 -10
- package/dist/cli/tui/setup/setup-tui-state.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/runtime/sdd-context.js +2 -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/mcp/validation.js +6 -2
- package/dist/orchestrator/natural-language-planner.js +1 -1
- package/dist/sdd/sdd-workflow-service.js +1 -25
- package/dist/setup/backup-rollback-service.js +2 -2
- 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 +6 -6
- package/dist/setup/setup-plan.js +3 -3
- package/dist/verification/verification-plan-service.js +1 -1
- package/docs/architecture.md +43 -42
- package/docs/cli.md +141 -133
- package/docs/funcionamiento-del-sistema.md +22 -23
- package/docs/harness-gap-analysis.md +15 -1
- package/docs/prd.md +14 -14
- package/docs/vgxcode.md +87 -0
- package/docs/vgxness-code.md +6 -4
- 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/guided-main-menu.js +0 -470
- package/dist/cli/interactive-dashboard.js +0 -34
- package/dist/cli/setup-wizard-read-model.js +0 -72
- package/dist/cli/setup-wizard-renderer.js +0 -155
- package/dist/cli/setup-wizard-state.js +0 -82
- 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
|
@@ -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
|
|
|
@@ -58,7 +58,7 @@ Scripts principales:
|
|
|
58
58
|
|
|
59
59
|
| Script | Funcion |
|
|
60
60
|
|---|---|
|
|
61
|
-
| `
|
|
61
|
+
| `bun run cli:bun -- ...` | Ejecuta la CLI local desde el repo usando el mismo runtime Bun que los bins instalados. |
|
|
62
62
|
| `npm run build` | Compila TypeScript y copia migraciones. |
|
|
63
63
|
| `npm run test` | Ejecuta tests con el runner nativo de Node. |
|
|
64
64
|
| `npm run typecheck` | Valida tipos sin emitir archivos. |
|
|
@@ -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
|
|
|
@@ -170,10 +170,10 @@ Una accion puede entrar por CLI o por MCP.
|
|
|
170
170
|
Ejemplos CLI:
|
|
171
171
|
|
|
172
172
|
```bash
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
173
|
+
vgxness sdd status --project vgxness --change my-change
|
|
174
|
+
vgxness orchestrator preview --project vgxness --intent "Build a new checkout workflow" --change checkout-flow
|
|
175
|
+
vgxness agents resolve --project vgxness --workflow sdd --phase apply-progress
|
|
176
|
+
vgxness runs list --project vgxness
|
|
177
177
|
```
|
|
178
178
|
|
|
179
179
|
Ejemplo MCP:
|
|
@@ -305,7 +305,7 @@ Este seam es importante porque separa la decision de ruteo de la ejecucion real.
|
|
|
305
305
|
La CLI expone el planner con:
|
|
306
306
|
|
|
307
307
|
```bash
|
|
308
|
-
|
|
308
|
+
vgxness orchestrator preview --project vgxness --intent "Build a new persistent checkout workflow" --change checkout-flow --db .vgx/memory.sqlite
|
|
309
309
|
```
|
|
310
310
|
|
|
311
311
|
Parametros:
|
|
@@ -325,7 +325,7 @@ Ejemplo de decision esperada:
|
|
|
325
325
|
Intent: Build a new persistent checkout workflow capability
|
|
326
326
|
Flow: sdd
|
|
327
327
|
Suggested change id: checkout-flow
|
|
328
|
-
Preview action:
|
|
328
|
+
Preview action: vgxness sdd next --project vgxness --change checkout-flow
|
|
329
329
|
Safety: no ejecuto nada
|
|
330
330
|
```
|
|
331
331
|
|
|
@@ -416,7 +416,7 @@ La precedencia de seleccion de base es:
|
|
|
416
416
|
La ruta historica `.vgx/memory.sqlite` sigue siendo compatible, pero ahora es explicita:
|
|
417
417
|
|
|
418
418
|
```bash
|
|
419
|
-
|
|
419
|
+
vgxness memory search --project vgxness --db .vgx/memory.sqlite
|
|
420
420
|
```
|
|
421
421
|
|
|
422
422
|
Este detalle es importante: `vgxness` puede funcionar como herramienta instalada globalmente sin acoplar la memoria al workdir actual, pero tambien permite aislar estado cuando se necesita reproducibilidad en tests o dogfood local.
|
|
@@ -616,7 +616,7 @@ Tools representativas (no exhaustivas; la fuente actual de nombres soportados es
|
|
|
616
616
|
La CLI se ejecuta localmente con:
|
|
617
617
|
|
|
618
618
|
```bash
|
|
619
|
-
|
|
619
|
+
vgxness <area> <command> [flags]
|
|
620
620
|
```
|
|
621
621
|
|
|
622
622
|
Areas principales vistas en el dispatcher:
|
|
@@ -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:
|
|
@@ -645,7 +644,7 @@ La base se selecciona con la misma regla que el resto del sistema:
|
|
|
645
644
|
Sin `--db`, la CLI usa la base global de usuario. Si se quiere la base del repo para pruebas locales, se debe pedir explicitamente:
|
|
646
645
|
|
|
647
646
|
```bash
|
|
648
|
-
|
|
647
|
+
vgxness sdd status --project vgxness --change my-change --db .vgx/memory.sqlite
|
|
649
648
|
```
|
|
650
649
|
|
|
651
650
|
## Setup local
|
|
@@ -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
|
|
|
@@ -715,7 +714,7 @@ Supongamos que se quiere trabajar en un cambio llamado `add-agent-profiles`.
|
|
|
715
714
|
### 1. Revisar setup
|
|
716
715
|
|
|
717
716
|
```bash
|
|
718
|
-
|
|
717
|
+
vgxness setup status --project vgxness
|
|
719
718
|
```
|
|
720
719
|
|
|
721
720
|
El sistema revisa store, MCP y agente default.
|
|
@@ -723,7 +722,7 @@ El sistema revisa store, MCP y agente default.
|
|
|
723
722
|
### 2. Clasificar el pedido natural
|
|
724
723
|
|
|
725
724
|
```bash
|
|
726
|
-
|
|
725
|
+
vgxness orchestrator preview --project vgxness --intent "Build a new agent profile workflow" --change add-agent-profiles
|
|
727
726
|
```
|
|
728
727
|
|
|
729
728
|
El sistema devuelve un preview no ejecutable. Si detecta nueva capacidad, arquitectura, workflow, persistencia, seguridad o riesgo de ejecucion, recomienda `sdd` y puede incluir el proximo comando manual de SDD.
|
|
@@ -731,7 +730,7 @@ El sistema devuelve un preview no ejecutable. Si detecta nueva capacidad, arquit
|
|
|
731
730
|
### 3. Consultar estado SDD
|
|
732
731
|
|
|
733
732
|
```bash
|
|
734
|
-
|
|
733
|
+
vgxness sdd status --project vgxness --change add-agent-profiles
|
|
735
734
|
```
|
|
736
735
|
|
|
737
736
|
Si no hay artefactos, la primera fase lista deberia ser `explore`.
|
|
@@ -739,7 +738,7 @@ Si no hay artefactos, la primera fase lista deberia ser `explore`.
|
|
|
739
738
|
### 4. Guardar el artefacto de exploracion
|
|
740
739
|
|
|
741
740
|
```bash
|
|
742
|
-
|
|
741
|
+
vgxness sdd save-artifact --project vgxness --change add-agent-profiles --phase explore --content "# Explore"
|
|
743
742
|
```
|
|
744
743
|
|
|
745
744
|
El sistema guarda el contenido en memoria como artefacto con topic key:
|
|
@@ -751,7 +750,7 @@ sdd/add-agent-profiles/explore
|
|
|
751
750
|
### 5. Preguntar la siguiente fase
|
|
752
751
|
|
|
753
752
|
```bash
|
|
754
|
-
|
|
753
|
+
vgxness sdd next --project vgxness --change add-agent-profiles
|
|
755
754
|
```
|
|
756
755
|
|
|
757
756
|
Si `explore` esta presente, la siguiente fase runnable sera `proposal`.
|
|
@@ -759,7 +758,7 @@ Si `explore` esta presente, la siguiente fase runnable sera `proposal`.
|
|
|
759
758
|
### 6. Resolver un agente para implementar
|
|
760
759
|
|
|
761
760
|
```bash
|
|
762
|
-
|
|
761
|
+
vgxness agents resolve --project vgxness --workflow sdd --phase apply-progress --provider opencode --task "Implement agent profile routing"
|
|
763
762
|
```
|
|
764
763
|
|
|
765
764
|
El sistema devuelve candidatos con score y razones.
|
|
@@ -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.
|
|
@@ -1,4 +1,18 @@
|
|
|
1
|
-
# Harness Systems Gap Analysis
|
|
1
|
+
# Historical Harness Systems Gap Analysis
|
|
2
|
+
|
|
3
|
+
> **Status:** historical planning note. This document predates much of the v1 runtime foundation. Use `docs/architecture.md`, `docs/prd.md`, and `docs/cli.md` as the current product references. Keep this file for design context, not as a live gap checklist.
|
|
4
|
+
|
|
5
|
+
## Current interpretation after v1.3.0
|
|
6
|
+
|
|
7
|
+
Several items below now exist as v1 foundations: local run records, preflight/approval planning, SDD artifacts, memory-backed storage, agent/subagent registries, provider setup previews, package evidence, and MCP control-plane tools.
|
|
8
|
+
|
|
9
|
+
The remaining strategic gaps are narrower:
|
|
10
|
+
|
|
11
|
+
- real provider/executor dispatch instead of planning-only run execution;
|
|
12
|
+
- stronger SDD governance gates that combine artifact presence, human acceptance, verification evidence, and blockers;
|
|
13
|
+
- operational TUI screens for SDD, runs, approvals, doctor, and settings;
|
|
14
|
+
- sandbox/worktree enforcement beyond advisory planning;
|
|
15
|
+
- export/import/redaction and upgrade/rollback evidence for beta readiness.
|
|
2
16
|
|
|
3
17
|
This research compares current agent harness patterns against the `vgxness` PRD and identifies what the product still needs before it can become a serious local-first SDD harness.
|
|
4
18
|
|
package/docs/prd.md
CHANGED
|
@@ -119,7 +119,7 @@ The MCP server is the main integration surface for AI coding tools. It should ex
|
|
|
119
119
|
|
|
120
120
|
Minimum MCP capabilities:
|
|
121
121
|
|
|
122
|
-
- Start a local MCP server through `
|
|
122
|
+
- Start a local MCP server through `vgxness mcp start` or an installed provider config.
|
|
123
123
|
- Install MCP integration for supported tools through guided setup.
|
|
124
124
|
- Expose SDD status, readiness, next-phase, and artifact operations.
|
|
125
125
|
- Expose run start/checkpoint/finalize and approval-request operations.
|
|
@@ -160,15 +160,15 @@ Minimum CLI capabilities:
|
|
|
160
160
|
Candidate CLI shape:
|
|
161
161
|
|
|
162
162
|
```bash
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
163
|
+
vgxness init
|
|
164
|
+
vgxness doctor
|
|
165
|
+
vgxness status
|
|
166
|
+
vgxness mcp install opencode
|
|
167
|
+
vgxness mcp status
|
|
168
|
+
vgxness sdd status <change>
|
|
169
|
+
vgxness sdd next <change>
|
|
170
|
+
vgxness profiles list
|
|
171
|
+
vgxness profiles set apply <model>
|
|
172
172
|
```
|
|
173
173
|
|
|
174
174
|
#### TUI
|
|
@@ -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,87 @@
|
|
|
1
|
+
# VGXNESS Code OpenTUI shell (`vgxcode`)
|
|
2
|
+
|
|
3
|
+
Experimental Bun/OpenTUI coding interface for VGXNESS Code.
|
|
4
|
+
|
|
5
|
+
**Naming rule:** `VGXNESS Code` is the public product/runtime surface (`vgxness code ...`; `vgx code ...` remains a compatibility alias). `vgxcode` is the internal root-owned OpenTUI shell that renders and drives that runtime during repository development.
|
|
6
|
+
|
|
7
|
+
## Why this is root-owned
|
|
8
|
+
|
|
9
|
+
VGXNESS ships the existing `vgxness`/`vgx` CLI bins while the OpenTUI coding interface remains an internal root-owned surface. The repository root owns `@opentui/core`, the Bun lockfile, and verification.
|
|
10
|
+
|
|
11
|
+
This keeps the shipped `vgxness`/`vgx` CLI stable while letting us build the OpenTUI experience directly from root source.
|
|
12
|
+
|
|
13
|
+
## Run
|
|
14
|
+
|
|
15
|
+
Prerequisite: install Bun.
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
bun src/cli/tui/opentui/code/index.ts
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Interactive mode starts in read-only `inspect`. Type a task/question and press `Enter`; `vgxcode` runs the root Bun CLI bridge as one of:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
bun run cli:bun -- code inspect "<your prompt>" --events-jsonl
|
|
25
|
+
bun run cli:bun -- code plan "<your prompt>" --events-jsonl
|
|
26
|
+
bun run cli:bun -- code craft-preview "<your prompt>" --events-jsonl
|
|
27
|
+
bun run cli:bun -- code craft "<your prompt>" --events-jsonl --approval-channel stdio
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
The OpenTUI shell uses `bun run --silent cli:bun -- ...` internally so Bun lifecycle output does not pollute the JSONL event stream.
|
|
31
|
+
|
|
32
|
+
The prompt defaults to `inspect`. Press `Tab` to toggle between `inspect` and `plan`, or prefix a prompt with `/inspect`, `/plan`, `/craft-preview`, or `/craft`:
|
|
33
|
+
|
|
34
|
+
```text
|
|
35
|
+
/plan outline a safe implementation
|
|
36
|
+
/inspect summarize the current architecture
|
|
37
|
+
/craft-preview show the diff you would make
|
|
38
|
+
/craft apply the smallest approved fix
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
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.
|
|
42
|
+
|
|
43
|
+
`vgxcode` does not own mutation policy. `inspect`, `plan`, and `craft-preview` are read-only/preview paths. `/craft` is approval-capable and may mutate only through the VGXNESS Code runtime and its explicit approval channel; the OpenTUI shell only renders pending approvals and writes approve/deny decisions to the live runtime process.
|
|
44
|
+
|
|
45
|
+
To replay real read-only runtime events without spawning the root CLI, pipe the root Bun CLI JSONL bridge into `vgxcode`:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
bun run cli:bun -- code inspect "What is this project?" --events-jsonl | bun src/cli/tui/opentui/code/index.ts
|
|
49
|
+
bun run cli:bun -- code plan "Plan a safe change" --events-jsonl | bun src/cli/tui/opentui/code/index.ts
|
|
50
|
+
bun run cli:bun -- code craft-preview "Preview a safe change" --events-jsonl | bun src/cli/tui/opentui/code/index.ts
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
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`.
|
|
54
|
+
|
|
55
|
+
Press `Ctrl+C` to exit.
|
|
56
|
+
|
|
57
|
+
## Current scope
|
|
58
|
+
|
|
59
|
+
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 `inspect` by default through the JSONL bridge.
|
|
60
|
+
|
|
61
|
+
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.
|
|
62
|
+
|
|
63
|
+
## Checks
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
npm run check:bun-lock # from the repository root; read-only/advisory
|
|
67
|
+
bun run verify:typecheck
|
|
68
|
+
node --import tsx --test test/cli/tui/opentui-code.test.ts
|
|
69
|
+
bun run smoke:opentui-code
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
The root `npm run check:bun-lock` command compares root `package.json`
|
|
73
|
+
dependency specifiers with the root `bun.lock` without installing Bun or
|
|
74
|
+
mutating `node_modules`. The root lockfile is the repository dependency
|
|
75
|
+
authority; package evidence is validated by `bun run package:bun:evidence`.
|
|
76
|
+
|
|
77
|
+
Manual interactive check:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
bun src/cli/tui/opentui/code/index.ts
|
|
81
|
+
# type: What is this project?
|
|
82
|
+
# press Enter
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Safety rule
|
|
86
|
+
|
|
87
|
+
`vgxcode` renders state and user decisions. It must not execute tools directly, bypass approvals, or own mutation policy. Runtime, approvals, verification, SDD, and memory stay in the VGXNESS core runtime.
|
package/docs/vgxness-code.md
CHANGED
|
@@ -2,12 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
VGXNESS Code is the native VGXNESS coding CLI/runtime. It is not an OpenCode wrapper, fork, compatibility layer, config format, prompt copy, or branded re-skin. Provider adapters translate VGXNESS-native requests only.
|
|
4
4
|
|
|
5
|
+
`vgxcode` is the internal root-owned OpenTUI shell for VGXNESS Code development. Public commands stay under `vgxness code ...`; the OpenTUI shell should render runtime state and approval decisions without becoming a separate mutation policy layer.
|
|
6
|
+
|
|
5
7
|
## Commands
|
|
6
8
|
|
|
7
|
-
- `
|
|
8
|
-
- `
|
|
9
|
-
- `
|
|
10
|
-
- `
|
|
9
|
+
- `vgxness code inspect "<question>"` — read-only repository investigation.
|
|
10
|
+
- `vgxness code plan "<task>"` — read-only implementation planning.
|
|
11
|
+
- `vgxness code craft "<task>"` — bounded edit-capable work with approval gates.
|
|
12
|
+
- `vgxness code sdd <change> <phase>` — SDD-backed phase work; use `--save-artifact` only when persistence is intended.
|
|
11
13
|
|
|
12
14
|
Useful controls: `--provider`, `--model`, `--stream`, `--json`, `--max-source-bytes`, `--approval-policy ask|allow|deny`, `--verification none|suggest|run|repair`, `--transcript off|summary|full`, and `--memory off|ask|auto`.
|
|
13
15
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vgxness",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.1",
|
|
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
|
},
|