@jmanuelcorral/openteam 0.1.4 → 0.1.5

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 CHANGED
@@ -178,10 +178,11 @@ Durante desarrollo puedes cargar un plugin local desde `.opencode/plugins/opente
178
178
 
179
179
  ## Quickstart: `openteam init`
180
180
 
181
- La forma más rápida de dejar un repositorio listo para opencode + openteam es el comando interactivo `openteam init`. Detecta los runtimes locales instalados (Ollama, LM Studio, Foundry Local), te deja elegir los modelos locales y el modelo **frontier baseline** (ordenados de más barato-capaz a más caro), y genera dos ficheros:
181
+ La forma más rápida de dejar un repositorio listo para opencode + openteam es el comando interactivo `openteam init`. Detecta los runtimes locales instalados (Ollama, LM Studio, Foundry Local), te deja elegir los modelos locales y el modelo **frontier baseline** (ordenados de más barato-capaz a más caro), y genera tres ficheros:
182
182
 
183
183
  - `opencode.json` en la raíz: declara el plugin `@jmanuelcorral/openteam`, los `provider` locales OpenAI-compatible, el `model` frontier y el `small_model` local.
184
184
  - `.opencode/openteam.json`: la configuración runtime validada de openteam (baseline, routing, runtimes locales y privacidad).
185
+ - `.opencode/agent/openteam.md`: el **agente primario `openteam`** (estilo Squad), visible en el Tab-switcher.
185
186
 
186
187
  ```powershell
187
188
  # Con el paquete instalado como dependencia del proyecto
@@ -200,6 +201,12 @@ El asistente:
200
201
 
201
202
  Tras `init`, autentica el provider frontier (`opencode auth login`), arranca tu runtime local si no estaba activo y abre opencode en el repositorio: openteam enruta local-first automáticamente. Puedes reajustar el baseline después con `openteam baseline set <provider/model>` o `openteam baseline auto`.
202
203
 
