@jmanuelcorral/openteam 0.17.5 → 0.18.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 (36) hide show
  1. package/README.es.md +4 -4
  2. package/README.md +4 -4
  3. package/dist/certificates/graph-release-certificate.json +2 -2
  4. package/dist/certificates/graph-shadow-certificate.json +2 -2
  5. package/dist/cli.js +819 -2448
  6. package/dist/commands/dispatch.d.ts +2 -135
  7. package/dist/commands/dispatch.d.ts.map +1 -1
  8. package/dist/commands/doctor.d.ts.map +1 -1
  9. package/dist/commands/setup.d.ts +19 -1
  10. package/dist/commands/setup.d.ts.map +1 -1
  11. package/dist/config/schema.d.ts +2 -0
  12. package/dist/config/schema.d.ts.map +1 -1
  13. package/dist/index.d.ts +1 -1
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +6104 -6392
  16. package/dist/opencodeArtifacts/orchestratorAgent.d.ts +11 -6
  17. package/dist/opencodeArtifacts/orchestratorAgent.d.ts.map +1 -1
  18. package/dist/orchestrator/coordinator.d.ts +26 -0
  19. package/dist/orchestrator/coordinator.d.ts.map +1 -1
  20. package/dist/orchestrator/nodeIteration.d.ts +36 -0
  21. package/dist/orchestrator/nodeIteration.d.ts.map +1 -0
  22. package/dist/orchestrator/outputContract.d.ts +91 -0
  23. package/dist/orchestrator/outputContract.d.ts.map +1 -0
  24. package/dist/orchestrator/reportArtifactProbe.d.ts +40 -0
  25. package/dist/orchestrator/reportArtifactProbe.d.ts.map +1 -0
  26. package/dist/orchestrator/reportArtifactReader.d.ts +36 -0
  27. package/dist/orchestrator/reportArtifactReader.d.ts.map +1 -0
  28. package/dist/orchestrator/reportDurability.d.ts +70 -0
  29. package/dist/orchestrator/reportDurability.d.ts.map +1 -0
  30. package/dist/orchestrator/subsessions.d.ts +1 -1
  31. package/dist/orchestrator/subsessions.d.ts.map +1 -1
  32. package/dist/plugin/orchestrateTool.d.ts +41 -1
  33. package/dist/plugin/orchestrateTool.d.ts.map +1 -1
  34. package/package.json +1 -1
  35. package/dist/orchestrator/ralphLoop.d.ts +0 -57
  36. package/dist/orchestrator/ralphLoop.d.ts.map +0 -1
package/README.es.md CHANGED
@@ -563,9 +563,9 @@ Consulta [docs/es/guide/update-plugin.md](docs/es/guide/update-plugin.md)
563
563
  para la explicación completa del mecanismo de congelamiento y el procedimiento
564
564
  de actualización paso a paso.
565
565
 
566
- ### Modo desatendido: `openteam loop` (patrón Ralph) 🎯 *(`--dry-run` verificado; despacho real en diseño)*
566
+ ### Trabajo iterativo bajo `openteam-orchestrate` 🎯
567
567
 
568
- 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. Como propiedad de seguridad, `openteam loop` **se niega a ejecutarse de forma desatendida sin confirmación explícita**: ejecutado sin argumentos imprime *"Refusing to run unattended without confirmation. Re-run with --dry-run to preview the plan, or --yes to run."* y termina con código distinto de cero; `openteam loop --dry-run` previsualiza el plan (backlog, topes de iteraciones y presupuesto, sleep, contexto fresco y condiciones de parada) sin despachar nada. La previsualización con `--dry-run` y la negativa al invocarlo sin argumentos están **verificadas contra el binario publicado**; el despacho desatendido real (`--yes`) **aún no está verificado de extremo a extremo y sigue en fase de diseño**. Consulta el diseño y los ejemplos en **[docs/loop.md](docs/loop.md)**.
568
+ El trabajo desatendido y de tipo backlog se gestiona **enteramente desde la orquestación** — la iteración es una propiedad del grafo, no un comando aparte. Cuando el coordinador despacha un rol, ese nodo del grafo sigue trabajando en pasadas sucesivas hasta que declara `openteam-status: done` en su artefacto de reporte (el **contrato de salida**) o alcanza su tope de reintentos. El tope es configurable vía `orchestrator.maxRetries` en `.opencode/openteam.json`: cuenta reintentos, así que el valor por defecto `2` significa **tres pasadas por nodo** y `0` desactiva la iteración (una sola pasada). Un nodo que nunca declara completitud se vuelve a despachar hasta el tope en lugar de asumirse terminado, y un **gate de durabilidad** verifica en código que cada rol persistió realmente un reporte no vacío — así ninguna pasada descarta trabajo en silencio. La concurrencia por oleada y la cancelación por dependencias no cambian. Consulta **[docs/es/guide/commands.md](docs/es/guide/commands.md)** para el contrato completo.
569
569
 
