@jmanuelcorral/openteam 0.1.21 → 0.1.22

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 (40) hide show
  1. package/README.md +29 -31
  2. package/dist/cli/dashboardServe.d.ts +15 -8
  3. package/dist/cli/dashboardServe.d.ts.map +1 -1
  4. package/dist/cli.js +889 -276
  5. package/dist/commands/dashboard.d.ts +4 -4
  6. package/dist/commands/dashboard.d.ts.map +1 -1
  7. package/dist/commands/orchestratorAgent.d.ts.map +1 -1
  8. package/dist/contract/opencode.d.ts +1 -1
  9. package/dist/contract/opencode.d.ts.map +1 -1
  10. package/dist/dashboard/render.d.ts.map +1 -1
  11. package/dist/dashboard/state.d.ts +14 -6
  12. package/dist/dashboard/state.d.ts.map +1 -1
  13. package/dist/dashboard/types.d.ts +14 -3
  14. package/dist/dashboard/types.d.ts.map +1 -1
  15. package/dist/index.d.ts +8 -9
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +476 -802
  18. package/dist/orchestrator/coordinator.d.ts +14 -2
  19. package/dist/orchestrator/coordinator.d.ts.map +1 -1
  20. package/dist/plugin/capture.d.ts +46 -0
  21. package/dist/plugin/capture.d.ts.map +1 -0
  22. package/dist/plugin/hooks.d.ts +2 -2
  23. package/dist/plugin/hooks.d.ts.map +1 -1
  24. package/dist/plugin/toolcalls.d.ts +21 -0
  25. package/dist/plugin/toolcalls.d.ts.map +1 -0
  26. package/dist/telemetry/aggregate.d.ts +89 -0
  27. package/dist/telemetry/aggregate.d.ts.map +1 -0
  28. package/dist/telemetry/decisions.d.ts +25 -0
  29. package/dist/telemetry/decisions.d.ts.map +1 -0
  30. package/dist/telemetry/eventLog.d.ts +63 -0
  31. package/dist/telemetry/eventLog.d.ts.map +1 -0
  32. package/dist/telemetry/events.d.ts +217 -0
  33. package/dist/telemetry/events.d.ts.map +1 -0
  34. package/dist/web/snapshot.d.ts +13 -7
  35. package/dist/web/snapshot.d.ts.map +1 -1
  36. package/dist/web/start.d.ts +10 -7
  37. package/dist/web/start.d.ts.map +1 -1
  38. package/package.json +1 -1
  39. package/dist/web/activity.d.ts +0 -12
  40. package/dist/web/activity.d.ts.map +0 -1
package/README.md CHANGED
@@ -421,16 +421,40 @@ También puedes activarlo durante `openteam setup` (te lo pregunta), o al vuelo
421
421
 
422
422
  Segundo modo de operación: un **bucle externo** que invoca `opencode run` contra un backlog persistente hasta vaciarlo, con contexto fresco por iteración y topes de seguridad (presupuesto, máx. iteraciones, sin-progreso). Complementa al orquestador interactivo, no lo sustituye. Consulta el diseño y los ejemplos en **[docs/loop.md](docs/loop.md)**.
423
423
 
424
- ### Dashboard web (mientras la sesión está viva)
424
+ ### Dashboard web multi-sesión (se lanza desde la CLI)
425
425
 
426
- openteam puede exponer un **panel web local** que se sirve **dentro del proceso de opencode** (hook `server()`), mientras la sesión está abierta. Muestra en vivo: ruteo reciente (coste/ahorro y modelo elegido, **solo hashes de prompt, nunca el texto**), progreso del backlog del loop, el equipo de agentes (LLM local/frontier de cada uno), últimos commits y actividad. Se actualiza por **SSE** (con *polling* de respaldo).
426
+ openteam expone un **panel web local** que **lanzas desde la CLI** con
427
+ `openteam dashboard`. Agrega **todas** las sesiones de opencode a la vez: puedes
428
+ tener varias pestañas de opencode abiertas y todas aparecen en el **mismo**
429
+ panel, porque cada plugin **escribe eventos redactados** en logs JSONL por
430
+ sesión y el dashboard los vigila (`fs.watch`) y **agrega**.
427
431
 
