@jmanuelcorral/openteam 0.24.1 → 0.26.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 (59) hide show
  1. package/README.es.md +42 -10
  2. package/README.md +37 -8
  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.map +1 -1
  6. package/dist/cli.js +1200 -384
  7. package/dist/commands/agents.d.ts.map +1 -1
  8. package/dist/commands/dispatch.d.ts.map +1 -1
  9. package/dist/commands/doctor.d.ts.map +1 -1
  10. package/dist/commands/setup.d.ts +20 -15
  11. package/dist/commands/setup.d.ts.map +1 -1
  12. package/dist/config/schema.d.ts +101 -7
  13. package/dist/config/schema.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 +657 -128
  26. package/dist/local/lemonadeResidency.d.ts +2 -14
  27. package/dist/local/lemonadeResidency.d.ts.map +1 -1
  28. package/dist/local/llamaSwap.d.ts +5 -0
  29. package/dist/local/llamaSwap.d.ts.map +1 -0
  30. package/dist/local/llamaSwapRequestGuard.d.ts +11 -0
  31. package/dist/local/llamaSwapRequestGuard.d.ts.map +1 -0
  32. package/dist/local/llamaSwapResidency.d.ts +9 -0
  33. package/dist/local/llamaSwapResidency.d.ts.map +1 -0
  34. package/dist/local/modelResidency.d.ts +1 -0
  35. package/dist/local/modelResidency.d.ts.map +1 -1
  36. package/dist/local/registry.d.ts.map +1 -1
  37. package/dist/local/residency.d.ts +16 -0
  38. package/dist/local/residency.d.ts.map +1 -0
  39. package/dist/local/types.d.ts +10 -2
  40. package/dist/local/types.d.ts.map +1 -1
  41. package/dist/messages/consoleDetail.d.ts +8 -5
  42. package/dist/messages/consoleDetail.d.ts.map +1 -1
  43. package/dist/messages/executionSetup.d.ts +22 -3
  44. package/dist/messages/executionSetup.d.ts.map +1 -1
  45. package/dist/messages/memoryRuntime.d.ts +6 -0
  46. package/dist/messages/memoryRuntime.d.ts.map +1 -0
  47. package/dist/messages/memoryTool.d.ts +1 -1
  48. package/dist/messages/memoryTool.d.ts.map +1 -1
  49. package/dist/messages/modelResidency.d.ts +20 -2
  50. package/dist/messages/modelResidency.d.ts.map +1 -1
  51. package/dist/plugin/availability.d.ts.map +1 -1
  52. package/dist/plugin/memoryTool.d.ts.map +1 -1
  53. package/dist/plugin/modelResidency.d.ts.map +1 -1
  54. package/dist/storage/index/memoryRuntime.d.ts.map +1 -1
  55. package/dist/web/conversationRoute.d.ts +2 -2
  56. package/dist/web/conversationRoute.d.ts.map +1 -1
  57. package/dist/web/server.d.ts +1 -1
  58. package/dist/web/server.d.ts.map +1 -1
  59. package/package.json +1 -1
package/README.es.md CHANGED
@@ -41,7 +41,7 @@ estrecha un agente a `local` bajo el modo global `mixed`.
41
41
  ## Características
42
42
 
43
43
  - Routing por turno desde el hook `chat.message`, mutando `output.message.model` antes de que opencode persista el mensaje.
44
- - Registro de runtimes locales OpenAI-compatible: Ollama, LM Studio, Lemonade Server y Foundry Local.
44
+ - Registro de runtimes locales OpenAI-compatible: Ollama, LM Studio, Lemonade Server, llama-swap y Foundry Local.
45
45
  - Perfiles de capacidad desde Models.dev, con cache y fallback curado cuando el catálogo no está disponible.
46
46
  - Selección automática **cheapest-capable** por coste, disponibilidad, soporte de tools y contexto dentro del dominio permitido.
47
47
  - Presupuestos por sesión, mes y tokens frontier por sesión.
