@iaforged/context-code 1.0.85 → 1.0.89
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/dist/src/hooks/usePasteHandler.js +6 -6
- package/docs/BRIDGES.md +90 -0
- package/docs/Contex.md +70 -0
- package/docs/LIMITS.md +37 -0
- package/docs/MCP_SERVERS.md +51 -0
- package/docs/MULTI_PROVIDER.md +201 -0
- package/docs/MULTI_SQUAD_ORCHESTRATION_PLAN.md +639 -0
- package/docs/PHASE_1_WORKSPACES_AGENTS_TEAMS.md +161 -0
- package/docs/PHASE_2_SQLITE_ORCHESTRATION.md +127 -0
- package/docs/PHASE_3_DOMAIN_EXECUTION.md +215 -0
- package/docs/PHASE_3_VALIDATION.md +136 -0
- package/docs/PHASE_4_RISKS_AND_TESTS.md +182 -0
- package/docs/RECOVERY_NOTES.md +78 -0
- package/docs/RENAMING_NOTES.md +25 -0
- package/docs/SKILLS.md +27 -0
- package/docs/TEAMS_AND_ORCHESTRATION.md +626 -0
- package/docs/TROUBLESHOOTING.md +72 -0
- package/docs/comandos.md +121 -0
- package/docs/index.md +37 -0
- package/package.json +2 -1
|
@@ -0,0 +1,639 @@
|
|
|
1
|
+
# Plan De Mejora: Orquestacion Jerarquica Multi-Proveedor
|
|
2
|
+
|
|
3
|
+
## Objetivo
|
|
4
|
+
|
|
5
|
+
Llevar `Context Code` desde el estado actual de `multi-provider + multi-profile + SQLite` a una arquitectura de trabajo por escuadrones, donde:
|
|
6
|
+
|
|
7
|
+
- cada proveedor funciona como un `workspace` o `escuadron`
|
|
8
|
+
- cada escuadron puede tener multiples perfiles
|
|
9
|
+
- cada escuadron puede tener multiples subagentes internos
|
|
10
|
+
- cada escuadron tiene su propio orquestador local
|
|
11
|
+
- existe un orquestador principal que coordina a todos los escuadrones
|
|
12
|
+
- todo el estado operativo persiste en SQLite
|
|
13
|
+
|
|
14
|
+
La meta no es solo cambiar de proveedor. La meta es poder montar un `equipo de desarrollo agentico` con estructura real.
|
|
15
|
+
|
|
16
|
+
## Vision
|
|
17
|
+
|
|
18
|
+
La arquitectura final debe verse asi:
|
|
19
|
+
|
|
20
|
+
- `Orquestador principal`
|
|
21
|
+
decide la estrategia general, reparte trabajo por dominios y consolida resultados
|
|
22
|
+
- `Orquestador de escuadron`
|
|
23
|
+
pertenece a un proveedor concreto y reparte tareas entre subagentes internos de ese proveedor
|
|
24
|
+
- `Subagentes de escuadron`
|
|
25
|
+
ejecutan tareas especializadas
|
|
26
|
+
- `Perfiles de proveedor`
|
|
27
|
+
representan cuentas, modelos, base URLs y credenciales
|
|
28
|
+
- `SQLite`
|
|
29
|
+
almacena configuracion, equipos, asignaciones, ejecuciones y trazabilidad
|
|
30
|
+
|
|
31
|
+
Ejemplo conceptual:
|
|
32
|
+
|
|
33
|
+
- `Claude squad`
|
|
34
|
+
- `claude-orchestrator`
|
|
35
|
+
- `frontend-lead`
|
|
36
|
+
- `ui-reviewer`
|
|
37
|
+
- `ux-polish`
|
|
38
|
+
- `OpenAI squad`
|
|
39
|
+
- `openai-orchestrator`
|
|
40
|
+
- `backend-lead`
|
|
41
|
+
- `api-architect`
|
|
42
|
+
- `refactorer`
|
|
43
|
+
- `MiniMax squad`
|
|
44
|
+
- `minimax-orchestrator`
|
|
45
|
+
- `rapid-implementer`
|
|
46
|
+
- `docs-helper`
|
|
47
|
+
- `test-writer`
|
|
48
|
+
- `Global orchestrator`
|
|
49
|
+
- asigna frontend a Claude
|
|
50
|
+
- asigna backend a OpenAI
|
|
51
|
+
- asigna docs o pruebas a otro escuadron
|
|
52
|
+
|
|
53
|
+
## Principios De Diseño
|
|
54
|
+
|
|
55
|
+
1. No mezclar proveedor, perfil, agente y rol.
|
|
56
|
+
2. El orquestador principal no depende de un proveedor fijo.
|
|
57
|
+
3. Cada escuadron puede evolucionar sin romper la organizacion global.
|
|
58
|
+
4. Los secretos siguen fuera del estado visible y se manejan por la capa de credenciales ya migrada a SQLite cifrado local.
|
|
59
|
+
5. La primera version debe priorizar control manual y trazabilidad antes que automatizacion completa.
|
|
60
|
+
|
|
61
|
+
## Capas Del Sistema
|
|
62
|
+
|
|
63
|
+
### 1. Provider Workspace
|
|
64
|
+
|
|
65
|
+
Representa al proveedor como unidad organizacional.
|
|
66
|
+
|
|
67
|
+
Ejemplos:
|
|
68
|
+
|
|
69
|
+
- `claude`
|
|
70
|
+
- `openai`
|
|
71
|
+
- `minimax`
|
|
72
|
+
- `zai`
|
|
73
|
+
- `openrouter`
|
|
74
|
+
|
|
75
|
+
Un workspace define:
|
|
76
|
+
|
|
77
|
+
- nombre visible
|
|
78
|
+
- foco principal del escuadron
|
|
79
|
+
- si esta habilitado
|
|
80
|
+
- reglas de seleccion de perfiles y agentes
|
|
81
|
+
|
|
82
|
+
### 2. Provider Profile
|
|
83
|
+
|
|
84
|
+
Representa una cuenta o configuracion concreta dentro del workspace.
|
|
85
|
+
|
|
86
|
+
Ejemplos:
|
|
87
|
+
|
|
88
|
+
- `claude/main`
|
|
89
|
+
- `claude/team-a`
|
|
90
|
+
- `openai/work`
|
|
91
|
+
- `minimax/fast-lane`
|
|
92
|
+
|
|
93
|
+
Un profile define:
|
|
94
|
+
|
|
95
|
+
- credenciales
|
|
96
|
+
- modelo por defecto
|
|
97
|
+
- base URL
|
|
98
|
+
- estado operativo
|
|
99
|
+
- preferencias runtime
|
|
100
|
+
|
|
101
|
+
### 3. Provider Agent
|
|
102
|
+
|
|
103
|
+
Representa un subagente interno de un escuadron.
|
|
104
|
+
|
|
105
|
+
Ejemplos:
|
|
106
|
+
|
|
107
|
+
- `claude/frontend-lead`
|
|
108
|
+
- `claude/ui-reviewer`
|
|
109
|
+
- `openai/backend-lead`
|
|
110
|
+
- `openai/api-architect`
|
|
111
|
+
|
|
112
|
+
Un agent define:
|
|
113
|
+
|
|
114
|
+
- rol
|
|
115
|
+
- prompt base
|
|
116
|
+
- herramientas permitidas
|
|
117
|
+
- modelo override opcional
|
|
118
|
+
- capacidades
|
|
119
|
+
- si es o no orquestador local
|
|
120
|
+
|
|
121
|
+
### 4. Team
|
|
122
|
+
|
|
123
|
+
Representa un equipo de trabajo transversal.
|
|
124
|
+
|
|
125
|
+
Ejemplos:
|
|
126
|
+
|
|
127
|
+
- `core-dev`
|
|
128
|
+
- `release-team`
|
|
129
|
+
- `feature-squad`
|
|
130
|
+
|
|
131
|
+
### 5. Orchestration Run
|
|
132
|
+
|
|
133
|
+
Representa una ejecucion real:
|
|
134
|
+
|
|
135
|
+
- objetivo
|
|
136
|
+
- equipo usado
|
|
137
|
+
- orquestador global
|
|
138
|
+
- subtareas
|
|
139
|
+
- asignaciones
|
|
140
|
+
- resultados
|
|
141
|
+
|
|
142
|
+
## Modelo De Orquestacion
|
|
143
|
+
|
|
144
|
+
### Orquestador Principal
|
|
145
|
+
|
|
146
|
+
Responsabilidades:
|
|
147
|
+
|
|
148
|
+
- entender la meta global
|
|
149
|
+
- descomponer trabajo por dominio
|
|
150
|
+
- asignar trabajo al escuadron correcto
|
|
151
|
+
- consolidar respuestas de los escuadrones
|
|
152
|
+
- decidir reintentos, escalaciones y cierres
|
|
153
|
+
|
|
154
|
+
### Orquestador De Escuadron
|
|
155
|
+
|
|
156
|
+
Responsabilidades:
|
|
157
|
+
|
|
158
|
+
- recibir trabajo del orquestador principal
|
|
159
|
+
- descomponerlo internamente
|
|
160
|
+
- seleccionar subagentes del mismo proveedor
|
|
161
|
+
- validar el output del escuadron
|
|
162
|
+
- devolver un resultado consolidado al orquestador principal
|
|
163
|
+
|
|
164
|
+
### Subagentes Del Escuadron
|
|
165
|
+
|
|
166
|
+
Responsabilidades:
|
|
167
|
+
|
|
168
|
+
- ejecutar tareas concretas
|
|
169
|
+
- reportar al orquestador del escuadron
|
|
170
|
+
- no coordinar fuera de su escuadron en v1
|
|
171
|
+
|
|
172
|
+
## Modelo SQLite Propuesto
|
|
173
|
+
|
|
174
|
+
### Tablas Base
|
|
175
|
+
|
|
176
|
+
#### `provider_workspaces`
|
|
177
|
+
|
|
178
|
+
- `id`
|
|
179
|
+
- `provider`
|
|
180
|
+
- `display_name`
|
|
181
|
+
- `domain_focus`
|
|
182
|
+
- `is_enabled`
|
|
183
|
+
- `created_at`
|
|
184
|
+
- `updated_at`
|
|
185
|
+
|
|
186
|
+
#### `provider_profiles`
|
|
187
|
+
|
|
188
|
+
- `id`
|
|
189
|
+
- `workspace_id`
|
|
190
|
+
- `provider`
|
|
191
|
+
- `name`
|
|
192
|
+
- `agent_name`
|
|
193
|
+
- `base_url`
|
|
194
|
+
- `default_model`
|
|
195
|
+
- `is_active`
|
|
196
|
+
- `created_at`
|
|
197
|
+
- `updated_at`
|
|
198
|
+
|
|
199
|
+
Nota:
|
|
200
|
+
|
|
201
|
+
- esta tabla puede extender o reemplazar gradualmente la estructura actual de perfiles ya existente en SQLite
|
|
202
|
+
|
|
203
|
+
#### `provider_agents`
|
|
204
|
+
|
|
205
|
+
- `id`
|
|
206
|
+
- `workspace_id`
|
|
207
|
+
- `profile_id`
|
|
208
|
+
- `name`
|
|
209
|
+
- `role_kind`
|
|
210
|
+
- `system_prompt`
|
|
211
|
+
- `model_override`
|
|
212
|
+
- `tool_policy`
|
|
213
|
+
- `autonomy_level`
|
|
214
|
+
- `is_orchestrator`
|
|
215
|
+
- `is_enabled`
|
|
216
|
+
- `created_at`
|
|
217
|
+
- `updated_at`
|
|
218
|
+
|
|
219
|
+
#### `provider_agent_capabilities`
|
|
220
|
+
|
|
221
|
+
- `id`
|
|
222
|
+
- `agent_id`
|
|
223
|
+
- `capability`
|
|
224
|
+
- `weight`
|
|
225
|
+
|
|
226
|
+
Ejemplos de `capability`:
|
|
227
|
+
|
|
228
|
+
- `frontend`
|
|
229
|
+
- `backend`
|
|
230
|
+
- `review`
|
|
231
|
+
- `docs`
|
|
232
|
+
- `testing`
|
|
233
|
+
- `speed`
|
|
234
|
+
- `quality`
|
|
235
|
+
- `tools`
|
|
236
|
+
|
|
237
|
+
#### `teams`
|
|
238
|
+
|
|
239
|
+
- `id`
|
|
240
|
+
- `name`
|
|
241
|
+
- `description`
|
|
242
|
+
- `global_orchestrator_agent_id`
|
|
243
|
+
- `is_enabled`
|
|
244
|
+
- `created_at`
|
|
245
|
+
- `updated_at`
|
|
246
|
+
|
|
247
|
+
#### `team_domains`
|
|
248
|
+
|
|
249
|
+
- `id`
|
|
250
|
+
- `team_id`
|
|
251
|
+
- `domain_name`
|
|
252
|
+
- `workspace_id`
|
|
253
|
+
- `local_orchestrator_agent_id`
|
|
254
|
+
- `lead_agent_id`
|
|
255
|
+
- `selection_mode`
|
|
256
|
+
- `required`
|
|
257
|
+
|
|
258
|
+
Ejemplos de `domain_name`:
|
|
259
|
+
|
|
260
|
+
- `frontend`
|
|
261
|
+
- `backend`
|
|
262
|
+
- `qa`
|
|
263
|
+
- `docs`
|
|
264
|
+
- `architecture`
|
|
265
|
+
|
|
266
|
+
#### `team_domain_members`
|
|
267
|
+
|
|
268
|
+
- `id`
|
|
269
|
+
- `team_domain_id`
|
|
270
|
+
- `agent_id`
|
|
271
|
+
- `duty`
|
|
272
|
+
- `priority`
|
|
273
|
+
|
|
274
|
+
#### `orchestration_runs`
|
|
275
|
+
|
|
276
|
+
- `id`
|
|
277
|
+
- `team_id`
|
|
278
|
+
- `goal`
|
|
279
|
+
- `global_orchestrator_agent_id`
|
|
280
|
+
- `status`
|
|
281
|
+
- `created_at`
|
|
282
|
+
- `started_at`
|
|
283
|
+
- `finished_at`
|
|
284
|
+
|
|
285
|
+
#### `orchestration_tasks`
|
|
286
|
+
|
|
287
|
+
- `id`
|
|
288
|
+
- `run_id`
|
|
289
|
+
- `parent_task_id`
|
|
290
|
+
- `scope_type`
|
|
291
|
+
- `team_domain_id`
|
|
292
|
+
- `assigned_agent_id`
|
|
293
|
+
- `title`
|
|
294
|
+
- `instructions`
|
|
295
|
+
- `status`
|
|
296
|
+
- `result_summary`
|
|
297
|
+
- `created_at`
|
|
298
|
+
- `finished_at`
|
|
299
|
+
|
|
300
|
+
#### `orchestration_messages`
|
|
301
|
+
|
|
302
|
+
- `id`
|
|
303
|
+
- `run_id`
|
|
304
|
+
- `task_id`
|
|
305
|
+
- `from_agent_id`
|
|
306
|
+
- `to_agent_id`
|
|
307
|
+
- `message_type`
|
|
308
|
+
- `content`
|
|
309
|
+
- `created_at`
|
|
310
|
+
|
|
311
|
+
## Modulos De Aplicacion A Crear
|
|
312
|
+
|
|
313
|
+
### 1. `ProviderWorkspaceStore`
|
|
314
|
+
|
|
315
|
+
Responsable de:
|
|
316
|
+
|
|
317
|
+
- workspaces de proveedor
|
|
318
|
+
- perfiles asociados
|
|
319
|
+
- metadatos del escuadron
|
|
320
|
+
|
|
321
|
+
### 2. `ProviderAgentStore`
|
|
322
|
+
|
|
323
|
+
Responsable de:
|
|
324
|
+
|
|
325
|
+
- CRUD de subagentes
|
|
326
|
+
- capacidades
|
|
327
|
+
- politica de herramientas
|
|
328
|
+
- prompt base
|
|
329
|
+
|
|
330
|
+
### 3. `TeamStore`
|
|
331
|
+
|
|
332
|
+
Responsable de:
|
|
333
|
+
|
|
334
|
+
- equipos
|
|
335
|
+
- dominios
|
|
336
|
+
- leads
|
|
337
|
+
- miembros
|
|
338
|
+
- orquestador global
|
|
339
|
+
|
|
340
|
+
### 4. `OrchestrationPlanner`
|
|
341
|
+
|
|
342
|
+
Responsable de:
|
|
343
|
+
|
|
344
|
+
- partir una meta en dominios
|
|
345
|
+
- decidir a que escuadron va cada frente
|
|
346
|
+
- construir tareas para orquestadores locales
|
|
347
|
+
|
|
348
|
+
### 5. `GlobalOrchestratorRuntime`
|
|
349
|
+
|
|
350
|
+
Responsable de:
|
|
351
|
+
|
|
352
|
+
- correr el flujo del orquestador principal
|
|
353
|
+
- crear `runs`
|
|
354
|
+
- crear tareas
|
|
355
|
+
- pedir consolidaciones
|
|
356
|
+
|
|
357
|
+
### 6. `SquadOrchestratorRuntime`
|
|
358
|
+
|
|
359
|
+
Responsable de:
|
|
360
|
+
|
|
361
|
+
- repartir tareas internas del escuadron
|
|
362
|
+
- seleccionar subagentes internos
|
|
363
|
+
- consolidar trabajo del escuadron
|
|
364
|
+
|
|
365
|
+
### 7. `AgentExecutionRuntime`
|
|
366
|
+
|
|
367
|
+
Responsable de:
|
|
368
|
+
|
|
369
|
+
- ejecutar agentes concretos con el provider/profile correcto
|
|
370
|
+
- resolver modelo, credenciales, tools y contexto
|
|
371
|
+
|
|
372
|
+
## Comandos CLI Recomendados
|
|
373
|
+
|
|
374
|
+
### Fase Inicial
|
|
375
|
+
|
|
376
|
+
- `/workspace`
|
|
377
|
+
- `/workspace list`
|
|
378
|
+
- `/workspace show <provider>`
|
|
379
|
+
- `/agent`
|
|
380
|
+
- `/agent list <provider>`
|
|
381
|
+
- `/agent create <provider> <name>`
|
|
382
|
+
- `/agent edit <provider> <name>`
|
|
383
|
+
- `/team`
|
|
384
|
+
- `/team create <name>`
|
|
385
|
+
- `/team show <name>`
|
|
386
|
+
- `/team orchestrator <team> <provider>/<agent>`
|
|
387
|
+
- `/team domain <team> <domain> <provider>/<agent>`
|
|
388
|
+
|
|
389
|
+
### Fase De Orquestacion
|
|
390
|
+
|
|
391
|
+
- `/orchestrate <team> "<objetivo>"`
|
|
392
|
+
- `/run list`
|
|
393
|
+
- `/run show <id>`
|
|
394
|
+
- `/run cancel <id>`
|
|
395
|
+
|
|
396
|
+
## Fases De Implementacion
|
|
397
|
+
|
|
398
|
+
### Fase 1: Modelo Organizacional
|
|
399
|
+
|
|
400
|
+
Objetivo:
|
|
401
|
+
|
|
402
|
+
- modelar escuadrones, agentes y equipos sin ejecutar orquestacion real
|
|
403
|
+
|
|
404
|
+
Entregables:
|
|
405
|
+
|
|
406
|
+
- tablas SQLite nuevas
|
|
407
|
+
- stores nuevos
|
|
408
|
+
- comandos `/workspace`, `/agent`, `/team`
|
|
409
|
+
- UI/CLI para asignar:
|
|
410
|
+
- orquestador principal
|
|
411
|
+
- orquestador local de escuadron
|
|
412
|
+
- miembros por dominio
|
|
413
|
+
|
|
414
|
+
Criterio de cierre:
|
|
415
|
+
|
|
416
|
+
- se puede definir un equipo completo en SQLite
|
|
417
|
+
- se puede inspeccionar desde CLI
|
|
418
|
+
|
|
419
|
+
### Fase 2: Orquestacion Global Basica
|
|
420
|
+
|
|
421
|
+
Objetivo:
|
|
422
|
+
|
|
423
|
+
- introducir el orquestador principal y la asignacion por dominio
|
|
424
|
+
|
|
425
|
+
Entregables:
|
|
426
|
+
|
|
427
|
+
- `orchestration_runs`
|
|
428
|
+
- `orchestration_tasks`
|
|
429
|
+
- `GlobalOrchestratorRuntime`
|
|
430
|
+
- `/orchestrate`
|
|
431
|
+
|
|
432
|
+
Regla de v1:
|
|
433
|
+
|
|
434
|
+
- el orquestador principal asigna trabajo al `lead agent` o al `local orchestrator`
|
|
435
|
+
- no hay subdelegacion profunda aun
|
|
436
|
+
|
|
437
|
+
Criterio de cierre:
|
|
438
|
+
|
|
439
|
+
- una meta puede dividirse por dominios y asignarse a distintos escuadrones
|
|
440
|
+
|
|
441
|
+
### Fase 3: Orquestadores De Escuadron
|
|
442
|
+
|
|
443
|
+
Objetivo:
|
|
444
|
+
|
|
445
|
+
- habilitar que cada proveedor tenga su propia mini-orquestacion
|
|
446
|
+
|
|
447
|
+
Entregables:
|
|
448
|
+
|
|
449
|
+
- `SquadOrchestratorRuntime`
|
|
450
|
+
- seleccion de subagentes internos
|
|
451
|
+
- consolidacion interna por escuadron
|
|
452
|
+
- trazabilidad en `orchestration_messages`
|
|
453
|
+
|
|
454
|
+
Criterio de cierre:
|
|
455
|
+
|
|
456
|
+
- el orquestador global delega a un escuadron
|
|
457
|
+
- el escuadron decide internamente quien hace cada parte
|
|
458
|
+
- el escuadron responde consolidado
|
|
459
|
+
|
|
460
|
+
### Fase 4: Politicas Inteligentes
|
|
461
|
+
|
|
462
|
+
Objetivo:
|
|
463
|
+
|
|
464
|
+
- agregar seleccion semiautomatica y fallback
|
|
465
|
+
|
|
466
|
+
Entregables:
|
|
467
|
+
|
|
468
|
+
- ranking por capacidad
|
|
469
|
+
- costo
|
|
470
|
+
- latencia
|
|
471
|
+
- calidad
|
|
472
|
+
- soporte de tools
|
|
473
|
+
- fallback entre profiles y agentes
|
|
474
|
+
|
|
475
|
+
Criterio de cierre:
|
|
476
|
+
|
|
477
|
+
- el sistema puede sugerir o elegir automaticamente quien ocupa cada cargo
|
|
478
|
+
|
|
479
|
+
### Fase 5: UX Y Gobierno
|
|
480
|
+
|
|
481
|
+
Objetivo:
|
|
482
|
+
|
|
483
|
+
- hacer el sistema utilizable y operable en el dia a dia
|
|
484
|
+
|
|
485
|
+
Entregables:
|
|
486
|
+
|
|
487
|
+
- comandos de diagnostico
|
|
488
|
+
- vista de equipo actual
|
|
489
|
+
- vista de topologia
|
|
490
|
+
- historial de runs
|
|
491
|
+
- confirmaciones y validaciones
|
|
492
|
+
|
|
493
|
+
Criterio de cierre:
|
|
494
|
+
|
|
495
|
+
- la orquestacion se puede usar sin inspeccionar la base manualmente
|
|
496
|
+
|
|
497
|
+
## Cantidad Recomendada De Agentes Para Desarrollarlo
|
|
498
|
+
|
|
499
|
+
### Equipo minimo: 4 agentes
|
|
500
|
+
|
|
501
|
+
Recomendado si se quiere avanzar con cuidado y poco solapamiento.
|
|
502
|
+
|
|
503
|
+
- `Agente 1`: SQLite y stores
|
|
504
|
+
- `Agente 2`: CLI y comandos
|
|
505
|
+
- `Agente 3`: runtime de orquestacion
|
|
506
|
+
- `Agente 4`: validacion, tests y documentacion
|
|
507
|
+
|
|
508
|
+
### Equipo recomendado: 6 agentes
|
|
509
|
+
|
|
510
|
+
Es la opcion mas equilibrada para construir esto bien y rapido.
|
|
511
|
+
|
|
512
|
+
- `Agente A`: esquema SQLite y migraciones
|
|
513
|
+
- `Agente B`: `ProviderWorkspaceStore` y `ProviderAgentStore`
|
|
514
|
+
- `Agente C`: `TeamStore` y comandos `/team`
|
|
515
|
+
- `Agente D`: comandos `/workspace` y `/agent`
|
|
516
|
+
- `Agente E`: `GlobalOrchestratorRuntime`
|
|
517
|
+
- `Agente F`: `SquadOrchestratorRuntime`, trazabilidad y pruebas
|
|
518
|
+
|
|
519
|
+
### Equipo agresivo: 8 agentes
|
|
520
|
+
|
|
521
|
+
Solo vale la pena si se controla muy bien la coordinacion.
|
|
522
|
+
|
|
523
|
+
- separa runtime, stores, CLI, tests, docs, visualizacion y migraciones
|
|
524
|
+
- aumenta riesgo de conflictos si no se define ownership exacto de archivos
|
|
525
|
+
|
|
526
|
+
## Recomendacion De Ejecucion
|
|
527
|
+
|
|
528
|
+
Para este repo, la recomendacion real es trabajar con `6 agentes`.
|
|
529
|
+
|
|
530
|
+
Motivo:
|
|
531
|
+
|
|
532
|
+
- el problema ya no es pequeno
|
|
533
|
+
- ya existe infraestructura SQLite previa
|
|
534
|
+
- hay que tocar almacenamiento, runtime y UX
|
|
535
|
+
- pero aun se puede dividir en write scopes claros
|
|
536
|
+
|
|
537
|
+
## Reparto Recomendado De Ownership
|
|
538
|
+
|
|
539
|
+
### Worker 1
|
|
540
|
+
|
|
541
|
+
Responsable de:
|
|
542
|
+
|
|
543
|
+
- `src/utils/model/providerProfilesDb.ts`
|
|
544
|
+
- nuevas tablas y migraciones SQLite
|
|
545
|
+
- stores base de workspaces/agentes/equipos
|
|
546
|
+
|
|
547
|
+
### Worker 2
|
|
548
|
+
|
|
549
|
+
Responsable de:
|
|
550
|
+
|
|
551
|
+
- `src/commands/workspace/*`
|
|
552
|
+
- `src/commands/agent/*`
|
|
553
|
+
- registro de comandos y ayudas
|
|
554
|
+
|
|
555
|
+
### Worker 3
|
|
556
|
+
|
|
557
|
+
Responsable de:
|
|
558
|
+
|
|
559
|
+
- `src/commands/team/*`
|
|
560
|
+
- resolucion de equipos y dominios
|
|
561
|
+
|
|
562
|
+
### Worker 4
|
|
563
|
+
|
|
564
|
+
Responsable de:
|
|
565
|
+
|
|
566
|
+
- `src/services/orchestration/global/*`
|
|
567
|
+
- `GlobalOrchestratorRuntime`
|
|
568
|
+
|
|
569
|
+
### Worker 5
|
|
570
|
+
|
|
571
|
+
Responsable de:
|
|
572
|
+
|
|
573
|
+
- `src/services/orchestration/squad/*`
|
|
574
|
+
- `SquadOrchestratorRuntime`
|
|
575
|
+
- seleccion de subagentes internos
|
|
576
|
+
|
|
577
|
+
### Worker 6
|
|
578
|
+
|
|
579
|
+
Responsable de:
|
|
580
|
+
|
|
581
|
+
- pruebas
|
|
582
|
+
- fixtures SQLite
|
|
583
|
+
- diagnosticos
|
|
584
|
+
- README y documentacion tecnica
|
|
585
|
+
|
|
586
|
+
## Riesgos Tecnicos
|
|
587
|
+
|
|
588
|
+
1. Mezclar profile con agent
|
|
589
|
+
Rompe la separacion entre cuenta y rol.
|
|
590
|
+
|
|
591
|
+
2. Hacer asignacion automatica demasiado pronto
|
|
592
|
+
Lleva a comportamiento dificil de depurar.
|
|
593
|
+
|
|
594
|
+
3. No registrar trazabilidad de decisiones
|
|
595
|
+
Hace imposible entender por que un escuadron eligio cierto subagente.
|
|
596
|
+
|
|
597
|
+
4. Delegacion recursiva sin limites
|
|
598
|
+
Puede producir loops o explosion de tareas.
|
|
599
|
+
|
|
600
|
+
5. Acoplar demasiado el orquestador principal a un solo proveedor
|
|
601
|
+
Mata la flexibilidad del sistema.
|
|
602
|
+
|
|
603
|
+
## Reglas De Seguridad Operativa
|
|
604
|
+
|
|
605
|
+
- toda tarea debe tener `owner agent`
|
|
606
|
+
- toda tarea debe tener `status`
|
|
607
|
+
- toda subdelegacion debe quedar registrada
|
|
608
|
+
- cada orquestador local solo puede delegar a miembros de su escuadron
|
|
609
|
+
- el orquestador principal no ejecuta trabajo de dominio si existe escuadron asignado
|
|
610
|
+
|
|
611
|
+
## Definicion De Exito
|
|
612
|
+
|
|
613
|
+
El proyecto se considera bien implementado cuando:
|
|
614
|
+
|
|
615
|
+
- existe un orquestador principal configurable
|
|
616
|
+
- cada escuadron tiene su propio orquestador local
|
|
617
|
+
- cada proveedor puede tener varios subagentes internos
|
|
618
|
+
- los equipos se pueden definir desde CLI
|
|
619
|
+
- las ejecuciones se registran en SQLite
|
|
620
|
+
- los resultados se pueden inspeccionar sin leer logs crudos
|
|
621
|
+
|
|
622
|
+
## Orden Recomendado Inmediato
|
|
623
|
+
|
|
624
|
+
1. Fase 1 completa
|
|
625
|
+
2. Fase 2 minima operativa
|
|
626
|
+
3. Fase 3 sobre un solo flujo controlado
|
|
627
|
+
4. luego automatizacion
|
|
628
|
+
|
|
629
|
+
## Siguiente Paso Concreto
|
|
630
|
+
|
|
631
|
+
El siguiente paso correcto no es implementar todo de una vez.
|
|
632
|
+
|
|
633
|
+
El siguiente paso correcto es:
|
|
634
|
+
|
|
635
|
+
1. crear tablas nuevas en SQLite
|
|
636
|
+
2. crear `ProviderWorkspaceStore`, `ProviderAgentStore` y `TeamStore`
|
|
637
|
+
3. exponer comandos manuales para definir la topologia
|
|
638
|
+
|
|
639
|
+
Cuando eso exista, la orquestacion se vuelve una capa encima de una estructura ya estable.
|