204
+ ### El agente `openteam` (estilo Squad)
205
+
206
+ `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
+
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/<rol>.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.
209
+
203
210
  ## Configuración
204
211
 
205
212
  La configuración runtime canónica vive en `.opencode/openteam.json`; este repositorio incluye `.opencode/openteam.example.json` como ejemplo completo. La forma validada por Zod es la de `src/config/schema.ts`. `telemetry` es una opción del plugin leída por `src/index.ts`, no parte del objeto `OpenTeamConfig` persistido.
package/dist/cli.js CHANGED
@@ -905,6 +905,77 @@ async function writeOpenTeamConfigFile(config, path = DEFAULT_CONFIG_PATH, deps
905
905
  await writeFileFn(path, serializeOpenTeamConfig(config), "utf8");
906
906
  }
907
907
 
908
+ // src/commands/orchestratorAgent.ts
909
+ var ORCHESTRATOR_AGENT_PATH = ".opencode/agent/openteam.md";
910
+ function buildOrchestratorAgent(frontier) {
911
+ const model = `${frontier.providerID}/${frontier.modelID}`;
912
+ const frontmatter = [
913
+ "---",
914
+ 'description: "Orquestador openteam estilo Squad: analiza el objetivo, diseña y crea el equipo de subagentes a demanda, y coordina el trabajo con routing local-first."',
915
+ "mode: primary",
916
+ `model: ${model}`,
917
+ "temperature: 0.2",
918
+ "permission:",
919
+ " read: allow",
920
+ " glob: allow",
921
+ " grep: allow",
922
+ " list: allow",
923
+ " edit: allow",
924
+ " bash: ask",
925
+ " task: allow",
926
+ " webfetch: allow",
927
+ " websearch: ask",
928
+ " external_directory: deny",
929
+ "---"
930
+ ].join(`
931
+ `);
932
+ const body = [
933
+ "Eres el orquestador de **openteam**, al estilo Squad. Eres el único agente",
934
+ "primario: no existe un equipo precreado. Tú **construyes el equipo de",
935
+ "subagentes a demanda** según el objetivo del usuario y del repositorio.",
936
+ "",
937
+ "## Primer arranque (primer prompt de la sesión)",
938
+ "",
939
+ "1. Analiza el objetivo y explora el repositorio (`read`/`glob`/`grep`) para",
940
+ " entender stack, dominio y alcance real.",
941
+ "2. Diseña el **equipo mínimo** necesario: define solo los roles que el",
942
+ " trabajo requiera (p. ej. `architect`, `backend`, `frontend`, `reviewer`,",
943
+ " `tester`, `docs`). No inventes roles que no vayas a usar.",
944
+ "3. Crea cada subagente **a demanda** escribiendo `.opencode/agent/<rol>.md`:",
945
+ " - Frontmatter: `description` (obligatorio), `mode: subagent`,",
946
+ " `temperature`, `permission` con lo mínimo necesario, y `model`",
947
+ " **opcional**.",
948
+ " - Deja `model` sin fijar para que herede el default y openteam lo enrute",
949
+ " local-first, o fija un modelo local para roles mecánicos/bulk. Reserva",
950
+ " frontier solo para arquitectura, seguridad o debugging ambiguo:",
951
+ " openteam ya enruta cheapest-capable automáticamente.",
952
+ " - Un prompt de rol enfocado y accionable.",
953
+ "",
954
+ "## Operación",
955
+ "",
956
+ "- Delega el trabajo con la herramienta `task` al subagente adecuado; tú te",
957
+ " mantienes como coordinador y no implementas lo que puede hacer un subagente.",
958
+ "- Crea subagentes **justo cuando el trabajo lo pide**, nunca “por si acaso”.",
959
+ " Revisa `.opencode/agent/` y reutiliza los subagentes existentes antes de",
960
+ " crear uno nuevo.",
961
+ "- Respeta el routing y la privacidad de openteam: no fuerces modelos premium",
962
+ " y no envíes datos sensibles a frontier si la política fuerza local.",
963
+ "- Resume al usuario qué equipo has creado y por qué, y mantén el roster ligero.",
964
+ "",
965
+ "## Límites",
966
+ "",
967
+ "- Un único primario (tú); todo lo demás son subagentes creados a demanda.",
968
+ "- No borres ni sobrescribas subagentes creados previamente sin confirmarlo.",
969
+ "- Los subagentes nuevos quedan disponibles para `@mención` y para la",
970
+ " herramienta `task` una vez opencode recarga los agentes del proyecto.",
971
+ ""
972
+ ].join(`
973
+ `);
974
+ return `${frontmatter}
975
+
976
+ ${body}`;
977
+ }
978
+
908
979
  // src/commands/init.ts
909
980
  var OPENTEAM_PLUGIN_SPEC = "@jmanuelcorral/openteam";
910
981
  var OPENCODE_CONFIG_PATH = "opencode.json";
@@ -1159,8 +1230,10 @@ async function runInit(deps) {
1159
1230
  };
1160
1231
  const openTeamConfig = buildOpenTeamConfig(answers);
1161
1232
  const opencodeConfig = buildOpencodeConfig(answers);
1233
+ const orchestratorAgent = buildOrchestratorAgent(frontier);
1162
1234
  const openTeamPath = join(deps.cwd, DEFAULT_CONFIG_PATH);
1163
1235
  const opencodePath = join(deps.cwd, OPENCODE_CONFIG_PATH);
1236
+ const agentPath = join(deps.cwd, ORCHESTRATOR_AGENT_PATH);
1164
1237
  const existing = [];
1165
1238
  if (await deps.fileExists(openTeamPath)) {
1166
1239
  existing.push(DEFAULT_CONFIG_PATH);
@@ -1168,6 +1241,9 @@ async function runInit(deps) {
1168
1241
  if (await deps.fileExists(opencodePath)) {
1169
1242
  existing.push(OPENCODE_CONFIG_PATH);
1170
1243
  }
1244
+ if (await deps.fileExists(agentPath)) {
1245
+ existing.push(ORCHESTRATOR_AGENT_PATH);
1246
+ }
1171
1247
  if (existing.length > 0) {
1172
1248
  const overwrite = await prompt.confirm({
1173
1249
  message: `Ya existe ${existing.join(" y ")}. ¿Sobrescribir?`,
@@ -1180,21 +1256,23 @@ async function runInit(deps) {
1180
1256
  }
1181
1257
  await deps.writeFile(openTeamPath, serializeOpenTeamConfig(openTeamConfig));
1182
1258
  await deps.writeFile(opencodePath, serializeOpencodeConfig(opencodeConfig));
1259
+ await deps.writeFile(agentPath, orchestratorAgent);
1183
1260
  const enabledSummary = runtimes.filter((runtime) => runtime.enabled).map((runtime) => `${runtime.id} (${runtime.defaultModelID})`).join(", ");
1184
1261
  prompt.note([
1185
1262
  `Baseline frontier: ${frontier.providerID}/${frontier.modelID}`,
1186
1263
  `Runtimes locales: ${enabledSummary || "ninguno habilitado"}`,
1187
- `Escrito: ${OPENCODE_CONFIG_PATH}, ${DEFAULT_CONFIG_PATH}`,
1264
+ `Escrito: ${OPENCODE_CONFIG_PATH}, ${DEFAULT_CONFIG_PATH}, ${ORCHESTRATOR_AGENT_PATH}`,
1188
1265
  "",
1189
1266
  "Siguientes pasos:",
1190
1267
  ` 1. Autentica el provider frontier: opencode auth login`,
1191
- reachableIds.length === 0 ? " 2. Arranca tu runtime local (Ollama/LM Studio/Foundry) antes de usarlo" : " 2. Abre opencode en este repo; openteam enruta local-first automáticamente"
1268
+ reachableIds.length === 0 ? " 2. Arranca tu runtime local (Ollama/LM Studio/Foundry) antes de usarlo" : " 2. Abre opencode en este repo; openteam enruta local-first automáticamente",
1269
+ " 3. Pulsa Tab y elige el agente 'openteam': creará el equipo a demanda"
1192
1270
  ].join(`
