@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/setup.js
CHANGED
|
@@ -90,6 +90,7 @@ const manifest_1 = require("./manifest");
|
|
|
90
90
|
const modos_1 = require("./modos");
|
|
91
91
|
const runtimes_1 = require("./runtimes");
|
|
92
92
|
const util_1 = require("./util");
|
|
93
|
+
const locale_1 = require("./locale");
|
|
93
94
|
exports.CONTRATO_DO_SETUP = 'ork.setup/v1';
|
|
94
95
|
exports.NOME_SETUP = 'setup.json';
|
|
95
96
|
/** I-52: o setup versionado, ao lado do `orkastery.yaml`. */
|
|
@@ -99,14 +100,14 @@ const MAX_INSTANTE_MS = 8_640_000_000_000_000;
|
|
|
99
100
|
const CAMPOS_LIMITES = ['duracaoMs', 'maxChildren', 'maxDepth', 'maxRetries'];
|
|
100
101
|
function objeto(valor, campo) {
|
|
101
102
|
if (!valor || typeof valor !== 'object' || Array.isArray(valor)) {
|
|
102
|
-
throw new Error(
|
|
103
|
+
throw new Error((0, locale_1.msg)().setup.objeto(campo));
|
|
103
104
|
}
|
|
104
105
|
return valor;
|
|
105
106
|
}
|
|
106
107
|
function camposExatos(valor, campos, campo) {
|
|
107
108
|
if (Object.keys(valor).length !== campos.length ||
|
|
108
109
|
campos.some(c => !Object.hasOwn(valor, c))) {
|
|
109
|
-
throw new Error(
|
|
110
|
+
throw new Error((0, locale_1.msg)().setup.camposExatos(campo, campos.join(', ')));
|
|
110
111
|
}
|
|
111
112
|
}
|
|
112
113
|
const ENTRADA_DE_FALLBACK = /^([a-z][a-z0-9-]*):([^\s:]+)(?::([a-z]+))?$/;
|
|
@@ -116,11 +117,11 @@ function validarFallback(lista, principal) {
|
|
|
116
117
|
return lista.map((item) => {
|
|
117
118
|
const m = ENTRADA_DE_FALLBACK.exec(item.trim());
|
|
118
119
|
if (!m)
|
|
119
|
-
throw new Error(
|
|
120
|
+
throw new Error((0, locale_1.msg)().setup.fallbackInvalido(item));
|
|
120
121
|
if (!(0, runtimes_1.runtimeConhecido)(m[1]))
|
|
121
|
-
throw new Error(
|
|
122
|
+
throw new Error((0, locale_1.msg)().setup.fallbackDesconhecido(m[1], runtimes_1.ORDEM_DOS_RUNTIMES.join(', ')));
|
|
122
123
|
if (vistos.has(m[1]))
|
|
123
|
-
throw new Error(
|
|
124
|
+
throw new Error((0, locale_1.msg)().setup.fallbackRepetido(m[1]));
|
|
124
125
|
vistos.add(m[1]);
|
|
125
126
|
return item.trim();
|
|
126
127
|
});
|
|
@@ -164,7 +165,7 @@ function validarLimitesDeBloco(valor) {
|
|
|
164
165
|
const n = limites[campo];
|
|
165
166
|
if (typeof n !== 'number' || !Number.isSafeInteger(n) || n < (campo === 'duracaoMs' ? 1 : 0) ||
|
|
166
167
|
(campo === 'duracaoMs' && n > MAX_INSTANTE_MS)) {
|
|
167
|
-
throw new Error(
|
|
168
|
+
throw new Error((0, locale_1.msg)().setup.limiteInvalido(campo, campo === 'duracaoMs'));
|
|
168
169
|
}
|
|
169
170
|
}
|
|
170
171
|
return {
|
|
@@ -179,14 +180,14 @@ function validarConfigComLimites(config) {
|
|
|
179
180
|
if (typeof config.runtime !== 'string' || !(0, runtimes_1.runtimeConhecido)(config.runtime) ||
|
|
180
181
|
typeof config.model !== 'string' || config.model.trim() === '' ||
|
|
181
182
|
typeof config.effort !== 'string' || config.effort.trim() === '') {
|
|
182
|
-
throw new Error(
|
|
183
|
+
throw new Error((0, locale_1.msg)().setup.blocoComLimites);
|
|
183
184
|
}
|
|
184
185
|
}
|
|
185
186
|
/** Valida tambem entradas que a normalizacao antiga descartaria. */
|
|
186
187
|
function validarEstruturaSetup(valor) {
|
|
187
188
|
const setup = objeto(valor, 'setup');
|
|
188
189
|
if (setup.contrato !== undefined && setup.contrato !== exports.CONTRATO_DO_SETUP) {
|
|
189
|
-
throw new Error(
|
|
190
|
+
throw new Error((0, locale_1.msg)().setup.contratoIncompativel);
|
|
190
191
|
}
|
|
191
192
|
if (setup.modos === undefined)
|
|
192
193
|
return;
|
|
@@ -195,13 +196,13 @@ function validarEstruturaSetup(valor) {
|
|
|
195
196
|
if (configModo.blocos === undefined)
|
|
196
197
|
continue;
|
|
197
198
|
if (!Array.isArray(configModo.blocos))
|
|
198
|
-
throw new Error(
|
|
199
|
+
throw new Error((0, locale_1.msg)().setup.blocosArray(modo));
|
|
199
200
|
for (const [i, valorBloco] of configModo.blocos.entries()) {
|
|
200
201
|
const config = objeto(valorBloco, `bloco ${modo}/${i + 1}`);
|
|
201
202
|
validarConfigComLimites(config);
|
|
202
203
|
if (Object.hasOwn(config, 'limites') && (setup.contrato !== exports.CONTRATO_DO_SETUP ||
|
|
203
204
|
!modos_1.ORDEM_DOS_MODOS.includes(modo) || i >= modos_1.MODOS[modo].blocos.length)) {
|
|
204
|
-
throw new Error(
|
|
205
|
+
throw new Error((0, locale_1.msg)().setup.limitesConhecidos);
|
|
205
206
|
}
|
|
206
207
|
}
|
|
207
208
|
}
|
|
@@ -273,7 +274,7 @@ function lerSetup(raiz) {
|
|
|
273
274
|
bruto = (0, util_1.lerJson)(caminho);
|
|
274
275
|
}
|
|
275
276
|
catch (e) {
|
|
276
|
-
throw new Error(
|
|
277
|
+
throw new Error((0, locale_1.msg)().setup.setupInvalido(caminho, e.message));
|
|
277
278
|
}
|
|
278
279
|
validarEstruturaSetup(bruto);
|
|
279
280
|
const modosBrutos = (bruto.modos ?? {});
|
|
@@ -324,7 +325,7 @@ function gravarSetup(raiz, setup) {
|
|
|
324
325
|
function versionarSetup(raiz, por = 'owner') {
|
|
325
326
|
const caminho = caminhoSetupVersionado(raiz);
|
|
326
327
|
if (fs.existsSync(caminho))
|
|
327
|
-
throw new Error(
|
|
328
|
+
throw new Error((0, locale_1.msg)().setup.versionadoExiste(exports.NOME_SETUP_VERSIONADO));
|
|
328
329
|
const origem = origemDoSetup(raiz);
|
|
329
330
|
const setup = lerSetup(raiz);
|
|
330
331
|
validarEstruturaSetup(setup);
|
|
@@ -358,12 +359,12 @@ function limitesDoBloco(manifesto, setup, modo, fase) {
|
|
|
358
359
|
if (!Array.isArray(permitidos) || permitidos.length === 0 ||
|
|
359
360
|
permitidos.some(m => !modos_1.ORDEM_DOS_MODOS.includes(m)) ||
|
|
360
361
|
!permitidos.includes(modo)) {
|
|
361
|
-
throw new Error(
|
|
362
|
+
throw new Error((0, locale_1.msg)().setup.playbookModo);
|
|
362
363
|
}
|
|
363
364
|
for (const permitido of permitidos) {
|
|
364
365
|
const blocos = setup.modos?.[permitido]?.blocos;
|
|
365
366
|
if (!blocos || blocos.length !== modos_1.MODOS[permitido].blocos.length) {
|
|
366
|
-
throw new Error(
|
|
367
|
+
throw new Error((0, locale_1.msg)().setup.playbookBlocos(permitido));
|
|
367
368
|
}
|
|
368
369
|
for (const config of blocos) {
|
|
369
370
|
validarConfigComLimites(objeto(config, 'config do bloco'));
|
|
@@ -372,12 +373,12 @@ function limitesDoBloco(manifesto, setup, modo, fase) {
|
|
|
372
373
|
}
|
|
373
374
|
const config = configDoBloco(setup, modo, fase);
|
|
374
375
|
if (!config)
|
|
375
|
-
throw new Error(
|
|
376
|
+
throw new Error((0, locale_1.msg)().setup.faseFora(fase, modo));
|
|
376
377
|
return validarLimitesDeBloco(config.limites);
|
|
377
378
|
}
|
|
378
379
|
function instante(valor, campo) {
|
|
379
380
|
if (typeof valor !== 'number' || !Number.isSafeInteger(valor) || valor < 0 || valor > MAX_INSTANTE_MS) {
|
|
380
|
-
throw new Error(
|
|
381
|
+
throw new Error((0, locale_1.msg)().setup.instante(campo));
|
|
381
382
|
}
|
|
382
383
|
return valor;
|
|
383
384
|
}
|
|
@@ -389,20 +390,20 @@ function validarIdentidade(valor) {
|
|
|
389
390
|
camposExatos(id, ['threadId', 'execucaoId', 'modo', 'bloco'], 'identidade');
|
|
390
391
|
for (const campo of ['threadId', 'execucaoId']) {
|
|
391
392
|
if (typeof id[campo] !== 'string' || id[campo].trim() === '') {
|
|
392
|
-
throw new Error(
|
|
393
|
+
throw new Error((0, locale_1.msg)().setup.identidadeTexto(campo));
|
|
393
394
|
}
|
|
394
395
|
}
|
|
395
396
|
if (!modos_1.ORDEM_DOS_MODOS.includes(id.modo) ||
|
|
396
397
|
typeof id.bloco !== 'number' || !Number.isSafeInteger(id.bloco) ||
|
|
397
398
|
id.bloco < 1 || id.bloco > modos_1.MODOS[id.modo].blocos.length) {
|
|
398
|
-
throw new Error(
|
|
399
|
+
throw new Error((0, locale_1.msg)().setup.identidadeModo);
|
|
399
400
|
}
|
|
400
401
|
return { threadId: id.threadId, execucaoId: id.execucaoId, modo: id.modo, bloco: id.bloco };
|
|
401
402
|
}
|
|
402
403
|
function semAmpliacao(limites, origem) {
|
|
403
404
|
for (const campo of CAMPOS_LIMITES) {
|
|
404
405
|
if (limites[campo] > origem[campo])
|
|
405
|
-
throw new Error(
|
|
406
|
+
throw new Error((0, locale_1.msg)().setup.herancaAmplia(campo));
|
|
406
407
|
}
|
|
407
408
|
}
|
|
408
409
|
/**
|
|
@@ -415,7 +416,7 @@ function iniciarPrazoDoBloco(manifesto, setup, identidade, fase, agoraMs) {
|
|
|
415
416
|
return null;
|
|
416
417
|
const id = validarIdentidade(identidade);
|
|
417
418
|
if (!modos_1.MODOS[id.modo].blocos[id.bloco - 1].fases.includes(fase)) {
|
|
418
|
-
throw new Error(
|
|
419
|
+
throw new Error((0, locale_1.msg)().setup.identidadeFase);
|
|
419
420
|
}
|
|
420
421
|
const inicio = instante(agoraMs, 'iniciadaEmMs');
|
|
421
422
|
const deadline = somarPrazo(inicio, limites.duracaoMs);
|
|
@@ -429,11 +430,11 @@ function validarPrazo(valor, esperada) {
|
|
|
429
430
|
camposExatos(p, ['versao', 'identidade', 'iniciadaEmMs', 'deadlineOriginalMs',
|
|
430
431
|
'limitesOriginais', 'deadlineMs', 'limites', 'observadoEmMs'], 'prazo');
|
|
431
432
|
if (p.versao !== 1)
|
|
432
|
-
throw new Error(
|
|
433
|
+
throw new Error((0, locale_1.msg)().setup.prazoVersao);
|
|
433
434
|
const identidade = validarIdentidade(p.identidade);
|
|
434
435
|
const idEsperada = validarIdentidade(esperada);
|
|
435
436
|
if (Object.keys(identidade).some(c => identidade[c] !== idEsperada[c])) {
|
|
436
|
-
throw new Error(
|
|
437
|
+
throw new Error((0, locale_1.msg)().setup.identidadeDivergente);
|
|
437
438
|
}
|
|
438
439
|
const limitesOriginais = validarLimitesDeBloco(p.limitesOriginais);
|
|
439
440
|
const limites = validarLimitesDeBloco(p.limites);
|
|
@@ -444,7 +445,7 @@ function validarPrazo(valor, esperada) {
|
|
|
444
445
|
const deadlineMs = instante(p.deadlineMs, 'deadlineMs');
|
|
445
446
|
if (deadlineOriginalMs !== somarPrazo(iniciadaEmMs, limitesOriginais.duracaoMs) ||
|
|
446
447
|
deadlineMs !== somarPrazo(iniciadaEmMs, limites.duracaoMs) || observadoEmMs < iniciadaEmMs) {
|
|
447
|
-
throw new Error(
|
|
448
|
+
throw new Error((0, locale_1.msg)().setup.prazoInconsistente);
|
|
448
449
|
}
|
|
449
450
|
return { versao: 1, identidade, iniciadaEmMs, deadlineOriginalMs, limitesOriginais, deadlineMs, limites, observadoEmMs };
|
|
450
451
|
}
|
|
@@ -457,7 +458,7 @@ function consumirPrazoDoBloco(snapshot, identidadeEsperada, agoraMs, atividade =
|
|
|
457
458
|
const prazo = validarPrazo(snapshot, identidadeEsperada);
|
|
458
459
|
const agoraValidado = instante(agoraMs, 'agoraMs');
|
|
459
460
|
if (agoraValidado < prazo.observadoEmMs)
|
|
460
|
-
throw new Error(
|
|
461
|
+
throw new Error((0, locale_1.msg)().setup.relogioRegressivo);
|
|
461
462
|
const a = objeto(atividade, 'atividade');
|
|
462
463
|
if (a.tipo === 'trabalho') {
|
|
463
464
|
camposExatos(a, ['tipo'], 'atividade');
|
|
@@ -465,10 +466,10 @@ function consumirPrazoDoBloco(snapshot, identidadeEsperada, agoraMs, atividade =
|
|
|
465
466
|
else if (a.tipo === 'espera_lease' || a.tipo === 'espera_score') {
|
|
466
467
|
camposExatos(a, ['tipo', 'processosAtivos'], 'atividade');
|
|
467
468
|
if (a.processosAtivos !== 0)
|
|
468
|
-
throw new Error(
|
|
469
|
+
throw new Error((0, locale_1.msg)().setup.esperaComProcesso);
|
|
469
470
|
}
|
|
470
471
|
else {
|
|
471
|
-
throw new Error(
|
|
472
|
+
throw new Error((0, locale_1.msg)().setup.atividadeDesconhecida);
|
|
472
473
|
}
|
|
473
474
|
prazo.observadoEmMs = agoraValidado;
|
|
474
475
|
const restanteMs = Math.max(0, prazo.deadlineMs - agoraValidado);
|
|
@@ -481,13 +482,13 @@ function consumirPrazoDoBloco(snapshot, identidadeEsperada, agoraMs, atividade =
|
|
|
481
482
|
function herdarPrazoDoBloco(origem, identidadeEsperada, agoraMs, limitesSolicitados) {
|
|
482
483
|
const consumo = consumirPrazoDoBloco(origem, identidadeEsperada, agoraMs);
|
|
483
484
|
if (consumo.estado !== 'ativo')
|
|
484
|
-
throw new Error(
|
|
485
|
+
throw new Error((0, locale_1.msg)().setup.prazoExpirado);
|
|
485
486
|
const prazo = consumo.prazo;
|
|
486
487
|
const limites = validarLimitesDeBloco(limitesSolicitados === undefined ? prazo.limites : limitesSolicitados);
|
|
487
488
|
semAmpliacao(limites, prazo.limites);
|
|
488
489
|
const deadlineMs = somarPrazo(prazo.iniciadaEmMs, limites.duracaoMs);
|
|
489
490
|
if (deadlineMs <= agoraMs)
|
|
490
|
-
throw new Error(
|
|
491
|
+
throw new Error((0, locale_1.msg)().setup.prazoReduzido);
|
|
491
492
|
return { ...prazo, limites, deadlineMs };
|
|
492
493
|
}
|
|
493
494
|
/** A config do bloco e o default pos-instalacao? */
|
|
@@ -525,20 +526,20 @@ function editarBloco(raiz, modo, bloco, edicao, por = 'owner') {
|
|
|
525
526
|
if (!Number.isInteger(bloco) || bloco < 1 || bloco > def.blocos.length) {
|
|
526
527
|
return {
|
|
527
528
|
...base,
|
|
528
|
-
erro:
|
|
529
|
+
erro: (0, locale_1.msg)().setup.blocoInexistente(bloco, def.tag, def.blocos.length),
|
|
529
530
|
};
|
|
530
531
|
}
|
|
531
532
|
if (edicao.runtime !== undefined && !(0, runtimes_1.runtimeConhecido)(edicao.runtime)) {
|
|
532
533
|
return {
|
|
533
534
|
...base,
|
|
534
|
-
erro:
|
|
535
|
+
erro: (0, locale_1.msg)().setup.runtimeDesconhecido(edicao.runtime, runtimes_1.ORDEM_DOS_RUNTIMES.join(', ')),
|
|
535
536
|
};
|
|
536
537
|
}
|
|
537
538
|
const atual = setup.modos[modo].blocos[bloco - 1];
|
|
538
539
|
if (edicao.runtime !== undefined && edicao.runtime !== atual.runtime && !edicao.model?.trim())
|
|
539
|
-
return { ...base, erro:
|
|
540
|
+
return { ...base, erro: (0, locale_1.msg)().setup.modeloComRuntime };
|
|
540
541
|
if (!(edicao.model ?? atual.model).trim())
|
|
541
|
-
return { ...base, erro:
|
|
542
|
+
return { ...base, erro: (0, locale_1.msg)().setup.modeloPendente };
|
|
542
543
|
const de = { ...atual };
|
|
543
544
|
const runtimeNovo = edicao.runtime ?? atual.runtime;
|
|
544
545
|
let fallback;
|
|
@@ -613,15 +614,15 @@ function registrarSetupNoLedger(raiz, dados) {
|
|
|
613
614
|
function linhaDaOrigemDoSetup(raiz) {
|
|
614
615
|
const origem = origemDoSetup(raiz);
|
|
615
616
|
if (origem === 'versionado') {
|
|
616
|
-
return
|
|
617
|
-
(fs.existsSync(caminhoSetupLocal(raiz)) ? ' O .orkastery/setup.json local desta maquina fica ignorado.' : '');
|
|
617
|
+
return (0, locale_1.msg)().setup.origem.versionado(exports.NOME_SETUP_VERSIONADO, fs.existsSync(caminhoSetupLocal(raiz)));
|
|
618
618
|
}
|
|
619
619
|
if (origem === 'local')
|
|
620
|
-
return
|
|
621
|
-
return
|
|
620
|
+
return (0, locale_1.msg)().setup.origem.local;
|
|
621
|
+
return (0, locale_1.msg)().setup.origem.padrao;
|
|
622
622
|
}
|
|
623
623
|
/** Tabela de um modo: cada bloco com sua config e a marca do que saiu do default. */
|
|
624
624
|
function textoDoSetup(raiz, modo) {
|
|
625
|
+
const m = (0, locale_1.msg)().setup.tabela;
|
|
625
626
|
const def = (0, modos_1.definicaoDoModo)(modo);
|
|
626
627
|
const setup = lerSetup(raiz);
|
|
627
628
|
const linhas = def.blocos.map((b, i) => {
|
|
@@ -630,22 +631,22 @@ function textoDoSetup(raiz, modo) {
|
|
|
630
631
|
String(i + 1),
|
|
631
632
|
b.fases.join('-'),
|
|
632
633
|
cfg.runtime,
|
|
633
|
-
cfg.model ||
|
|
634
|
+
cfg.model || m.modeloPendente,
|
|
634
635
|
cfg.effort,
|
|
635
636
|
cfg.fallback?.join(', ') || '-',
|
|
636
|
-
ehPadrao(cfg, modo) ?
|
|
637
|
+
ehPadrao(cfg, modo) ? m.default : m.customizado,
|
|
637
638
|
];
|
|
638
639
|
});
|
|
639
640
|
const saida = [];
|
|
640
|
-
saida.push(
|
|
641
|
+
saida.push(m.titulo(def.tag, def.blocos.length, def.pausas));
|
|
641
642
|
saida.push('');
|
|
642
|
-
saida.push((0, util_1.tabela)([
|
|
643
|
+
saida.push((0, util_1.tabela)([...m.cabecalho], linhas));
|
|
643
644
|
saida.push('');
|
|
644
|
-
saida.push(
|
|
645
|
-
saida.push(
|
|
645
|
+
saida.push(m.editar(modo));
|
|
646
|
+
saida.push(m.fallback(modo));
|
|
646
647
|
const padrao = blocoPadraoDoModo(modo);
|
|
647
|
-
saida.push(
|
|
648
|
-
saida.push(
|
|
648
|
+
saida.push(m.resetar(modo, `${padrao.runtime}/${padrao.model}/${padrao.effort}`));
|
|
649
|
+
saida.push(m.runtimes(runtimes_1.ORDEM_DOS_RUNTIMES.join(', ')));
|
|
649
650
|
saida.push('');
|
|
650
651
|
saida.push(linhaDaOrigemDoSetup(raiz));
|
|
651
652
|
return saida.join('\n');
|
|
@@ -658,33 +659,33 @@ function textoDoSetup(raiz, modo) {
|
|
|
658
659
|
* o owner disser que concluiu, e todo bloco nao respondido fica no default.
|
|
659
660
|
*/
|
|
660
661
|
function textoDaEntrevista(raiz) {
|
|
662
|
+
const m = (0, locale_1.msg)().setup.entrevista;
|
|
661
663
|
const setup = lerSetup(raiz);
|
|
662
664
|
const saida = [];
|
|
663
|
-
saida.push(
|
|
665
|
+
saida.push(m.titulo);
|
|
664
666
|
saida.push('');
|
|
665
|
-
saida.push(
|
|
666
|
-
saida.push(
|
|
667
|
-
saida.push(
|
|
667
|
+
saida.push(m.ordem(modos_1.ORDEM_DOS_MODOS.map((modo) => modos_1.MODOS[modo].tag).join(' -> ')));
|
|
668
|
+
saida.push(m.termina1);
|
|
669
|
+
saida.push(m.termina2);
|
|
668
670
|
const proprios = modos_1.ORDEM_DOS_MODOS.filter((m) => !ehPadrao(blocoPadraoDoModo(m)));
|
|
669
|
-
saida.push(
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
}).join(', ')}.` : '.'));
|
|
671
|
+
saida.push(m.default(`${exports.BLOCO_PADRAO.runtime}/${exports.BLOCO_PADRAO.model}/${exports.BLOCO_PADRAO.effort}`, proprios.length ? m.excecoes(proprios.map((modo) => {
|
|
672
|
+
const b = blocoPadraoDoModo(modo);
|
|
673
|
+
return `${modos_1.MODOS[modo].tag} (${b.runtime}/${b.model}/${b.effort}${b.fallback?.length ? `, fallback ${b.fallback.join(', ')}` : ''})`;
|
|
674
|
+
}).join(', ')) : '.'));
|
|
674
675
|
saida.push('');
|
|
675
676
|
for (const modo of modos_1.ORDEM_DOS_MODOS) {
|
|
676
677
|
const def = modos_1.MODOS[modo];
|
|
677
678
|
saida.push(`${def.tag}`);
|
|
678
679
|
def.blocos.forEach((b, i) => {
|
|
679
680
|
const cfg = setup.modos[modo].blocos[i];
|
|
680
|
-
const marca = ehPadrao(cfg, modo) ? '' :
|
|
681
|
-
saida.push(
|
|
681
|
+
const marca = ehPadrao(cfg, modo) ? '' : m.customizado;
|
|
682
|
+
saida.push(m.bloco(i + 1, b.fases.join('-'), `${cfg.runtime}/${cfg.model || m.modeloPendente}/${cfg.effort}`, marca));
|
|
682
683
|
});
|
|
683
684
|
}
|
|
684
685
|
saida.push('');
|
|
685
|
-
saida.push(
|
|
686
|
-
saida.push(
|
|
687
|
-
saida.push(
|
|
686
|
+
saida.push(m.ver);
|
|
687
|
+
saida.push(m.editar);
|
|
688
|
+
saida.push(m.resetar);
|
|
688
689
|
saida.push('');
|
|
689
690
|
saida.push(linhaDaOrigemDoSetup(raiz));
|
|
690
691
|
return saida.join('\n');
|