@@ -62,6 +62,7 @@ estrecha un agente a `local` bajo el modo global `mixed`.
62
62
  - Ollama en `http://localhost:11434/v1`.
63
63
  - LM Studio en `http://localhost:1234/v1`.
64
64
  - Lemonade Server en `http://localhost:13305/api/v1`.
65
+ - llama-swap en `http://localhost:8080/v1`.
65
66
  - Foundry Local con puerto dinámico descubierto por CLI en Windows.
66
67
 
67
68
  ## Instalación
@@ -114,7 +115,7 @@ la política del operador en `.opencode/openteam.json`.
114
115
  ## Quickstart: `openteam setup`
115
116
 
116
117
  La forma más rápida de dejar un repositorio listo es `openteam setup`. Detecta
117
- Ollama, LM Studio, Lemonade Server y Foundry Local —todos opcionales—, permite
118
+ Ollama, LM Studio, Lemonade Server, llama-swap y Foundry Local —todos opcionales—, permite
118
119
  elegir modelos locales y el **frontier baseline** (cheapest-capable primero), y
119
120
  genera la configuración y los artefactos de agentes/comandos:
120
121
 
@@ -143,6 +144,14 @@ lista vacía tampoco permite introducir un ID supuesto. openteam no carga ni
143
144
  descarga modelos para hacer funcionar una selección. Consulta la
144
145
  [política y los límites del servidor](docs/adr/lemonade-active-models.md).
145
146
 
147
+ **llama-swap también exige modelos activos.** La integración inicial admite
148
+ IDs locales canónicos con estado `ready` verificable y sin perfil de
149
+ enrutamiento activo, en un servidor sin autenticación restringido por la red.
150
+ Los límites declarados de contexto y salida se trasladan durante setup a
151
+ opencode para compactar; el soporte de herramientas desconocido no se inventa.
152
+ Consulta la [guía de llama-swap](docs/es/guide/llama-swap.md), incluidos los
153
+ límites de la comprobación no atómica del cliente.
154
+
146
155
  El asistente:
147
156
 
148
157
  1. Sondea runtimes locales y primero pregunta cuáles habilitar. Elegir
