@jmanuelcorral/openteam 0.24.0 → 0.25.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 (58) hide show
  1. package/README.es.md +20 -5
  2. package/README.md +14 -2
  3. package/dist/certificates/graph-release-certificate.json +2 -2
  4. package/dist/certificates/graph-shadow-certificate.json +2 -2
  5. package/dist/cli/setupAdapters.d.ts +2 -2
  6. package/dist/cli/setupAdapters.d.ts.map +1 -1
  7. package/dist/cli.js +1251 -554
  8. package/dist/commands/agents.d.ts +6 -4
  9. package/dist/commands/agents.d.ts.map +1 -1
  10. package/dist/commands/dispatch.d.ts +1 -1
  11. package/dist/commands/dispatch.d.ts.map +1 -1
  12. package/dist/commands/setup.d.ts +22 -14
  13. package/dist/commands/setup.d.ts.map +1 -1
  14. package/dist/console/assets.d.ts.map +1 -1
  15. package/dist/console/conversation.d.ts +5 -1
  16. package/dist/console/conversation.d.ts.map +1 -1
  17. package/dist/console/credentials.d.ts +4 -0
  18. package/dist/console/credentials.d.ts.map +1 -0
  19. package/dist/console/inspector.d.ts +1 -1
  20. package/dist/console/inspector.d.ts.map +1 -1
  21. package/dist/console/refresh.d.ts +1 -1
  22. package/dist/console/refresh.d.ts.map +1 -1
  23. package/dist/console/render.d.ts.map +1 -1
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +999 -287
  26. package/dist/local/lemonade.d.ts.map +1 -1
  27. package/dist/local/lemonadeRequestGuard.d.ts +11 -0
  28. package/dist/local/lemonadeRequestGuard.d.ts.map +1 -0
  29. package/dist/local/lemonadeResidency.d.ts +22 -0
  30. package/dist/local/lemonadeResidency.d.ts.map +1 -0
  31. package/dist/local/modelResidency.d.ts +4 -0
  32. package/dist/local/modelResidency.d.ts.map +1 -0
  33. package/dist/local/slotPool.d.ts +13 -7
  34. package/dist/local/slotPool.d.ts.map +1 -1
  35. package/dist/messages/consoleDetail.d.ts +8 -5
  36. package/dist/messages/consoleDetail.d.ts.map +1 -1
  37. package/dist/messages/executionSetup.d.ts +19 -0
  38. package/dist/messages/executionSetup.d.ts.map +1 -1
  39. package/dist/messages/modelResidency.d.ts +19 -0
  40. package/dist/messages/modelResidency.d.ts.map +1 -0
  41. package/dist/orchestrator/coordinator.d.ts.map +1 -1
  42. package/dist/orchestrator/runtimeSelection.d.ts +4 -3
  43. package/dist/orchestrator/runtimeSelection.d.ts.map +1 -1
  44. package/dist/plugin/availability.d.ts +4 -1
  45. package/dist/plugin/availability.d.ts.map +1 -1
  46. package/dist/plugin/hooks.d.ts +2 -0
  47. package/dist/plugin/hooks.d.ts.map +1 -1
  48. package/dist/plugin/memoryTool.d.ts +9 -3
  49. package/dist/plugin/memoryTool.d.ts.map +1 -1
  50. package/dist/plugin/modelResidency.d.ts +47 -0
  51. package/dist/plugin/modelResidency.d.ts.map +1 -0
  52. package/dist/router/types.d.ts +2 -0
  53. package/dist/router/types.d.ts.map +1 -1
  54. package/dist/web/conversationRoute.d.ts +2 -2
  55. package/dist/web/conversationRoute.d.ts.map +1 -1
  56. package/dist/web/server.d.ts +1 -1
  57. package/dist/web/server.d.ts.map +1 -1
  58. package/package.json +1 -1
package/README.es.md CHANGED
@@ -137,6 +137,12 @@ openteam setup
137
137
 
