@orkastery/cli 0.5.3 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/adapters/README.md +18 -0
- package/adapters/claude-code/.claude-plugin/plugin.json +1 -0
- package/adapters/claude-code/README.md +195 -5
- package/adapters/claude-code/agents/ork-check.md +1 -0
- package/adapters/claude-code/agents/ork-go.md +1 -0
- package/adapters/claude-code/agents/ork-goal.md +1 -0
- package/adapters/claude-code/agents/ork-master.md +1 -0
- package/adapters/claude-code/agents/ork-plan.md +1 -0
- package/adapters/claude-code/agents/ork-ship.md +1 -0
- package/adapters/claude-code/hooks/hooks.json +2 -1
- package/adapters/claude-code/hooks/ork-guard.js +15 -1
- package/adapters/claude-code/hooks/ork-resposta.js +91 -0
- package/adapters/claude-code/hooks/ork-sensor.js +18 -2
- package/adapters/claude-code/hooks/quota-signal.js +14 -0
- package/adapters/claude-code/mods/autoridade.json +56 -0
- package/adapters/claude-code/mods/ork-clima/.claude-plugin/plugin.json +14 -0
- package/adapters/claude-code/mods/ork-clima/hooks/contas.ts +283 -0
- package/adapters/claude-code/mods/ork-clima/hooks/hooks.json +3 -0
- package/adapters/claude-code/mods/ork-clima/hooks/previsao.ts +393 -0
- package/adapters/claude-code/mods/ork-clima/hooks/register.ts +205 -0
- package/adapters/claude-code/mods/ork-clima/orkastery-mod.json +5 -0
- package/adapters/claude-code/mods/ork-clima/types/index.d.ts +80 -0
- package/adapters/claude-code/mods/ork-freio/.claude-plugin/plugin.json +14 -0
- package/adapters/claude-code/mods/ork-freio/hooks/carga.ts +160 -0
- package/adapters/claude-code/mods/ork-freio/hooks/conferencia.ts +309 -0
- package/adapters/claude-code/mods/ork-freio/hooks/hooks.json +3 -0
- package/adapters/claude-code/mods/ork-freio/hooks/lote.ts +270 -0
- package/adapters/claude-code/mods/ork-freio/hooks/register.ts +285 -0
- package/adapters/claude-code/mods/ork-freio/orkastery-mod.json +5 -0
- package/adapters/claude-code/mods/ork-freio/types/index.d.ts +127 -0
- package/adapters/claude-code/mods/ork-mensageiro/.claude-plugin/plugin.json +14 -0
- package/adapters/claude-code/mods/ork-mensageiro/hooks/caixa.ts +215 -0
- package/adapters/claude-code/mods/ork-mensageiro/hooks/hooks.json +3 -0
- package/adapters/claude-code/mods/ork-mensageiro/hooks/painel.tsx +165 -0
- package/adapters/claude-code/mods/ork-mensageiro/hooks/recepcao.ts +256 -0
- package/adapters/claude-code/mods/ork-mensageiro/hooks/register.tsx +481 -0
- package/adapters/claude-code/mods/ork-mensageiro/orkastery-mod.json +5 -0
- package/adapters/claude-code/mods/ork-mensageiro/types/index.d.ts +85 -0
- package/adapters/claude-code/mods/ork-mesa/.claude-plugin/plugin.json +14 -0
- package/adapters/claude-code/mods/ork-mesa/hooks/cartoes.tsx +246 -0
- package/adapters/claude-code/mods/ork-mesa/hooks/decidir.ts +110 -0
- package/adapters/claude-code/mods/ork-mesa/hooks/fila.ts +253 -0
- package/adapters/claude-code/mods/ork-mesa/hooks/hooks.json +3 -0
- package/adapters/claude-code/mods/ork-mesa/hooks/obvia.ts +98 -0
- package/adapters/claude-code/mods/ork-mesa/hooks/register.tsx +493 -0
- package/adapters/claude-code/mods/ork-mesa/orkastery-mod.json +5 -0
- package/adapters/claude-code/mods/ork-mesa/types/index.d.ts +131 -0
- package/adapters/claude-code/mods/ork-pista/.claude-plugin/plugin.json +14 -0
- package/adapters/claude-code/mods/ork-pista/hooks/acoes.ts +71 -0
- package/adapters/claude-code/mods/ork-pista/hooks/ci.ts +121 -0
- package/adapters/claude-code/mods/ork-pista/hooks/hooks.json +3 -0
- package/adapters/claude-code/mods/ork-pista/hooks/pista.tsx +356 -0
- package/adapters/claude-code/mods/ork-pista/hooks/register.tsx +439 -0
- package/adapters/claude-code/mods/ork-pista/orkastery-mod.json +5 -0
- package/adapters/claude-code/mods/ork-pista/types/index.d.ts +85 -0
- package/adapters/claude-code/mods/ork-ponte/.claude-plugin/plugin.json +13 -0
- package/adapters/claude-code/mods/ork-ponte/hooks/faixa.tsx +57 -0
- package/adapters/claude-code/mods/ork-ponte/hooks/guarda.ts +410 -0
- package/adapters/claude-code/mods/ork-ponte/hooks/hooks.json +3 -0
- package/adapters/claude-code/mods/ork-ponte/hooks/mostrado.ts +55 -0
- package/adapters/claude-code/mods/ork-ponte/hooks/nucleo.ts +157 -0
- package/adapters/claude-code/mods/ork-ponte/hooks/papel.ts +42 -0
- package/adapters/claude-code/mods/ork-ponte/hooks/register.ts +331 -0
- package/adapters/claude-code/mods/ork-ponte/hooks/vigia.ts +76 -0
- package/adapters/claude-code/mods/ork-ponte/orkastery-mod.json +5 -0
- package/adapters/claude-code/mods/ork-ponte/types/index.d.ts +178 -0
- package/adapters/claude-code/mods/ork-portao/.claude-plugin/plugin.json +14 -0
- package/adapters/claude-code/mods/ork-portao/hooks/hooks.json +3 -0
- package/adapters/claude-code/mods/ork-portao/hooks/lease.ts +201 -0
- package/adapters/claude-code/mods/ork-portao/hooks/plano.ts +304 -0
- package/adapters/claude-code/mods/ork-portao/hooks/register.ts +339 -0
- package/adapters/claude-code/mods/ork-portao/hooks/verify.ts +152 -0
- package/adapters/claude-code/mods/ork-portao/orkastery-mod.json +5 -0
- package/adapters/claude-code/mods/ork-portao/types/index.d.ts +60 -0
- package/adapters/claude-code/mods/ork-radar/.claude-plugin/plugin.json +14 -0
- package/adapters/claude-code/mods/ork-radar/hooks/colisao.ts +420 -0
- package/adapters/claude-code/mods/ork-radar/hooks/hooks.json +3 -0
- package/adapters/claude-code/mods/ork-radar/hooks/mapa.tsx +322 -0
- package/adapters/claude-code/mods/ork-radar/hooks/register.tsx +470 -0
- package/adapters/claude-code/mods/ork-radar/orkastery-mod.json +5 -0
- package/adapters/claude-code/mods/ork-radar/types/index.d.ts +72 -0
- package/adapters/claude-code/mods/ork-ritual/.claude-plugin/plugin.json +14 -0
- package/adapters/claude-code/mods/ork-ritual/hooks/hooks.json +3 -0
- package/adapters/claude-code/mods/ork-ritual/hooks/nota.ts +88 -0
- package/adapters/claude-code/mods/ork-ritual/hooks/register.tsx +494 -0
- package/adapters/claude-code/mods/ork-ritual/hooks/replay.tsx +271 -0
- package/adapters/claude-code/mods/ork-ritual/hooks/ritual.ts +218 -0
- package/adapters/claude-code/mods/ork-ritual/orkastery-mod.json +5 -0
- package/adapters/claude-code/mods/ork-ritual/types/index.d.ts +106 -0
- package/adapters/claude-code/mods/ork-sentinela/.claude-plugin/plugin.json +14 -0
- package/adapters/claude-code/mods/ork-sentinela/hooks/alertas.ts +85 -0
- package/adapters/claude-code/mods/ork-sentinela/hooks/despacho.ts +156 -0
- package/adapters/claude-code/mods/ork-sentinela/hooks/hooks.json +3 -0
- package/adapters/claude-code/mods/ork-sentinela/hooks/register.ts +511 -0
- package/adapters/claude-code/mods/ork-sentinela/hooks/vigia.ts +186 -0
- package/adapters/claude-code/mods/ork-sentinela/orkastery-mod.json +5 -0
- package/adapters/claude-code/mods/ork-sentinela/types/index.d.ts +65 -0
- package/adapters/claude-code/mods/ork-torre/.claude-plugin/plugin.json +14 -0
- package/adapters/claude-code/mods/ork-torre/hooks/agenda.ts +60 -0
- package/adapters/claude-code/mods/ork-torre/hooks/detalhe.tsx +236 -0
- package/adapters/claude-code/mods/ork-torre/hooks/frases.ts +42 -0
- package/adapters/claude-code/mods/ork-torre/hooks/hooks.json +3 -0
- package/adapters/claude-code/mods/ork-torre/hooks/painel.tsx +344 -0
- package/adapters/claude-code/mods/ork-torre/hooks/rede.ts +97 -0
- package/adapters/claude-code/mods/ork-torre/hooks/register.tsx +437 -0
- package/adapters/claude-code/mods/ork-torre/orkastery-mod.json +5 -0
- package/adapters/claude-code/mods/ork-torre/types/index.d.ts +108 -0
- package/adapters/codex/skills/ork/SKILL.md +2 -0
- package/adapters/hermes/README.md +64 -1
- package/adapters/hermes/bin/ork-conhecimento-colecoes.sh +14 -0
- package/adapters/hermes/bin/ork-conhecimento-listar.sh +15 -0
- package/adapters/hermes/bin/ork-conhecimento-mostrar.sh +16 -0
- package/adapters/hermes/bin/ork-conhecimento-verificar.sh +15 -0
- package/adapters/hermes/bin/ork-vigia-batida.py +127 -0
- package/adapters/hermes/hermes.plugin.json +4 -0
- package/adapters/hermes/hitl-ingress/__init__.py +101 -8
- package/adapters/hermes/skills/orkastery-devmaster/SKILL.md +3 -3
- package/adapters/openclaw/README.md +83 -10
- package/adapters/openclaw/bin/ork-vigia-batida.js +86 -0
- package/adapters/openclaw/dist/hitl-ingress.js +106 -9
- package/adapters/openclaw/dist/index.js +86 -0
- package/adapters/openclaw/openclaw.plugin.json +34 -4
- package/adapters/openclaw/package.json +2 -2
- package/adapters/openclaw/src/hitl-ingress.ts +103 -9
- package/adapters/openclaw/src/index.ts +94 -0
- package/assets/adapters-en/claude-code/README.md +403 -0
- package/assets/adapters-en/claude-code/agents/ork-check.md +33 -0
- package/assets/adapters-en/claude-code/agents/ork-go.md +33 -0
- package/assets/adapters-en/claude-code/agents/ork-goal.md +34 -0
- package/assets/adapters-en/claude-code/agents/ork-master.md +35 -0
- package/assets/adapters-en/claude-code/agents/ork-plan.md +33 -0
- package/assets/adapters-en/claude-code/agents/ork-ship.md +33 -0
- package/assets/adapters-en/claude-code/commands/check.md +46 -0
- package/assets/adapters-en/claude-code/commands/go.md +46 -0
- package/assets/adapters-en/claude-code/commands/goal.md +55 -0
- package/assets/adapters-en/claude-code/commands/master.md +54 -0
- package/assets/adapters-en/claude-code/commands/onboarding.md +22 -0
- package/assets/adapters-en/claude-code/commands/ork.md +126 -0
- package/assets/adapters-en/claude-code/commands/plan.md +47 -0
- package/assets/adapters-en/claude-code/commands/ship.md +45 -0
- package/assets/adapters-en/codex/skills/ork/SKILL.md +85 -0
- package/assets/adapters-en/hermes/README.md +273 -0
- package/assets/adapters-en/hermes/skills/orkastery-devmaster/SKILL.md +169 -0
- package/assets/docs-en/markdownlint-cli2.jsonc +22 -0
- package/assets/docs-en/padroes/documentacao-de-produto.md +135 -0
- package/assets/docs-en/padroes/roadmap-de-produto.md +100 -0
- package/assets/docs-en/produto/README.md +14 -0
- package/assets/docs-en/produto/_modelo-feature.md +62 -0
- package/assets/docs-en/roadmap/README.md +14 -0
- package/assets/docs-en/roadmap/_modelo-item.md +75 -0
- package/assets/references-en/README.md +25 -0
- package/assets/references-en/code-review-axes.md +82 -0
- package/assets/references-en/definition-of-done.md +74 -0
- package/assets/references-en/performance-checklist.md +53 -0
- package/assets/references-en/security-checklist.md +101 -0
- package/assets/references-en/testing-patterns.md +51 -0
- package/assets/security-scan/defaults/.golangci.yml +2 -0
- package/assets/security-scan/defaults/eslint.config.mjs +11 -0
- package/assets/security-scan/defaults/gitleaks.toml +3 -0
- package/assets/security-scan/defaults/ruff.toml +1 -0
- package/assets/security-scan/tools-agil.json +87 -0
- package/assets/security-scan/tools.json +625 -0
- package/assets/skills-en/core/onboarding/SKILL.md +58 -0
- package/assets/skills-en/core/orkastery-bootstrap/SKILL.md +119 -0
- package/assets/skills-en/core/thread-state/SKILL.md +88 -0
- package/assets/skills-en/governance/decision-triage/SKILL.md +65 -0
- package/assets/skills-en/governance/narrative-guardian/SKILL.md +66 -0
- package/assets/skills-en/governance/roadmap-keeper/SKILL.md +60 -0
- package/assets/skills-en/governance/scope-check-capability-map/SKILL.md +71 -0
- package/assets/skills-en/observability/thread-tracing/SKILL.md +63 -0
- package/assets/skills-en/phases/check-quality/SKILL.md +103 -0
- package/assets/skills-en/phases/go-implementation/SKILL.md +78 -0
- package/assets/skills-en/phases/goal-definition/SKILL.md +69 -0
- package/assets/skills-en/phases/master-metrics/SKILL.md +72 -0
- package/assets/skills-en/phases/plan-specification/SKILL.md +67 -0
- package/assets/skills-en/phases/security-remediation/SKILL.md +70 -0
- package/assets/skills-en/phases/ship-release/SKILL.md +71 -0
- package/assets/skills-en/reviewers/code-reviewer/SKILL.md +61 -0
- package/assets/skills-en/reviewers/security-auditor/SKILL.md +93 -0
- package/assets/skills-en/reviewers/test-engineer/SKILL.md +66 -0
- package/assets/skills-en/reviewers/web-performance-auditor/SKILL.md +63 -0
- package/dist/adapters/claude-bg.js +193 -15
- package/dist/adapters/codex-controller-worker.js +12 -5
- package/dist/adapters/codex-events.js +16 -4
- package/dist/adapters/codex.js +13 -2
- package/dist/agents-md.js +24 -15
- package/dist/atualizar-branch.js +245 -0
- package/dist/auditoria.js +13 -11
- package/dist/auditrun.js +68 -48
- package/dist/autorizacao-duravel.js +327 -0
- package/dist/board.js +98 -43
- package/dist/branch-de-estado.js +39 -9
- package/dist/busca-semantica.js +7 -5
- package/dist/catalogo.js +35 -1
- package/dist/changelog-reconciliacao.js +290 -0
- package/dist/check-agil.js +500 -0
- package/dist/check-modo.js +41 -0
- package/dist/check-paralelo.js +183 -0
- package/dist/ci.js +255 -46
- package/dist/ciclos.js +8 -6
- package/dist/claim-lint.js +12 -8
- package/dist/claims-conferir.js +350 -0
- package/dist/claims.js +13 -10
- package/dist/company-brain-client.js +45 -3
- package/dist/company-brain-journal.js +2 -1
- package/dist/company-brain-migration.js +47 -6
- package/dist/conducao-batida.js +759 -0
- package/dist/conducao-sentinela.js +405 -0
- package/dist/conducao-texto.js +12 -18
- package/dist/conducao.js +206 -59
- package/dist/conhecimento-consulta.js +270 -0
- package/dist/conhecimento.js +514 -0
- package/dist/conta-esgotada.js +127 -0
- package/dist/dado-privado.js +816 -0
- package/dist/decisao-autonoma.js +5 -4
- package/dist/demo.js +14 -12
- package/dist/dependencias-da-worktree.js +25 -0
- package/dist/divida.js +38 -36
- package/dist/docs.js +103 -82
- package/dist/doctor-forja.js +345 -0
- package/dist/doctor-pulse-cron.js +294 -27
- package/dist/doctor-rede.js +18 -17
- package/dist/doctor.js +278 -116
- package/dist/dsn-da-memoria.js +417 -0
- package/dist/entrega-por-mod.js +503 -0
- package/dist/entrega-pr.js +158 -57
- package/dist/escopo-escrita.js +10 -1
- package/dist/esgotamentos.js +13 -11
- package/dist/estado-thread.js +42 -17
- package/dist/evalrunner.js +35 -32
- package/dist/experiencia-instalacao.js +45 -25
- package/dist/fabrica-batida.js +323 -0
- package/dist/fabrica-estado.js +49 -16
- package/dist/fabrica-publicar.js +3 -1
- package/dist/fila-pesada.js +444 -0
- package/dist/fix.js +24 -21
- package/dist/forja/adaptador.js +6 -0
- package/dist/forja/ambiente-de-ci.js +27 -0
- package/dist/forja/api.js +256 -0
- package/dist/forja/cache.js +89 -0
- package/dist/forja/cli.js +60 -0
- package/dist/forja/contrato.js +9 -0
- package/dist/forja/endereco.js +43 -0
- package/dist/forja/estado.js +22 -0
- package/dist/forja/executor.js +73 -0
- package/dist/forja/github/ci.js +95 -0
- package/dist/forja/github/dono-da-rede.js +18 -0
- package/dist/forja/github/metadados.js +15 -0
- package/dist/forja/github/pedidos.js +200 -0
- package/dist/forja/gitlab/ci.js +141 -0
- package/dist/forja/gitlab/consultas.js +59 -0
- package/dist/forja/gitlab/dono-da-rede.js +43 -0
- package/dist/forja/gitlab/metadados.js +15 -0
- package/dist/forja/gitlab/pedidos-abertos.js +158 -0
- package/dist/forja/gitlab/pedidos.js +141 -0
- package/dist/forja/produtor.js +32 -0
- package/dist/forja/registro.js +31 -0
- package/dist/forja/resolver.js +121 -0
- package/dist/forja/texto.js +13 -0
- package/dist/forja/versao.js +71 -0
- package/dist/forja.js +124 -81
- package/dist/gates.js +3 -28
- package/dist/handoff.js +33 -19
- package/dist/hitl-contract.js +46 -43
- package/dist/hitl-curto.js +37 -25
- package/dist/hitl-gates.js +13 -11
- package/dist/hitl-local-receipt.js +53 -0
- package/dist/hitl-local.js +11 -2
- package/dist/hitl-lock.js +5 -11
- package/dist/hitl-public-receipt.js +11 -0
- package/dist/hitl-resumo.js +72 -3
- package/dist/hitl-sessions.js +62 -9
- package/dist/hitl-tempo-parado.js +4 -4
- package/dist/hitl-texto-livre.js +7 -4
- package/dist/hitl.js +63 -64
- package/dist/horario.js +30 -7
- package/dist/hosts.js +155 -134
- package/dist/impedimento.js +108 -14
- package/dist/index.js +1421 -1019
- package/dist/indice-vetorial.js +14 -12
- package/dist/indice.js +7 -1
- package/dist/init.js +54 -49
- package/dist/instabilidade.js +144 -0
- package/dist/integracoes-locais.js +4 -0
- package/dist/intelligence-graph-cli.js +213 -88
- package/dist/intelligence-graph-contexto.js +56 -17
- package/dist/intelligence-graph-contract.js +2 -1
- package/dist/intelligence-graph-extract-md.js +56 -4
- package/dist/intelligence-graph-extract-ts.js +71 -3
- package/dist/intelligence-graph-query.js +96 -34
- package/dist/leases.js +19 -18
- package/dist/ledger-stats.js +17 -16
- package/dist/ledger.js +46 -2
- package/dist/licoes.js +12 -11
- package/dist/liveness.js +6 -3
- package/dist/locale-accounts.js +220 -0
- package/dist/locale-adapter.js +291 -0
- package/dist/locale-ajuda.js +833 -0
- package/dist/locale-audit.js +199 -0
- package/dist/locale-claims.js +213 -0
- package/dist/locale-conducao.js +138 -0
- package/dist/locale-conhecimento.js +181 -0
- package/dist/locale-decisao.js +205 -0
- package/dist/locale-docs.js +230 -0
- package/dist/locale-estado.js +101 -0
- package/dist/locale-forja.js +290 -0
- package/dist/locale-gerados.js +165 -0
- package/dist/locale-grafo.js +129 -0
- package/dist/locale-master.js +182 -0
- package/dist/locale-network.js +524 -0
- package/dist/locale-onboarding.js +92 -0
- package/dist/locale-operacao-restante.js +931 -0
- package/dist/locale-phase.js +151 -0
- package/dist/locale-projetos.js +100 -0
- package/dist/locale-prompts.js +194 -0
- package/dist/locale-pulse.js +349 -0
- package/dist/locale-reservas.js +87 -0
- package/dist/locale-retry.js +524 -0
- package/dist/locale-roadmap.js +102 -0
- package/dist/locale-security-scan.js +69 -0
- package/dist/locale-setup.js +192 -0
- package/dist/locale-ship.js +597 -0
- package/dist/locale-thread.js +421 -0
- package/dist/locale-verify.js +201 -0
- package/dist/locale-worktree.js +246 -0
- package/dist/locale.js +1258 -0
- package/dist/maestro-runtime.js +22 -3
- package/dist/manifest.js +415 -13
- package/dist/maquina-ociosa.js +211 -0
- package/dist/maquina.js +31 -7
- package/dist/master-digest.js +6 -1
- package/dist/master-nota-local.js +200 -0
- package/dist/master-nota.js +14 -8
- package/dist/master.js +139 -65
- package/dist/mcp-artifacts.js +11 -2
- package/dist/mcp-conhecimento.js +52 -0
- package/dist/mcp-experiencia.js +26 -5
- package/dist/mcp-git.js +23 -6
- package/dist/mcp-grafo.js +7 -4
- package/dist/mcp-install.js +73 -8
- package/dist/mcp-noctum.js +101 -0
- package/dist/mcp-server.js +90 -16
- package/dist/mcp-ship-transporte.js +977 -0
- package/dist/mcp-ship.js +71 -25
- package/dist/mcp-transportes.js +17 -0
- package/dist/mcp-verify.js +6 -1
- package/dist/memoria.js +63 -58
- package/dist/modos-migracao.js +8 -6
- package/dist/modos.js +20 -24
- package/dist/network-roadmap.js +90 -51
- package/dist/noctum-aceite.js +789 -0
- package/dist/noctum-arco.js +1418 -0
- package/dist/noctum-capacidade.js +141 -0
- package/dist/noctum-changelog.js +399 -0
- package/dist/noctum-cli.js +482 -0
- package/dist/noctum-coordenacao.js +1225 -0
- package/dist/noctum-entrega.js +1169 -0
- package/dist/noctum-envelope.js +1046 -0
- package/dist/noctum-execucao.js +376 -0
- package/dist/noctum-fechamento.js +405 -0
- package/dist/noctum-fila.js +314 -0
- package/dist/noctum-guarda.js +256 -0
- package/dist/noctum-integracao.js +507 -0
- package/dist/noctum-maquinas.js +383 -0
- package/dist/noctum-medicao.js +450 -0
- package/dist/noctum-modo.js +362 -0
- package/dist/noctum-pergunta-canal.js +96 -0
- package/dist/noctum-pergunta.js +115 -0
- package/dist/noctum-provas.js +838 -0
- package/dist/noctum-reconciliacao.js +591 -0
- package/dist/noctum-registro.js +215 -0
- package/dist/noctum-relatorio.js +827 -0
- package/dist/noctum-resposta.js +207 -0
- package/dist/noctum-sessoes-em-voo.js +93 -0
- package/dist/noctum-supervisao.js +649 -0
- package/dist/noctum-terminal.js +459 -0
- package/dist/noctum-transporte.js +655 -0
- package/dist/noctum-vigia.js +639 -0
- package/dist/ocupacao.js +32 -3
- package/dist/onboarding.js +56 -26
- package/dist/orkmind.js +48 -25
- package/dist/orquestracao.js +44 -47
- package/dist/parado-no-condutor.js +174 -127
- package/dist/phase.js +144 -63
- package/dist/policies.js +37 -4
- package/dist/portfolio.js +4 -2
- package/dist/postura-local.js +235 -0
- package/dist/preflight.js +11 -10
- package/dist/procedencia.js +220 -0
- package/dist/projeto-alvo.js +186 -24
- package/dist/prompts.js +140 -42
- package/dist/prova-minima.js +5 -6
- package/dist/pulse-cadencia.js +5 -4
- package/dist/pulse-consentimento.js +53 -1
- package/dist/pulse-delivery.js +151 -24
- package/dist/pulse-resposta.js +368 -4
- package/dist/pulse.js +188 -22
- package/dist/ratelimit.js +16 -6
- package/dist/recall.js +14 -13
- package/dist/redacao-saida.js +63 -0
- package/dist/rede-adesao.js +13 -8
- package/dist/rede-forja.js +108 -24
- package/dist/rede-status.js +66 -47
- package/dist/rede.js +86 -46
- package/dist/retomada-checkpoint.js +101 -0
- package/dist/retry.js +451 -212
- package/dist/roadmap-reservas.js +45 -28
- package/dist/roadmap-status.js +129 -33
- package/dist/runtime-ambiente.js +5 -0
- package/dist/runtime-context.js +284 -32
- package/dist/runtime-escada.js +423 -0
- package/dist/runtime-profiles.js +103 -46
- package/dist/runtimes.js +2 -1
- package/dist/saida-segura.js +3 -2
- package/dist/security-scan/agil.js +355 -0
- package/dist/security-scan/cli.js +76 -0
- package/dist/security-scan/compare.js +149 -0
- package/dist/security-scan/config.js +93 -0
- package/dist/security-scan/detect.js +97 -0
- package/dist/security-scan/executor.js +188 -0
- package/dist/security-scan/guard.js +180 -0
- package/dist/security-scan/imagem-de-lint.js +96 -0
- package/dist/security-scan/normalize/actionlint.js +12 -0
- package/dist/security-scan/normalize/eslint.js +12 -0
- package/dist/security-scan/normalize/gitleaks.js +13 -0
- package/dist/security-scan/normalize/golangci-lint.js +13 -0
- package/dist/security-scan/normalize/govulncheck.js +36 -0
- package/dist/security-scan/normalize/index.js +25 -0
- package/dist/security-scan/normalize/npm-audit.js +30 -0
- package/dist/security-scan/normalize/osv-scanner.js +32 -0
- package/dist/security-scan/normalize/oxlint.js +51 -0
- package/dist/security-scan/normalize/pip-audit.js +16 -0
- package/dist/security-scan/normalize/ruff.js +12 -0
- package/dist/security-scan/normalize/semgrep.js +20 -0
- package/dist/security-scan/normalize/trivy.js +33 -0
- package/dist/security-scan/normalize/util.js +204 -0
- package/dist/security-scan/normalize/zizmor.js +19 -0
- package/dist/security-scan/report.js +156 -0
- package/dist/security-scan/run.js +448 -0
- package/dist/security-scan/tools.js +62 -0
- package/dist/security-scan/trabalhador.js +74 -0
- package/dist/security-scan/types.js +15 -0
- package/dist/session-events.js +26 -5
- package/dist/session-watcher-claude.js +81 -20
- package/dist/session-watcher.js +340 -42
- package/dist/sessoes-contas.js +10 -1
- package/dist/sessoes-inventario.js +1 -1
- package/dist/sessoes.js +25 -23
- package/dist/setup.js +59 -58
- package/dist/ship-publicar.js +971 -0
- package/dist/ship.js +243 -97
- package/dist/steal.js +77 -0
- package/dist/superficie.js +14 -11
- package/dist/thread-close.js +12 -11
- package/dist/thread.js +274 -100
- package/dist/tokens.js +15 -11
- package/dist/trabalho-thread.js +297 -0
- package/dist/transporte-do-canal.js +189 -0
- package/dist/types.js +12 -1
- package/dist/util.js +13 -3
- package/dist/varredura-acoes.js +507 -0
- package/dist/verify.js +608 -76
- package/dist/vida-da-thread.js +254 -0
- package/dist/worktree-local.js +167 -0
- package/dist/worktree.js +99 -83
- package/dist/yaml.js +27 -8
- package/eval/casos/check-quality.json +77 -0
- package/eval/casos/security-auditor.json +148 -0
- package/eval/casos/security-remediation.json +161 -0
- package/eval/fixtures/security-scan/README.md +8 -0
- package/eval/fixtures/security-scan/go/.github/workflows/ci.yml +12 -0
- package/eval/fixtures/security-scan/go/Dockerfile +4 -0
- package/eval/fixtures/security-scan/go/README.md +4 -0
- package/eval/fixtures/security-scan/go/config.go +4 -0
- package/eval/fixtures/security-scan/go/go.mod +5 -0
- package/eval/fixtures/security-scan/go/go.sum +2 -0
- package/eval/fixtures/security-scan/go/main.go +31 -0
- package/eval/fixtures/security-scan/js/.github/workflows/ci.yml +12 -0
- package/eval/fixtures/security-scan/js/Dockerfile +3 -0
- package/eval/fixtures/security-scan/js/README.md +4 -0
- package/eval/fixtures/security-scan/js/package-lock.json +844 -0
- package/eval/fixtures/security-scan/js/package.json +10 -0
- package/eval/fixtures/security-scan/js/src/config.js +4 -0
- package/eval/fixtures/security-scan/js/src/server.js +17 -0
- package/eval/fixtures/security-scan/js/src/util.ts +4 -0
- package/eval/fixtures/security-scan/js/tsconfig.json +4 -0
- package/eval/fixtures/security-scan/python/.github/workflows/ci.yml +12 -0
- package/eval/fixtures/security-scan/python/Dockerfile +3 -0
- package/eval/fixtures/security-scan/python/README.md +4 -0
- package/eval/fixtures/security-scan/python/app/__init__.py +0 -0
- package/eval/fixtures/security-scan/python/app/config.py +2 -0
- package/eval/fixtures/security-scan/python/app/main.py +19 -0
- package/eval/fixtures/security-scan/python/requirements.txt +1 -0
- package/package.json +9 -4
- package/references/security-checklist.md +3 -3
- package/schemas/code-artifact-graph.v1.schema.json +2 -1
- package/skills/README.md +1 -0
- package/skills/core/orkastery-bootstrap/SKILL.md +2 -2
- package/skills/phases/check-quality/SKILL.md +16 -0
- package/skills/phases/go-implementation/SKILL.md +6 -0
- package/skills/phases/security-remediation/SKILL.md +70 -0
- package/skills/reviewers/security-auditor/SKILL.md +25 -0
|
@@ -0,0 +1,524 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* RM-061, fatia F3b: a familia `network` do catalogo de mensagens (`ork network status|entrar|sair|publicar` e o uso),
|
|
4
|
+
* o texto do status da rede, as lacunas que a leitura devolve e as recusas da rede (`rede.ts`, `rede-adesao.ts`,
|
|
5
|
+
* `rede-forja.ts`). O pt-BR e a fonte; o ingles e tipado por ele. Sem import do nucleo.
|
|
6
|
+
*
|
|
7
|
+
* O detalhe de cada lacuna vai ao `--json` e nasce em pt-BR no escopo da leitura (`textoDoCatalogo`); so a impressao o
|
|
8
|
+
* remonta. O nome da maquina, a casa, a forja, o login, a versao e o motivo tipado (`rede.sem-leitura`) sao dado e
|
|
9
|
+
* saem iguais. O retrato publicado, a mensagem de commit e o indice da casa nao mudam com a lingua. `ork network
|
|
10
|
+
* roadmap` segue em pt-BR (G6): o texto dele e contrato com os hosts e com a prova de ativacao.
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.NETWORK_EN = exports.NETWORK_PT_BR = void 0;
|
|
14
|
+
const NAO_CONSULTADO_EN = { roadmap: 'roadmap', reservas: 'reservations', threads: 'threads' };
|
|
15
|
+
/** A parte da lacuna (`ParteDaRede`) dita em ingles no detalhe; o `--json` guarda o identificador. */
|
|
16
|
+
const PARTES_EN = { projeto: 'project', roadmap: 'roadmap', reservas: 'reservations',
|
|
17
|
+
fabrica: 'factory', 'estado-local': 'local state', forja: 'forge', registro: 'project registry', rede: 'network' };
|
|
18
|
+
const DIR_ROADMAP_LITERAL = 'docs/roadmap';
|
|
19
|
+
exports.NETWORK_PT_BR = {
|
|
20
|
+
// ork network status
|
|
21
|
+
cabecalhoComCasa: (dono, forja, ref, estado) => `Orkastery Network de ${dono} · ${forja}: ${ref} · ${estado}`,
|
|
22
|
+
casaLidaAgora: 'lida agora',
|
|
23
|
+
casaUltimaCopia: 'última cópia local',
|
|
24
|
+
casaNaoLida: 'não lida',
|
|
25
|
+
semCasa: 'Orkastery Network · sem casa: nenhuma forja com login nesta máquina',
|
|
26
|
+
repositorioDaRede: (ponta) => `repositório da rede (${ponta ?? 'vazio'})`,
|
|
27
|
+
fabricaDe: (projeto, ref, atualizado) => `fábrica de ${projeto} (${ref}, ${atualizado ? 'lida agora' : 'última cópia'})`,
|
|
28
|
+
consultado: (lista) => `Consultado: ${lista ?? 'nada (veja as lacunas)'}.`,
|
|
29
|
+
naoConsultado: (lista) => `Não consultado: ${lista}. O roadmap de um projeto sai do ork roadmap status nele.`,
|
|
30
|
+
/** O que a leitura nao olha (dado do `--json`), como o texto o mostra. */
|
|
31
|
+
itemNaoConsultado: (item) => item,
|
|
32
|
+
nenhumaMaquina: 'Nenhuma máquina lida. Isso não quer dizer que não há máquinas: veja as lacunas.',
|
|
33
|
+
outraInstalacao: ' (outra instalação com o nome desta máquina)',
|
|
34
|
+
estaMaquina: ' (esta máquina)',
|
|
35
|
+
origemRede: (herdada) => `rede${herdada ? ', adesão herdada da fábrica' : ''}`,
|
|
36
|
+
origemFabrica: (projetos) => `vista só na fábrica de ${projetos}; sem retrato na rede`,
|
|
37
|
+
membro: (maquina, esta, origem, batida, idade) => `${maquina}${esta} · ${origem} · batida ${batida} (há ${idade})`,
|
|
38
|
+
fichaHostname: (hostname) => `hostname ${hostname}`,
|
|
39
|
+
fichaOrk: (versao) => `ork ${versao}`,
|
|
40
|
+
fichaForja: (forja, usuario) => `${forja}: ${usuario ?? 'sem login'}`,
|
|
41
|
+
fichaPessoa: (pessoa) => `pessoa ${pessoa}`,
|
|
42
|
+
runtimes: (lista) => ` runtimes: ${lista}`,
|
|
43
|
+
hosts: (lista) => ` hosts: ${lista}`,
|
|
44
|
+
hostAdaptador: (adaptador) => ` (adaptador ${adaptador})`,
|
|
45
|
+
projetos: (lista) => ` projetos: ${lista}`,
|
|
46
|
+
projetoEm: (caminho) => ` em ${caminho}`,
|
|
47
|
+
estaEMembro: (maquina, herdado, publicada) => `Esta máquina (${maquina}) é membro` +
|
|
48
|
+
`${herdado ? ', herdado da fábrica' : ''}${publicada ? '.' : '; o retrato dela ainda não está na casa.'}`,
|
|
49
|
+
foraDaRedeLinha: (maquina) => `Esta máquina (${maquina}) não está na rede: ork network entrar.`,
|
|
50
|
+
semLacunas: 'Lacunas: nenhuma.',
|
|
51
|
+
lacunas: (n) => `Lacunas (${n}), o que faltou ler:`,
|
|
52
|
+
lacuna: (tipo, detalhe) => ` • ${tipo}: ${detalhe}`,
|
|
53
|
+
// As lacunas que a leitura devolve (o detalhe vai ao `--json` em pt-BR).
|
|
54
|
+
semRedeSemCasa: 'sem rede e sem casa conhecida nesta maquina: rode sem --sem-remoto',
|
|
55
|
+
casaNaoExiste: (ref) => `${ref} ainda nao existe: nenhuma maquina rodou ork network entrar`,
|
|
56
|
+
casaPublica: (ref) => `${ref} nao e privado: nenhuma maquina publica nele`,
|
|
57
|
+
casaSemHttps: (ref) => `${ref}: a forja devolveu uma URL sem https; a rede so fala por https (vale a ultima copia local, quando ha)`,
|
|
58
|
+
comErro: (ref, erro) => `${ref}: ${erro}`,
|
|
59
|
+
// O retrato de maquina que a leitura deixa de fora (`lerRetratos`, em `rede.ts`): a lacuna `retrato.invalido`
|
|
60
|
+
retratoInvalido: (arquivo, motivo) => `${arquivo}: ${motivo}`,
|
|
61
|
+
retratoForaDoPadrao: 'nome de arquivo fora do padrao maquinas/<maquina>.json',
|
|
62
|
+
retratoIlegivel: 'JSON ilegivel',
|
|
63
|
+
retratoForaDoContrato: (contrato) => `fora do contrato ${contrato}`,
|
|
64
|
+
retratoDeOutraMaquina: (maquina) => `diz ser a maquina "${maquina}", que nao e a dona deste arquivo`,
|
|
65
|
+
retratoProjetosOmitidos: (n, padrao) => `${n} projeto(s) fora da leitura: padrao "${padrao}" (valor omitido de proposito)`,
|
|
66
|
+
retratoComSegredo: (padrao, onde) => `padrao "${padrao}" em ${onde} (valor omitido de proposito)`,
|
|
67
|
+
semLeituraNova: (ref, temCopia) => `${ref} sem leitura nova: ${temCopia ? 'mostrando a ultima copia local' : 'nenhuma copia local'}`,
|
|
68
|
+
nuncaLida: (ref) => `${ref} nunca foi lida nesta maquina`,
|
|
69
|
+
semClone: (nome, caminho) => `${nome}: ${caminho} nao tem mais o projeto nesta maquina`,
|
|
70
|
+
remotoInvalido: (nome, remoto) => `${nome}: fabrica.remoto ${remoto} nao e nome de remoto do git; nada foi lido pelo git`,
|
|
71
|
+
semRemoto: (nome, remoto) => `${nome}: sem o remoto ${remoto}, nao ha fabrica compartilhada para ler`,
|
|
72
|
+
fabricaSemLeituraNova: (nome, branch) => `${nome}: ${branch} sem leitura nova; usei a ultima copia local`,
|
|
73
|
+
nomeEmUsoNaCasa: (maquina) => `o retrato "${maquina}" na casa e de outra instalacao: esta maquina nao ` +
|
|
74
|
+
'publica ate trocar de nome (ork network entrar --maquina NOME) ou retomar este (ork network entrar --forcar)',
|
|
75
|
+
batidaIlegivel: (maquina) => `${maquina}: batida ilegivel`,
|
|
76
|
+
semBatidaHa: (maquina, idade) => `${maquina}: sem batida ha ${idade}`,
|
|
77
|
+
// A casa (resolverCasa) e a forja.
|
|
78
|
+
cliAusente: (forja) => `a CLI da forja ${forja} nao esta nesta maquina`,
|
|
79
|
+
nenhumaCli: 'nenhuma CLI de forja (gh ou glab) nesta maquina',
|
|
80
|
+
loginNaoLido: (falhas) => `${falhas}; o login nao foi lido, rode de novo com a forja respondendo`,
|
|
81
|
+
semLogin: (candidatas) => {
|
|
82
|
+
const partes = candidatas.map((c) => (c.nome === 'gitlab' ? `${c.cli} sem login no ${c.host}` : `${c.cli} sem login nesta maquina`) + ` (${c.cli} auth login)`);
|
|
83
|
+
const noPadrao = candidatas.some((c) => c.nome === 'gitlab' && c.host === 'gitlab.com');
|
|
84
|
+
return partes.join('; ') + (noPadrao ? '; um GitLab proprio exige GITLAB_HOST=<host>' : '');
|
|
85
|
+
},
|
|
86
|
+
respostaSemLogin: (cli) => `${cli} api user devolveu uma resposta sem login legivel`,
|
|
87
|
+
semRespostaNoPrazo: 'sem resposta da forja no prazo',
|
|
88
|
+
apiFalhou: (cli, rota, linha) => `rede.forja: ${cli} api ${rota} falhou${linha ? `: ${linha}` : ''}`,
|
|
89
|
+
repositorioIlegivel: 'rede.forja: gh devolveu um repositorio ilegivel',
|
|
90
|
+
projetoIlegivel: 'rede.forja: glab devolveu um projeto ilegivel',
|
|
91
|
+
projetoEmOutroCaminho: (pedido, criado) => `rede.forja: o GitLab criou o projeto em ${criado}, e não em ${pedido}; confira o grupo e apague o que sobrou`,
|
|
92
|
+
// As recusas da rede (rede.ts e rede-adesao.ts).
|
|
93
|
+
foraDoContrato: (onde) => `rede.segredo: ${onde} fora do contrato; nada foi publicado`,
|
|
94
|
+
campoForaDaLista: (campo) => `rede.segredo: campo "${campo}" fora da lista de permissao; nada foi publicado`,
|
|
95
|
+
campoLongo: (campo) => `rede.segredo: campo "${campo}" longo demais; nada foi publicado`,
|
|
96
|
+
contratoDoRetrato: 'rede.contrato: o retrato desta maquina nao passa no contrato ork.rede-maquina/v1; nada foi publicado',
|
|
97
|
+
segredoNoRetrato: (padrao, onde) => `rede.segredo: padrao "${padrao}" em ${onde}; nada foi publicado (valor omitido de proposito)`,
|
|
98
|
+
retratoAlheio: (maquina, caminho, proprio) => `rede.retrato-alheio: ${maquina} tentou gravar ${caminho}; cada maquina so escreve ${proprio}`,
|
|
99
|
+
semForja: (detalhe) => `rede.sem-forja: ${detalhe ?? 'nenhuma forja utilizavel'}`,
|
|
100
|
+
semRepositorio: (ref) => `rede.sem-repositorio: ${ref} ainda nao existe; ork network entrar o cria, privado`,
|
|
101
|
+
repositorioAlheio: (ref, login) => `rede.repositorio-alheio: ${ref} nao existe e nao e do login ${login}; crie o repositorio privado na forja e rode de novo`,
|
|
102
|
+
gitlabNaoSuportado: (motivo) => `rede.forja-nao-suportada: a casa da rede num GitLab ${motivo === 'ca' ? 'com CA propria (GLAB_CA_CERT)' : 'em subcaminho (GITLAB_HOST com caminho)'} ` +
|
|
103
|
+
'ainda nao e suportada; o rede.json guarda so host[:porta]. Use um GitLab na raiz do host e com certificado publico',
|
|
104
|
+
grupoSemNivel: (ref, grupo, login, nivel) => `rede.repositorio-alheio: ${ref} nao existe, e o login ${login} tem nivel ${nivel} no grupo ${grupo}; criar a casa num grupo pede ` +
|
|
105
|
+
'Maintainer (40) ou acima',
|
|
106
|
+
repositorioPublico: (ref) => `rede.repositorio-publico: ${ref} nao e privado; nada foi publicado`,
|
|
107
|
+
semUrl: (cli, ref) => `rede.forja: ${cli} nao devolveu a URL de ${ref}`,
|
|
108
|
+
semHttps: (cli, ref) => `rede.sem-https: ${cli} devolveu para ${ref} uma URL sem https; a rede so fala com a forja por https, e nada foi publicado`,
|
|
109
|
+
saiuDaRede: 'rede.fora: esta maquina saiu da rede; nada foi publicado',
|
|
110
|
+
semLeitura: (ref) => `rede.sem-leitura: nao consegui ler ${ref}; publicar exige rede`,
|
|
111
|
+
nomeEmUso: (maquina, quem, dica) => `rede.nome-em-uso: outra instalacao ja publica como "${maquina}"${quem}${dica}`,
|
|
112
|
+
quemHostname: (hostname, batida) => ` (hostname ${hostname}, batida ${batida})`,
|
|
113
|
+
quemIlegivel: ' (num retrato que esta versao nao le)',
|
|
114
|
+
dicaMesmoHostname: '; o retrato tem o hostname desta maquina: se for ela mesma, com ~/.orkastery apagada ou copiada, retome o nome com ' +
|
|
115
|
+
'ork network entrar --forcar; se for outra maquina ou instalacao com o mesmo hostname, escolha outro nome com --maquina NOME',
|
|
116
|
+
dicaOutroNome: '; escolha outro nome com ork network entrar --maquina NOME, ou tome este com --forcar',
|
|
117
|
+
concorrencia: (n) => `rede.concorrencia: ${n} pushes recusados seguidos; tente de novo em instantes`,
|
|
118
|
+
foraDaRede: 'rede.fora: esta maquina nao esta na rede; ork network entrar',
|
|
119
|
+
nomeInvalido: (maquina) => `rede.maquina: nome de maquina invalido ("${maquina}"); use ork network entrar --maquina NOME (letras, numeros, ponto, _ ou -)`,
|
|
120
|
+
ocupadoAoEntrar: (trava) => `rede.ocupado: outra publicacao desta maquina esta em andamento (${trava}); rode ork network entrar de novo em instantes`,
|
|
121
|
+
semHttpsAoSair: (cli, ref) => `rede.sem-https: saiu da rede aqui, mas ${cli} devolveu para ${ref} uma URL sem https; o retrato fica na casa`,
|
|
122
|
+
ocupadoAoSair: (trava) => `rede.ocupado: saiu da rede aqui, mas outra publicacao desta maquina segura a casa (${trava}); rode ork network sair de novo`,
|
|
123
|
+
semLeituraAoSair: (ref) => `rede.sem-leitura: saiu da rede aqui, mas nao consegui ler ${ref} para tirar o retrato; rode ork network sair de novo com rede`,
|
|
124
|
+
hostInvalido: (host) => `rede.config: host invalido ("${host}")`,
|
|
125
|
+
campoInvalido: (campo, valor) => `rede.config: ${campo} invalido ("${valor}")`,
|
|
126
|
+
idNaoGravou: (arquivo) => `rede.id: nao consegui gravar nem ler ${arquivo}`,
|
|
127
|
+
idNaoArquivo: (arquivo) => `rede.id: ${arquivo} nao e um arquivo; apague-o e rode de novo`,
|
|
128
|
+
// ork network roadmap. As tres primeiras linhas e `clone em` sao contrato com os hosts e ficam fora daqui.
|
|
129
|
+
roadmap: {
|
|
130
|
+
uso: 'uso: ork network roadmap [--projeto <caminho|github:dono/repo|gitlab:grupo/repo|nome>] [--json] [--sem-remoto]',
|
|
131
|
+
contratoInvalido: 'panorama da rede: contrato inválido',
|
|
132
|
+
candidatos: 'Candidatos:',
|
|
133
|
+
recusaDetalhe: (_codigo, detalhe) => detalhe,
|
|
134
|
+
recusaCorrecao: (_codigo, correcao) => correcao,
|
|
135
|
+
nadaForaDoPedido: '• nada fora do pedido',
|
|
136
|
+
naoConsultado: (item) => `• ${item}`,
|
|
137
|
+
redePorPessoa: 'Rede por pessoa (RM-053)',
|
|
138
|
+
lacunasDaConsulta: 'Lacunas da consulta',
|
|
139
|
+
roadmapNaoLido: (projeto, tipos) => `Roadmap do ${projeto}: não lido (${tipos}).`,
|
|
140
|
+
semFonte: 'sem fonte',
|
|
141
|
+
threadsPorMaquina: 'Threads por máquina',
|
|
142
|
+
reservas: 'Reservas',
|
|
143
|
+
fontes: 'Fontes',
|
|
144
|
+
lacunas: 'Lacunas',
|
|
145
|
+
nenhumaFonte: '• nenhuma fonte lida',
|
|
146
|
+
nenhumaLacuna: '• nenhuma: todas as fontes foram lidas agora',
|
|
147
|
+
nesteProjeto: (legenda) => `Neste projeto: ${legenda}`,
|
|
148
|
+
fonteParte: (parte) => ({ roadmap: 'roadmap', reservas: 'reservas', fabrica: 'fábrica', 'estado-local': 'esta máquina' }[parte] ?? parte),
|
|
149
|
+
lidoAgora: 'lido agora',
|
|
150
|
+
lidoEm: (quando) => `lido ${quando}`,
|
|
151
|
+
fonteLocal: (parte, onde, lido) => `• ${parte}: estado local em ${onde}, ${lido}`,
|
|
152
|
+
fonteInexistente: (parte, onde, lido) => `• ${parte}: ${onde} não existe, ${lido}`,
|
|
153
|
+
alvoDoRoadmap: (onde) => `${DIR_ROADMAP_LITERAL} em ${onde}`,
|
|
154
|
+
fonteCommit: (parte, alvo, commit, data, estado) => `• ${parte}: ${alvo} @ ${commit} (commit de ${data}), ${estado}`,
|
|
155
|
+
ultimaCopia: 'última cópia desta máquina, sem leitura nova',
|
|
156
|
+
maquinasNaoLidas: '• não lidas: veja as lacunas',
|
|
157
|
+
nenhumaMaquinaNaFabrica: '• nenhuma máquina publicou em ork/fabrica-estado',
|
|
158
|
+
estaMaquina: ' (esta máquina)',
|
|
159
|
+
maquinaSoNaRede: (quem, retrato, idade, semBatida, branch) => `• ${quem}: threads não lidas, na rede por pessoa (retrato de ${retrato}, há ${idade}${semBatida ? ', SEM BATIDA' : ''}) e sem retrato em ${branch}`,
|
|
160
|
+
estadoLocalAgora: 'estado local lido agora',
|
|
161
|
+
retrato: (quando, idade, semBatida) => `retrato de ${quando} (há ${idade})${semBatida ? ', SEM BATIDA' : ''}`,
|
|
162
|
+
resumoMaquina: (quem, ativas, semMaster, batida) => `• ${quem}: ${ativas} ativa(s)${semMaster ? `, ${semMaster} entregue(s) sem MASTER` : ''}, ${batida}`,
|
|
163
|
+
semItem: 'sem item',
|
|
164
|
+
esperaVoce: (pergunta) => ` · espera você: ${pergunta}`,
|
|
165
|
+
veredito: 'veredito',
|
|
166
|
+
reservasNaoLidas: '• não lidas: veja as lacunas',
|
|
167
|
+
nenhumaReserva: '• nenhuma reserva em ork/roadmap-reservas',
|
|
168
|
+
reserva: (item, maquina, thread, desde) => ` ${item} · ${maquina} · ${thread} · desde ${desde}`,
|
|
169
|
+
semThread: 'sem thread',
|
|
170
|
+
redeLidaAgora: 'lida agora',
|
|
171
|
+
redeLidaEm: (quando) => `lida ${quando}`,
|
|
172
|
+
casaAusente: '• casa: nenhuma achada (veja as lacunas)',
|
|
173
|
+
casaNaoLida: (casa) => `• casa: ${casa}, não lida (veja as lacunas)`,
|
|
174
|
+
casaLida: (casa, ponta, estado) => `• casa: ${casa} @ ${ponta}, ${estado}`,
|
|
175
|
+
semCommit: 'sem commit',
|
|
176
|
+
casaUltimaCopia: 'última cópia desta máquina, sem leitura nova',
|
|
177
|
+
nenhumRetrato: '• nenhum retrato lido na casa; isso não quer dizer que não há máquinas: veja as lacunas',
|
|
178
|
+
membro: (maquina, esta, quando, idade, semBatida, versao, projetos) => `• ${maquina}${esta}: retrato de ${quando}${idade}${semBatida ? ', SEM BATIDA' : ''}${versao}, ${projetos}`,
|
|
179
|
+
batidaIlegivel: ' (batida ilegível)',
|
|
180
|
+
idade: (idade) => ` (há ${idade})`,
|
|
181
|
+
versao: (versao) => `, ork ${versao}`,
|
|
182
|
+
projetos: (projetos) => `projetos: ${projetos}`,
|
|
183
|
+
nenhumProjeto: 'nenhum projeto declarado aqui',
|
|
184
|
+
lacuna: (tipo, alvo, detalhe, correcao) => `• ${tipo}${alvo}: ${detalhe}. O que fazer: ${correcao}.`,
|
|
185
|
+
lacunaDetalhe: (_tipo, _parte, _alvo, detalhe) => detalhe,
|
|
186
|
+
lacunaCorrecao: (_tipo, correcao) => correcao,
|
|
187
|
+
},
|
|
188
|
+
// O CLI
|
|
189
|
+
uso: 'uso: ork network [status] [--json] [--sem-remoto] | network entrar [--maquina NOME] [--forja github|gitlab] ' +
|
|
190
|
+
'[--repositorio [DONO/]NOME] [--forcar] | network publicar [--forcar] [--json] | network sair | ' +
|
|
191
|
+
'network roadmap [--projeto P] [--json] [--sem-remoto]',
|
|
192
|
+
entrou: (maquina, dono, forja, ref, criado) => `Rede: ${maquina} entrou na Orkastery Network de ${dono} (${forja}: ${ref}, privado${criado ? ', criado agora' : ''}).`,
|
|
193
|
+
primeiroRetrato: (commit) => ` Primeiro retrato publicado (${commit}). Depois, esta maquina publica sozinha na batida do pulse`,
|
|
194
|
+
tomouNome: (maquina) => ` Tomou o nome "${maquina}" de outra instalacao; o commit registra.`,
|
|
195
|
+
eAoCriar: ' e ao criar thread, despachar fase, entregar e fechar. De qualquer maquina desta pessoa: ork network status',
|
|
196
|
+
avisoDescartado: (padrao, campo) => ` AVISO: um projeto ficou fora do retrato: padrao "${padrao}" em ${campo} (valor omitido de proposito).`,
|
|
197
|
+
avisoOrkMaquina: (valor) => ` AVISO: ORK_MAQUINA=${valor} neste shell vence o nome gravado; alinhe os dois.`,
|
|
198
|
+
saiu: (maquina, resto) => `Rede: ${maquina} saiu; nada mais e publicado daqui.${resto}`,
|
|
199
|
+
retratoRemovido: (casa, commit) => ` Retrato removido de ${casa} (${commit}).`,
|
|
200
|
+
retratoDeOutraInstalacao: (maquina, casa, mesmoHostname) => ` O retrato "${maquina}" em ${casa} e de outra instalacao com o mesmo nome; nada foi removido.` +
|
|
201
|
+
(mesmoHostname ? ' Ele tem o hostname desta maquina: se ~/.orkastery foi apagada, retome o nome com ork network entrar --forcar.' : ''),
|
|
202
|
+
semRetrato: (casa) => ` Nao havia retrato desta maquina${casa ? ` em ${casa}` : ' numa casa alcancavel'}.`,
|
|
203
|
+
fabricaContinua: ' A fabrica compartilhada dos projetos continua publicando daqui (ork/fabrica-estado); ork fabrica sair em cada um para parar.',
|
|
204
|
+
publicou: (maquina, casa, commit, tentativas) => `Rede: ${maquina} publicou o retrato em ${casa} (${commit}, ${tentativas} tentativa(s)).`,
|
|
205
|
+
ocupado: 'Rede: outra publicacao desta maquina esta em andamento; tente de novo em instantes.',
|
|
206
|
+
igual: (maquina, casa) => `Rede: retrato de ${maquina} igual ao ultimo publicado em ${casa}; nada a enviar (use --forcar para publicar mesmo assim).`,
|
|
207
|
+
};
|
|
208
|
+
exports.NETWORK_EN = {
|
|
209
|
+
cabecalhoComCasa: (dono, forja, ref, estado) => `Orkastery Network of ${dono} · ${forja}: ${ref} · ${estado}`,
|
|
210
|
+
casaLidaAgora: 'read now',
|
|
211
|
+
casaUltimaCopia: 'last local copy',
|
|
212
|
+
casaNaoLida: 'not read',
|
|
213
|
+
semCasa: 'Orkastery Network · no home: no forge with a login on this machine',
|
|
214
|
+
repositorioDaRede: (ponta) => `network repository (${ponta ?? 'empty'})`,
|
|
215
|
+
fabricaDe: (projeto, ref, atualizado) => `factory of ${projeto} (${ref}, ${atualizado ? 'read now' : 'last copy'})`,
|
|
216
|
+
consultado: (lista) => `Queried: ${lista ?? 'nothing (see the gaps)'}.`,
|
|
217
|
+
naoConsultado: (lista) => `Not queried: ${lista}. The roadmap of a project comes from \`ork roadmap status\` in it.`,
|
|
218
|
+
itemNaoConsultado: (item) => NAO_CONSULTADO_EN[item] ?? item,
|
|
219
|
+
nenhumaMaquina: 'No machine read. That does not mean there are no machines: see the gaps.',
|
|
220
|
+
outraInstalacao: ' (another installation with this machine\'s name)',
|
|
221
|
+
estaMaquina: ' (this machine)',
|
|
222
|
+
origemRede: (herdada) => `network${herdada ? ', membership inherited from the factory' : ''}`,
|
|
223
|
+
origemFabrica: (projetos) => `seen only in the factory of ${projetos}; no snapshot in the network`,
|
|
224
|
+
membro: (maquina, esta, origem, batida, idade) => `${maquina}${esta} · ${origem} · heartbeat ${batida} (${idade} ago)`,
|
|
225
|
+
fichaHostname: (hostname) => `hostname ${hostname}`,
|
|
226
|
+
fichaOrk: (versao) => `ork ${versao}`,
|
|
227
|
+
fichaForja: (forja, usuario) => `${forja}: ${usuario ?? 'no login'}`,
|
|
228
|
+
fichaPessoa: (pessoa) => `person ${pessoa}`,
|
|
229
|
+
runtimes: (lista) => ` runtimes: ${lista}`,
|
|
230
|
+
hosts: (lista) => ` hosts: ${lista}`,
|
|
231
|
+
hostAdaptador: (adaptador) => ` (adapter ${adaptador})`,
|
|
232
|
+
projetos: (lista) => ` projects: ${lista}`,
|
|
233
|
+
projetoEm: (caminho) => ` in ${caminho}`,
|
|
234
|
+
estaEMembro: (maquina, herdado, publicada) => `This machine (${maquina}) is a member` +
|
|
235
|
+
`${herdado ? ', inherited from the factory' : ''}${publicada ? '.' : '; its snapshot is not in the home yet.'}`,
|
|
236
|
+
foraDaRedeLinha: (maquina) => `This machine (${maquina}) is not in the network: \`ork network entrar\`.`,
|
|
237
|
+
semLacunas: 'Gaps: none.',
|
|
238
|
+
lacunas: (n) => `Gaps (${n}), what was not read:`,
|
|
239
|
+
lacuna: (tipo, detalhe) => ` • ${tipo}: ${detalhe}`,
|
|
240
|
+
semRedeSemCasa: 'no network and no known home on this machine: run without `--sem-remoto`',
|
|
241
|
+
casaNaoExiste: (ref) => `${ref} does not exist yet: no machine has run \`ork network entrar\``,
|
|
242
|
+
casaPublica: (ref) => `${ref} is not private: no machine publishes to it`,
|
|
243
|
+
casaSemHttps: (ref) => `${ref}: the forge returned a URL without https; the network only talks over https (the last local copy counts, when there is one)`,
|
|
244
|
+
comErro: (ref, erro) => `${ref}: ${erro}`,
|
|
245
|
+
retratoInvalido: (arquivo, motivo) => `${arquivo}: ${motivo}`,
|
|
246
|
+
retratoForaDoPadrao: 'file name outside the maquinas/<machine>.json pattern',
|
|
247
|
+
retratoIlegivel: 'unreadable JSON',
|
|
248
|
+
retratoForaDoContrato: (contrato) => `does not follow the ${contrato} contract`,
|
|
249
|
+
retratoDeOutraMaquina: (maquina) => `claims to be machine "${maquina}", which does not own this file`,
|
|
250
|
+
retratoProjetosOmitidos: (n, padrao) => `${n} project(s) left out of the read: pattern "${padrao}" (value omitted on purpose)`,
|
|
251
|
+
retratoComSegredo: (padrao, onde) => `pattern "${padrao}" in ${onde} (value omitted on purpose)`,
|
|
252
|
+
semLeituraNova: (ref, temCopia) => `${ref} not read again: ${temCopia ? 'showing the last local copy' : 'no local copy'}`,
|
|
253
|
+
nuncaLida: (ref) => `${ref} was never read on this machine`,
|
|
254
|
+
semClone: (nome, caminho) => `${nome}: ${caminho} no longer has the project on this machine`,
|
|
255
|
+
remotoInvalido: (nome, remoto) => `${nome}: \`fabrica.remoto\` ${remoto} is not a git remote name; git read nothing`,
|
|
256
|
+
semRemoto: (nome, remoto) => `${nome}: without the remote ${remoto}, there is no shared factory to read`,
|
|
257
|
+
fabricaSemLeituraNova: (nome, branch) => `${nome}: ${branch} not read again; used the last local copy`,
|
|
258
|
+
nomeEmUsoNaCasa: (maquina) => `the snapshot "${maquina}" in the home belongs to another installation: this machine does not ` +
|
|
259
|
+
'publish until it changes its name (`ork network entrar --maquina NAME`) or takes this one back (`ork network entrar --forcar`)',
|
|
260
|
+
batidaIlegivel: (maquina) => `${maquina}: unreadable heartbeat`,
|
|
261
|
+
semBatidaHa: (maquina, idade) => `${maquina}: no heartbeat for ${idade}`,
|
|
262
|
+
cliAusente: (forja) => `the ${forja} forge CLI is not on this machine`,
|
|
263
|
+
nenhumaCli: 'no forge CLI (gh or glab) on this machine',
|
|
264
|
+
loginNaoLido: (falhas) => `${falhas}; the login was not read, run again with the forge responding`,
|
|
265
|
+
semLogin: (candidatas) => {
|
|
266
|
+
const partes = candidatas.map((c) => (c.nome === 'gitlab' ? `${c.cli} without a login on ${c.host}` : `${c.cli} without a login on this machine`) + ` (\`${c.cli} auth login\`)`);
|
|
267
|
+
const noPadrao = candidatas.some((c) => c.nome === 'gitlab' && c.host === 'gitlab.com');
|
|
268
|
+
return partes.join('; ') + (noPadrao ? '; a self-hosted GitLab needs GITLAB_HOST=<host>' : '');
|
|
269
|
+
},
|
|
270
|
+
respostaSemLogin: (cli) => `${cli} api user returned a response without a readable login`,
|
|
271
|
+
semRespostaNoPrazo: 'no answer from the forge in time',
|
|
272
|
+
apiFalhou: (cli, rota, linha) => `rede.forja: ${cli} api ${rota} failed${linha ? `: ${linha}` : ''}`,
|
|
273
|
+
repositorioIlegivel: 'rede.forja: gh returned an unreadable repository',
|
|
274
|
+
projetoIlegivel: 'rede.forja: glab returned an unreadable project',
|
|
275
|
+
projetoEmOutroCaminho: (pedido, criado) => `rede.forja: GitLab created the project at ${criado}, not at ${pedido}; check the group and delete the leftover`,
|
|
276
|
+
foraDoContrato: (onde) => `rede.segredo: ${onde} is outside the contract; nothing was published`,
|
|
277
|
+
campoForaDaLista: (campo) => `rede.segredo: field "${campo}" is not on the allow list; nothing was published`,
|
|
278
|
+
campoLongo: (campo) => `rede.segredo: field "${campo}" is too long; nothing was published`,
|
|
279
|
+
contratoDoRetrato: 'rede.contrato: this machine\'s snapshot does not pass the ork.rede-maquina/v1 contract; nothing was published',
|
|
280
|
+
segredoNoRetrato: (padrao, onde) => `rede.segredo: pattern "${padrao}" in ${onde}; nothing was published (value left out on purpose)`,
|
|
281
|
+
retratoAlheio: (maquina, caminho, proprio) => `rede.retrato-alheio: ${maquina} tried to write ${caminho}; each machine only writes ${proprio}`,
|
|
282
|
+
semForja: (detalhe) => `rede.sem-forja: ${detalhe ?? 'no usable forge'}`,
|
|
283
|
+
semRepositorio: (ref) => `rede.sem-repositorio: ${ref} does not exist yet; \`ork network entrar\` creates it, private`,
|
|
284
|
+
repositorioAlheio: (ref, login) => `rede.repositorio-alheio: ${ref} does not exist and does not belong to the login ${login}; create the private repository on the forge and run again`,
|
|
285
|
+
gitlabNaoSuportado: (motivo) => `rede.forja-nao-suportada: the network home on a GitLab ${motivo === 'ca' ? 'with its own CA (GLAB_CA_CERT)' : 'under a subpath (GITLAB_HOST with a path)'} ` +
|
|
286
|
+
'is not supported yet; rede.json stores only host[:port]. Use a GitLab at the host root with a public certificate',
|
|
287
|
+
grupoSemNivel: (ref, grupo, login, nivel) => `rede.repositorio-alheio: ${ref} does not exist, and the login ${login} has level ${nivel} in the group ${grupo}; creating the ` +
|
|
288
|
+
'network home in a group needs Maintainer (40) or above',
|
|
289
|
+
repositorioPublico: (ref) => `rede.repositorio-publico: ${ref} is not private; nothing was published`,
|
|
290
|
+
semUrl: (cli, ref) => `rede.forja: ${cli} did not return the URL of ${ref}`,
|
|
291
|
+
semHttps: (cli, ref) => `rede.sem-https: ${cli} returned a URL without https for ${ref}; the network only talks to the forge over https, and nothing was published`,
|
|
292
|
+
saiuDaRede: 'rede.fora: this machine left the network; nothing was published',
|
|
293
|
+
semLeitura: (ref) => `rede.sem-leitura: could not read ${ref}; publishing needs the network`,
|
|
294
|
+
nomeEmUso: (maquina, quem, dica) => `rede.nome-em-uso: another installation already publishes as "${maquina}"${quem}${dica}`,
|
|
295
|
+
quemHostname: (hostname, batida) => ` (hostname ${hostname}, heartbeat ${batida})`,
|
|
296
|
+
quemIlegivel: ' (in a snapshot this version does not read)',
|
|
297
|
+
dicaMesmoHostname: '; the snapshot has this machine\'s hostname: if it is this machine, with ~/.orkastery deleted or copied, take the name back with ' +
|
|
298
|
+
'`ork network entrar --forcar`; if it is another machine or installation with the same hostname, pick another name with `--maquina NAME`',
|
|
299
|
+
dicaOutroNome: '; pick another name with `ork network entrar --maquina NAME`, or take this one with `--forcar`',
|
|
300
|
+
concorrencia: (n) => `rede.concorrencia: ${n} pushes refused in a row; try again in a moment`,
|
|
301
|
+
foraDaRede: 'rede.fora: this machine is not in the network; `ork network entrar`',
|
|
302
|
+
nomeInvalido: (maquina) => `rede.maquina: invalid machine name ("${maquina}"); use \`ork network entrar --maquina NAME\` (letters, digits, dot, _ or -)`,
|
|
303
|
+
ocupadoAoEntrar: (trava) => `rede.ocupado: another publication from this machine is in progress (${trava}); run \`ork network entrar\` again in a moment`,
|
|
304
|
+
semHttpsAoSair: (cli, ref) => `rede.sem-https: left the network here, but ${cli} returned a URL without https for ${ref}; the snapshot stays in the home`,
|
|
305
|
+
ocupadoAoSair: (trava) => `rede.ocupado: left the network here, but another publication from this machine holds the home (${trava}); run \`ork network sair\` again`,
|
|
306
|
+
semLeituraAoSair: (ref) => `rede.sem-leitura: left the network here, but could not read ${ref} to remove the snapshot; run \`ork network sair\` again with the network`,
|
|
307
|
+
hostInvalido: (host) => `rede.config: invalid host ("${host}")`,
|
|
308
|
+
campoInvalido: (campo, valor) => `rede.config: invalid ${campo} ("${valor}")`,
|
|
309
|
+
idNaoGravou: (arquivo) => `rede.id: could not write or read ${arquivo}`,
|
|
310
|
+
idNaoArquivo: (arquivo) => `rede.id: ${arquivo} is not a file; delete it and run again`,
|
|
311
|
+
roadmap: {
|
|
312
|
+
uso: 'usage: ork network roadmap [--projeto <path|github:owner/repo|gitlab:group/repo|name>] [--json] [--sem-remoto]',
|
|
313
|
+
contratoInvalido: 'network roadmap: invalid contract',
|
|
314
|
+
candidatos: 'Candidates:',
|
|
315
|
+
recusaDetalhe: (codigo) => ({
|
|
316
|
+
'projeto.desconhecido': 'the requested project is unknown from this machine',
|
|
317
|
+
'projeto.ambiguo': 'the requested project matches more than one known project',
|
|
318
|
+
'projeto.sem-manifesto': 'the requested project has no readable manifest',
|
|
319
|
+
}[codigo] ?? 'the project request was refused'),
|
|
320
|
+
recusaCorrecao: (codigo) => codigo === 'projeto.ambiguo'
|
|
321
|
+
? 'request the project by an exact registered name, clone path, or forge reference'
|
|
322
|
+
: 'register the clone or request it as `github:owner/repo` or `gitlab:group/repo`',
|
|
323
|
+
nadaForaDoPedido: '• nothing outside the request',
|
|
324
|
+
naoConsultado: (item) => {
|
|
325
|
+
const projeto = /^projeto (.+?): fora do pedido/.exec(item)?.[1];
|
|
326
|
+
if (projeto)
|
|
327
|
+
return `• project ${projeto}: outside the request (\`--projeto\`)`;
|
|
328
|
+
if (item.startsWith('registro de projetos'))
|
|
329
|
+
return '• this machine\'s project registry was not read because it is absent';
|
|
330
|
+
if (item.startsWith('diretório do host'))
|
|
331
|
+
return '• the host directory is outside this machine\'s project registry and was not read';
|
|
332
|
+
if (item.startsWith('rede por pessoa'))
|
|
333
|
+
return '• the person network was not read; machines may still exist in each project factory';
|
|
334
|
+
if (item.startsWith('outros projetos desta máquina'))
|
|
335
|
+
return '• other projects on this machine: this MCP server reads only its installed project';
|
|
336
|
+
return '• an additional source was not queried; see the typed gaps below';
|
|
337
|
+
},
|
|
338
|
+
redePorPessoa: 'Person network (RM-053)',
|
|
339
|
+
lacunasDaConsulta: 'Query gaps',
|
|
340
|
+
roadmapNaoLido: (projeto, tipos) => `Roadmap of ${projeto}: not read (${tipos}).`,
|
|
341
|
+
semFonte: 'no source',
|
|
342
|
+
threadsPorMaquina: 'Threads by machine',
|
|
343
|
+
reservas: 'Reservations',
|
|
344
|
+
fontes: 'Sources',
|
|
345
|
+
lacunas: 'Gaps',
|
|
346
|
+
nenhumaFonte: '• no source read',
|
|
347
|
+
nenhumaLacuna: '• none: all sources were read now',
|
|
348
|
+
nesteProjeto: (legenda) => `In this project: ${legenda}`,
|
|
349
|
+
fonteParte: (parte) => ({ roadmap: 'roadmap', reservas: 'reservations', fabrica: 'factory', 'estado-local': 'this machine' }[parte] ?? parte),
|
|
350
|
+
lidoAgora: 'read now',
|
|
351
|
+
lidoEm: (quando) => `read ${quando}`,
|
|
352
|
+
fonteLocal: (parte, onde, lido) => `• ${parte}: local state at ${onde}, ${lido}`,
|
|
353
|
+
fonteInexistente: (parte, onde, lido) => `• ${parte}: ${onde} does not exist, ${lido}`,
|
|
354
|
+
alvoDoRoadmap: (onde) => `${DIR_ROADMAP_LITERAL} in ${onde}`,
|
|
355
|
+
fonteCommit: (parte, alvo, commit, data, estado) => `• ${parte}: ${alvo} @ ${commit} (commit from ${data}), ${estado}`,
|
|
356
|
+
ultimaCopia: 'this machine\'s last copy, without a new read',
|
|
357
|
+
maquinasNaoLidas: '• not read: see the gaps',
|
|
358
|
+
nenhumaMaquinaNaFabrica: '• no machine has published to ork/fabrica-estado',
|
|
359
|
+
estaMaquina: ' (this machine)',
|
|
360
|
+
maquinaSoNaRede: (quem, retrato, idade, semBatida, branch) => `• ${quem}: threads not read, seen in the person network (snapshot from ${retrato}, ${idade} ago${semBatida ? ', NO HEARTBEAT' : ''}) and no snapshot in ${branch}`,
|
|
361
|
+
estadoLocalAgora: 'local state read now',
|
|
362
|
+
retrato: (quando, idade, semBatida) => `snapshot from ${quando} (${idade} ago)${semBatida ? ', NO HEARTBEAT' : ''}`,
|
|
363
|
+
resumoMaquina: (quem, ativas, semMaster, batida) => `• ${quem}: ${ativas} active${semMaster ? `, ${semMaster} delivered without MASTER` : ''}, ${batida}`,
|
|
364
|
+
semItem: 'no item',
|
|
365
|
+
esperaVoce: (pergunta) => ` · waiting for you: ${pergunta}`,
|
|
366
|
+
veredito: 'verdict',
|
|
367
|
+
reservasNaoLidas: '• not read: see the gaps',
|
|
368
|
+
nenhumaReserva: '• no reservation in ork/roadmap-reservas',
|
|
369
|
+
reserva: (item, maquina, thread, desde) => ` ${item} · ${maquina} · ${thread} · since ${desde}`,
|
|
370
|
+
semThread: 'no thread',
|
|
371
|
+
redeLidaAgora: 'read now',
|
|
372
|
+
redeLidaEm: (quando) => `read ${quando}`,
|
|
373
|
+
casaAusente: '• home: none found (see the gaps)',
|
|
374
|
+
casaNaoLida: (casa) => `• home: ${casa}, not read (see the gaps)`,
|
|
375
|
+
casaLida: (casa, ponta, estado) => `• home: ${casa} @ ${ponta}, ${estado}`,
|
|
376
|
+
semCommit: 'no commit',
|
|
377
|
+
casaUltimaCopia: 'this machine\'s last copy, without a new read',
|
|
378
|
+
nenhumRetrato: '• no snapshot read from the home; this does not mean there are no machines: see the gaps',
|
|
379
|
+
membro: (maquina, esta, quando, idade, semBatida, versao, projetos) => `• ${maquina}${esta}: snapshot from ${quando}${idade}${semBatida ? ', NO HEARTBEAT' : ''}${versao}, ${projetos}`,
|
|
380
|
+
batidaIlegivel: ' (unreadable heartbeat)',
|
|
381
|
+
idade: (idade) => ` (${idade} ago)`,
|
|
382
|
+
versao: (versao) => `, ork ${versao}`,
|
|
383
|
+
projetos: (projetos) => `projects: ${projetos}`,
|
|
384
|
+
nenhumProjeto: 'no project declared here',
|
|
385
|
+
lacuna: (tipo, alvo, detalhe, correcao) => `• ${tipo}${alvo}: ${detalhe}. What to do: ${correcao}.`,
|
|
386
|
+
lacunaDetalhe: (tipo, idDaParte, alvo, detalhe) => {
|
|
387
|
+
const alvoSeguro = alvo ? ` for ${alvo}` : '';
|
|
388
|
+
const parte = PARTES_EN[idDaParte] ?? idDaParte;
|
|
389
|
+
const texto = detalhe.toLowerCase();
|
|
390
|
+
if (tipo === 'rede.sem-projeto')
|
|
391
|
+
return texto.includes('registro está vazio')
|
|
392
|
+
? 'no project is known on this machine: the registry is empty, and the host directory does not count as a project'
|
|
393
|
+
: 'no project is known on this machine: there is no manifest in the current directory and no registry entry';
|
|
394
|
+
if (tipo === 'registro.invalido') {
|
|
395
|
+
if (texto.includes('não é um json'))
|
|
396
|
+
return 'the project registry is not readable JSON';
|
|
397
|
+
if (texto.includes('não está no contrato'))
|
|
398
|
+
return 'the project registry does not follow the `ork.projetos/v1` contract';
|
|
399
|
+
if (texto.includes('não traz a lista'))
|
|
400
|
+
return 'the project registry has no project list';
|
|
401
|
+
if (texto.includes('sem clone'))
|
|
402
|
+
return `a project registry entry has no clone on this machine and no recognized forge remote${alvoSeguro}`;
|
|
403
|
+
return `the project registry entry is invalid${alvoSeguro}`;
|
|
404
|
+
}
|
|
405
|
+
if (tipo === 'projeto.remoto-invalido')
|
|
406
|
+
return `the manifest's fabrica.remoto is not a Git remote name, so Git read nothing${alvoSeguro}`;
|
|
407
|
+
if (tipo === 'projeto.base-invalida')
|
|
408
|
+
return `the manifest's worktree.base_branch is not a branch name, so Git read nothing${alvoSeguro}`;
|
|
409
|
+
if (tipo === 'projeto.sem-clone')
|
|
410
|
+
return `the project has no clone on this machine; it was read from the forge in read-only mode${alvoSeguro}`;
|
|
411
|
+
if (tipo === 'projeto.sem-fonte')
|
|
412
|
+
return `the project has neither a clone on this machine nor a recognized forge remote${alvoSeguro}`;
|
|
413
|
+
if (tipo === 'projeto.sem-leitura')
|
|
414
|
+
return `reading the project stopped; its other sources were not read${alvoSeguro}`;
|
|
415
|
+
if (tipo === 'roadmap.sem-base')
|
|
416
|
+
return `the configured base branch does not exist${alvoSeguro}`;
|
|
417
|
+
if (tipo === 'reservas.sem-branch')
|
|
418
|
+
return `no reservation has been made yet: the reservations branch does not exist${alvoSeguro}`;
|
|
419
|
+
if (tipo === 'fabrica.sem-branch')
|
|
420
|
+
return `no machine has published yet: the factory branch does not exist${alvoSeguro}`;
|
|
421
|
+
if (tipo === 'roadmap.sem-itens')
|
|
422
|
+
return `no roadmap item page exists in ${DIR_ROADMAP_LITERAL} on the selected base${alvoSeguro}`;
|
|
423
|
+
if (tipo === 'roadmap.pagina-invalida')
|
|
424
|
+
return texto.includes('binária')
|
|
425
|
+
? `the roadmap page is binary or too large to read and was left out${alvoSeguro}`
|
|
426
|
+
: `the roadmap page is invalid and was left out${alvoSeguro}`;
|
|
427
|
+
if (tipo === 'roadmap.entregas-parciais')
|
|
428
|
+
return texto.includes('começo do dia')
|
|
429
|
+
? `commits since the start of the project owner's day were not read, so "Delivered today" may be incomplete${alvoSeguro}`
|
|
430
|
+
: `the base has more commits today than the forge returned, so "Delivered today" may be incomplete${alvoSeguro}`;
|
|
431
|
+
if (tipo === 'reserva.invalida')
|
|
432
|
+
return `the reservation is unreadable or follows another contract and was left out${alvoSeguro}`;
|
|
433
|
+
if (tipo === 'retrato.invalido')
|
|
434
|
+
return `the machine snapshot is unreadable or follows another contract and was left out${alvoSeguro}`;
|
|
435
|
+
if (tipo === 'maquina.sem-batida')
|
|
436
|
+
return `the machine has no recent heartbeat, so its threads may have moved${alvoSeguro}`;
|
|
437
|
+
if (tipo === 'maquina.sem-fabrica')
|
|
438
|
+
return `the machine is in the person network and declares this project, but has no factory snapshot; its project threads were not read${alvoSeguro}`;
|
|
439
|
+
if (tipo === 'estado-local.sem-leitura')
|
|
440
|
+
return texto.includes('threads legíveis')
|
|
441
|
+
? `the complete local snapshot could not be built; readable threads were included and unreadable threads were left out${alvoSeguro}`
|
|
442
|
+
: `the local state could not be read; the published snapshot is used when available${alvoSeguro}`;
|
|
443
|
+
if (tipo === 'forja.nao-consultada')
|
|
444
|
+
return `the forge was not queried because of \`--sem-remoto\`, and this machine has no clone${alvoSeguro}`;
|
|
445
|
+
if (tipo === 'forja.leitura-parcial')
|
|
446
|
+
return `the forge limited the listing to 100 files, so the rest of the ${parte} source was not read${alvoSeguro}`;
|
|
447
|
+
if (tipo === 'roadmap.sem-leitura' || tipo === 'reservas.sem-leitura' || tipo === 'fabrica.sem-leitura') {
|
|
448
|
+
if (texto.includes('última cópia'))
|
|
449
|
+
return `no fresh read of the ${parte} source; using this machine's last copy${alvoSeguro}`;
|
|
450
|
+
if (texto.includes('não tem cópia'))
|
|
451
|
+
return `the ${parte} source was not read, and this machine has no local copy${alvoSeguro}`;
|
|
452
|
+
return `the ${parte} source was not read${alvoSeguro}`;
|
|
453
|
+
}
|
|
454
|
+
if (tipo.startsWith('forja.'))
|
|
455
|
+
return `the forge could not read the ${parte} source${alvoSeguro}`;
|
|
456
|
+
if (tipo.startsWith('rede.'))
|
|
457
|
+
return `the person network could not read the ${parte} source${alvoSeguro}`;
|
|
458
|
+
if (tipo.includes('invalida') || tipo.includes('invalido'))
|
|
459
|
+
return `the ${parte} source is invalid${alvoSeguro}`;
|
|
460
|
+
return `the ${parte} source has a typed query gap${alvoSeguro}`;
|
|
461
|
+
},
|
|
462
|
+
lacunaCorrecao: (tipo) => {
|
|
463
|
+
if (tipo === 'maquina.sem-batida')
|
|
464
|
+
return 'check that machine and its pulse heartbeat';
|
|
465
|
+
if (tipo === 'maquina.sem-fabrica')
|
|
466
|
+
return 'run `ork fabrica entrar` in the project clone on that machine';
|
|
467
|
+
if (tipo === 'rede.sem-projeto')
|
|
468
|
+
return 'register the clone or request the project by forge reference';
|
|
469
|
+
if (tipo === 'registro.invalido')
|
|
470
|
+
return 'inspect the registry with `ork projetos`, or request the project with `--projeto`';
|
|
471
|
+
if (tipo === 'projeto.remoto-invalido')
|
|
472
|
+
return 'fix fabrica.remoto in `orkastery.yaml` (default: origin)';
|
|
473
|
+
if (tipo === 'projeto.base-invalida' || tipo === 'roadmap.sem-base')
|
|
474
|
+
return 'fix worktree.base_branch in `orkastery.yaml` (default: main)';
|
|
475
|
+
if (tipo === 'projeto.sem-clone')
|
|
476
|
+
return 'work in a project clone to include this machine\'s threads';
|
|
477
|
+
if (tipo === 'projeto.sem-fonte')
|
|
478
|
+
return 'request the project as `github:owner/repo` or `gitlab:group/repo`';
|
|
479
|
+
if (tipo === 'roadmap.sem-itens')
|
|
480
|
+
return 'initialize roadmap as code with `ork docs init`';
|
|
481
|
+
if (tipo === 'roadmap.pagina-invalida')
|
|
482
|
+
return 'run `ork docs verificar` in the project and fix the named page';
|
|
483
|
+
if (tipo === 'roadmap.entregas-parciais')
|
|
484
|
+
return 'check today\'s deliveries in the project clone';
|
|
485
|
+
if (tipo === 'reservas.sem-branch')
|
|
486
|
+
return 'the first `ork roadmap pegar RM-NNN` creates the branch';
|
|
487
|
+
if (tipo === 'fabrica.sem-branch')
|
|
488
|
+
return 'run `ork fabrica entrar` on each machine that should publish';
|
|
489
|
+
if (tipo === 'reserva.invalida')
|
|
490
|
+
return 'inspect the ork/roadmap-reservas branch';
|
|
491
|
+
if (tipo === 'retrato.invalido')
|
|
492
|
+
return 'republish the machine with `ork fabrica publicar --forcar`';
|
|
493
|
+
if (tipo === 'estado-local.sem-leitura')
|
|
494
|
+
return 'inspect this machine\'s threads with `ork thread list` and fix the unreadable thread.json';
|
|
495
|
+
if (tipo === 'forja.nao-consultada')
|
|
496
|
+
return 'run again without `--sem-remoto`';
|
|
497
|
+
if (tipo === 'forja.leitura-parcial')
|
|
498
|
+
return 'read through the project clone, which has no 100-file limit';
|
|
499
|
+
if (tipo.startsWith('forja.') || tipo.startsWith('rede.'))
|
|
500
|
+
return 'check the forge login and run `ork network status`';
|
|
501
|
+
if (tipo.endsWith('.sem-leitura'))
|
|
502
|
+
return 'check network access and query the source again';
|
|
503
|
+
return 'inspect the named source in its project and query again';
|
|
504
|
+
},
|
|
505
|
+
},
|
|
506
|
+
uso: 'usage: ork network [status] [--json] [--sem-remoto] | network entrar [--maquina NAME] [--forja github|gitlab] ' +
|
|
507
|
+
'[--repositorio [OWNER/]NAME] [--forcar] | network publicar [--forcar] [--json] | network sair | ' +
|
|
508
|
+
'network roadmap [--projeto P] [--json] [--sem-remoto]',
|
|
509
|
+
entrou: (maquina, dono, forja, ref, criado) => `Network: ${maquina} joined the Orkastery Network of ${dono} (${forja}: ${ref}, private${criado ? ', created now' : ''}).`,
|
|
510
|
+
primeiroRetrato: (commit) => ` First snapshot published (${commit}). From now on, this machine publishes by itself on the pulse heartbeat`,
|
|
511
|
+
tomouNome: (maquina) => ` Took the name "${maquina}" from another installation; the commit records it.`,
|
|
512
|
+
eAoCriar: ' and when it creates a thread, dispatches a phase, delivers and closes. From any machine of this person: `ork network status`',
|
|
513
|
+
avisoDescartado: (padrao, campo) => ` WARNING: a project was left out of the snapshot: pattern "${padrao}" in ${campo} (value left out on purpose).`,
|
|
514
|
+
avisoOrkMaquina: (valor) => ` WARNING: ORK_MAQUINA=${valor} in this shell wins over the recorded name; align the two.`,
|
|
515
|
+
saiu: (maquina, resto) => `Network: ${maquina} left; nothing else is published from here.${resto}`,
|
|
516
|
+
retratoRemovido: (casa, commit) => ` Snapshot removed from ${casa} (${commit}).`,
|
|
517
|
+
retratoDeOutraInstalacao: (maquina, casa, mesmoHostname) => ` The snapshot "${maquina}" in ${casa} belongs to another installation with the same name; nothing was removed.` +
|
|
518
|
+
(mesmoHostname ? ' It has this machine\'s hostname: if ~/.orkastery was deleted, take the name back with `ork network entrar --forcar`.' : ''),
|
|
519
|
+
semRetrato: (casa) => ` There was no snapshot of this machine${casa ? ` in ${casa}` : ' in a reachable home'}.`,
|
|
520
|
+
fabricaContinua: ' The shared factory of the projects keeps publishing from here (ork/fabrica-estado); run `ork fabrica sair` in each one to stop.',
|
|
521
|
+
publicou: (maquina, casa, commit, tentativas) => `Network: ${maquina} published the snapshot to ${casa} (${commit}, ${tentativas} attempt(s)).`,
|
|
522
|
+
ocupado: 'Network: another publication from this machine is in progress; try again in a moment.',
|
|
523
|
+
igual: (maquina, casa) => `Network: the snapshot of ${maquina} matches the last one published to ${casa}; nothing to send (use \`--forcar\` to publish anyway).`,
|
|
524
|
+
};
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* RM-061, fatia F2a: a familia `onboarding` do catalogo de mensagens (`ork onboarding` e
|
|
4
|
+
* `ork experiencia show`). O pt-BR e a fonte; o ingles e tipado por ele. Sem import do nucleo: o que
|
|
5
|
+
* vem do estado (fuso de exemplo, chave do manifesto, contrato) entra por parametro.
|
|
6
|
+
*
|
|
7
|
+
* O nome de cada etapa (`maestro`, `credenciais`...) e os valores de preferencia (`curta`,
|
|
8
|
+
* `detalhada`) sao identificadores que a pessoa digita: nao mudam com a lingua.
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.ONBOARDING_EN = exports.ONBOARDING_PT_BR = void 0;
|
|
12
|
+
exports.ONBOARDING_PT_BR = {
|
|
13
|
+
/** Onde ficam os segredos: a mesma frase de `ONDE_FICAM_OS_SEGREDOS`, que docs e hosts repetem. */
|
|
14
|
+
segredos: 'no ambiente do processo ou no cofre do host (no Hermes, ~/.hermes/.env)',
|
|
15
|
+
/** A pergunta de cada etapa da pauta, na ordem de `PAUTA_ONBOARDING`. */
|
|
16
|
+
perguntas: {
|
|
17
|
+
maestro: (fuso, chave) => `Quem conduz o projeto, quais são seus objetivos e preferências, e em qual fuso horário o Orkastery deve mostrar horários? Informe o fuso como nome IANA, ex.: {"fuso":"${fuso}"}; ele orienta ${chave} no manifesto, sem editá-lo. Preferências em {"owner":{...}} gravam owner no manifesto.`,
|
|
18
|
+
credenciais: (segredos) => `Quais provedores públicos e nomes de variáveis em env serão usados? Segredos ficam ${segredos}; nunca informe valores.`,
|
|
19
|
+
bancos: (segredos) => `Quais bancos públicos e nomes de variáveis em env configuram as conexões? Nunca informe DSN ou senha; valores ficam ${segredos}.`,
|
|
20
|
+
memoria: 'Deseja OrkMind? Informe {"modo":"orkmind"} ou {"modo":"files"}; a escolha orienta memory.mode no manifesto, sem editá-lo.',
|
|
21
|
+
produtos: 'Quais produtos e repositórios públicos pertencem ao projeto?',
|
|
22
|
+
topologia: 'Como se distribuem ambientes e serviços? Informe identificadores públicos.',
|
|
23
|
+
arquitetura: 'Quais decisões e restrições de arquitetura devem orientar o trabalho?',
|
|
24
|
+
skills: 'Quais capacidades e skills serão necessárias?',
|
|
25
|
+
auditores: 'Quais auditorias e cadências são desejadas?',
|
|
26
|
+
},
|
|
27
|
+
titulo: (contrato) => 'Onboarding do projeto (' + contrato + ')',
|
|
28
|
+
recomendada: (language, timezone, depth) => `Experiência recomendada: ${language}, ${timezone}, resposta ${depth}. Ativar com esses valores, configurar ou desativar?`,
|
|
29
|
+
registre: (language, timezone, depth) => 'Registre a escolha em maestro com {"owner":{"language":"' +
|
|
30
|
+
language + '","timezone":"' + timezone + '","depth":"' + depth + '","experience":true}}; use experience:false para desativar. ' +
|
|
31
|
+
'Consulta não registra resposta.',
|
|
32
|
+
respondida: '[respondida]',
|
|
33
|
+
pendente: '[pendente]',
|
|
34
|
+
responda: 'Responda com ork onboarding set <etapa> --conteudo <JSON> --por <quem>.',
|
|
35
|
+
/** Recusa de entrada antes de persistir; nunca inclui a entrada recebida. */
|
|
36
|
+
entradaInvalida: (segredos) => `onboarding.input.invalid: use JSON público e referências de variáveis; segredos ficam ${segredos}`,
|
|
37
|
+
usoInvalido: 'onboarding.input.invalid: use ork onboarding [show|set <etapa>|reset [etapa]] --conteudo <JSON> [--por Q] [--json]',
|
|
38
|
+
experienciaUso: 'uso: ork experiencia show [--json]',
|
|
39
|
+
experiencia: (ativa, language, timezone, depth) => `Experiência ${ativa ? 'ativa' : 'desativada'}: ${language}, ${timezone}, profundidade ${depth}.`,
|
|
40
|
+
experienciaOrigens: (origens) => `Origens: ${origens}`,
|
|
41
|
+
/** De onde veio cada preferencia (dado do `resolverExperiencia`); o ingles so troca o rotulo. */
|
|
42
|
+
origemDaPreferencia: (origem) => origem,
|
|
43
|
+
/** Aviso de preferencia invalida que o manifesto gravou ao carregar (pt-BR): traduzido so na impressao (D14). */
|
|
44
|
+
avisoDaPreferencia: (aviso) => aviso,
|
|
45
|
+
experienciaAviso: (aviso) => `Aviso: ${aviso}; o adapter install pula o pacote até ork onboarding set maestro corrigir.`,
|
|
46
|
+
};
|
|
47
|
+
/** Os avisos de `validarPreferencias` (`core/src/experiencia.ts`), pela frase exata que o manifesto grava. */
|
|
48
|
+
const AVISOS_DA_PREFERENCIA_EN = {
|
|
49
|
+
'experiencia.config.invalid: owner deve ser um objeto': 'experiencia.config.invalid: `owner` must be an object',
|
|
50
|
+
'experiencia.config.invalid: owner.language exige locale BCP-47': 'experiencia.config.invalid: `owner.language` requires a BCP 47 locale',
|
|
51
|
+
'experiencia.config.invalid: owner.timezone exige fuso IANA': 'experiencia.config.invalid: `owner.timezone` requires an IANA time zone',
|
|
52
|
+
'experiencia.config.invalid: owner.depth exige curta ou detalhada': 'experiencia.config.invalid: `owner.depth` requires `curta` or `detalhada`',
|
|
53
|
+
'experiencia.config.invalid: owner.experience exige booleano': 'experiencia.config.invalid: `owner.experience` requires a boolean',
|
|
54
|
+
};
|
|
55
|
+
exports.ONBOARDING_EN = {
|
|
56
|
+
segredos: 'in the process environment or in the host vault (with Hermes, ~/.hermes/.env)',
|
|
57
|
+
perguntas: {
|
|
58
|
+
maestro: (fuso, chave) => 'Who runs the project, what are their goals and preferences, and in which time zone should Orkastery ' +
|
|
59
|
+
`show times? Give the time zone as an IANA name, e.g. {"fuso":"${fuso}"}; it guides ${chave} in the manifest without editing it. ` +
|
|
60
|
+
'Preferences in {"owner":{...}} write owner to the manifest.',
|
|
61
|
+
credenciais: (segredos) => `Which public providers and environment variable names will be used? Secrets live ${segredos}; never give values.`,
|
|
62
|
+
bancos: (segredos) => 'Which public databases and environment variable names set up the connections? Never give a DSN or a ' +
|
|
63
|
+
`password; values live ${segredos}.`,
|
|
64
|
+
memoria: 'Do you want OrkMind? Answer {"modo":"orkmind"} or {"modo":"files"}; the choice guides memory.mode in the manifest without editing it.',
|
|
65
|
+
produtos: 'Which public products and repositories belong to the project?',
|
|
66
|
+
topologia: 'How are environments and services laid out? Give public identifiers.',
|
|
67
|
+
arquitetura: 'Which architecture decisions and constraints should guide the work?',
|
|
68
|
+
skills: 'Which capabilities and skills will be needed?',
|
|
69
|
+
auditores: 'Which audits and cadences do you want?',
|
|
70
|
+
},
|
|
71
|
+
titulo: (contrato) => 'Project onboarding (' + contrato + ')',
|
|
72
|
+
recomendada: (language, timezone, depth) => `Recommended experience: ${language}, ${timezone}, depth ${depth}. Turn it on with these values, configure it or turn it off?`,
|
|
73
|
+
registre: (language, timezone, depth) => 'Record the choice in maestro with {"owner":{"language":"' + language + '","timezone":"' +
|
|
74
|
+
timezone + '","depth":"' + depth + '","experience":true}}; use experience:false to turn it off. Viewing does not record an answer.',
|
|
75
|
+
respondida: '[answered]',
|
|
76
|
+
pendente: '[pending]',
|
|
77
|
+
responda: 'Answer with `ork onboarding set <step> --conteudo <JSON> --por <who>`.',
|
|
78
|
+
entradaInvalida: (segredos) => `onboarding.input.invalid: use public JSON and variable references; secrets live ${segredos}`,
|
|
79
|
+
usoInvalido: 'onboarding.input.invalid: use `ork onboarding [show|set <step>|reset [step]] --conteudo <JSON> [--por WHO] [--json]`',
|
|
80
|
+
experienciaUso: 'usage: ork experiencia show [--json]',
|
|
81
|
+
experiencia: (ativa, language, timezone, depth) => `Experience ${ativa ? 'on' : 'off'}: ${language}, ${timezone}, depth ${depth}.`,
|
|
82
|
+
experienciaOrigens: (origens) => `Sources: ${origens}`,
|
|
83
|
+
origemDaPreferencia: (origem) => ({ manifesto: 'manifest', sistema: 'system', padrao: 'default' }[origem] ?? origem),
|
|
84
|
+
avisoDaPreferencia: (aviso) => {
|
|
85
|
+
const sufixo = '; vale o padrão até corrigir';
|
|
86
|
+
const texto = aviso.endsWith(sufixo) ? aviso.slice(0, -sufixo.length) : aviso;
|
|
87
|
+
const traduzido = AVISOS_DA_PREFERENCIA_EN[texto];
|
|
88
|
+
// Aviso que o catalogo nao conhece sai inteiro como foi gravado, sem meia traducao.
|
|
89
|
+
return traduzido === undefined ? aviso : traduzido + (texto === aviso ? '' : '; the default is used for now');
|
|
90
|
+
},
|
|
91
|
+
experienciaAviso: (aviso) => `Warning: ${aviso}; \`ork adapter install\` skips the package until \`ork onboarding set maestro\` fixes it.`,
|
|
92
|
+
};
|