1193
1271
  `), "openteam configurado");
1194
- prompt.outro("Listo. Abre opencode para empezar.");
1272
+ prompt.outro("Listo. Abre opencode y selecciona el agente 'openteam'.");
1195
1273
  return {
1196
1274
  exitCode: 0,
1197
- stdout: `openteam init completado: ${OPENCODE_CONFIG_PATH}, ${DEFAULT_CONFIG_PATH}`
1275
+ stdout: `openteam init completado: ${OPENCODE_CONFIG_PATH}, ${DEFAULT_CONFIG_PATH}, ${ORCHESTRATOR_AGENT_PATH}`
1198
1276
  };
1199
1277
  } catch (error) {
1200
1278
  const message = error instanceof Error ? error.message : String(error);
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { FrontierChoice } from "./init";
2
+ /**
3
+ * Ruta relativa (al cwd) del agente primario que `openteam init` genera. El
4
+ * nombre del fichero (`openteam`) es el nombre del agente en opencode.
5
+ */
6
+ export declare const ORCHESTRATOR_AGENT_PATH = ".opencode/agent/openteam.md";
7
+ /**
8
+ * Construye el Markdown del agente primario `openteam` (estilo Squad): un
9
+ * orquestador que aparece en el Tab-switcher y que crea el equipo de
10
+ * subagentes a demanda. Pure: no I/O.
11
+ *
12
+ * `frontier` fija el `model` del orquestador (baseline cheapest-capable), un
13
+ * `provider/model` real y resoluble; el plugin de openteam sigue enrutando por
14
+ * mensaje, así que los subagentes que cree pueden heredar el default y ser
15
+ * enrutados local-first.
16
+ */
17
+ export declare function buildOrchestratorAgent(frontier: FrontierChoice): string;
18
+ //# sourceMappingURL=orchestratorAgent.d.ts.map
@@ -0,0 +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;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAkEvE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jmanuelcorral/openteam",
3
- "version": "0.1.4",
3
+ "version": "0.1.5",
4
4
  "description": "Plugin opencode de routing coste-consciente local-first con orquestación Squad.",
5
5
  "license": "MIT",
6
6
  "author": "Jose Manuel Corral",