138
138
  > El antiguo comando `openteam init` sigue funcionando como **alias obsoleto** de `openteam setup`.
139
139
 
140
+ **Lemonade solo usa modelos activos.** Los modelos descargados pero no cargados,
141
+ en transición o cuyo estado no se pueda verificar no son seleccionables; una
142
+ lista vacía tampoco permite introducir un ID supuesto. openteam no carga ni
143
+ descarga modelos para hacer funcionar una selección. Consulta la
144
+ [política y los límites del servidor](docs/adr/lemonade-active-models.md).
145
+
140
146
  El asistente:
141
147
 
142
148
  1. Sondea runtimes locales y primero pregunta cuáles habilitar. Elegir
@@ -729,9 +735,18 @@ JSONL por sesión y la Console los vigila (`fs.watch`) y **agrega**.
729
735
 
730
736
  Muestra en vivo: **uso de tokens registrado y estimaciones de coste por
731
737
  mensaje** (input/output/reasoning/cache), toolcalls con duración, routing
732
- reciente, decisiones, reuniones, progreso, equipo y commits. Solo muestra hashes
733
- de prompt, nunca el texto. Los límites y estimaciones son finitos y auditables,
734
- pero no sustituyen la factura del provider. Se actualiza por **SSE**.
738
+ reciente, decisiones, reuniones, progreso, equipo y commits. La telemetría solo
739
+ contiene hashes de prompt, nunca el texto. Los límites y estimaciones son
740
+ finitos y auditables, pero no sustituyen la factura del provider. Se actualiza
741
+ por **SSE**.
742
+
743
+ **Las conversaciones aparecen por defecto.** Las vistas activas del árbol y
744
+ Logs muestran automáticamente tus prompts, las respuestas visibles de los
745
+ agentes y las interacciones registradas con herramientas, con actualizaciones
746
+ en vivo. Se lee el historial actual de opencode, sin copiar prompts a la
747
+ telemetría. No hace falta activar diagnóstico ni revelar cada agente; un
748
+ `console.sessionHistory.contentEnabled: false` explícito conserva la vista de
749
+ metadatos. Leer contenido no habilita el envío de prompts ni una PTY.
735
750
 
736
751
  Cada pestaña de sesión incluye además una **vista "Sesión"**: una consola por la
737
752
  que puedes **ver la salida en vivo** (SSE) y **enviar prompts** o **responder
@@ -779,7 +794,7 @@ Graph; el DAG separado de Graph sigue el `graph.mode` efectivo. Consulta
779
794
  [Línea de tiempo de agentes](docs/es/guide/agent-timeline.md) y
780
795
  [Web de observabilidad del grafo](docs/es/guide/graph-observability-web.md).
781
796
 
782
- > **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. La vista "Sesión"/"Terminal" exige el token efímero. Si el puerto está ocupado y `autoPortFallback` es `true`, prueba el siguiente libre. El acceso remoto mediante `openteam tunnel` se **eliminó del MVP** (2026-08-31) y se redefinirá más adelante; la Console no tiene camino de exposición remota integrado.
797
+ > **Seguridad**: el servidor escucha **solo en loopback** (`127.0.0.1`/`localhost`, validado por Zod). Las conversaciones exigen token efímero y validación del workspace exacto, ocultan patrones conocidos de credenciales y usan `no-store`. La telemetría, el ciclo de vida y el estado mantienen solo referencias; no se les copia el texto. El envío de prompts y la PTY conservan permisos independientes. Si el puerto está ocupado y `autoPortFallback` es `true`, se prueba el siguiente libre. El acceso remoto mediante `openteam tunnel` se **eliminó del MVP** (2026-08-31); no existe un camino de exposición remota integrado.
783
798
 
784
799
  **Estabilidad de la interfaz.** La superficie web de la Console es **pre-1.0**: su UI, sus endpoints, el bloque de configuración `console` y el formato de eventos pueden cambiar todavía. El router, los presupuestos, la telemetría y el core de memoria son estables.
