@orkastery/cli 0.5.6 → 0.6.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/adapters/README.md +18 -0
- package/adapters/claude-code/.claude-plugin/plugin.json +1 -0
- package/adapters/claude-code/README.md +37 -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/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-pista/hooks/ci.ts +9 -5
- 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/hooks/vigia.ts +1 -1
- 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 +2 -2
- package/adapters/openclaw/README.md +81 -9
- 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/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 +123 -9
- package/dist/adapters/codex-controller-worker.js +12 -5
- package/dist/adapters/codex-events.js +16 -4
- package/dist/adapters/codex.js +3 -1
- package/dist/adapters/grok-events.js +227 -0
- package/dist/adapters/grok-mcp-servidor.js +612 -0
- package/dist/adapters/grok-mcp.js +178 -0
- package/dist/adapters/grok.js +686 -0
- package/dist/agendador-cpu.js +92 -0
- package/dist/atualizar-branch.js +245 -0
- package/dist/auditoria.js +13 -11
- package/dist/auditrun.js +51 -46
- package/dist/autorizacao-duravel.js +327 -0
- package/dist/board.js +94 -40
- package/dist/branch-de-estado.js +23 -10
- package/dist/busca-semantica.js +7 -5
- package/dist/catalogo.js +2 -1
- package/dist/changelog-reconciliacao.js +290 -0
- package/dist/check-agil.js +528 -0
- package/dist/check-modo.js +41 -0
- package/dist/check-paralelo.js +238 -0
- package/dist/ci.js +248 -45
- package/dist/ciclos.js +8 -6
- package/dist/claim-lint.js +12 -8
- package/dist/claims-conferir.js +47 -39
- package/dist/claims.js +10 -9
- package/dist/company-brain-client.js +10 -3
- package/dist/company-brain-migration.js +11 -5
- package/dist/conducao-batida.js +759 -0
- package/dist/conducao-sentinela.js +25 -8
- package/dist/conducao.js +89 -29
- package/dist/conhecimento-consulta.js +270 -0
- package/dist/conhecimento.js +111 -87
- 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 +89 -89
- package/dist/doctor-forja.js +343 -0
- package/dist/doctor-pulse-cron.js +113 -1
- package/dist/doctor.js +164 -6
- package/dist/dsn-da-memoria.js +417 -0
- package/dist/entrega-por-mod.js +503 -0
- package/dist/entrega-pr.js +154 -54
- package/dist/esgotamentos.js +13 -11
- package/dist/estado-thread.js +21 -18
- package/dist/evalrunner.js +35 -32
- package/dist/fabrica-batida.js +34 -21
- package/dist/fabrica-estado.js +33 -21
- package/dist/fix.js +21 -19
- 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 +123 -80
- package/dist/handoff.js +23 -13
- 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 +51 -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 +44 -1
- package/dist/hitl-sessions.js +62 -9
- package/dist/hitl-texto-livre.js +7 -4
- package/dist/hitl.js +34 -31
- package/dist/horario.js +20 -1
- package/dist/hosts.js +104 -134
- package/dist/index.js +864 -554
- package/dist/indice-vetorial.js +14 -12
- package/dist/init.js +11 -2
- package/dist/integracoes-locais.js +4 -0
- package/dist/intelligence-graph-cli.js +123 -69
- package/dist/intelligence-graph-query.js +37 -22
- package/dist/leases.js +19 -18
- package/dist/ledger-stats.js +17 -16
- package/dist/ledger.js +31 -1
- package/dist/licoes.js +12 -11
- package/dist/locale-accounts.js +228 -0
- package/dist/locale-adapter.js +291 -0
- package/dist/locale-ajuda.js +86 -10
- 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 +288 -0
- package/dist/locale-gerados.js +5 -0
- package/dist/locale-grafo.js +129 -0
- package/dist/locale-master.js +83 -0
- package/dist/locale-network.js +524 -0
- package/dist/locale-operacao-restante.js +931 -0
- package/dist/locale-projetos.js +100 -0
- package/dist/locale-prompts.js +194 -0
- package/dist/locale-pulse.js +140 -2
- package/dist/locale-reservas.js +87 -0
- package/dist/locale-retry.js +183 -6
- package/dist/locale-security-scan.js +69 -0
- package/dist/locale-setup.js +192 -0
- package/dist/locale-ship.js +177 -66
- package/dist/locale-thread.js +149 -5
- package/dist/locale-verify.js +80 -4
- package/dist/locale-worktree.js +246 -0
- package/dist/locale.js +553 -9
- package/dist/maestro-runtime.js +22 -3
- package/dist/manifest.js +293 -12
- package/dist/maquina-ociosa.js +211 -0
- package/dist/maquina.js +10 -5
- package/dist/master-nota-local.js +200 -0
- package/dist/master-nota.js +10 -2
- package/dist/master.js +118 -41
- package/dist/mcp-conhecimento.js +52 -0
- package/dist/mcp-experiencia.js +26 -5
- package/dist/mcp-install.js +90 -15
- package/dist/mcp-noctum.js +101 -0
- package/dist/mcp-server.js +116 -22
- package/dist/mcp-ship-transporte.js +977 -0
- package/dist/mcp-ship.js +68 -24
- package/dist/mcp-transportes.js +17 -0
- package/dist/memoria.js +63 -58
- package/dist/merge-da-entrega.js +85 -0
- package/dist/modos-migracao.js +8 -6
- package/dist/modos.js +17 -18
- package/dist/network-roadmap.js +94 -54
- package/dist/noctum-aceite.js +929 -0
- package/dist/noctum-arco.js +540 -33
- package/dist/noctum-capacidade.js +3 -3
- package/dist/noctum-changelog.js +399 -0
- package/dist/noctum-cli.js +539 -0
- package/dist/noctum-coordenacao.js +1225 -0
- package/dist/noctum-entrega.js +1217 -0
- package/dist/noctum-envelope.js +253 -17
- package/dist/noctum-execucao.js +100 -24
- package/dist/noctum-fechamento.js +416 -0
- package/dist/noctum-fila.js +49 -10
- package/dist/noctum-guarda.js +333 -0
- package/dist/noctum-integracao.js +507 -0
- package/dist/noctum-maquinas.js +387 -0
- package/dist/noctum-medicao.js +450 -0
- package/dist/noctum-modo.js +390 -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 +594 -0
- package/dist/noctum-rede.js +102 -0
- package/dist/noctum-registro.js +215 -0
- package/dist/noctum-relatorio.js +861 -0
- package/dist/noctum-resposta.js +207 -0
- package/dist/noctum-retomada-rede.js +71 -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 +679 -0
- package/dist/ocupacao.js +3 -1
- package/dist/onboarding.js +16 -5
- package/dist/orkmind.js +39 -23
- package/dist/orquestracao.js +31 -35
- package/dist/parado-no-condutor.js +160 -139
- package/dist/phase.js +96 -42
- package/dist/policies.js +33 -0
- package/dist/postura-local.js +11 -6
- package/dist/preflight.js +2 -1
- package/dist/procedencia.js +9 -14
- package/dist/projeto-alvo.js +59 -20
- package/dist/prompts.js +136 -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 +143 -27
- package/dist/pulse-resposta.js +368 -4
- package/dist/pulse.js +136 -3
- package/dist/ratelimit.js +13 -4
- package/dist/recall.js +14 -13
- package/dist/rede-adesao.js +13 -8
- package/dist/rede-forja.js +108 -24
- package/dist/rede-status.js +63 -45
- package/dist/rede.js +86 -46
- package/dist/retomada-checkpoint.js +101 -0
- package/dist/retry.js +326 -78
- package/dist/roadmap-reservas.js +32 -32
- package/dist/runtime-ambiente.js +5 -0
- package/dist/runtime-context.js +279 -85
- package/dist/runtime-escada.js +429 -0
- package/dist/runtime-profiles.js +130 -63
- package/dist/runtimes.js +42 -5
- package/dist/saida-segura.js +3 -2
- package/dist/security-scan/agil.js +366 -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 +196 -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 +19 -2
- package/dist/session-watcher-claude.js +74 -19
- package/dist/session-watcher-grok.js +425 -0
- package/dist/session-watcher.js +174 -13
- package/dist/sessoes-contas.js +42 -5
- package/dist/sessoes-inventario.js +1 -1
- package/dist/sessoes.js +25 -23
- package/dist/setup.js +67 -66
- package/dist/ship-publicar.js +263 -92
- package/dist/ship.js +160 -17
- package/dist/superficie.js +14 -11
- package/dist/thread-close.js +9 -9
- package/dist/thread.js +121 -18
- 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 +5 -2
- package/dist/varredura-acoes.js +500 -0
- package/dist/verify.js +491 -32
- package/dist/worktree-local.js +12 -10
- package/dist/worktree.js +81 -85
- 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 +10 -5
- package/references/security-checklist.md +3 -3
- 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
package/dist/locale-thread.js
CHANGED
|
@@ -9,8 +9,9 @@
|
|
|
9
9
|
* nome da operacao de conducao) so e traduzido na impressao; `thread.json` nao muda.
|
|
10
10
|
*/
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.THREAD_EN = exports.THREAD_PT_BR = void 0;
|
|
13
|
-
|
|
12
|
+
exports.THREAD_EN = exports.THREAD_PT_BR = exports.PAUSA_SOBRE_EN = void 0;
|
|
13
|
+
/** O assunto da pausa de cada bloco (`modos.ts`) em ingles: um mapa so, para o `thread` e para o prompt de fase. */
|
|
14
|
+
exports.PAUSA_SOBRE_EN = {
|
|
14
15
|
objetivo: 'goal', plano: 'plan', implementacao: 'implementation', evidencias: 'evidence', push: 'push', score: 'score',
|
|
15
16
|
premissas: 'assumptions', 'evidencias, com autorizacao antecipada de push': 'evidence, with push authorized in advance',
|
|
16
17
|
};
|
|
@@ -19,7 +20,7 @@ exports.THREAD_PT_BR = {
|
|
|
19
20
|
/** Largura do rotulo no resumo (` id valor`). */
|
|
20
21
|
largura: 9,
|
|
21
22
|
rotulos: { id: 'id', slug: 'slug', nome: 'nome', modo: 'modo', ciclo: 'ciclo', fase: 'fase', status: 'status', base: 'base',
|
|
22
|
-
worktree: 'worktree', conducao: 'conducao', score: 'score' },
|
|
23
|
+
worktree: 'worktree', conducao: 'conducao', score: 'score', check: 'check' },
|
|
23
24
|
modo: (tag, pausas) => `${tag} (${pausas} pausas humanas previstas)`,
|
|
24
25
|
cicloPadrao: 'padrao do modo',
|
|
25
26
|
status: (status) => status,
|
|
@@ -28,6 +29,9 @@ exports.THREAD_PT_BR = {
|
|
|
28
29
|
validacao: ' validacao CHECK em runtime diferente do GO (exigido pela thread)',
|
|
29
30
|
prontoQuando: (n) => ` pronto quando (${n} criterio(s) executaveis)`,
|
|
30
31
|
score: (valor, por, regime, quando) => `${valor}/5 por ${por} (${regime}) em ${quando}`,
|
|
32
|
+
/** RM-072 (D17): o modo do ultimo `verify_run`; o nome de produto ("Agile Check", "Classic Check") e o mesmo nas duas linguas. */
|
|
33
|
+
check: (nome, origem, quando, sha) => `${nome}, ${origem === 'opcao' ? 'pela opcao --check' : origem === 'manifesto' ? 'pelo manifesto' : 'pelo padrao'}, ` +
|
|
34
|
+
`no verify de ${quando} (${sha})`,
|
|
31
35
|
blocosPrevistos: ' blocos previstos',
|
|
32
36
|
pausaPrevista: (sobre) => `pausa prevista: ${sobre}`,
|
|
33
37
|
pausaSobre: (sobre) => sobre,
|
|
@@ -48,6 +52,7 @@ exports.THREAD_PT_BR = {
|
|
|
48
52
|
'fix.reverify': 'ork fix reverify',
|
|
49
53
|
'mcp.verify': 'ork_verify (MCP)',
|
|
50
54
|
handoff: 'reserva de quem assumiu',
|
|
55
|
+
'branch.atualizar': 'merge da base na branch',
|
|
51
56
|
},
|
|
52
57
|
// ork thread new
|
|
53
58
|
criada: 'Thread criada.',
|
|
@@ -119,6 +124,58 @@ exports.THREAD_PT_BR = {
|
|
|
119
124
|
memoriaGravada: (tenant, gravados) => `Memoria (orkmind, tenant ${tenant}): ${gravados}.`,
|
|
120
125
|
nadaAGravar: 'nada a gravar',
|
|
121
126
|
gravacoesFalhas: (n) => ` ${n} gravacao(oes) nao concluida(s); veja ork memory status.`,
|
|
127
|
+
// ork thread new --from-finding. IDs, códigos, claims e valores do achado continuam dados.
|
|
128
|
+
fromFinding: {
|
|
129
|
+
achadoNaoExiste: (id, board) => `achado "${id}" nao existe no board de divida (${board}). Veja: ork audit divida`,
|
|
130
|
+
recusada: (id) => `Thread a partir do achado ${id} RECUSADA.`,
|
|
131
|
+
descricaoDoMotivo: (_motivo, descricao) => descricao,
|
|
132
|
+
motivoTipado: (motivo) => ` motivo tipado: ${motivo}`,
|
|
133
|
+
detalhe: (detalhe) => ` detalhe: ${detalhe}`,
|
|
134
|
+
correcao: (correcao) => ` correcao: ${correcao}`,
|
|
135
|
+
criada: (id) => `Thread criada a partir do achado ${id}.`,
|
|
136
|
+
simulacao: 'Simulacao (--dry-run), nada foi gravado.',
|
|
137
|
+
origemDoGoal: (id) => ` origem do GOAL: .orkastery/threads/${id}/achado.json`,
|
|
138
|
+
pedidoMontado: 'Pedido de GOAL ja montado a partir do achado:',
|
|
139
|
+
proximoPasso: 'Proximo passo:',
|
|
140
|
+
comandoDoProximoPasso: (id) => ` ork phase run ${id} GOAL --prompt "$(cat .orkastery/threads/${id}/pedido-goal.md)"`,
|
|
141
|
+
jaVirouThread: (achado, thread) => `o achado ${achado} ja originou a thread ${thread}`,
|
|
142
|
+
continueNaThread: (thread) => `continue naquela thread: ork thread status ${thread}`,
|
|
143
|
+
claimPendente: (claim) => `a claim ${claim} do achado ainda nao foi reexecutada no HEAD real: ` +
|
|
144
|
+
'o auditor nao tem direito a self-report',
|
|
145
|
+
proveOAchado: (rodada) => `prove o achado antes de abrir trabalho: ork audit verify ${rodada}`,
|
|
146
|
+
claimReprovada: (claim) => `a claim ${claim} do achado REPROVOU na reexecucao no HEAD real`,
|
|
147
|
+
descarteOAchado: 'o achado nao se sustenta: corrija a evidencia na rodada, ou descarte o achado, em vez de abrir thread sobre ele',
|
|
148
|
+
simulacaoDetalhe: 'simulacao (--dry-run): nenhuma thread e nenhum carimbo no board foram gravados',
|
|
149
|
+
claimSemComando: (claim) => `AVISO: a claim ${claim} do achado nao tem comando de verificacao ` +
|
|
150
|
+
'(motivo tipado claims.unverifiable, que avisa e nao bloqueia)',
|
|
151
|
+
achadoAberto: (achado, thread) => `achado ${achado} aberto como thread ${thread}, com a evidencia e a claim junto`,
|
|
152
|
+
achadoCabecalho: (id, severidade, pack, regra, titulo) => ` ${id} [${severidade}] ${pack}/${regra} ${titulo}`,
|
|
153
|
+
evidencia: (valor) => ` evidencia ${valor}`,
|
|
154
|
+
descricao: (valor) => ` descricao ${valor}`,
|
|
155
|
+
claim: (id, estado, alegacao) => ` claim ${id} [${estado}] ${alegacao}`,
|
|
156
|
+
verificar: (comando) => ` verificar ${comando}`,
|
|
157
|
+
semComando: '(sem comando: o auditor nao comprovou o achado)',
|
|
158
|
+
impacto: (valor) => ` impacto ${valor}`,
|
|
159
|
+
fix: (valor) => ` fix ${valor}`,
|
|
160
|
+
irreversivel: (valor) => ` irreversivel ${valor}`,
|
|
161
|
+
estimativa: (valor) => ` estimativa ${valor}`,
|
|
162
|
+
destino: (destino, regime) => ` destino ${destino} (regime ${regime})`,
|
|
163
|
+
estado: (estado, thread) => ` estado ${estado}${thread ? ` (thread ${thread})` : ''}`,
|
|
164
|
+
pedidoCabecalho: (id, pack, regra, severidade) => `Achado de auditoria ${id} (pack ${pack}, regra ${regra}, severidade ${severidade}).`,
|
|
165
|
+
pedidoTitulo: (titulo) => `Titulo: ${titulo}`,
|
|
166
|
+
pedidoEvidencia: (evidencia) => `Evidencia: ${evidencia}`,
|
|
167
|
+
pedidoDescricao: (descricao) => `Descricao: ${descricao}`,
|
|
168
|
+
pedidoClaim: (id, estado, alegacao) => `Alegacao do auditor (claim ${id}, estado ${estado}): ${alegacao}`,
|
|
169
|
+
pedidoVerificar: (comando) => `Como reexecutar a evidencia: ${comando}`,
|
|
170
|
+
naoDeclarado: '(nao declarado pelo auditor)',
|
|
171
|
+
proposta: 'Proposta de ajuste levantada pela rodada:',
|
|
172
|
+
propostaImpacto: (valor) => ` impacto ${valor}`,
|
|
173
|
+
propostaFix: (valor) => ` fix sugerido ${valor}`,
|
|
174
|
+
propostaIrreversivel: (valor) => ` irreversivel ${valor}`,
|
|
175
|
+
propostaEstimativa: (valor) => ` estimativa ${valor}`,
|
|
176
|
+
origem: (rodada, produto, estagio, postura) => `Origem: rodada ${rodada}, produto ${produto}, estagio ${estagio}, postura ${postura}.`,
|
|
177
|
+
propostaNaoDecisao: 'O fix acima e proposta do auditor, nao decisao: valide no GOAL antes de implementar.',
|
|
178
|
+
},
|
|
122
179
|
// ork thread status
|
|
123
180
|
naoEncontrada: (id, dir) => `thread "${id}" nao encontrada em ${dir}`,
|
|
124
181
|
usoStatus: 'uso: ork thread status <thread-id>',
|
|
@@ -146,11 +203,27 @@ exports.THREAD_PT_BR = {
|
|
|
146
203
|
sessoesDespachadas: ' sessoes despachadas (estado real conferido em `ork sessions`)',
|
|
147
204
|
sessao: (verificada, canal) => `verificada no runtime: ${verificada ? 'sim' : 'nao'} canal: ${canal}`,
|
|
148
205
|
pausasDoModo: (n) => ` pausas humanas do modo: ${n}`,
|
|
206
|
+
// F3b (D1): ork thread list, close e entrega
|
|
207
|
+
colunasDaLista: ['ID', 'SLUG', 'MODO', 'FASE', 'STATUS', 'PAUSAS', 'SESSOES'],
|
|
208
|
+
listaVazia: (todas, modo) => `${todas ? 'Nenhuma thread em .orkastery/threads.'
|
|
209
|
+
: 'Nenhuma thread aberta ou pausada (use --todas para ver as fechadas).'} Crie uma com: ork thread new "<nome>" --modo ${modo}`,
|
|
210
|
+
fechadasOmitidas: (n) => ` ${n} fechada(s) omitida(s). Use --todas para ver todas.`,
|
|
211
|
+
informeOId: 'informe o id da thread',
|
|
212
|
+
/** D14: as recusas de `thread close` e `thread entrega` (`thread-close.ts`), por `ErroDoCatalogo`. */
|
|
213
|
+
sha256Invalido: 'sha256 inválido',
|
|
214
|
+
artefatoForaDoProjeto: 'artefato deve estar dentro do projeto',
|
|
215
|
+
artefatoNaoRegular: 'artefato deve ser arquivo regular',
|
|
216
|
+
artefatoDiverge: 'hash do artefato diverge',
|
|
217
|
+
artefatoExige: 'artefato exige thread aberta e autoria explícita',
|
|
218
|
+
motivoDoFechamento: 'motivo deve ser orfa, engano ou superada',
|
|
219
|
+
fechamentoExige: 'fechamento exige autoria e justificativa',
|
|
220
|
+
encerradaPorOutroMotivo: 'thread já encerrada por outro motivo',
|
|
221
|
+
entregueExigeMaster: 'thread entregue ou pontuada exige MASTER, não fechamento administrativo',
|
|
149
222
|
};
|
|
150
223
|
exports.THREAD_EN = {
|
|
151
224
|
largura: 10,
|
|
152
225
|
rotulos: { id: 'id', slug: 'slug', nome: 'name', modo: 'mode', ciclo: 'cycle', fase: 'phase', status: 'status', base: 'base',
|
|
153
|
-
worktree: 'worktree', conducao: 'conduction', score: 'score' },
|
|
226
|
+
worktree: 'worktree', conducao: 'conduction', score: 'score', check: 'check' },
|
|
154
227
|
modo: (tag, pausas) => `${tag} (${pausas} planned human pause${pausas === 1 ? '' : 's'})`,
|
|
155
228
|
cicloPadrao: 'default for the mode',
|
|
156
229
|
status: (status) => STATUS_EN[status] ?? status,
|
|
@@ -159,9 +232,11 @@ exports.THREAD_EN = {
|
|
|
159
232
|
validacao: ' validation CHECK on a runtime other than the GO one (required by the thread)',
|
|
160
233
|
prontoQuando: (n) => ` done when (${n} executable criteri${n === 1 ? 'on' : 'a'})`,
|
|
161
234
|
score: (valor, por, regime, quando) => `${valor}/5 by ${por} (${regime}) on ${quando}`,
|
|
235
|
+
check: (nome, origem, quando, sha) => `${nome}, ${origem === 'opcao' ? 'by the --check option' : origem === 'manifesto'
|
|
236
|
+
? 'by the manifest' : 'by default'}, in the verify of ${quando} (${sha})`,
|
|
162
237
|
blocosPrevistos: ' planned blocks',
|
|
163
238
|
pausaPrevista: (sobre) => `planned pause: ${sobre}`,
|
|
164
|
-
pausaSobre: (sobre) => PAUSA_SOBRE_EN[sobre] ?? sobre,
|
|
239
|
+
pausaSobre: (sobre) => exports.PAUSA_SOBRE_EN[sobre] ?? sobre,
|
|
165
240
|
semPausa: 'no planned human pause',
|
|
166
241
|
slug: (produto, assunto, fases, rotacao) => `product "${produto}", subject "${assunto}", phases "${fases}"${rotacao ? `, rotation ${rotacao}` : ''}`,
|
|
167
242
|
conduzido: (canal, quem, fase, desde) => `conducted now by ${canal}, ${quem}, phase ${fase}, since ${desde}`,
|
|
@@ -177,6 +252,7 @@ exports.THREAD_EN = {
|
|
|
177
252
|
'fix.reverify': 'ork fix reverify',
|
|
178
253
|
'mcp.verify': 'ork_verify (MCP)',
|
|
179
254
|
handoff: 'reservation of whoever took over',
|
|
255
|
+
'branch.atualizar': 'merge of the base into the branch',
|
|
180
256
|
},
|
|
181
257
|
criada: 'Thread created.',
|
|
182
258
|
simulacao: 'Dry run (--dry-run): nothing was written.',
|
|
@@ -250,6 +326,60 @@ exports.THREAD_EN = {
|
|
|
250
326
|
memoriaGravada: (tenant, gravados) => `Memory (orkmind, tenant ${tenant}): ${gravados}.`,
|
|
251
327
|
nadaAGravar: 'nothing to write',
|
|
252
328
|
gravacoesFalhas: (n) => ` ${n} write(s) not completed; see \`ork memory status\`.`,
|
|
329
|
+
fromFinding: {
|
|
330
|
+
achadoNaoExiste: (id, board) => `finding "${id}" does not exist on the debt board (${board}). See: \`ork audit divida\``,
|
|
331
|
+
recusada: (id) => `Thread from finding ${id} REFUSED.`,
|
|
332
|
+
descricaoDoMotivo: (motivo) => ({
|
|
333
|
+
'claims.failed': 'the finding claim has no passing proof on the real HEAD',
|
|
334
|
+
'claims.unverifiable': 'the finding claim has no executable verification command',
|
|
335
|
+
'achado.ja-virou-thread': 'the finding already opened a thread and cannot open another one',
|
|
336
|
+
}[motivo] ?? 'the typed audit rule refused the finding'),
|
|
337
|
+
motivoTipado: (motivo) => ` typed reason: ${motivo}`,
|
|
338
|
+
detalhe: (detalhe) => ` detail: ${detalhe}`,
|
|
339
|
+
correcao: (correcao) => ` fix: ${correcao}`,
|
|
340
|
+
criada: (id) => `Thread created from finding ${id}.`,
|
|
341
|
+
simulacao: 'Dry run (--dry-run): nothing was written.',
|
|
342
|
+
origemDoGoal: (id) => ` GOAL source: .orkastery/threads/${id}/achado.json`,
|
|
343
|
+
pedidoMontado: 'GOAL request already assembled from the finding:',
|
|
344
|
+
proximoPasso: 'Next step:',
|
|
345
|
+
comandoDoProximoPasso: (id) => ` ork phase run ${id} GOAL --prompt "$(cat .orkastery/threads/${id}/pedido-goal.md)"`,
|
|
346
|
+
jaVirouThread: (achado, thread) => `finding ${achado} already opened thread ${thread}`,
|
|
347
|
+
continueNaThread: (thread) => `continue in that thread: \`ork thread status ${thread}\``,
|
|
348
|
+
claimPendente: (claim) => `finding claim ${claim} has not been rerun on the real HEAD: the auditor cannot self-report`,
|
|
349
|
+
proveOAchado: (rodada) => `prove the finding before opening work: \`ork audit verify ${rodada}\``,
|
|
350
|
+
claimReprovada: (claim) => `finding claim ${claim} FAILED when rerun on the real HEAD`,
|
|
351
|
+
descarteOAchado: 'the finding is not supported: fix the evidence in the audit run or discard the finding instead of opening a thread',
|
|
352
|
+
simulacaoDetalhe: 'dry run: no thread or board stamp was written',
|
|
353
|
+
claimSemComando: (claim) => `WARNING: finding claim ${claim} has no verification command ` +
|
|
354
|
+
'(typed reason claims.unverifiable, which warns and does not block)',
|
|
355
|
+
achadoAberto: (achado, thread) => `finding ${achado} opened as thread ${thread}, with its evidence and claim`,
|
|
356
|
+
achadoCabecalho: (id, severidade, pack, regra, titulo) => ` ${id} [${severidade}] ${pack}/${regra} ${titulo}`,
|
|
357
|
+
evidencia: (valor) => ` evidence ${valor}`,
|
|
358
|
+
descricao: (valor) => ` description ${valor}`,
|
|
359
|
+
claim: (id, estado, alegacao) => ` claim ${id} [${estado}] ${alegacao}`,
|
|
360
|
+
verificar: (comando) => ` verify ${comando}`,
|
|
361
|
+
semComando: '(no command: the auditor did not prove the finding)',
|
|
362
|
+
impacto: (valor) => ` impact ${valor}`,
|
|
363
|
+
fix: (valor) => ` fix ${valor}`,
|
|
364
|
+
irreversivel: (valor) => ` irreversible ${valor}`,
|
|
365
|
+
estimativa: (valor) => ` estimate ${valor}`,
|
|
366
|
+
destino: (destino, regime) => ` destination ${destino} (${regime} regime)`,
|
|
367
|
+
estado: (estado, thread) => ` state ${estado}${thread ? ` (thread ${thread})` : ''}`,
|
|
368
|
+
pedidoCabecalho: (id, pack, regra, severidade) => `Audit finding ${id} (pack ${pack}, rule ${regra}, severity ${severidade}).`,
|
|
369
|
+
pedidoTitulo: (titulo) => `Title: ${titulo}`,
|
|
370
|
+
pedidoEvidencia: (evidencia) => `Evidence: ${evidencia}`,
|
|
371
|
+
pedidoDescricao: (descricao) => `Description: ${descricao}`,
|
|
372
|
+
pedidoClaim: (id, estado, alegacao) => `Auditor claim (${id}, state ${estado}): ${alegacao}`,
|
|
373
|
+
pedidoVerificar: (comando) => `How to rerun the evidence: ${comando}`,
|
|
374
|
+
naoDeclarado: '(not declared by the auditor)',
|
|
375
|
+
proposta: 'Adjustment proposed by the audit run:',
|
|
376
|
+
propostaImpacto: (valor) => ` impact ${valor}`,
|
|
377
|
+
propostaFix: (valor) => ` suggested fix ${valor}`,
|
|
378
|
+
propostaIrreversivel: (valor) => ` irreversible ${valor}`,
|
|
379
|
+
propostaEstimativa: (valor) => ` estimate ${valor}`,
|
|
380
|
+
origem: (rodada, produto, estagio, postura) => `Source: run ${rodada}, product ${produto}, stage ${estagio}, stance ${postura}.`,
|
|
381
|
+
propostaNaoDecisao: 'The fix above is the auditor\'s proposal, not a decision: validate it in GOAL before implementing.',
|
|
382
|
+
},
|
|
253
383
|
naoEncontrada: (id, dir) => `thread "${id}" not found in ${dir}`,
|
|
254
384
|
usoStatus: 'usage: ork thread status <thread-id>',
|
|
255
385
|
slugInvalido: (slug, regex) => `invalid slug: "${slug}" (canonical regex: ${regex})`,
|
|
@@ -274,4 +404,18 @@ exports.THREAD_EN = {
|
|
|
274
404
|
sessoesDespachadas: ' dispatched sessions (real state checked in `ork sessions`)',
|
|
275
405
|
sessao: (verificada, canal) => `verified in the runtime: ${verificada ? 'yes' : 'no'} channel: ${canal}`,
|
|
276
406
|
pausasDoModo: (n) => ` planned human pauses in this mode: ${n}`,
|
|
407
|
+
colunasDaLista: ['ID', 'SLUG', 'MODE', 'PHASE', 'STATUS', 'PAUSES', 'SESSIONS'],
|
|
408
|
+
listaVazia: (todas, modo) => `${todas ? 'No thread in `.orkastery/threads`.'
|
|
409
|
+
: 'No open or paused thread (use `--todas` to see the closed ones).'} Create one with \`ork thread new "<name>" --modo ${modo}\`.`,
|
|
410
|
+
fechadasOmitidas: (n) => ` ${n} closed thread(s) hidden. Use \`--todas\` to see all.`,
|
|
411
|
+
informeOId: 'pass the thread id',
|
|
412
|
+
sha256Invalido: 'invalid sha256',
|
|
413
|
+
artefatoForaDoProjeto: 'the artifact must be inside the project',
|
|
414
|
+
artefatoNaoRegular: 'the artifact must be a regular file',
|
|
415
|
+
artefatoDiverge: 'the artifact hash does not match',
|
|
416
|
+
artefatoExige: 'an artifact needs an open thread and an explicit author',
|
|
417
|
+
motivoDoFechamento: 'the reason must be `orfa`, `engano` or `superada`',
|
|
418
|
+
fechamentoExige: 'closing needs an author and a justification',
|
|
419
|
+
encerradaPorOutroMotivo: 'the thread was already closed for another reason',
|
|
420
|
+
entregueExigeMaster: 'a delivered or scored thread needs MASTER, not an administrative close',
|
|
277
421
|
};
|
package/dist/locale-verify.js
CHANGED
|
@@ -10,11 +10,33 @@
|
|
|
10
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
11
|
exports.VERIFY_EN = exports.VERIFY_PT_BR = void 0;
|
|
12
12
|
exports.VERIFY_PT_BR = {
|
|
13
|
-
uso: 'uso: ork verify <thread-id> [--baseline] [--so-claims] [--canal C] [--esperar [min]]',
|
|
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)`,
|
|
14
16
|
// ork verify --baseline
|
|
15
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`,
|
|
16
28
|
baselineCommit: (commit) => ` commit ${commit}`,
|
|
17
|
-
|
|
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',
|
|
18
40
|
baselineSaida: (caminho, id) => ` saida de quem falhou: as ultimas linhas em ${caminho}, campo baseline.comandos ` +
|
|
19
41
|
`(resumo e trecho); o evento baseline_recorded esta em ork phase list ${id}`,
|
|
20
42
|
baselineSemComandos: ' (nenhum comando em verify: no manifesto: a baseline guarda so o commit, e o verify nao tem como separar regressao de divida)',
|
|
@@ -22,8 +44,16 @@ exports.VERIFY_PT_BR = {
|
|
|
22
44
|
titulo: (id) => `ork verify da thread ${id}`,
|
|
23
45
|
head: (commit) => ` HEAD real ${commit}`,
|
|
24
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'})`,
|
|
25
51
|
baseline: (sha, quando) => ` baseline ${sha} de ${quando}`,
|
|
26
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'}`,
|
|
27
57
|
preparo: (situacao, segundos, alterado) => ` preparo ${situacao} em ` +
|
|
28
58
|
`${segundos} s, uma vez para a rodada; produto ` +
|
|
29
59
|
`${alterado ? 'MUDOU no meio da rodada: nenhum veredito vale' : 'conferido do preparo ao fim'}`,
|
|
@@ -55,6 +85,7 @@ exports.VERIFY_PT_BR = {
|
|
|
55
85
|
regressao: (nome, comando) => ` regressao ${nome}: ${comando}`,
|
|
56
86
|
preExistente: (nome, comando) => ` pre-existente ${nome}: ${comando}`,
|
|
57
87
|
falhaSemBaseline: (nome, comando) => ` sem baseline ${nome}: ${comando}`,
|
|
88
|
+
falhaComBaselineSemVeredito: (nome, comando) => ` sem baseline ${nome}: ${comando} (a baseline nao teve veredito dele)`,
|
|
58
89
|
verdade: 'Veredito: VERDADE SUSTENTADA (nenhum motivo bloqueante).',
|
|
59
90
|
reprovado: (motivos) => `Veredito: REPROVADO. Motivos tipados: ${motivos}`,
|
|
60
91
|
// Detalhe da claim reexecutada (vai ao ledger em pt-BR)
|
|
@@ -69,20 +100,53 @@ exports.VERIFY_PT_BR = {
|
|
|
69
100
|
filaPesadaOcupante: (operacao, thread, desde) => `${operacao}${thread ? ` da thread ${thread}` : ''} desde ${desde}`,
|
|
70
101
|
filaPesadaEsperando: (operacao, ocupantes) => `Esperando a vez na fila de recursos pesados (concurrency.max_parallel_heavy) para o ${operacao}: ` +
|
|
71
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}`,
|
|
72
115
|
};
|
|
73
116
|
exports.VERIFY_EN = {
|
|
74
|
-
uso: 'usage: ork verify <thread-id> [--baseline] [--so-claims] [--canal C] [--esperar [min]]',
|
|
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)`,
|
|
75
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',
|
|
76
129
|
baselineCommit: (commit) => ` commit ${commit}`,
|
|
77
|
-
|
|
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',
|
|
78
137
|
baselineSaida: (caminho, id) => ` output of the failing commands: the last lines in ${caminho}, field \`baseline.comandos\` ` +
|
|
79
138
|
`(summary and excerpt); the baseline_recorded event is in \`ork phase list ${id}\``,
|
|
80
139
|
baselineSemComandos: ' (no command under `verify:` in the manifest: the baseline keeps only the commit, and verify cannot tell a regression from existing debt)',
|
|
81
140
|
titulo: (id) => `ork verify for thread ${id}`,
|
|
82
141
|
head: (commit) => ` real HEAD ${commit}`,
|
|
83
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'})`,
|
|
84
145
|
baseline: (sha, quando) => ` baseline ${sha} from ${quando}`,
|
|
85
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'}`,
|
|
86
150
|
preparo: (situacao, segundos, alterado) => ` prepare ${situacao} in ${segundos} s, once for the run; product ` +
|
|
87
151
|
`${alterado ? 'CHANGED during the run: no verdict counts' : 'checked from prepare to end'}`,
|
|
88
152
|
stealMedido: (pct, fonte, limiar) => ` steal ${pct}% in the run (${fonte}; above ${limiar}%, a failing clock-bound test gets no verdict)`,
|
|
@@ -110,6 +174,7 @@ exports.VERIFY_EN = {
|
|
|
110
174
|
regressao: (nome, comando) => ` regression ${nome}: ${comando}`,
|
|
111
175
|
preExistente: (nome, comando) => ` pre-existing ${nome}: ${comando}`,
|
|
112
176
|
falhaSemBaseline: (nome, comando) => ` no baseline ${nome}: ${comando}`,
|
|
177
|
+
falhaComBaselineSemVeredito: (nome, comando) => ` no baseline ${nome}: ${comando} (the baseline had no verdict for it)`,
|
|
113
178
|
verdade: 'Verdict: VERIFIED (no blocking reason).',
|
|
114
179
|
reprovado: (motivos) => `Verdict: FAILED. Typed reasons: ${motivos}`,
|
|
115
180
|
claimNegativaSemComando: 'negative or absolute claim without a verification command: there is no way to prove it',
|
|
@@ -122,4 +187,15 @@ exports.VERIFY_EN = {
|
|
|
122
187
|
filaPesadaOcupante: (operacao, thread, desde) => `${operacao}${thread ? ` of thread ${thread}` : ''} since ${desde}`,
|
|
123
188
|
filaPesadaEsperando: (operacao, ocupantes) => `Waiting for a turn in the heavy-work queue (\`concurrency.max_parallel_heavy\`) for the ${operacao}: ` +
|
|
124
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`,
|
|
125
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
|
+
};
|