oficina-opencode 3.0.5 → 3.1.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 +240 -208
- package/commands/oficina.md +7 -6
- package/dashboard/.dom-check.html +1257 -0
- package/dashboard/README-DASHBOARD.md +64 -0
- package/dashboard/assets/factory.css +1543 -0
- package/dashboard/assets/tokens.css +208 -0
- package/dashboard/build-kanban-data.mjs +279 -0
- package/dashboard/dashboard.css +753 -0
- package/dashboard/dashboard.html +121 -0
- package/dashboard/dashboard.js +610 -0
- package/dashboard/data/snapshot.json +883 -0
- package/dashboard/debate.html +134 -0
- package/dashboard/factory/build-snapshot.mjs +89 -0
- package/dashboard/factory/factory-app.js +1185 -0
- package/dashboard/factory/factory-core.js +541 -0
- package/dashboard/factory/snapshot.js +850 -0
- package/dashboard/factory.html +350 -0
- package/dashboard/kanban-data.json +671 -0
- package/dashboard/kanban-source.js +643 -0
- package/dashboard/kanban.check.mjs +454 -0
- package/dashboard/kanban.html +1257 -0
- package/dashboard/leadership.html +1008 -0
- package/dashboard/lib/debate-app.js +1149 -0
- package/dashboard/lib/debate-core.js +698 -0
- package/dashboard/lib/debate-data.js +163 -0
- package/dashboard/lib/debate-demo.js +110 -0
- package/dashboard/lib/debate.css +1155 -0
- package/dashboard/lib/leadership-model.js +946 -0
- package/dashboard/probe.mjs +35 -0
- package/dashboard/scripts/serve.mjs +122 -0
- package/dashboard/scripts/snapshot-data.mjs +93 -0
- package/dashboard/scripts/snapshot.mjs +28 -0
- package/dashboard/server.mjs +242 -0
- package/dashboard/shot.mjs +54 -0
- package/dashboard/shots/desktop-gates.png +0 -0
- package/dashboard/shots/desktop-light.png +0 -0
- package/dashboard/shots/desktop-real.png +0 -0
- package/dashboard/shots/mobile.png +0 -0
- package/dashboard/test/factory-core.test.mjs +244 -0
- package/dashboard/tests/debate-core.test.mjs +336 -0
- package/dashboard/tests/leadership-model.test.mjs +404 -0
- package/dist/cli.js +148 -26
- package/dist/cli.js.map +1 -1
- package/dist/core/bus.js +3 -3
- package/dist/core/bus.js.map +1 -1
- package/dist/core/catalog.d.ts +9 -1
- package/dist/core/catalog.d.ts.map +1 -1
- package/dist/core/catalog.js +77 -2
- package/dist/core/catalog.js.map +1 -1
- package/dist/core/dashboard.d.ts +33 -0
- package/dist/core/dashboard.d.ts.map +1 -0
- package/dist/core/dashboard.js +115 -0
- package/dist/core/dashboard.js.map +1 -0
- package/dist/core/dispatch.d.ts +1 -1
- package/dist/core/dispatch.d.ts.map +1 -1
- package/dist/core/dispatch.js +84 -12
- package/dist/core/dispatch.js.map +1 -1
- package/dist/core/docsync.d.ts +0 -9
- package/dist/core/docsync.d.ts.map +1 -1
- package/dist/core/docsync.js +12 -15
- package/dist/core/docsync.js.map +1 -1
- package/dist/core/environment.d.ts +28 -0
- package/dist/core/environment.d.ts.map +1 -0
- package/dist/core/environment.js +80 -0
- package/dist/core/environment.js.map +1 -0
- package/dist/core/factory.d.ts +16 -0
- package/dist/core/factory.d.ts.map +1 -1
- package/dist/core/factory.js +143 -0
- package/dist/core/factory.js.map +1 -1
- package/dist/core/fsx.d.ts +20 -2
- package/dist/core/fsx.d.ts.map +1 -1
- package/dist/core/fsx.js +10 -6
- package/dist/core/fsx.js.map +1 -1
- package/dist/core/gates.d.ts +23 -1
- package/dist/core/gates.d.ts.map +1 -1
- package/dist/core/gates.js +83 -8
- package/dist/core/gates.js.map +1 -1
- package/dist/core/leases.d.ts.map +1 -1
- package/dist/core/leases.js +4 -1
- package/dist/core/leases.js.map +1 -1
- package/dist/core/mesa.d.ts +1 -6
- package/dist/core/mesa.d.ts.map +1 -1
- package/dist/core/mesa.js +1 -6
- package/dist/core/mesa.js.map +1 -1
- package/dist/core/office.d.ts +3 -29
- package/dist/core/office.d.ts.map +1 -1
- package/dist/core/office.js +77 -90
- package/dist/core/office.js.map +1 -1
- package/dist/core/paths.d.ts.map +1 -1
- package/dist/core/paths.js +6 -1
- package/dist/core/paths.js.map +1 -1
- package/dist/core/retry.d.ts +2 -8
- package/dist/core/retry.d.ts.map +1 -1
- package/dist/core/retry.js +3 -34
- package/dist/core/retry.js.map +1 -1
- package/dist/core/roster.js +3 -3
- package/dist/core/roster.js.map +1 -1
- package/dist/core/sandbox.d.ts +38 -1
- package/dist/core/sandbox.d.ts.map +1 -1
- package/dist/core/sandbox.js +119 -15
- package/dist/core/sandbox.js.map +1 -1
- package/dist/core/state.d.ts +2 -2
- package/dist/core/state.d.ts.map +1 -1
- package/dist/core/state.js +5 -33
- package/dist/core/state.js.map +1 -1
- package/dist/core/stores.d.ts +3 -13
- package/dist/core/stores.d.ts.map +1 -1
- package/dist/core/stores.js +8 -32
- package/dist/core/stores.js.map +1 -1
- package/dist/core/systemPrompt.d.ts.map +1 -1
- package/dist/core/systemPrompt.js +4 -1
- package/dist/core/systemPrompt.js.map +1 -1
- package/dist/core/tripwire.d.ts +22 -8
- package/dist/core/tripwire.d.ts.map +1 -1
- package/dist/core/tripwire.js +71 -26
- package/dist/core/tripwire.js.map +1 -1
- package/dist/core/types.d.ts +6 -14
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +11 -3
- package/dist/core/types.js.map +1 -1
- package/dist/hooks/scopeGuard.d.ts +15 -1
- package/dist/hooks/scopeGuard.d.ts.map +1 -1
- package/dist/hooks/scopeGuard.js +88 -73
- package/dist/hooks/scopeGuard.js.map +1 -1
- package/dist/tools/index.d.ts +9 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +29 -81
- package/dist/tools/index.js.bak +972 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/v1.d.ts.map +1 -1
- package/dist/v1.js +30 -36
- package/dist/v1.js.map +1 -1
- package/dist/v2.d.ts +5 -0
- package/dist/v2.d.ts.map +1 -1
- package/dist/v2.js +79 -46
- package/dist/v2.js.bak +517 -0
- package/dist/v2.js.map +1 -1
- package/docs/GARANTIAS.md +2 -2
- package/docs/PRUEBA-E2E.md +4 -4
- package/docs/QUE-ES.md +4 -5
- package/docs/SEGURIDAD-REPO.md +83 -0
- package/docs/assets/banner.svg +42 -0
- package/docs/catalog-facts.json +3 -3
- package/docs/superpowers/specs/2026-10-29-factory-skill-creator-and-remove-budget.md +182 -0
- package/package.json +14 -6
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Oficina · Dashboard visual
|
|
2
|
+
|
|
3
|
+
Interfaz en tiempo real para **ver** cómo trabaja la Oficina de Agents: la mesa, el bus de mensajes, las decisiones del jefe, el kanban de cards, los gates y la factory.
|
|
4
|
+
|
|
5
|
+
## Cómo abrirlo
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# 1. Con datos reales (recomendado) — desde la raíz del repo:
|
|
9
|
+
node dashboard/server.mjs # → http://localhost:7333
|
|
10
|
+
|
|
11
|
+
# 2. Sin server — abrí dashboard/dashboard.html en el browser:
|
|
12
|
+
# entra en Modo Demo (datos simulados, claramente etiquetados).
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Qué muestra cada panel
|
|
16
|
+
|
|
17
|
+
| Panel | Qué muestra | Fuente |
|
|
18
|
+
|---|---|---|
|
|
19
|
+
| **Mesa** | La mesa redonda con cada agente: anillo de color por estado (ámbar = trabajando, verde = libre, rojo = sin heartbeat), card actual, y cards sin owner (recuadro punteado) | `roster.json` + `state.json` |
|
|
20
|
+
| **Bus de mensajes** | Flujo entre agentes: HELP_REQUEST, CLAIM, STATUS, SPAWN… con flechas `→`, color por prioridad, threading visual (respuestas indentadas) | `bus/peer/*.json` |
|
|
21
|
+
| **Decisiones del jefe** | Feed de Director / Integrator / Architect / Commander | mensajes de `oficina-*` |
|
|
22
|
+
| **Cards** | Kanban de 7 columnas: todo → in_progress → review → done / rework / blocked / escalated, con owner, reviewer, count de rechazos y checklist de acceptance criteria | `state.json` |
|
|
23
|
+
| **Gates** | Al hacer click en una card: spinners de gates (build, typecheck, lint, test, security, diff) y PASS/FAIL + links a evidence.md / handoff.md | `artifacts/<card>/gates.md` |
|
|
24
|
+
| **Factory** | Toast animado cuando aparece un agente nuevo en el roster | diff de `roster.json` |
|
|
25
|
+
| **Replay** | Grabación de la sesión paso a paso (scrub del bus) | buffer en memoria |
|
|
26
|
+
|
|
27
|
+
## Atajos de teclado
|
|
28
|
+
|
|
29
|
+
- **T** — tema oscuro/claro
|
|
30
|
+
- **R** — modo replay
|
|
31
|
+
- **Esc** — salir del replay
|
|
32
|
+
|
|
33
|
+
## Arquitectura
|
|
34
|
+
|
|
35
|
+
- `dashboard.html` — estructura (una sola página, sin build step)
|
|
36
|
+
- `dashboard.css` — tokens en `:root`, tema dark/light, solo se anima `transform`/`opacity`
|
|
37
|
+
- `dashboard.js` — conexión (SSE + polling), render de los 6 paneles, modo demo, replay, fondo WebGL con bloom (three.js vía esm.sh, fallback silencioso)
|
|
38
|
+
- `server.mjs` — Node puro, cero dependencias: sirve los archivos, agrega `.oficina/`, watch + SSE
|
|
39
|
+
|
|
40
|
+
## Accesibilidad
|
|
41
|
+
|
|
42
|
+
- ARIA live regions en bus y toasts (`role="log"`, `role="status"`)
|
|
43
|
+
- Navegación por teclado: los mensajes y cards son focusables, se expanden con Enter/Espacio
|
|
44
|
+
- Contraste AA en ambos temas
|
|
45
|
+
- `prefers-reduced-motion` desactiva animaciones y el fondo WebGL
|
|
46
|
+
|
|
47
|
+
## Notas
|
|
48
|
+
|
|
49
|
+
- El modo demo existe para ver la interfaz sin corrida activa; el banner lo indica.
|
|
50
|
+
## Arranque
|
|
51
|
+
|
|
52
|
+
**Automático (recomendado):** arrancá una corrida con el comando `/oficina` o con el plugin instalado: el dashboard se levanta solo en background y el navegador se abre cuando la corrida arranca. Se negocia un puerto libre si el 7333 está ocupado.
|
|
53
|
+
|
|
54
|
+
**Manual:**
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
node dashboard/server.mjs # abre el navegador en 7333
|
|
58
|
+
oficina dashboard # CLI: igual, desde el paquete instalado
|
|
59
|
+
node dashboard/server.mjs --no-open # solo servidor, sin navegador
|
|
60
|
+
node dashboard/server.mjs --oficina /ruta/al/proyecto/.oficina --port 8080
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Sin datos reales la interfaz entra en modo demo (etiquetado, honesto): ves cómo se lee la mesa y el bus aunque no haya corrida activa; el banner lo indica.
|
|
64
|
+
- El fondo WebGL se degrada a nada si WebGL o la CDN no están disponibles — la mesa nunca depende de él.
|