570
570
  ### Console web multi-sesión (se lanza desde la CLI)
571
571
 
@@ -580,7 +580,7 @@ Muestra en vivo: **coste y tokens reales por mensaje** (input/output/reasoning/
580
580
  cache), **toolcalls con duración** y ok/fallo, ruteo reciente (coste/ahorro y
581
581
  modelo elegido, **solo hashes de prompt, nunca el texto**), **decisiones** de los
582
582
  agentes (scribe) y **reuniones** (batches multi-agente del orquestador), progreso
583
- del backlog del loop, el equipo de agentes (LLM local/frontier de cada uno) y
583
+ de orquestación e iteración, el equipo de agentes (LLM local/frontier de cada uno) y
584
584
  últimos commits. Se actualiza por **SSE** (con *polling* de respaldo).
585
585
 
586
586
  Cada pestaña de sesión incluye además una **vista "Sesión"**: una consola por la
@@ -825,7 +825,7 @@ Consulta [docs/compatibility.md](docs/compatibility.md). Resumen verificado el `
825
825
 
826
826
  | Superficie | Versión / contrato |
827
827
  | --- | --- |
828
- | openteam | `0.17.5`; versión actual del paquete |
828
+ | openteam | `0.18.0`; versión actual del paquete |
829
829
  | `@opencode-ai/plugin` | `1.18.19` |
830
830
  | `@opencode-ai/sdk` | `1.18.19` |
831
831
  | Hook de routing | `chat.message`; no `chat.params` para cambiar modelo |
package/README.md CHANGED
@@ -498,15 +498,15 @@ opencode before running `--delete` to avoid `[LOCKED]` errors.
498
498
  See [docs/guide/update-plugin.md](docs/guide/update-plugin.md) for the full
499
499
  explanation of the freeze mechanism and a step-by-step update procedure.
500
500
 
501
- ### Unattended mode: `openteam loop` (Ralph pattern) 🎯 *(`--dry-run` verified; live dispatch design-stage)*
501
+ ### Iterative work under `openteam-orchestrate` 🎯
502
502
 
503
- A second mode of operation: an **external loop** that invokes `opencode run` against a persistent backlog until it is drained, with fresh context per iteration and safety caps (budget, max iterations, no-progress). It complements the interactive orchestrator, it does not replace it. As a safety property, `openteam loop` **refuses to run unattended without explicit confirmation** — running bare it prints *"Refusing to run unattended without confirmation. Re-run with --dry-run to preview the plan, or --yes to run."* and exits non-zero; `openteam loop --dry-run` previews the plan (backlog, iteration and budget caps, sleep, fresh-context and stop conditions) without dispatching anything. The `--dry-run` preview and the bare-invocation refusal are **verified against the shipped binary** (`node dist/cli.js loop --dry-run` exits 0 and prints the plan; running bare exits non-zero); the actual unattended dispatch (`--yes`) is **not yet verified end-to-end and remains design-stage**. See the design and examples in **[docs/loop.md](docs/loop.md)**.
503
+ Unattended, backlog-style work is driven **entirely from orchestration** — iteration is a property of the graph, not a separate command. When the coordinator dispatches a role, that graph node keeps working across successive passes until it declares `openteam-status: done` in its report artifact (the **output contract**) or it reaches its retry bound. The bound is configurable via `orchestrator.maxRetries` in `.opencode/openteam.json`: it counts retries, so the default `2` means **three passes per node** and `0` disables iteration (a single pass). A node that never declares completion is re-dispatched up to the bound rather than assumed finished, and a **durability gate** verifies in code that each role actually persisted a non-empty report — so no pass silently discards work. Wave-level concurrency and dependency cancellation are unchanged. See **[docs/guide/commands.md](docs/guide/commands.md)** for the full contract.
504
504
 
505
505
  ### Multi-session web Console: `openteam console`
506
506
 
507
507
  openteam exposes a **local web Console** you launch from the CLI with `openteam console`. It aggregates **all** opencode sessions at once (one tab per session, plus "All"), because each plugin **writes redacted events** to per-session JSONL logs that the Console watches (`fs.watch`) and aggregates.
508
508
 
509
- It shows live: **real cost and tokens per message** (input/output/reasoning/cache), **tool calls with duration** and ok/fail, recent routing (cost/savings and chosen model — **prompt hashes only, never text**), agent **decisions** (scribe) and **meetings** (multi-agent batches), loop backlog progress, the agent team and latest commits. It updates over **SSE** (with polling fallback).
509
+ It shows live: **real cost and tokens per message** (input/output/reasoning/cache), **tool calls with duration** and ok/fail, recent routing (cost/savings and chosen model — **prompt hashes only, never text**), agent **decisions** (scribe) and **meetings** (multi-agent batches), orchestration and iteration progress, the agent team and latest commits. It updates over **SSE** (with polling fallback).
510
510
 
511
511
  Each session tab also includes a **"Session" view**: a console where you can **watch the live output** (SSE) and **send prompts** or **answer permissions** for that opencode session, authenticated with an **ephemeral token** per launch. Optionally, with the `terminal.pty` flag, a **"Terminal" view** opens a **real shell** in the workspace via opencode's PTY API (no `node-pty`).
512
512
 
@@ -714,7 +714,7 @@ See [docs/compatibility.md](docs/compatibility.md). Verified summary as of `2026
714
714
 
