@orkastery/cli 0.5.1 → 0.5.6
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/claude-code/README.md +158 -0
- package/adapters/claude-code/agents/ork-master.md +2 -0
- package/adapters/claude-code/commands/master.md +8 -0
- package/adapters/claude-code/commands/ork.md +9 -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-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 +117 -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-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 +18 -3
- package/adapters/hermes/README.md +1 -0
- package/adapters/hermes/bin/ork-network-status.sh +10 -0
- package/adapters/hermes/hermes.plugin.json +1 -0
- package/adapters/hermes/hitl-ingress/__init__.py +2 -2
- package/adapters/hermes/skills/orkastery-devmaster/SKILL.md +7 -6
- package/adapters/openclaw/README.md +26 -5
- package/adapters/openclaw/dist/hitl-ingress.js +2 -2
- package/adapters/openclaw/dist/index.js +46 -11
- package/adapters/openclaw/openclaw.plugin.json +5 -1
- package/adapters/openclaw/package.json +2 -2
- package/adapters/openclaw/src/hitl-ingress.ts +2 -2
- package/adapters/openclaw/src/index.ts +49 -11
- 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/orkmind_bridge.py +117 -9
- package/dist/adapters/claude-bg.js +116 -18
- package/dist/adapters/codex.js +14 -4
- package/dist/agents-md.js +24 -14
- package/dist/auditrun.js +22 -3
- package/dist/board.js +20 -17
- package/dist/branch-de-estado.js +88 -10
- package/dist/busca-semantica.js +52 -12
- package/dist/canarios-rm057.js +149 -0
- package/dist/canarios.js +2 -0
- package/dist/catalogo.js +33 -0
- package/dist/ci.js +21 -8
- package/dist/claims-conferir.js +342 -0
- package/dist/claims.js +41 -1
- package/dist/company-brain-client.js +36 -1
- package/dist/company-brain-context.js +158 -22
- package/dist/company-brain-journal.js +2 -1
- package/dist/company-brain-migration.js +36 -1
- package/dist/conducao-sentinela.js +388 -0
- package/dist/conducao-texto.js +12 -18
- package/dist/conducao.js +122 -30
- package/dist/conhecimento.js +490 -0
- package/dist/docs.js +70 -17
- package/dist/doctor-pulse-cron.js +349 -0
- package/dist/doctor-rede.js +150 -0
- package/dist/doctor.js +195 -111
- package/dist/entrega-pr.js +42 -29
- package/dist/escopo-escrita.js +10 -1
- package/dist/esgotamentos.js +181 -0
- package/dist/estado-thread.js +23 -1
- package/dist/experiencia-instalacao.js +45 -25
- package/dist/experiencia.js +12 -2
- package/dist/fabrica-batida.js +310 -0
- package/dist/fabrica-estado.js +52 -14
- package/dist/fabrica-publicar.js +9 -1
- package/dist/fechamento.js +20 -66
- package/dist/fila-pesada.js +444 -0
- package/dist/fix.js +3 -2
- package/dist/forja.js +31 -7
- package/dist/gates.js +3 -24
- package/dist/handoff.js +10 -6
- package/dist/hitl-contract.js +59 -4
- package/dist/hitl-curto.js +11 -6
- package/dist/hitl-gates.js +5 -0
- package/dist/hitl-local-receipt.js +2 -0
- package/dist/hitl-lote.js +5 -2
- package/dist/hitl-resumo.js +38 -3
- package/dist/hitl-tempo-parado.js +201 -0
- package/dist/hitl-texto-livre.js +5 -5
- package/dist/hitl.js +29 -33
- package/dist/horario.js +41 -7
- package/dist/hosts.js +104 -11
- package/dist/impedimento.js +299 -0
- package/dist/index.js +961 -542
- package/dist/indice-vetorial.js +87 -10
- package/dist/indice.js +9 -1
- package/dist/init.js +56 -43
- package/dist/instabilidade.js +144 -0
- package/dist/integracoes-locais.js +4 -0
- package/dist/intelligence-graph-cli.js +170 -16
- package/dist/intelligence-graph-contexto.js +254 -0
- 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-parsers.js +6 -4
- package/dist/intelligence-graph-query.js +66 -19
- package/dist/leases.js +664 -87
- package/dist/ledger-stats.js +15 -1
- package/dist/ledger.js +18 -1
- package/dist/licoes.js +1 -0
- package/dist/liveness.js +6 -3
- package/dist/locale-ajuda.js +761 -0
- package/dist/locale-gerados.js +160 -0
- package/dist/locale-master.js +99 -0
- package/dist/locale-onboarding.js +92 -0
- package/dist/locale-phase.js +151 -0
- package/dist/locale-pulse.js +211 -0
- package/dist/locale-retry.js +385 -0
- package/dist/locale-roadmap.js +102 -0
- package/dist/locale-ship.js +494 -0
- package/dist/locale-thread.js +277 -0
- package/dist/locale-verify.js +125 -0
- package/dist/locale.js +714 -0
- package/dist/maestro-runtime.js +4 -1
- package/dist/manifest.js +149 -4
- package/dist/maquina.js +23 -4
- package/dist/master-digest.js +6 -1
- package/dist/master-nota.js +18 -11
- package/dist/master.js +145 -31
- package/dist/mcp-artifacts.js +43 -3
- package/dist/mcp-git.js +42 -8
- package/dist/mcp-grafo-worker.js +5 -3
- package/dist/mcp-grafo.js +55 -6
- package/dist/mcp-server.js +22 -3
- package/dist/mcp-ship.js +3 -1
- package/dist/mcp-verify.js +6 -1
- package/dist/memoria.js +48 -6
- package/dist/modos.js +3 -6
- package/dist/network-roadmap.js +196 -18
- package/dist/noctum-arco.js +911 -0
- package/dist/noctum-capacidade.js +141 -0
- package/dist/noctum-envelope.js +810 -0
- package/dist/noctum-execucao.js +304 -0
- package/dist/noctum-fila.js +280 -0
- package/dist/ocupacao.js +40 -5
- package/dist/onboarding.js +40 -21
- package/dist/orkmind.js +99 -7
- package/dist/orquestracao.js +24 -21
- package/dist/parado-no-condutor.js +219 -38
- package/dist/phase.js +160 -52
- package/dist/policies.js +56 -5
- package/dist/portfolio.js +8 -3
- package/dist/postura-local.js +234 -0
- package/dist/preflight.js +11 -10
- package/dist/procedencia.js +225 -0
- package/dist/projeto-alvo.js +132 -5
- package/dist/prompts.js +40 -1
- package/dist/prova-ativacao.js +75 -6
- package/dist/pulse-delivery.js +47 -4
- package/dist/pulse.js +98 -19
- package/dist/ratelimit.js +24 -6
- package/dist/recall.js +3 -1
- package/dist/redacao-saida.js +63 -0
- package/dist/rede-adesao.js +399 -0
- package/dist/rede-forja.js +289 -0
- package/dist/rede-projetos.js +239 -0
- package/dist/rede-status.js +337 -0
- package/dist/rede.js +980 -0
- package/dist/retry.js +291 -140
- package/dist/roadmap-reservas.js +20 -3
- package/dist/roadmap-status.js +150 -34
- package/dist/runtime-context.js +181 -3
- package/dist/runtime-profiles.js +22 -1
- package/dist/runtimes.js +2 -1
- package/dist/saida-segura.js +58 -0
- package/dist/session-events.js +7 -3
- package/dist/session-watcher-claude.js +120 -24
- package/dist/session-watcher.js +185 -33
- package/dist/sessoes-contas.js +187 -0
- package/dist/sessoes-inventario.js +6 -18
- package/dist/sessoes.js +83 -2
- package/dist/ship-publicar.js +800 -0
- package/dist/ship.js +157 -88
- package/dist/steal.js +77 -0
- package/dist/thread-close.js +3 -2
- package/dist/thread.js +299 -49
- package/dist/util.js +8 -1
- package/dist/verify.js +141 -52
- package/dist/vida-da-thread.js +254 -0
- package/dist/worktree-local.js +165 -0
- package/dist/worktree.js +25 -2
- package/dist/yaml.js +27 -8
- package/eval/fixtures/fx-pedido-colado/caso.json +20 -0
- package/package.json +7 -3
- package/references/definition-of-done.md +1 -1
- package/schemas/code-artifact-graph.v1.schema.json +2 -1
- package/skills/README.md +1 -1
- package/skills/core/orkastery-bootstrap/SKILL.md +2 -2
- package/skills/phases/master-metrics/SKILL.md +8 -3
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* RM-061, fatia F2a: a familia `thread` do catalogo de mensagens (`ork thread new` e `ork thread
|
|
4
|
+
* status`, o resumo da thread, a linha de conducao, a worktree e os avisos da criacao). O pt-BR e a
|
|
5
|
+
* fonte; o ingles e tipado por ele. Sem import do nucleo: o que vem do estado entra por parametro.
|
|
6
|
+
*
|
|
7
|
+
* Dado gravado sai como foi gravado: nome e assunto da thread, criterio e comando de pronto, o
|
|
8
|
+
* regime do score. Valor fechado que o texto mostra (status da thread, `pausaSobre` de um bloco,
|
|
9
|
+
* nome da operacao de conducao) so e traduzido na impressao; `thread.json` nao muda.
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.THREAD_EN = exports.THREAD_PT_BR = void 0;
|
|
13
|
+
const PAUSA_SOBRE_EN = {
|
|
14
|
+
objetivo: 'goal', plano: 'plan', implementacao: 'implementation', evidencias: 'evidence', push: 'push', score: 'score',
|
|
15
|
+
premissas: 'assumptions', 'evidencias, com autorizacao antecipada de push': 'evidence, with push authorized in advance',
|
|
16
|
+
};
|
|
17
|
+
const STATUS_EN = { aberta: 'open', pausada: 'paused', fechada: 'closed' };
|
|
18
|
+
exports.THREAD_PT_BR = {
|
|
19
|
+
/** Largura do rotulo no resumo (` id valor`). */
|
|
20
|
+
largura: 9,
|
|
21
|
+
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
|
+
modo: (tag, pausas) => `${tag} (${pausas} pausas humanas previstas)`,
|
|
24
|
+
cicloPadrao: 'padrao do modo',
|
|
25
|
+
status: (status) => status,
|
|
26
|
+
raizDoProjeto: '(raiz do projeto)',
|
|
27
|
+
ninguemConduz: 'ninguem conduz agora',
|
|
28
|
+
validacao: ' validacao CHECK em runtime diferente do GO (exigido pela thread)',
|
|
29
|
+
prontoQuando: (n) => ` pronto quando (${n} criterio(s) executaveis)`,
|
|
30
|
+
score: (valor, por, regime, quando) => `${valor}/5 por ${por} (${regime}) em ${quando}`,
|
|
31
|
+
blocosPrevistos: ' blocos previstos',
|
|
32
|
+
pausaPrevista: (sobre) => `pausa prevista: ${sobre}`,
|
|
33
|
+
pausaSobre: (sobre) => sobre,
|
|
34
|
+
semPausa: 'sem pausa humana prevista',
|
|
35
|
+
/** `produto "loc", assunto "x", fases "full"`: o slug de 3 partes descrito. */
|
|
36
|
+
slug: (produto, assunto, fases, rotacao) => `produto "${produto}", assunto "${assunto}", fases "${fases}"${rotacao ? `, rotacao ${rotacao}` : ''}`,
|
|
37
|
+
/** Linha unica de quem conduz (conducao-texto.ts). */
|
|
38
|
+
conduzido: (canal, quem, fase, desde) => `conduzido agora por ${canal}, ${quem}, fase ${fase}, desde ${desde}`,
|
|
39
|
+
quemSessao: (id) => `sessao ${id}`,
|
|
40
|
+
quemProcesso: (pid, operacao) => `processo ${pid} (${operacao})`,
|
|
41
|
+
quemReserva: (por) => `reserva de ${por}`,
|
|
42
|
+
operacoes: {
|
|
43
|
+
'phase.run': 'despacho de fase',
|
|
44
|
+
'retry.run': 'retomada de fase',
|
|
45
|
+
verify: 'ork verify',
|
|
46
|
+
baseline: 'ork verify --baseline',
|
|
47
|
+
'fix.open': 'ork fix open',
|
|
48
|
+
'fix.reverify': 'ork fix reverify',
|
|
49
|
+
'mcp.verify': 'ork_verify (MCP)',
|
|
50
|
+
handoff: 'reserva de quem assumiu',
|
|
51
|
+
},
|
|
52
|
+
// ork thread new
|
|
53
|
+
criada: 'Thread criada.',
|
|
54
|
+
simulacao: 'Simulacao (--dry-run), nada foi gravado.',
|
|
55
|
+
roadmapReservado: (item, maquina) => ` roadmap: ${item} reservado para esta maquina (${maquina})`,
|
|
56
|
+
slugEm3Partes: (descrito) => ` slug em 3 partes: ${descrito}`,
|
|
57
|
+
estado: (id) => ` estado: .orkastery/threads/${id}/thread.json`,
|
|
58
|
+
proximoPasso: (id, fase) => `Proximo passo: ork phase run ${id} ${fase} --prompt "<pedido>"`,
|
|
59
|
+
usoNew: 'uso: ork thread new <nome> --modo <MODO>',
|
|
60
|
+
doneSemComando: (entrada) => `done.sem-comando: "${entrada}" nao traz comando. ` +
|
|
61
|
+
'Use --done "<criterio> :: <comando que o prova>"; criterio sem comando e prosa, nao criterio de pronto.',
|
|
62
|
+
doneIncompleto: (entrada) => `done.incompleto: "${entrada}" precisa de criterio E comando`,
|
|
63
|
+
varianteInvalida: (bruto, variantes) => `variante de ciclo invalida: "${bruto}". Use uma de: ${variantes}`,
|
|
64
|
+
cicloExigeWorktree: (variante) => `uso: o ciclo ${variante} exige worktree isolada: crie a thread sem --sem-worktree ou escolha outro ciclo`,
|
|
65
|
+
worktreeVazia: 'uso: --worktree pede auto ou um diretório que já existe',
|
|
66
|
+
semWorktreeComValor: (valor) => `uso: --sem-worktree não leva valor (recebeu "${valor}")`,
|
|
67
|
+
worktreeESemWorktree: 'uso: --worktree e --sem-worktree se excluem; use um dos dois',
|
|
68
|
+
worktreeChave: (gravada) => ` worktree: ${gravada ? 'criada' : 'seria criada'} pela chave worktree.por_thread do ` +
|
|
69
|
+
'orkastery.yaml; para criar sem ela, use --sem-worktree',
|
|
70
|
+
worktreeFlag: (gravada) => ` worktree: ${gravada ? 'criada' : 'seria criada'} pelo --worktree auto`,
|
|
71
|
+
worktreeCiclo: (gravada, variante) => ` worktree: ${gravada ? 'criada' : 'seria criada'} pelo ciclo ${variante ?? 'da thread'}, que exige worktree isolada`,
|
|
72
|
+
avisoSemWorktree: (id, gravada, c) => {
|
|
73
|
+
const inicio = gravada
|
|
74
|
+
? `Aviso: thread ${id} sem worktree (--sem-worktree): ela trabalha na raiz do projeto`
|
|
75
|
+
: `Aviso: sem worktree (--sem-worktree), a thread ${id} trabalharia na raiz do projeto`;
|
|
76
|
+
const ensure = `Antes do GO, ork worktree ensure ${id} cria a worktree e a branch da thread`;
|
|
77
|
+
if (c.caso === 'sem-commit') {
|
|
78
|
+
return `${inicio}, num repositório ainda sem commit, fora de qualquer branch, e o ork ship não tem branch de origem ` +
|
|
79
|
+
'para entregar. Faça o primeiro commit e siga o aviso de thread sem base.';
|
|
80
|
+
}
|
|
81
|
+
if (c.caso === 'head') {
|
|
82
|
+
return `${inicio}, com o HEAD destacado, fora de qualquer branch, e o ork ship não tem branch de origem para entregar. ${ensure}.`;
|
|
83
|
+
}
|
|
84
|
+
if (c.caso === 'outra') {
|
|
85
|
+
return `${inicio}, na branch ${c.branch}, e o ork ship entrega essa branch como estiver, com o que mais entrar nela; ` +
|
|
86
|
+
`com --para ${c.branch}, a entrega vira push direto, que a policy push_direto_na_base confere. ${ensure}.`;
|
|
87
|
+
}
|
|
88
|
+
const efeito = c.policy === 'block'
|
|
89
|
+
? 'o ork ship barra a entrega por push_direto_na_base (block): não há branch de thread para mergear'
|
|
90
|
+
: c.policy === undefined || c.policy === 'off'
|
|
91
|
+
? 'o ork ship empurra a base direto, sem branch de thread (push_direto_na_base desligada)'
|
|
92
|
+
: `o ork ship avisa push_direto_na_base (${c.policy}) e empurra a base direto, sem branch de thread`;
|
|
93
|
+
return `${inicio}, na branch base ${c.base}, e ${efeito}. ${ensure}; depois do GO, os commits já estão na base e o ship não os separa.`;
|
|
94
|
+
},
|
|
95
|
+
worktreeFalharia: (motivo, dir, branch, peloCiclo) => {
|
|
96
|
+
const semWorktree = peloCiclo ? '' : ' ou crie com --sem-worktree';
|
|
97
|
+
if (motivo === 'pasta-existe') {
|
|
98
|
+
return `Aviso: a pasta ${dir} já existe, e a criação de verdade recusaria a worktree da thread: tire a pasta${semWorktree}.`;
|
|
99
|
+
}
|
|
100
|
+
if (motivo === 'branch-existe') {
|
|
101
|
+
return `Aviso: a branch ${branch} já existe, e a criação de verdade recusaria a worktree da thread: tire a branch${semWorktree}.`;
|
|
102
|
+
}
|
|
103
|
+
return 'Aviso: o repositório ainda não tem commit, e a criação de verdade recusaria a worktree da thread no git worktree add: ' +
|
|
104
|
+
'faça o primeiro commit antes.';
|
|
105
|
+
},
|
|
106
|
+
chaveSemCommit: (gravada) => 'Aviso: worktree.por_thread pede a worktree da thread, mas o repositório ainda não tem commit: ' +
|
|
107
|
+
`a thread ${gravada ? 'nasceu' : 'nasceria'} na raiz do projeto, sem worktree.`,
|
|
108
|
+
semBase: (id, gravada) => gravada
|
|
109
|
+
? `Aviso: o repositório ainda não tem commit, e a thread ${id} nasceu sem base: o ship não tem de onde partir. ` +
|
|
110
|
+
`Faça o primeiro commit, feche esta com ork thread close ${id} --motivo engano --por <quem> ` +
|
|
111
|
+
'--justificativa "aberta antes do primeiro commit" e abra outra.'
|
|
112
|
+
: 'Aviso: o repositório ainda não tem commit, e a thread nasceria sem base: faça o primeiro commit antes de abrir a primeira thread.',
|
|
113
|
+
roadmapNoNome: (item) => `Aviso: ${item} no nome não associa a thread ao roadmap. No terminal, consulte ork roadmap reservas ` +
|
|
114
|
+
`e ork fabrica; para associar e reservar, use --roadmap ${item} em ork thread new. Nenhuma reserva foi criada por este aviso.`,
|
|
115
|
+
modoDesconhecido: (entrada, tags) => `modo.desconhecido: "${entrada}" nao e um modo de conducao. Use um de: ${tags}.`,
|
|
116
|
+
modoAposentado: (motivo, tag, substitutos) => `${motivo}: ${tag} foi aposentado e nao abre trabalho novo. Use ${substitutos.join(' ou ')}. ` +
|
|
117
|
+
`Thread ja gravada em ${tag} continua abrindo normalmente.`,
|
|
118
|
+
publicacaoPendente: (motivo) => `Memoria: publicacao pendente (${motivo}); ativacao explicita necessaria.`,
|
|
119
|
+
memoriaGravada: (tenant, gravados) => `Memoria (orkmind, tenant ${tenant}): ${gravados}.`,
|
|
120
|
+
nadaAGravar: 'nada a gravar',
|
|
121
|
+
gravacoesFalhas: (n) => ` ${n} gravacao(oes) nao concluida(s); veja ork memory status.`,
|
|
122
|
+
// ork thread status
|
|
123
|
+
naoEncontrada: (id, dir) => `thread "${id}" nao encontrada em ${dir}`,
|
|
124
|
+
usoStatus: 'uso: ork thread status <thread-id>',
|
|
125
|
+
/** D14: erros de argumento de `thread new` que nascem no escopo pt-BR da gravacao (`ErroDoCatalogo`). */
|
|
126
|
+
slugInvalido: (slug, regex) => `slug invalido: "${slug}" (regex canonica: ${regex})`,
|
|
127
|
+
roadmapItemInvalido: (item) => `roadmap.item: "${item}" nao e um item do roadmap (esperado RM-NNN)`,
|
|
128
|
+
roadmapItemInexistente: (id) => `roadmap.item: ${id} nao existe em docs/roadmap`,
|
|
129
|
+
/** RM-059 (T6.0) no thread new: o pedido do builder guardado ao lado do thread.json. */
|
|
130
|
+
usoPedido: 'uso: --pedido "<texto do pedido do builder>"',
|
|
131
|
+
/** D14: os demais erros de argumento de `thread new`, lancados no escopo pt-BR da criacao. */
|
|
132
|
+
varianteIncompativel: (variante, tag, fases) => `o ciclo ${variante} redesenha os blocos e o modo ${tag} ` +
|
|
133
|
+
`tem um bloco so (${fases}): crie a thread sem --ciclo ou escolha um modo de ciclo completo`,
|
|
134
|
+
modoNaoPermitido: (tag, permitidos) => `modo ${tag} fora de conduction.allowed_modes (permitidos: ${permitidos})`,
|
|
135
|
+
nomeSemAssunto: (nome) => `nome "${nome}" nao produz assunto valido (esperado [a-z0-9])`,
|
|
136
|
+
cicloExigeBranch: (variante) => `o ciclo ${variante} parte de uma branch que ja existe: informe --branch <branch>`,
|
|
137
|
+
branchInexistente: (branch) => `branch "${branch}" nao existe neste repositorio`,
|
|
138
|
+
branchSemCiclo: '--branch so vale com --ciclo merge-branch',
|
|
139
|
+
ocupadaPelaChave: (pasta, alvo) => `${pasta ? 'a pasta' : 'a branch'} ${alvo} já existe, e a chave ` +
|
|
140
|
+
'worktree.por_thread pede a worktree da thread: tire-a ou crie com --sem-worktree',
|
|
141
|
+
usoComMotivo: (motivo) => `uso: ${motivo}`,
|
|
142
|
+
pedidoVazio: 'thread.pedido.invalido: o pedido esta vazio',
|
|
143
|
+
pedidoGrande: (bytes, teto) => `thread.pedido.invalido: o pedido tem ${bytes} bytes, e o teto e ${teto}`,
|
|
144
|
+
pedidoGuardado: (gravada, caminho, sha, bytes) => ` pedido: ${gravada ? 'guardado em' : 'seria guardado em'} ${caminho} (sha256 ${sha}, ${bytes} bytes); o ork prompt render o usa quando falta --pedido`,
|
|
145
|
+
nenhumaSessao: ' nenhuma sessao despachada ainda',
|
|
146
|
+
sessoesDespachadas: ' sessoes despachadas (estado real conferido em `ork sessions`)',
|
|
147
|
+
sessao: (verificada, canal) => `verificada no runtime: ${verificada ? 'sim' : 'nao'} canal: ${canal}`,
|
|
148
|
+
pausasDoModo: (n) => ` pausas humanas do modo: ${n}`,
|
|
149
|
+
};
|
|
150
|
+
exports.THREAD_EN = {
|
|
151
|
+
largura: 10,
|
|
152
|
+
rotulos: { id: 'id', slug: 'slug', nome: 'name', modo: 'mode', ciclo: 'cycle', fase: 'phase', status: 'status', base: 'base',
|
|
153
|
+
worktree: 'worktree', conducao: 'conduction', score: 'score' },
|
|
154
|
+
modo: (tag, pausas) => `${tag} (${pausas} planned human pause${pausas === 1 ? '' : 's'})`,
|
|
155
|
+
cicloPadrao: 'default for the mode',
|
|
156
|
+
status: (status) => STATUS_EN[status] ?? status,
|
|
157
|
+
raizDoProjeto: '(project root)',
|
|
158
|
+
ninguemConduz: 'nobody right now',
|
|
159
|
+
validacao: ' validation CHECK on a runtime other than the GO one (required by the thread)',
|
|
160
|
+
prontoQuando: (n) => ` done when (${n} executable criteri${n === 1 ? 'on' : 'a'})`,
|
|
161
|
+
score: (valor, por, regime, quando) => `${valor}/5 by ${por} (${regime}) on ${quando}`,
|
|
162
|
+
blocosPrevistos: ' planned blocks',
|
|
163
|
+
pausaPrevista: (sobre) => `planned pause: ${sobre}`,
|
|
164
|
+
pausaSobre: (sobre) => PAUSA_SOBRE_EN[sobre] ?? sobre,
|
|
165
|
+
semPausa: 'no planned human pause',
|
|
166
|
+
slug: (produto, assunto, fases, rotacao) => `product "${produto}", subject "${assunto}", phases "${fases}"${rotacao ? `, rotation ${rotacao}` : ''}`,
|
|
167
|
+
conduzido: (canal, quem, fase, desde) => `conducted now by ${canal}, ${quem}, phase ${fase}, since ${desde}`,
|
|
168
|
+
quemSessao: (id) => `session ${id}`,
|
|
169
|
+
quemProcesso: (pid, operacao) => `process ${pid} (${operacao})`,
|
|
170
|
+
quemReserva: (por) => `reserved by ${por}`,
|
|
171
|
+
operacoes: {
|
|
172
|
+
'phase.run': 'phase dispatch',
|
|
173
|
+
'retry.run': 'phase retry',
|
|
174
|
+
verify: 'ork verify',
|
|
175
|
+
baseline: 'ork verify --baseline',
|
|
176
|
+
'fix.open': 'ork fix open',
|
|
177
|
+
'fix.reverify': 'ork fix reverify',
|
|
178
|
+
'mcp.verify': 'ork_verify (MCP)',
|
|
179
|
+
handoff: 'reservation of whoever took over',
|
|
180
|
+
},
|
|
181
|
+
criada: 'Thread created.',
|
|
182
|
+
simulacao: 'Dry run (--dry-run): nothing was written.',
|
|
183
|
+
roadmapReservado: (item, maquina) => ` roadmap: ${item} reserved for this machine (${maquina})`,
|
|
184
|
+
slugEm3Partes: (descrito) => ` 3-part slug: ${descrito}`,
|
|
185
|
+
estado: (id) => ` state: .orkastery/threads/${id}/thread.json`,
|
|
186
|
+
proximoPasso: (id, fase) => `Next step: \`ork phase run ${id} ${fase} --prompt "<request>"\``,
|
|
187
|
+
usoNew: 'usage: ork thread new <name> --modo <MODE>',
|
|
188
|
+
doneSemComando: (entrada) => `done.sem-comando: "${entrada}" has no command. ` +
|
|
189
|
+
'Use `--done "<criterion> :: <command that proves it>"`; a criterion without a command is prose, not a done criterion.',
|
|
190
|
+
doneIncompleto: (entrada) => `done.incompleto: "${entrada}" needs a criterion AND a command`,
|
|
191
|
+
varianteInvalida: (bruto, variantes) => `invalid cycle variant: "${bruto}". Use one of: ${variantes}`,
|
|
192
|
+
cicloExigeWorktree: (variante) => `usage: the ${variante} cycle requires an isolated worktree: create the thread without \`--sem-worktree\` or pick another cycle`,
|
|
193
|
+
worktreeVazia: 'usage: `--worktree` takes `auto` or a directory that already exists',
|
|
194
|
+
semWorktreeComValor: (valor) => `usage: \`--sem-worktree\` takes no value (got "${valor}")`,
|
|
195
|
+
worktreeESemWorktree: 'usage: `--worktree` and `--sem-worktree` exclude each other; use one of them',
|
|
196
|
+
worktreeChave: (gravada) => ` worktree: ${gravada ? 'created' : 'would be created'} by the \`worktree.por_thread\` key in ` +
|
|
197
|
+
'orkastery.yaml; to create without it, use `--sem-worktree`',
|
|
198
|
+
worktreeFlag: (gravada) => ` worktree: ${gravada ? 'created' : 'would be created'} by \`--worktree auto\``,
|
|
199
|
+
worktreeCiclo: (gravada, variante) => ` worktree: ${gravada ? 'created' : 'would be created'} by ` +
|
|
200
|
+
`${variante ? `the ${variante} cycle` : 'the thread cycle'}, which requires an isolated worktree`,
|
|
201
|
+
avisoSemWorktree: (id, gravada, c) => {
|
|
202
|
+
const inicio = gravada
|
|
203
|
+
? `Warning: thread ${id} has no worktree (\`--sem-worktree\`): it works at the project root`
|
|
204
|
+
: `Warning: without a worktree (\`--sem-worktree\`), thread ${id} would work at the project root`;
|
|
205
|
+
const ensure = `Before GO, \`ork worktree ensure ${id}\` creates the thread worktree and branch`;
|
|
206
|
+
if (c.caso === 'sem-commit') {
|
|
207
|
+
return `${inicio}, in a repository with no commit yet, outside any branch, and \`ork ship\` has no source branch ` +
|
|
208
|
+
'to deliver. Make the first commit and follow the warning about a thread without a base.';
|
|
209
|
+
}
|
|
210
|
+
if (c.caso === 'head') {
|
|
211
|
+
return `${inicio}, with a detached HEAD, outside any branch, and \`ork ship\` has no source branch to deliver. ${ensure}.`;
|
|
212
|
+
}
|
|
213
|
+
if (c.caso === 'outra') {
|
|
214
|
+
return `${inicio}, on branch ${c.branch}, and \`ork ship\` delivers that branch as it is, with whatever else lands on it; ` +
|
|
215
|
+
`with \`--para ${c.branch}\`, the delivery becomes a direct push, which the \`push_direto_na_base\` policy checks. ${ensure}.`;
|
|
216
|
+
}
|
|
217
|
+
const efeito = c.policy === 'block'
|
|
218
|
+
? '`ork ship` refuses the delivery under `push_direto_na_base` (block): there is no thread branch to merge'
|
|
219
|
+
: c.policy === undefined || c.policy === 'off'
|
|
220
|
+
? '`ork ship` pushes the base directly, without a thread branch (`push_direto_na_base` off)'
|
|
221
|
+
: `\`ork ship\` warns about \`push_direto_na_base\` (${c.policy}) and pushes the base directly, without a thread branch`;
|
|
222
|
+
return `${inicio}, on the base branch ${c.base}, and ${efeito}. ${ensure}; after GO, the commits are already on the base and ` +
|
|
223
|
+
'ship does not separate them.';
|
|
224
|
+
},
|
|
225
|
+
worktreeFalharia: (motivo, dir, branch, peloCiclo) => {
|
|
226
|
+
const semWorktree = peloCiclo ? '' : ' or create it with `--sem-worktree`';
|
|
227
|
+
if (motivo === 'pasta-existe') {
|
|
228
|
+
return `Warning: the folder ${dir} already exists, and the real creation would refuse the thread worktree: remove the folder${semWorktree}.`;
|
|
229
|
+
}
|
|
230
|
+
if (motivo === 'branch-existe') {
|
|
231
|
+
return `Warning: the branch ${branch} already exists, and the real creation would refuse the thread worktree: remove the branch${semWorktree}.`;
|
|
232
|
+
}
|
|
233
|
+
return 'Warning: the repository has no commit yet, and the real creation would refuse the thread worktree in `git worktree add`: ' +
|
|
234
|
+
'make the first commit first.';
|
|
235
|
+
},
|
|
236
|
+
chaveSemCommit: (gravada) => 'Warning: `worktree.por_thread` asks for the thread worktree, but the repository has no commit yet: ' +
|
|
237
|
+
`the thread ${gravada ? 'was created' : 'would be created'} at the project root, without a worktree.`,
|
|
238
|
+
semBase: (id, gravada) => gravada
|
|
239
|
+
? `Warning: the repository has no commit yet, and thread ${id} was created without a base: ship has nowhere to start from. ` +
|
|
240
|
+
`Make the first commit, close this one with \`ork thread close ${id} --motivo engano --por <who> ` +
|
|
241
|
+
'--justificativa "opened before the first commit"` and open another.'
|
|
242
|
+
: 'Warning: the repository has no commit yet, and the thread would be created without a base: make the first commit before opening the first thread.',
|
|
243
|
+
roadmapNoNome: (item) => `Warning: ${item} in the name does not link the thread to the roadmap. In the terminal, check ` +
|
|
244
|
+
`\`ork roadmap reservas\` and \`ork fabrica\`; to link and reserve it, use \`--roadmap ${item}\` in \`ork thread new\`. ` +
|
|
245
|
+
'No reservation was created by this warning.',
|
|
246
|
+
modoDesconhecido: (entrada, tags) => `modo.desconhecido: "${entrada}" is not a conduction mode. Use one of: ${tags}.`,
|
|
247
|
+
modoAposentado: (motivo, tag, substitutos) => `${motivo}: ${tag} was retired and opens no new work. Use ${substitutos.join(' or ')}. ` +
|
|
248
|
+
`A thread already recorded in ${tag} keeps opening normally.`,
|
|
249
|
+
publicacaoPendente: (motivo) => `Memory: publication pending (${motivo}); explicit activation required.`,
|
|
250
|
+
memoriaGravada: (tenant, gravados) => `Memory (orkmind, tenant ${tenant}): ${gravados}.`,
|
|
251
|
+
nadaAGravar: 'nothing to write',
|
|
252
|
+
gravacoesFalhas: (n) => ` ${n} write(s) not completed; see \`ork memory status\`.`,
|
|
253
|
+
naoEncontrada: (id, dir) => `thread "${id}" not found in ${dir}`,
|
|
254
|
+
usoStatus: 'usage: ork thread status <thread-id>',
|
|
255
|
+
slugInvalido: (slug, regex) => `invalid slug: "${slug}" (canonical regex: ${regex})`,
|
|
256
|
+
roadmapItemInvalido: (item) => `roadmap.item: "${item}" is not a roadmap item (expected RM-NNN)`,
|
|
257
|
+
roadmapItemInexistente: (id) => `roadmap.item: ${id} does not exist in \`docs/roadmap\``,
|
|
258
|
+
usoPedido: 'usage: --pedido "<builder request text>"',
|
|
259
|
+
varianteIncompativel: (variante, tag, fases) => `the ${variante} cycle redraws the blocks, and mode ${tag} has a single block ` +
|
|
260
|
+
`(${fases}): create the thread without \`--ciclo\` or pick a full-cycle mode`,
|
|
261
|
+
modoNaoPermitido: (tag, permitidos) => `mode ${tag} is not in \`conduction.allowed_modes\` (allowed: ${permitidos})`,
|
|
262
|
+
nomeSemAssunto: (nome) => `name "${nome}" does not produce a valid subject (expected [a-z0-9])`,
|
|
263
|
+
cicloExigeBranch: (variante) => `the ${variante} cycle starts from a branch that already exists: pass \`--branch <branch>\``,
|
|
264
|
+
branchInexistente: (branch) => `branch "${branch}" does not exist in this repository`,
|
|
265
|
+
branchSemCiclo: '`--branch` only applies with `--ciclo merge-branch`',
|
|
266
|
+
ocupadaPelaChave: (pasta, alvo) => `${pasta ? 'the folder' : 'the branch'} ${alvo} already exists, and \`worktree.por_thread\` ` +
|
|
267
|
+
'asks for the thread worktree: remove it or create the thread with `--sem-worktree`',
|
|
268
|
+
usoComMotivo: (motivo) => `usage: ${motivo}`,
|
|
269
|
+
pedidoVazio: 'thread.pedido.invalido: the request is empty',
|
|
270
|
+
pedidoGrande: (bytes, teto) => `thread.pedido.invalido: the request has ${bytes} bytes, above the ${teto}-byte limit`,
|
|
271
|
+
pedidoGuardado: (gravada, caminho, sha, bytes) => ` request: ${gravada ? 'saved to' : 'would be saved to'} ${caminho} (sha256 ${sha}, ` +
|
|
272
|
+
`${bytes} bytes); \`ork prompt render\` uses it when \`--pedido\` is missing`,
|
|
273
|
+
nenhumaSessao: ' no session dispatched yet',
|
|
274
|
+
sessoesDespachadas: ' dispatched sessions (real state checked in `ork sessions`)',
|
|
275
|
+
sessao: (verificada, canal) => `verified in the runtime: ${verificada ? 'yes' : 'no'} channel: ${canal}`,
|
|
276
|
+
pausasDoModo: (n) => ` planned human pauses in this mode: ${n}`,
|
|
277
|
+
};
|
|
@@ -0,0 +1,125 @@
|
|
|
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] [--canal C] [--esperar [min]]',
|
|
14
|
+
// ork verify --baseline
|
|
15
|
+
baselineGravada: (id) => `Baseline gravada para a thread ${id}.`,
|
|
16
|
+
baselineCommit: (commit) => ` commit ${commit}`,
|
|
17
|
+
baselineComando: (nome, ok, code, comando) => ` ${nome.padEnd(10)} ${ok ? 'passava' : `ja falhava (codigo ${code})`} ${comando}`,
|
|
18
|
+
baselineSaida: (caminho, id) => ` saida de quem falhou: as ultimas linhas em ${caminho}, campo baseline.comandos ` +
|
|
19
|
+
`(resumo e trecho); o evento baseline_recorded esta em ork phase list ${id}`,
|
|
20
|
+
baselineSemComandos: ' (nenhum comando em verify: no manifesto: a baseline guarda so o commit, e o verify nao tem como separar regressao de divida)',
|
|
21
|
+
// ork verify: cabecalho
|
|
22
|
+
titulo: (id) => `ork verify da thread ${id}`,
|
|
23
|
+
head: (commit) => ` HEAD real ${commit}`,
|
|
24
|
+
diretorio: (cwd) => ` diretorio ${cwd}`,
|
|
25
|
+
baseline: (sha, quando) => ` baseline ${sha} de ${quando}`,
|
|
26
|
+
semBaseline: ' baseline (nao gravada: falha nao pode ser chamada de regressao)',
|
|
27
|
+
preparo: (situacao, segundos, alterado) => ` preparo ${situacao} em ` +
|
|
28
|
+
`${segundos} s, uma vez para a rodada; produto ` +
|
|
29
|
+
`${alterado ? 'MUDOU no meio da rodada: nenhum veredito vale' : 'conferido do preparo ao fim'}`,
|
|
30
|
+
stealMedido: (pct, fonte, limiar) => ` steal ${pct}% na rodada (${fonte}; acima de ${limiar}%, teste com relogio que reprova fica sem veredito)`,
|
|
31
|
+
stealNaoMedido: (fonte) => ` steal nao medido (sem ${fonte} nesta maquina): nenhuma reprovacao e atenuada`,
|
|
32
|
+
instabilidadeForaDoContrato: (arquivo, erros) => ` instabilidade ${arquivo} FORA DO CONTRATO, nenhuma entrada vale: ${erros}`,
|
|
33
|
+
instabilidadeVencidas: (n, testes) => ` instabilidade ${n} entrada(s) vencida(s), sem valor ate nova medida: ${testes}`,
|
|
34
|
+
// Claims
|
|
35
|
+
claimsReexecutadas: 'Claims reexecutadas no HEAD real:',
|
|
36
|
+
nenhumaClaim: ' (nenhuma claim registrada nesta thread)',
|
|
37
|
+
claim: (id, verificado, alegacao) => ` ${id} verificado: ${verificado ? 'sim' : 'NAO'} ${alegacao}`,
|
|
38
|
+
arquivo: (arquivo) => ` arquivo: ${arquivo}`,
|
|
39
|
+
comandos: (comandos) => ` comando(s): ${comandos}`,
|
|
40
|
+
semComando: ' sem comando de verificacao',
|
|
41
|
+
motivoTipado: (motivo, detalhe) => ` motivo tipado: ${motivo} (${detalhe})`,
|
|
42
|
+
// Comandos do manifesto
|
|
43
|
+
comandosDoManifesto: 'Comandos de verify do manifesto:',
|
|
44
|
+
comandoOk: 'ok',
|
|
45
|
+
comando: (nome, situacao, comando) => ` ${nome.padEnd(10)} ${situacao} ${comando}`,
|
|
46
|
+
testesQueCairam: (testes) => ` teste(s) que caiu(ram): ${testes}`,
|
|
47
|
+
estourou: (prazo, rodou) => `ESTOUROU O PRAZO (${prazo}, rodou ${rodou})`,
|
|
48
|
+
relogioSobSteal: (pct, limiar) => `RELOGIO SOB STEAL (${pct}% de steal, acima de ${limiar}%)`,
|
|
49
|
+
naoExecutou: (code) => `NAO EXECUTOU (comando nao encontrado, codigo ${code})`,
|
|
50
|
+
mortoPorSinal: (code) => `MORTO POR SINAL (codigo ${code})`,
|
|
51
|
+
falhou: (code) => `FALHOU (codigo ${code})`,
|
|
52
|
+
semVeredito: (nomes) => `Sem veredito por tempo (nao e reprovacao: prazo estourado ou relogio sob steal): ${nomes}`,
|
|
53
|
+
// Classificacao e veredito
|
|
54
|
+
classificacao: (regressoes, preExistentes, semBaseline) => `Classificacao: ${regressoes} regressao(oes), ${preExistentes} pre-existente(s), ${semBaseline} falha(s) sem baseline`,
|
|
55
|
+
regressao: (nome, comando) => ` regressao ${nome}: ${comando}`,
|
|
56
|
+
preExistente: (nome, comando) => ` pre-existente ${nome}: ${comando}`,
|
|
57
|
+
falhaSemBaseline: (nome, comando) => ` sem baseline ${nome}: ${comando}`,
|
|
58
|
+
verdade: 'Veredito: VERDADE SUSTENTADA (nenhum motivo bloqueante).',
|
|
59
|
+
reprovado: (motivos) => `Veredito: REPROVADO. Motivos tipados: ${motivos}`,
|
|
60
|
+
// Detalhe da claim reexecutada (vai ao ledger em pt-BR)
|
|
61
|
+
claimNegativaSemComando: 'alegacao negativa/absoluta sem comando de verificacao: nao ha como comprova-la',
|
|
62
|
+
claimSemComando: 'sem comando de verificacao declarado',
|
|
63
|
+
claimNaoExecutada: (comando, resumo) => `comando "${comando}" nao foi executado: ${resumo}`,
|
|
64
|
+
claimEstourou: (comando, segundos) => `comando "${comando}" estourou o prazo de ${segundos} s sem terminar`,
|
|
65
|
+
claimRelogio: (comando, pct, limiar, testes) => `comando "${comando}" reprovou so em teste com relogio sob steal de ${pct}% (acima de ${limiar}%): ${testes}`,
|
|
66
|
+
claimSaiu: (comando, code) => `comando "${comando}" saiu com codigo ${code}`,
|
|
67
|
+
claimOk: (n) => `${n} comando(s) reexecutado(s) com sucesso`,
|
|
68
|
+
// RM-058 N2: a espera pela fila de recursos pesados, dita uma vez no stderr enquanto o verify espera.
|
|
69
|
+
filaPesadaOcupante: (operacao, thread, desde) => `${operacao}${thread ? ` da thread ${thread}` : ''} desde ${desde}`,
|
|
70
|
+
filaPesadaEsperando: (operacao, ocupantes) => `Esperando a vez na fila de recursos pesados (concurrency.max_parallel_heavy) para o ${operacao}: ` +
|
|
71
|
+
`ocupada por ${ocupantes || 'um pedido que chegou antes'}.`,
|
|
72
|
+
};
|
|
73
|
+
exports.VERIFY_EN = {
|
|
74
|
+
uso: 'usage: ork verify <thread-id> [--baseline] [--so-claims] [--canal C] [--esperar [min]]',
|
|
75
|
+
baselineGravada: (id) => `Baseline recorded for thread ${id}.`,
|
|
76
|
+
baselineCommit: (commit) => ` commit ${commit}`,
|
|
77
|
+
baselineComando: (nome, ok, code, comando) => ` ${nome.padEnd(10)} ${ok ? 'passed' : `already failing (exit ${code})`} ${comando}`,
|
|
78
|
+
baselineSaida: (caminho, id) => ` output of the failing commands: the last lines in ${caminho}, field \`baseline.comandos\` ` +
|
|
79
|
+
`(summary and excerpt); the baseline_recorded event is in \`ork phase list ${id}\``,
|
|
80
|
+
baselineSemComandos: ' (no command under `verify:` in the manifest: the baseline keeps only the commit, and verify cannot tell a regression from existing debt)',
|
|
81
|
+
titulo: (id) => `ork verify for thread ${id}`,
|
|
82
|
+
head: (commit) => ` real HEAD ${commit}`,
|
|
83
|
+
diretorio: (cwd) => ` directory ${cwd}`,
|
|
84
|
+
baseline: (sha, quando) => ` baseline ${sha} from ${quando}`,
|
|
85
|
+
semBaseline: ' baseline (not recorded: a failure cannot be called a regression)',
|
|
86
|
+
preparo: (situacao, segundos, alterado) => ` prepare ${situacao} in ${segundos} s, once for the run; product ` +
|
|
87
|
+
`${alterado ? 'CHANGED during the run: no verdict counts' : 'checked from prepare to end'}`,
|
|
88
|
+
stealMedido: (pct, fonte, limiar) => ` steal ${pct}% in the run (${fonte}; above ${limiar}%, a failing clock-bound test gets no verdict)`,
|
|
89
|
+
stealNaoMedido: (fonte) => ` steal not measured (no ${fonte} on this machine): no failure is softened`,
|
|
90
|
+
instabilidadeForaDoContrato: (arquivo, erros) => ` flaky tests ${arquivo} OUT OF CONTRACT, no entry counts: ${erros}`,
|
|
91
|
+
instabilidadeVencidas: (n, testes) => ` flaky tests ${n} expired entry(ies), not counted until measured again: ${testes}`,
|
|
92
|
+
claimsReexecutadas: 'Claims rerun on the real HEAD:',
|
|
93
|
+
nenhumaClaim: ' (no claim recorded in this thread)',
|
|
94
|
+
claim: (id, verificado, alegacao) => ` ${id} verified: ${verificado ? 'yes' : 'NO'} ${alegacao}`,
|
|
95
|
+
arquivo: (arquivo) => ` file: ${arquivo}`,
|
|
96
|
+
comandos: (comandos) => ` command(s): ${comandos}`,
|
|
97
|
+
semComando: ' no verification command',
|
|
98
|
+
motivoTipado: (motivo, detalhe) => ` typed reason: ${motivo} (${detalhe})`,
|
|
99
|
+
comandosDoManifesto: 'Manifest verify commands:',
|
|
100
|
+
comandoOk: 'ok',
|
|
101
|
+
comando: (nome, situacao, comando) => ` ${nome.padEnd(10)} ${situacao} ${comando}`,
|
|
102
|
+
testesQueCairam: (testes) => ` failing test(s): ${testes}`,
|
|
103
|
+
estourou: (prazo, rodou) => `TIMED OUT (${prazo}, ran ${rodou})`,
|
|
104
|
+
relogioSobSteal: (pct, limiar) => `CLOCK UNDER STEAL (${pct}% steal, above ${limiar}%)`,
|
|
105
|
+
naoExecutou: (code) => `DID NOT RUN (command not found, exit ${code})`,
|
|
106
|
+
mortoPorSinal: (code) => `KILLED BY SIGNAL (exit ${code})`,
|
|
107
|
+
falhou: (code) => `FAILED (exit ${code})`,
|
|
108
|
+
semVeredito: (nomes) => `No verdict for lack of time (not a failure: deadline exceeded or clock under steal): ${nomes}`,
|
|
109
|
+
classificacao: (regressoes, preExistentes, semBaseline) => `Classification: ${regressoes} regression(s), ${preExistentes} pre-existing, ${semBaseline} failure(s) without a baseline`,
|
|
110
|
+
regressao: (nome, comando) => ` regression ${nome}: ${comando}`,
|
|
111
|
+
preExistente: (nome, comando) => ` pre-existing ${nome}: ${comando}`,
|
|
112
|
+
falhaSemBaseline: (nome, comando) => ` no baseline ${nome}: ${comando}`,
|
|
113
|
+
verdade: 'Verdict: VERIFIED (no blocking reason).',
|
|
114
|
+
reprovado: (motivos) => `Verdict: FAILED. Typed reasons: ${motivos}`,
|
|
115
|
+
claimNegativaSemComando: 'negative or absolute claim without a verification command: there is no way to prove it',
|
|
116
|
+
claimSemComando: 'no verification command declared',
|
|
117
|
+
claimNaoExecutada: (comando, resumo) => `command "${comando}" did not run: ${resumo}`,
|
|
118
|
+
claimEstourou: (comando, segundos) => `command "${comando}" ran past its ${segundos} s deadline`,
|
|
119
|
+
claimRelogio: (comando, pct, limiar, testes) => `command "${comando}" failed only in clock-bound tests under ${pct}% steal (above ${limiar}%): ${testes}`,
|
|
120
|
+
claimSaiu: (comando, code) => `command "${comando}" exited with code ${code}`,
|
|
121
|
+
claimOk: (n) => `${n} command(s) rerun successfully`,
|
|
122
|
+
filaPesadaOcupante: (operacao, thread, desde) => `${operacao}${thread ? ` of thread ${thread}` : ''} since ${desde}`,
|
|
123
|
+
filaPesadaEsperando: (operacao, ocupantes) => `Waiting for a turn in the heavy-work queue (\`concurrency.max_parallel_heavy\`) for the ${operacao}: ` +
|
|
124
|
+
`held by ${ocupantes || 'a request that arrived earlier'}.`,
|
|
125
|
+
};
|