@@ -232,7 +241,7 @@ Para instalar y probar openteam en otro equipo que ya tenga [opencode](https://o
232
241
  # La opción puntual ya ejecutó setup en el paso anterior.
233
242
  ```
234
243
 
235
- El asistente detecta Ollama / LM Studio / Foundry Local, te deja elegir los modelos locales (locales o en otra máquina de la red) o **ninguno** para funcionar solo con frontier, y el frontier baseline, y escribe la configuración.
244
+ El asistente detecta Ollama / LM Studio / Lemonade Server / llama-swap / Foundry Local, te deja elegir los modelos locales (locales o en otra máquina de la red) o **ninguno** para funcionar solo con frontier, y el frontier baseline, y escribe la configuración.
236
245
 
237
246
  3. **Autentica el provider frontier** que hayas elegido:
238
247
 
@@ -348,9 +357,9 @@ ejecutas desde un subdirectorio verás "provider not configured" y debes hacer
348
357
  | `router.localDefault` | `ModelRef \| null` | `null` | Modelo local principal. No configurado por defecto — ningún modelo local se enruta hasta que configures uno con `openteam setup` o manualmente. |
349
358
  | `local.runtimes` | `LocalRuntime[]` | `[]` | Runtimes locales a sondear. Vacío por defecto — ningún runtime está configurado hasta que ejecutes `openteam setup` o añadas una entrada manualmente. |
350
359
  | `local.runtimes[].id` | `string` | requerido | Identidad de instancia, única dentro del array. Libre (`lmstudio-a`, `lemonade-lan`) para que dos máquinas del mismo tipo sean distintas; si se omite `kind`, debe ser en sí mismo un tipo de runtime (retrocompatibilidad). |
351
- | `local.runtimes[].kind` | `"ollama" \| "lmstudio" \| "foundry-local" \| "lemonade"` opcional | migra desde `id` | Tipo de runtime que selecciona el adaptador. Opcional: si falta, se usa `id` como tipo, así toda config previa sigue funcionando sin cambios. |
360
+ | `local.runtimes[].kind` | `"ollama" \| "lmstudio" \| "foundry-local" \| "lemonade" \| "llama-swap"` opcional | migra desde `id` | Tipo de runtime que selecciona el adaptador. Opcional: si falta, se usa `id` como tipo, así toda config previa sigue funcionando sin cambios. |
352
361
  | `local.runtimes[].enabled` | `boolean` | `true` | Habilita o deshabilita ese runtime. |
353
- | `local.runtimes[].baseURL` | URL opcional | según runtime/config | Endpoint OpenAI-compatible (`/v1` para Ollama/LM Studio, `/api/v1` para Lemonade); Foundry Local puede omitirlo si usa discovery. |
362
+ | `local.runtimes[].baseURL` | URL opcional | según runtime/config | Endpoint OpenAI-compatible (`/v1` para Ollama/LM Studio/llama-swap, `/api/v1` para Lemonade); Foundry Local puede omitirlo si usa discovery. |
354
363
  | `local.runtimes[].discovery` | `"cli" \| "sdk" \| "manual"` opcional | sin default por item | Discovery de Foundry Local; el registry usa CLI si está configurado y no es `manual`. |
355
364
  | `local.runtimes[].defaultModel` | `ModelRef` | requerido | Modelo por defecto de ese runtime. |
356
365
  | `local.runtimes[].maxConcurrency` | entero positivo opcional | `4` | Límite de generaciones concurrentes de esta instancia (su número real de slots). Se aplica por instancia. |
@@ -735,9 +744,18 @@ JSONL por sesión y la Console los vigila (`fs.watch`) y **agrega**.
735
744
 
736
745
  Muestra en vivo: **uso de tokens registrado y estimaciones de coste por
737
746
  mensaje** (input/output/reasoning/cache), toolcalls con duración, routing
738
- reciente, decisiones, reuniones, progreso, equipo y commits. Solo muestra hashes
739
- de prompt, nunca el texto. Los límites y estimaciones son finitos y auditables,
740
- pero no sustituyen la factura del provider. Se actualiza por **SSE**.
747
+ reciente, decisiones, reuniones, progreso, equipo y commits. La telemetría solo
748
+ contiene hashes de prompt, nunca el texto. Los límites y estimaciones son
749
+ finitos y auditables, pero no sustituyen la factura del provider. Se actualiza
750
+ por **SSE**.
751
+
752
+ **Las conversaciones aparecen por defecto.** Las vistas activas del árbol y
753
+ Logs muestran automáticamente tus prompts, las respuestas visibles de los
754
+ agentes y las interacciones registradas con herramientas, con actualizaciones
755
+ en vivo. Se lee el historial actual de opencode, sin copiar prompts a la
756
+ telemetría. No hace falta activar diagnóstico ni revelar cada agente; un
757
+ `console.sessionHistory.contentEnabled: false` explícito conserva la vista de
758
+ metadatos. Leer contenido no habilita el envío de prompts ni una PTY.
741
759
 
742
760
  Cada pestaña de sesión incluye además una **vista "Sesión"**: una consola por la
743
761
  que puedes **ver la salida en vivo** (SSE) y **enviar prompts** o **responder
@@ -785,7 +803,7 @@ Graph; el DAG separado de Graph sigue el `graph.mode` efectivo. Consulta
785
803
  [Línea de tiempo de agentes](docs/es/guide/agent-timeline.md) y
786
804
  [Web de observabilidad del grafo](docs/es/guide/graph-observability-web.md).
787
805
 
788
- > **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.
806
+ > **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.
789
807
 
790
808
  **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.
791
809
 
@@ -911,6 +929,20 @@ foundry service status
911
929
 
912
930
  openteam extrae el puerto de la salida del CLI y normaliza el endpoint a `http://localhost:<PORT>/v1`.
913
931
 
932
+ ### llama-swap
933
+
934
+ Prepara el modelo en llama-swap antes de ejecutar setup. Estas consultas solo
935
+ leen el catálogo, la disponibilidad y el perfil activo:
936
+
937
+ ```powershell
938
+ Invoke-RestMethod -Uri "http://localhost:8080/v1/models" -Method Get
939
+ Invoke-RestMethod -Uri "http://localhost:8080/running" -Method Get
940
+ Invoke-RestMethod -Uri "http://localhost:8080/api/profiles" -Method Get
941
+ ```
942
+
943
+ Consulta la [guía de llama-swap](docs/es/guide/llama-swap.md) para la selección
944
+ de modelos listos, límites de contexto/salida y transportes soportados.
945
+
914
946
  ### Telemetría
915
947
 
916
948
  ```powershell
@@ -1002,7 +1034,7 @@ Consulta [docs/compatibility.md](docs/compatibility.md). Resumen verificado el `
1002
1034
 
1003
1035
  | Superficie | Versión / contrato |
1004
1036
  | --- | --- |
1005
- | openteam | `0.24.1`; versión actual del paquete |
1037
+ | openteam | `0.26.0`; versión actual del paquete |
1006
1038
  | `@opencode-ai/plugin` | `1.18.19` |
1007
1039
  | `@opencode-ai/sdk` | `1.18.19` |
1008
1040
  | Hook de routing | `chat.message`; no `chat.params` para cambiar modelo |
package/README.md CHANGED
@@ -47,7 +47,7 @@ or narrow an agent to `local` under global `mixed`, when frontier is prohibited.
47
47
  ## Features
48
48
 
49
49
  - Per-turn routing from the `chat.message` hook, mutating `output.message.model` before opencode persists the message.
50
- - Registration of OpenAI-compatible local runtimes: **Ollama**, **LM Studio**, **Lemonade Server** and **Foundry Local**.
50
+ - Registration of OpenAI-compatible local runtimes: **Ollama**, **LM Studio**, **Lemonade Server**, **llama-swap** and **Foundry Local**.
51
51
  - Capability profiles from [Models.dev](https://models.dev), with cache and a curated fallback when the catalog is unavailable.
52
52
  - **Cheapest-capable** automatic selection by cost, availability, tool support, and context requirements inside the allowed domain.
53
53
  - Budgets per session, per month and per frontier tokens per session.
@@ -70,9 +70,10 @@ or narrow an agent to `local` under global `mixed`, when frontier is prohibited.
70
70
  - Ollama at `http://localhost:11434/v1`.
71
71
  - LM Studio at `http://localhost:1234/v1`.
72
72
  - Lemonade Server at `http://localhost:13305/api/v1`.
73
+ - llama-swap at `http://localhost:8080/v1`.
73
74
  - Foundry Local with a dynamic port discovered via CLI on Windows.
74
75
 
75
- > Local runtimes are **optional**. You can run openteam **frontier-only**, or point it at an Ollama / LM Studio / Lemonade Server running on **another machine on your LAN**.
76
+ > Local runtimes are **optional**. You can run openteam **frontier-only**, or point it at an Ollama / LM Studio / Lemonade Server / llama-swap running on **another machine on your LAN**.
76
77
 
77
78
  ## Installation
78
79
 
@@ -125,7 +126,7 @@ operator policy in `.opencode/openteam.json`.
125
126
  ## Quickstart: `openteam setup`
126
127
 
127
128
  `openteam setup` detects the installed local runtimes (Ollama, LM Studio,
128
- Lemonade Server, Foundry Local — all optional), lets you pick local models and
129
+ Lemonade Server, llama-swap, Foundry Local — all optional), lets you pick local models and
129
130
  the **frontier baseline** (sorted cheapest-capable first), and writes the
130
131
  project configuration and generated agent/command artifacts:
131
132
 
@@ -153,6 +154,13 @@ or unverified models are not selectable, and an empty active list does not
153
154
  allow a guessed model ID. openteam does not load or unload models to make a
154
155
  selection work. See the [policy and server-side limits](docs/adr/lemonade-active-models.md).
155
156
 
157
+ **llama-swap also requires active models.** The initial integration accepts
158
+ canonical local model IDs with verified `ready` state and no active routing
159
+ profile, on an unauthenticated, network-restricted server. Declared context
160
+ and output ceilings feed setup's opencode compaction limits; missing tool
161
+ support is not guessed. See the [llama-swap guide](docs/guide/llama-swap.md)
162
+ for configuration and the non-atomic server-side boundary.
163
+
156
164
  The wizard:
157
165
 
158
166
  1. Probes local runtimes, then first asks which ones to enable. Choosing
@@ -244,7 +252,7 @@ To install and try openteam on another machine that already has [opencode](https
244
252
  # The one-off option already ran setup in the previous step.
245
253
  ```
246
254
 
247
- The wizard detects Ollama / LM Studio / Foundry Local, lets you pick the local models (local or on another machine on the LAN) or **none** to run frontier-only, and the frontier baseline, then writes the configuration.
255
+ The wizard detects Ollama / LM Studio / Lemonade Server / llama-swap / Foundry Local, lets you pick the local models (local or on another machine on the LAN) or **none** to run frontier-only, and the frontier baseline, then writes the configuration.
248
256
 
249
257
  3. **Authenticate the frontier provider** you chose:
250
258
 
@@ -355,9 +363,9 @@ configured" and should `cd` to the project root first.
355
363
  | `router.localDefault` | `ModelRef \| null` | `null` | Primary local model. Not set by default — no local model is routed until you configure one via `openteam setup` or by hand. |
356
364
  | `local.runtimes` | `LocalRuntime[]` | `[]` | Local runtimes to probe. Empty by default — no runtime is configured until you run `openteam setup` or add an entry by hand. |
357
365
  | `local.runtimes[].id` | string | required | Instance identity, unique within the array. Free-form (`lmstudio-a`, `lemonade-lan`) so two machines of the same kind are distinct; when `kind` is omitted it must itself be a runtime kind (back-compat). |
358
- | `local.runtimes[].kind` | `"ollama" \| "lmstudio" \| "foundry-local" \| "lemonade"` optional | migrates from `id` | Runtime kind selecting the adapter. Optional: when absent, `id` is treated as the kind, so pre-existing configs keep working unchanged. |
366
+ | `local.runtimes[].kind` | `"ollama" \| "lmstudio" \| "foundry-local" \| "lemonade" \| "llama-swap"` optional | migrates from `id` | Runtime kind selecting the adapter. Optional: when absent, `id` is treated as the kind, so pre-existing configs keep working unchanged. |
359
367
  | `local.runtimes[].enabled` | `boolean` | `true` | Enable or disable that runtime. |
360
- | `local.runtimes[].baseURL` | optional URL | per runtime/config | OpenAI-compatible endpoint (`/v1` for Ollama/LM Studio, `/api/v1` for Lemonade); Foundry Local may omit it when using discovery. |
368
+ | `local.runtimes[].baseURL` | optional URL | per runtime/config | OpenAI-compatible endpoint (`/v1` for Ollama/LM Studio/llama-swap, `/api/v1` for Lemonade); Foundry Local may omit it when using discovery. |
361
369
  | `local.runtimes[].discovery` | `"cli" \| "sdk" \| "manual"` optional | none per item | Foundry Local discovery; the registry uses CLI when configured and not `manual`. |
362
370
  | `local.runtimes[].defaultModel` | `ModelRef` | required | Default model for that runtime. |
363
371
  | `local.runtimes[].maxConcurrency` | positive integer, optional | `4` | Concurrent-generation cap for this instance (its real slot count). Applied per instance. |
@@ -730,6 +738,13 @@ agent decisions and meetings, orchestration progress, the team, and commits.
730
738
  These controls and estimates are finite/auditable, but they are not provider
731
739
  invoice accounting.
732
740
 
741
+ **Conversations are visible by default.** Active Agent tree and Logs views
742
+ automatically show operator prompts, visible agent responses and recorded tool
743
+ interactions, with live updates. Reads use opencode's current session history,
744
+ not prompt copies in telemetry. No diagnostic flag or per-agent reveal is
745
+ required; explicit `console.sessionHistory.contentEnabled: false` keeps a
746
+ metadata-only view. Content access does not enable terminal input or a PTY.
747
+
733
748
  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`).
734
749
 
735
750
  ```powershell
@@ -769,7 +784,7 @@ authority; the separate Graph DAG follows the effective `graph.mode`. See
769
784
  [Agent timeline](docs/guide/agent-timeline.md) and
770
785
  [Graph observability web](docs/guide/graph-observability-web.md).
771
786
 
772
- > **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.
787
+ > **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.
773
788
 
774
789
  **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.
775
790
 
@@ -866,6 +881,20 @@ foundry service status
866
881
 
867
882
  openteam extracts the port from the CLI output and normalizes the endpoint to `http://localhost:<PORT>/v1`.
868
883
 
884
+ ### llama-swap
885
+
886
+ Prepare the intended model with llama-swap before setup. These calls only read
887
+ the catalog, readiness and profile state:
888
+
889
+ ```powershell
890
+ Invoke-RestMethod -Uri "http://localhost:8080/v1/models" -Method Get
891
+ Invoke-RestMethod -Uri "http://localhost:8080/running" -Method Get
892
+ Invoke-RestMethod -Uri "http://localhost:8080/api/profiles" -Method Get
893
+ ```
894
+
895
+ See the [llama-swap guide](docs/guide/llama-swap.md) for ready-only selection,
896
+ declared context/output limits and supported transport boundaries.
897
+
869
898
  ### Telemetry
870
899
 
871
900
  openteam writes a hash-only `CostRecord` JSONL log (never raw prompts). Tail the most recent entries:
@@ -954,7 +983,7 @@ See [docs/compatibility.md](docs/compatibility.md). Verified summary as of `2026
954
983
 
955
984
  | Surface | Version / contract |
956
985
  | --- | --- |
957
- | openteam | `0.24.1`; current package version |
986
+ | openteam | `0.26.0`; current package version |
958
987
  | `@opencode-ai/plugin` | `1.18.19` |
959
988
  | `@opencode-ai/sdk` | `1.18.19` |
960
989
  | 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.5172820000000229,
37
+ "p95Millis": 0.3665430000000356,
38
38
  "budgetMillis": 50,
39
39
  "samples": 100
40
40
  }
41
41
  },
42
42
  "verdict": "pass",
43
43
  "failedGates": [],
44
- "digest": "ca432b799decdb8cb51c4dd99513b2a044566f51b959a7a5467ad6c0a49f5ff5"
44
+ "digest": "b10ff6b124af850edf12082169fc980f87190f4c06c950e7324a95f32447aa8a"
45
45
  }
@@ -20,7 +20,7 @@
20
20
  "rawFindings": 0
21
21
  },
22
22
  "overhead": {
23
- "p95Millis": 0.37030599999999936,
23
+ "p95Millis": 0.277688999999981,
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": "3bf65af9802ad8a0cf385b1c03776445cb6bda020c51ae31d6a6d73b0589fc89"
38
+ "digest": "0a32756f8be276eafc5ed1577804aa71f52bdae689a425c2d6566e8d45d0d0f1"
39
39
  }
@@ -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;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"}
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;AAKhC,OAAO,KAAK,EAAE,gBAAgB,EAAwB,MAAM,gBAAgB,CAAC;AAyB7E,qDAAqD;AACrD,eAAO,MAAM,aAAa,EAAE,QA8E3B,CAAC;AAmCF;;;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"}