715
715
  | Surface | Version / contract |
716
716
  | --- | --- |
717
- | openteam | `0.17.5`; current package version |
717
+ | openteam | `0.18.0`; current package version |
718
718
  | `@opencode-ai/plugin` | `1.18.19` |
719
719
  | `@opencode-ai/sdk` | `1.18.19` |
720
720
  | Routing hook | `chat.message`; not `chat.params` for model changes |
@@ -34,12 +34,12 @@
34
34
  "idempotent": true
35
35
  },
36
36
  "performance": {
37
- "p95Millis": 0.4464980000000196,
37
+ "p95Millis": 0.34649000000001706,
38
38
  "budgetMillis": 50,
39
39
  "samples": 100
40
40
  }
41
41
  },
42
42
  "verdict": "pass",
43
43
  "failedGates": [],
44
- "digest": "8c41d9fefa8b2edf934855dba6394316899e5763692228c7674aa8ec4ed52a65"
44
+ "digest": "1e438352cc6de785b21730ae62b12c6fc5ef1551c3c206b9206b53016328c6f6"
45
45
  }
@@ -20,7 +20,7 @@
20
20
  "rawFindings": 0
21
21
  },
22
22
  "overhead": {
23
- "p95Millis": 0.3133890000000008,
23
+ "p95Millis": 0.23942500000001132,
24
24
  "budgetMillis": 25,
25
25
  "samples": 1000
26
26
  },
@@ -35,5 +35,5 @@
35
35
  },
36
36
  "verdict": "pass",
37
37
  "failedGates": [],
38
- "digest": "0d876024acfb42c9984626e6d726a964cb24929e0a32045d39d16a7a60bd7a21"
38
+ "digest": "7fee356633db4257500d39344da1cf9611b83a5adc031ae1c7d9a0889653c682"
39
39
  }