oxe-cc 1.7.0 → 1.8.3
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/CHANGELOG.md +106 -0
- package/README.md +37 -37
- package/bin/lib/oxe-agent-install.cjs +24 -8
- package/bin/lib/oxe-manifest.cjs +20 -13
- package/bin/lib/oxe-operational.cjs +234 -41
- package/bin/lib/oxe-project-health.cjs +219 -52
- package/bin/lib/oxe-rationality.cjs +9 -7
- package/bin/oxe-cc.js +443 -236
- package/lib/runtime/compiler/graph-compiler.js +1 -1
- package/lib/runtime/executor/action-tool-map.js +4 -0
- package/lib/runtime/executor/built-in-tools.js +27 -0
- package/lib/runtime/executor/llm-task-executor.d.ts +4 -1
- package/lib/runtime/executor/llm-task-executor.js +41 -5
- package/lib/runtime/executor/node-prompt-builder.d.ts +4 -1
- package/lib/runtime/executor/node-prompt-builder.js +13 -2
- package/lib/runtime/models/failure.d.ts +1 -1
- package/lib/runtime/scheduler/scheduler.d.ts +5 -1
- package/lib/runtime/scheduler/scheduler.js +82 -14
- package/lib/runtime/verification/verification-compiler.js +7 -5
- package/lib/sdk/index.cjs +48 -44
- package/oxe/templates/PLAN.template.md +23 -9
- package/oxe/templates/SPEC.template.md +55 -22
- package/oxe/workflows/plan.md +18 -6
- package/oxe/workflows/spec.md +31 -9
- package/package.json +103 -100
- package/packages/runtime/package.json +14 -14
- package/packages/runtime/src/compiler/graph-compiler.ts +1 -1
- package/packages/runtime/src/evidence/evidence-store.ts +2 -2
- package/packages/runtime/src/executor/action-tool-map.ts +4 -0
- package/packages/runtime/src/executor/built-in-tools.ts +29 -0
- package/packages/runtime/src/executor/llm-task-executor.ts +46 -4
- package/packages/runtime/src/executor/node-prompt-builder.ts +18 -1
- package/packages/runtime/src/models/failure.ts +2 -0
- package/packages/runtime/src/scheduler/scheduler.ts +93 -15
- package/packages/runtime/src/verification/verification-compiler.ts +7 -5
- package/vscode-extension/package.json +184 -184
- package/vscode-extension/oxe-agents-0.9.1.vsix +0 -0
- package/vscode-extension/oxe-agents-0.9.2.vsix +0 -0
- package/vscode-extension/oxe-agents-1.0.0.vsix +0 -0
- package/vscode-extension/oxe-agents-1.4.0.vsix +0 -0
- package/vscode-extension/oxe-agents-1.5.0.vsix +0 -0
- package/vscode-extension/oxe-agents-1.5.1.vsix +0 -0
- package/vscode-extension/oxe-agents-1.6.0.vsix +0 -0
- package/vscode-extension/oxe-agents-1.7.0.vsix +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,112 @@ Todas as versões seguem [Semantic Versioning](https://semver.org/). As mudança
|
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
## [1.8.3] — 2026-05-04
|
|
8
|
+
|
|
9
|
+
### Release readiness e higiene de publicação
|
|
10
|
+
|
|
11
|
+
Esta release consolida a linha `1.8.3` para publicação no npm com foco em consistência de versão, alinhamento documental e pacote distribuído mais limpo.
|
|
12
|
+
|
|
13
|
+
#### Publicação
|
|
14
|
+
|
|
15
|
+
- alinhamento da versão `1.8.3` entre manifesto raiz, runtime, extensão VS Code, README e changelog
|
|
16
|
+
- fechamento do gate oficial `doctor --release` para a linha atual
|
|
17
|
+
- preparação do pacote npm para sair sem drift entre versão publicada e documentação principal
|
|
18
|
+
|
|
19
|
+
#### Higiene do pacote
|
|
20
|
+
|
|
21
|
+
- exclusão dos arquivos `.vsix` históricos da extensão VS Code do tarball npm
|
|
22
|
+
- manutenção apenas do código-fonte da extensão dentro do pacote, evitando distribuir binários legados desnecessários
|
|
23
|
+
|
|
24
|
+
## [1.8.2] — 2026-04-30
|
|
25
|
+
|
|
26
|
+
### Fluxo inicial mais coerente e geração de `spec`/`plan` mais forte
|
|
27
|
+
|
|
28
|
+
Esta release fecha a linha de robustez do ciclo `install -> status/doctor -> /oxe -> spec -> plan -> execute -> verify` sem abrir nova superfície pública. O foco foi remover ruído operacional em projetos novos e aumentar a densidade executável dos artefatos que o OXE induz.
|
|
29
|
+
|
|
30
|
+
#### Fluxo operacional
|
|
31
|
+
|
|
32
|
+
- `install`, `status` e `doctor` passam a convergir em `/oxe` como próximo passo canônico para projetos recém-inicializados
|
|
33
|
+
- `doctor` e `status` deixam de tratar `IMPLEMENTATION-PACK`, `REFERENCE-ANCHORS` e `FIXTURE-PACK` como blocker primário antes de existir `PLAN.md`
|
|
34
|
+
- o relatório racional agora marca o estado sem plano como `não aplicável ainda`, sem contaminar o próximo passo
|
|
35
|
+
- instalações e desinstalações locais por runtime continuam simétricas, com inferência de artefatos locais preservada
|
|
36
|
+
|
|
37
|
+
#### Indução mais forte de SPEC e PLAN
|
|
38
|
+
|
|
39
|
+
- `SPEC.template.md` passou a exigir outcome observável, público-alvo, restrições técnicas, setup externo, conteúdo/fluxos obrigatórios e contratos esperados para o plano
|
|
40
|
+
- `PLAN.template.md` ganhou contrato operacional da solução, densidade operacional mínima, `symbols alvo`, `estado/fluxo coberto` e `fixture/anchor obrigatório` por tarefa
|
|
41
|
+
- `oxe/workflows/spec.md` agora força extração explícita de blocos de interface, conteúdo mínimo, interações, responsividade e acessibilidade em demandas de produto/app/UI
|
|
42
|
+
- `oxe/workflows/plan.md` agora endurece o gate de confiança `>90%` para tarefas mutáveis vagas e exige fechamento mais forte de interface, conteúdo, estado persistido, anchors e fixtures em apps/UI estáticos
|
|
43
|
+
|
|
44
|
+
#### Testes
|
|
45
|
+
|
|
46
|
+
- novo teste cobrindo o estado racional não bloqueante antes da existência de `PLAN.md`
|
|
47
|
+
- suíte focada de CLI/health atualizada para manter o comportamento novo estável
|
|
48
|
+
|
|
49
|
+
## [1.8.1] — 2026-04-30
|
|
50
|
+
|
|
51
|
+
### Hotfix — Gaps implementados no fonte TypeScript (não em arquivos compilados)
|
|
52
|
+
|
|
53
|
+
A v1.8.0 aplicou as 5 correções críticas diretamente nos arquivos `.js` compilados (`lib/runtime/`), que são sobrescritos a cada `npm run build:runtime`. Esta release porta todas as correções para o fonte TypeScript em `packages/runtime/src/`, tornando-as permanentes.
|
|
54
|
+
|
|
55
|
+
#### Correções portadas para TypeScript
|
|
56
|
+
|
|
57
|
+
- **`models/failure.ts`**: `FailureClass` agora inclui `'verify'` e `'llm'` como classes canônicas
|
|
58
|
+
- **`scheduler/scheduler.ts`**: `TaskResult` com campo opcional `completed_by`; `TaskExecutor.execute()` aceita `options?: { previousError? }`; `verifyNode()` importa e chama `verifyRun` da fonte TS; `executeNode()` repassa `options`; `requestGateForNode()` com warning quando manager ausente
|
|
59
|
+
- **`executor/built-in-tools.ts`**: `finishTask` handler + registro em `BUILT_IN_TOOLS`
|
|
60
|
+
- **`executor/action-tool-map.ts`**: `finish_task` injetado universalmente em `selectToolsForActions()`
|
|
61
|
+
- **`executor/node-prompt-builder.ts`**: parâmetro `options`, seção de retry context, instrução `finish_task`
|
|
62
|
+
- **`executor/llm-task-executor.ts`**: detecção de `finish_task`, `completed_by` no retorno, `turn_limit_exhausted` retorna `success: false`
|
|
63
|
+
|
|
64
|
+
#### Testes
|
|
65
|
+
- 542 testes passando (era 542 na v1.8.0, nenhuma regressão)
|
|
66
|
+
- 36 testes de gaps (gap1–gap5) todos passando contra o código compilado
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## [1.8.0] — 2026-04-29
|
|
71
|
+
|
|
72
|
+
### Autonomous Execution — 5 Critical Gaps Resolved
|
|
73
|
+
|
|
74
|
+
Esta release eleva a autonomia do runtime de ~65% para ~85%+ em projetos de baixo a médio risco, tornando o OXE capaz de transformar um input bem estruturado em entrega verificada com mínima intervenção humana.
|
|
75
|
+
|
|
76
|
+
#### Gap 1 — GateManager Wiring
|
|
77
|
+
- `createExecutionContext()` exportada de `oxe-operational.cjs`: instancia `GateManager` real sempre que o runtime estiver disponível, eliminando o deadlock silencioso de `'gate-missing-manager'`
|
|
78
|
+
- `scheduler.js`: warning explícito quando `ctx.gateManager` ausente em vez de falha silenciosa
|
|
79
|
+
- Novo subcomando `oxe-cc runtime execute` com roteamento automático single-agent / multi-agent
|
|
80
|
+
|
|
81
|
+
#### Gap 2 — Verificação Inline após cada tarefa
|
|
82
|
+
- `Scheduler.verifyNode()`: executa o `verify.command` do nó logo após execução bem-sucedida, antes de emitir `WorkItemCompleted`
|
|
83
|
+
- Falha de verificação → tarefa reentrada no loop de retry com `failure_class: 'verify'`
|
|
84
|
+
- Falha de infraestrutura de verificação (comando inexistente, timeout) → não bloqueia progresso
|
|
85
|
+
- Eventos `VerificationStarted` / `VerificationCompleted` emitidos por tarefa (reducer já existia)
|
|
86
|
+
|
|
87
|
+
#### Gap 3 — Retry Inteligente com Contexto do Erro Anterior
|
|
88
|
+
- `node-prompt-builder.js`: seção "Contexto da tentativa anterior" injetada automaticamente nas tentativas 2+ com stderr/output truncado em 2000 chars
|
|
89
|
+
- `llm-task-executor.js`: aceita `options.previousError`; repassado para o prompt builder
|
|
90
|
+
- `scheduler.js`: `lastError` rastreado e propagado entre tentativas via `executeNode(options)`
|
|
91
|
+
|
|
92
|
+
#### Gap 4 — Sinal Autoritativo de Conclusão (`finish_task`)
|
|
93
|
+
- Nova tool built-in `finish_task` (idempotente) registrada em `BUILT_IN_TOOLS` e `ALL_BUILT_IN_SCHEMAS`
|
|
94
|
+
- `selectToolsForActions()`: `finish_task` injetada universalmente em todos os tipos de ação
|
|
95
|
+
- `node-prompt-builder.js`: instrução explícita de chamar `finish_task` ao concluir
|
|
96
|
+
- `llm-task-executor.js`: detecta chamada de `finish_task` → `completed_by: 'finish_task'`; turns esgotados sem `finish_task` → `success: false, failure_class: 'llm'`
|
|
97
|
+
|
|
98
|
+
#### Gap 5 — MultiAgentCoordinator Wiring
|
|
99
|
+
- `runRuntimeExecute()` exportada de `oxe-operational.cjs`: detecta `plan-agents.json` (sessão > raiz) e roteia para `MultiAgentCoordinator` (parallel/competitive/cooperative) ou `Scheduler` single-agent
|
|
100
|
+
- `oxe-cc runtime execute`: novo subcomando CLI com output formatado e exit code em falhas
|
|
101
|
+
|
|
102
|
+
#### Testes
|
|
103
|
+
- 5 novos arquivos de teste cobrindo cada gap: `gap1-gate-manager`, `gap2-inline-verify`, `gap3-retry-context`, `gap4-finish-task`, `gap5-multi-agent`
|
|
104
|
+
- Suite total: **543 testes passando**, 0 falhas
|
|
105
|
+
|
|
106
|
+
### Validation
|
|
107
|
+
|
|
108
|
+
- `node --test tests/*.cjs tests/*.test.js`
|
|
109
|
+
- `node bin/oxe-cc.js --version`
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
7
113
|
## [1.7.0] — 2026-04-23
|
|
8
114
|
|
|
9
115
|
### OXE-native Agent Catalog
|
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
[](https://www.npmjs.com/package/oxe-cc)
|
|
8
8
|
[](LICENSE)
|
|
9
9
|
|
|
10
|
-
**Versão:** `1.
|
|
10
|
+
**Versão:** `1.8.3` · [package.json](package.json)
|
|
11
11
|
|
|
12
12
|
**Framework OXE — Orchestrated eXperience Engineering**
|
|
13
13
|
|
|
@@ -52,7 +52,7 @@ O OXE agora distingue cinco famílias de raciocínio:
|
|
|
52
52
|
- `review` — findings primeiro, severidade, evidência e risco residual
|
|
53
53
|
- `status` — leitura curta do estado, recomendação única e motivo
|
|
54
54
|
|
|
55
|
-
Essas regras vivem no núcleo canónico em `oxe/workflows/references/reasoning-*.md`, sobem para os workflows em `oxe/workflows/` e são renderizadas para cada runtime em `.github/prompts/`, `.cursor/commands/`, `commands/oxe/`, `.codex/prompts/` e skills multiagente. Agentes especializados vivem em `oxe/agents/` e são instalados como agentes/skills OXE-native quando o runtime suporta esse conceito. Nesta linha, `oxe/workflows/**`, `oxe/agents/**` e `workflow-runtime-contracts.json` são contratos obrigatórios da release; superfícies geradas permanecem derivadas e sincronizadas.
|
|
55
|
+
Essas regras vivem no núcleo canónico em `oxe/workflows/references/reasoning-*.md`, sobem para os workflows em `oxe/workflows/` e são renderizadas para cada runtime em `.github/prompts/`, `.cursor/commands/`, `commands/oxe/`, `.codex/prompts/` e skills multiagente. Agentes especializados vivem em `oxe/agents/` e são instalados como agentes/skills OXE-native quando o runtime suporta esse conceito. Nesta linha, `oxe/workflows/**`, `oxe/agents/**` e `workflow-runtime-contracts.json` são contratos obrigatórios da release; superfícies geradas permanecem derivadas e sincronizadas.
|
|
56
56
|
|
|
57
57
|
---
|
|
58
58
|
|
|
@@ -94,10 +94,10 @@ Contrato estável desta release:
|
|
|
94
94
|
| Primeiros 15 minutos | [QUICKSTART.md](QUICKSTART.md) |
|
|
95
95
|
| Guia por papel (executor / reviewer / operador) | [docs/ROLES.md](docs/ROLES.md) |
|
|
96
96
|
| Fluxo recomendado para times | [docs/TEAM-ADOPTION.md](docs/TEAM-ADOPTION.md) |
|
|
97
|
-
| Exemplo completo reproduzível | [docs/WALKTHROUGH.md](docs/WALKTHROUGH.md) |
|
|
98
|
-
| Incidentes e gates | [docs/INCIDENT-PLAYBOOK.md](docs/INCIDENT-PLAYBOOK.md) |
|
|
99
|
-
| Suporte por runtime (Cursor, Copilot, Claude Code…) | [docs/RUNTIME-SMOKE-MATRIX.md](docs/RUNTIME-SMOKE-MATRIX.md) |
|
|
100
|
-
| Release readiness e publicação | [docs/RELEASE-READINESS.md](docs/RELEASE-READINESS.md) |
|
|
97
|
+
| Exemplo completo reproduzível | [docs/WALKTHROUGH.md](docs/WALKTHROUGH.md) |
|
|
98
|
+
| Incidentes e gates | [docs/INCIDENT-PLAYBOOK.md](docs/INCIDENT-PLAYBOOK.md) |
|
|
99
|
+
| Suporte por runtime (Cursor, Copilot, Claude Code…) | [docs/RUNTIME-SMOKE-MATRIX.md](docs/RUNTIME-SMOKE-MATRIX.md) |
|
|
100
|
+
| Release readiness e publicação | [docs/RELEASE-READINESS.md](docs/RELEASE-READINESS.md) |
|
|
101
101
|
|
|
102
102
|
---
|
|
103
103
|
|
|
@@ -459,18 +459,18 @@ O `status --full` mostra em ANSI: readiness do ciclo, autoavaliação do plano,
|
|
|
459
459
|
|
|
460
460
|
O pacote está pronto para uma publicação robusta quando estes sinais estiverem verdes no repositório da release:
|
|
461
461
|
|
|
462
|
-
- `npm test`
|
|
463
|
-
- `npm run scan:assets`
|
|
464
|
-
- `npm run build:vscode-ext`
|
|
465
|
-
- `node bin/oxe-cc.js doctor --release --write-manifest`
|
|
466
|
-
- `node bin/oxe-cc.js status --full`
|
|
467
|
-
|
|
468
|
-
Artefatos obrigatórios desta fase:
|
|
469
|
-
|
|
470
|
-
- `.oxe/release/release-manifest.json`
|
|
471
|
-
- `.oxe/release/runtime-smoke-report.json`
|
|
472
|
-
- `.oxe/release/recovery-fixture-report.json`
|
|
473
|
-
- `.oxe/release/multi-agent-soak-report.json`
|
|
462
|
+
- `npm test`
|
|
463
|
+
- `npm run scan:assets`
|
|
464
|
+
- `npm run build:vscode-ext`
|
|
465
|
+
- `node bin/oxe-cc.js doctor --release --write-manifest`
|
|
466
|
+
- `node bin/oxe-cc.js status --full`
|
|
467
|
+
|
|
468
|
+
Artefatos obrigatórios desta fase:
|
|
469
|
+
|
|
470
|
+
- `.oxe/release/release-manifest.json`
|
|
471
|
+
- `.oxe/release/runtime-smoke-report.json`
|
|
472
|
+
- `.oxe/release/recovery-fixture-report.json`
|
|
473
|
+
- `.oxe/release/multi-agent-soak-report.json`
|
|
474
474
|
|
|
475
475
|
Não há outro bloqueador funcional do plano runtime core para esta publicação. O que sobra depois dela é evolução de ergonomia e expansão de targets, não correção estrutural do contrato atual.
|
|
476
476
|
|
|
@@ -522,23 +522,23 @@ npx oxe-cc@latest
|
|
|
522
522
|
| Flag | Efeito |
|
|
523
523
|
|------|--------|
|
|
524
524
|
| `--cursor` / `--copilot` | Só uma das stacks da IDE |
|
|
525
|
-
| `--copilot-cli` | Skills globais do Copilot CLI em `~/.copilot/skills/` |
|
|
526
|
-
| `--all-agents` | Cursor + Copilot + Claude + OpenCode + Gemini + Codex + Windsurf + Antigravity |
|
|
527
|
-
| `--global` | Layout clássico: `oxe/` na raiz + `.oxe/` |
|
|
528
|
-
| `--local` | Layout do repositório: mínimo, só `.oxe/` (padrão). Não controla onde a integração da IDE é instalada. |
|
|
529
|
-
| `--ide-local` | Instala a integração no próprio repositório (`.cursor/`, `.github/`, `.claude/`, `.codex/` etc.) |
|
|
530
|
-
| `--ide-global` | Instala a integração no HOME do utilizador quando o runtime suportar esse escopo |
|
|
531
|
-
| `--force` / `-f` | Sobrescreve arquivos existentes (use para atualizar) |
|
|
532
|
-
| `--dry-run` | Lista ações sem escrever |
|
|
533
|
-
| `--oxe-only` | Só workflows em `.oxe/`, sem integrações IDE |
|
|
534
|
-
| `--no-global-cli` / `-l` | Não instala `oxe-cc` globalmente (útil em CI) |
|
|
525
|
+
| `--copilot-cli` | Skills globais do Copilot CLI em `~/.copilot/skills/` |
|
|
526
|
+
| `--all-agents` | Cursor + Copilot + Claude + OpenCode + Gemini + Codex + Windsurf + Antigravity |
|
|
527
|
+
| `--global` | Layout clássico: `oxe/` na raiz + `.oxe/` |
|
|
528
|
+
| `--local` | Layout do repositório: mínimo, só `.oxe/` (padrão). Não controla onde a integração da IDE é instalada. |
|
|
529
|
+
| `--ide-local` | Instala a integração no próprio repositório (`.cursor/`, `.github/`, `.claude/`, `.codex/` etc.) |
|
|
530
|
+
| `--ide-global` | Instala a integração no HOME do utilizador quando o runtime suportar esse escopo |
|
|
531
|
+
| `--force` / `-f` | Sobrescreve arquivos existentes (use para atualizar) |
|
|
532
|
+
| `--dry-run` | Lista ações sem escrever |
|
|
533
|
+
| `--oxe-only` | Só workflows em `.oxe/`, sem integrações IDE |
|
|
534
|
+
| `--no-global-cli` / `-l` | Não instala `oxe-cc` globalmente (útil em CI) |
|
|
535
535
|
| `OXE_NO_PROMPT=1` | Modo não-interativo (CI) |
|
|
536
536
|
|
|
537
537
|
</details>
|
|
538
538
|
|
|
539
|
-
GitHub Copilot no VS Code é **workspace-first**: o OXE instala prompt files em `.github/prompts/*.prompt.md` e mescla instruções em `.github/copilot-instructions.md`. `~/.copilot/` fica reservado ao legado detectável e ao runtime do Copilot CLI.
|
|
540
|
-
|
|
541
|
-
Claude Code recebe comandos em `.claude/commands` e agentes especializados em `.claude/agents`. Codex recebe prompts em `.codex/prompts` e skills OXE em `.agents/skills`, incluindo os agentes especializados derivados de `oxe/agents/`.
|
|
539
|
+
GitHub Copilot no VS Code é **workspace-first**: o OXE instala prompt files em `.github/prompts/*.prompt.md` e mescla instruções em `.github/copilot-instructions.md`. `~/.copilot/` fica reservado ao legado detectável e ao runtime do Copilot CLI.
|
|
540
|
+
|
|
541
|
+
Claude Code recebe comandos em `.claude/commands` e agentes especializados em `.claude/agents`. Codex recebe prompts em `.codex/prompts` e skills OXE em `.agents/skills`, incluindo os agentes especializados derivados de `oxe/agents/`.
|
|
542
542
|
|
|
543
543
|
<details>
|
|
544
544
|
<summary><strong>Atualizar e desinstalar</strong></summary>
|
|
@@ -571,11 +571,11 @@ node bin/oxe-cc.js --help
|
|
|
571
571
|
| Comando | O que faz |
|
|
572
572
|
|---------|-----------|
|
|
573
573
|
| `oxe-cc` / `oxe-cc install` | Instala workflows e integrações |
|
|
574
|
-
| `oxe-cc doctor` | Diagnóstico completo: Node, workflows, config, bootstrap `.oxe/`, sessão ativa, autoavaliação do plano, saúde lógica (`healthy` \| `warning` \| `broken`), drift semântico multi-runtime e workflows sem contrato no registry |
|
|
575
|
-
| `oxe-cc doctor --release --write-manifest` | Gate de publicação: valida árvore canónica `oxe/`, `workflow-runtime-contracts.json`, versões, topo do `CHANGELOG`, runtime compilado, wrapper sync e relatórios obrigatórios; persiste `release-manifest.json` |
|
|
576
|
-
| `oxe-cc status` | Próximo passo sugerido + saúde lógica do fluxo |
|
|
577
|
-
| `oxe-cc status --full` | Coverage matrix + readiness gate + active run no terminal (ANSI); em repositório do pacote, troca para release readiness em vez de plan readiness |
|
|
578
|
-
| `oxe-cc status --json` | Mesmo, em JSON (schema v5), com `workspaceMode`, `releaseReadiness`, `healthStatus`, `activeSession`, `planSelfEvaluation`, `contextPacks`, `contextQuality`, `semanticsDrift`, `verificationSummary`, `residualRiskSummary`, `evidenceCoverage`, `pendingGates`, `policyDecisionSummary`, `quotaSummary`, `auditSummary`, `promotionSummary`, `runtimeMode`, `fallbackMode`, `gateQueue`, `policyCoverage`, `promotionReadiness`, `recoveryState`, `multiAgent` e `providerCatalog` |
|
|
574
|
+
| `oxe-cc doctor` | Diagnóstico completo: Node, workflows, config, bootstrap `.oxe/`, sessão ativa, autoavaliação do plano, saúde lógica (`healthy` \| `warning` \| `broken`), drift semântico multi-runtime e workflows sem contrato no registry |
|
|
575
|
+
| `oxe-cc doctor --release --write-manifest` | Gate de publicação: valida árvore canónica `oxe/`, `workflow-runtime-contracts.json`, versões, topo do `CHANGELOG`, runtime compilado, wrapper sync e relatórios obrigatórios; persiste `release-manifest.json` |
|
|
576
|
+
| `oxe-cc status` | Próximo passo sugerido + saúde lógica do fluxo |
|
|
577
|
+
| `oxe-cc status --full` | Coverage matrix + readiness gate + active run no terminal (ANSI); em repositório do pacote, troca para release readiness em vez de plan readiness |
|
|
578
|
+
| `oxe-cc status --json` | Mesmo, em JSON (schema v5), com `workspaceMode`, `releaseReadiness`, `healthStatus`, `activeSession`, `planSelfEvaluation`, `contextPacks`, `contextQuality`, `semanticsDrift`, `verificationSummary`, `residualRiskSummary`, `evidenceCoverage`, `pendingGates`, `policyDecisionSummary`, `quotaSummary`, `auditSummary`, `promotionSummary`, `runtimeMode`, `fallbackMode`, `gateQueue`, `policyCoverage`, `promotionReadiness`, `recoveryState`, `multiAgent` e `providerCatalog` |
|
|
579
579
|
| `oxe-cc context build [--workflow <slug>] [--tier <minimal\|standard\|full>]` | Gera context pack(s) em `.oxe/context/packs/` — seleção determinística de artefatos por contrato de workflow |
|
|
580
580
|
| `oxe-cc context inspect [--workflow <slug>]` | Inspeciona um context pack existente ou resolve sob demanda (sem escrita); útil para diagnóstico antes de iniciar um passo |
|
|
581
581
|
| `oxe-cc update` | Atualiza workflows para a versão mais recente |
|
|
@@ -603,7 +603,7 @@ Arquivo `.oxe/config.json`. Principais opções:
|
|
|
603
603
|
|-------|--------|-----------|
|
|
604
604
|
| `profile` | `"balanced"` | `strict` / `balanced` / `fast` / `legacy` |
|
|
605
605
|
| `verification_depth` | `"standard"` | `"thorough"` ativa gaps automático no verify (Camada 5) |
|
|
606
|
-
| `plan_confidence_threshold` | `90` | Limiar canónico para `execute` aceitar um `PLAN.md`; a confiança precisa ser **maior que** esse valor |
|
|
606
|
+
| `plan_confidence_threshold` | `90` | Limiar canónico para `execute` aceitar um `PLAN.md`; a confiança precisa ser **maior que** esse valor |
|
|
607
607
|
| `security_in_verify` | `false` | `true` ativa OWASP automático no verify (Camada 6) |
|
|
608
608
|
| `discuss_before_plan` | `false` | Exige aprovação de decisões antes do plano |
|
|
609
609
|
| `scale_adaptive` | `true` | Scan sugere o profile pelo tamanho do projeto |
|
|
@@ -95,14 +95,30 @@ function parseCursorCommandFrontmatter(text) {
|
|
|
95
95
|
if (end === -1) {
|
|
96
96
|
return { description: '', body: normalized.trim(), frontmatter: {} };
|
|
97
97
|
}
|
|
98
|
-
const yamlBlock = normalized.slice(4, end);
|
|
99
|
-
const frontmatter = {};
|
|
100
|
-
let description = '';
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
98
|
+
const yamlBlock = normalized.slice(4, end);
|
|
99
|
+
const frontmatter = {};
|
|
100
|
+
let description = '';
|
|
101
|
+
const yamlLines = yamlBlock.split('\n');
|
|
102
|
+
for (let i = 0; i < yamlLines.length; i++) {
|
|
103
|
+
const line = yamlLines[i];
|
|
104
|
+
const foldedDescription = line.match(/^description:\s*[>|]\s*$/);
|
|
105
|
+
if (foldedDescription) {
|
|
106
|
+
const parts = [];
|
|
107
|
+
let j = i + 1;
|
|
108
|
+
while (j < yamlLines.length && /^\s+/.test(yamlLines[j])) {
|
|
109
|
+
const value = yamlLines[j].trim();
|
|
110
|
+
if (value) parts.push(value);
|
|
111
|
+
j += 1;
|
|
112
|
+
}
|
|
113
|
+
description = parts.join(' ').trim();
|
|
114
|
+
frontmatter.description = description;
|
|
115
|
+
i = j - 1;
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
118
|
+
const m = line.match(/^description:\s*(.+)$/);
|
|
119
|
+
if (m) {
|
|
120
|
+
description = m[1].trim().replace(/^["']|["']$/g, '');
|
|
121
|
+
}
|
|
106
122
|
const kv = line.match(/^([A-Za-z0-9_-]+):\s*(.+)$/);
|
|
107
123
|
if (kv) frontmatter[kv[1]] = kv[2].trim().replace(/^["']|["']$/g, '');
|
|
108
124
|
}
|
package/bin/lib/oxe-manifest.cjs
CHANGED
|
@@ -51,19 +51,26 @@ function writeFileManifest(home, files, version) {
|
|
|
51
51
|
* Before overwriting with --force, backup files that diverged from last manifest.
|
|
52
52
|
* @param {string} home
|
|
53
53
|
* @param {Record<string, string>} prevManifest
|
|
54
|
-
* @param {{ dryRun: boolean, force: boolean }} opts
|
|
55
|
-
* @param {{ yellow: string, cyan: string, dim: string, reset: string }} colors
|
|
56
|
-
* @
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
54
|
+
* @param {{ dryRun: boolean, force: boolean }} opts
|
|
55
|
+
* @param {{ yellow: string, cyan: string, dim: string, reset: string }} colors
|
|
56
|
+
* @param {{ scopeRoots?: string[] }} [scope]
|
|
57
|
+
* @returns {string[]} modified paths
|
|
58
|
+
*/
|
|
59
|
+
function backupModifiedFromManifest(home, prevManifest, opts, colors, scope = {}) {
|
|
60
|
+
const { yellow, cyan, dim, reset } = colors;
|
|
61
|
+
if (!opts.force || opts.dryRun) return [];
|
|
62
|
+
const normalizedRoots = Array.isArray(scope.scopeRoots)
|
|
63
|
+
? scope.scopeRoots.map((root) => path.resolve(root))
|
|
64
|
+
: [];
|
|
65
|
+
const modified = [];
|
|
66
|
+
for (const [absPath, oldHash] of Object.entries(prevManifest)) {
|
|
67
|
+
if (normalizedRoots.length > 0 && !normalizedRoots.some((root) => absPath === root || absPath.startsWith(`${root}${path.sep}`))) {
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
if (!fs.existsSync(absPath)) continue;
|
|
71
|
+
let now;
|
|
72
|
+
try {
|
|
73
|
+
now = sha256File(absPath);
|
|
67
74
|
} catch {
|
|
68
75
|
continue;
|
|
69
76
|
}
|