@orkastery/cli 0.5.6 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/adapters/README.md +18 -0
- package/adapters/claude-code/.claude-plugin/plugin.json +1 -0
- package/adapters/claude-code/README.md +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 +118 -4
- 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/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 +16 -8
- 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 +500 -0
- package/dist/check-modo.js +41 -0
- package/dist/check-paralelo.js +183 -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 +84 -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 +81 -74
- package/dist/doctor-forja.js +345 -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 +143 -43
- 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 +13 -10
- 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 +16 -0
- package/dist/hosts.js +104 -134
- package/dist/index.js +848 -548
- package/dist/indice-vetorial.js +14 -12
- package/dist/init.js +11 -2
- package/dist/integracoes-locais.js +2 -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 +220 -0
- package/dist/locale-adapter.js +291 -0
- package/dist/locale-ajuda.js +76 -4
- package/dist/locale-audit.js +199 -0
- package/dist/locale-claims.js +213 -0
- package/dist/locale-conducao.js +138 -0
- package/dist/locale-conhecimento.js +181 -0
- package/dist/locale-decisao.js +205 -0
- package/dist/locale-docs.js +230 -0
- package/dist/locale-estado.js +101 -0
- package/dist/locale-forja.js +290 -0
- package/dist/locale-gerados.js +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 +145 -6
- package/dist/locale-security-scan.js +69 -0
- package/dist/locale-setup.js +192 -0
- package/dist/locale-ship.js +169 -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 +287 -11
- 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 +73 -8
- package/dist/mcp-noctum.js +101 -0
- package/dist/mcp-server.js +82 -14
- 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/modos-migracao.js +8 -6
- package/dist/modos.js +17 -18
- package/dist/network-roadmap.js +85 -49
- package/dist/noctum-aceite.js +789 -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 +482 -0
- package/dist/noctum-coordenacao.js +1225 -0
- package/dist/noctum-entrega.js +1169 -0
- package/dist/noctum-envelope.js +252 -16
- package/dist/noctum-execucao.js +95 -23
- package/dist/noctum-fechamento.js +405 -0
- package/dist/noctum-fila.js +43 -9
- package/dist/noctum-guarda.js +256 -0
- package/dist/noctum-integracao.js +507 -0
- package/dist/noctum-maquinas.js +383 -0
- package/dist/noctum-medicao.js +450 -0
- package/dist/noctum-modo.js +362 -0
- package/dist/noctum-pergunta-canal.js +96 -0
- package/dist/noctum-pergunta.js +115 -0
- package/dist/noctum-provas.js +838 -0
- package/dist/noctum-reconciliacao.js +591 -0
- package/dist/noctum-registro.js +215 -0
- package/dist/noctum-relatorio.js +827 -0
- package/dist/noctum-resposta.js +207 -0
- package/dist/noctum-sessoes-em-voo.js +93 -0
- package/dist/noctum-supervisao.js +649 -0
- package/dist/noctum-terminal.js +459 -0
- package/dist/noctum-transporte.js +655 -0
- package/dist/noctum-vigia.js +639 -0
- package/dist/ocupacao.js +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 +146 -124
- package/dist/phase.js +53 -27
- package/dist/policies.js +33 -0
- package/dist/postura-local.js +4 -3
- 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 +12 -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 +228 -73
- package/dist/roadmap-reservas.js +32 -32
- package/dist/runtime-ambiente.js +5 -0
- package/dist/runtime-context.js +117 -43
- package/dist/runtime-escada.js +423 -0
- package/dist/runtime-profiles.js +103 -46
- package/dist/saida-segura.js +3 -2
- package/dist/security-scan/agil.js +355 -0
- package/dist/security-scan/cli.js +76 -0
- package/dist/security-scan/compare.js +149 -0
- package/dist/security-scan/config.js +93 -0
- package/dist/security-scan/detect.js +97 -0
- package/dist/security-scan/executor.js +188 -0
- package/dist/security-scan/guard.js +180 -0
- package/dist/security-scan/imagem-de-lint.js +96 -0
- package/dist/security-scan/normalize/actionlint.js +12 -0
- package/dist/security-scan/normalize/eslint.js +12 -0
- package/dist/security-scan/normalize/gitleaks.js +13 -0
- package/dist/security-scan/normalize/golangci-lint.js +13 -0
- package/dist/security-scan/normalize/govulncheck.js +36 -0
- package/dist/security-scan/normalize/index.js +25 -0
- package/dist/security-scan/normalize/npm-audit.js +30 -0
- package/dist/security-scan/normalize/osv-scanner.js +32 -0
- package/dist/security-scan/normalize/oxlint.js +51 -0
- package/dist/security-scan/normalize/pip-audit.js +16 -0
- package/dist/security-scan/normalize/ruff.js +12 -0
- package/dist/security-scan/normalize/semgrep.js +20 -0
- package/dist/security-scan/normalize/trivy.js +33 -0
- package/dist/security-scan/normalize/util.js +204 -0
- package/dist/security-scan/normalize/zizmor.js +19 -0
- package/dist/security-scan/report.js +156 -0
- package/dist/security-scan/run.js +448 -0
- package/dist/security-scan/tools.js +62 -0
- package/dist/security-scan/trabalhador.js +74 -0
- package/dist/security-scan/types.js +15 -0
- package/dist/session-events.js +19 -2
- package/dist/session-watcher-claude.js +74 -19
- package/dist/session-watcher.js +156 -10
- package/dist/sessoes-contas.js +9 -0
- package/dist/sessoes-inventario.js +1 -1
- package/dist/sessoes.js +25 -23
- package/dist/setup.js +59 -58
- 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 +507 -0
- package/dist/verify.js +472 -29
- 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 +9 -4
- 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
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PROJETOS_EN = exports.PROJETOS_PT_BR = void 0;
|
|
4
|
+
/** RM-061 F3d: registro e seleção de projetos, sem importar o núcleo. */
|
|
5
|
+
exports.PROJETOS_PT_BR = {
|
|
6
|
+
candidatos: 'Candidatos:', semRemoto: 'sem remoto', ausente: 'ausente do disco',
|
|
7
|
+
ocupado: (trava) => `registro de projetos ocupado (${trava}); tente de novo`,
|
|
8
|
+
segredoConteudo: 'registro de projetos recusado: o conteudo parece carregar segredo',
|
|
9
|
+
segredoEntrada: 'registro de projetos recusado: a entrada parece carregar segredo',
|
|
10
|
+
semManifesto: (caminho) => `nenhum manifesto do ork em ${caminho}`,
|
|
11
|
+
rodeInit: 'Rode `ork init` na raiz do projeto antes de registrá-lo.',
|
|
12
|
+
manifestoInvalido: (caminho) => `registro de projetos: manifesto inválido em ${caminho}`,
|
|
13
|
+
naoRegistrado: (valor) => `"${valor}" não está no registro de projetos desta máquina`,
|
|
14
|
+
vejaRegistrados: 'Veja os registrados com `ork projetos`.',
|
|
15
|
+
caminhoNaoExiste: (caminho) => `o caminho ${caminho} não existe`,
|
|
16
|
+
informeRaiz: 'Informe o caminho da raiz de um projeto com orkastery.yaml, ou o nome de um projeto registrado (`ork projetos`).',
|
|
17
|
+
yamlAusente: (caminho) => `nenhum orkastery.yaml em ${caminho} nem acima dele`,
|
|
18
|
+
initOuNome: 'Rode `ork init` na raiz do projeto, ou informe o nome de um projeto registrado (`ork projetos`).',
|
|
19
|
+
nomeInvalido: (valor) => `"${valor}" não é um nome de projeto válido`,
|
|
20
|
+
useNome: 'Use o nome ou o abbrev de um projeto de `ork projetos`.',
|
|
21
|
+
ambiguo: (valor, total) => `"${valor}" casa ${total} projetos registrados nesta máquina`,
|
|
22
|
+
escolhaRaiz: 'Repita com o caminho da raiz (`--projeto <caminho>`), ou tire a cópia que sobra com `ork projetos esquecer <caminho>`.',
|
|
23
|
+
semManifestoRegistrado: (valor) => `"${valor}" está registrado, mas o manifesto não está mais na raiz`,
|
|
24
|
+
registreCopia: 'Veja os registrados com `ork projetos`; registre uma cópia com `ork projetos registrar <caminho>`.',
|
|
25
|
+
ofertaRede: 'Para ver todos os projetos e as threads de todas as máquinas sem escolher, com a fonte e a hora de cada parte: ' +
|
|
26
|
+
'`ork network roadmap` (tool ork_network_roadmap).',
|
|
27
|
+
opcaoSemValor: '--projeto sem valor',
|
|
28
|
+
usoOpcao: 'Uso: --projeto <nome|caminho>; os nomes registrados estão em `ork projetos`.',
|
|
29
|
+
hostCaminho: (valor) => `no host o projeto vem pelo nome registrado; o caminho "${valor}" não é aceito`,
|
|
30
|
+
hostUseNome: 'Use o nome de um projeto de `ork projetos` (ex.: --projeto orkastery).',
|
|
31
|
+
precisaEscolher: (total) => `${total} projetos conhecidos nesta máquina e nenhum foi pedido; o ork não escolhe pelo diretório do gateway`,
|
|
32
|
+
repitaEscolha: (oferta) => 'Repita com o projeto pedido: parâmetro `projeto` da tool, ou `--projeto <nome>`. ' + oferta,
|
|
33
|
+
nenhum: 'nenhum projeto conhecido nesta máquina e nenhum foi pedido',
|
|
34
|
+
registrePrimeiro: 'Registre o projeto com `ork projetos registrar <caminho>` (ou `ork init` na raiz dele) e repita com o nome. ' +
|
|
35
|
+
'Sem clone nesta máquina, o roadmap de um projeto vem da forja: `ork network roadmap --projeto github:dono/repo` (tool ork_network_roadmap).',
|
|
36
|
+
avisoTemporario: (raiz, registro) => `aviso: projeto em pasta temporária (${raiz}) não entra no registro desta máquina ` +
|
|
37
|
+
`(${registro}); para registrá-lo mesmo assim: ork projetos registrar ${raiz}`,
|
|
38
|
+
avisoRegistro: (registro, erro) => `aviso: projeto não registrado em ${registro} (${erro})`,
|
|
39
|
+
cli: {
|
|
40
|
+
titulo: (arquivo) => `Projetos conhecidos desta maquina (${arquivo})`,
|
|
41
|
+
nenhum: ' Nenhum ainda. ork init, ork thread new e ork fabrica entrar registram; ou: ork projetos registrar <caminho>',
|
|
42
|
+
cabecalho: ['NOME', 'ABBREV', 'RAIZ', 'REMOTO', 'NO DISCO', 'ATUALIZADO'],
|
|
43
|
+
sim: 'sim', ausente: 'ausente', semRemoto: 'sem remoto',
|
|
44
|
+
selecao: 'Use --projeto <nome> em qualquer comando (ORK_PROJETO vale para o shell inteiro).',
|
|
45
|
+
usoRegistrar: 'uso: ork projetos registrar [caminho] (um caminho ou --projeto, não os dois)',
|
|
46
|
+
registrado: (nome, abbrev, raiz, remoto) => `Projeto ${nome} (${abbrev}) registrado: ${raiz} · ${remoto}`,
|
|
47
|
+
usoEsquecer: 'uso: ork projetos esquecer <nome|caminho>',
|
|
48
|
+
esquecido: (nome, raiz) => `Projeto ${nome} esquecido: ${raiz} (nada no disco foi apagado)`,
|
|
49
|
+
desconhecido: (sub) => `subcomando desconhecido: projetos ${sub}`,
|
|
50
|
+
uso: 'uso: ork projetos [--json] | projetos registrar [caminho] | projetos esquecer <nome|caminho>',
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
exports.PROJETOS_EN = {
|
|
54
|
+
candidatos: 'Candidates:', semRemoto: 'no remote', ausente: 'missing from disk',
|
|
55
|
+
ocupado: (lock) => `project registry busy (${lock}); try again`,
|
|
56
|
+
segredoConteudo: 'project registry refused: its content appears to contain a secret',
|
|
57
|
+
segredoEntrada: 'project registry refused: the entry appears to contain a secret',
|
|
58
|
+
semManifesto: (path) => `no ork manifest in ${path}`,
|
|
59
|
+
rodeInit: 'Run `ork init` at the project root before registering it.',
|
|
60
|
+
manifestoInvalido: (path) => `project registry: invalid manifest at ${path}`,
|
|
61
|
+
naoRegistrado: (value) => `"${value}" is not in this machine's project registry`,
|
|
62
|
+
vejaRegistrados: 'View registered projects with `ork projetos`.',
|
|
63
|
+
caminhoNaoExiste: (path) => `path ${path} does not exist`,
|
|
64
|
+
informeRaiz: 'Provide the root path of a project with orkastery.yaml, or the name of a registered project (`ork projetos`).',
|
|
65
|
+
yamlAusente: (path) => `no orkastery.yaml in ${path} or any parent directory`,
|
|
66
|
+
initOuNome: 'Run `ork init` at the project root, or provide the name of a registered project (`ork projetos`).',
|
|
67
|
+
nomeInvalido: (value) => `"${value}" is not a valid project name`,
|
|
68
|
+
useNome: 'Use the name or abbrev of a project from `ork projetos`.',
|
|
69
|
+
ambiguo: (value, total) => `"${value}" matches ${total} projects registered on this machine`,
|
|
70
|
+
escolhaRaiz: 'Repeat with the root path (`--projeto <path>`), or remove the stale copy with `ork projetos esquecer <path>`.',
|
|
71
|
+
semManifestoRegistrado: (value) => `"${value}" is registered, but its manifest is no longer at the root`,
|
|
72
|
+
registreCopia: 'View projects with `ork projetos`; register a copy with `ork projetos registrar <path>`.',
|
|
73
|
+
ofertaRede: 'To view all projects and threads from every machine without choosing one, including each source and timestamp: ' +
|
|
74
|
+
'`ork network roadmap` (tool ork_network_roadmap).',
|
|
75
|
+
opcaoSemValor: '--projeto has no value',
|
|
76
|
+
usoOpcao: 'Usage: --projeto <name|path>; registered names are listed by `ork projetos`.',
|
|
77
|
+
hostCaminho: (value) => `on a host, select a project by its registered name; path "${value}" is not accepted`,
|
|
78
|
+
hostUseNome: 'Use a project name from `ork projetos` (for example: --projeto orkastery).',
|
|
79
|
+
precisaEscolher: (total) => `${total} projects are known on this machine and none was requested; ork does not choose from the gateway directory`,
|
|
80
|
+
repitaEscolha: (offer) => "Repeat with the requested project: the tool's `projeto` parameter, or `--projeto <name>`. " + offer,
|
|
81
|
+
nenhum: 'no project is known on this machine and none was requested',
|
|
82
|
+
registrePrimeiro: 'Register the project with `ork projetos registrar <path>` (or `ork init` at its root), then repeat with its name. ' +
|
|
83
|
+
'Without a clone on this machine, read a project roadmap from the forge: `ork network roadmap --projeto github:owner/repo` (tool ork_network_roadmap).',
|
|
84
|
+
avisoTemporario: (root, registry) => `warning: project in a temporary folder (${root}) is not added to this machine's registry ` +
|
|
85
|
+
`(${registry}); to register it anyway: ork projetos registrar ${root}`,
|
|
86
|
+
avisoRegistro: (registry, error) => `warning: project was not registered in ${registry} (${error})`,
|
|
87
|
+
cli: {
|
|
88
|
+
titulo: (file) => `Projects known on this machine (${file})`,
|
|
89
|
+
nenhum: ' None yet. ork init, ork thread new, and ork fabrica entrar register projects; or run: ork projetos registrar <path>',
|
|
90
|
+
cabecalho: ['NAME', 'ABBREV', 'ROOT', 'REMOTE', 'ON DISK', 'UPDATED'],
|
|
91
|
+
sim: 'yes', ausente: 'missing', semRemoto: 'no remote',
|
|
92
|
+
selecao: 'Use --projeto <name> with any command (ORK_PROJETO applies to the whole shell).',
|
|
93
|
+
usoRegistrar: 'usage: ork projetos registrar [path] (use either a path or --projeto, not both)',
|
|
94
|
+
registrado: (name, abbrev, root, remote) => `Project ${name} (${abbrev}) registered: ${root} · ${remote}`,
|
|
95
|
+
usoEsquecer: 'usage: ork projetos esquecer <name|path>',
|
|
96
|
+
esquecido: (name, root) => `Project ${name} forgotten: ${root} (nothing was deleted from disk)`,
|
|
97
|
+
desconhecido: (sub) => `unknown subcommand: projetos ${sub}`,
|
|
98
|
+
uso: 'usage: ork projetos [--json] | projetos registrar [path] | projetos esquecer <name|path>',
|
|
99
|
+
},
|
|
100
|
+
};
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/** RM-061 F3c: texto dos prompts de fase e da familia `ork prompt`. PT-BR e a fonte tipada. */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.PROMPTS_EN = exports.PROMPTS_PT_BR = void 0;
|
|
5
|
+
const locale_thread_1 = require("./locale-thread");
|
|
6
|
+
exports.PROMPTS_PT_BR = {
|
|
7
|
+
contratoDasFases: {
|
|
8
|
+
GOAL: 'GOAL (F1): objetivo verificavel, impact map, criterios de sucesso e claims com comando de verificacao. Nao implementa.',
|
|
9
|
+
PLAN: 'PLAN (F2): plano com tarefas, touch_paths, decisoes D1..Dn com domicilio unico e verify executavel por tarefa. Nao implementa.',
|
|
10
|
+
GO: 'GO (F3): implementacao slice por slice, um commit atomico por tarefa, dentro da worktree da thread.',
|
|
11
|
+
CHECK: 'CHECK (F4): verificacao contra a baseline (regressao versus divida pre-existente), review de codigo, testes, seguranca e performance; ' +
|
|
12
|
+
'o parecer diz o modo do CHECK da rodada (Agile Check ou Classic Check, da linha `check` do `ork verify`).',
|
|
13
|
+
SHIP: 'SHIP (F5): merge serializado, push provado por comando, roadmap atualizado e plano de rollback.',
|
|
14
|
+
MASTER: 'MASTER (F6): MASTER log com postmortem tipado, licoes e o score humano de 0 a 5. Uma entrega sem MASTER log nao aconteceu.',
|
|
15
|
+
},
|
|
16
|
+
invariantes: [
|
|
17
|
+
'Claims, verify e policies rodam identicos em todos os modos.',
|
|
18
|
+
'Policy `block` pausa qualquer modo, inclusive #Auto.',
|
|
19
|
+
'Escalacao tipada para humano pausa qualquer modo, inclusive #Auto.',
|
|
20
|
+
'Toda entrega fecha com indice derivado do ledger; a nota humana, quando vier, sobrescreve.',
|
|
21
|
+
'Toda decisao autonoma vai ao ledger com quem decidiu, evidencia e razao.',
|
|
22
|
+
],
|
|
23
|
+
variante: (v) => `Variante de ciclo: ${v}`,
|
|
24
|
+
pausaSobre: (s) => s,
|
|
25
|
+
pausa: (sobre) => `Ao fim deste bloco HA PAUSA humana sobre: ${sobre}. Pare, apresente a evidencia e espere o veredito.`,
|
|
26
|
+
semPausa: 'Ao fim deste bloco NAO ha pausa humana: siga com decisao autonoma e registre no ledger quem decidiu, com que evidencia e por que.',
|
|
27
|
+
raizDoProjeto: '(raiz do projeto)',
|
|
28
|
+
regrasDeEvidencia: [
|
|
29
|
+
'Nada de self-report: toda alegacao vem com o comando que a comprova e a saida real.',
|
|
30
|
+
'Trabalhe apenas no diretorio de trabalho indicado acima.',
|
|
31
|
+
'Passos irreversiveis (push, merge, delecao) so acontecem quando o modo autoriza.',
|
|
32
|
+
],
|
|
33
|
+
regraDasEsperas: 'Esperas: nunca dispare verify, build ou suite com `&` dentro do comando, porque o processo se perde e a sessao ' +
|
|
34
|
+
'espera um aviso que nunca vem; rode o `ork verify` em primeiro plano, com `timeout` (ele espera a vez na fila de ' +
|
|
35
|
+
'recursos pesados), ou use a execucao em segundo plano do host, que avisa quando termina; nunca espere com ' +
|
|
36
|
+
'`pgrep -f` cujo padrao aparece no proprio comando, porque o laco acha a si mesmo e nao termina: espere pelo ' +
|
|
37
|
+
'arquivo de saida com prazo, ou pelo PID guardado.',
|
|
38
|
+
fechoDoGo: (t) => [
|
|
39
|
+
'## Fecho obrigatório do GO',
|
|
40
|
+
'',
|
|
41
|
+
`Antes de encerrar o bloco com GO, rode \`ork verify ${t}\` e o build declarado no manifesto, ambos em primeiro plano.`,
|
|
42
|
+
`Gere o bundle com \`ork ci prepare ${t}\` e faça o commit atômico final \`ci(${t}): bundle ...\`.`,
|
|
43
|
+
`Grave \`.orkastery/threads/${t}/pr-body.md\` curto, no idioma do projeto, com o modo do CHECK da rodada (Agile Check ou Classic Check, da linha \`check\` do \`ork verify\`); ` +
|
|
44
|
+
'se o perfil não puder gravá-lo pelo transporte autorizado, devolva o corpo completo no resumo final.',
|
|
45
|
+
'O rito é idêntico em Claude Code e Codex. Ele fecha o GO, mas não autoriza SHIP, push, PR ou merge.',
|
|
46
|
+
].join('\n'),
|
|
47
|
+
contextoDoGrafo: (thread) => '\n\n## Contexto do grafo (opcional)\n' +
|
|
48
|
+
`Consulte ork_grafo_contexto {threadId: "${thread}"} ou ork grafo contexto ${thread} --json para o pacote da thread com evidencias e teto em bytes.\n` +
|
|
49
|
+
'As tools ork_grafo_vizinhos, ork_grafo_chamadores, ork_grafo_importadores e ork_grafo_caminho permitem aprofundar. ' +
|
|
50
|
+
'Sem indice do HEAD, rode ork grafo indexar. O grafo e parcial e descreve o HEAD; ' +
|
|
51
|
+
'aresta com arvore: modificada vem de fonte que mudou depois dele: confira o arquivo antes de usar.\n',
|
|
52
|
+
memoria: {
|
|
53
|
+
titulo: (regime) => `## Memoria injetada (regime ${regime})`,
|
|
54
|
+
explicacao: 'Recuperacao deterministica por tag. Todo item declara de onde veio: nada entra neste prompt sem proveniencia. ' +
|
|
55
|
+
'O que NAO esta aqui esta nos ponteiros do handoff, recuperavel por `ork recall`.',
|
|
56
|
+
decisaoFechada: (id, por) => `Decisao ${id} (fechada por ${por})`,
|
|
57
|
+
decisaoSemantica: (id) => `Decisao ${id} (memoria semantica)`,
|
|
58
|
+
decisaoSemId: 'Decisao fechada (memoria semantica)',
|
|
59
|
+
licaoDaThread: (thread) => `Licao da thread ${thread}`,
|
|
60
|
+
licoesDoProduto: 'Licoes das threads fechadas deste produto (POSTMORTEM e MASTER)',
|
|
61
|
+
regraMandatoria: (titulo) => `Regra mandatoria: ${titulo}`,
|
|
62
|
+
grupos: { decision: 'Decisoes fechadas desta thread (entram em TODA fase)', learning: 'Licoes de threads anteriores deste produto',
|
|
63
|
+
rule: 'Regras mandatorias do ecossistema', handoff: 'Handoffs anteriores', roadmap: 'Roadmap' },
|
|
64
|
+
mandatory: ' [MANDATORY]',
|
|
65
|
+
origem: (location) => `origem: ${location}`,
|
|
66
|
+
},
|
|
67
|
+
secoesObrigatorias: ['## Ciclo canonico', '## Modo de conducao', '## Contexto da thread', '## Pedido do builder', '## Regras de evidencia'],
|
|
68
|
+
regraCentral: 'REGRA CENTRAL: o modo afrouxa a pausa, NUNCA a verificacao.',
|
|
69
|
+
cli: {
|
|
70
|
+
variavelSemValor: (id, v) => `template ${id}: variavel sem valor na renderizacao: ${v}`,
|
|
71
|
+
frontmatterAusente: (o) => `template em ${o}: frontmatter ausente (esperado bloco --- ... ---)`,
|
|
72
|
+
idAusente: 'frontmatter sem `id`', idDiverge: (id, e) => `o id "${id}" nao bate com o nome do arquivo "${e}.md"`,
|
|
73
|
+
versaoInvalida: (v) => `versao "${v}" invalida: esperado inteiro a partir de 1`, descricaoAusente: 'frontmatter sem `descricao`',
|
|
74
|
+
faseInvalida: (f, fs) => `"${f}" nao e fase do ciclo canonico (${fs})`,
|
|
75
|
+
variaveisNaoDeclaradas: (v) => `usadas no corpo e nao declaradas: ${v}`, variaveisNaoUsadas: (v) => `declaradas e nao usadas: ${v}`,
|
|
76
|
+
secaoAusente: (s) => `secao obrigatoria ausente: ${s}`, regraCentralAusente: (r) => `o template perdeu a linha: ${r}`,
|
|
77
|
+
pedidoAusente: (v, c) => `o template nao usa {{${v}}}: despacharia uma ${c} sem a demanda do builder`,
|
|
78
|
+
segredo: (n, l) => `padrao "${n}" casou na linha ${l} do template (trecho omitido de proposito)`,
|
|
79
|
+
tamanho: (b, l) => `${b} bytes acima do limite de ${l}`,
|
|
80
|
+
hitlTextoLivre: (l, o) => `linha ${l} pede ${o}; HITL de conducao e selecao de 3 a 5 alternativas com uma Recomendacao (RM-057)`,
|
|
81
|
+
travessao: 'o template usa travessao longo (U+2014); o padrao do projeto e hifen ou virgula',
|
|
82
|
+
templateNaoExiste: (id, ids) => `template "${id}" nao existe (conhecidos: ${ids})`,
|
|
83
|
+
templatePadraoAusente: 'template `fase-padrao` ausente: o `ork` nao tem prompt de fase',
|
|
84
|
+
semParIngles: (id) => `o dono fala ingles e o template ${id} do projeto nao tem o par ${id}.en: essa fase sai em pt-BR`,
|
|
85
|
+
gravidades: { erro: 'erro', aviso: 'aviso' }, semProblema: (n) => ` nenhum problema em ${n} template(s)`,
|
|
86
|
+
resumoLint: (n, e, a) => `templates: ${n} | erros: ${e} | avisos: ${a}`,
|
|
87
|
+
tituloLista: 'Templates de prompt (o do projeto sobrescreve o embutido de mesmo id)', origem: (o) => `origem: ${o}`,
|
|
88
|
+
fases: (f) => `fases: ${f}`, todas: 'todas', comoVersionar: 'Para versionar o seu: grave em prompts/<id>.md e rode `ork prompt lint`.',
|
|
89
|
+
lintTitulo: (r) => `Lint dos templates de prompt${r ? ` (projeto ${r})` : ' (somente embutidos)'}`, somenteEmbutidos: 'somente embutidos',
|
|
90
|
+
pedidoExemplo: '<pedido do builder>', cabecalhoTemplate: (id, v, o) => `# template ${id} v${v} (origem: ${o})`,
|
|
91
|
+
cabecalhoExemplo: (m, s) => `# thread de EXEMPLO (nada foi gravado), modo ${m}, sha256 ${s}`,
|
|
92
|
+
cabecalhoThread: (t, f, s) => `# thread ${t}, fase ${f}, sha256 ${s}`,
|
|
93
|
+
pedidoGuardado: (s) => `# pedido guardado na criacao da thread (sha256 ${s})`,
|
|
94
|
+
usoRenderThread: 'uso: ork prompt render <thread-id> <FASE> --pedido "<texto>"',
|
|
95
|
+
usoRenderExemplo: ' ork prompt render --exemplo --fase GOAL --modo auto --pedido "<texto>"',
|
|
96
|
+
subcomandoDesconhecido: (s) => `subcomando desconhecido: prompt ${s}`,
|
|
97
|
+
faseForaDoCiclo: (f, fs) => `fase "${f}" fora do ciclo canonico (${fs})`,
|
|
98
|
+
},
|
|
99
|
+
};
|
|
100
|
+
exports.PROMPTS_EN = {
|
|
101
|
+
contratoDasFases: {
|
|
102
|
+
GOAL: 'GOAL (F1): verifiable objective, impact map, success criteria, and claims with verification commands. Does not implement.',
|
|
103
|
+
PLAN: 'PLAN (F2): sliced tasks, queryable touch_paths, D1..Dn decisions with one home, and executable verify per task. Does not implement.',
|
|
104
|
+
GO: 'GO (F3): implement slice by slice, one atomic commit per task, inside the thread worktree.',
|
|
105
|
+
CHECK: 'CHECK (F4): verify against the baseline (regressions versus pre-existing debt), then review code, tests, security, and performance; ' +
|
|
106
|
+
'the verdict names the CHECK mode of the round (Agile Check or Classic Check, from the `check` line of `ork verify`).',
|
|
107
|
+
SHIP: 'SHIP (F5): serialized merge, command-proven push, updated roadmap, and rollback plan.',
|
|
108
|
+
MASTER: 'MASTER (F6): typed POSTMORTEM, MASTER log, lessons, and a human score from 0 to 5. A delivery without a MASTER log did not happen.',
|
|
109
|
+
},
|
|
110
|
+
invariantes: [
|
|
111
|
+
'Claims, verify, and policies run identically in every mode.',
|
|
112
|
+
'A `block` policy pauses every mode, including #Auto.',
|
|
113
|
+
'A typed human escalation pauses every mode, including #Auto.',
|
|
114
|
+
'Every delivery closes with an index derived from the ledger; a later human score overrides it.',
|
|
115
|
+
'Every autonomous decision goes to the ledger with who decided, evidence, and rationale.',
|
|
116
|
+
],
|
|
117
|
+
variante: (v) => `Cycle variant: ${v}`,
|
|
118
|
+
pausaSobre: (s) => locale_thread_1.PAUSA_SOBRE_EN[s] ?? s,
|
|
119
|
+
pausa: (s) => `At the end of this block, PAUSE for a human verdict about: ${s}. Stop, present the evidence, and wait for the verdict.`,
|
|
120
|
+
semPausa: 'At the end of this block there is NO human pause: continue autonomously and record who decided, the evidence, and why in the ledger.',
|
|
121
|
+
raizDoProjeto: '(project root)',
|
|
122
|
+
regrasDeEvidencia: [
|
|
123
|
+
'No self-report: every claim includes the command that proves it and its real output.',
|
|
124
|
+
'Work only in the working directory shown above.',
|
|
125
|
+
'Irreversible steps (push, merge, deletion) happen only when the mode authorizes them.',
|
|
126
|
+
],
|
|
127
|
+
regraDasEsperas: 'Waiting: never start verify, build, or a test suite with `&` inside the command; the process may be lost while the session ' +
|
|
128
|
+
'waits for a notice that never comes. Run `ork verify` in the foreground with `timeout` (it waits for the heavy-resource queue), ' +
|
|
129
|
+
'or use the host background execution that reports completion. Never wait with `pgrep -f` when its pattern appears in the command itself; ' +
|
|
130
|
+
'the loop finds itself and never ends. Wait for an output file with a deadline, or for a stored PID.',
|
|
131
|
+
fechoDoGo: (t) => [
|
|
132
|
+
'## Mandatory GO closing',
|
|
133
|
+
'',
|
|
134
|
+
`Before ending a block that includes GO, run \`ork verify ${t}\` and the build declared in the manifest, both in the foreground.`,
|
|
135
|
+
`Generate the bundle with \`ork ci prepare ${t}\` and make the final atomic commit \`ci(${t}): bundle ...\`.`,
|
|
136
|
+
`Write a short \`.orkastery/threads/${t}/pr-body.md\` in the project language, naming the CHECK mode of the round (Agile Check or Classic Check, from the \`check\` line of \`ork verify\`); ` +
|
|
137
|
+
'if the profile cannot write it through the authorized transport, return the full body in the final summary.',
|
|
138
|
+
'The ritual is identical in Claude Code and Codex. It closes GO, but it does not authorize SHIP, push, PR, or merge.',
|
|
139
|
+
].join('\n'),
|
|
140
|
+
contextoDoGrafo: (thread) => '\n\n## Graph context (optional)\n' +
|
|
141
|
+
`Use ork_grafo_contexto {threadId: "${thread}"} or ork grafo contexto ${thread} --json for the thread package with evidence and a byte limit.\n` +
|
|
142
|
+
'The ork_grafo_vizinhos, ork_grafo_chamadores, ork_grafo_importadores, and ork_grafo_caminho tools allow deeper queries. ' +
|
|
143
|
+
'If HEAD has no index, run ork grafo indexar. The graph is partial and describes HEAD; an edge marked arvore: modificada comes from a source ' +
|
|
144
|
+
'that changed after HEAD, so inspect the file before using it.\n',
|
|
145
|
+
memoria: {
|
|
146
|
+
titulo: (regime) => `## Injected memory (${regime} regime)`,
|
|
147
|
+
explicacao: 'Deterministic retrieval by tag. Every item declares its source: nothing enters this prompt without provenance. ' +
|
|
148
|
+
'What is NOT here remains in the handoff pointers and can be retrieved with `ork recall`.',
|
|
149
|
+
decisaoFechada: (id, por) => `Decision ${id} (closed by ${por})`,
|
|
150
|
+
decisaoSemantica: (id) => `Decision ${id} (semantic memory)`,
|
|
151
|
+
decisaoSemId: 'Closed decision (semantic memory)',
|
|
152
|
+
licaoDaThread: (thread) => `Lesson from thread ${thread}`,
|
|
153
|
+
licoesDoProduto: 'Lessons from closed threads in this product (POSTMORTEM and MASTER)',
|
|
154
|
+
regraMandatoria: (titulo) => `Mandatory rule: ${titulo}`,
|
|
155
|
+
grupos: { decision: 'Closed decisions from this thread (included in EVERY phase)', learning: 'Lessons from previous product threads',
|
|
156
|
+
rule: 'Mandatory ecosystem rules', handoff: 'Previous handoffs', roadmap: 'Roadmap' },
|
|
157
|
+
mandatory: ' [MANDATORY]',
|
|
158
|
+
origem: (location) => `source: ${location}`,
|
|
159
|
+
},
|
|
160
|
+
secoesObrigatorias: ['## Canonical cycle', '## Conduction mode', '## Thread context', '## Builder request', '## Evidence rules'],
|
|
161
|
+
regraCentral: 'CENTRAL RULE: the mode relaxes the pause, NEVER verification.',
|
|
162
|
+
cli: {
|
|
163
|
+
variavelSemValor: (id, v) => `template ${id}: missing render value for variable: ${v}`,
|
|
164
|
+
frontmatterAusente: (o) => `template at ${o}: missing frontmatter (expected a --- ... --- block)`,
|
|
165
|
+
idAusente: 'frontmatter has no `id`', idDiverge: (id, e) => `id "${id}" does not match file name "${e}.md"`,
|
|
166
|
+
versaoInvalida: (v) => `invalid version "${v}": expected an integer starting at 1`, descricaoAusente: 'frontmatter has no `descricao`',
|
|
167
|
+
faseInvalida: (f, fs) => `"${f}" is not a canonical phase (${fs})`,
|
|
168
|
+
variaveisNaoDeclaradas: (v) => `used in the body but not declared: ${v}`, variaveisNaoUsadas: (v) => `declared but not used: ${v}`,
|
|
169
|
+
secaoAusente: (s) => `missing required section: ${s}`, regraCentralAusente: (r) => `template lost the line: ${r}`,
|
|
170
|
+
pedidoAusente: (v, c) => `template does not use {{${v}}}: it would dispatch a ${c} without the builder request`,
|
|
171
|
+
segredo: (n, l) => `pattern "${n}" matched template line ${l} (excerpt intentionally omitted)`,
|
|
172
|
+
tamanho: (b, l) => `${b} bytes exceeds the ${l}-byte limit`,
|
|
173
|
+
hitlTextoLivre: (l, _o) => `line ${l} asks for free-form text; conduction HITL is a selection of 3 to 5 choices with one Recommendation (RM-057)`,
|
|
174
|
+
travessao: 'template uses an em dash (U+2014); the project standard is a hyphen or comma',
|
|
175
|
+
templateNaoExiste: (id, ids) => `template "${id}" does not exist (known: ${ids})`,
|
|
176
|
+
templatePadraoAusente: 'missing `fase-padrao` template: `ork` has no phase prompt',
|
|
177
|
+
semParIngles: (id) => `the owner speaks English and the project template ${id} has no ${id}.en counterpart: that phase is rendered in pt-BR`,
|
|
178
|
+
gravidades: { erro: 'error', aviso: 'warning' }, semProblema: (n) => ` no problem in ${n} template(s)`,
|
|
179
|
+
resumoLint: (n, e, a) => `templates: ${n} | errors: ${e} | warnings: ${a}`,
|
|
180
|
+
tituloLista: 'Prompt templates (the project template overrides the built-in template with the same id)',
|
|
181
|
+
origem: (o) => `source: ${o === 'embutido' ? 'built-in' : o}`,
|
|
182
|
+
fases: (f) => `phases: ${f}`, todas: 'all', comoVersionar: 'To version yours, write prompts/<id>.md and run `ork prompt lint`.',
|
|
183
|
+
lintTitulo: (r) => `Prompt template lint${r ? ` (project ${r})` : ' (built-ins only)'}`, somenteEmbutidos: 'built-ins only',
|
|
184
|
+
pedidoExemplo: '<builder request>',
|
|
185
|
+
cabecalhoTemplate: (id, v, o) => `# template ${id} v${v} (source: ${o === 'embutido' ? 'built-in' : o})`,
|
|
186
|
+
cabecalhoExemplo: (m, s) => `# EXAMPLE thread (nothing was written), mode ${m}, sha256 ${s}`,
|
|
187
|
+
cabecalhoThread: (t, f, s) => `# thread ${t}, phase ${f}, sha256 ${s}`,
|
|
188
|
+
pedidoGuardado: (s) => `# request stored when the thread was created (sha256 ${s})`,
|
|
189
|
+
usoRenderThread: 'usage: ork prompt render <thread-id> <PHASE> --pedido "<text>"',
|
|
190
|
+
usoRenderExemplo: ' ork prompt render --exemplo --fase GOAL --modo auto --pedido "<text>"',
|
|
191
|
+
subcomandoDesconhecido: (s) => `unknown subcommand: prompt ${s}`,
|
|
192
|
+
faseForaDoCiclo: (f, fs) => `phase "${f}" is outside the canonical cycle (${fs})`,
|
|
193
|
+
},
|
|
194
|
+
};
|
package/dist/locale-pulse.js
CHANGED
|
@@ -16,16 +16,26 @@ exports.PULSE_EN = exports.PULSE_PT_BR = void 0;
|
|
|
16
16
|
const CLASSES_EN = {
|
|
17
17
|
abandonada: 'abandoned', falha: 'failed', trabalhando: 'working', concluida: 'done', interrompida: 'stopped',
|
|
18
18
|
interativa: 'interactive', desconhecida: 'unknown', fase_orfa: 'orphan phase', score_pendente: 'pending score',
|
|
19
|
+
// RM-063 (F5): o item de uma acao da varredura.
|
|
20
|
+
varredura: 'sweep',
|
|
19
21
|
};
|
|
20
22
|
/** As alternativas do pedido curto do impedimento do despacho (`impedimento.ts`), pelo texto que ele grava. */
|
|
21
23
|
const ALTERNATIVAS_DO_IMPEDIMENTO_EN = {
|
|
22
24
|
'Rodei o comando': 'I ran the command', 'Trocar o runtime do bloco': 'Switch the block runtime', 'Deixar parada': 'Leave it stopped',
|
|
25
|
+
// RM-063 (F4): a alternativa recomendada da escada de recuperacao que acabou.
|
|
26
|
+
'Conferir o runtime e despachar de novo com o mesmo pedido': 'Check the runtime and dispatch again with the same request',
|
|
23
27
|
};
|
|
24
28
|
exports.PULSE_PT_BR = {
|
|
25
29
|
cabecalho: (contrato, quando) => `Pulse (${contrato}) ${quando}`,
|
|
26
30
|
precisaDeHumano: (n) => `Precisa de humano agora: ${n}`,
|
|
27
31
|
semNota: (n) => `${n} entrega(s) sem nota, aceitas por padrão com registro`,
|
|
28
32
|
diagnostico: (detalhe) => `[diagnostico] ${detalhe}`,
|
|
33
|
+
// A forja sem leitura de pedidos (parado-no-condutor): o estado dela, dito uma vez por remoto e host.
|
|
34
|
+
forjaSemLogin: (cli, host, remoto) => `o ${cli} não está autenticado em ${host}, a forja de ${remoto}`,
|
|
35
|
+
/** Nem o `gh` nem o `glab` tem login no host proprio: a frase do gh de sempre, e o glab junto. */
|
|
36
|
+
forjaSemLoginNasDuas: (host, remoto) => `o gh não está autenticado em ${host}, a forja de ${remoto}, e o glab também não`,
|
|
37
|
+
forjaSemPedidos: (tipo, host, remoto) => `a forja de ${remoto} (${host}, ${tipo}) não tem a leitura de pedidos abertos no ork`,
|
|
38
|
+
forjaNaoResolvida: (remoto, motivo) => `a forja de ${remoto} não se resolveu: ${motivo}`,
|
|
29
39
|
consultaIncompleta: (detalhe) => `[consulta incompleta] ${detalhe}`,
|
|
30
40
|
item: (quem, classe, minutos) => `${quem} [${classe}] ${minutos} min`,
|
|
31
41
|
/** A classe do item (`ItemPulse.classe`), dado do `--json`: o ingles a traduz pelo id na impressao (D4). */
|
|
@@ -67,7 +77,9 @@ exports.PULSE_PT_BR = {
|
|
|
67
77
|
sessao: { blocked: 'sessao parada esperando acao humana (prompt, permissao ou credencial)',
|
|
68
78
|
failed: 'sessao terminou em erro: alguem decide entre retomar, corrigir ou abandonar',
|
|
69
79
|
working: 'sessao em execucao', done: 'sessao concluiu', stopped: 'sessao parada por decisao humana (`claude stop`)',
|
|
70
|
-
idle: 'sessao interativa ociosa, conduzida por um humano no terminal'
|
|
80
|
+
idle: 'sessao interativa ociosa, conduzida por um humano no terminal',
|
|
81
|
+
// RM-063 (fatia 3, achado a): `busy` e `running` sao a sessao trabalhando num turno, como o observador ja os le.
|
|
82
|
+
busy: 'sessao ocupada, executando um turno', running: 'sessao em execucao' },
|
|
71
83
|
sessaoSemEstado: 'runtime nao informou estado desta sessao: tratada como possivel parada',
|
|
72
84
|
sessaoEstadoForaDoCatalogo: (estado) => `estado "${estado}" nao esta no catalogo do ork: tratado como possivel parada`,
|
|
73
85
|
// a consulta do runtime (claude-bg.ts e hitl.ts): o detalhe do pulse quando ela falha
|
|
@@ -91,6 +103,70 @@ exports.PULSE_PT_BR = {
|
|
|
91
103
|
// board.ts: a correcao das vagas que o escalonador devolve e o pulse mostra nas acoes automaticas
|
|
92
104
|
vagaStaleCorrecao: (thread, fase) => `redespache com ork phase run ${thread} --fase ${fase}, ou feche com ork master ${thread}`,
|
|
93
105
|
limiteCorrecao: 'espere uma thread liberar, ou suba concurrency.max_parallel_threads no orkastery.yaml',
|
|
106
|
+
/**
|
|
107
|
+
* RM-063 (F5): as acoes da varredura que age (`varredura-acoes.ts`) e a autorizacao duravel. O que vai ao `--json` nasce
|
|
108
|
+
* em pt-BR; a impressao remonta no locale.
|
|
109
|
+
*/
|
|
110
|
+
varredura: {
|
|
111
|
+
oQue: {
|
|
112
|
+
limpar: (sessao) => `soltar a sessão ${sessao}, que não tem mais processo (fantasma) e ainda segura a condução ` +
|
|
113
|
+
'e a vaga da thread; o runtime não é tocado',
|
|
114
|
+
registrar: (merge, branch, base) => `registrar a entrega: o merge ${merge} da branch ${branch} já ` +
|
|
115
|
+
`está em ${base}, e o ledger não tem o ship_done`,
|
|
116
|
+
master: 'fechar a thread pelo MASTER por omissão: a entrega está registrada, ninguém deu nota e nada anda nela; o índice ' +
|
|
117
|
+
'do ledger vira a nota, e a sua nota, quando vier, vale',
|
|
118
|
+
// RM-063 (F7): a batida da conducao (`conducao-batida.ts`).
|
|
119
|
+
merge: (pr, branch, base) => `mesclar o PR #${pr} (${branch}) em ${base}, com os checks obrigatórios ` +
|
|
120
|
+
'verdes e o PR limpo',
|
|
121
|
+
atualizar: (pr, branch, base) => `trazer ${base} para a branch ${branch} do PR #${pr}, que ficou para trás ` +
|
|
122
|
+
'ou em conflito só no CHANGELOG',
|
|
123
|
+
despachar: (fase) => `despachar a fase ${fase} com o pedido guardado na criação da thread`,
|
|
124
|
+
retomar: (fase) => `retomar a fase ${fase} pelo retry, com o mesmo prompt gravado`,
|
|
125
|
+
},
|
|
126
|
+
bloqueios: {
|
|
127
|
+
'conduzida': 'alguém conduz a thread agora',
|
|
128
|
+
'sessao-viva': 'há sessão viva trabalhando na worktree da thread',
|
|
129
|
+
'sessoes-sem-leitura': 'sem a leitura das sessões vivas do runtime agora, não dá para provar a worktree parada',
|
|
130
|
+
'worktree-suja': 'a worktree da thread tem alteração não commitada',
|
|
131
|
+
'branch-com-commits': 'a branch tem commits depois do head do PR mesclado',
|
|
132
|
+
'trabalho-novo': 'a thread recebeu trabalho novo depois do PR, e a ação mudaria a fase dela',
|
|
133
|
+
'git-sem-resposta': 'o git não respondeu sobre a branch',
|
|
134
|
+
'pr-rascunho': 'o PR está em rascunho',
|
|
135
|
+
'checks-vermelhos': 'um check obrigatório do PR falhou',
|
|
136
|
+
'sem-checks-obrigatorios': 'a base não exige check nenhum, e merge sem check obrigatório verde fica com você',
|
|
137
|
+
'pr-bloqueado': 'o GitHub bloqueia o merge mesmo com os checks obrigatórios verdes (revisão ou regra da base)',
|
|
138
|
+
'pr-instavel': 'há check não obrigatório vermelho, e o PR não está limpo',
|
|
139
|
+
'conflito-em-codigo': 'o merge da base na branch conflita em código, e conflito em código nunca é resolvido sozinho',
|
|
140
|
+
'branch-nao-publicada': 'a branch local tem commits que o PR ainda não tem',
|
|
141
|
+
'sem-prompt-gravado': 'a thread não tem o pedido guardado na criação (ork thread new --pedido), e sem ele não há prompt',
|
|
142
|
+
'check-pendente': 'o CHECK da thread não passou (veredito PASSOU) depois do último commit de produto do PR',
|
|
143
|
+
'pendencia-do-dono': 'a thread espera você (pausada, pausa prevista, pergunta ou escalação aberta)',
|
|
144
|
+
'espera-longa': 'a batida espera há mais de 2 h (check obrigatório pendente ou o GitHub sem o estado do merge)',
|
|
145
|
+
'thread-do-arco': 'a thread é trabalho de um arco #Noctum: a entrega e o MASTER dela são do passo da entrega do arco',
|
|
146
|
+
},
|
|
147
|
+
comBloqueio: (oQue, bloqueio) => `${oQue}. A varredura não faz isso sozinha agora: ${bloqueio}`,
|
|
148
|
+
comBloqueioRecomendacao: (thread, comando) => `veja a thread antes (ork thread status ${thread}); quando o trabalho nela parar, o comando é ${comando}`,
|
|
149
|
+
comRecusa: (oQue, detalhe) => `${oQue}. A varredura tentou e não fez: ${detalhe}`,
|
|
150
|
+
daVarredura: (por, ate) => `a varredura faz isso na próxima batida, pela autorização durável de ${por} até ${ate}`,
|
|
151
|
+
doDono: (acao) => `rode o comando; para a varredura fazer isso sozinha, autorize a ação ${acao} na autorização ` +
|
|
152
|
+
'durável desta máquina (ork.autorizacao-duravel/v1)',
|
|
153
|
+
autorizacaoValida: (por, ate, pode) => `Varredura: autorização durável de ${por} até ${ate} (pode: ${pode})`,
|
|
154
|
+
autorizacaoAusente: 'Varredura: sem autorização durável; as ações dela ficam na fila do dono, com o comando pronto',
|
|
155
|
+
autorizacaoInvalida: (motivo, detalhe) => `Varredura: autorização durável sem valor (${motivo}: ${detalhe}); as ações dela ficam na fila do dono`,
|
|
156
|
+
feitas: (n) => `A varredura fez sozinha nos últimos 7 dias: ${n}`,
|
|
157
|
+
feita: (thread, acao, detalhe) => ` ${thread}: ${acao}; ${detalhe}`,
|
|
158
|
+
},
|
|
159
|
+
/** RM-063 (F6): a maquina ociosa (`maquina-ociosa.ts`): o passo de cada sugestao e as linhas do pulse. */
|
|
160
|
+
ociosa: {
|
|
161
|
+
despachar: (fase) => `despachar a fase ${fase} com o pedido guardado da thread`,
|
|
162
|
+
retomar: 'retomar a fase pelo retry, com o mesmo prompt',
|
|
163
|
+
verAThread: (fase) => `ver por que a thread parou na fase ${fase}`,
|
|
164
|
+
abrir: 'abrir a thread do item, que ainda não tem uma',
|
|
165
|
+
linha: (maquina, livres, limite, reservados) => `Máquina ociosa: ${maquina} com ${livres} de ` +
|
|
166
|
+
`${limite} vagas livres e ${reservados} item(ns) do roadmap reservado(s) para ela sem ninguém trabalhando`,
|
|
167
|
+
sugerida: (item, onde, passo, comando) => ` ${item} (${onde}): ${passo}; ${comando}`,
|
|
168
|
+
semThread: 'sem thread',
|
|
169
|
+
},
|
|
94
170
|
/** A descricao de cada motivo tipado: a fonte de `DESCRICAO_DO_MOTIVO` (reserva do detalhe da parada). */
|
|
95
171
|
motivos: {
|
|
96
172
|
'artifact.missing': 'artefato exigido pela fase nao existe no disco',
|
|
@@ -126,6 +202,10 @@ exports.PULSE_EN = {
|
|
|
126
202
|
precisaDeHumano: (n) => `Needs a human now: ${n}`,
|
|
127
203
|
semNota: (n) => `${n} delivery(ies) without a score, accepted by default with a record`,
|
|
128
204
|
diagnostico: (detalhe) => `[diagnostic] ${detalhe}`,
|
|
205
|
+
forjaSemLogin: (cli, host, remoto) => `${cli} is not logged in to ${host}, the forge of ${remoto}`,
|
|
206
|
+
forjaSemLoginNasDuas: (host, remoto) => `gh is not logged in to ${host}, the forge of ${remoto}, and neither is glab`,
|
|
207
|
+
forjaSemPedidos: (tipo, host, remoto) => `the forge of ${remoto} (${host}, ${tipo}) has no open-request reading in ork`,
|
|
208
|
+
forjaNaoResolvida: (remoto, motivo) => `the forge of ${remoto} did not resolve: ${motivo}`,
|
|
129
209
|
consultaIncompleta: (detalhe) => `[incomplete query] ${detalhe}`,
|
|
130
210
|
item: (quem, classe, minutos) => `${quem} [${classe}] ${minutos} min`,
|
|
131
211
|
classe: (classe) => CLASSES_EN[classe] ?? classe,
|
|
@@ -160,7 +240,8 @@ exports.PULSE_EN = {
|
|
|
160
240
|
sessao: { blocked: 'session stopped waiting for human action (prompt, permission or credential)',
|
|
161
241
|
failed: 'session ended in an error: someone decides whether to resume, fix or drop it',
|
|
162
242
|
working: 'session running', done: 'session finished', stopped: 'session stopped by a human decision (`claude stop`)',
|
|
163
|
-
idle: 'idle interactive session, driven by a human in the terminal'
|
|
243
|
+
idle: 'idle interactive session, driven by a human in the terminal',
|
|
244
|
+
busy: 'session busy, running a turn', running: 'session running' },
|
|
164
245
|
sessaoSemEstado: 'the runtime did not report a state for this session: treated as possibly stopped',
|
|
165
246
|
sessaoEstadoForaDoCatalogo: (estado) => `state "${estado}" is not in the ork catalog: treated as possibly stopped`,
|
|
166
247
|
adapterIndisponivel: 'runtime adapter unavailable on this machine (`claude` not on PATH)',
|
|
@@ -180,6 +261,63 @@ exports.PULSE_EN = {
|
|
|
180
261
|
alternativaDoImpedimento: (texto) => ALTERNATIVAS_DO_IMPEDIMENTO_EN[texto] ?? texto,
|
|
181
262
|
vagaStaleCorrecao: (thread, fase) => `re-dispatch with \`ork phase run ${thread} --fase ${fase}\`, or close it with \`ork master ${thread}\``,
|
|
182
263
|
limiteCorrecao: 'wait for a thread to free its slot, or raise `concurrency.max_parallel_threads` in `orkastery.yaml`',
|
|
264
|
+
varredura: {
|
|
265
|
+
oQue: {
|
|
266
|
+
limpar: (sessao) => `release session ${sessao}, which has no process anymore (a ghost) and still holds the thread ` +
|
|
267
|
+
'conduction and slot; the runtime is not touched',
|
|
268
|
+
registrar: (merge, branch, base) => `record the delivery: merge ${merge} of branch ${branch} is already in ${base}, and the ` +
|
|
269
|
+
'ledger has no ship_done',
|
|
270
|
+
master: 'close the thread through MASTER by default: the delivery is recorded, nobody scored it and nothing runs on it; the ' +
|
|
271
|
+
'ledger index becomes the score, and your score, when it comes, wins',
|
|
272
|
+
merge: (pr, branch, base) => `merge PR #${pr} (${branch}) into ${base}, with the required checks green and the PR clean`,
|
|
273
|
+
atualizar: (pr, branch, base) => `bring ${base} into branch ${branch} of PR #${pr}, which fell behind or conflicts only in ` +
|
|
274
|
+
'the CHANGELOG',
|
|
275
|
+
despachar: (fase) => `dispatch phase ${fase} with the request stored when the thread was created`,
|
|
276
|
+
retomar: (fase) => `resume phase ${fase} through the retry, with the same recorded prompt`,
|
|
277
|
+
},
|
|
278
|
+
bloqueios: {
|
|
279
|
+
'conduzida': 'someone conducts the thread now',
|
|
280
|
+
'sessao-viva': 'a live session works in the thread worktree',
|
|
281
|
+
'sessoes-sem-leitura': 'without a reading of the runtime live sessions now, the worktree cannot be proven idle',
|
|
282
|
+
'worktree-suja': 'the thread worktree has uncommitted changes',
|
|
283
|
+
'branch-com-commits': 'the branch has commits after the head of the merged PR',
|
|
284
|
+
'trabalho-novo': 'the thread got new work after the PR, and the action would change its phase',
|
|
285
|
+
'git-sem-resposta': 'git did not answer about the branch',
|
|
286
|
+
'pr-rascunho': 'the PR is a draft',
|
|
287
|
+
'checks-vermelhos': 'a required check of the PR failed',
|
|
288
|
+
'sem-checks-obrigatorios': 'the base requires no check at all, and a merge without a green required check stays with you',
|
|
289
|
+
'pr-bloqueado': 'GitHub blocks the merge even with the required checks green (review or base rule)',
|
|
290
|
+
'pr-instavel': 'a non-required check is red, and the PR is not clean',
|
|
291
|
+
'conflito-em-codigo': 'merging the base into the branch conflicts in code, and a code conflict is never resolved on its own',
|
|
292
|
+
'branch-nao-publicada': 'the local branch has commits the PR does not have yet',
|
|
293
|
+
'sem-prompt-gravado': 'the thread has no request stored at creation (ork thread new --pedido), and without it there is no prompt',
|
|
294
|
+
'check-pendente': 'the thread CHECK did not pass (verdict PASSOU) after the last product commit of the PR',
|
|
295
|
+
'pendencia-do-dono': 'the thread waits for you (paused, planned pause, open question or escalation)',
|
|
296
|
+
'espera-longa': 'the beat has been waiting for more than 2 h (a required check pending, or GitHub without the merge state)',
|
|
297
|
+
'thread-do-arco': 'the thread is work of a #Noctum arc: its delivery and MASTER belong to the arc delivery step',
|
|
298
|
+
},
|
|
299
|
+
comBloqueio: (oQue, bloqueio) => `${oQue}. The sweep does not do this on its own now: ${bloqueio}`,
|
|
300
|
+
comBloqueioRecomendacao: (thread, comando) => `look at the thread first (ork thread status ${thread}); once the work in it stops, the command is ${comando}`,
|
|
301
|
+
comRecusa: (oQue, detalhe) => `${oQue}. The sweep tried and did not do it: ${detalhe}`,
|
|
302
|
+
daVarredura: (por, ate) => `the sweep does this at the next beat, under the durable authorization of ${por} until ${ate}`,
|
|
303
|
+
doDono: (acao) => `run the command; for the sweep to do this on its own, authorize the action ${acao} in this machine's ` +
|
|
304
|
+
'durable authorization (ork.autorizacao-duravel/v1)',
|
|
305
|
+
autorizacaoValida: (por, ate, pode) => `Sweep: durable authorization of ${por} until ${ate} (may: ${pode})`,
|
|
306
|
+
autorizacaoAusente: 'Sweep: no durable authorization; its actions stay in the owner queue, with the command ready',
|
|
307
|
+
autorizacaoInvalida: (motivo, detalhe) => `Sweep: durable authorization without effect (${motivo}: ${detalhe}); its actions stay in the owner queue`,
|
|
308
|
+
feitas: (n) => `The sweep did on its own in the last 7 days: ${n}`,
|
|
309
|
+
feita: (thread, acao, detalhe) => ` ${thread}: ${acao}; ${detalhe}`,
|
|
310
|
+
},
|
|
311
|
+
ociosa: {
|
|
312
|
+
despachar: (fase) => `dispatch phase ${fase} with the thread's stored request`,
|
|
313
|
+
retomar: 'resume the phase through the retry, with the same prompt',
|
|
314
|
+
verAThread: (fase) => `see why the thread stopped in phase ${fase}`,
|
|
315
|
+
abrir: 'open the thread of the item, which has none yet',
|
|
316
|
+
linha: (maquina, livres, limite, reservados) => `Idle machine: ${maquina} with ${livres} of ${limite} free slots and ` +
|
|
317
|
+
`${reservados} roadmap item(s) reserved for it with nobody working`,
|
|
318
|
+
sugerida: (item, onde, passo, comando) => ` ${item} (${onde}): ${passo}; ${comando}`,
|
|
319
|
+
semThread: 'no thread',
|
|
320
|
+
},
|
|
183
321
|
motivos: {
|
|
184
322
|
'artifact.missing': 'an artifact the phase requires does not exist on disk',
|
|
185
323
|
'claims.failed': 'a verifiable claim failed when rerun on the real HEAD',
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* RM-061, fatia F3b: a familia `reservas` do catalogo de mensagens (`ork roadmap reservas|pegar|soltar|feat`), o painel
|
|
4
|
+
* das reservas no terminal e as recusas de `roadmap-reservas.ts`. O pt-BR e a fonte; o ingles e tipado por ele. Sem
|
|
5
|
+
* import do nucleo.
|
|
6
|
+
*
|
|
7
|
+
* O item, quem reservou, a maquina, a thread e a nota sao dado e saem iguais. O detalhe da soltura de uma reserva orfa
|
|
8
|
+
* vai ao ledger e ao `--json` em pt-BR e so a impressao o remonta. O painel em Markdown da branch de reservas e a
|
|
9
|
+
* mensagem de commit nao mudam com a lingua; o bloco `Projeto consultado:` e `Não lido:` do RM-052 sai igual nas duas.
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.RESERVAS_EN = exports.RESERVAS_PT_BR = void 0;
|
|
13
|
+
exports.RESERVAS_PT_BR = {
|
|
14
|
+
// O painel no terminal
|
|
15
|
+
semRemoto: (projeto, remoto, branch) => `Reservas do roadmap: ${projeto ? `o projeto ${projeto}` : 'o projeto'} não tem o remoto ${remoto}; nada foi lido de ${branch}.`,
|
|
16
|
+
semCopia: (remoto, branch) => `Reservas do roadmap: o remoto ${remoto} não respondeu e esta máquina não tem cópia de ${branch}; nada foi lido.`,
|
|
17
|
+
copiaLocal: 'AVISO: sem acesso ao remoto; esta e a ultima copia lida nesta maquina.',
|
|
18
|
+
nenhuma: 'Nenhum item do roadmap reservado.',
|
|
19
|
+
numerosDeFeat: (n, ultimos) => `Números de FEAT reservados (${n}), os últimos: ${ultimos}. O próximo sai de: ork roadmap feat`,
|
|
20
|
+
cabecalho: 'ITEM COM QUEM MAQUINA THREAD DESDE',
|
|
21
|
+
orfa: (sucessora) => ` ÓRFÃ: thread fechada${sucessora ? `, passa para ${sucessora}` : ''}`,
|
|
22
|
+
orfas: (n) => `${n} reserva(s) órfã(s) desta máquina. Para soltar: ork roadmap reservas --soltar-orfas`,
|
|
23
|
+
// ork roadmap reservas --soltar-orfas
|
|
24
|
+
nenhumaOrfa: 'Nenhuma reserva órfã desta máquina.',
|
|
25
|
+
soltura: (item, detalhe, thread) => `${item}: ${detalhe} (thread fechada ${thread})`,
|
|
26
|
+
mudouDeDono: (item) => `${item} mudou de dono entre a leitura e a gravacao; ficou como estava`,
|
|
27
|
+
passouPara: (item, sucessora) => `${item} passou para a thread ${sucessora}, aberta no mesmo item`,
|
|
28
|
+
devolvido: (item) => `${item} devolvido`,
|
|
29
|
+
semLeituraPendente: (branch, remoto) => `sem leitura de ${branch} em ${remoto}; a reserva fica para depois`,
|
|
30
|
+
soQuemPegou: (descricao) => `${descricao}; so quem pegou solta, ou --forcar --motivo`,
|
|
31
|
+
// ork roadmap feat
|
|
32
|
+
feat: (feat, thread) => `${feat}: reservado para esta maquina${thread ? `, thread ${thread}` : ''}.`,
|
|
33
|
+
crieAPagina: (feat) => ` crie docs/produto/${feat}-<assunto>.md; o numero nao volta, mesmo que a feature nao saia`,
|
|
34
|
+
branch: (commit) => ` branch ork/roadmap-reservas em ${commit}`,
|
|
35
|
+
// ork roadmap pegar e soltar
|
|
36
|
+
acao: (acao) => ({ pegou: 'reservado para esta maquina', renovou: 'reserva renovada', tomou: 'reserva TOMADA de outra maquina',
|
|
37
|
+
soltou: 'devolvido', nada: 'ja estava livre' }[acao] ?? acao),
|
|
38
|
+
itemAcao: (item, acao) => `${item}: ${acao}.`,
|
|
39
|
+
com: (por, maquina, thread) => ` com ${por} em ${maquina}${thread ? `, thread ${thread}` : ''}`,
|
|
40
|
+
uso: 'uso: ork roadmap status [--json] | reservas [--soltar-orfas] | pegar <RM-NNN> [--thread T] [--nota N] | ' +
|
|
41
|
+
'soltar <RM-NNN> [--forcar --motivo M] | feat [--thread T] [--nota N]',
|
|
42
|
+
// As recusas (roadmap-reservas.ts)
|
|
43
|
+
descricao: (item, por, maquina, desde, thread) => `${item} esta com ${por} em ${maquina} desde ${desde}${thread ? ` (thread ${thread})` : ''}`,
|
|
44
|
+
semRemotoParaReservar: (branch, remoto) => `roadmap.sem-remoto: nao consegui ler ${branch} em ${remoto}; reservar exige rede`,
|
|
45
|
+
semRemotoParaSoltar: (branch, remoto) => `roadmap.sem-remoto: nao consegui ler ${branch} em ${remoto}; soltar exige rede`,
|
|
46
|
+
semRemotoParaOrfas: (branch) => `roadmap.sem-remoto: nao consegui ler ${branch}; soltar exige rede`,
|
|
47
|
+
featsAcabaram: 'roadmap.feat: os numeros de FEAT de tres digitos acabaram',
|
|
48
|
+
concorrencia: (n) => `roadmap.concorrencia: ${n} pushes recusados seguidos; tente de novo em instantes`,
|
|
49
|
+
forcarSemMotivo: 'roadmap.forcar: --forcar exige --motivo (tomar a reserva de outra maquina e decisao registrada)',
|
|
50
|
+
reservadoAoPegar: (descricao) => `roadmap.reservado: ${descricao}. Escolha outro item ou combine com quem esta nele`,
|
|
51
|
+
reservadoAoSoltar: (descricao) => `roadmap.reservado: ${descricao}; so quem pegou solta, ou --forcar --motivo`,
|
|
52
|
+
};
|
|
53
|
+
exports.RESERVAS_EN = {
|
|
54
|
+
semRemoto: (projeto, remoto, branch) => `Roadmap reservations: ${projeto ? `project ${projeto}` : 'the project'} has no remote ${remoto}; nothing was read from ${branch}.`,
|
|
55
|
+
semCopia: (remoto, branch) => `Roadmap reservations: remote ${remoto} did not answer and this machine has no copy of ${branch}; nothing was read.`,
|
|
56
|
+
copiaLocal: 'WARNING: no access to the remote; this is the last copy read on this machine.',
|
|
57
|
+
nenhuma: 'No roadmap item reserved.',
|
|
58
|
+
numerosDeFeat: (n, ultimos) => `FEAT numbers reserved (${n}), the latest: ${ultimos}. The next one comes from: ork roadmap feat`,
|
|
59
|
+
cabecalho: 'ITEM WITH MACHINE THREAD SINCE',
|
|
60
|
+
orfa: (sucessora) => ` ORPHAN: closed thread${sucessora ? `, goes to ${sucessora}` : ''}`,
|
|
61
|
+
orfas: (n) => `${n} orphan reservation(s) on this machine. To release them: ork roadmap reservas --soltar-orfas`,
|
|
62
|
+
nenhumaOrfa: 'No orphan reservation on this machine.',
|
|
63
|
+
soltura: (item, detalhe, thread) => `${item}: ${detalhe} (closed thread ${thread})`,
|
|
64
|
+
mudouDeDono: (item) => `${item} changed owner between the read and the write; it was left as it was`,
|
|
65
|
+
passouPara: (item, sucessora) => `${item} went to thread ${sucessora}, open on the same item`,
|
|
66
|
+
devolvido: (item) => `${item} released`,
|
|
67
|
+
semLeituraPendente: (branch, remoto) => `no read of ${branch} in ${remoto}; the reservation is left for later`,
|
|
68
|
+
soQuemPegou: (descricao) => `${descricao}; only whoever took it releases it, or \`--forcar --motivo\``,
|
|
69
|
+
feat: (feat, thread) => `${feat}: reserved for this machine${thread ? `, thread ${thread}` : ''}.`,
|
|
70
|
+
crieAPagina: (feat) => ` create \`docs/produto/${feat}-<subject>.md\`; the number does not come back, even if the feature never ships`,
|
|
71
|
+
branch: (commit) => ` branch ork/roadmap-reservas at ${commit}`,
|
|
72
|
+
acao: (acao) => ({ pegou: 'reserved for this machine', renovou: 'reservation renewed', tomou: 'reservation TAKEN from another machine',
|
|
73
|
+
soltou: 'released', nada: 'was already free' }[acao] ?? acao),
|
|
74
|
+
itemAcao: (item, acao) => `${item}: ${acao}.`,
|
|
75
|
+
com: (por, maquina, thread) => ` with ${por} on ${maquina}${thread ? `, thread ${thread}` : ''}`,
|
|
76
|
+
uso: 'usage: ork roadmap status [--json] | reservas [--soltar-orfas] | pegar <RM-NNN> [--thread T] [--nota N] | ' +
|
|
77
|
+
'soltar <RM-NNN> [--forcar --motivo M] | feat [--thread T] [--nota N]',
|
|
78
|
+
descricao: (item, por, maquina, desde, thread) => `${item} has been with ${por} on ${maquina} since ${desde}${thread ? ` (thread ${thread})` : ''}`,
|
|
79
|
+
semRemotoParaReservar: (branch, remoto) => `roadmap.sem-remoto: could not read ${branch} in ${remoto}; reserving needs the network`,
|
|
80
|
+
semRemotoParaSoltar: (branch, remoto) => `roadmap.sem-remoto: could not read ${branch} in ${remoto}; releasing needs the network`,
|
|
81
|
+
semRemotoParaOrfas: (branch) => `roadmap.sem-remoto: could not read ${branch}; releasing needs the network`,
|
|
82
|
+
featsAcabaram: 'roadmap.feat: the three-digit FEAT numbers ran out',
|
|
83
|
+
concorrencia: (n) => `roadmap.concorrencia: ${n} pushes refused in a row; try again in a moment`,
|
|
84
|
+
forcarSemMotivo: 'roadmap.forcar: `--forcar` needs `--motivo` (taking another machine\'s reservation is a recorded decision)',
|
|
85
|
+
reservadoAoPegar: (descricao) => `roadmap.reservado: ${descricao}. Pick another item or talk to whoever is on it`,
|
|
86
|
+
reservadoAoSoltar: (descricao) => `roadmap.reservado: ${descricao}; only whoever took it releases it, or \`--forcar --motivo\``,
|
|
87
|
+
};
|