428
- `openteam setup` **te pregunta si quieres activarlo** (puerto 4599 por defecto). También puedes activarlo a mano en `.opencode/openteam.json`:
432
+ Muestra en vivo: **coste y tokens reales por mensaje** (input/output/reasoning/
433
+ cache), **toolcalls con duración** y ok/fallo, ruteo reciente (coste/ahorro y
434
+ modelo elegido, **solo hashes de prompt, nunca el texto**), **decisiones** de los
435
+ agentes (scribe) y **reuniones** (batches multi-agente del orquestador), progreso
436
+ del backlog del loop, el equipo de agentes (LLM local/frontier de cada uno) y
437
+ últimos commits. Se actualiza por **SSE** (con *polling* de respaldo).
438
+
439
+ Lánzalo contra el repo actual; escucha en loopback y corre hasta **Ctrl+C**:
440
+
441
+ ```powershell
442
+ openteam dashboard # imprime la URL y sirve el panel multi-sesión
443
+ openteam dashboard --open # además abre el navegador
444
+ openteam dashboard --status # solo imprime la config (no lanza el servidor)
445
+ ```
446
+
447
+ Las sesiones se leen de:
448
+
449
+ ```text
450
+ .opencode/openteam/sessions/*.jsonl
451
+ ```
452
+
453
+ Puedes ajustar host/puerto y demás en `.opencode/openteam.json`:
429
454
 
430
455
  ```json
431
456
  {
432
457
  "dashboard": {
433
- "enabled": true,
434
458
  "host": "127.0.0.1",
435
459
  "port": 4599,
436
460
  "autoPortFallback": true,
@@ -441,33 +465,7 @@ openteam puede exponer un **panel web local** que se sirve **dentro del proceso
441
465
  }
442
466
  ```
443
467
 
444
- Recarga opencode. Al arrancar, el plugin registra la URL en el log:
445
-
446
- ```text
447
- [openteam] dashboard en http://127.0.0.1:4599
448
- ```
449
-
450
- Ábrela en el navegador. Para consultar el estado (URL, puerto, si está activo) desde la CLI o desde dentro de opencode:
451
-
452
- ```powershell
453
- openteam dashboard
454
- ```
455
-
456
- #### Verlo fuera de opencode: `openteam dashboard --serve`
457
-
458
- ¿No lo ves dentro de opencode (config sin `enabled`, o quieres inspeccionarlo
459
- aparte)? Levanta el mismo panel **standalone** contra el repo actual, sin editar
460
- la config. Escucha en loopback y corre hasta que lo pares con **Ctrl+C**:
461
-
462
- ```powershell
463
- openteam dashboard --serve # imprime la URL y sirve el panel
464
- openteam dashboard --serve --open # además abre el navegador
465
- ```
466
-
467
- Fuerza el servidor aunque `dashboard.enabled` sea `false`. Es de solo lectura y
468
- usa las mismas fuentes que dentro de opencode (telemetría, backlog, agentes).
469
-
470
- > **Seguridad**: el servidor escucha **solo en loopback** (`127.0.0.1`/`localhost`, validado por Zod) y **nunca expone prompts** (solo `promptHash`). Se cierra al terminar la sesión de opencode. Si el puerto está ocupado y `autoPortFallback` es `true`, prueba el siguiente libre.
468
+ > **Seguridad**: el servidor escucha **solo en loopback** (`127.0.0.1`/`localhost`, validado por Zod) y **nunca expone prompts** (solo `promptHash`), args de toolcall ni contenido de mensajes: solo contadores, costes y resúmenes redactados. Si el puerto está ocupado y `autoPortFallback` es `true`, prueba el siguiente libre.
471
469
 
472
470
 
473
471
 
@@ -2,14 +2,19 @@ import type { AgentFile } from "../commands/agents";
2
2
  import type { OpenTeamConfig } from "../config/schema";
3
3
  import type { CommitView } from "../dashboard/types";
4
4
  import type { DashboardRuntime, DashboardRuntimeDeps } from "../web/start";
