@iaforged/context-code 1.0.84 → 1.0.86
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 +8 -1118
- 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,182 @@
|
|
|
1
|
+
# Fase 4: autonomia, seleccion automatica y resiliencia
|
|
2
|
+
|
|
3
|
+
Fase 4 debe convertir la orquestacion por dominio en un sistema capaz de elegir agentes, cambiar de proveedor cuando convenga y explicar por que tomo cada decision. La regla base es mantener a SQLite como fuente de verdad y no ejecutar automatismos silenciosos sin dejar evidencia en `orchestration_messages`.
|
|
4
|
+
|
|
5
|
+
## Objetivo
|
|
6
|
+
|
|
7
|
+
- Seleccionar automaticamente agentes por dominio usando capacidades, costo, latencia, calidad, disponibilidad y resiliencia.
|
|
8
|
+
- Reasignar tareas cuando un agente, perfil o proveedor no pueda continuar.
|
|
9
|
+
- Definir politicas de retry y fallback por tipo de error.
|
|
10
|
+
- Registrar cada decision de seleccion y fallback para auditoria posterior.
|
|
11
|
+
- Mantener comandos manuales para inspeccionar, aceptar o corregir decisiones automaticas.
|
|
12
|
+
|
|
13
|
+
## Modelo de politica
|
|
14
|
+
|
|
15
|
+
Fase 4 queda implementada como primer corte operativo con tipos en `src/services/orchestration/policy/types.ts` y scoring deterministico en `src/services/orchestration/policy/scoring.ts`.
|
|
16
|
+
|
|
17
|
+
Conceptos principales:
|
|
18
|
+
|
|
19
|
+
- `OrchestrationSelectionPolicy`: define modo de seleccion, objetivo de optimizacion, capabilities requeridas/preferidas, pesos y profundidad de fallback.
|
|
20
|
+
- `OrchestrationFallbackPolicy`: define que hacer ante errores de auth, cuota, rate-limit, timeout, modelo no disponible, proveedor caido, tool error o validacion.
|
|
21
|
+
- `OrchestrationAgentScoreBreakdown`: explica el puntaje de un candidato por capability, costo, latencia, calidad, disponibilidad y resiliencia.
|
|
22
|
+
- `OrchestrationSelectionDecision`: registra el agente elegido, candidatos evaluados, fallback candidates y razon final.
|
|
23
|
+
|
|
24
|
+
## Modos de seleccion
|
|
25
|
+
|
|
26
|
+
- `manual`: usa exactamente el agente asignado en el team o dominio.
|
|
27
|
+
- `score`: rankea candidatos dentro del dominio y elige el mejor disponible.
|
|
28
|
+
- `score-with-fallback`: rankea candidatos y conserva alternativas para errores recuperables.
|
|
29
|
+
- `fallback-only`: no cambia la seleccion inicial, pero puede reasignar cuando una tarea falla.
|
|
30
|
+
|
|
31
|
+
## Objetivos de optimizacion
|
|
32
|
+
|
|
33
|
+
- `balanced`: ponderacion equilibrada para trabajo general.
|
|
34
|
+
- `cost`: prioriza proveedores o modelos baratos cuando las capabilities minimas se cumplen.
|
|
35
|
+
- `latency`: prioriza respuesta rapida para tareas pequenas o iterativas.
|
|
36
|
+
- `quality`: prioriza agentes de mayor calidad para arquitectura, revision o cambios riesgosos.
|
|
37
|
+
- `capability`: prioriza especializacion declarada o inferida.
|
|
38
|
+
- `resilience`: prioriza agentes con historial estable y fallback fuerte.
|
|
39
|
+
|
|
40
|
+
## Scoring propuesto
|
|
41
|
+
|
|
42
|
+
El puntaje total debe calcularse con pesos normalizados entre `0` y `1`.
|
|
43
|
+
|
|
44
|
+
Formula inicial:
|
|
45
|
+
|
|
46
|
+
```text
|
|
47
|
+
total =
|
|
48
|
+
capabilityScore * capabilityWeight +
|
|
49
|
+
costScore * costWeight +
|
|
50
|
+
latencyScore * latencyWeight +
|
|
51
|
+
qualityScore * qualityWeight +
|
|
52
|
+
availabilityScore * availabilityWeight +
|
|
53
|
+
resilienceScore * resilienceWeight
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Reglas:
|
|
57
|
+
|
|
58
|
+
- Si falta una capability requerida, el candidato queda bloqueado aunque tenga buen puntaje.
|
|
59
|
+
- Las capabilities preferidas suman puntaje, pero no bloquean.
|
|
60
|
+
- Un workspace deshabilitado bloquea todos sus agentes.
|
|
61
|
+
- Un agente deshabilitado no entra al ranking.
|
|
62
|
+
- Un perfil sin credenciales validas puede aparecer como candidato bloqueado, pero no debe ejecutarse automaticamente.
|
|
63
|
+
- Si dos candidatos empatan, gana el de mayor `qualityScore`; si persiste empate, gana el de menor costo estimado; si persiste, se ordena por nombre para mantener determinismo.
|
|
64
|
+
|
|
65
|
+
## Fallback entre proveedores
|
|
66
|
+
|
|
67
|
+
El fallback no debe tratar todos los errores igual.
|
|
68
|
+
|
|
69
|
+
Politica recomendada:
|
|
70
|
+
|
|
71
|
+
- `auth`: bloquear para intervencion humana; no reintentar con la misma credencial.
|
|
72
|
+
- `quota`: intentar fallback a otro provider/profile si existe candidato compatible.
|
|
73
|
+
- `rate-limit`: reintentar con backoff o mover a fallback si la tarea es urgente.
|
|
74
|
+
- `timeout`: permitir retry limitado con el mismo agente y luego fallback.
|
|
75
|
+
- `model-unavailable`: permitir cambio de modelo dentro del mismo perfil si la politica lo permite.
|
|
76
|
+
- `provider-unavailable`: fallback a otro proveedor compatible.
|
|
77
|
+
- `tool-error`: bloquear si la tarea requiere tool especifica; de lo contrario permitir fallback.
|
|
78
|
+
- `validation`: no reintentar automaticamente; requiere ajuste del plan o instrucciones.
|
|
79
|
+
- `unknown`: un retry controlado y luego bloqueo.
|
|
80
|
+
|
|
81
|
+
Cada fallback debe escribir un mensaje con:
|
|
82
|
+
|
|
83
|
+
- tarea afectada
|
|
84
|
+
- error clasificado
|
|
85
|
+
- agente original
|
|
86
|
+
- agente nuevo, si aplica
|
|
87
|
+
- razon de la decision
|
|
88
|
+
- si hubo cambio de provider, profile o modelo
|
|
89
|
+
|
|
90
|
+
## Comandos operativos
|
|
91
|
+
|
|
92
|
+
Estos comandos ya operan sobre SQLite y registran decisiones auditables en `orchestration_messages` con prefijo `policy.*`.
|
|
93
|
+
|
|
94
|
+
```sh
|
|
95
|
+
/run optimize <run-id> [policy]
|
|
96
|
+
/run assign <run-id> [policy]
|
|
97
|
+
/run fallback <run-id> [task-id] [policy]
|
|
98
|
+
/run retry <run-id> <task-id>
|
|
99
|
+
/run reassign <task-id> <provider>/<agent>
|
|
100
|
+
/run explain <run-id>
|
|
101
|
+
/policy list
|
|
102
|
+
/policy show <policy>
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Comportamiento esperado:
|
|
106
|
+
|
|
107
|
+
- `/run assign` aplica una politica de seleccion a tareas abiertas.
|
|
108
|
+
- `/run optimize` propone cambios sin ejecutarlos.
|
|
109
|
+
- `/run fallback` intenta reasignar tareas fallidas o bloqueadas con una politica vigente.
|
|
110
|
+
- `/run retry` reintenta una tarea concreta respetando su clasificacion de error.
|
|
111
|
+
- `/run reassign` fuerza una reasignacion manual.
|
|
112
|
+
- `/run explain` muestra scoring, bloqueos y razones de seleccion.
|
|
113
|
+
- `/policy` lista y muestra politicas predefinidas.
|
|
114
|
+
|
|
115
|
+
Ejemplos:
|
|
116
|
+
|
|
117
|
+
```sh
|
|
118
|
+
/policy show score-with-fallback:quality
|
|
119
|
+
/run optimize <run-id> score-with-fallback:quality
|
|
120
|
+
/run assign <run-id> score:capability
|
|
121
|
+
/run fallback <run-id> <task-id> score-with-fallback:resilience
|
|
122
|
+
/run explain <run-id>
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Quedan fuera de este primer corte:
|
|
126
|
+
|
|
127
|
+
- persistencia editable de politicas personalizadas
|
|
128
|
+
- `/policy create`
|
|
129
|
+
- `/policy set-weights`
|
|
130
|
+
- clasificacion automatica profunda de errores por provider mas alla del fallback manual/auditable
|
|
131
|
+
|
|
132
|
+
## Riesgos principales
|
|
133
|
+
|
|
134
|
+
- Seleccion automatica sin scoring claro: puede enviar dominios criticos a agentes rapidos pero debiles.
|
|
135
|
+
- Fallback entre proveedores sin contexto: puede repetir el mismo fallo con otro proveedor y gastar tokens.
|
|
136
|
+
- Reintentos agresivos: pueden duplicar cambios o saturar cuentas con cuota baja.
|
|
137
|
+
- Conflictos entre escuadrones: frontend, backend y reviewer pueden producir salidas incompatibles.
|
|
138
|
+
- Reportes demasiado resumidos: el orquestador global puede cerrar una corrida sin evidencia suficiente.
|
|
139
|
+
- Capabilities desactualizadas: un agente puede declararse apto para un dominio que ya no soporta.
|
|
140
|
+
- Credenciales por perfil: un agente valido puede fallar si su provider profile no tiene credenciales activas.
|
|
141
|
+
- Scoring opaco: el usuario puede perder confianza si no entiende por que se eligio un proveedor.
|
|
142
|
+
- Fallback cross-provider sin equivalencia de modelo: la salida puede cambiar de formato o calidad.
|
|
143
|
+
- Costos no observados: una politica de calidad puede consumir cuota rapidamente.
|
|
144
|
+
|
|
145
|
+
## Pruebas recomendadas
|
|
146
|
+
|
|
147
|
+
- Ranking deterministico de agentes con mismas capacidades.
|
|
148
|
+
- Preferencia por `requiredCapabilities` sobre `preferredCapabilities`.
|
|
149
|
+
- Fallback cuando el agente principal esta deshabilitado.
|
|
150
|
+
- Fallback cuando el workspace del agente esta deshabilitado.
|
|
151
|
+
- Reasignacion de tareas `blocked` a otro miembro del dominio.
|
|
152
|
+
- Politica de no retry para errores no recuperables de proveedor.
|
|
153
|
+
- Consolidacion global con reportes mixtos: completados, bloqueados y fallidos.
|
|
154
|
+
- Autocompletado de `team`, `domain`, `agent` y `run-id`.
|
|
155
|
+
- Persistencia de metricas por dominio y agente.
|
|
156
|
+
- Verificacion de que un run cancelado no se reejecute accidentalmente.
|
|
157
|
+
- Explicacion completa de scoring para cada decision automatica.
|
|
158
|
+
- Fallback de `quota` hacia otro proveedor compatible.
|
|
159
|
+
- Bloqueo de `auth` sin retry automatico.
|
|
160
|
+
- Retry limitado de `timeout` con conteo de intentos persistido.
|
|
161
|
+
- Determinismo cuando dos agentes tienen el mismo score.
|
|
162
|
+
- Validacion de pesos de politica para evitar totales incoherentes.
|
|
163
|
+
|
|
164
|
+
## Gates para implementar Fase 4
|
|
165
|
+
|
|
166
|
+
- `npm run build`
|
|
167
|
+
- pruebas unitarias para scoring y fallback
|
|
168
|
+
- harness de stores para mensajes `policy.*`
|
|
169
|
+
- escenario manual con dos proveedores, dos dominios y un fallo forzado por cuota
|
|
170
|
+
- escenario manual con timeout recuperable
|
|
171
|
+
- revision de costos/cuotas antes de habilitar reintentos automaticos
|
|
172
|
+
|
|
173
|
+
## Criterio de cierre
|
|
174
|
+
|
|
175
|
+
Fase 4 solo debe considerarse cerrada cuando:
|
|
176
|
+
|
|
177
|
+
- las decisiones automaticas sean explicables desde `/run explain`
|
|
178
|
+
- el scoring sea deterministico
|
|
179
|
+
- cada fallback quede persistido como mensaje auditable
|
|
180
|
+
- los errores no recuperables no disparen retries agresivos
|
|
181
|
+
- el usuario pueda forzar reasignacion manual
|
|
182
|
+
- la documentacion de politicas y comandos coincida con el comportamiento real
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Recovery Notes
|
|
2
|
+
|
|
3
|
+
Recovered source files from `cli.js.map`.
|
|
4
|
+
|
|
5
|
+
## Summary
|
|
6
|
+
|
|
7
|
+
- Total entries in source map: 4756
|
|
8
|
+
- Files written: 4756
|
|
9
|
+
- Entries without inline content: 0
|
|
10
|
+
- Main application files under `src/`: 1902
|
|
11
|
+
- Dependency files under `node_modules/`: 2850
|
|
12
|
+
- Native/vendor helper files under `vendor/`: 4
|
|
13
|
+
- Other recovered paths: 0
|
|
14
|
+
|
|
15
|
+
## Recommended Review Order
|
|
16
|
+
|
|
17
|
+
1. `src/cli/`
|
|
18
|
+
2. `src/commands/`
|
|
19
|
+
3. `src/components/`
|
|
20
|
+
4. `src/services/`
|
|
21
|
+
5. `src/tools/`
|
|
22
|
+
6. `src/utils/`
|
|
23
|
+
|
|
24
|
+
## Top-Level `src/` Breakdown
|
|
25
|
+
|
|
26
|
+
- utils: 564 files
|
|
27
|
+
- components: 389 files
|
|
28
|
+
- commands: 207 files
|
|
29
|
+
- tools: 184 files
|
|
30
|
+
- services: 130 files
|
|
31
|
+
- hooks: 104 files
|
|
32
|
+
- ink: 96 files
|
|
33
|
+
- bridge: 31 files
|
|
34
|
+
- constants: 21 files
|
|
35
|
+
- skills: 20 files
|
|
36
|
+
- cli: 19 files
|
|
37
|
+
- keybindings: 14 files
|
|
38
|
+
- tasks: 12 files
|
|
39
|
+
- types: 11 files
|
|
40
|
+
- migrations: 11 files
|
|
41
|
+
- context: 9 files
|
|
42
|
+
- entrypoints: 8 files
|
|
43
|
+
- memdir: 8 files
|
|
44
|
+
- state: 6 files
|
|
45
|
+
- buddy: 6 files
|
|
46
|
+
- vim: 5 files
|
|
47
|
+
- native-ts: 4 files
|
|
48
|
+
- query: 4 files
|
|
49
|
+
- remote: 4 files
|
|
50
|
+
- screens: 3 files
|
|
51
|
+
- server: 3 files
|
|
52
|
+
- plugins: 2 files
|
|
53
|
+
- upstreamproxy: 2 files
|
|
54
|
+
- bootstrap: 1 files
|
|
55
|
+
- schemas: 1 files
|
|
56
|
+
- Tool.ts: 1 files
|
|
57
|
+
- ink.ts: 1 files
|
|
58
|
+
- context.ts: 1 files
|
|
59
|
+
- coordinator: 1 files
|
|
60
|
+
- cost-tracker.ts: 1 files
|
|
61
|
+
- tasks.ts: 1 files
|
|
62
|
+
- voice: 1 files
|
|
63
|
+
- tools.ts: 1 files
|
|
64
|
+
- query.ts: 1 files
|
|
65
|
+
- outputStyles: 1 files
|
|
66
|
+
- projectOnboardingState.ts: 1 files
|
|
67
|
+
- history.ts: 1 files
|
|
68
|
+
- commands.ts: 1 files
|
|
69
|
+
- Task.ts: 1 files
|
|
70
|
+
- assistant: 1 files
|
|
71
|
+
- moreright: 1 files
|
|
72
|
+
- costHook.ts: 1 files
|
|
73
|
+
- replLauncher.tsx: 1 files
|
|
74
|
+
- interactiveHelpers.tsx: 1 files
|
|
75
|
+
- dialogLaunchers.tsx: 1 files
|
|
76
|
+
- setup.ts: 1 files
|
|
77
|
+
- QueryEngine.ts: 1 files
|
|
78
|
+
- main.tsx: 1 files
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Context Code Renaming Notes
|
|
2
|
+
|
|
3
|
+
This folder is a working copy created from recovered sources and the original bundle.
|
|
4
|
+
|
|
5
|
+
What was changed:
|
|
6
|
+
- Package name changed to `@context-ai/context-code`
|
|
7
|
+
- CLI bin name changed from `claude` to `context`
|
|
8
|
+
- README branding changed to `Context Code`
|
|
9
|
+
- Executable launcher added: `context.cmd`
|
|
10
|
+
- Visible bundle strings `Claude Code` were rebranded where possible
|
|
11
|
+
|
|
12
|
+
What was not fully changed:
|
|
13
|
+
- Internal identifiers, service integrations, telemetry, and some upstream references may still mention Claude or Anthropic
|
|
14
|
+
- Source files under `src/` were left mostly intact to avoid breaking runtime behavior
|
|
15
|
+
|
|
16
|
+
Recommended local run:
|
|
17
|
+
|
|
18
|
+
```powershell
|
|
19
|
+
.\context.cmd --help
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Validation status:
|
|
23
|
+
- `.\context.cmd --help` works
|
|
24
|
+
- `.\context.cmd --version` works and reports `Context Code`
|
|
25
|
+
- No complete build pipeline was recovered with the source map copy, so there is no guaranteed `build` script or `tsconfig`-driven compile step yet
|
package/docs/SKILLS.md
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
## Skills de Context
|
|
2
|
+
|
|
3
|
+
Context usa `.context/skills` como carpeta oficial de skills del proyecto y `~/.context/skills` como carpeta global de usuario.
|
|
4
|
+
|
|
5
|
+
Formato:
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
.context/skills/<nombre-skill>/SKILL.md
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Comandos:
|
|
12
|
+
|
|
13
|
+
```sh
|
|
14
|
+
/skills
|
|
15
|
+
/skills import
|
|
16
|
+
/skills import .claude
|
|
17
|
+
/skills import .codex
|
|
18
|
+
/skills import .agents
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Uso practico:
|
|
22
|
+
|
|
23
|
+
- `/skills` lista las skills disponibles.
|
|
24
|
+
- `/skills import` busca skills legacy en `.claude/skills`, `.codex/skills` y `.agents/skills`, y las copia a `.context/skills`.
|
|
25
|
+
- `/skills import .claude` importa solo desde `.claude/skills`.
|
|
26
|
+
- Las nuevas skills deben crearse en `.context/skills/<nombre>/SKILL.md`.
|
|
27
|
+
- `CONTEXT_CONFIG_DIR` es la variable principal para cambiar la carpeta global; `CLAUDE_CONFIG_DIR` queda como fallback temporal de compatibilidad.
|