@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
package/dist/network-roadmap.js
CHANGED
|
@@ -78,6 +78,8 @@ const docs_1 = require("./docs");
|
|
|
78
78
|
const fabrica_estado_1 = require("./fabrica-estado");
|
|
79
79
|
Object.defineProperty(exports, "LIMIAR_SEM_BATIDA_MS", { enumerable: true, get: function () { return fabrica_estado_1.LIMIAR_SEM_BATIDA_MS; } });
|
|
80
80
|
const forja_1 = require("./forja");
|
|
81
|
+
const endereco_1 = require("./forja/endereco");
|
|
82
|
+
const resolver_1 = require("./forja/resolver");
|
|
81
83
|
const horario_1 = require("./horario");
|
|
82
84
|
const estado_thread_1 = require("./estado-thread");
|
|
83
85
|
const manifest_1 = require("./manifest");
|
|
@@ -93,6 +95,7 @@ const vida_da_thread_1 = require("./vida-da-thread");
|
|
|
93
95
|
const thread_1 = require("./thread");
|
|
94
96
|
const versao_1 = require("./versao");
|
|
95
97
|
const yaml_1 = require("./yaml");
|
|
98
|
+
const locale_1 = require("./locale");
|
|
96
99
|
exports.CONTRATO_PANORAMA_DA_REDE = 'ork.network-roadmap/v1';
|
|
97
100
|
/** O registro de projetos da RM-052, lido como ela o grava. */
|
|
98
101
|
exports.CONTRATO_REGISTRO_DE_PROJETOS = 'ork.projetos/v1';
|
|
@@ -116,8 +119,10 @@ class ErroDoPedidoDeProjeto extends Error {
|
|
|
116
119
|
return { erro: this.codigo, detalhe: this.detalhe, candidatos: this.candidatos, correcao: this.correcao };
|
|
117
120
|
}
|
|
118
121
|
get texto() {
|
|
119
|
-
|
|
120
|
-
|
|
122
|
+
const m = (0, locale_1.msg)().network.roadmap;
|
|
123
|
+
return [`${this.codigo}: ${m.recusaDetalhe(this.codigo, this.detalhe)}`,
|
|
124
|
+
...(this.candidatos.length ? [m.candidatos, ...this.candidatos.map((c) => ` • ${c}`)] : []),
|
|
125
|
+
m.recusaCorrecao(this.codigo, this.correcao)].join('\n');
|
|
121
126
|
}
|
|
122
127
|
}
|
|
123
128
|
exports.ErroDoPedidoDeProjeto = ErroDoPedidoDeProjeto;
|
|
@@ -138,9 +143,23 @@ const baseValida = (base) => typeof base === 'string' && /^[A-Za-z0-9][A-Za-z0-9
|
|
|
138
143
|
function projetoDoClone(c, origem) {
|
|
139
144
|
const remoto = c.manifesto.fabrica.remoto;
|
|
140
145
|
const url = (0, branch_de_estado_1.remotoValido)(remoto) ? (0, branch_de_estado_1.git)(c.raiz, ['remote', 'get-url', '--', remoto]) : null;
|
|
141
|
-
return { nome: c.manifesto.project.name, forja: url?.ok ? (
|
|
146
|
+
return { nome: c.manifesto.project.name, forja: url?.ok ? forjaDoClone(c, url.stdout.trim()) : null, raiz: c.raiz,
|
|
142
147
|
base: c.manifesto.worktree.base_branch, remoto, origem };
|
|
143
148
|
}
|
|
149
|
+
/**
|
|
150
|
+
* A forja do clone, com o manifesto: o bloco `forja:` e o host conhecido decidem, sem rede (como o pulse). So quando
|
|
151
|
+
* nenhum dos dois diz o tipo (`forja.desconhecida`) vale o nome do host, como para os remotos sem clone; o manifesto
|
|
152
|
+
* que contradiz o remoto deixa o projeto sem forja, e a leitura cai no clone.
|
|
153
|
+
*/
|
|
154
|
+
function forjaDoClone(c, url) {
|
|
155
|
+
const endereco = (0, endereco_1.lerEnderecoDoRemoto)(url);
|
|
156
|
+
if (!endereco)
|
|
157
|
+
return null;
|
|
158
|
+
const r = (0, resolver_1.resolverForja)({ endereco, manifesto: c.manifesto.forja, sondas: {} });
|
|
159
|
+
if (r.ok)
|
|
160
|
+
return (0, forja_1.identidadeDaForjaResolvida)(r.valor);
|
|
161
|
+
return r.erro.codigo === 'forja.desconhecida' ? (0, forja_1.identidadeDaForja)(url) : null;
|
|
162
|
+
}
|
|
144
163
|
function mesmoProjeto(a, b) {
|
|
145
164
|
if ((0, forja_1.mesmaForja)(a.forja, b.forja))
|
|
146
165
|
return true;
|
|
@@ -683,10 +702,20 @@ function lerProjetoDoClone(p, geral) {
|
|
|
683
702
|
const CORRECAO_DA_FORJA = {
|
|
684
703
|
'forja.ausente': (cli) => `instale ${cli} e faça login (${cli} auth login); gateway e cron têm PATH curto`,
|
|
685
704
|
'forja.sem-login': (cli) => `rode ${cli} auth login nesta máquina; o ork nunca lê nem copia token`,
|
|
686
|
-
'forja.nao-encontrado': () => 'confira o nome (github:dono/repo) e se o login da forja enxerga o repositório',
|
|
687
|
-
'forja.tempo-esgotado': () => 'tente de novo: a forja não respondeu a tempo',
|
|
688
|
-
'forja.inacessivel': () => 'confira a rede e o status da forja',
|
|
689
705
|
'forja.resposta-invalida': () => 'a forja respondeu fora do formato esperado: registre o caso no RM-054',
|
|
706
|
+
'forja.sem-permissao': () => 'o login da forja não tem permissão para isso: confira o escopo do token',
|
|
707
|
+
'forja.nao-achei': () => 'confira o nome (github:dono/repo ou gitlab:grupo/sub/repo) e se o login da forja enxerga o repositório; ' +
|
|
708
|
+
'no GitLab, projeto privado sem acesso também responde assim',
|
|
709
|
+
'forja.limite': () => 'a forja limitou as chamadas: tente de novo mais tarde',
|
|
710
|
+
'forja.conflito': () => 'a forja recusou por conflito: atualize e tente de novo',
|
|
711
|
+
'forja.indisponivel': () => 'tente de novo e confira a rede e o status da forja',
|
|
712
|
+
'forja.pedido-recusado': () => 'a forja recusou o pedido: confira os dados enviados',
|
|
713
|
+
'forja.incompleto': () => 'a forja devolveu uma lista incompleta: tente de novo',
|
|
714
|
+
'forja.desconhecida': () => 'o ork não reconheceu a forja: declare o bloco forja: no manifesto',
|
|
715
|
+
'forja.ambigua': () => 'a forja é ambígua: declare o bloco forja: no manifesto',
|
|
716
|
+
'forja.remoto-divergente': () => 'o remoto do clone não bate com a forja declarada: confira o manifesto',
|
|
717
|
+
'forja.sem-capacidade': () => 'esta forja não oferece o recurso necessário',
|
|
718
|
+
'forja.versao-abaixo-do-piso': () => 'o servidor da forja está abaixo do GitLab 17.0, o piso do ork',
|
|
690
719
|
};
|
|
691
720
|
function lerProjetoDaForja(p, geral) {
|
|
692
721
|
const forja = p.forja, rotulo = (0, forja_1.rotuloDaForja)(forja), cli = forja.tipo === 'github' ? 'gh' : 'glab';
|
|
@@ -699,9 +728,10 @@ function lerProjetoDaForja(p, geral) {
|
|
|
699
728
|
return semLeitura();
|
|
700
729
|
}
|
|
701
730
|
const desde = inicioDoDia(geral.quando, geral.fuso);
|
|
731
|
+
const api = forja.tipo === 'gitlab' && geral.rodarDaForja ? (0, forja_1.apiDoGitlab)(forja, { rodar: geral.rodarDaForja }) : undefined;
|
|
702
732
|
const ler = (base) => (0, forja_1.lerDaForja)(forja, { base, desde, dirRoadmap: docs_1.DIR_ROADMAP, manifesto: manifest_1.NOME_MANIFESTO,
|
|
703
733
|
reservas: { branch: roadmap_reservas_1.BRANCH_DE_RESERVAS, dir: roadmap_reservas_1.DIR_DE_RESERVAS }, fabrica: { branch: fabrica_estado_1.BRANCH_DA_FABRICA, dir: fabrica_estado_1.DIR_DA_FABRICA },
|
|
704
|
-
lidoEm: geral.quando }, geral.executor);
|
|
734
|
+
lidoEm: geral.quando }, geral.executor, api);
|
|
705
735
|
let baseUsada = p.base;
|
|
706
736
|
let r = ler(p.base);
|
|
707
737
|
// Sem clone, a base e a do manifesto lido: se ele aponta outra branch, a leitura e refeita por ela.
|
|
@@ -725,7 +755,7 @@ function lerProjetoDaForja(p, geral) {
|
|
|
725
755
|
let commits = l.base?.commits ?? [], commitsParciais = l.base?.commitsParciais ?? false;
|
|
726
756
|
const inicioNoProjeto = inicioDoDia(ctx.quando, ctx.fuso);
|
|
727
757
|
if (l.base && Date.parse(inicioNoProjeto) < Date.parse(desde)) {
|
|
728
|
-
const h = (0, forja_1.lerCommitsDaForja)(forja, { commit: l.base.commit, desde: inicioNoProjeto }, geral.executor);
|
|
758
|
+
const h = (0, forja_1.lerCommitsDaForja)(forja, { commit: l.base.commit, desde: inicioNoProjeto }, geral.executor, api);
|
|
729
759
|
if (h.ok) {
|
|
730
760
|
commits = h.commits;
|
|
731
761
|
commitsParciais = h.parciais;
|
|
@@ -931,6 +961,7 @@ function montarPanoramaDaRede(opcoes = {}) {
|
|
|
931
961
|
const quando = opcoes.quando ?? new Date().toISOString();
|
|
932
962
|
const cwd = opcoes.cwd ?? process.cwd();
|
|
933
963
|
const ctx = { quando, maquina: (0, maquina_1.nomeDaMaquina)(opcoes.maquina), semRemoto: opcoes.semRemoto === true, executor: opcoes.executor,
|
|
964
|
+
rodarDaForja: opcoes.rodarDaForja,
|
|
934
965
|
fuso: (0, horario_1.fusoDoDono)().fuso };
|
|
935
966
|
const naoConsultado = [];
|
|
936
967
|
const lacunas = [];
|
|
@@ -1000,86 +1031,91 @@ function descreverProjeto(x) {
|
|
|
1000
1031
|
return `${x.nome} (${[x.forja, x.clone ? `clone em ${x.clone}` : 'sem clone nesta máquina'].filter(Boolean).join(', ')})`;
|
|
1001
1032
|
}
|
|
1002
1033
|
function linhaDaFonte(f, quando, fuso) {
|
|
1003
|
-
const
|
|
1004
|
-
const
|
|
1034
|
+
const m = (0, locale_1.msg)().network.roadmap;
|
|
1035
|
+
const parte = m.fonteParte(f.parte);
|
|
1036
|
+
const lido = f.lidoEm === quando ? m.lidoAgora : m.lidoEm((0, horario_1.formatarDataHora)(f.lidoEm, { fuso }));
|
|
1005
1037
|
if (f.origem === 'estado-local')
|
|
1006
|
-
return
|
|
1038
|
+
return m.fonteLocal(parte, f.onde, lido);
|
|
1007
1039
|
if (!f.existe)
|
|
1008
|
-
return
|
|
1009
|
-
const alvo = f.parte === 'roadmap' ?
|
|
1010
|
-
return
|
|
1011
|
-
(f.atualizado ? lido : 'última cópia desta máquina, sem leitura nova');
|
|
1040
|
+
return m.fonteInexistente(parte, f.onde, lido);
|
|
1041
|
+
const alvo = f.parte === 'roadmap' ? m.alvoDoRoadmap(f.onde) : f.onde;
|
|
1042
|
+
return m.fonteCommit(parte, alvo, (f.commit ?? '').slice(0, 7), (0, horario_1.formatarDataHora)(f.dataDoCommit, { fuso }), f.atualizado ? lido : m.ultimaCopia);
|
|
1012
1043
|
}
|
|
1013
1044
|
function linhasDasMaquinas(x, fuso) {
|
|
1045
|
+
const m = (0, locale_1.msg)().network.roadmap;
|
|
1014
1046
|
if (x.maquinas === null)
|
|
1015
|
-
return [
|
|
1047
|
+
return [m.maquinasNaoLidas];
|
|
1016
1048
|
if (x.maquinas.length === 0)
|
|
1017
|
-
return [
|
|
1049
|
+
return [m.nenhumaMaquinaNaFabrica];
|
|
1018
1050
|
return x.maquinas.flatMap((m) => {
|
|
1019
|
-
const quem = `${m.maquina}${m.estaMaquina ?
|
|
1051
|
+
const quem = `${m.maquina}${m.estaMaquina ? (0, locale_1.msg)().network.roadmap.estaMaquina : ''}`;
|
|
1020
1052
|
// Fatia 3: a maquina so da rede por pessoa; as threads dela neste projeto nao foram lidas.
|
|
1021
1053
|
if (m.origem === 'rede') {
|
|
1022
|
-
return [
|
|
1023
|
-
`há ${(0, horario_1.duracaoCurta)(m.idadeMin)}${m.semBatida ? ', SEM BATIDA' : ''}) e sem retrato em ${fabrica_estado_1.BRANCH_DA_FABRICA}`];
|
|
1054
|
+
return [(0, locale_1.msg)().network.roadmap.maquinaSoNaRede(quem, (0, horario_1.formatarDataHora)(m.publicadoEm, { fuso }), (0, horario_1.duracaoCurta)(m.idadeMin), m.semBatida, fabrica_estado_1.BRANCH_DA_FABRICA)];
|
|
1024
1055
|
}
|
|
1025
|
-
const
|
|
1026
|
-
|
|
1027
|
-
|
|
1056
|
+
const rm = (0, locale_1.msg)().network.roadmap;
|
|
1057
|
+
const batida = m.origem === 'estado-local' ? rm.estadoLocalAgora
|
|
1058
|
+
: rm.retrato((0, horario_1.formatarDataHora)(m.publicadoEm, { fuso }), (0, horario_1.duracaoCurta)(m.idadeMin), m.semBatida);
|
|
1059
|
+
const cabeca = rm.resumoMaquina(quem, m.ativas.length, m.entreguesSemMaster, batida);
|
|
1028
1060
|
// RM-037 (rm037noite, defeito 4): o runtime e o modelo de cada thread, quando o retrato os traz.
|
|
1029
|
-
return [cabeca, ...m.ativas.map((t) => ` ${t.id} · ${t.modo} · ${t.fase} · ${t.roadmap ??
|
|
1061
|
+
return [cabeca, ...m.ativas.map((t) => ` ${t.id} · ${t.modo} · ${t.fase} · ${t.roadmap ?? rm.semItem}` +
|
|
1030
1062
|
(t.runtime || t.modelo ? ` · ${(0, fabrica_estado_1.runtimeDaThread)(t)}` : '') +
|
|
1031
|
-
(t.esperaVoce ?
|
|
1063
|
+
(t.esperaVoce ? rm.esperaVoce(t.pergunta ?? rm.veredito) : ''))];
|
|
1032
1064
|
});
|
|
1033
1065
|
}
|
|
1034
1066
|
function linhasDasReservas(x, fuso) {
|
|
1067
|
+
const m = (0, locale_1.msg)().network.roadmap;
|
|
1035
1068
|
if (x.reservas === null)
|
|
1036
|
-
return [
|
|
1069
|
+
return [m.reservasNaoLidas];
|
|
1037
1070
|
if (x.reservas.length === 0)
|
|
1038
|
-
return [
|
|
1039
|
-
return x.reservas.map((r) =>
|
|
1071
|
+
return [m.nenhumaReserva];
|
|
1072
|
+
return x.reservas.map((r) => m.reserva(r.item, r.maquina, r.thread ?? m.semThread, (0, horario_1.formatarDataHora)(r.desdeEm, { fuso })));
|
|
1040
1073
|
}
|
|
1041
1074
|
/** Fatia 3: a casa da rede por pessoa e as maquinas dela, com a batida e os projetos que declaram. */
|
|
1042
1075
|
function linhasDaRede(r, quando, fuso) {
|
|
1043
|
-
const
|
|
1044
|
-
const
|
|
1045
|
-
|
|
1046
|
-
|
|
1076
|
+
const x = (0, locale_1.msg)().network.roadmap;
|
|
1077
|
+
const lido = r.lidoEm === quando ? x.redeLidaAgora : x.redeLidaEm((0, horario_1.formatarDataHora)(r.lidoEm, { fuso }));
|
|
1078
|
+
const casa = !r.casa ? x.casaAusente
|
|
1079
|
+
: r.atualizado === null ? x.casaNaoLida(r.casa)
|
|
1080
|
+
: x.casaLida(r.casa, r.ponta ? r.ponta.slice(0, 7) : x.semCommit, r.atualizado ? lido : x.casaUltimaCopia);
|
|
1047
1081
|
if (r.membros.length === 0)
|
|
1048
|
-
return [casa,
|
|
1049
|
-
return [casa, ...r.membros.map((m) =>
|
|
1050
|
-
`${(0, horario_1.formatarDataHora)(m.publicadoEm, { fuso })}${m.idadeMin === null ? ' (batida ilegível)' : ` (há ${(0, horario_1.duracaoCurta)(m.idadeMin)})`}` +
|
|
1051
|
-
`${m.semBatida ? ', SEM BATIDA' : ''}${m.versaoOrk ? `, ork ${m.versaoOrk}` : ''}, ` +
|
|
1052
|
-
(m.projetos.length ? `projetos: ${m.projetos.join(', ')}` : 'nenhum projeto declarado aqui'))];
|
|
1082
|
+
return [casa, x.nenhumRetrato];
|
|
1083
|
+
return [casa, ...r.membros.map((m) => x.membro(m.maquina, m.estaMaquina ? x.estaMaquina : '', (0, horario_1.formatarDataHora)(m.publicadoEm, { fuso }), m.idadeMin === null ? x.batidaIlegivel : x.idade((0, horario_1.duracaoCurta)(m.idadeMin)), m.semBatida, m.versaoOrk ? x.versao(m.versaoOrk) : '', m.projetos.length ? x.projetos(m.projetos.join(', ')) : x.nenhumProjeto))];
|
|
1053
1084
|
}
|
|
1054
|
-
const linhaDaLacuna = (l) =>
|
|
1085
|
+
const linhaDaLacuna = (l) => {
|
|
1086
|
+
const m = (0, locale_1.msg)().network.roadmap;
|
|
1087
|
+
return m.lacuna(l.tipo, l.alvo ? ` (${l.alvo})` : '', m.lacunaDetalhe(l.tipo, l.parte, l.alvo, l.detalhe), m.lacunaCorrecao(l.tipo, l.correcao));
|
|
1088
|
+
};
|
|
1055
1089
|
/** O texto de `ork network roadmap`: o consultado e o nao consultado no alto, e cada parte com a fonte e a hora. */
|
|
1056
1090
|
function textoDoPanoramaDaRede(p) {
|
|
1091
|
+
const m = (0, locale_1.msg)().network.roadmap;
|
|
1057
1092
|
if (p.contrato !== exports.CONTRATO_PANORAMA_DA_REDE)
|
|
1058
|
-
throw new Error(
|
|
1093
|
+
throw new Error(m.contratoInvalido);
|
|
1059
1094
|
const h = (0, horario_1.partesLocais)(p.consultadoEm, p.fuso);
|
|
1060
1095
|
const linhas = [
|
|
1061
1096
|
`Panorama da rede lido de ${p.maquina} (${h.dia}/${h.mes}, ${h.hora}:${h.minuto})`,
|
|
1062
1097
|
p.projetos.length ? `Consultado: ${p.projetos.map((x) => descreverProjeto(x.projeto)).join('; ')}` : 'Consultado: nenhum projeto.',
|
|
1063
|
-
'Não consultado:', ...(p.naoConsultado.length ? p.naoConsultado.map(
|
|
1098
|
+
'Não consultado:', ...(p.naoConsultado.length ? p.naoConsultado.map(m.naoConsultado) : [m.nadaForaDoPedido]),
|
|
1064
1099
|
];
|
|
1065
1100
|
if (p.rede)
|
|
1066
|
-
linhas.push('',
|
|
1101
|
+
linhas.push('', m.redePorPessoa, ...linhasDaRede(p.rede, p.consultadoEm, p.fuso));
|
|
1067
1102
|
if (p.lacunas.length)
|
|
1068
|
-
linhas.push('',
|
|
1103
|
+
linhas.push('', m.lacunasDaConsulta, ...p.lacunas.map(linhaDaLacuna));
|
|
1069
1104
|
for (const x of p.projetos) {
|
|
1070
1105
|
// Cada projeto no fuso do dono dele (achado 5 da rodada 2): a legenda do bloco diz quando difere.
|
|
1071
1106
|
const fuso = x.projeto.fuso;
|
|
1072
1107
|
linhas.push('', '────────', '');
|
|
1073
1108
|
// Fatia 2 do ensaio (P7): o fuso ja sai no fim do panorama (e no bloco, quando difere): sem a legenda do status.
|
|
1074
1109
|
linhas.push(x.roadmap ? (0, roadmap_status_1.textoDoStatusDoRoadmap)(x.roadmap, fuso, { legenda: false })
|
|
1075
|
-
:
|
|
1076
|
-
linhas.push('',
|
|
1077
|
-
linhas.push('',
|
|
1078
|
-
linhas.push('',
|
|
1079
|
-
linhas.push('',
|
|
1110
|
+
: m.roadmapNaoLido(x.projeto.nome, x.lacunas.map((l) => l.tipo).filter((t) => t !== 'projeto.sem-clone').join(', ') || m.semFonte));
|
|
1111
|
+
linhas.push('', m.threadsPorMaquina, ...linhasDasMaquinas(x, fuso));
|
|
1112
|
+
linhas.push('', m.reservas, ...linhasDasReservas(x, fuso));
|
|
1113
|
+
linhas.push('', m.fontes, ...(x.fontes.length ? x.fontes.map((f) => linhaDaFonte(f, p.consultadoEm, fuso)) : [m.nenhumaFonte]));
|
|
1114
|
+
linhas.push('', m.lacunas, ...(x.lacunas.length ? x.lacunas.map(linhaDaLacuna) : [m.nenhumaLacuna]));
|
|
1115
|
+
// A legenda e a da hora da leitura, como os horarios do panorama: com a de agora, o horario de verao mudava o texto.
|
|
1080
1116
|
if (fuso !== p.fuso)
|
|
1081
|
-
linhas.push('',
|
|
1117
|
+
linhas.push('', m.nesteProjeto((0, horario_1.legendaDoFuso)(fuso, p.consultadoEm)));
|
|
1082
1118
|
}
|
|
1083
|
-
linhas.push('', (0, horario_1.legendaDoFuso)(p.fuso));
|
|
1119
|
+
linhas.push('', (0, horario_1.legendaDoFuso)(p.fuso, p.consultadoEm));
|
|
1084
1120
|
return linhas.join('\n');
|
|
1085
1121
|
}
|