785
800
 
@@ -996,7 +1011,7 @@ Consulta [docs/compatibility.md](docs/compatibility.md). Resumen verificado el `
996
1011
 
997
1012
  | Superficie | Versión / contrato |
998
1013
  | --- | --- |
999
- | openteam | `0.24.0`; versión actual del paquete |
1014
+ | openteam | `0.25.0`; versión actual del paquete |
1000
1015
  | `@opencode-ai/plugin` | `1.18.19` |
1001
1016
  | `@opencode-ai/sdk` | `1.18.19` |
1002
1017
  | Hook de routing | `chat.message`; no `chat.params` para cambiar modelo |
package/README.md CHANGED
@@ -148,6 +148,11 @@ openteam setup
148
148
 
149
149
  > The old `openteam init` command still works as a **deprecated alias** of `openteam setup`.
150
150
 
151
+ **Lemonade uses active models only.** Downloaded-but-unloaded, transitioning
152
+ or unverified models are not selectable, and an empty active list does not
153
+ allow a guessed model ID. openteam does not load or unload models to make a
154
+ selection work. See the [policy and server-side limits](docs/adr/lemonade-active-models.md).
155
+
151
156
  The wizard:
152
157
 
153
158
  1. Probes local runtimes, then first asks which ones to enable. Choosing
@@ -725,6 +730,13 @@ agent decisions and meetings, orchestration progress, the team, and commits.
725
730
  These controls and estimates are finite/auditable, but they are not provider
726
731
  invoice accounting.
727
732
 
733
+ **Conversations are visible by default.** Active Agent tree and Logs views
734
+ automatically show operator prompts, visible agent responses and recorded tool
735
+ interactions, with live updates. Reads use opencode's current session history,
736
+ not prompt copies in telemetry. No diagnostic flag or per-agent reveal is
737
+ required; explicit `console.sessionHistory.contentEnabled: false` keeps a
738
+ metadata-only view. Content access does not enable terminal input or a PTY.
739
+
728
740
  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`).
729
741
 
730
742
  ```powershell
@@ -764,7 +776,7 @@ authority; the separate Graph DAG follows the effective `graph.mode`. See
764
776
  [Agent timeline](docs/guide/agent-timeline.md) and
765
777
  [Graph observability web](docs/guide/graph-observability-web.md).
766
778
 
767
- > **Security**: the server listens **on loopback only** (`127.0.0.1`/`localhost`, Zod-validated) and **never exposes prompts** (only `promptHash`), tool-call args or message content only counters, costs and redacted summaries. The "Session"/"Terminal" view requires the ephemeral token. If the port is busy and `autoPortFallback` is `true`, it tries the next free one. Remote access via `openteam tunnel` was **removed from the MVP** (2026-08-31) and will be redefined later; the Console has no built-in remote-exposure path.
779
+ > **Security**: the server listens **on loopback only** (`127.0.0.1`/`localhost`, Zod-validated). Conversation reads require the ephemeral token and exact-workspace validation, mask known credential patterns and use `no-store`. Telemetry/lifecycle/state remain reference-only; conversation text is not copied into them. Session input and PTY retain their separate permissions. If the port is busy and `autoPortFallback` is `true`, the Console tries the next free one. Remote access via `openteam tunnel` was **removed from the MVP** (2026-08-31); there is no built-in remote-exposure path.
768
780
 
769
781
  **Interface stability.** The Console's web surface is **pre-1.0**: its UI, endpoints, `console` config block and event format may still change. The routing, budgets, telemetry and memory core are stable.
770
782
 
@@ -949,7 +961,7 @@ See [docs/compatibility.md](docs/compatibility.md). Verified summary as of `2026
949
961
 
950
962
  | Surface | Version / contract |
951
963
  | --- | --- |
952
- | openteam | `0.24.0`; current package version |
964
+ | openteam | `0.25.0`; current package version |
953
965
  | `@opencode-ai/plugin` | `1.18.19` |
