@orkastery/cli 0.5.3 → 0.6.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/adapters/README.md +18 -0
- package/adapters/claude-code/.claude-plugin/plugin.json +1 -0
- package/adapters/claude-code/README.md +195 -5
- package/adapters/claude-code/agents/ork-check.md +1 -0
- package/adapters/claude-code/agents/ork-go.md +1 -0
- package/adapters/claude-code/agents/ork-goal.md +1 -0
- package/adapters/claude-code/agents/ork-master.md +1 -0
- package/adapters/claude-code/agents/ork-plan.md +1 -0
- package/adapters/claude-code/agents/ork-ship.md +1 -0
- package/adapters/claude-code/hooks/hooks.json +2 -1
- package/adapters/claude-code/hooks/ork-guard.js +15 -1
- package/adapters/claude-code/hooks/ork-resposta.js +91 -0
- package/adapters/claude-code/hooks/ork-sensor.js +18 -2
- package/adapters/claude-code/hooks/quota-signal.js +14 -0
- package/adapters/claude-code/mods/autoridade.json +56 -0
- package/adapters/claude-code/mods/ork-clima/.claude-plugin/plugin.json +14 -0
- package/adapters/claude-code/mods/ork-clima/hooks/contas.ts +283 -0
- package/adapters/claude-code/mods/ork-clima/hooks/hooks.json +3 -0
- package/adapters/claude-code/mods/ork-clima/hooks/previsao.ts +393 -0
- package/adapters/claude-code/mods/ork-clima/hooks/register.ts +205 -0
- package/adapters/claude-code/mods/ork-clima/orkastery-mod.json +5 -0
- package/adapters/claude-code/mods/ork-clima/types/index.d.ts +80 -0
- package/adapters/claude-code/mods/ork-freio/.claude-plugin/plugin.json +14 -0
- package/adapters/claude-code/mods/ork-freio/hooks/carga.ts +160 -0
- package/adapters/claude-code/mods/ork-freio/hooks/conferencia.ts +309 -0
- package/adapters/claude-code/mods/ork-freio/hooks/hooks.json +3 -0
- package/adapters/claude-code/mods/ork-freio/hooks/lote.ts +270 -0
- package/adapters/claude-code/mods/ork-freio/hooks/register.ts +285 -0
- package/adapters/claude-code/mods/ork-freio/orkastery-mod.json +5 -0
- package/adapters/claude-code/mods/ork-freio/types/index.d.ts +127 -0
- package/adapters/claude-code/mods/ork-mensageiro/.claude-plugin/plugin.json +14 -0
- package/adapters/claude-code/mods/ork-mensageiro/hooks/caixa.ts +215 -0
- package/adapters/claude-code/mods/ork-mensageiro/hooks/hooks.json +3 -0
- package/adapters/claude-code/mods/ork-mensageiro/hooks/painel.tsx +165 -0
- package/adapters/claude-code/mods/ork-mensageiro/hooks/recepcao.ts +256 -0
- package/adapters/claude-code/mods/ork-mensageiro/hooks/register.tsx +481 -0
- package/adapters/claude-code/mods/ork-mensageiro/orkastery-mod.json +5 -0
- package/adapters/claude-code/mods/ork-mensageiro/types/index.d.ts +85 -0
- package/adapters/claude-code/mods/ork-mesa/.claude-plugin/plugin.json +14 -0
- package/adapters/claude-code/mods/ork-mesa/hooks/cartoes.tsx +246 -0
- package/adapters/claude-code/mods/ork-mesa/hooks/decidir.ts +110 -0
- package/adapters/claude-code/mods/ork-mesa/hooks/fila.ts +253 -0
- package/adapters/claude-code/mods/ork-mesa/hooks/hooks.json +3 -0
- package/adapters/claude-code/mods/ork-mesa/hooks/obvia.ts +98 -0
- package/adapters/claude-code/mods/ork-mesa/hooks/register.tsx +493 -0
- package/adapters/claude-code/mods/ork-mesa/orkastery-mod.json +5 -0
- package/adapters/claude-code/mods/ork-mesa/types/index.d.ts +131 -0
- package/adapters/claude-code/mods/ork-pista/.claude-plugin/plugin.json +14 -0
- package/adapters/claude-code/mods/ork-pista/hooks/acoes.ts +71 -0
- package/adapters/claude-code/mods/ork-pista/hooks/ci.ts +121 -0
- package/adapters/claude-code/mods/ork-pista/hooks/hooks.json +3 -0
- package/adapters/claude-code/mods/ork-pista/hooks/pista.tsx +356 -0
- package/adapters/claude-code/mods/ork-pista/hooks/register.tsx +439 -0
- package/adapters/claude-code/mods/ork-pista/orkastery-mod.json +5 -0
- package/adapters/claude-code/mods/ork-pista/types/index.d.ts +85 -0
- package/adapters/claude-code/mods/ork-ponte/.claude-plugin/plugin.json +13 -0
- package/adapters/claude-code/mods/ork-ponte/hooks/faixa.tsx +57 -0
- package/adapters/claude-code/mods/ork-ponte/hooks/guarda.ts +410 -0
- package/adapters/claude-code/mods/ork-ponte/hooks/hooks.json +3 -0
- package/adapters/claude-code/mods/ork-ponte/hooks/mostrado.ts +55 -0
- package/adapters/claude-code/mods/ork-ponte/hooks/nucleo.ts +157 -0
- package/adapters/claude-code/mods/ork-ponte/hooks/papel.ts +42 -0
- package/adapters/claude-code/mods/ork-ponte/hooks/register.ts +331 -0
- package/adapters/claude-code/mods/ork-ponte/hooks/vigia.ts +76 -0
- package/adapters/claude-code/mods/ork-ponte/orkastery-mod.json +5 -0
- package/adapters/claude-code/mods/ork-ponte/types/index.d.ts +178 -0
- package/adapters/claude-code/mods/ork-portao/.claude-plugin/plugin.json +14 -0
- package/adapters/claude-code/mods/ork-portao/hooks/hooks.json +3 -0
- package/adapters/claude-code/mods/ork-portao/hooks/lease.ts +201 -0
- package/adapters/claude-code/mods/ork-portao/hooks/plano.ts +304 -0
- package/adapters/claude-code/mods/ork-portao/hooks/register.ts +339 -0
- package/adapters/claude-code/mods/ork-portao/hooks/verify.ts +152 -0
- package/adapters/claude-code/mods/ork-portao/orkastery-mod.json +5 -0
- package/adapters/claude-code/mods/ork-portao/types/index.d.ts +60 -0
- package/adapters/claude-code/mods/ork-radar/.claude-plugin/plugin.json +14 -0
- package/adapters/claude-code/mods/ork-radar/hooks/colisao.ts +420 -0
- package/adapters/claude-code/mods/ork-radar/hooks/hooks.json +3 -0
- package/adapters/claude-code/mods/ork-radar/hooks/mapa.tsx +322 -0
- package/adapters/claude-code/mods/ork-radar/hooks/register.tsx +470 -0
- package/adapters/claude-code/mods/ork-radar/orkastery-mod.json +5 -0
- package/adapters/claude-code/mods/ork-radar/types/index.d.ts +72 -0
- package/adapters/claude-code/mods/ork-ritual/.claude-plugin/plugin.json +14 -0
- package/adapters/claude-code/mods/ork-ritual/hooks/hooks.json +3 -0
- package/adapters/claude-code/mods/ork-ritual/hooks/nota.ts +88 -0
- package/adapters/claude-code/mods/ork-ritual/hooks/register.tsx +494 -0
- package/adapters/claude-code/mods/ork-ritual/hooks/replay.tsx +271 -0
- package/adapters/claude-code/mods/ork-ritual/hooks/ritual.ts +218 -0
- package/adapters/claude-code/mods/ork-ritual/orkastery-mod.json +5 -0
- package/adapters/claude-code/mods/ork-ritual/types/index.d.ts +106 -0
- package/adapters/claude-code/mods/ork-sentinela/.claude-plugin/plugin.json +14 -0
- package/adapters/claude-code/mods/ork-sentinela/hooks/alertas.ts +85 -0
- package/adapters/claude-code/mods/ork-sentinela/hooks/despacho.ts +156 -0
- package/adapters/claude-code/mods/ork-sentinela/hooks/hooks.json +3 -0
- package/adapters/claude-code/mods/ork-sentinela/hooks/register.ts +511 -0
- package/adapters/claude-code/mods/ork-sentinela/hooks/vigia.ts +186 -0
- package/adapters/claude-code/mods/ork-sentinela/orkastery-mod.json +5 -0
- package/adapters/claude-code/mods/ork-sentinela/types/index.d.ts +65 -0
- package/adapters/claude-code/mods/ork-torre/.claude-plugin/plugin.json +14 -0
- package/adapters/claude-code/mods/ork-torre/hooks/agenda.ts +60 -0
- package/adapters/claude-code/mods/ork-torre/hooks/detalhe.tsx +236 -0
- package/adapters/claude-code/mods/ork-torre/hooks/frases.ts +42 -0
- package/adapters/claude-code/mods/ork-torre/hooks/hooks.json +3 -0
- package/adapters/claude-code/mods/ork-torre/hooks/painel.tsx +344 -0
- package/adapters/claude-code/mods/ork-torre/hooks/rede.ts +97 -0
- package/adapters/claude-code/mods/ork-torre/hooks/register.tsx +437 -0
- package/adapters/claude-code/mods/ork-torre/orkastery-mod.json +5 -0
- package/adapters/claude-code/mods/ork-torre/types/index.d.ts +108 -0
- package/adapters/codex/skills/ork/SKILL.md +2 -0
- package/adapters/hermes/README.md +64 -1
- package/adapters/hermes/bin/ork-conhecimento-colecoes.sh +14 -0
- package/adapters/hermes/bin/ork-conhecimento-listar.sh +15 -0
- package/adapters/hermes/bin/ork-conhecimento-mostrar.sh +16 -0
- package/adapters/hermes/bin/ork-conhecimento-verificar.sh +15 -0
- package/adapters/hermes/bin/ork-vigia-batida.py +127 -0
- package/adapters/hermes/hermes.plugin.json +4 -0
- package/adapters/hermes/hitl-ingress/__init__.py +101 -8
- package/adapters/hermes/skills/orkastery-devmaster/SKILL.md +3 -3
- package/adapters/openclaw/README.md +83 -10
- package/adapters/openclaw/bin/ork-vigia-batida.js +86 -0
- package/adapters/openclaw/dist/hitl-ingress.js +106 -9
- package/adapters/openclaw/dist/index.js +86 -0
- package/adapters/openclaw/openclaw.plugin.json +34 -4
- package/adapters/openclaw/package.json +2 -2
- package/adapters/openclaw/src/hitl-ingress.ts +103 -9
- package/adapters/openclaw/src/index.ts +94 -0
- package/assets/adapters-en/claude-code/README.md +403 -0
- package/assets/adapters-en/claude-code/agents/ork-check.md +33 -0
- package/assets/adapters-en/claude-code/agents/ork-go.md +33 -0
- package/assets/adapters-en/claude-code/agents/ork-goal.md +34 -0
- package/assets/adapters-en/claude-code/agents/ork-master.md +35 -0
- package/assets/adapters-en/claude-code/agents/ork-plan.md +33 -0
- package/assets/adapters-en/claude-code/agents/ork-ship.md +33 -0
- package/assets/adapters-en/claude-code/commands/check.md +46 -0
- package/assets/adapters-en/claude-code/commands/go.md +46 -0
- package/assets/adapters-en/claude-code/commands/goal.md +55 -0
- package/assets/adapters-en/claude-code/commands/master.md +54 -0
- package/assets/adapters-en/claude-code/commands/onboarding.md +22 -0
- package/assets/adapters-en/claude-code/commands/ork.md +126 -0
- package/assets/adapters-en/claude-code/commands/plan.md +47 -0
- package/assets/adapters-en/claude-code/commands/ship.md +45 -0
- package/assets/adapters-en/codex/skills/ork/SKILL.md +85 -0
- package/assets/adapters-en/hermes/README.md +273 -0
- package/assets/adapters-en/hermes/skills/orkastery-devmaster/SKILL.md +169 -0
- package/assets/docs-en/markdownlint-cli2.jsonc +22 -0
- package/assets/docs-en/padroes/documentacao-de-produto.md +135 -0
- package/assets/docs-en/padroes/roadmap-de-produto.md +100 -0
- package/assets/docs-en/produto/README.md +14 -0
- package/assets/docs-en/produto/_modelo-feature.md +62 -0
- package/assets/docs-en/roadmap/README.md +14 -0
- package/assets/docs-en/roadmap/_modelo-item.md +75 -0
- package/assets/references-en/README.md +25 -0
- package/assets/references-en/code-review-axes.md +82 -0
- package/assets/references-en/definition-of-done.md +74 -0
- package/assets/references-en/performance-checklist.md +53 -0
- package/assets/references-en/security-checklist.md +101 -0
- package/assets/references-en/testing-patterns.md +51 -0
- package/assets/security-scan/defaults/.golangci.yml +2 -0
- package/assets/security-scan/defaults/eslint.config.mjs +11 -0
- package/assets/security-scan/defaults/gitleaks.toml +3 -0
- package/assets/security-scan/defaults/ruff.toml +1 -0
- package/assets/security-scan/tools-agil.json +87 -0
- package/assets/security-scan/tools.json +625 -0
- package/assets/skills-en/core/onboarding/SKILL.md +58 -0
- package/assets/skills-en/core/orkastery-bootstrap/SKILL.md +119 -0
- package/assets/skills-en/core/thread-state/SKILL.md +88 -0
- package/assets/skills-en/governance/decision-triage/SKILL.md +65 -0
- package/assets/skills-en/governance/narrative-guardian/SKILL.md +66 -0
- package/assets/skills-en/governance/roadmap-keeper/SKILL.md +60 -0
- package/assets/skills-en/governance/scope-check-capability-map/SKILL.md +71 -0
- package/assets/skills-en/observability/thread-tracing/SKILL.md +63 -0
- package/assets/skills-en/phases/check-quality/SKILL.md +103 -0
- package/assets/skills-en/phases/go-implementation/SKILL.md +78 -0
- package/assets/skills-en/phases/goal-definition/SKILL.md +69 -0
- package/assets/skills-en/phases/master-metrics/SKILL.md +72 -0
- package/assets/skills-en/phases/plan-specification/SKILL.md +67 -0
- package/assets/skills-en/phases/security-remediation/SKILL.md +70 -0
- package/assets/skills-en/phases/ship-release/SKILL.md +71 -0
- package/assets/skills-en/reviewers/code-reviewer/SKILL.md +61 -0
- package/assets/skills-en/reviewers/security-auditor/SKILL.md +93 -0
- package/assets/skills-en/reviewers/test-engineer/SKILL.md +66 -0
- package/assets/skills-en/reviewers/web-performance-auditor/SKILL.md +63 -0
- package/dist/adapters/claude-bg.js +193 -15
- package/dist/adapters/codex-controller-worker.js +12 -5
- package/dist/adapters/codex-events.js +16 -4
- package/dist/adapters/codex.js +13 -2
- package/dist/agents-md.js +24 -15
- package/dist/atualizar-branch.js +245 -0
- package/dist/auditoria.js +13 -11
- package/dist/auditrun.js +68 -48
- package/dist/autorizacao-duravel.js +327 -0
- package/dist/board.js +98 -43
- package/dist/branch-de-estado.js +39 -9
- package/dist/busca-semantica.js +7 -5
- package/dist/catalogo.js +35 -1
- package/dist/changelog-reconciliacao.js +290 -0
- package/dist/check-agil.js +500 -0
- package/dist/check-modo.js +41 -0
- package/dist/check-paralelo.js +183 -0
- package/dist/ci.js +255 -46
- package/dist/ciclos.js +8 -6
- package/dist/claim-lint.js +12 -8
- package/dist/claims-conferir.js +350 -0
- package/dist/claims.js +13 -10
- package/dist/company-brain-client.js +45 -3
- package/dist/company-brain-journal.js +2 -1
- package/dist/company-brain-migration.js +47 -6
- package/dist/conducao-batida.js +759 -0
- package/dist/conducao-sentinela.js +405 -0
- package/dist/conducao-texto.js +12 -18
- package/dist/conducao.js +206 -59
- package/dist/conhecimento-consulta.js +270 -0
- package/dist/conhecimento.js +514 -0
- package/dist/conta-esgotada.js +127 -0
- package/dist/dado-privado.js +816 -0
- package/dist/decisao-autonoma.js +5 -4
- package/dist/demo.js +14 -12
- package/dist/dependencias-da-worktree.js +25 -0
- package/dist/divida.js +38 -36
- package/dist/docs.js +103 -82
- package/dist/doctor-forja.js +345 -0
- package/dist/doctor-pulse-cron.js +294 -27
- package/dist/doctor-rede.js +18 -17
- package/dist/doctor.js +278 -116
- package/dist/dsn-da-memoria.js +417 -0
- package/dist/entrega-por-mod.js +503 -0
- package/dist/entrega-pr.js +158 -57
- package/dist/escopo-escrita.js +10 -1
- package/dist/esgotamentos.js +13 -11
- package/dist/estado-thread.js +42 -17
- package/dist/evalrunner.js +35 -32
- package/dist/experiencia-instalacao.js +45 -25
- package/dist/fabrica-batida.js +323 -0
- package/dist/fabrica-estado.js +49 -16
- package/dist/fabrica-publicar.js +3 -1
- package/dist/fila-pesada.js +444 -0
- package/dist/fix.js +24 -21
- package/dist/forja/adaptador.js +6 -0
- package/dist/forja/ambiente-de-ci.js +27 -0
- package/dist/forja/api.js +256 -0
- package/dist/forja/cache.js +89 -0
- package/dist/forja/cli.js +60 -0
- package/dist/forja/contrato.js +9 -0
- package/dist/forja/endereco.js +43 -0
- package/dist/forja/estado.js +22 -0
- package/dist/forja/executor.js +73 -0
- package/dist/forja/github/ci.js +95 -0
- package/dist/forja/github/dono-da-rede.js +18 -0
- package/dist/forja/github/metadados.js +15 -0
- package/dist/forja/github/pedidos.js +200 -0
- package/dist/forja/gitlab/ci.js +141 -0
- package/dist/forja/gitlab/consultas.js +59 -0
- package/dist/forja/gitlab/dono-da-rede.js +43 -0
- package/dist/forja/gitlab/metadados.js +15 -0
- package/dist/forja/gitlab/pedidos-abertos.js +158 -0
- package/dist/forja/gitlab/pedidos.js +141 -0
- package/dist/forja/produtor.js +32 -0
- package/dist/forja/registro.js +31 -0
- package/dist/forja/resolver.js +121 -0
- package/dist/forja/texto.js +13 -0
- package/dist/forja/versao.js +71 -0
- package/dist/forja.js +124 -81
- package/dist/gates.js +3 -28
- package/dist/handoff.js +33 -19
- package/dist/hitl-contract.js +46 -43
- package/dist/hitl-curto.js +37 -25
- package/dist/hitl-gates.js +13 -11
- package/dist/hitl-local-receipt.js +53 -0
- package/dist/hitl-local.js +11 -2
- package/dist/hitl-lock.js +5 -11
- package/dist/hitl-public-receipt.js +11 -0
- package/dist/hitl-resumo.js +72 -3
- package/dist/hitl-sessions.js +62 -9
- package/dist/hitl-tempo-parado.js +4 -4
- package/dist/hitl-texto-livre.js +7 -4
- package/dist/hitl.js +63 -64
- package/dist/horario.js +30 -7
- package/dist/hosts.js +155 -134
- package/dist/impedimento.js +108 -14
- package/dist/index.js +1421 -1019
- package/dist/indice-vetorial.js +14 -12
- package/dist/indice.js +7 -1
- package/dist/init.js +54 -49
- package/dist/instabilidade.js +144 -0
- package/dist/integracoes-locais.js +4 -0
- package/dist/intelligence-graph-cli.js +213 -88
- package/dist/intelligence-graph-contexto.js +56 -17
- package/dist/intelligence-graph-contract.js +2 -1
- package/dist/intelligence-graph-extract-md.js +56 -4
- package/dist/intelligence-graph-extract-ts.js +71 -3
- package/dist/intelligence-graph-query.js +96 -34
- package/dist/leases.js +19 -18
- package/dist/ledger-stats.js +17 -16
- package/dist/ledger.js +46 -2
- package/dist/licoes.js +12 -11
- package/dist/liveness.js +6 -3
- package/dist/locale-accounts.js +220 -0
- package/dist/locale-adapter.js +291 -0
- package/dist/locale-ajuda.js +833 -0
- package/dist/locale-audit.js +199 -0
- package/dist/locale-claims.js +213 -0
- package/dist/locale-conducao.js +138 -0
- package/dist/locale-conhecimento.js +181 -0
- package/dist/locale-decisao.js +205 -0
- package/dist/locale-docs.js +230 -0
- package/dist/locale-estado.js +101 -0
- package/dist/locale-forja.js +290 -0
- package/dist/locale-gerados.js +165 -0
- package/dist/locale-grafo.js +129 -0
- package/dist/locale-master.js +182 -0
- package/dist/locale-network.js +524 -0
- package/dist/locale-onboarding.js +92 -0
- package/dist/locale-operacao-restante.js +931 -0
- package/dist/locale-phase.js +151 -0
- package/dist/locale-projetos.js +100 -0
- package/dist/locale-prompts.js +194 -0
- package/dist/locale-pulse.js +349 -0
- package/dist/locale-reservas.js +87 -0
- package/dist/locale-retry.js +524 -0
- package/dist/locale-roadmap.js +102 -0
- package/dist/locale-security-scan.js +69 -0
- package/dist/locale-setup.js +192 -0
- package/dist/locale-ship.js +597 -0
- package/dist/locale-thread.js +421 -0
- package/dist/locale-verify.js +201 -0
- package/dist/locale-worktree.js +246 -0
- package/dist/locale.js +1258 -0
- package/dist/maestro-runtime.js +22 -3
- package/dist/manifest.js +415 -13
- package/dist/maquina-ociosa.js +211 -0
- package/dist/maquina.js +31 -7
- package/dist/master-digest.js +6 -1
- package/dist/master-nota-local.js +200 -0
- package/dist/master-nota.js +14 -8
- package/dist/master.js +139 -65
- package/dist/mcp-artifacts.js +11 -2
- package/dist/mcp-conhecimento.js +52 -0
- package/dist/mcp-experiencia.js +26 -5
- package/dist/mcp-git.js +23 -6
- package/dist/mcp-grafo.js +7 -4
- package/dist/mcp-install.js +73 -8
- package/dist/mcp-noctum.js +101 -0
- package/dist/mcp-server.js +90 -16
- package/dist/mcp-ship-transporte.js +977 -0
- package/dist/mcp-ship.js +71 -25
- package/dist/mcp-transportes.js +17 -0
- package/dist/mcp-verify.js +6 -1
- package/dist/memoria.js +63 -58
- package/dist/modos-migracao.js +8 -6
- package/dist/modos.js +20 -24
- package/dist/network-roadmap.js +90 -51
- package/dist/noctum-aceite.js +789 -0
- package/dist/noctum-arco.js +1418 -0
- package/dist/noctum-capacidade.js +141 -0
- package/dist/noctum-changelog.js +399 -0
- package/dist/noctum-cli.js +482 -0
- package/dist/noctum-coordenacao.js +1225 -0
- package/dist/noctum-entrega.js +1169 -0
- package/dist/noctum-envelope.js +1046 -0
- package/dist/noctum-execucao.js +376 -0
- package/dist/noctum-fechamento.js +405 -0
- package/dist/noctum-fila.js +314 -0
- package/dist/noctum-guarda.js +256 -0
- package/dist/noctum-integracao.js +507 -0
- package/dist/noctum-maquinas.js +383 -0
- package/dist/noctum-medicao.js +450 -0
- package/dist/noctum-modo.js +362 -0
- package/dist/noctum-pergunta-canal.js +96 -0
- package/dist/noctum-pergunta.js +115 -0
- package/dist/noctum-provas.js +838 -0
- package/dist/noctum-reconciliacao.js +591 -0
- package/dist/noctum-registro.js +215 -0
- package/dist/noctum-relatorio.js +827 -0
- package/dist/noctum-resposta.js +207 -0
- package/dist/noctum-sessoes-em-voo.js +93 -0
- package/dist/noctum-supervisao.js +649 -0
- package/dist/noctum-terminal.js +459 -0
- package/dist/noctum-transporte.js +655 -0
- package/dist/noctum-vigia.js +639 -0
- package/dist/ocupacao.js +32 -3
- package/dist/onboarding.js +56 -26
- package/dist/orkmind.js +48 -25
- package/dist/orquestracao.js +44 -47
- package/dist/parado-no-condutor.js +174 -127
- package/dist/phase.js +144 -63
- package/dist/policies.js +37 -4
- package/dist/portfolio.js +4 -2
- package/dist/postura-local.js +235 -0
- package/dist/preflight.js +11 -10
- package/dist/procedencia.js +220 -0
- package/dist/projeto-alvo.js +186 -24
- package/dist/prompts.js +140 -42
- package/dist/prova-minima.js +5 -6
- package/dist/pulse-cadencia.js +5 -4
- package/dist/pulse-consentimento.js +53 -1
- package/dist/pulse-delivery.js +151 -24
- package/dist/pulse-resposta.js +368 -4
- package/dist/pulse.js +188 -22
- package/dist/ratelimit.js +16 -6
- package/dist/recall.js +14 -13
- package/dist/redacao-saida.js +63 -0
- package/dist/rede-adesao.js +13 -8
- package/dist/rede-forja.js +108 -24
- package/dist/rede-status.js +66 -47
- package/dist/rede.js +86 -46
- package/dist/retomada-checkpoint.js +101 -0
- package/dist/retry.js +451 -212
- package/dist/roadmap-reservas.js +45 -28
- package/dist/roadmap-status.js +129 -33
- package/dist/runtime-ambiente.js +5 -0
- package/dist/runtime-context.js +284 -32
- package/dist/runtime-escada.js +423 -0
- package/dist/runtime-profiles.js +103 -46
- package/dist/runtimes.js +2 -1
- package/dist/saida-segura.js +3 -2
- package/dist/security-scan/agil.js +355 -0
- package/dist/security-scan/cli.js +76 -0
- package/dist/security-scan/compare.js +149 -0
- package/dist/security-scan/config.js +93 -0
- package/dist/security-scan/detect.js +97 -0
- package/dist/security-scan/executor.js +188 -0
- package/dist/security-scan/guard.js +180 -0
- package/dist/security-scan/imagem-de-lint.js +96 -0
- package/dist/security-scan/normalize/actionlint.js +12 -0
- package/dist/security-scan/normalize/eslint.js +12 -0
- package/dist/security-scan/normalize/gitleaks.js +13 -0
- package/dist/security-scan/normalize/golangci-lint.js +13 -0
- package/dist/security-scan/normalize/govulncheck.js +36 -0
- package/dist/security-scan/normalize/index.js +25 -0
- package/dist/security-scan/normalize/npm-audit.js +30 -0
- package/dist/security-scan/normalize/osv-scanner.js +32 -0
- package/dist/security-scan/normalize/oxlint.js +51 -0
- package/dist/security-scan/normalize/pip-audit.js +16 -0
- package/dist/security-scan/normalize/ruff.js +12 -0
- package/dist/security-scan/normalize/semgrep.js +20 -0
- package/dist/security-scan/normalize/trivy.js +33 -0
- package/dist/security-scan/normalize/util.js +204 -0
- package/dist/security-scan/normalize/zizmor.js +19 -0
- package/dist/security-scan/report.js +156 -0
- package/dist/security-scan/run.js +448 -0
- package/dist/security-scan/tools.js +62 -0
- package/dist/security-scan/trabalhador.js +74 -0
- package/dist/security-scan/types.js +15 -0
- package/dist/session-events.js +26 -5
- package/dist/session-watcher-claude.js +81 -20
- package/dist/session-watcher.js +340 -42
- package/dist/sessoes-contas.js +10 -1
- package/dist/sessoes-inventario.js +1 -1
- package/dist/sessoes.js +25 -23
- package/dist/setup.js +59 -58
- package/dist/ship-publicar.js +971 -0
- package/dist/ship.js +243 -97
- package/dist/steal.js +77 -0
- package/dist/superficie.js +14 -11
- package/dist/thread-close.js +12 -11
- package/dist/thread.js +274 -100
- package/dist/tokens.js +15 -11
- package/dist/trabalho-thread.js +297 -0
- package/dist/transporte-do-canal.js +189 -0
- package/dist/types.js +12 -1
- package/dist/util.js +13 -3
- package/dist/varredura-acoes.js +507 -0
- package/dist/verify.js +608 -76
- package/dist/vida-da-thread.js +254 -0
- package/dist/worktree-local.js +167 -0
- package/dist/worktree.js +99 -83
- package/dist/yaml.js +27 -8
- package/eval/casos/check-quality.json +77 -0
- package/eval/casos/security-auditor.json +148 -0
- package/eval/casos/security-remediation.json +161 -0
- package/eval/fixtures/security-scan/README.md +8 -0
- package/eval/fixtures/security-scan/go/.github/workflows/ci.yml +12 -0
- package/eval/fixtures/security-scan/go/Dockerfile +4 -0
- package/eval/fixtures/security-scan/go/README.md +4 -0
- package/eval/fixtures/security-scan/go/config.go +4 -0
- package/eval/fixtures/security-scan/go/go.mod +5 -0
- package/eval/fixtures/security-scan/go/go.sum +2 -0
- package/eval/fixtures/security-scan/go/main.go +31 -0
- package/eval/fixtures/security-scan/js/.github/workflows/ci.yml +12 -0
- package/eval/fixtures/security-scan/js/Dockerfile +3 -0
- package/eval/fixtures/security-scan/js/README.md +4 -0
- package/eval/fixtures/security-scan/js/package-lock.json +844 -0
- package/eval/fixtures/security-scan/js/package.json +10 -0
- package/eval/fixtures/security-scan/js/src/config.js +4 -0
- package/eval/fixtures/security-scan/js/src/server.js +17 -0
- package/eval/fixtures/security-scan/js/src/util.ts +4 -0
- package/eval/fixtures/security-scan/js/tsconfig.json +4 -0
- package/eval/fixtures/security-scan/python/.github/workflows/ci.yml +12 -0
- package/eval/fixtures/security-scan/python/Dockerfile +3 -0
- package/eval/fixtures/security-scan/python/README.md +4 -0
- package/eval/fixtures/security-scan/python/app/__init__.py +0 -0
- package/eval/fixtures/security-scan/python/app/config.py +2 -0
- package/eval/fixtures/security-scan/python/app/main.py +19 -0
- package/eval/fixtures/security-scan/python/requirements.txt +1 -0
- package/package.json +9 -4
- package/references/security-checklist.md +3 -3
- package/schemas/code-artifact-graph.v1.schema.json +2 -1
- package/skills/README.md +1 -0
- package/skills/core/orkastery-bootstrap/SKILL.md +2 -2
- package/skills/phases/check-quality/SKILL.md +16 -0
- package/skills/phases/go-implementation/SKILL.md +6 -0
- package/skills/phases/security-remediation/SKILL.md +70 -0
- package/skills/reviewers/security-auditor/SKILL.md +25 -0
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* RM-061, fatia F2b: a familia `verify` do catalogo de mensagens (`ork verify` e `ork verify --baseline`).
|
|
4
|
+
* O pt-BR e a fonte; o ingles e tipado por ele. Sem import do nucleo.
|
|
5
|
+
*
|
|
6
|
+
* O detalhe de cada claim reexecutada vai ao ledger (`verify_run`): o comando o monta em pt-BR, e so a
|
|
7
|
+
* impressao o remonta no locale (G2 da F2b). Motivo tipado, comando, sha e o texto da claim (dado de quem
|
|
8
|
+
* a registrou) saem iguais nas duas linguas.
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.VERIFY_EN = exports.VERIFY_PT_BR = void 0;
|
|
12
|
+
exports.VERIFY_PT_BR = {
|
|
13
|
+
uso: 'uso: ork verify <thread-id> [--baseline] [--so-claims] [--check classic|agile] [--canal C] [--esperar [min]]',
|
|
14
|
+
// RM-072 (D1): a opcao --check aceita so os dois modos, e o erro diz quais.
|
|
15
|
+
checkInvalido: (valor) => `ork verify: --check invalido: ${valor === null ? '(sem valor)' : JSON.stringify(valor)} (aceitos: classic, agile)`,
|
|
16
|
+
// ork verify --baseline
|
|
17
|
+
baselineGravada: (id) => `Baseline gravada para a thread ${id}.`,
|
|
18
|
+
// RM-037 (defeito 2 de 19 e 20/10/2026): a recusa diz o comando exato do preparo, ou como declara-lo.
|
|
19
|
+
baselineDependenciaAusente: (nome, code, comando, preparo) => `baseline.dependencia-ausente: ${nome} nao executou porque o comando nao existe (codigo ${code}): ${comando}; ` +
|
|
20
|
+
(preparo ? `rode na worktree da thread o preparo do manifesto (worktree.dependencias): ${preparo}; depois grave a baseline de novo`
|
|
21
|
+
: 'instale ou prepare as dependencias antes de gravar a baseline; para o ork preparar toda worktree nova, declare o ' +
|
|
22
|
+
'comando em worktree.dependencias no manifesto'),
|
|
23
|
+
// RM-037 (CHECK 3 da ork-rm037defeit2): o preparo que a criacao adiou falhou, e a operacao nao roda sem as dependencias.
|
|
24
|
+
dependenciasPendentesFalharam: (operacao, comando, code, estourou, dir, ultimaLinha) => `${operacao}.dependencia-ausente: o preparo adiado da worktree (worktree.dependencias) ` +
|
|
25
|
+
`${estourou ? 'estourou o prazo' : `saiu com codigo ${code}`}${ultimaLinha ? `: ${ultimaLinha}` : ''}; ` +
|
|
26
|
+
`${operacao === 'baseline' ? 'a baseline nao foi gravada' : 'o verify nao rodou'} sem as dependencias. Rode na worktree ` +
|
|
27
|
+
`cd ${dir} && ${comando}; ${operacao === 'baseline' ? 'a proxima baseline' : 'o proximo verify'} repete o preparo antes dos comandos`,
|
|
28
|
+
baselineCommit: (commit) => ` commit ${commit}`,
|
|
29
|
+
// RM-072 (D1): o modo do CHECK que gravou a baseline; o nome de produto e o mesmo nas duas linguas.
|
|
30
|
+
baselineCheck: (nome, modo, origem) => ` ${'check'.padEnd(10)} ${nome} (` +
|
|
31
|
+
`${origem === 'opcao' ? `opcao --check ${modo}` : origem === 'manifesto' ? `manifesto: check.mode: ${modo}`
|
|
32
|
+
: 'padrao: o manifesto nao declara check.mode'})`,
|
|
33
|
+
// RM-037 (defeito 1 de 19 e 20/10/2026): o comando sem veredito (estouro, sinal, relogio sob steal, nao rodou) nao vale
|
|
34
|
+
// como "ja falhava"; `situacao` e a do comando, no locale da impressao.
|
|
35
|
+
baselineComando: (nome, veredito, code, comando, situacao) => ` ${nome.padEnd(10)} ${veredito === 'passava' ? 'passava' : veredito === 'ja-falhava'
|
|
36
|
+
? `ja falhava (codigo ${code})` : `SEM VEREDITO, ${situacao}: nao vale como "ja falhava"`} ${comando}`,
|
|
37
|
+
baselineSemVeredito: (nomes, id) => ` sem veredito na baseline: ${nomes}; no verify, a falha deles sai ` +
|
|
38
|
+
`como falha sem baseline (verify.failed), nunca como pre-existente. Grave de novo com ork verify ${id} --baseline ` +
|
|
39
|
+
'numa hora de CPU livre, ou suba verify.timeout_ms_por_comando no manifesto',
|
|
40
|
+
baselineSaida: (caminho, id) => ` saida de quem falhou: as ultimas linhas em ${caminho}, campo baseline.comandos ` +
|
|
41
|
+
`(resumo e trecho); o evento baseline_recorded esta em ork phase list ${id}`,
|
|
42
|
+
baselineSemComandos: ' (nenhum comando em verify: no manifesto: a baseline guarda so o commit, e o verify nao tem como separar regressao de divida)',
|
|
43
|
+
// ork verify: cabecalho
|
|
44
|
+
titulo: (id) => `ork verify da thread ${id}`,
|
|
45
|
+
head: (commit) => ` HEAD real ${commit}`,
|
|
46
|
+
diretorio: (cwd) => ` diretorio ${cwd}`,
|
|
47
|
+
// RM-072 (D1, D17): todo CHECK diz o modo que rodou e de onde ele veio.
|
|
48
|
+
check: (nome, modo, origem) => ` check ${nome} (` +
|
|
49
|
+
`${origem === 'opcao' ? `opcao --check ${modo}` : origem === 'manifesto' ? `manifesto: check.mode: ${modo}`
|
|
50
|
+
: 'padrao: o manifesto nao declara check.mode'})`,
|
|
51
|
+
baseline: (sha, quando) => ` baseline ${sha} de ${quando}`,
|
|
52
|
+
semBaseline: ' baseline (nao gravada: falha nao pode ser chamada de regressao)',
|
|
53
|
+
// RM-072 (D8): o que o Agile fez na rodada, e cada peca que caiu para o equivalente do Classic.
|
|
54
|
+
agile: (reaproveitadas, inteiras, paralelo, lanes) => ` agile ${reaproveitadas} comando(s) de claim contra o produto do preparo, ${inteiras} inteiro(s); ` +
|
|
55
|
+
`${paralelo ? `grupo em paralelo${lanes.length ? ` com as lanes ${lanes.join(', ')}` : ''}` : 'comandos do manifesto em serie'}`,
|
|
56
|
+
agileFallback: (peca, motivo, fallback) => ` fallback ${peca}: ${motivo || 'sem motivo dito'}; rodou ${fallback || 'o equivalente do Classic'}`,
|
|
57
|
+
preparo: (situacao, segundos, alterado) => ` preparo ${situacao} em ` +
|
|
58
|
+
`${segundos} s, uma vez para a rodada; produto ` +
|
|
59
|
+
`${alterado ? 'MUDOU no meio da rodada: nenhum veredito vale' : 'conferido do preparo ao fim'}`,
|
|
60
|
+
stealMedido: (pct, fonte, limiar) => ` steal ${pct}% na rodada (${fonte}; acima de ${limiar}%, teste com relogio que reprova fica sem veredito)`,
|
|
61
|
+
stealNaoMedido: (fonte) => ` steal nao medido (sem ${fonte} nesta maquina): nenhuma reprovacao e atenuada`,
|
|
62
|
+
instabilidadeForaDoContrato: (arquivo, erros) => ` instabilidade ${arquivo} FORA DO CONTRATO, nenhuma entrada vale: ${erros}`,
|
|
63
|
+
instabilidadeVencidas: (n, testes) => ` instabilidade ${n} entrada(s) vencida(s), sem valor ate nova medida: ${testes}`,
|
|
64
|
+
// Claims
|
|
65
|
+
claimsReexecutadas: 'Claims reexecutadas no HEAD real:',
|
|
66
|
+
nenhumaClaim: ' (nenhuma claim registrada nesta thread)',
|
|
67
|
+
claim: (id, verificado, alegacao) => ` ${id} verificado: ${verificado ? 'sim' : 'NAO'} ${alegacao}`,
|
|
68
|
+
arquivo: (arquivo) => ` arquivo: ${arquivo}`,
|
|
69
|
+
comandos: (comandos) => ` comando(s): ${comandos}`,
|
|
70
|
+
semComando: ' sem comando de verificacao',
|
|
71
|
+
motivoTipado: (motivo, detalhe) => ` motivo tipado: ${motivo} (${detalhe})`,
|
|
72
|
+
// Comandos do manifesto
|
|
73
|
+
comandosDoManifesto: 'Comandos de verify do manifesto:',
|
|
74
|
+
comandoOk: 'ok',
|
|
75
|
+
comando: (nome, situacao, comando) => ` ${nome.padEnd(10)} ${situacao} ${comando}`,
|
|
76
|
+
testesQueCairam: (testes) => ` teste(s) que caiu(ram): ${testes}`,
|
|
77
|
+
estourou: (prazo, rodou) => `ESTOUROU O PRAZO (${prazo}, rodou ${rodou})`,
|
|
78
|
+
relogioSobSteal: (pct, limiar) => `RELOGIO SOB STEAL (${pct}% de steal, acima de ${limiar}%)`,
|
|
79
|
+
naoExecutou: (code) => `NAO EXECUTOU (comando nao encontrado, codigo ${code})`,
|
|
80
|
+
mortoPorSinal: (code) => `MORTO POR SINAL (codigo ${code})`,
|
|
81
|
+
falhou: (code) => `FALHOU (codigo ${code})`,
|
|
82
|
+
semVeredito: (nomes) => `Sem veredito por tempo (nao e reprovacao: prazo estourado ou relogio sob steal): ${nomes}`,
|
|
83
|
+
// Classificacao e veredito
|
|
84
|
+
classificacao: (regressoes, preExistentes, semBaseline) => `Classificacao: ${regressoes} regressao(oes), ${preExistentes} pre-existente(s), ${semBaseline} falha(s) sem baseline`,
|
|
85
|
+
regressao: (nome, comando) => ` regressao ${nome}: ${comando}`,
|
|
86
|
+
preExistente: (nome, comando) => ` pre-existente ${nome}: ${comando}`,
|
|
87
|
+
falhaSemBaseline: (nome, comando) => ` sem baseline ${nome}: ${comando}`,
|
|
88
|
+
falhaComBaselineSemVeredito: (nome, comando) => ` sem baseline ${nome}: ${comando} (a baseline nao teve veredito dele)`,
|
|
89
|
+
verdade: 'Veredito: VERDADE SUSTENTADA (nenhum motivo bloqueante).',
|
|
90
|
+
reprovado: (motivos) => `Veredito: REPROVADO. Motivos tipados: ${motivos}`,
|
|
91
|
+
// Detalhe da claim reexecutada (vai ao ledger em pt-BR)
|
|
92
|
+
claimNegativaSemComando: 'alegacao negativa/absoluta sem comando de verificacao: nao ha como comprova-la',
|
|
93
|
+
claimSemComando: 'sem comando de verificacao declarado',
|
|
94
|
+
claimNaoExecutada: (comando, resumo) => `comando "${comando}" nao foi executado: ${resumo}`,
|
|
95
|
+
claimEstourou: (comando, segundos) => `comando "${comando}" estourou o prazo de ${segundos} s sem terminar`,
|
|
96
|
+
claimRelogio: (comando, pct, limiar, testes) => `comando "${comando}" reprovou so em teste com relogio sob steal de ${pct}% (acima de ${limiar}%): ${testes}`,
|
|
97
|
+
claimSaiu: (comando, code) => `comando "${comando}" saiu com codigo ${code}`,
|
|
98
|
+
claimOk: (n) => `${n} comando(s) reexecutado(s) com sucesso`,
|
|
99
|
+
// RM-058 N2: a espera pela fila de recursos pesados, dita uma vez no stderr enquanto o verify espera.
|
|
100
|
+
filaPesadaOcupante: (operacao, thread, desde) => `${operacao}${thread ? ` da thread ${thread}` : ''} desde ${desde}`,
|
|
101
|
+
filaPesadaEsperando: (operacao, ocupantes) => `Esperando a vez na fila de recursos pesados (concurrency.max_parallel_heavy) para o ${operacao}: ` +
|
|
102
|
+
`ocupada por ${ocupantes || 'um pedido que chegou antes'}.`,
|
|
103
|
+
// RM-062 (F2): a barreira de dado privado (policy `dado_privado`); o valor casado e o termo nunca saem.
|
|
104
|
+
dadoPrivadoTitulo: (severidade) => `Dado privado (policy dado_privado em ${severidade}):`,
|
|
105
|
+
dadoPrivadoEscopoArvore: 'arvore versionada inteira (sem base para o diff)',
|
|
106
|
+
dadoPrivadoEscopoDiff: (sha, ref) => `diff da thread contra ${sha} (${ref ? `merge-base com ${ref}` : 'base carimbada da thread'})`,
|
|
107
|
+
dadoPrivadoEscopoTexto: (nome) => `texto de ${nome}`,
|
|
108
|
+
dadoPrivadoEscopo: (escopo, arquivos, linhas, nomes) => ` escopo ${escopo}: ${arquivos} arquivo(s), ${linhas} linha(s), ${nomes} nome(s)`,
|
|
109
|
+
dadoPrivadoListaPresente: (termos, de) => ` lista local ${termos} termo(s) de ${de}`,
|
|
110
|
+
dadoPrivadoListaAusente: (onde) => ` lista local ausente (procurada em ${onde}): so os padroes genericos (home, email, hostname)`,
|
|
111
|
+
dadoPrivadoErro: (erro) => ` NAO RODOU ${erro}`,
|
|
112
|
+
dadoPrivadoAchados: (n) => n ? ` achados ${n} (o valor casado nunca e impresso)` : ' achados nenhum',
|
|
113
|
+
dadoPrivadoAchado: (arquivo, linha, coluna, padrao, termo) => ` ${linha === null ? `${arquivo} nome do arquivo` : `${arquivo}:${linha}:${coluna}`} ${padrao}${termo ? ` (termo ${termo})` : ''}`,
|
|
114
|
+
dadoPrivadoMais: (n) => ` ... e mais ${n}`,
|
|
115
|
+
};
|
|
116
|
+
exports.VERIFY_EN = {
|
|
117
|
+
uso: 'usage: ork verify <thread-id> [--baseline] [--so-claims] [--check classic|agile] [--canal C] [--esperar [min]]',
|
|
118
|
+
checkInvalido: (valor) => `ork verify: invalid --check: ${valor === null ? '(no value)' : JSON.stringify(valor)} (accepted: classic, agile)`,
|
|
119
|
+
baselineGravada: (id) => `Baseline recorded for thread ${id}.`,
|
|
120
|
+
baselineDependenciaAusente: (nome, code, comando, preparo) => `baseline.missing-dependency: ${nome} did not run because the command does not exist (exit ${code}): ${comando}; ` +
|
|
121
|
+
(preparo ? `run the manifest preparation (\`worktree.dependencias\`) in the thread worktree: \`${preparo}\`; then record the baseline again`
|
|
122
|
+
: 'install or prepare dependencies before recording the baseline; for ork to prepare every new worktree, declare the ' +
|
|
123
|
+
'command in `worktree.dependencias` in the manifest'),
|
|
124
|
+
dependenciasPendentesFalharam: (operacao, comando, code, estourou, dir, ultimaLinha) => `${operacao}.missing-dependency: the deferred worktree preparation (\`worktree.dependencias\`) ` +
|
|
125
|
+
`${estourou ? 'ran past its deadline' : `exited with code ${code}`}${ultimaLinha ? `: ${ultimaLinha}` : ''}; ` +
|
|
126
|
+
`${operacao === 'baseline' ? 'the baseline was not recorded' : 'verify did not run'} without the dependencies. Run in the ` +
|
|
127
|
+
`worktree \`cd ${dir} && ${comando}\`; ${operacao === 'baseline' ? 'the next baseline' : 'the next verify'} repeats the ` +
|
|
128
|
+
'preparation before the commands',
|
|
129
|
+
baselineCommit: (commit) => ` commit ${commit}`,
|
|
130
|
+
baselineCheck: (nome, modo, origem) => ` ${'check'.padEnd(10)} ${nome} (${origem === 'opcao' ? `option --check ${modo}`
|
|
131
|
+
: origem === 'manifesto' ? `manifest: check.mode: ${modo}` : 'default: the manifest does not declare check.mode'})`,
|
|
132
|
+
baselineComando: (nome, veredito, code, comando, situacao) => ` ${nome.padEnd(10)} ${veredito === 'passava' ? 'passed'
|
|
133
|
+
: veredito === 'ja-falhava' ? `already failing (exit ${code})` : `NO VERDICT, ${situacao}: does not count as "already failing"`} ${comando}`,
|
|
134
|
+
baselineSemVeredito: (nomes, id) => ` no verdict in the baseline: ${nomes}; in verify, their failure is reported as a ` +
|
|
135
|
+
`failure without a baseline (\`verify.failed\`), never as pre-existing. Record it again with \`ork verify ${id} --baseline\` ` +
|
|
136
|
+
'when the CPU is free, or raise `verify.timeout_ms_por_comando` in the manifest',
|
|
137
|
+
baselineSaida: (caminho, id) => ` output of the failing commands: the last lines in ${caminho}, field \`baseline.comandos\` ` +
|
|
138
|
+
`(summary and excerpt); the baseline_recorded event is in \`ork phase list ${id}\``,
|
|
139
|
+
baselineSemComandos: ' (no command under `verify:` in the manifest: the baseline keeps only the commit, and verify cannot tell a regression from existing debt)',
|
|
140
|
+
titulo: (id) => `ork verify for thread ${id}`,
|
|
141
|
+
head: (commit) => ` real HEAD ${commit}`,
|
|
142
|
+
diretorio: (cwd) => ` directory ${cwd}`,
|
|
143
|
+
check: (nome, modo, origem) => ` check ${nome} (${origem === 'opcao' ? `option --check ${modo}`
|
|
144
|
+
: origem === 'manifesto' ? `manifest: check.mode: ${modo}` : 'default: the manifest does not declare check.mode'})`,
|
|
145
|
+
baseline: (sha, quando) => ` baseline ${sha} from ${quando}`,
|
|
146
|
+
semBaseline: ' baseline (not recorded: a failure cannot be called a regression)',
|
|
147
|
+
agile: (reaproveitadas, inteiras, paralelo, lanes) => ` agile ${reaproveitadas} claim command(s) against the prepared product, ${inteiras} in full; ` +
|
|
148
|
+
`${paralelo ? `parallel group${lanes.length ? ` with lanes ${lanes.join(', ')}` : ''}` : 'manifest commands in series'}`,
|
|
149
|
+
agileFallback: (peca, motivo, fallback) => ` fallback ${peca}: ${motivo || 'no reason given'}; ran ${fallback || 'the Classic equivalent'}`,
|
|
150
|
+
preparo: (situacao, segundos, alterado) => ` prepare ${situacao} in ${segundos} s, once for the run; product ` +
|
|
151
|
+
`${alterado ? 'CHANGED during the run: no verdict counts' : 'checked from prepare to end'}`,
|
|
152
|
+
stealMedido: (pct, fonte, limiar) => ` steal ${pct}% in the run (${fonte}; above ${limiar}%, a failing clock-bound test gets no verdict)`,
|
|
153
|
+
stealNaoMedido: (fonte) => ` steal not measured (no ${fonte} on this machine): no failure is softened`,
|
|
154
|
+
instabilidadeForaDoContrato: (arquivo, erros) => ` flaky tests ${arquivo} OUT OF CONTRACT, no entry counts: ${erros}`,
|
|
155
|
+
instabilidadeVencidas: (n, testes) => ` flaky tests ${n} expired entry(ies), not counted until measured again: ${testes}`,
|
|
156
|
+
claimsReexecutadas: 'Claims rerun on the real HEAD:',
|
|
157
|
+
nenhumaClaim: ' (no claim recorded in this thread)',
|
|
158
|
+
claim: (id, verificado, alegacao) => ` ${id} verified: ${verificado ? 'yes' : 'NO'} ${alegacao}`,
|
|
159
|
+
arquivo: (arquivo) => ` file: ${arquivo}`,
|
|
160
|
+
comandos: (comandos) => ` command(s): ${comandos}`,
|
|
161
|
+
semComando: ' no verification command',
|
|
162
|
+
motivoTipado: (motivo, detalhe) => ` typed reason: ${motivo} (${detalhe})`,
|
|
163
|
+
comandosDoManifesto: 'Manifest verify commands:',
|
|
164
|
+
comandoOk: 'ok',
|
|
165
|
+
comando: (nome, situacao, comando) => ` ${nome.padEnd(10)} ${situacao} ${comando}`,
|
|
166
|
+
testesQueCairam: (testes) => ` failing test(s): ${testes}`,
|
|
167
|
+
estourou: (prazo, rodou) => `TIMED OUT (${prazo}, ran ${rodou})`,
|
|
168
|
+
relogioSobSteal: (pct, limiar) => `CLOCK UNDER STEAL (${pct}% steal, above ${limiar}%)`,
|
|
169
|
+
naoExecutou: (code) => `DID NOT RUN (command not found, exit ${code})`,
|
|
170
|
+
mortoPorSinal: (code) => `KILLED BY SIGNAL (exit ${code})`,
|
|
171
|
+
falhou: (code) => `FAILED (exit ${code})`,
|
|
172
|
+
semVeredito: (nomes) => `No verdict for lack of time (not a failure: deadline exceeded or clock under steal): ${nomes}`,
|
|
173
|
+
classificacao: (regressoes, preExistentes, semBaseline) => `Classification: ${regressoes} regression(s), ${preExistentes} pre-existing, ${semBaseline} failure(s) without a baseline`,
|
|
174
|
+
regressao: (nome, comando) => ` regression ${nome}: ${comando}`,
|
|
175
|
+
preExistente: (nome, comando) => ` pre-existing ${nome}: ${comando}`,
|
|
176
|
+
falhaSemBaseline: (nome, comando) => ` no baseline ${nome}: ${comando}`,
|
|
177
|
+
falhaComBaselineSemVeredito: (nome, comando) => ` no baseline ${nome}: ${comando} (the baseline had no verdict for it)`,
|
|
178
|
+
verdade: 'Verdict: VERIFIED (no blocking reason).',
|
|
179
|
+
reprovado: (motivos) => `Verdict: FAILED. Typed reasons: ${motivos}`,
|
|
180
|
+
claimNegativaSemComando: 'negative or absolute claim without a verification command: there is no way to prove it',
|
|
181
|
+
claimSemComando: 'no verification command declared',
|
|
182
|
+
claimNaoExecutada: (comando, resumo) => `command "${comando}" did not run: ${resumo}`,
|
|
183
|
+
claimEstourou: (comando, segundos) => `command "${comando}" ran past its ${segundos} s deadline`,
|
|
184
|
+
claimRelogio: (comando, pct, limiar, testes) => `command "${comando}" failed only in clock-bound tests under ${pct}% steal (above ${limiar}%): ${testes}`,
|
|
185
|
+
claimSaiu: (comando, code) => `command "${comando}" exited with code ${code}`,
|
|
186
|
+
claimOk: (n) => `${n} command(s) rerun successfully`,
|
|
187
|
+
filaPesadaOcupante: (operacao, thread, desde) => `${operacao}${thread ? ` of thread ${thread}` : ''} since ${desde}`,
|
|
188
|
+
filaPesadaEsperando: (operacao, ocupantes) => `Waiting for a turn in the heavy-work queue (\`concurrency.max_parallel_heavy\`) for the ${operacao}: ` +
|
|
189
|
+
`held by ${ocupantes || 'a request that arrived earlier'}.`,
|
|
190
|
+
dadoPrivadoTitulo: (severidade) => `Private data (policy dado_privado at ${severidade}):`,
|
|
191
|
+
dadoPrivadoEscopoArvore: 'whole versioned tree (no base for the diff)',
|
|
192
|
+
dadoPrivadoEscopoDiff: (sha, ref) => `thread diff against ${sha} (${ref ? `merge-base with ${ref}` : 'the thread stamped base'})`,
|
|
193
|
+
dadoPrivadoEscopoTexto: (nome) => `text of ${nome}`,
|
|
194
|
+
dadoPrivadoEscopo: (escopo, arquivos, linhas, nomes) => ` scope ${escopo}: ${arquivos} file(s), ${linhas} line(s), ${nomes} name(s)`,
|
|
195
|
+
dadoPrivadoListaPresente: (termos, de) => ` local list ${termos} term(s) from ${de}`,
|
|
196
|
+
dadoPrivadoListaAusente: (onde) => ` local list missing (looked in ${onde}): only the generic patterns (home, email, hostname)`,
|
|
197
|
+
dadoPrivadoErro: (erro) => ` DID NOT RUN ${erro}`,
|
|
198
|
+
dadoPrivadoAchados: (n) => n ? ` findings ${n} (the matched value is never printed)` : ' findings none',
|
|
199
|
+
dadoPrivadoAchado: (arquivo, linha, coluna, padrao, termo) => ` ${linha === null ? `${arquivo} file name` : `${arquivo}:${linha}:${coluna}`} ${padrao}${termo ? ` (term ${termo})` : ''}`,
|
|
200
|
+
dadoPrivadoMais: (n) => ` ... and ${n} more`,
|
|
201
|
+
};
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* RM-061, fatia F3b: a familia `worktree` do catalogo de mensagens (`ork worktree ensure|sync|audit|release`). O
|
|
4
|
+
* pt-BR e a fonte; o ingles e tipado por ele. Sem import do nucleo: o que vem do estado entra por parametro.
|
|
5
|
+
*
|
|
6
|
+
* O detalhe e a correcao que o comando grava no ledger (`worktree_synced`, `worktree_audited`, `worktree_released`) e
|
|
7
|
+
* devolve no resultado nascem em pt-BR no escopo da gravacao (`textoDoCatalogo`), e so a impressao os remonta no
|
|
8
|
+
* locale (G4). O nome de cada check do audit e dado gravado: so a impressao o traduz, pelo id. Motivo tipado, comando,
|
|
9
|
+
* caminho e sha saem iguais nas duas linguas.
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.WORKTREE_EN = exports.WORKTREE_PT_BR = void 0;
|
|
13
|
+
const NOMES_DOS_CHECKS_EN = {
|
|
14
|
+
registro: 'record', diretorio: 'directory', git: 'git', branch: 'branch', procedencia: 'provenance', arvore: 'tree',
|
|
15
|
+
base: 'base', artefatos: 'artifacts', 'estado-unico': 'single-state',
|
|
16
|
+
};
|
|
17
|
+
/** O motivo de a confirmacao local nao valer (`lerArquivoPrivado`, `lerWorktreeLocal`), pela frase exata, em ingles. */
|
|
18
|
+
const MOTIVOS_DA_CONFIRMACAO_EN = [
|
|
19
|
+
[/^sem confirmação local$/, () => 'no local confirmation'],
|
|
20
|
+
[/^\.orkastery\/private precisa ser pasta 0700 do próprio usuário$/, () => '.orkastery/private must be a 0700 folder owned by the user'],
|
|
21
|
+
[/^(.+) precisa ser arquivo 0600 do próprio usuário$/, (nome) => `${nome} must be a 0600 file owned by the user`],
|
|
22
|
+
[/^(.+) está versionado no git e não vale como confirmação local$/, (nome) => `${nome} is versioned in git and does not count as a local confirmation`],
|
|
23
|
+
[/^(.+) com JSON inválido$/, (nome) => `${nome} has invalid JSON`],
|
|
24
|
+
[/^(.+) fora do contrato (.+)$/, (nome, contrato) => `${nome} does not follow the ${contrato} contract`],
|
|
25
|
+
[/^a confirmação local é de outro checkout$/, () => 'the local confirmation belongs to another checkout'],
|
|
26
|
+
];
|
|
27
|
+
exports.WORKTREE_PT_BR = {
|
|
28
|
+
uso: 'uso: ork worktree <ensure|sync|audit|release> <thread-id>',
|
|
29
|
+
// A moldura dos bloqueios: o mesmo bloco nos quatro subcomandos.
|
|
30
|
+
naoGarantida: (id) => `Worktree da thread ${id} NAO garantida.`,
|
|
31
|
+
syncBloqueado: (id) => `Sync da worktree da thread ${id} BLOQUEADO.`,
|
|
32
|
+
releaseBloqueado: (id) => `Release da worktree da thread ${id} BLOQUEADO.`,
|
|
33
|
+
motivoTipado: (motivo) => ` motivo tipado: ${motivo}`,
|
|
34
|
+
detalhe: (detalhe) => ` detalhe: ${detalhe}`,
|
|
35
|
+
correcao: (correcao) => ` correcao: ${correcao}`,
|
|
36
|
+
// ensure
|
|
37
|
+
criada: (id) => `Worktree criada para a thread ${id}.`,
|
|
38
|
+
jaExistia: (id) => `Worktree ja existia para a thread ${id}.`,
|
|
39
|
+
linhaDir: (dir) => ` dir ${dir}`,
|
|
40
|
+
linhaBranch: (branch) => ` branch ${branch}`,
|
|
41
|
+
linhaBase: (base) => ` base ${base} (resolvida pelo ork, nao pelo executor)`,
|
|
42
|
+
// RM-037 (defeito 2 de 19 e 20/10/2026): o preparo de `worktree.dependencias` na worktree nova (thread new e ensure).
|
|
43
|
+
dependenciasProntas: (comando, segundos) => ` dependencias ${comando} (worktree.dependencias) ok em ${segundos} s`,
|
|
44
|
+
dependenciasFalharam: (comando, code, estourou, dir, ultimaLinha) => `Aviso: o preparo das dependencias da worktree (worktree.dependencias) ${estourou ? 'estourou o prazo' : `saiu com codigo ${code}`}` +
|
|
45
|
+
`${ultimaLinha ? `: ${ultimaLinha}` : ''}. A thread e a worktree ficam; antes do build e da baseline, rode na worktree: ` +
|
|
46
|
+
`cd ${dir} && ${comando}`,
|
|
47
|
+
naoRegistrada: (dir) => `${dir} existe mas nao aparece em \`git worktree list\``,
|
|
48
|
+
naoRegistradaCorrecao: (id) => `remova o diretorio ou registre a worktree; depois rode: ork worktree ensure ${id}`,
|
|
49
|
+
reconcilieOEstado: (id) => `reconcilie o estado e rode ork worktree sync ${id}`,
|
|
50
|
+
jaExiste: 'a worktree da thread ja existe e o git a reconhece',
|
|
51
|
+
recriadaSobreBranch: (branch) => `worktree recriada sobre a branch ${branch}, que ja existia`,
|
|
52
|
+
criadaAPartirDe: (base) => `worktree criada a partir de ${base}`,
|
|
53
|
+
// sync
|
|
54
|
+
syncEnsaio: (id) => `Sync (--dry-run) da thread ${id}: nada foi executado.`,
|
|
55
|
+
syncFeito: (id) => `Sync da thread ${id}.`,
|
|
56
|
+
syncBase: (base, sha) => ` base ${base} @ ${sha}`,
|
|
57
|
+
syncBranch: (branch, antes, depois) => ` branch ${branch} @ ${antes} -> ${depois}`,
|
|
58
|
+
syncRebase: (estado) => ` rebase ${estado}`,
|
|
59
|
+
comandosReais: ' Comandos reais, na ordem:',
|
|
60
|
+
semWorktree: (id) => `a thread ${id} nao tem worktree registrada no git`,
|
|
61
|
+
semWorktreeCorrecao: (id) => `crie a worktree com: ork worktree ensure ${id}`,
|
|
62
|
+
semStatus: (dir) => `${dir} nao respondeu a \`git status\``,
|
|
63
|
+
arvoreSuja: (dir) => `${dir} tem alteracao nao commitada; rebase em arvore suja perde trabalho`,
|
|
64
|
+
arvoreSujaCorrecao: (dir, id) => `commite ou guarde as alteracoes em ${dir} e rode de novo: ork worktree sync ${id}`,
|
|
65
|
+
reconcilieAsCopias: 'reconcilie as duas cópias sem descartar evidências',
|
|
66
|
+
baseInexistente: (base) => `a base ${base} do manifesto nao existe neste repositorio`,
|
|
67
|
+
baseInexistenteCorrecao: (caminho) => `corrija worktree.base_branch em ${caminho}`,
|
|
68
|
+
/** O que o ledger guarda quando a base ja estava na branch (o texto impresso e `jaIncorporada`). */
|
|
69
|
+
jaEraAncestral: 'a base ja era ancestral do HEAD da thread',
|
|
70
|
+
jaIncorporada: (base) => `a base ${base} ja esta incorporada: nada a sincronizar`,
|
|
71
|
+
semCommitProprio: (branch, base) => `a branch ${branch} nao tem commit proprio: o sync real a recriaria na base ${base} atual, sem rebase`,
|
|
72
|
+
inspecioneAsCopias: 'inspecione a cópia local e a fonte canônica preservadas antes de repetir o sync',
|
|
73
|
+
recriacaoFalhou: (branch, saida) => `a recriacao da branch ${branch} na base falhou: ${saida}`,
|
|
74
|
+
confiraAWorktree: (dir, id) => `confira a worktree ${dir} e rode de novo: ork worktree sync ${id}`,
|
|
75
|
+
recriada: (base, semAncestral) => `branch sem commit proprio recriada a partir da base ${base} atual` +
|
|
76
|
+
(semAncestral ? '; a base foi reescrita e nao tinha historia em comum com ela' : ''),
|
|
77
|
+
ondeComecou: '<commit onde a branch da thread comecou>',
|
|
78
|
+
semHistoriaComum: (base, branch, proprios) => `a base ${base} foi reescrita e nao tem historia ` +
|
|
79
|
+
`em comum com a branch ${branch}, que tem ${proprios ?? 'um numero desconhecido de'} commit(s) proprio(s): o rebase reaplicaria a ` +
|
|
80
|
+
'historia antiga inteira',
|
|
81
|
+
reaplique: (comando) => `reaplique so os commits da thread sobre a base nova: ${comando}`,
|
|
82
|
+
passoBaseReescrita: (ponto, sha) => `git merge-base --is-ancestor ${ponto} ${sha} (falso: a base foi reescrita)`,
|
|
83
|
+
baseReescrita: (base, ponto, branch, sairam, proprios, comando) => `a base ${base} foi reescrita: o ponto de partida ${ponto} da branch ${branch} nao esta mais nela, ` +
|
|
84
|
+
`e o rebase comum reaplicaria ${sairam ?? 'um numero desconhecido de'} commit(s) que sairam da base junto com ` +
|
|
85
|
+
`o(s) ${proprios ?? '?'} da thread (${comando})`,
|
|
86
|
+
rebaseAcima: (base) => `a base ${base} avancou; o sync real faria o rebase acima`,
|
|
87
|
+
rebaseConflitou: (base, saida) => `o rebase sobre ${base} conflitou e foi abortado: ${saida}`,
|
|
88
|
+
rebaseConflitouCorrecao: (dir, sha) => `resolva o conflito na worktree ${dir} (git rebase ${sha} e resolucao manual), ` +
|
|
89
|
+
'ou reduza a regiao da thread com um lease path:<glob> menor',
|
|
90
|
+
/** O que o ledger guarda depois do rebase (o texto impresso e `rebasadaSobreEla`). */
|
|
91
|
+
rebasada: (base) => `branch da thread rebasada sobre ${base}`,
|
|
92
|
+
rebasadaSobreEla: (base, branch) => `a base ${base} avancou e a branch ${branch} foi rebasada sobre ela`,
|
|
93
|
+
// audit
|
|
94
|
+
auditoria: (id) => `Auditoria da worktree da thread ${id}`,
|
|
95
|
+
nomeDoCheck: (nome) => nome,
|
|
96
|
+
correcaoDoCheck: (correcao) => ` correcao: ${correcao}`,
|
|
97
|
+
consistente: ' worktree consistente: o git confirma cada item acima.',
|
|
98
|
+
divergencias: (n) => ` ${n} divergencia(s) encontrada(s) no proprio git.`,
|
|
99
|
+
apontaPara: (dir) => `thread.json aponta para ${dir}`,
|
|
100
|
+
semRegistroNoThread: 'a thread nao tem worktree registrada no thread.json',
|
|
101
|
+
naoExisteNoDisco: (dir) => `${dir} nao existe no disco`,
|
|
102
|
+
apareceNoGit: 'aparece em `git worktree list --porcelain`',
|
|
103
|
+
naoApareceNoGit: (dir) => `${dir} nao aparece em \`git worktree list\``,
|
|
104
|
+
emCheckout: (branch) => `${branch} em check-out`,
|
|
105
|
+
branchErrada: (esperada, encontrada) => `esperado ${esperada}, encontrado "${encontrada || '(HEAD solto)'}"`,
|
|
106
|
+
arvoreLimpa: 'sem alteracao nao commitada',
|
|
107
|
+
statusSemResposta: '`git status` nao respondeu neste diretorio',
|
|
108
|
+
alteracaoNaWorktree: 'ha alteracao nao commitada na worktree',
|
|
109
|
+
baseIncorporada: (base, sha) => `${base} @ ${sha} ja incorporada`,
|
|
110
|
+
baseAdiante: (base, sha) => `a base ${base} avancou para ${sha} e nao esta na branch da thread`,
|
|
111
|
+
artefatosDentro: (dir) => `os artefatos da thread estao DENTRO da worktree (${dir})`,
|
|
112
|
+
artefatosDentroCorrecao: 'os artefatos da thread vivem em .orkastery/threads/<id>, fora da arvore',
|
|
113
|
+
artefatosFora: (dir) => `${dir} fica fora da worktree`,
|
|
114
|
+
// release
|
|
115
|
+
liberada: (id) => `Worktree da thread ${id} liberada.`,
|
|
116
|
+
releaseDir: (dir) => ` dir ${dir}`,
|
|
117
|
+
releaseRemovida: (removida) => ` removida ${removida ? 'sim' : 'nao (o diretorio ja nao existia)'}`,
|
|
118
|
+
releaseLeases: (leases) => ` leases ${leases || '(nenhum lease de escrita para soltar)'}`,
|
|
119
|
+
/** O que o ledger guarda quando o diretorio ja tinha sumido (o texto impresso e `jaNaoExistiaImpresso`). */
|
|
120
|
+
jaNaoExistia: 'o diretorio ja nao existia; o registro foi limpo',
|
|
121
|
+
jaNaoExistiaImpresso: 'o diretorio ja nao existia; registro limpo e `git worktree prune` rodado',
|
|
122
|
+
confiraODiretorio: (id) => `confira o diretorio e o thread.json da thread ${id}`,
|
|
123
|
+
releaseArvoreSuja: (dir) => `${dir} tem alteracao nao commitada`,
|
|
124
|
+
releaseArvoreSujaCorrecao: (dir) => `commite o que interessa em ${dir}, ou repita com --forcar para descartar`,
|
|
125
|
+
removeFalhou: (saida) => `git worktree remove falhou: ${saida}`,
|
|
126
|
+
removeFalhouCorrecao: (dir) => `rode \`git worktree remove ${dir}\` na mao e confira \`git worktree list\``,
|
|
127
|
+
continuaNaLista: (dir) => `${dir} continua em \`git worktree list\` depois do remove`,
|
|
128
|
+
removida: (branch) => `worktree removida; a branch ${branch} continua no repositorio`,
|
|
129
|
+
// A pasta das worktrees e a criacao (`worktree-local.ts` e `criarWorktree`, em `thread.ts`)
|
|
130
|
+
dirForaDaRaiz: (pedido, dir, confirmada, motivo, comando) => `worktree.dir-fora-da-raiz: o orkastery.yaml pede worktree.dir: ${pedido}, ` +
|
|
131
|
+
`que leva a ${dir}, fora da raiz do projeto (pelo caminho real), e esta máquina não confirmou essa pasta ` +
|
|
132
|
+
`(${confirmada ? `a máquina confirmou ${confirmada}` : motivo ?? 'sem confirmação local'}). ` +
|
|
133
|
+
'Nenhuma worktree foi criada. O manifesto vem com o repositório; quem decide criar checkout fora da raiz é a ' +
|
|
134
|
+
`máquina. Para aceitar nesta máquina: ${comando} (ou volte worktree.dir para dentro do projeto, ` +
|
|
135
|
+
'como .claude/worktrees).',
|
|
136
|
+
worktreeJaExisteEm: (dir) => `worktree ja existe em ${dir}`,
|
|
137
|
+
baseRemotaFalhou: (remoto, base, saida) => `worktree.base-remota-indisponivel: git fetch de ${remoto}/${base} falhou; nenhuma worktree foi criada: ${saida}`,
|
|
138
|
+
worktreeAddFalhou: (saida) => `git worktree add falhou: ${saida}`,
|
|
139
|
+
worktreeNaoApareceu: (dir) => `worktree nao apareceu em \`git worktree list\` apos a criacao: ${dir}`,
|
|
140
|
+
};
|
|
141
|
+
exports.WORKTREE_EN = {
|
|
142
|
+
uso: 'usage: ork worktree <ensure|sync|audit|release> <thread-id>',
|
|
143
|
+
naoGarantida: (id) => `Worktree for thread ${id} NOT ensured.`,
|
|
144
|
+
syncBloqueado: (id) => `Worktree sync for thread ${id} BLOCKED.`,
|
|
145
|
+
releaseBloqueado: (id) => `Worktree release for thread ${id} BLOCKED.`,
|
|
146
|
+
motivoTipado: (motivo) => ` typed reason: ${motivo}`,
|
|
147
|
+
detalhe: (detalhe) => ` detail: ${detalhe}`,
|
|
148
|
+
correcao: (correcao) => ` fix: ${correcao}`,
|
|
149
|
+
criada: (id) => `Worktree created for thread ${id}.`,
|
|
150
|
+
jaExistia: (id) => `Worktree already existed for thread ${id}.`,
|
|
151
|
+
linhaDir: (dir) => ` dir ${dir}`,
|
|
152
|
+
linhaBranch: (branch) => ` branch ${branch}`,
|
|
153
|
+
linhaBase: (base) => ` base ${base} (resolved by ork, not by the executor)`,
|
|
154
|
+
dependenciasProntas: (comando, segundos) => ` dependencies ${comando} (\`worktree.dependencias\`) ok in ${segundos} s`,
|
|
155
|
+
dependenciasFalharam: (comando, code, estourou, dir, ultimaLinha) => `Warning: preparing the worktree dependencies (\`worktree.dependencias\`) ${estourou ? 'ran past its deadline' : `exited with code ${code}`}` +
|
|
156
|
+
`${ultimaLinha ? `: ${ultimaLinha}` : ''}. The thread and the worktree stay; before the build and the baseline, run in the worktree: ` +
|
|
157
|
+
`\`cd ${dir} && ${comando}\``,
|
|
158
|
+
naoRegistrada: (dir) => `${dir} exists but does not show up in \`git worktree list\``,
|
|
159
|
+
naoRegistradaCorrecao: (id) => `remove the directory or register the worktree; then run: ork worktree ensure ${id}`,
|
|
160
|
+
reconcilieOEstado: (id) => `reconcile the state and run \`ork worktree sync ${id}\``,
|
|
161
|
+
jaExiste: 'the thread worktree already exists and git recognizes it',
|
|
162
|
+
recriadaSobreBranch: (branch) => `worktree recreated on branch ${branch}, which already existed`,
|
|
163
|
+
criadaAPartirDe: (base) => `worktree created from ${base}`,
|
|
164
|
+
syncEnsaio: (id) => `Sync (--dry-run) of thread ${id}: nothing was run.`,
|
|
165
|
+
syncFeito: (id) => `Sync of thread ${id}.`,
|
|
166
|
+
syncBase: (base, sha) => ` base ${base} @ ${sha}`,
|
|
167
|
+
syncBranch: (branch, antes, depois) => ` branch ${branch} @ ${antes} -> ${depois}`,
|
|
168
|
+
syncRebase: (estado) => ` rebase ${{ feito: 'done', desnecessario: 'not needed', 'seria feito': 'would run' }[estado]}`,
|
|
169
|
+
comandosReais: ' Real commands, in order:',
|
|
170
|
+
semWorktree: (id) => `thread ${id} has no worktree registered in git`,
|
|
171
|
+
semWorktreeCorrecao: (id) => `create the worktree with: ork worktree ensure ${id}`,
|
|
172
|
+
semStatus: (dir) => `${dir} did not answer \`git status\``,
|
|
173
|
+
arvoreSuja: (dir) => `${dir} has uncommitted changes; rebasing a dirty tree loses work`,
|
|
174
|
+
arvoreSujaCorrecao: (dir, id) => `commit or stash the changes in ${dir} and run again: \`ork worktree sync ${id}\``,
|
|
175
|
+
reconcilieAsCopias: 'reconcile the two copies without discarding evidence',
|
|
176
|
+
baseInexistente: (base) => `the base ${base} from the manifest does not exist in this repository`,
|
|
177
|
+
baseInexistenteCorrecao: (caminho) => `fix \`worktree.base_branch\` in ${caminho}`,
|
|
178
|
+
jaEraAncestral: 'the base was already an ancestor of the thread HEAD',
|
|
179
|
+
jaIncorporada: (base) => `the base ${base} is already merged in: nothing to sync`,
|
|
180
|
+
semCommitProprio: (branch, base) => `branch ${branch} has no commit of its own: the real sync would recreate it on the current base ${base}, without a rebase`,
|
|
181
|
+
inspecioneAsCopias: 'inspect the preserved local copy and canonical source before repeating the sync',
|
|
182
|
+
recriacaoFalhou: (branch, saida) => `recreating branch ${branch} on the base failed: ${saida}`,
|
|
183
|
+
confiraAWorktree: (dir, id) => `check the worktree ${dir} and run again: \`ork worktree sync ${id}\``,
|
|
184
|
+
recriada: (base, semAncestral) => `branch with no commit of its own recreated from the current base ${base}` +
|
|
185
|
+
(semAncestral ? '; the base was rewritten and had no history in common with it' : ''),
|
|
186
|
+
ondeComecou: '<commit where the thread branch started>',
|
|
187
|
+
semHistoriaComum: (base, branch, proprios) => `the base ${base} was rewritten and has no history in common with branch ${branch}, ` +
|
|
188
|
+
`which has ${proprios ?? 'an unknown number of'} commit(s) of its own: the rebase would replay the whole old history`,
|
|
189
|
+
reaplique: (comando) => `replay only the thread commits on top of the new base: ${comando}`,
|
|
190
|
+
passoBaseReescrita: (ponto, sha) => `git merge-base --is-ancestor ${ponto} ${sha} (false: the base was rewritten)`,
|
|
191
|
+
baseReescrita: (base, ponto, branch, sairam, proprios, comando) => `the base ${base} was rewritten: the starting point ${ponto} of ` +
|
|
192
|
+
`branch ${branch} is no longer in it, and a plain rebase would replay ${sairam ?? 'an unknown number of'} commit(s) that left the ` +
|
|
193
|
+
`base along with the thread's ${proprios ?? '?'} (${comando})`,
|
|
194
|
+
rebaseAcima: (base) => `the base ${base} moved ahead; the real sync would run the rebase above`,
|
|
195
|
+
rebaseConflitou: (base, saida) => `the rebase onto ${base} hit a conflict and was aborted: ${saida}`,
|
|
196
|
+
rebaseConflitouCorrecao: (dir, sha) => `resolve the conflict in the worktree ${dir} (git rebase ${sha} and manual resolution), ` +
|
|
197
|
+
'or narrow the thread region with a smaller `path:<glob>` lease',
|
|
198
|
+
rebasada: (base) => `thread branch rebased onto ${base}`,
|
|
199
|
+
rebasadaSobreEla: (base, branch) => `the base ${base} moved ahead and branch ${branch} was rebased onto it`,
|
|
200
|
+
auditoria: (id) => `Audit of the worktree of thread ${id}`,
|
|
201
|
+
nomeDoCheck: (nome) => NOMES_DOS_CHECKS_EN[nome] ?? nome,
|
|
202
|
+
correcaoDoCheck: (correcao) => ` fix: ${correcao}`,
|
|
203
|
+
consistente: ' worktree consistent: git confirms every item above.',
|
|
204
|
+
divergencias: (n) => ` ${n} divergence(s) found in git itself.`,
|
|
205
|
+
apontaPara: (dir) => `thread.json points to ${dir}`,
|
|
206
|
+
semRegistroNoThread: 'the thread has no worktree recorded in thread.json',
|
|
207
|
+
naoExisteNoDisco: (dir) => `${dir} does not exist on disk`,
|
|
208
|
+
apareceNoGit: 'shows up in `git worktree list --porcelain`',
|
|
209
|
+
naoApareceNoGit: (dir) => `${dir} does not show up in \`git worktree list\``,
|
|
210
|
+
emCheckout: (branch) => `${branch} checked out`,
|
|
211
|
+
branchErrada: (esperada, encontrada) => `expected ${esperada}, found "${encontrada || '(detached HEAD)'}"`,
|
|
212
|
+
arvoreLimpa: 'no uncommitted changes',
|
|
213
|
+
statusSemResposta: '`git status` did not answer in this directory',
|
|
214
|
+
alteracaoNaWorktree: 'the worktree has uncommitted changes',
|
|
215
|
+
baseIncorporada: (base, sha) => `${base} @ ${sha} already merged in`,
|
|
216
|
+
baseAdiante: (base, sha) => `the base ${base} moved ahead to ${sha} and is not in the thread branch`,
|
|
217
|
+
artefatosDentro: (dir) => `the thread artifacts are INSIDE the worktree (${dir})`,
|
|
218
|
+
artefatosDentroCorrecao: 'the thread artifacts live in `.orkastery/threads/<id>`, outside the tree',
|
|
219
|
+
artefatosFora: (dir) => `${dir} stays outside the worktree`,
|
|
220
|
+
liberada: (id) => `Worktree of thread ${id} released.`,
|
|
221
|
+
releaseDir: (dir) => ` dir ${dir}`,
|
|
222
|
+
releaseRemovida: (removida) => ` removed ${removida ? 'yes' : 'no (the directory no longer existed)'}`,
|
|
223
|
+
releaseLeases: (leases) => ` leases ${leases || '(no write lease to release)'}`,
|
|
224
|
+
jaNaoExistia: 'the directory no longer existed; the record was cleaned',
|
|
225
|
+
jaNaoExistiaImpresso: 'the directory no longer existed; record cleaned and `git worktree prune` run',
|
|
226
|
+
confiraODiretorio: (id) => `check the directory and the thread.json of thread ${id}`,
|
|
227
|
+
releaseArvoreSuja: (dir) => `${dir} has uncommitted changes`,
|
|
228
|
+
releaseArvoreSujaCorrecao: (dir) => `commit what matters in ${dir}, or repeat with \`--forcar\` to discard it`,
|
|
229
|
+
removeFalhou: (saida) => `git worktree remove failed: ${saida}`,
|
|
230
|
+
removeFalhouCorrecao: (dir) => `run \`git worktree remove ${dir}\` by hand and check \`git worktree list\``,
|
|
231
|
+
continuaNaLista: (dir) => `${dir} is still in \`git worktree list\` after the remove`,
|
|
232
|
+
removida: (branch) => `worktree removed; branch ${branch} stays in the repository`,
|
|
233
|
+
dirForaDaRaiz: (pedido, dir, confirmada, motivo, comando) => {
|
|
234
|
+
const regra = motivo ? MOTIVOS_DA_CONFIRMACAO_EN.find(([re]) => re.test(motivo)) : undefined;
|
|
235
|
+
const porque = confirmada ? `the machine confirmed ${confirmada}`
|
|
236
|
+
: motivo ? (regra ? regra[1](...(regra[0].exec(motivo) ?? []).slice(1)) : motivo) : 'no local confirmation';
|
|
237
|
+
return `worktree.dir-fora-da-raiz: \`orkastery.yaml\` asks for worktree.dir: ${pedido}, which leads to ${dir}, outside the ` +
|
|
238
|
+
`project root (by the real path), and this machine did not confirm that folder (${porque}). No worktree was created. ` +
|
|
239
|
+
'The manifest comes with the repository; the machine decides whether to create a checkout outside the root. ' +
|
|
240
|
+
`To accept it on this machine: \`${comando}\` (or move worktree.dir back inside the project, such as .claude/worktrees).`;
|
|
241
|
+
},
|
|
242
|
+
worktreeJaExisteEm: (dir) => `a worktree already exists at ${dir}`,
|
|
243
|
+
baseRemotaFalhou: (remoto, base, saida) => `worktree.remote-base-unavailable: git fetch of ${remoto}/${base} failed; no worktree was created: ${saida}`,
|
|
244
|
+
worktreeAddFalhou: (saida) => `git worktree add failed: ${saida}`,
|
|
245
|
+
worktreeNaoApareceu: (dir) => `the worktree did not show up in \`git worktree list\` after it was created: ${dir}`,
|
|
246
|
+
};
|