@jmanuelcorral/openteam 0.1.5 → 0.1.7
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 +71 -1
- package/dist/cli.js +46 -14
- package/dist/commands/orchestratorAgent.d.ts +3 -2
- package/dist/commands/orchestratorAgent.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -9,6 +9,8 @@
|
|
|
9
9
|
- [Requisitos](#requisitos)
|
|
10
10
|
- [Instalación](#instalación)
|
|
11
11
|
- [Quickstart: `openteam init`](#quickstart-openteam-init)
|
|
12
|
+
- [Probar en otra máquina](#probar-en-otra-máquina)
|
|
13
|
+
- [Actualizar openteam](#actualizar-openteam)
|
|
12
14
|
- [Configuración](#configuración)
|
|
13
15
|
- [Uso](#uso)
|
|
14
16
|
- [Ejemplos en Windows](#ejemplos-en-windows)
|
|
@@ -205,7 +207,75 @@ Tras `init`, autentica el provider frontier (`opencode auth login`), arranca tu
|
|
|
205
207
|
|
|
206
208
|
`openteam init` genera un único **agente primario** llamado `openteam` (`.opencode/agent/openteam.md`). Pulsa **Tab** en opencode para seleccionarlo: así sabes explícitamente que estás en modo openteam, mientras el plugin sigue optimizando el modelo por debajo.
|
|
207
209
|
|
|
208
|
-
Ese orquestador funciona al estilo [Squad](https://bradygaster.github.io/squad/): **no trae subagentes precreados**. A partir de tu primer prompt analiza el objetivo y el repositorio, diseña el equipo mínimo de especialistas y **crea cada subagente a demanda** (escribiendo `.opencode/agent/<
|
|
210
|
+
Ese orquestador funciona al estilo [Squad](https://bradygaster.github.io/squad/): **no trae subagentes precreados**. A partir de tu primer prompt analiza el objetivo y el repositorio, diseña el equipo mínimo de especialistas y **crea cada subagente a demanda** (escribiendo `.opencode/agent/<nombre>.md` con `mode: subagent`), reutilizando los existentes antes de crear nuevos. Los roles mecánicos/bulk se dejan enrutar a modelos locales y solo se escala a frontier para arquitectura, seguridad o debugging ambiguo.
|
|
211
|
+
|
|
212
|
+
Como Squad, el equipo tiene **identidad temática**: el orquestador elige (o te pregunta) un **universo** y nombra a cada agente con un personaje de ese universo, registrando el reparto en `.opencode/agent/roster.md` para que los nombres **persistan** entre sesiones. Además de los roles específicos del proyecto, contempla tres **roles estándar** creados a demanda:
|
|
213
|
+
|
|
214
|
+
- **scribe** — memoria silenciosa: registra decisiones y aprendizajes en `.opencode/openteam-decisions.md` sin tocar el código (modelo local).
|
|
215
|
+
- **ralph** — automatización y triage: monitoriza el trabajo pendiente, lo prioriza, coordina la ejecución y **escala al humano** ante bloqueos o aprobaciones.
|
|
216
|
+
- **guardian** — seguridad y privacidad: **detecta y enmascara datos sensibles** (PII, secretos, API keys, tokens) antes de que salgan a frontier y hace revisión de seguridad; corre siempre en local y respeta `forceLocalOnSensitive`.
|
|
217
|
+
|
|
218
|
+
## Probar en otra máquina
|
|
219
|
+
|
|
220
|
+
Para instalar y probar openteam en otro equipo que ya tenga [opencode](https://opencode.ai) y [Bun](https://bun.sh):
|
|
221
|
+
|
|
222
|
+
1. **Instala el paquete.** Global o como dependencia de desarrollo del repo que quieras usar:
|
|
223
|
+
|
|
224
|
+
```powershell
|
|
225
|
+
# Opción global (deja el comando `openteam` en el PATH)
|
|
226
|
+
npm install -g @jmanuelcorral/openteam
|
|
227
|
+
|
|
228
|
+
# …o como dependencia de desarrollo del proyecto
|
|
229
|
+
bun add -d @jmanuelcorral/openteam # (o: npm install -D @jmanuelcorral/openteam)
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
2. **Inicializa el repositorio** donde vayas a trabajar. Genera `opencode.json`, `.opencode/openteam.json` y `.opencode/agent/openteam.md`:
|
|
233
|
+
|
|
234
|
+
```powershell
|
|
235
|
+
cd C:\ruta\a\tu\repo
|
|
236
|
+
openteam init # global
|
|
237
|
+
# …o, si lo instalaste como dependencia del proyecto:
|
|
238
|
+
bunx openteam init
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
El asistente detecta Ollama / LM Studio / Foundry Local, te deja elegir los modelos locales y el frontier baseline, y escribe la configuración.
|
|
242
|
+
|
|
243
|
+
3. **Autentica el provider frontier** que hayas elegido:
|
|
244
|
+
|
|
245
|
+
```powershell
|
|
246
|
+
opencode auth login
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
4. **Arranca tu runtime local** si no estaba activo (p. ej. `ollama serve`, o abre LM Studio / Foundry Local).
|
|
250
|
+
|
|
251
|
+
5. **Abre opencode en el repo**, pulsa **Tab** y elige el agente `openteam`. Dale el primer prompt: creará el equipo de subagentes a demanda y enrutará local-first automáticamente.
|
|
252
|
+
|
|
253
|
+
Comprueba el estado con `openteam doctor` (runtimes + config) y el ahorro con `openteam report`.
|
|
254
|
+
|
|
255
|
+
## Actualizar openteam
|
|
256
|
+
|
|
257
|
+
openteam se publica en npm de forma continua; cada push a `master` publica un nuevo patch. Para traer la última versión:
|
|
258
|
+
|
|
259
|
+
```powershell
|
|
260
|
+
# Instalación global
|
|
261
|
+
npm install -g @jmanuelcorral/openteam@latest
|
|
262
|
+
|
|
263
|
+
# Dependencia de desarrollo del proyecto
|
|
264
|
+
bun add -d @jmanuelcorral/openteam@latest # (o: npm install -D @jmanuelcorral/openteam@latest)
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
Comprobar versiones:
|
|
268
|
+
|
|
269
|
+
```powershell
|
|
270
|
+
npm view @jmanuelcorral/openteam version # última publicada en npm
|
|
271
|
+
npm ls -g @jmanuelcorral/openteam # instalada globalmente (o `npm ls …` en el repo)
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
Notas al actualizar:
|
|
275
|
+
|
|
276
|
+
- **No necesitas volver a ejecutar `openteam init`** para actualizar el plugin: opencode resuelve el paquete `@jmanuelcorral/openteam` declarado en `opencode.json` a la versión instalada. Reinicia opencode para que recargue el plugin.
|
|
277
|
+
- Vuelve a ejecutar `openteam init` **solo** si quieres regenerar la configuración (cambiar runtimes, modelos o baseline). Pedirá confirmación antes de sobrescribir `opencode.json`, `.opencode/openteam.json` o `.opencode/agent/openteam.md`; **no toca los subagentes** que el orquestador haya creado a demanda.
|
|
278
|
+
- Ajustes puntuales sin reinit: `openteam baseline set <provider/model>` o `openteam baseline auto`.
|
|
209
279
|
|
|
210
280
|
## Configuración
|
|
211
281
|
|
package/dist/cli.js
CHANGED
|
@@ -934,38 +934,70 @@ function buildOrchestratorAgent(frontier) {
|
|
|
934
934
|
"primario: no existe un equipo precreado. Tú **construyes el equipo de",
|
|
935
935
|
"subagentes a demanda** según el objetivo del usuario y del repositorio.",
|
|
936
936
|
"",
|
|
937
|
+
"## Casting: elige un universo y nombra al equipo",
|
|
938
|
+
"",
|
|
939
|
+
"Como Squad, el equipo tiene una identidad temática persistente:",
|
|
940
|
+
"",
|
|
941
|
+
"1. En el primer arranque, **elige un universo** temático (p. ej. una",
|
|
942
|
+
" película, serie, cómic o mitología). Si el usuario tiene preferencia,",
|
|
943
|
+
" pregúntasela; si no, propón uno y confírmalo.",
|
|
944
|
+
"2. Asigna a cada subagente el **nombre de un personaje** de ese universo; el",
|
|
945
|
+
" nombre del fichero (`.opencode/agent/<nombre>.md`) es su alias para",
|
|
946
|
+
" `@mención`, y su rol queda claro en el `description`.",
|
|
947
|
+
"3. **Registra el casting** en `.opencode/agent/roster.md` (universo + tabla",
|
|
948
|
+
" nombre → rol → modelo) para que los nombres **persistan** entre sesiones.",
|
|
949
|
+
" Reutiliza siempre el mismo reparto; no vuelvas a castear sin motivo.",
|
|
950
|
+
"",
|
|
937
951
|
"## Primer arranque (primer prompt de la sesión)",
|
|
938
952
|
"",
|
|
939
|
-
"1. Analiza el objetivo y explora el repositorio (`read`/`glob`/`grep`)
|
|
940
|
-
" entender stack, dominio y alcance real.",
|
|
953
|
+
"1. Analiza el objetivo y explora el repositorio (`read`/`glob`/`grep`).",
|
|
941
954
|
"2. Diseña el **equipo mínimo** necesario: define solo los roles que el",
|
|
942
|
-
" trabajo requiera (p. ej.
|
|
943
|
-
"
|
|
944
|
-
"3. Crea cada subagente **a demanda** escribiendo `.opencode/agent/<
|
|
945
|
-
" - Frontmatter: `description` (obligatorio
|
|
946
|
-
" `temperature`, `permission` con lo mínimo necesario,
|
|
947
|
-
" **opcional**.",
|
|
955
|
+
" trabajo requiera (p. ej. arquitecto, backend, frontend, reviewer,",
|
|
956
|
+
" tester, docs). No inventes roles que no vayas a usar.",
|
|
957
|
+
"3. Crea cada subagente **a demanda** escribiendo `.opencode/agent/<nombre>.md`:",
|
|
958
|
+
" - Frontmatter: `description` (obligatorio, incluye rol y universo),",
|
|
959
|
+
" `mode: subagent`, `temperature`, `permission` con lo mínimo necesario,",
|
|
960
|
+
" y `model` **opcional**.",
|
|
948
961
|
" - Deja `model` sin fijar para que herede el default y openteam lo enrute",
|
|
949
962
|
" local-first, o fija un modelo local para roles mecánicos/bulk. Reserva",
|
|
950
963
|
" frontier solo para arquitectura, seguridad o debugging ambiguo:",
|
|
951
964
|
" openteam ya enruta cheapest-capable automáticamente.",
|
|
952
965
|
" - Un prompt de rol enfocado y accionable.",
|
|
953
966
|
"",
|
|
967
|
+
"## Roles estándar del equipo",
|
|
968
|
+
"",
|
|
969
|
+
"Además de los roles específicos del proyecto, incluye estos roles estándar",
|
|
970
|
+
"(créalos a demanda, con su nombre del universo) cuando aporten valor:",
|
|
971
|
+
"",
|
|
972
|
+
"- **scribe** — memoria silenciosa del equipo. Registra decisiones y",
|
|
973
|
+
" aprendizajes en un log compartido (`.opencode/openteam-decisions.md`) sin",
|
|
974
|
+
" ejecutar cambios de código. Modelo **local**; permisos de solo lectura más",
|
|
975
|
+
" edición de ese log.",
|
|
976
|
+
"- **ralph** — automatización y triage. Monitoriza el trabajo pendiente",
|
|
977
|
+
" (issues/tareas), lo prioriza, coordina la ejecución delegando en los",
|
|
978
|
+
" especialistas y **escala al humano** ante bloqueos, riesgos o aprobaciones.",
|
|
979
|
+
"- **guardian** — seguridad y privacidad. **Detecta y enmascara datos",
|
|
980
|
+
" sensibles** (PII, secretos, API keys, tokens, credenciales) antes de que",
|
|
981
|
+
" salgan del repo o a frontier, y hace revisión de seguridad. Corre",
|
|
982
|
+
" **siempre en local** y respeta `privacyMode`/`forceLocalOnSensitive`: nunca",
|
|
983
|
+
" deja pasar datos sensibles a frontier. Revisa las entradas y salidas de los",
|
|
984
|
+
" demás agentes cuando toquen datos sensibles.",
|
|
985
|
+
"",
|
|
954
986
|
"## Operación",
|
|
955
987
|
"",
|
|
956
988
|
"- Delega el trabajo con la herramienta `task` al subagente adecuado; tú te",
|
|
957
989
|
" mantienes como coordinador y no implementas lo que puede hacer un subagente.",
|
|
958
990
|
"- Crea subagentes **justo cuando el trabajo lo pide**, nunca “por si acaso”.",
|
|
959
|
-
" Revisa `.opencode/agent/` y reutiliza los
|
|
960
|
-
" crear uno nuevo.",
|
|
961
|
-
"- Respeta el routing y la privacidad de openteam
|
|
962
|
-
"
|
|
963
|
-
"- Resume al usuario qué equipo has creado y por qu
|
|
991
|
+
" Revisa `.opencode/agent/` y el `roster.md`, y reutiliza los existentes antes",
|
|
992
|
+
" de crear uno nuevo.",
|
|
993
|
+
"- Respeta el routing y la privacidad de openteam; el `guardian` es la última",
|
|
994
|
+
" línea antes de enviar nada sensible a frontier.",
|
|
995
|
+
"- Resume al usuario qué universo elegiste, qué equipo has creado y por qué.",
|
|
964
996
|
"",
|
|
965
997
|
"## Límites",
|
|
966
998
|
"",
|
|
967
999
|
"- Un único primario (tú); todo lo demás son subagentes creados a demanda.",
|
|
968
|
-
"- No borres ni sobrescribas subagentes
|
|
1000
|
+
"- No borres ni sobrescribas subagentes ni el `roster.md` sin confirmarlo.",
|
|
969
1001
|
"- Los subagentes nuevos quedan disponibles para `@mención` y para la",
|
|
970
1002
|
" herramienta `task` una vez opencode recarga los agentes del proyecto.",
|
|
971
1003
|
""
|
|
@@ -6,8 +6,9 @@ import type { FrontierChoice } from "./init";
|
|
|
6
6
|
export declare const ORCHESTRATOR_AGENT_PATH = ".opencode/agent/openteam.md";
|
|
7
7
|
/**
|
|
8
8
|
* Construye el Markdown del agente primario `openteam` (estilo Squad): un
|
|
9
|
-
* orquestador que aparece en el Tab-switcher
|
|
10
|
-
* subagentes a demanda
|
|
9
|
+
* orquestador que aparece en el Tab-switcher, elige un universo temático y
|
|
10
|
+
* castea al equipo, y crea los subagentes a demanda (incluidos los roles
|
|
11
|
+
* estándar scribe, ralph y guardian). Pure: no I/O.
|
|
11
12
|
*
|
|
12
13
|
* `frontier` fija el `model` del orquestador (baseline cheapest-capable), un
|
|
13
14
|
* `provider/model` real y resoluble; el plugin de openteam sigue enrutando por
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestratorAgent.d.ts","sourceRoot":"","sources":["../../src/commands/orchestratorAgent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAE7C;;;GAGG;AACH,eAAO,MAAM,uBAAuB,gCAAgC,CAAC;AAErE
|
|
1
|
+
{"version":3,"file":"orchestratorAgent.d.ts","sourceRoot":"","sources":["../../src/commands/orchestratorAgent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAE7C;;;GAGG;AACH,eAAO,MAAM,uBAAuB,gCAAgC,CAAC;AAErE;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAkGvE"}
|