954
966
  | `@opencode-ai/sdk` | `1.18.19` |
955
967
  | 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.4944939999999747,
37
+ "p95Millis": 0.4849879999999871,
38
38
  "budgetMillis": 50,
39
39
  "samples": 100
40
40
  }
41
41
  },
42
42
  "verdict": "pass",
43
43
  "failedGates": [],
44
- "digest": "136f1df46d2aee4ca80d9468e5fa106d343fe5f41d5792a28bd367425cf3c0f0"
44
+ "digest": "c3f5875e459a914431dd62d1d51666849fcc9746e37b47b2280b114bad36cb6d"
45
45
  }
@@ -20,7 +20,7 @@
20
20
  "rawFindings": 0
21
21
  },
22
22
  "overhead": {
23
- "p95Millis": 0.357799,
23
+ "p95Millis": 0.34576800000002095,
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": "35c1a5f4fb0142c17d55596462fe2dfeb105e475a9e571b402422171d567833f"
38
+ "digest": "5a4acec761ee74f67ee576dc55913b3afbd8f6524133d3075022928daa6e8adf"
39
39
  }
@@ -1,7 +1,7 @@
1
1
  import type { ModelCapabilityProfile } from "../capabilities/types";
2
2
  import type { DetectedRuntime, Prompter } from "../commands/setup";
3
3
  import { type ExecLike } from "../local/foundry-local";
4
- import type { LocalRuntimeId } from "../local/types";
4
+ import type { LocalRuntimeKind } from "../local/types";
5
5
  /** Prompter interactivo basado en @clack/prompts. */
6
6
  export declare const clackPrompter: Prompter;
7
7
  /**
@@ -14,5 +14,5 @@ export declare function createDetect(exec: ExecLike): () => Promise<DetectedRunt
14
14
  * Sondea un runtime local en una `baseURL` concreta (p.ej. Ollama/LM Studio en
15
15
  * otra máquina de la red local) para listar sus modelos durante `setup`.
16
16
  */
17
- export declare function createProbeRuntime(exec: ExecLike): (id: LocalRuntimeId, baseURL: string) => Promise<DetectedRuntime>;
17
+ export declare function createProbeRuntime(exec: ExecLike): (kind: LocalRuntimeKind, baseURL: string) => Promise<DetectedRuntime>;
18
18
  //# sourceMappingURL=setupAdapters.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"setupAdapters.d.ts","sourceRoot":"","sources":["../../src/cli/setupAdapters.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,KAAK,EACV,eAAe,EAEf,QAAQ,EAET,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,KAAK,QAAQ,EAEd,MAAM,wBAAwB,CAAC;AAGhC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAyBrD,qDAAqD;AACrD,eAAO,MAAM,aAAa,EAAE,QA8E3B,CAAC;AA6BF;;;GAGG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,OAAO,CACzD,sBAAsB,EAAE,CACzB,CAcA;AACD,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,OAAO,CAAC,eAAe,EAAE,CAAC,CA6B7E;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,QAAQ,GACb,CAAC,EAAE,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CA8BnE"}
1
+ {"version":3,"file":"setupAdapters.d.ts","sourceRoot":"","sources":["../../src/cli/setupAdapters.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,KAAK,EACV,eAAe,EAEf,QAAQ,EAET,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,KAAK,QAAQ,EAEd,MAAM,wBAAwB,CAAC;AAIhC,OAAO,KAAK,EAAE,gBAAgB,EAAwB,MAAM,gBAAgB,CAAC;AAyB7E,qDAAqD;AACrD,eAAO,MAAM,aAAa,EAAE,QA8E3B,CAAC;AA6BF;;;GAGG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,OAAO,CACzD,sBAAsB,EAAE,CACzB,CAcA;AACD,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,OAAO,CAAC,eAAe,EAAE,CAAC,CAiB7E;AAqBD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,QAAQ,GACb,CAAC,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAmBvE"}