oxe-cc 1.8.0 → 1.9.1
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/AGENTS.md +1 -1
- package/CHANGELOG.md +94 -0
- package/README.md +15 -12
- package/bin/lib/oxe-manifest.cjs +20 -13
- package/bin/lib/oxe-operational.cjs +305 -79
- package/bin/lib/oxe-project-health.cjs +79 -18
- package/bin/lib/oxe-rationality.cjs +9 -7
- package/bin/lib/oxe-release.cjs +26 -0
- package/bin/oxe-cc.js +224 -52
- package/docs/RELEASE-READINESS.md +6 -1
- 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/multi-agent-coordinator.d.ts +39 -0
- package/lib/runtime/scheduler/multi-agent-coordinator.js +222 -13
- 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/runtime/workspace/strategies/git-worktree.js +18 -9
- 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 +106 -100
- package/packages/runtime/package.json +18 -18
- 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/multi-agent-coordinator.ts +320 -46
- package/packages/runtime/src/scheduler/scheduler.ts +93 -15
- package/packages/runtime/src/verification/verification-compiler.ts +7 -5
- package/packages/runtime/src/workspace/strategies/git-worktree.ts +24 -16
- package/vscode-extension/package.json +185 -185
- 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/vscode-extension/oxe-agents-1.8.0.vsix +0 -0
package/AGENTS.md
CHANGED
|
@@ -99,4 +99,4 @@ Os wrappers por runtime podem carregar metadata cognitiva (`oxe_reasoning_mode`,
|
|
|
99
99
|
|
|
100
100
|
Para `execute` e `verify`, o comportamento atual esperado é **runtime-first**: se `oxe-cc runtime` estiver disponível, preferir `runtime compile/project/verify/gates` e tratar markdown como projeção derivada; se o runtime não puder ser executado, declarar `fallback legado` explicitamente.
|
|
101
101
|
|
|
102
|
-
Para publicação, o gate local esperado passa por `oxe-cc doctor --release --write-manifest`. Essa verificação deve falhar se houver drift de versão, topo inválido no `CHANGELOG`, ausência da árvore canónica `oxe/`, `workflow-runtime-contracts.json` inválido, wrapper dirty após sync, runtime não compilado ou ausência dos relatórios `.oxe/release/*.json` exigidos pela release.
|
|
102
|
+
Para publicação, o gate local esperado passa por `npm test`, `npm run release:pack-check` e `oxe-cc doctor --release --write-manifest`. Essa verificação deve falhar se houver drift de versão, topo inválido no `CHANGELOG`, ausência da árvore canónica `oxe/`, `workflow-runtime-contracts.json` inválido, wrapper dirty após sync, runtime não compilado, pacote npm com artefatos indevidos ou ausência dos relatórios `.oxe/release/*.json` exigidos pela release, incluindo `runtime-real-report.json` e, a partir da `1.9.1`, `multi-agent-real-report.json`.
|
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,100 @@ Todas as versões seguem [Semantic Versioning](https://semver.org/). As mudança
|
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
## [1.9.1] — 2026-05-04
|
|
8
|
+
|
|
9
|
+
### Multi-Agent Real
|
|
10
|
+
|
|
11
|
+
Esta release endurece a coordenação multi-agent sobre workspaces reais, sem abrir novos comandos públicos.
|
|
12
|
+
|
|
13
|
+
- multi-agent real passa a exigir workspaces isolados `git_worktree` para modos `parallel`, `competitive` e `cooperative`
|
|
14
|
+
- `runtime execute` valida `plan-agents.json` antes de iniciar agentes e usa `GitWorktreeManager` por padrão no caminho multi-agent
|
|
15
|
+
- novo artefato por run `.oxe/runs/<run_id>/workspace-merge-report.json` com worktrees, ownership, merge blockers e readiness
|
|
16
|
+
- `runtime agents status --json`, `status --json` e recovery passam a expor merge readiness, blockers, arbitration e worktrees órfãos
|
|
17
|
+
- novo `npm run test:multi-agent-real` gera `.oxe/release/multi-agent-real-report.json` usando repositório git temporário com worktrees reais
|
|
18
|
+
- `doctor --release` passa a exigir `multi-agent-real-report.json` em versões `>=1.9.1`
|
|
19
|
+
|
|
20
|
+
## [1.9.0] — 2026-05-04
|
|
21
|
+
|
|
22
|
+
### Runtime Real Maturity
|
|
23
|
+
|
|
24
|
+
Esta release eleva a maturidade prática do OXE com foco em prova determinística do ciclo real `spec -> plan -> execute -> verify -> status/doctor`, sem abrir novos comandos públicos.
|
|
25
|
+
|
|
26
|
+
#### Runtime real
|
|
27
|
+
|
|
28
|
+
- nova suíte `test:runtime-real` valida projetos representativos com executor mockado e sem chamada a LLM/API externa
|
|
29
|
+
- `runtime execute` passa a bloquear antes da mutação quando confiança, rationality packs ou gates não estão prontos
|
|
30
|
+
- `runtime verify` continua evidence-first e passa a ser validado dentro do fluxo real de execução
|
|
31
|
+
|
|
32
|
+
#### Release proof
|
|
33
|
+
|
|
34
|
+
- novo relatório obrigatório `.oxe/release/runtime-real-report.json`
|
|
35
|
+
- `doctor --release` passa a bloquear publicação quando a prova de runtime real estiver ausente ou falha
|
|
36
|
+
- novo `release:pack-check` valida o tarball npm em dry-run contra artefatos indevidos
|
|
37
|
+
|
|
38
|
+
## [1.8.3] — 2026-05-04
|
|
39
|
+
|
|
40
|
+
### Release readiness e higiene de publicação
|
|
41
|
+
|
|
42
|
+
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.
|
|
43
|
+
|
|
44
|
+
#### Publicação
|
|
45
|
+
|
|
46
|
+
- alinhamento da versão `1.8.3` entre manifesto raiz, runtime, extensão VS Code, README e changelog
|
|
47
|
+
- fechamento do gate oficial `doctor --release` para a linha atual
|
|
48
|
+
- preparação do pacote npm para sair sem drift entre versão publicada e documentação principal
|
|
49
|
+
|
|
50
|
+
#### Higiene do pacote
|
|
51
|
+
|
|
52
|
+
- exclusão dos arquivos `.vsix` históricos da extensão VS Code do tarball npm
|
|
53
|
+
- manutenção apenas do código-fonte da extensão dentro do pacote, evitando distribuir binários legados desnecessários
|
|
54
|
+
|
|
55
|
+
## [1.8.2] — 2026-04-30
|
|
56
|
+
|
|
57
|
+
### Fluxo inicial mais coerente e geração de `spec`/`plan` mais forte
|
|
58
|
+
|
|
59
|
+
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.
|
|
60
|
+
|
|
61
|
+
#### Fluxo operacional
|
|
62
|
+
|
|
63
|
+
- `install`, `status` e `doctor` passam a convergir em `/oxe` como próximo passo canônico para projetos recém-inicializados
|
|
64
|
+
- `doctor` e `status` deixam de tratar `IMPLEMENTATION-PACK`, `REFERENCE-ANCHORS` e `FIXTURE-PACK` como blocker primário antes de existir `PLAN.md`
|
|
65
|
+
- o relatório racional agora marca o estado sem plano como `não aplicável ainda`, sem contaminar o próximo passo
|
|
66
|
+
- instalações e desinstalações locais por runtime continuam simétricas, com inferência de artefatos locais preservada
|
|
67
|
+
|
|
68
|
+
#### Indução mais forte de SPEC e PLAN
|
|
69
|
+
|
|
70
|
+
- `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
|
|
71
|
+
- `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
|
|
72
|
+
- `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
|
|
73
|
+
- `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
|
|
74
|
+
|
|
75
|
+
#### Testes
|
|
76
|
+
|
|
77
|
+
- novo teste cobrindo o estado racional não bloqueante antes da existência de `PLAN.md`
|
|
78
|
+
- suíte focada de CLI/health atualizada para manter o comportamento novo estável
|
|
79
|
+
|
|
80
|
+
## [1.8.1] — 2026-04-30
|
|
81
|
+
|
|
82
|
+
### Hotfix — Gaps implementados no fonte TypeScript (não em arquivos compilados)
|
|
83
|
+
|
|
84
|
+
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.
|
|
85
|
+
|
|
86
|
+
#### Correções portadas para TypeScript
|
|
87
|
+
|
|
88
|
+
- **`models/failure.ts`**: `FailureClass` agora inclui `'verify'` e `'llm'` como classes canônicas
|
|
89
|
+
- **`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
|
|
90
|
+
- **`executor/built-in-tools.ts`**: `finishTask` handler + registro em `BUILT_IN_TOOLS`
|
|
91
|
+
- **`executor/action-tool-map.ts`**: `finish_task` injetado universalmente em `selectToolsForActions()`
|
|
92
|
+
- **`executor/node-prompt-builder.ts`**: parâmetro `options`, seção de retry context, instrução `finish_task`
|
|
93
|
+
- **`executor/llm-task-executor.ts`**: detecção de `finish_task`, `completed_by` no retorno, `turn_limit_exhausted` retorna `success: false`
|
|
94
|
+
|
|
95
|
+
#### Testes
|
|
96
|
+
- 542 testes passando (era 542 na v1.8.0, nenhuma regressão)
|
|
97
|
+
- 36 testes de gaps (gap1–gap5) todos passando contra o código compilado
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
7
101
|
## [1.8.0] — 2026-04-29
|
|
8
102
|
|
|
9
103
|
### Autonomous Execution — 5 Critical Gaps Resolved
|
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.9.1` · [package.json](package.json)
|
|
11
11
|
|
|
12
12
|
**Framework OXE — Orchestrated eXperience Engineering**
|
|
13
13
|
|
|
@@ -459,20 +459,23 @@ 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
|
-
- `
|
|
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
|
+
- `npm run release:pack-check`
|
|
467
|
+
- `node bin/oxe-cc.js status --full`
|
|
467
468
|
|
|
468
469
|
Artefatos obrigatórios desta fase:
|
|
469
470
|
|
|
470
|
-
- `.oxe/release/release-manifest.json`
|
|
471
|
-
- `.oxe/release/runtime-smoke-report.json`
|
|
472
|
-
- `.oxe/release/
|
|
473
|
-
- `.oxe/release/
|
|
474
|
-
|
|
475
|
-
|
|
471
|
+
- `.oxe/release/release-manifest.json`
|
|
472
|
+
- `.oxe/release/runtime-smoke-report.json`
|
|
473
|
+
- `.oxe/release/runtime-real-report.json`
|
|
474
|
+
- `.oxe/release/recovery-fixture-report.json`
|
|
475
|
+
- `.oxe/release/multi-agent-soak-report.json`
|
|
476
|
+
- `.oxe/release/multi-agent-real-report.json`
|
|
477
|
+
|
|
478
|
+
Na linha `1.9.1`, `runtime-real-report.json` prova o ciclo real `compile -> execute mockado -> verify -> project -> status --json`, e `multi-agent-real-report.json` prova coordenação com `git_worktree`, ownership, arbitragem e merge readiness antes da publicação.
|
|
476
479
|
|
|
477
480
|
### `/oxe-retro` — loop de aprendizado
|
|
478
481
|
|
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
|
}
|