5
- /** Dependencias inyectables del launcher `openteam dashboard --serve`. */
5
+ /** Dependencias inyectables del launcher `openteam dashboard`. */
6
6
  export type DashboardServeDeps = {
7
7
  loadConfig: (path: string) => Promise<OpenTeamConfig>;
8
8
  configPath: string;
9
- telemetryPath: string;
9
+ /** Directorio de logs de sesión (`sessions/*.jsonl`). */
10
+ sessionsDir: string;
11
+ decisionsPath: string;
10
12
  backlogPath: string;
11
13
  agentDir: string;
14
+ /** Telemetry legacy a fusionar como route events. Opcional. */
15
+ legacyTelemetryPath?: string;
12
16
  readText: (path: string) => Promise<string | undefined>;
17
+ listFiles: (dir: string) => Promise<string[]>;
13
18
  listAgentFiles: (dir: string) => Promise<AgentFile[]>;
14
19
  now: () => string;
15
20
  gitLastCommit?: () => Promise<CommitView | undefined>;
@@ -25,10 +30,12 @@ export type DashboardServeOptions = {
25
30
  open: boolean;
26
31
  };
27
32
  /**
28
- * Parsea los flags de `openteam dashboard`. `--serve` levanta el servidor real;
29
- * `--open` (solo con `--serve`) abre el navegador.
33
+ * Parsea los flags de `openteam dashboard`. Por defecto **levanta el servidor**
34
+ * (agrega todas las sesiones); `--status` imprime solo el resumen de texto;
35
+ * `--open` abre el navegador; `--serve` se acepta como alias de compatibilidad.
30
36
  */
31
37
  export declare function parseDashboardServeArgs(rest: readonly string[]): {
38
+ status: boolean;
32
39
  serve: boolean;
33
40
  open: boolean;
34
41
  };
@@ -36,10 +43,10 @@ export type DashboardServeResult = {
36
43
  exitCode: number;
37
44
  };
38
45
  /**
39
- * `openteam dashboard --serve`: arranca el dashboard web **standalone** (fuera de
40
- * opencode) contra el repo actual, imprime la URL y corre hasta que el usuario lo
41
- * para (Ctrl+C). Fuerza el servidor aunque `dashboard.enabled` sea `false` en la
42
- * config, para poder verlo sin editar ficheros. Solo escucha en loopback.
46
+ * `openteam dashboard`: arranca el dashboard web multi-sesión contra el repo
47
+ * actual, agregando **todas** las sesiones de opencode que escriben eventos en
48
+ * `.opencode/openteam/sessions/*.jsonl`. Imprime la URL y corre hasta que el
49
+ * usuario lo para (Ctrl+C). Solo escucha en loopback.
43
50
  */
44
51
  export declare function runDashboardServe(deps: DashboardServeDeps, options: DashboardServeOptions): Promise<DashboardServeResult>;
45
52
  //# sourceMappingURL=dashboardServe.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dashboardServe.d.ts","sourceRoot":"","sources":["../../src/cli/dashboardServe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAG3E,0EAA0E;AAC1E,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IACtD,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACxD,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IACtD,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;IACtD,oEAAoE;IACpE,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,2DAA2D;IAC3D,cAAc,CAAC,EAAE,CACf,IAAI,EAAE,oBAAoB,KACvB,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAClD,sEAAsE;IACtE,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrD,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG;IAChE,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;CACf,CAKA;AAED,MAAM,MAAM,oBAAoB,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAExD;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,kBAAkB,EACxB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,oBAAoB,CAAC,CAuC/B"}
1
+ {"version":3,"file":"dashboardServe.d.ts","sourceRoot":"","sources":["../../src/cli/dashboardServe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAG3E,kEAAkE;AAClE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IACtD,UAAU,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACxD,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9C,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IACtD,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;IACtD,oEAAoE;IACpE,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,2DAA2D;IAC3D,cAAc,CAAC,EAAE,CACf,IAAI,EAAE,oBAAoB,KACvB,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAClD,sEAAsE;IACtE,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrD,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG;IAChE,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;CACf,CAMA;AAED,MAAM,MAAM,oBAAoB,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAExD;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,kBAAkB,EACxB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,oBAAoB,CAAC,CA4C/B"}