@iaforged/context-code 1.0.85 → 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.
@@ -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.