oxe-cc 1.4.1 → 1.5.0
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/.cursor/commands/oxe-verify-audit.md +46 -0
- package/.cursor/commands/oxe-workflow-authoring.md +47 -0
- package/.github/prompts/oxe-compact.prompt.md +1 -1
- package/.github/prompts/oxe-plan-agent.prompt.md +1 -0
- package/.github/prompts/oxe-verify-audit.prompt.md +46 -0
- package/.github/prompts/oxe-workflow-authoring.prompt.md +47 -0
- package/.github/workflows/ci.yml +1 -0
- package/.github/workflows/release.yml +1 -0
- package/AGENTS.md +3 -1
- package/CHANGELOG.md +25 -0
- package/QUICKSTART.md +99 -0
- package/README.md +19 -10
- package/bin/lib/oxe-install-resolve.cjs +10 -0
- package/bin/lib/oxe-operational.cjs +34 -28
- package/bin/lib/oxe-project-health.cjs +38 -6
- package/bin/lib/oxe-release.cjs +423 -0
- package/bin/oxe-cc.js +389 -294
- package/commands/oxe/verify-audit.md +50 -0
- package/commands/oxe/workflow-authoring.md +50 -0
- package/docs/INCIDENT-PLAYBOOK.md +181 -0
- package/docs/RELEASE-READINESS.md +46 -0
- package/docs/ROLES.md +129 -0
- package/docs/RUNTIME-SMOKE-MATRIX.md +128 -0
- package/docs/TEAM-ADOPTION.md +153 -0
- package/docs/WALKTHROUGH.md +241 -0
- package/lib/runtime/scheduler/multi-agent-coordinator.d.ts +28 -0
- package/lib/runtime/scheduler/multi-agent-coordinator.js +152 -26
- package/lib/sdk/README.md +2 -0
- package/lib/sdk/index.cjs +22 -8
- package/lib/sdk/index.d.ts +60 -16
- package/oxe/templates/config.template.json +1 -0
- package/package.json +28 -20
- package/packages/runtime/package.json +1 -1
- package/packages/runtime/src/scheduler/multi-agent-coordinator.ts +357 -193
- package/vscode-extension/oxe-agents-1.5.0.vsix +0 -0
- package/vscode-extension/package.json +1 -1
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
# OXE — Adoção em Times
|
|
2
|
+
|
|
3
|
+
> Para times de 2–20 devs usando OXE em projetos compartilhados.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Fluxo branch/PR recomendado
|
|
8
|
+
|
|
9
|
+
Cada feature ou fix percorre este caminho:
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
git checkout -b feature/minha-feature
|
|
13
|
+
/oxe-spec → define critérios de aceite em .oxe/SPEC.md
|
|
14
|
+
/oxe-plan → gera .oxe/PLAN.md com ondas e tarefas
|
|
15
|
+
/oxe-execute → implementa onda a onda
|
|
16
|
+
/oxe-verify → valida critérios do SPEC com evidências
|
|
17
|
+
npx oxe-cc runtime promote --dir . --target pr_draft → abre PR draft
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
O PR draft já vem com `.oxe/VERIFY.md` como evidência de qualidade. O reviewer usa `/oxe-verify --audit` para validação adversarial antes de aprovar.
|
|
21
|
+
|
|
22
|
+
**Regra de ouro:** nunca mergear sem `VERIFY.md` existente e fase `verify_complete` no STATE.md.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Ship local vs. promote remoto
|
|
27
|
+
|
|
28
|
+
| Situação | Comando | Quando usar |
|
|
29
|
+
|----------|---------|-------------|
|
|
30
|
+
| Tarefa solo, ciclo completo local | `/oxe-quick` | Tasks S/M sem necessidade de review formal |
|
|
31
|
+
| Feature com review de time | `/oxe-verify` + `runtime promote --target pr_draft` | Qualquer feature que vai para revisão |
|
|
32
|
+
| Hotfix urgente | `/oxe-execute --task T1` + `/oxe-verify` + `runtime promote --target pr_draft` | Correções urgentes com rastreabilidade |
|
|
33
|
+
| Experimento / POC | `/oxe-spec` + `/oxe-plan` + `/oxe-execute` sem promote | Validações rápidas, sem PR |
|
|
34
|
+
|
|
35
|
+
`/oxe-ship` (comando legado) equivale a `/oxe-verify` + `git add/commit/push` sem passar pelo gate de promoção formal. Prefira `runtime promote` quando rastreabilidade importa.
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Sessões e workstreams sem poluir `.oxe/`
|
|
40
|
+
|
|
41
|
+
### Sessões
|
|
42
|
+
|
|
43
|
+
Cada sessão de trabalho tem um ID único. Para manter o diretório `.oxe/` limpo:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
# Nomear sessão explicitamente
|
|
47
|
+
npx oxe-cc runtime session start --name "feat-auth-2fa"
|
|
48
|
+
|
|
49
|
+
# Ver sessão ativa
|
|
50
|
+
npx oxe-cc runtime session status
|
|
51
|
+
|
|
52
|
+
# Fechar sessão ao final do dia / feature
|
|
53
|
+
npx oxe-cc runtime session close
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
**Não deixar sessões abertas.** Sessões esquecidas acumulam gates `stale` e bloqueiam relatórios de status do time.
|
|
57
|
+
|
|
58
|
+
### Workstreams paralelos
|
|
59
|
+
|
|
60
|
+
Para times trabalhando em features paralelas no mesmo repo:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
# Workstream A (feature de autenticação)
|
|
64
|
+
npx oxe-cc runtime workstream create --name auth --branch feature/auth-2fa
|
|
65
|
+
|
|
66
|
+
# Workstream B (feature de dashboard)
|
|
67
|
+
npx oxe-cc runtime workstream create --name dashboard --branch feature/dashboard-v2
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Cada workstream mantém STATE.md e gates separados. Use `npx oxe-cc status --workstream auth` para ver o estado de um workstream específico sem poluir a view padrão.
|
|
71
|
+
|
|
72
|
+
**Regra:** um workstream por feature branch. Nunca compartilhar um workstream entre duas features não relacionadas.
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Governança mínima
|
|
77
|
+
|
|
78
|
+
### Quando exigir `discuss_before_plan`
|
|
79
|
+
|
|
80
|
+
Ative quando a feature afeta:
|
|
81
|
+
- Contratos de API públicos ou schemas compartilhados
|
|
82
|
+
- Decisões de arquitetura que impactam outros times
|
|
83
|
+
- Mudanças em infraestrutura ou pipelines de CI/CD
|
|
84
|
+
|
|
85
|
+
```json
|
|
86
|
+
// .oxe/config.json
|
|
87
|
+
{
|
|
88
|
+
"governance": {
|
|
89
|
+
"discuss_before_plan": ["contracts/**", "infra/**", "*.schema.json"]
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Sem esse gate, o planner vai direto para PLAN.md sem esperar alinhamento.
|
|
95
|
+
|
|
96
|
+
### Quando ativar `strict`
|
|
97
|
+
|
|
98
|
+
Modo `strict` exige evidências formais para cada critério A* do SPEC antes de autorizar promoção. Use em:
|
|
99
|
+
- Releases com SLA de qualidade (produção, clientes enterprise)
|
|
100
|
+
- Features de segurança ou compliance
|
|
101
|
+
- Qualquer ciclo onde um reviewer externo vai auditar
|
|
102
|
+
|
|
103
|
+
```json
|
|
104
|
+
{
|
|
105
|
+
"verification": {
|
|
106
|
+
"strict": true
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Em modo `strict`, `runtime promote` falha se qualquer critério A* não tiver evidência verificada.
|
|
112
|
+
|
|
113
|
+
### Quando usar multi-agent
|
|
114
|
+
|
|
115
|
+
Use orquestração multi-agent (`/oxe-plan --multi-agent`) quando:
|
|
116
|
+
- A feature tem ondas independentes que podem ser paralelizadas
|
|
117
|
+
- Time tem múltiplos devs disponíveis para executar simultaneamente
|
|
118
|
+
- Tarefa de refactor em múltiplos módulos sem dependência entre eles
|
|
119
|
+
|
|
120
|
+
Não use multi-agent para:
|
|
121
|
+
- Features com dependências sequenciais fortes entre tarefas
|
|
122
|
+
- Mudanças em arquivos compartilhados (conflitos de merge)
|
|
123
|
+
- Ciclos onde um único dev vai executar tudo
|
|
124
|
+
|
|
125
|
+
### Quando não usar OXE
|
|
126
|
+
|
|
127
|
+
- Scripts one-off que não vão para produção
|
|
128
|
+
- Experimentos de < 30 minutos sem necessidade de rastreabilidade
|
|
129
|
+
- Mudanças em documentação pura (typos, formatação)
|
|
130
|
+
|
|
131
|
+
Para esses casos, trabalhe direto sem o ciclo spec→plan→execute→verify.
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## Checklist de integração para times novos
|
|
136
|
+
|
|
137
|
+
```
|
|
138
|
+
[ ] oxe-cc doctor retorna ✓ para todos os checks
|
|
139
|
+
[ ] .oxe/config.json criado com profile do time
|
|
140
|
+
[ ] Todos os devs têm o wrapper da IDE configurado (/oxe no Cursor, etc.)
|
|
141
|
+
[ ] Branch protection rule exige VERIFY.md antes de merge
|
|
142
|
+
[ ] Primeiro ciclo completo feito em pair programming
|
|
143
|
+
[ ] Operador de gate designado (quem aprova runtime gates)
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## Referências
|
|
149
|
+
|
|
150
|
+
- **Primeiros 15 minutos** → [`QUICKSTART.md`](../QUICKSTART.md)
|
|
151
|
+
- **Por papel** → [`docs/ROLES.md`](ROLES.md)
|
|
152
|
+
- **Exemplo completo** → [`docs/WALKTHROUGH.md`](WALKTHROUGH.md)
|
|
153
|
+
- **Incidentes e gates** → [`docs/INCIDENT-PLAYBOOK.md`](INCIDENT-PLAYBOOK.md)
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
# OXE — Walkthrough Reproduzível
|
|
2
|
+
|
|
3
|
+
> Feature: "Adicionar endpoint REST `GET /api/items` de listagem paginada"
|
|
4
|
+
>
|
|
5
|
+
> Tempo estimado: 20 minutos. Todos os comandos são reproduzíveis — copie e execute.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Pré-requisitos
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npx oxe-cc doctor
|
|
13
|
+
# ✓ Node 18+
|
|
14
|
+
# ✓ Workflows presentes
|
|
15
|
+
# ✓ Estrutura base .oxe/
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Se algum item falhar, siga o conselho exibido antes de continuar.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Passo 1 — Descobrir onde você está
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
/oxe
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
**Output esperado (projeto novo):**
|
|
29
|
+
```
|
|
30
|
+
Estado atual: init
|
|
31
|
+
Próximo passo recomendado: /oxe-scan
|
|
32
|
+
Motivo: nenhum mapeamento de codebase encontrado em .oxe/codebase/
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
**Artefato gerado:** nenhum (apenas diagnóstico)
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Passo 2 — Mapear o codebase
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
/oxe-scan
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
**Output esperado:**
|
|
46
|
+
```
|
|
47
|
+
Scan completo.
|
|
48
|
+
Arquivos mapeados: 47
|
|
49
|
+
Módulos detectados: routes/, controllers/, services/, tests/
|
|
50
|
+
Artefato: .oxe/codebase/map.json
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
**Artefato gerado:** `.oxe/codebase/map.json`
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Passo 3 — Gerar critérios de aceite
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
/oxe-spec
|
|
61
|
+
|
|
62
|
+
> Adicionar endpoint GET /api/items com paginação (page, limit). Retornar lista de items e metadados de paginação.
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**Output esperado:**
|
|
66
|
+
```
|
|
67
|
+
SPEC.md gerado.
|
|
68
|
+
Critérios A* (bloqueantes):
|
|
69
|
+
A1. GET /api/items retorna 200 com lista de items
|
|
70
|
+
A2. Parâmetros page e limit são aceitos e validados
|
|
71
|
+
A3. Resposta inclui { items: [...], total, page, limit }
|
|
72
|
+
A4. Testes de integração cobrem os 3 critérios acima
|
|
73
|
+
|
|
74
|
+
Critérios B (desejáveis):
|
|
75
|
+
B1. Cursor inválido retorna 400 com mensagem clara
|
|
76
|
+
B2. Documentação OpenAPI atualizada
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**Artefato gerado:** `.oxe/SPEC.md`
|
|
80
|
+
|
|
81
|
+
Revise os critérios. Se estiverem corretos, avance.
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## Passo 4 — Planejar a implementação
|
|
86
|
+
|
|
87
|
+
```
|
|
88
|
+
/oxe-plan
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
**Output esperado:**
|
|
92
|
+
```
|
|
93
|
+
PLAN.md gerado.
|
|
94
|
+
Onda 1 (obrigatória):
|
|
95
|
+
T1. Criar route GET /api/items em routes/items.js
|
|
96
|
+
T2. Implementar ItemsController.list() com paginação
|
|
97
|
+
T3. Implementar ItemsService.findPaginated(page, limit)
|
|
98
|
+
T4. Escrever testes de integração para os 3 critérios A*
|
|
99
|
+
|
|
100
|
+
Hipótese crítica: ItemsService tem acesso ao repositório de dados correto
|
|
101
|
+
Arquivos-alvo: routes/items.js, controllers/items.js, services/items.js, tests/items.test.js
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
**Artefato gerado:** `.oxe/PLAN.md`
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Passo 5 — Implementar
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
/oxe-execute
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
O executor vai implementar T1→T4 em sequência, marcando cada tarefa concluída.
|
|
115
|
+
|
|
116
|
+
**Output esperado ao final:**
|
|
117
|
+
```
|
|
118
|
+
Onda 1 completa.
|
|
119
|
+
T1 ✓ routes/items.js — route criada
|
|
120
|
+
T2 ✓ controllers/items.js — ItemsController.list() implementado
|
|
121
|
+
T3 ✓ services/items.js — ItemsService.findPaginated() implementado
|
|
122
|
+
T4 ✓ tests/items.test.js — 4 testes de integração passando
|
|
123
|
+
|
|
124
|
+
Estado: execute_complete
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
**Para executar uma tarefa específica:**
|
|
128
|
+
```
|
|
129
|
+
/oxe-execute --task T3
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## Passo 6 — Verificar
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
/oxe-verify
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
**Output esperado:**
|
|
141
|
+
```
|
|
142
|
+
Verificação completa.
|
|
143
|
+
|
|
144
|
+
A1 ✓ GET /api/items retorna 200 — evidência: tests/items.test.js:12
|
|
145
|
+
A2 ✓ Parâmetros page e limit validados — evidência: controllers/items.js:34
|
|
146
|
+
A3 ✓ Resposta inclui {items, total, page, limit} — evidência: controllers/items.js:41
|
|
147
|
+
A4 ✓ Testes cobrem A1–A3 — evidência: tests/items.test.js (4 testes)
|
|
148
|
+
|
|
149
|
+
Riscos residuais: nenhum
|
|
150
|
+
Estado: verify_complete
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
**Artefato gerado:** `.oxe/VERIFY.md`
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## Passo 7 — Gate de aprovação (opcional, runtime-first)
|
|
158
|
+
|
|
159
|
+
Se o projeto usa runtime gates:
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
npx oxe-cc runtime gates list --dir .
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
**Output esperado:**
|
|
166
|
+
```
|
|
167
|
+
Gates pendentes: 1
|
|
168
|
+
⏳ gate-001 tipo: verify_complete estado: pending
|
|
169
|
+
ação sugerida: approve
|
|
170
|
+
impacto: bloqueia promoção para pr_draft
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
Para aprovar:
|
|
174
|
+
```bash
|
|
175
|
+
npx oxe-cc runtime gates resolve --dir . --gate gate-001 --decision approve --actor "seu-nome"
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
**Output esperado:**
|
|
179
|
+
```
|
|
180
|
+
✓ Gate gate-001 aprovado.
|
|
181
|
+
Run pode avançar para promoção — nenhum gate restante.
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
## Passo 8 — Promover para PR draft
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
npx oxe-cc runtime promote --dir . --target pr_draft
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
**Output esperado:**
|
|
193
|
+
```
|
|
194
|
+
Promoção para pr_draft iniciada.
|
|
195
|
+
Branch: feature/items-endpoint
|
|
196
|
+
VERIFY.md incluído como evidência
|
|
197
|
+
PR draft criado: https://github.com/seu-org/repo/pull/42
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
## Estado final dos artefatos
|
|
203
|
+
|
|
204
|
+
```
|
|
205
|
+
.oxe/
|
|
206
|
+
├── STATE.md # fase: verify_complete (ou pr_draft após promote)
|
|
207
|
+
├── SPEC.md # critérios A1–A4 + B1–B2
|
|
208
|
+
├── PLAN.md # ondas e tarefas T1–T4
|
|
209
|
+
├── VERIFY.md # evidências para cada critério A*
|
|
210
|
+
└── codebase/
|
|
211
|
+
└── map.json # mapa do projeto
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
## Validação rápida
|
|
217
|
+
|
|
218
|
+
```bash
|
|
219
|
+
npx oxe-cc status
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
**Output esperado:**
|
|
223
|
+
```
|
|
224
|
+
Estado: verify_complete
|
|
225
|
+
Próximo passo: runtime promote --target pr_draft (ou abrir PR manualmente)
|
|
226
|
+
SPEC: 4 critérios A* — todos verificados
|
|
227
|
+
VERIFY.md: presente
|
|
228
|
+
Gates pendentes: 0
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
## Se algo der errado
|
|
234
|
+
|
|
235
|
+
| Sintoma | Comando |
|
|
236
|
+
|---------|---------|
|
|
237
|
+
| Travado em uma tarefa | `/oxe-debug` |
|
|
238
|
+
| Critério A* não verificado | `/oxe-verify` + revisar implementação |
|
|
239
|
+
| Gate stale (>24h) | Ver [`docs/INCIDENT-PLAYBOOK.md`](INCIDENT-PLAYBOOK.md) |
|
|
240
|
+
| Plano desatualizado | `/oxe-plan` novamente (sobrescreve PLAN.md) |
|
|
241
|
+
| Estado incoerente | `npx oxe-cc status --full` + `/oxe` para rediagnóstico |
|
|
@@ -17,6 +17,7 @@ export interface CoordinationOptions {
|
|
|
17
17
|
sessionId: string | null;
|
|
18
18
|
runId: string;
|
|
19
19
|
onEvent?: SchedulerContext['onEvent'];
|
|
20
|
+
heartbeatTimeoutMs?: number;
|
|
20
21
|
}
|
|
21
22
|
export interface ArbitrationRecord {
|
|
22
23
|
work_item_id: string;
|
|
@@ -48,12 +49,36 @@ export interface MultiAgentStatusSnapshot {
|
|
|
48
49
|
assigned_task_ids: string[];
|
|
49
50
|
completed: string[];
|
|
50
51
|
failed: string[];
|
|
52
|
+
timed_out: boolean;
|
|
53
|
+
reassigned_task_ids: string[];
|
|
51
54
|
}>;
|
|
52
55
|
orphan_reassignments: Array<{
|
|
53
56
|
from_agent_id: string;
|
|
54
57
|
to_agent_id: string;
|
|
55
58
|
work_item_ids: string[];
|
|
56
59
|
}>;
|
|
60
|
+
timed_out_agents: Array<{
|
|
61
|
+
agent_id: string;
|
|
62
|
+
work_item_ids: string[];
|
|
63
|
+
detected_at: string;
|
|
64
|
+
}>;
|
|
65
|
+
updated_at: string;
|
|
66
|
+
}
|
|
67
|
+
export interface MultiAgentOperationalSummary {
|
|
68
|
+
run_id: string;
|
|
69
|
+
mode: CoordinationMode;
|
|
70
|
+
workspace_isolation_enforced: boolean;
|
|
71
|
+
agent_count: number;
|
|
72
|
+
completed_count: number;
|
|
73
|
+
failed_count: number;
|
|
74
|
+
blocked_count: number;
|
|
75
|
+
ownership_count: number;
|
|
76
|
+
handoff_count: number;
|
|
77
|
+
arbitration_count: number;
|
|
78
|
+
orphan_reassignment_count: number;
|
|
79
|
+
timeout_count: number;
|
|
80
|
+
participating_agents: string[];
|
|
81
|
+
health: 'healthy' | 'degraded';
|
|
57
82
|
updated_at: string;
|
|
58
83
|
}
|
|
59
84
|
export interface CoordinationResult {
|
|
@@ -70,9 +95,12 @@ export interface CoordinationResult {
|
|
|
70
95
|
handoffs?: CooperativeHandoff[];
|
|
71
96
|
arbitration_results?: ArbitrationRecord[];
|
|
72
97
|
state?: MultiAgentStatusSnapshot;
|
|
98
|
+
summary?: MultiAgentOperationalSummary;
|
|
73
99
|
}
|
|
74
100
|
export declare class MultiAgentCoordinator {
|
|
75
101
|
run(graph: ExecutionGraph, opts: CoordinationOptions): Promise<CoordinationResult>;
|
|
76
102
|
}
|
|
77
103
|
export declare function multiAgentStatePath(projectRoot: string, runId: string): string;
|
|
104
|
+
export declare function multiAgentSummaryPath(projectRoot: string, runId: string): string;
|
|
78
105
|
export declare function loadMultiAgentState(projectRoot: string, runId: string): MultiAgentStatusSnapshot | null;
|
|
106
|
+
export declare function loadMultiAgentSummary(projectRoot: string, runId: string): MultiAgentOperationalSummary | null;
|