@orkastery/cli 0.6.1 → 0.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/adapters/claude-code/agents/ork-check.md +1 -1
- package/adapters/claude-code/agents/ork-go.md +1 -1
- package/adapters/claude-code/agents/ork-goal.md +1 -1
- package/adapters/claude-code/agents/ork-master.md +1 -1
- package/adapters/claude-code/agents/ork-plan.md +1 -1
- package/adapters/claude-code/agents/ork-ship.md +1 -1
- package/adapters/claude-code/commands/ork.md +1 -1
- package/adapters/claude-code/mods/ork-torre/hooks/frases.ts +2 -0
- package/adapters/codex/skills/ork/SKILL.md +1 -1
- package/adapters/openclaw/openclaw.plugin.json +1 -1
- package/adapters/openclaw/package.json +1 -1
- package/assets/adapters-en/claude-code/agents/ork-check.md +1 -1
- package/assets/adapters-en/claude-code/agents/ork-go.md +1 -1
- package/assets/adapters-en/claude-code/agents/ork-goal.md +1 -1
- package/assets/adapters-en/claude-code/agents/ork-master.md +1 -1
- package/assets/adapters-en/claude-code/agents/ork-plan.md +1 -1
- package/assets/adapters-en/claude-code/agents/ork-ship.md +1 -1
- package/assets/adapters-en/claude-code/commands/ork.md +1 -1
- package/assets/adapters-en/codex/skills/ork/SKILL.md +1 -1
- package/assets/orkmind_fixture.py +4 -1
- package/assets/skills-en/core/orkastery-bootstrap/SKILL.md +1 -1
- package/assets/skills-en/phases/check-quality/SKILL.md +1 -1
- package/assets/skills-en/phases/go-implementation/SKILL.md +1 -1
- package/dist/adapters/claude-bg.js +3 -1
- package/dist/adapters/grok-mcp-servidor.js +22 -12
- package/dist/adapters/grok.js +1 -1
- package/dist/changelog-check.js +217 -0
- package/dist/check-agil.js +241 -5
- package/dist/ci.js +3 -2
- package/dist/claim-lint.js +29 -0
- package/dist/claims.js +4 -0
- package/dist/docs.js +7 -0
- package/dist/fila-pesada.js +121 -11
- package/dist/hitl-classificacao.js +1 -0
- package/dist/index.js +43 -25
- package/dist/intelligence-graph-cli.js +27 -9
- package/dist/locale-claims.js +16 -2
- package/dist/locale-grafo.js +56 -1
- package/dist/locale-maestro.js +38 -0
- package/dist/locale-network.js +8 -6
- package/dist/locale-onboarding.js +14 -0
- package/dist/locale-preflight.js +80 -0
- package/dist/locale-projetos.js +6 -0
- package/dist/locale-prompts.js +8 -8
- package/dist/locale-pulse.js +4 -0
- package/dist/locale-retry.js +16 -0
- package/dist/locale-security-scan.js +35 -1
- package/dist/locale-verify.js +15 -0
- package/dist/locale.js +24 -7
- package/dist/maestro-cli.js +12 -17
- package/dist/mcp-install.js +2 -1
- package/dist/mcp-server.js +20 -17
- package/dist/mcp-verify-async.js +353 -0
- package/dist/mcp-verify-worker.js +17 -0
- package/dist/mcp-verify.js +10 -1
- package/dist/pedido-conducao.js +51 -0
- package/dist/preflight.js +25 -26
- package/dist/prompts.js +4 -2
- package/dist/pulse.js +4 -2
- package/dist/rede.js +24 -12
- package/dist/retry.js +12 -0
- package/dist/security-scan/cli.js +2 -2
- package/dist/security-scan/report.js +1 -1
- package/dist/session-watcher.js +33 -7
- package/dist/verify.js +166 -34
- package/package.json +1 -1
- package/skills/core/orkastery-bootstrap/SKILL.md +1 -1
- package/skills/phases/check-quality/SKILL.md +1 -1
- package/skills/phases/go-implementation/SKILL.md +1 -1
package/dist/index.js
CHANGED
|
@@ -633,11 +633,12 @@ function comandoOnboarding(args) {
|
|
|
633
633
|
if (sub === 'reset' && (args.posicionais.length > 3 || 'conteudo' in args.opcoes))
|
|
634
634
|
invalido();
|
|
635
635
|
if (sub === 'sync' && 'por' in args.opcoes)
|
|
636
|
-
throw new Error(
|
|
636
|
+
throw new Error((0, locale_1.msg)().onboarding.syncPor);
|
|
637
637
|
const carregado = (0, manifest_1.exigirManifesto)(), raiz = carregado.raiz, por = texto(args.opcoes.por) ?? 'owner';
|
|
638
638
|
if (sub === 'sync') {
|
|
639
|
-
const r = (0, memoria_1.sincronizarOnboarding)(carregado);
|
|
640
|
-
console.log(args.opcoes.json === true ? JSON.stringify(r, null, 2)
|
|
639
|
+
const r = (0, locale_1.comLocale)('pt-BR', () => (0, memoria_1.sincronizarOnboarding)(carregado));
|
|
640
|
+
console.log(args.opcoes.json === true ? JSON.stringify(r, null, 2)
|
|
641
|
+
: (0, locale_1.msg)().onboarding.syncResultado(r.regime, r.motivo, r.respondidas, r.gravadas, r.duplicadas, r.falhas));
|
|
641
642
|
return 0;
|
|
642
643
|
}
|
|
643
644
|
let estado;
|
|
@@ -3042,7 +3043,7 @@ function comandoMaster(args) {
|
|
|
3042
3043
|
return 0;
|
|
3043
3044
|
}
|
|
3044
3045
|
if (sub !== 'enviar')
|
|
3045
|
-
throw new Error(
|
|
3046
|
+
throw new Error((0, locale_1.msg)().cli.masterDigestUso);
|
|
3046
3047
|
const r = (0, master_digest_1.enviarDigest)({ raiz: carregado.raiz });
|
|
3047
3048
|
console.log(JSON.stringify(r, null, 2));
|
|
3048
3049
|
return r.code;
|
|
@@ -3062,14 +3063,14 @@ function comandoMaster(args) {
|
|
|
3062
3063
|
const partes = (texto(args.opcoes.resposta) ?? '').trim().split(/\s+/);
|
|
3063
3064
|
const classe = (0, master_2.parseClasse)(partes[3]);
|
|
3064
3065
|
if (partes.length !== 4 || partes[0] !== 'ratificar' || !classe)
|
|
3065
|
-
throw new Error(
|
|
3066
|
+
throw new Error((0, locale_1.msg)().cli.masterRatificarUso);
|
|
3066
3067
|
selecao = [{ thread: partes[1], assinatura: partes[2], classe }];
|
|
3067
3068
|
}
|
|
3068
3069
|
else {
|
|
3069
3070
|
selecao = (texto(args.opcoes.aceitar) ?? '').split(',').map(v => {
|
|
3070
3071
|
const partes = v.trim().split(':');
|
|
3071
3072
|
if (partes.length !== 2 || !/^[a-f0-9]{64}$/.test(partes[1]))
|
|
3072
|
-
throw new Error(
|
|
3073
|
+
throw new Error((0, locale_1.msg)().cli.masterSelecaoUso);
|
|
3073
3074
|
return { thread: partes[0], assinatura: partes[1] };
|
|
3074
3075
|
});
|
|
3075
3076
|
}
|
|
@@ -3411,7 +3412,9 @@ function comandoDocs(args) {
|
|
|
3411
3412
|
if (sub === 'verificar') {
|
|
3412
3413
|
// RM-037 (fatia 3, GO-FIX 2): o CI passa --pr no pull_request; no push da main as duas regras novas reprovam.
|
|
3413
3414
|
// RM-061 (F3b, G4): verifica no escopo pt-BR, como o `--json` leva os achados; o texto os remonta no locale do comando.
|
|
3414
|
-
const
|
|
3415
|
+
const threadDaWorktree = (0, docs_1.escopoPadraoDoSync)(raiz).thread;
|
|
3416
|
+
const baseCarimbada = threadDaWorktree ? (0, thread_1.lerThread)(raiz, threadDaWorktree).base?.commit : undefined;
|
|
3417
|
+
const { docs, achados } = (0, locale_1.comLocale)('pt-BR', () => (0, docs_1.verificarDocs)(raiz, { baseBranch, baseCarimbada, ajudaDoCli: AJUDA, pr: args.opcoes.pr === true }));
|
|
3415
3418
|
if (args.opcoes.json === true) {
|
|
3416
3419
|
console.log(JSON.stringify({ paginas: docs.length, erros: achados.filter((a) => a.gravidade === 'erro').length,
|
|
3417
3420
|
achados }, null, 2));
|
|
@@ -4435,8 +4438,10 @@ function executarComando(argvBruto) {
|
|
|
4435
4438
|
const projeto = proprio ? undefined : extraida.projeto;
|
|
4436
4439
|
// Helper fixo do host confiável: o projeto vem da instalação, nunca de toolargs.
|
|
4437
4440
|
if (argv[0] === 'receipt-verifiers') {
|
|
4438
|
-
if (argv.length !== 2 || argv[1] !== '--json' || projeto !== undefined)
|
|
4439
|
-
|
|
4441
|
+
if (argv.length !== 2 || argv[1] !== '--json' || projeto !== undefined) {
|
|
4442
|
+
(0, locale_1.ativarLocale)(localeDaAjuda());
|
|
4443
|
+
throw new locale_1.ErroDoCatalogo((m) => m.cli.receiptVerifiersUso);
|
|
4444
|
+
}
|
|
4440
4445
|
const root = process.env.ORK_HITL_ROOT;
|
|
4441
4446
|
const privateKey = Object.keys(process.env).some(name => /^ORK_HITL_(?:INGRESS_KEY|NATIVE_KEY)/.test(name));
|
|
4442
4447
|
if (root !== undefined || privateKey) {
|
|
@@ -4452,13 +4457,14 @@ function executarComando(argvBruto) {
|
|
|
4452
4457
|
return 0;
|
|
4453
4458
|
}
|
|
4454
4459
|
if (argv[0] === 'maestro') {
|
|
4460
|
+
const textos = (0, locale_1.msg)(localeDaAjuda(projeto)).maestro;
|
|
4455
4461
|
if (argv.length === 2 && argv[1] === '--help')
|
|
4456
|
-
return (0, maestro_cli_1.runMaestroCli)(argv.slice(1));
|
|
4462
|
+
return (0, maestro_cli_1.runMaestroCli)(argv.slice(1), process.cwd(), {}, undefined, textos);
|
|
4457
4463
|
// RM-052: o alvo explicito vira SELECAO entre as raizes permitidas; sem ele, o cwd de sempre. O
|
|
4458
4464
|
// snapshot ja declara o projeto consultado (project.root, notConsulted): sem a linha da fatia 2.
|
|
4459
4465
|
const alvo = fixarAlvoDoProcesso(projeto, false);
|
|
4460
|
-
return alvo ? (0, maestro_cli_1.runMaestroCli)(argv.slice(1), alvo.raiz, { allowedRoots: [alvo.raiz], selected: alvo.raiz })
|
|
4461
|
-
: (0, maestro_cli_1.runMaestroCli)(argv.slice(1));
|
|
4466
|
+
return alvo ? (0, maestro_cli_1.runMaestroCli)(argv.slice(1), alvo.raiz, { allowedRoots: [alvo.raiz], selected: alvo.raiz }, undefined, textos)
|
|
4467
|
+
: (0, maestro_cli_1.runMaestroCli)(argv.slice(1), process.cwd(), {}, undefined, textos);
|
|
4462
4468
|
}
|
|
4463
4469
|
const args = parseArgs(argv);
|
|
4464
4470
|
const comando = args.posicionais[0];
|
|
@@ -4472,14 +4478,21 @@ function executarComando(argvBruto) {
|
|
|
4472
4478
|
console.log((0, locale_1.msg)().ajuda.texto(dadosDaAjuda()));
|
|
4473
4479
|
return 0;
|
|
4474
4480
|
}
|
|
4481
|
+
// F3e (D2): a recusa do projeto-alvo e os usos das rotas cobertas acontecem antes do manifesto efetivo.
|
|
4482
|
+
// Resolva a lingua aqui; `--json` continua fora e um `mcp serve` valido desliga o locale antes de servir.
|
|
4483
|
+
if ((0, locale_1.cobreLocale)(args.posicionais, args.opcoes)) {
|
|
4484
|
+
(0, locale_1.ativarLocale)(localeDaAjuda(projeto));
|
|
4485
|
+
(0, locale_1.ligarRemontagem)(true);
|
|
4486
|
+
}
|
|
4475
4487
|
if (!COMANDOS_SEM_PROJETO.has(comando) && !proprio) {
|
|
4476
4488
|
fixarAlvoDoProcesso(projeto, !SEM_DECLARACAO_DO_PROJETO.has(`${comando} ${args.posicionais[1] ?? ''}`.trim()));
|
|
4477
4489
|
}
|
|
4478
4490
|
else if (projeto !== undefined && comando !== 'projetos') {
|
|
4491
|
+
const mp = (0, locale_1.msg)().projetos;
|
|
4479
4492
|
throw new Error(comando === 'init'
|
|
4480
|
-
?
|
|
4481
|
-
: comando === 'mcp' ?
|
|
4482
|
-
:
|
|
4493
|
+
? mp.initNaoLeProjeto
|
|
4494
|
+
: comando === 'mcp' ? mp.mcpNaoLeProjeto
|
|
4495
|
+
: mp.comandoNaoLeProjeto(comando));
|
|
4483
4496
|
}
|
|
4484
4497
|
const nomesHerdados = (0, runtime_ambiente_1.nomesDeProviderAtivos)();
|
|
4485
4498
|
const ambienteManifesto = (0, manifest_1.carregarManifesto)();
|
|
@@ -4495,10 +4508,6 @@ function executarComando(argvBruto) {
|
|
|
4495
4508
|
// CLI por locale (RM-061, EN1 e EN7): a escolha do onboarding (owner.language) ou o LC_ALL/LC_MESSAGES/LANG
|
|
4496
4509
|
// decidem a lingua do TEXTO dos comandos cobertos (`cobreLocale`); `--json` e contrato, e os recortes ainda
|
|
4497
4510
|
// fora do catalogo (`doctor --modo` e os subcomandos fora da lista) ficam em pt-BR.
|
|
4498
|
-
if ((0, locale_1.cobreLocale)(args.posicionais, args.opcoes)) {
|
|
4499
|
-
(0, locale_1.ativarLocale)((0, locale_1.resolverLocale)(ambienteManifesto?.manifesto.owner?.language).locale);
|
|
4500
|
-
(0, locale_1.ligarRemontagem)(true);
|
|
4501
|
-
}
|
|
4502
4511
|
switch (comando) {
|
|
4503
4512
|
case 'mcp': {
|
|
4504
4513
|
const projeto = texto(args.opcoes.project), host = texto(args.opcoes.host), threadId = texto(args.opcoes.thread);
|
|
@@ -4535,6 +4544,9 @@ function executarComando(argvBruto) {
|
|
|
4535
4544
|
.catch(e => { console.error((0, locale_1.msg)().operacao.restante.mcp.erro(e.message)); process.exitCode = 1; });
|
|
4536
4545
|
return 0;
|
|
4537
4546
|
}
|
|
4547
|
+
// O servidor e contrato com hosts e nao ganha uma moldura inglesa por herdar o locale do erro de uso.
|
|
4548
|
+
(0, locale_1.ativarLocale)(undefined);
|
|
4549
|
+
(0, locale_1.ligarRemontagem)(false);
|
|
4538
4550
|
void Promise.resolve().then(() => __importStar(require('./mcp-server'))).then(({ servirMcp }) => servirMcp({ projeto, host, threadId, dispatchId, nomesProviderHerdados: nomesHerdados, transporteShip: transporteShip, permissoesFilho: permissoesFilho })).catch(e => { console.error(`mcp: ${e.message}`); process.exitCode = 1; });
|
|
4539
4551
|
return 0;
|
|
4540
4552
|
}
|
|
@@ -4543,7 +4555,7 @@ function executarComando(argvBruto) {
|
|
|
4543
4555
|
const bruto = texto(args.opcoes.modo);
|
|
4544
4556
|
if (args.posicionais.length !== 1 || !bruto ||
|
|
4545
4557
|
Object.keys(args.opcoes).some(k => k !== 'modo') || argv.filter(a => a === '--modo' || a.startsWith('--modo=')).length !== 1)
|
|
4546
|
-
throw Error(
|
|
4558
|
+
throw Error((0, locale_1.msg)().doctor.modoUso(modos_1.ORDEM_DOS_MODOS.join('|')));
|
|
4547
4559
|
const r = (0, preflight_1.preflight)((0, manifest_1.diretorioDoProjeto)(), (0, modos_1.exigirModoVivo)(bruto), nomesHerdados);
|
|
4548
4560
|
console.log((0, preflight_1.textoPreflight)(r));
|
|
4549
4561
|
return r.prontoPrimeiroBloco ? 0 : 1;
|
|
@@ -4679,10 +4691,9 @@ function executarComando(argvBruto) {
|
|
|
4679
4691
|
if (!host || !['claude-code', 'codex'].includes(host) || args.posicionais.length !== 3 ||
|
|
4680
4692
|
Object.keys(args.opcoes).some(k => !['dry-run', 'json'].includes(k)) ||
|
|
4681
4693
|
Object.values(args.opcoes).some(v => v !== true))
|
|
4682
|
-
throw Error(
|
|
4694
|
+
throw Error((0, locale_1.msg)().onboarding.experienciaUninstallUso);
|
|
4683
4695
|
const r = (0, hosts_2.desinstalarExperiencia)((0, manifest_1.exigirManifesto)().raiz, host, args.opcoes['dry-run'] === true);
|
|
4684
|
-
console.log(args.opcoes.json ? JSON.stringify(r, null, 2) :
|
|
4685
|
-
`${r.dryRun ? 'Simulação de remoção' : 'Remoção concluída'}: ${r.arquivos.length} arquivo(s). O adaptador permanece instalado. Para manter o pacote desativado, configure owner.experience:false no onboarding.`);
|
|
4696
|
+
console.log(args.opcoes.json ? JSON.stringify(r, null, 2) : (0, locale_1.msg)().onboarding.experienciaUninstall(r.dryRun, r.arquivos.length));
|
|
4686
4697
|
return 0;
|
|
4687
4698
|
}
|
|
4688
4699
|
if ((args.posicionais[1] ?? 'show') !== 'show' || args.posicionais.length > 2 ||
|
|
@@ -4773,7 +4784,7 @@ function executarComando(argvBruto) {
|
|
|
4773
4784
|
case 'recall':
|
|
4774
4785
|
return comandoRecall(args);
|
|
4775
4786
|
case 'brain': {
|
|
4776
|
-
const result = (0, company_brain_cli_1.runBrain)((0, manifest_1.exigirManifesto)(), args.posicionais[1] ?? 'status', args.opcoes, args.posicionais.slice(2));
|
|
4787
|
+
const result = (0, locale_1.comLocale)('pt-BR', () => (0, company_brain_cli_1.runBrain)((0, manifest_1.exigirManifesto)(), args.posicionais[1] ?? 'status', args.opcoes, args.posicionais.slice(2)));
|
|
4777
4788
|
console.log(JSON.stringify(result, null, 2));
|
|
4778
4789
|
return ['ok', 'empty', 'unknown', 'withheld', 'applied', 'rolled-back'].includes(result.state) ? 0 : 1;
|
|
4779
4790
|
}
|
|
@@ -4801,7 +4812,14 @@ function executarComando(argvBruto) {
|
|
|
4801
4812
|
case 'ship':
|
|
4802
4813
|
return comandoShip(args);
|
|
4803
4814
|
case 'activation':
|
|
4804
|
-
|
|
4815
|
+
try {
|
|
4816
|
+
return (0, locale_1.comLocale)('pt-BR', () => (0, write_activation_1.comandoAtivacao)((0, manifest_1.exigirManifesto)(), args));
|
|
4817
|
+
}
|
|
4818
|
+
catch (e) {
|
|
4819
|
+
if (e.message === 'uso: ork activation plan|status|enable|disable')
|
|
4820
|
+
throw new locale_1.ErroDoCatalogo((m) => m.cli.activationUso);
|
|
4821
|
+
throw e;
|
|
4822
|
+
}
|
|
4805
4823
|
case 'lease':
|
|
4806
4824
|
return comandoLease(args);
|
|
4807
4825
|
case 'conducao':
|
|
@@ -38,6 +38,7 @@ exports.descreverVersoes = descreverVersoes;
|
|
|
38
38
|
exports.correcaoDosAnalisadores = correcaoDosAnalisadores;
|
|
39
39
|
exports.checarAnalisadoresDoGrafo = checarAnalisadoresDoGrafo;
|
|
40
40
|
exports.lerPedido = lerPedido;
|
|
41
|
+
exports.linhasDaExtracao = linhasDaExtracao;
|
|
41
42
|
exports.situacaoNaArvore = situacaoNaArvore;
|
|
42
43
|
exports.executarGrafo = executarGrafo;
|
|
43
44
|
/**
|
|
@@ -128,6 +129,7 @@ exports.USO_DO_GRAFO = [
|
|
|
128
129
|
exports.TEXTOS_DO_GRAFO = {
|
|
129
130
|
uso: exports.USO_DO_GRAFO.split('\n'),
|
|
130
131
|
erroUso: (motivo) => `grafo.uso: ${motivo}`,
|
|
132
|
+
erroTipado: (mensagem) => mensagem,
|
|
131
133
|
motivos: {
|
|
132
134
|
semSub: 'falta o subcomando', desconhecido: (sub) => `subcomando desconhecido: ${sub}`,
|
|
133
135
|
repetida: (nome) => `--${nome} repetida`, semValor: (nome) => `--${nome} nao leva valor`,
|
|
@@ -149,6 +151,15 @@ exports.TEXTOS_DO_GRAFO = {
|
|
|
149
151
|
naoConferido: (motivo) => ` incremental nao conferido: ${motivo}`,
|
|
150
152
|
aprovado: 'aprovado',
|
|
151
153
|
semBase: 'sem base',
|
|
154
|
+
extracao: {
|
|
155
|
+
lista: (itens) => itens.length ? ` (${itens.slice(0, 5).join(', ')}${itens.length > 5 ? ` e mais ${itens.length - 5}` : ''})` : '',
|
|
156
|
+
incremental: (base, alterados, novos, removidos) => ` extracao incremental a partir do indice de ${base}: ${alterados} alterado(s), ${novos} novo(s), ${removidos} removido(s)`,
|
|
157
|
+
tsInteiro: (motivo) => `TypeScript inteiro (${motivo ?? ''})`,
|
|
158
|
+
tsParcial: (reextraidos, lista, programa, reaproveitados) => `TypeScript parcial, ${reextraidos} reextraido(s)${lista} num programa de ${programa}, ${reaproveitados} da base`,
|
|
159
|
+
tsBase: (reaproveitados) => `TypeScript todo da base (${reaproveitados})`,
|
|
160
|
+
markdown: (reextraidos, lista, reaproveitados) => ` Markdown: ${reextraidos} reextraido(s)${lista}, ${reaproveitados} da base`,
|
|
161
|
+
completa: (motivo) => ` extracao completa${motivo ? `: ${motivo}` : ''}`,
|
|
162
|
+
},
|
|
152
163
|
},
|
|
153
164
|
status: {
|
|
154
165
|
titulo: (head, arvore) => `grafo: HEAD ${head}, arvore ${arvore}`,
|
|
@@ -282,23 +293,24 @@ const contagem = (o) => Object.entries(o).map(([k, v]) => `${k}=${v}`).join(' ')
|
|
|
282
293
|
/** Ate cinco caminhos e quantos ficaram de fora. */
|
|
283
294
|
const alguns = (lista) => (lista.length ? ` (${lista.slice(0, 5).join(', ')}${lista.length > 5 ? ` e mais ${lista.length - 5}` : ''})` : '');
|
|
284
295
|
/** KG4: como a extracao rodou, a base e o que veio dela, ou por que foi completa. */
|
|
285
|
-
function linhasDaExtracao(r) {
|
|
296
|
+
function linhasDaExtracao(r, mi) {
|
|
286
297
|
if (r.modo === null)
|
|
287
298
|
return [];
|
|
288
299
|
const a = r.reaproveitamento;
|
|
300
|
+
const me = mi.extracao;
|
|
289
301
|
if (r.modo === 'incremental' && r.base && a) {
|
|
290
302
|
// Desestruturado: o lint de horario le o campo de nome curto do TypeScript como instante.
|
|
291
303
|
const { ts: doTs, md: doMd, mudanca } = a;
|
|
292
|
-
const ts = doTs.modo === 'inteiro' ?
|
|
293
|
-
: doTs.modo === 'parcial' ?
|
|
294
|
-
:
|
|
304
|
+
const ts = doTs.modo === 'inteiro' ? me.tsInteiro(doTs.motivo)
|
|
305
|
+
: doTs.modo === 'parcial' ? me.tsParcial(doTs.reextraidos.length, me.lista(doTs.reextraidos), doTs.programa, doTs.reaproveitados)
|
|
306
|
+
: me.tsBase(doTs.reaproveitados);
|
|
295
307
|
return [
|
|
296
|
-
|
|
308
|
+
me.incremental(r.base.revision.slice(0, 12), mudanca.alterados, mudanca.novos, mudanca.removidos),
|
|
297
309
|
` ${ts}`,
|
|
298
|
-
|
|
310
|
+
me.markdown(doMd.reextraidos.length, me.lista(doMd.reextraidos), doMd.reaproveitados),
|
|
299
311
|
];
|
|
300
312
|
}
|
|
301
|
-
return [
|
|
313
|
+
return [me.completa(r.motivo_completo)];
|
|
302
314
|
}
|
|
303
315
|
function indexar(ctx, p) {
|
|
304
316
|
const r = (0, intelligence_graph_index_1.construirIndice)(ctx, { verificar: p.bandeiras.has('verificar'), forcar: p.bandeiras.has('forcar') });
|
|
@@ -314,7 +326,7 @@ function indexar(ctx, p) {
|
|
|
314
326
|
mi.campo(mi.campos.conferencia, mi.conferencia(m.conferencia.fontes, m.conferencia.evidencias)),
|
|
315
327
|
mi.campo(mi.campos.nos, contagem(m.contagens.nos)), mi.campo(mi.campos.arestas, contagem(m.contagens.arestas)),
|
|
316
328
|
mi.campo(mi.campos.lugar, `${r.dir} (${mb(m.graph_bytes + m.report_bytes + m.units_bytes)})`),
|
|
317
|
-
...linhasDaExtracao(r),
|
|
329
|
+
...linhasDaExtracao(r, mi),
|
|
318
330
|
];
|
|
319
331
|
if (r.motivo)
|
|
320
332
|
linhas.push(mi.campo(mi.campos.motivo, r.motivo));
|
|
@@ -757,6 +769,12 @@ const erroEmJson = (ctx, e, compacto, schema = intelligence_graph_query_1.CONSUL
|
|
|
757
769
|
ctx.escrever(compacto ? JSON.stringify(r) : JSON.stringify(r, null, 2));
|
|
758
770
|
return 1;
|
|
759
771
|
};
|
|
772
|
+
/** Traduz a mensagem sem apagar a classe, os candidatos ou o stack do erro tipado. */
|
|
773
|
+
const erroHumano = (ctx, e) => {
|
|
774
|
+
const erro = e instanceof Error ? e : new Error(String(e));
|
|
775
|
+
erro.message = textosDe(ctx).erroTipado(erro.message);
|
|
776
|
+
return erro;
|
|
777
|
+
};
|
|
760
778
|
/** `ork grafo <subcomando> ...`: devolve o codigo de saida; sem `--json`, o erro de uso ou tipado e lancado. */
|
|
761
779
|
function executarGrafo(argv, ctx) {
|
|
762
780
|
const schema = argv[0] === 'contexto' ? intelligence_graph_contexto_1.CONTEXTO_SCHEMA : intelligence_graph_query_1.CONSULTA_SCHEMA;
|
|
@@ -786,7 +804,7 @@ function executarGrafo(argv, ctx) {
|
|
|
786
804
|
}
|
|
787
805
|
catch (e) {
|
|
788
806
|
if (!p.bandeiras.has('json'))
|
|
789
|
-
throw e;
|
|
807
|
+
throw erroHumano(ctx, e);
|
|
790
808
|
return erroEmJson(ctx, e, compacto, schema);
|
|
791
809
|
}
|
|
792
810
|
}
|
package/dist/locale-claims.js
CHANGED
|
@@ -49,14 +49,21 @@ exports.CLAIMS_PT_BR = {
|
|
|
49
49
|
avisoNegativa: 'AVISO: alegacao negativa sem comando de verificacao reprova em `ork verify`.',
|
|
50
50
|
/** A linha do lint no `claims add` (no `ci prepare` o lint sai em pt-BR, como antes). */
|
|
51
51
|
avisoDoLint: (linha, suiteInteira) => `AVISO: ${linha}${suiteInteira ? '. O `ci prepare` recusa esta claim.' : ''}`,
|
|
52
|
+
lintRecusado: (linhas) => `claim recusada antes de ser registrada:\n ${linhas}`,
|
|
52
53
|
linhaDoLint: (claim, nome, trecho, correcao) => `${claim} ${nome} (${trecho}); ${correcao}`,
|
|
53
54
|
nomesDoLint: { 'suite-inteira': 'roda a suite inteira', 'sha-intermediario': 'fixa um SHA intermediario',
|
|
54
|
-
'contagem-de-commits': 'compara contagem de commits'
|
|
55
|
+
'contagem-de-commits': 'compara contagem de commits', 'binario-rg': 'usa o binario rg ausente no runner',
|
|
56
|
+
'ork-fora-do-path': 'chama ork fora do PATH do runner', 'estado-local': 'le estado local fora do checkout',
|
|
57
|
+
'aspas-escapadas': 'leva aspas escapadas literalmente' },
|
|
55
58
|
correcoesDoLint: {
|
|
56
59
|
'suite-inteira': 'rode só o teste da claim (`node --test` no arquivo do teste, ou o comando do projeto que roda um arquivo) ' +
|
|
57
60
|
'ou um script hermético do projeto',
|
|
58
61
|
'sha-intermediario': 'ancore na base (`git diff "$(git merge-base origin/main HEAD)" HEAD`) ou prove ancestralidade com `git merge-base --is-ancestor <sha> HEAD`',
|
|
59
62
|
'contagem-de-commits': 'use `git merge-base --is-ancestor <commit> HEAD`: contagem de commits quebra com rebase e merge',
|
|
63
|
+
'binario-rg': 'use `grep` (ou Node) com a mesma prova; o runner nao instala `rg`',
|
|
64
|
+
'ork-fora-do-path': 'use `node core/dist/index.js ...`; o runner nao instala `ork` no PATH',
|
|
65
|
+
'estado-local': 'prove somente arquivos versionados do checkout; `.orkastery/` e estado local e nao vai ao CI',
|
|
66
|
+
'aspas-escapadas': 'use aspas reais do shell; nao serialize `\\x22` ou `\\x27` dentro do comando',
|
|
60
67
|
},
|
|
61
68
|
// ork claims conferir
|
|
62
69
|
usoConferir: 'uso: ork claims conferir <thread-id> --claims C1,C2 | --tarefa T1 [--prazo S] [--json]',
|
|
@@ -138,14 +145,21 @@ exports.CLAIMS_EN = {
|
|
|
138
145
|
estado: (estado) => ESTADOS_EN[estado] ?? estado,
|
|
139
146
|
avisoNegativa: 'WARNING: a negative statement without a verification command fails in `ork verify`.',
|
|
140
147
|
avisoDoLint: (linha, suiteInteira) => `WARNING: ${linha}${suiteInteira ? '. `ci prepare` refuses this claim.' : ''}`,
|
|
148
|
+
lintRecusado: (linhas) => `claim refused before it was recorded:\n ${linhas}`,
|
|
141
149
|
linhaDoLint: (claim, nome, trecho, correcao) => `${claim} ${nome} (${trecho}); ${correcao}`,
|
|
142
150
|
nomesDoLint: { 'suite-inteira': 'runs the whole suite', 'sha-intermediario': 'pins an intermediate SHA',
|
|
143
|
-
'contagem-de-commits': 'compares a commit count'
|
|
151
|
+
'contagem-de-commits': 'compares a commit count', 'binario-rg': 'uses the rg binary missing from the runner',
|
|
152
|
+
'ork-fora-do-path': 'calls ork outside the runner PATH', 'estado-local': 'reads local state outside the checkout',
|
|
153
|
+
'aspas-escapadas': 'passes escaped quotes literally' },
|
|
144
154
|
correcoesDoLint: {
|
|
145
155
|
'suite-inteira': 'run only the claim test (`node --test` on the test file, or the project command that runs one file) ' +
|
|
146
156
|
'or a hermetic project script',
|
|
147
157
|
'sha-intermediario': 'anchor on the base (`git diff "$(git merge-base origin/main HEAD)" HEAD`) or prove ancestry with `git merge-base --is-ancestor <sha> HEAD`',
|
|
148
158
|
'contagem-de-commits': 'use `git merge-base --is-ancestor <commit> HEAD`: a commit count breaks with rebase and merge',
|
|
159
|
+
'binario-rg': 'use `grep` (or Node) for the same proof; the runner does not install `rg`',
|
|
160
|
+
'ork-fora-do-path': 'use `node core/dist/index.js ...`; the runner does not install `ork` in PATH',
|
|
161
|
+
'estado-local': 'prove only versioned checkout files; `.orkastery/` is local state and is not sent to CI',
|
|
162
|
+
'aspas-escapadas': 'use real shell quotes; do not serialize `\\x22` or `\\x27` inside the command',
|
|
149
163
|
},
|
|
150
164
|
usoConferir: 'usage: ork claims conferir <thread-id> --claims C1,C2 | --tarefa T1 [--prazo S] [--json]',
|
|
151
165
|
conferencia: (thread) => `Spot check of thread ${thread} (no receipt: \`ork verify\` is still what verifies)`,
|
package/dist/locale-grafo.js
CHANGED
|
@@ -1,7 +1,42 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.GRAFO_EN = exports.GRAFO_PT_BR = void 0;
|
|
4
|
-
/** RM-061
|
|
4
|
+
/** RM-061 F3e: traduz somente o detalhe humano; o código tipado continua canônico. */
|
|
5
|
+
const erroDoGrafoEmIngles = (mensagem) => {
|
|
6
|
+
const trocas = [
|
|
7
|
+
[/quem roda o CLI nao le a raiz do repositorio/g, 'the CLI process cannot read the repository root'],
|
|
8
|
+
[/nao e pasta real/g, 'is not a real directory'], [/de outro dono/g, 'has a different owner'],
|
|
9
|
+
[/ com modo /g, ' with mode '], [/ ausente/g, ' missing'], [/\(erro\)/g, '(error)'],
|
|
10
|
+
[/nao bate com o tamanho/g, 'does not match the size'], [/nao bate com o digest/g, 'does not match the digest'],
|
|
11
|
+
[/fora do manifesto/g, 'outside the manifest'], [/sem unidades/g, 'without units'],
|
|
12
|
+
[/o ork grafo limpar o remove/g, 'ork grafo limpar removes it'], [/nenhum indice guardado/g, 'no stored index'],
|
|
13
|
+
[/sem-commit/g, 'no-commit'], [/revisao-mudou/g, 'revision-changed'],
|
|
14
|
+
[/rastreado fora da leitura/g, 'tracked outside the read'], [/ e mais (\d+)/g, ' and $1 more'],
|
|
15
|
+
[/o incremental a partir de ([^ ]+) falhou e a extracao foi completa/g, 'the incremental build from $1 failed and extraction was full'],
|
|
16
|
+
[/o incremental da base ([^ ]+) falhou/g, 'the incremental build from base $1 failed'],
|
|
17
|
+
[/o indice guardado difere da extracao nova/g, 'the stored index differs from the new extraction'],
|
|
18
|
+
[/sem indice do HEAD ([^;]+); rode/g, 'no index for HEAD $1; run'],
|
|
19
|
+
[/ha indice do HEAD ([^ ]+) de outro extrator/g, 'HEAD $1 has an index from another extractor'],
|
|
20
|
+
[/perfil diferente/g, 'different profile'], [/pacotes dos analisadores/g, 'analyzer packages'],
|
|
21
|
+
[/codigo do extrator/g, 'extractor code'], [/ no indice/g, ' in the index'], [/ aqui/g, ' here'],
|
|
22
|
+
[/o HEAD ([^ ]+) nao tem indice; o guardado e de outra revisao/g, 'HEAD $1 has no index; the stored index is from another revision'],
|
|
23
|
+
[/; rode /g, '; run '],
|
|
24
|
+
[/com a mesma instalacao do ork e o mesmo Node de quem consulta/g, 'with the same Ork installation and Node used by the caller'],
|
|
25
|
+
[/\(o servidor MCP consulta com a dele\)/g, '(the MCP server uses its own installation)'],
|
|
26
|
+
[/ tem (\d+) candidatos/g, ' has $1 candidates'], [/no vazio/g, 'empty node'],
|
|
27
|
+
[/ precisa ser inteiro de /g, ' must be an integer from '], [/tipo de aresta desconhecido/g, 'unknown edge type'],
|
|
28
|
+
[/nenhum tipo de aresta/g, 'no edge type'], [/sentido desconhecido/g, 'unknown direction'],
|
|
29
|
+
[/chamadores pede um simbolo; para arquivo, use importadores ou vizinhos/g, 'chamadores expects a symbol; for a file, use importadores or vizinhos'],
|
|
30
|
+
[/importadores pede um arquivo ou um simbolo/g, 'importadores expects a file or symbol'],
|
|
31
|
+
[/teto deve ser inteiro de/g, 'ceiling must be an integer from'], [/borda sem leitor da thread/g, 'edge has no thread reader'],
|
|
32
|
+
[/HEAD mudou durante a leitura; repita a consulta/g, 'HEAD changed during the read; repeat the query'],
|
|
33
|
+
[/ tem (\d+) bytes, acima do teto de (\d+)/g, ' has $1 bytes, above the $2-byte ceiling'],
|
|
34
|
+
[/o caminho nao se corta/g, 'the path cannot be truncated'], [/use --teto-bytes maior/g, 'use a larger --teto-bytes'],
|
|
35
|
+
[/o caminho de (\d+) passo\(s\)/g, 'the $1-step path'], [/a resposta com (\d+) aresta\(s\)/g, 'the response with $1 edge(s)'],
|
|
36
|
+
];
|
|
37
|
+
return trocas.reduce((texto, [padrao, troca]) => texto.replace(padrao, troca), mensagem);
|
|
38
|
+
};
|
|
39
|
+
/** RM-061 F3d/F3e: moldura humana do grafo; schemas, códigos e JSON continuam em pt-BR. */
|
|
5
40
|
exports.GRAFO_PT_BR = {
|
|
6
41
|
uso: [
|
|
7
42
|
'uso: ork grafo indexar [--verificar] [--forcar] [--json]',
|
|
@@ -15,6 +50,7 @@ exports.GRAFO_PT_BR = {
|
|
|
15
50
|
' ork grafo limpar [--tudo] [--json]',
|
|
16
51
|
],
|
|
17
52
|
erroUso: (motivo) => `grafo.uso: ${motivo}`,
|
|
53
|
+
erroTipado: (mensagem) => mensagem,
|
|
18
54
|
motivos: {
|
|
19
55
|
semSub: 'falta o subcomando', desconhecido: (sub) => `subcomando desconhecido: ${sub}`,
|
|
20
56
|
repetida: (nome) => `--${nome} repetida`, semValor: (nome) => `--${nome} nao leva valor`,
|
|
@@ -34,6 +70,15 @@ exports.GRAFO_PT_BR = {
|
|
|
34
70
|
determinismo: (ordem, digest, relatorio, unidades, igual) => ` determinismo ${ordem}: digest ${digest}, relatorio ${relatorio}, unidades ${unidades}, ${igual ? 'igual' : 'DIFERENTE'}`,
|
|
35
71
|
incremental: (base, igual) => ` incremental a partir do indice de ${base}: ${igual ? 'igual a completa nos quatro arquivos' : 'DIFERENTE'}`,
|
|
36
72
|
naoConferido: (motivo) => ` incremental nao conferido: ${motivo}`, aprovado: 'aprovado', semBase: 'sem base',
|
|
73
|
+
extracao: {
|
|
74
|
+
lista: (itens) => itens.length ? ` (${itens.slice(0, 5).join(', ')}${itens.length > 5 ? ` e mais ${itens.length - 5}` : ''})` : '',
|
|
75
|
+
incremental: (base, alterados, novos, removidos) => ` extracao incremental a partir do indice de ${base}: ${alterados} alterado(s), ${novos} novo(s), ${removidos} removido(s)`,
|
|
76
|
+
tsInteiro: (motivo) => `TypeScript inteiro (${motivo ?? ''})`,
|
|
77
|
+
tsParcial: (reextraidos, lista, programa, reaproveitados) => `TypeScript parcial, ${reextraidos} reextraido(s)${lista} num programa de ${programa}, ${reaproveitados} da base`,
|
|
78
|
+
tsBase: (reaproveitados) => `TypeScript todo da base (${reaproveitados})`,
|
|
79
|
+
markdown: (reextraidos, lista, reaproveitados) => ` Markdown: ${reextraidos} reextraido(s)${lista}, ${reaproveitados} da base`,
|
|
80
|
+
completa: (motivo) => ` extracao completa${motivo ? `: ${motivo}` : ''}`,
|
|
81
|
+
},
|
|
37
82
|
},
|
|
38
83
|
status: {
|
|
39
84
|
titulo: (head, arvore) => `grafo: HEAD ${head}, arvore ${arvore}`,
|
|
@@ -81,6 +126,7 @@ exports.GRAFO_EN = {
|
|
|
81
126
|
' ork grafo amostra [--por-estrato N] | ork grafo amostra --conferir FILE [--json]', ' ork grafo limpar [--tudo] [--json]',
|
|
82
127
|
],
|
|
83
128
|
erroUso: (reason) => `grafo.uso: ${reason}`,
|
|
129
|
+
erroTipado: erroDoGrafoEmIngles,
|
|
84
130
|
motivos: {
|
|
85
131
|
semSub: 'missing subcommand', desconhecido: (sub) => `unknown subcommand: ${sub}`, repetida: (name) => `--${name} repeated`,
|
|
86
132
|
semValor: (name) => `--${name} takes no value`, exigeValor: (name) => `--${name} requires a value`, opcao: (sub, value) => `unknown option for ${sub}: ${value}`,
|
|
@@ -96,6 +142,15 @@ exports.GRAFO_EN = {
|
|
|
96
142
|
determinismo: (order, digest, report, units, equal) => ` determinism ${order}: digest ${digest}, report ${report}, units ${units}, ${equal ? 'equal' : 'DIFFERENT'}`,
|
|
97
143
|
incremental: (base, equal) => ` incremental from index ${base}: ${equal ? 'equal to the full build in all four files' : 'DIFFERENT'}`,
|
|
98
144
|
naoConferido: (reason) => ` incremental not checked: ${reason}`, aprovado: 'approved', semBase: 'no base',
|
|
145
|
+
extracao: {
|
|
146
|
+
lista: (items) => items.length ? ` (${items.slice(0, 5).join(', ')}${items.length > 5 ? ` and ${items.length - 5} more` : ''})` : '',
|
|
147
|
+
incremental: (base, changed, added, removed) => ` extraction incremental from index ${base}: ${changed} changed, ${added} added, ${removed} removed`,
|
|
148
|
+
tsInteiro: (reason) => `full TypeScript program (${erroDoGrafoEmIngles(reason ?? '')})`,
|
|
149
|
+
tsParcial: (reextracted, list, program, reused) => `partial TypeScript program, ${reextracted} re-extracted${list} in a program of ${program}, ${reused} reused from the base`,
|
|
150
|
+
tsBase: (reused) => `TypeScript entirely from the base (${reused})`,
|
|
151
|
+
markdown: (reextracted, list, reused) => ` Markdown: ${reextracted} re-extracted${list}, ${reused} reused from the base`,
|
|
152
|
+
completa: (reason) => ` extraction full${reason ? `: ${erroDoGrafoEmIngles(reason)}` : ''}`,
|
|
153
|
+
},
|
|
99
154
|
},
|
|
100
155
|
status: {
|
|
101
156
|
titulo: (head, tree) => `graph: HEAD ${head}, tree ${tree}`, indice: (key, state) => ` HEAD index ${key} ${state}`,
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MAESTRO_EN = exports.MAESTRO_PT_BR = void 0;
|
|
4
|
+
/** RM-061 F3e: moldura humana do panorama Maestro; o snapshot JSON continua canônico. */
|
|
5
|
+
exports.MAESTRO_PT_BR = {
|
|
6
|
+
help: 'ork maestro [--json] [--thread ID] [--section NOME --offset N]\nConsulta sem criar ou despachar trabalho. Na conversa, diga: orkastery maestro.',
|
|
7
|
+
origem: {
|
|
8
|
+
installation: 'fixado na instalação', cwd: 'pelo diretório atual', worktree: 'pela worktree da thread',
|
|
9
|
+
selection: 'pedido explicitamente (--projeto ou ORK_PROJETO)',
|
|
10
|
+
},
|
|
11
|
+
titulo: (projeto) => `${projeto} · panorama Maestro`,
|
|
12
|
+
consulta: (data) => `• Consulta: ${data}`,
|
|
13
|
+
projeto: (nome, raiz, remoto, origem) => `• Projeto consultado: ${nome}${raiz ? ` · ${raiz}` : ''}${remoto === undefined ? '' : ` · ${remoto}`} · ${origem}`,
|
|
14
|
+
semRemoto: 'sem remoto',
|
|
15
|
+
naoLido: (itens) => `• Não lido: ${itens}`,
|
|
16
|
+
secao: (nome, estado, retornados, total, mais) => `• ${nome}: ${estado} · ${retornados}/${total ?? '?'}${mais ? ' · mais itens disponíveis' : ''}`,
|
|
17
|
+
thread: (titulo, fase, estado) => ` ${titulo}: ${fase} · ${estado}`,
|
|
18
|
+
recomendacao: (conflitos, lacunas) => `• Recomendo: ${conflitos ? 'reler as fontes em conflito'
|
|
19
|
+
: lacunas ? 'conferir as lacunas antes de agir' : 'escolher uma thread para ver o detalhe'}.`,
|
|
20
|
+
final: 'Use ork maestro --json para cobertura e ações; --thread ID consulta o detalhe nativo.',
|
|
21
|
+
};
|
|
22
|
+
exports.MAESTRO_EN = {
|
|
23
|
+
help: 'ork maestro [--json] [--thread ID] [--section NAME --offset N]\nRead without creating or dispatching work. In the conversation, say: orkastery maestro.',
|
|
24
|
+
origem: {
|
|
25
|
+
installation: 'fixed by the installation', cwd: 'from the current directory', worktree: 'from the thread worktree',
|
|
26
|
+
selection: 'explicitly selected (--projeto or ORK_PROJETO)',
|
|
27
|
+
},
|
|
28
|
+
titulo: (project) => `${project} · Maestro overview`,
|
|
29
|
+
consulta: (date) => `• Read at: ${date.replace('(horário de Brasília)', '(Brasilia time)')}`,
|
|
30
|
+
projeto: (name, root, remote, origin) => `• Project read: ${name}${root ? ` · ${root}` : ''}${remote === undefined ? '' : ` · ${remote}`} · ${origin}`,
|
|
31
|
+
semRemoto: 'no remote',
|
|
32
|
+
naoLido: (items) => `• Not read: ${items}`,
|
|
33
|
+
secao: (name, state, returned, total, more) => `• ${name}: ${state} · ${returned}/${total ?? '?'}${more ? ' · more items available' : ''}`,
|
|
34
|
+
thread: (title, phase, state) => ` ${title}: ${phase} · ${state}`,
|
|
35
|
+
recomendacao: (conflicts, gaps) => `• Recommendation: ${conflicts ? 'reread the conflicting sources'
|
|
36
|
+
: gaps ? 'check the gaps before acting' : 'choose a thread to read its details'}.`,
|
|
37
|
+
final: 'Use ork maestro --json for coverage and actions; --thread ID reads the native details.',
|
|
38
|
+
};
|
package/dist/locale-network.js
CHANGED
|
@@ -111,12 +111,13 @@ exports.NETWORK_PT_BR = {
|
|
|
111
111
|
nomeEmUso: (maquina, quem, dica) => `rede.nome-em-uso: outra instalacao ja publica como "${maquina}"${quem}${dica}`,
|
|
112
112
|
quemHostname: (hostname, batida) => ` (hostname ${hostname}, batida ${batida})`,
|
|
113
113
|
quemIlegivel: ' (num retrato que esta versao nao le)',
|
|
114
|
-
|
|
115
|
-
'ork network entrar --forcar; se for outra maquina ou instalacao
|
|
116
|
-
dicaOutroNome: '; escolha outro nome com ork network entrar --maquina NOME, ou tome este com --forcar',
|
|
114
|
+
dicaNomeEmUso: '; se for esta maquina com ~/.orkastery apagada ou copiada, retome o nome com ' +
|
|
115
|
+
'ork network entrar --forcar; se for outra maquina ou instalacao, escolha outro nome com --maquina NOME',
|
|
117
116
|
concorrencia: (n) => `rede.concorrencia: ${n} pushes recusados seguidos; tente de novo em instantes`,
|
|
118
117
|
foraDaRede: 'rede.fora: esta maquina nao esta na rede; ork network entrar',
|
|
119
118
|
nomeInvalido: (maquina) => `rede.maquina: nome de maquina invalido ("${maquina}"); use ork network entrar --maquina NOME (letras, numeros, ponto, _ ou -)`,
|
|
119
|
+
nomeGenericoAusente: 'rede.maquina-generica: escolha um nome generico com ork network entrar --maquina maquina-a; ' +
|
|
120
|
+
'o mapa fica somente em ~/.orkastery/maquina.json, fora do git',
|
|
120
121
|
ocupadoAoEntrar: (trava) => `rede.ocupado: outra publicacao desta maquina esta em andamento (${trava}); rode ork network entrar de novo em instantes`,
|
|
121
122
|
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
123
|
ocupadoAoSair: (trava) => `rede.ocupado: saiu da rede aqui, mas outra publicacao desta maquina segura a casa (${trava}); rode ork network sair de novo`,
|
|
@@ -294,12 +295,13 @@ exports.NETWORK_EN = {
|
|
|
294
295
|
nomeEmUso: (maquina, quem, dica) => `rede.nome-em-uso: another installation already publishes as "${maquina}"${quem}${dica}`,
|
|
295
296
|
quemHostname: (hostname, batida) => ` (hostname ${hostname}, heartbeat ${batida})`,
|
|
296
297
|
quemIlegivel: ' (in a snapshot this version does not read)',
|
|
297
|
-
|
|
298
|
-
'`ork network entrar --forcar`; if it is another machine or installation
|
|
299
|
-
dicaOutroNome: '; pick another name with `ork network entrar --maquina NAME`, or take this one with `--forcar`',
|
|
298
|
+
dicaNomeEmUso: '; if it is this machine with ~/.orkastery deleted or copied, take the name back with ' +
|
|
299
|
+
'`ork network entrar --forcar`; if it is another machine or installation, pick another name with `--maquina NAME`',
|
|
300
300
|
concorrencia: (n) => `rede.concorrencia: ${n} pushes refused in a row; try again in a moment`,
|
|
301
301
|
foraDaRede: 'rede.fora: this machine is not in the network; `ork network entrar`',
|
|
302
302
|
nomeInvalido: (maquina) => `rede.maquina: invalid machine name ("${maquina}"); use \`ork network entrar --maquina NAME\` (letters, digits, dot, _ or -)`,
|
|
303
|
+
nomeGenericoAusente: 'rede.maquina-generica: choose a generic name with `ork network entrar --maquina maquina-a`; ' +
|
|
304
|
+
'the mapping stays only in ~/.orkastery/maquina.json, outside git',
|
|
303
305
|
ocupadoAoEntrar: (trava) => `rede.ocupado: another publication from this machine is in progress (${trava}); run \`ork network entrar\` again in a moment`,
|
|
304
306
|
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
307
|
ocupadoAoSair: (trava) => `rede.ocupado: left the network here, but another publication from this machine holds the home (${trava}); run \`ork network sair\` again`,
|
|
@@ -43,6 +43,13 @@ exports.ONBOARDING_PT_BR = {
|
|
|
43
43
|
/** Aviso de preferencia invalida que o manifesto gravou ao carregar (pt-BR): traduzido so na impressao (D14). */
|
|
44
44
|
avisoDaPreferencia: (aviso) => aviso,
|
|
45
45
|
experienciaAviso: (aviso) => `Aviso: ${aviso}; o adapter install pula o pacote até ork onboarding set maestro corrigir.`,
|
|
46
|
+
syncPor: 'onboarding.input.invalid: sync não aceita --por; informe autoria em set ou reset.',
|
|
47
|
+
syncResultado: (regime, motivo, respondidas, gravadas, duplicadas, falhas) => `${regime}${motivo ? ` (${motivo})` : ''}: ${regime === 'orkmind' && falhas === 0
|
|
48
|
+
? `${gravadas} nova(s), ${duplicadas} já existente(s); ${respondidas} etapa(s) publicada(s).`
|
|
49
|
+
: 'Entrevista preservada em arquivos; publicação semântica não concluída. Consulte ork memory status.'}`,
|
|
50
|
+
experienciaUninstallUso: 'uso: ork experiencia uninstall claude-code|codex [--dry-run] [--json]',
|
|
51
|
+
experienciaUninstall: (dryRun, arquivos) => `${dryRun ? 'Simulação de remoção' : 'Remoção concluída'}: ${arquivos} arquivo(s). O adaptador permanece instalado. ` +
|
|
52
|
+
'Para manter o pacote desativado, configure owner.experience:false no onboarding.',
|
|
46
53
|
};
|
|
47
54
|
/** Os avisos de `validarPreferencias` (`core/src/experiencia.ts`), pela frase exata que o manifesto grava. */
|
|
48
55
|
const AVISOS_DA_PREFERENCIA_EN = {
|
|
@@ -89,4 +96,11 @@ exports.ONBOARDING_EN = {
|
|
|
89
96
|
return traduzido === undefined ? aviso : traduzido + (texto === aviso ? '' : '; the default is used for now');
|
|
90
97
|
},
|
|
91
98
|
experienciaAviso: (aviso) => `Warning: ${aviso}; \`ork adapter install\` skips the package until \`ork onboarding set maestro\` fixes it.`,
|
|
99
|
+
syncPor: 'onboarding.input.invalid: sync does not accept --por; record authorship with set or reset.',
|
|
100
|
+
syncResultado: (regime, motivo, respondidas, gravadas, duplicadas, falhas) => `${regime}${motivo ? ` (${motivo})` : ''}: ${regime === 'orkmind' && falhas === 0
|
|
101
|
+
? `${gravadas} new, ${duplicadas} already present; ${respondidas} step(s) published.`
|
|
102
|
+
: 'Interview preserved in files; semantic publication did not finish. See ork memory status.'}`,
|
|
103
|
+
experienciaUninstallUso: 'usage: ork experiencia uninstall claude-code|codex [--dry-run] [--json]',
|
|
104
|
+
experienciaUninstall: (dryRun, files) => `${dryRun ? 'Removal dry run' : 'Removal complete'}: ${files} file(s). The adapter remains installed. ` +
|
|
105
|
+
'To keep the package disabled, set owner.experience:false in onboarding.',
|
|
92
106
|
};
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PREFLIGHT_EN = exports.PREFLIGHT_PT_BR = void 0;
|
|
4
|
+
/** RM-061 F3e: apresentação humana de `ork doctor --modo`. */
|
|
5
|
+
exports.PREFLIGHT_PT_BR = {
|
|
6
|
+
nomes: {
|
|
7
|
+
node: 'node', git: 'git', repositorio: 'repositorio', manifesto: 'manifesto', modo: 'modo', abbrev: 'abbrev',
|
|
8
|
+
trio: 'trio', runtime: 'runtime', contas: 'contas', sandbox: 'sandbox de despacho', provider: 'provider', umask: 'umask',
|
|
9
|
+
'permissoes do estado': 'permissoes do estado', 'pasta privada': 'pasta privada',
|
|
10
|
+
},
|
|
11
|
+
storeInvalido: (detalhe) => `store de perfis invalido: ${detalhe}`,
|
|
12
|
+
semPerfil: (runtime) => `${runtime} sem perfil configurado: despacho pelo ambiente do processo`,
|
|
13
|
+
estadoConta: {
|
|
14
|
+
providerPago: 'provider pago, nunca despacha', loginInconclusivo: 'conferencia de login inconclusiva', semLogin: 'sem login', pronto: 'pronto',
|
|
15
|
+
esgotadoAte: (estado, ate) => `${estado}${ate ? ` ate ${ate}` : ''}`,
|
|
16
|
+
},
|
|
17
|
+
contas: (runtime, estados) => `${runtime}: ${estados}`,
|
|
18
|
+
contasCorrecao: 'ork accounts check marca os perfis; ork accounts add refaz o login pelo proprio CLI',
|
|
19
|
+
limites: [
|
|
20
|
+
'Sonda contextual local: não inventaria sessões, não inicia modelo e não autoriza despacho.',
|
|
21
|
+
'Aceitação do modelo, instalação do adaptador/MCP, contexto da thread, gates e policies do pedido são revalidados no despacho; com perfis, o login de cada conta é conferido aqui e de novo no despacho.',
|
|
22
|
+
'Trio sem override; um override posterior exige resolver e verificar novamente o despacho.',
|
|
23
|
+
'VERIFY/SHIP MCP exigem executor Codex isolado próprio e transporte SHIP válido; a sonda de despacho não comprova entrega.',
|
|
24
|
+
],
|
|
25
|
+
node: 'Node 20 ou superior necessário', gitOk: 'Git disponível', gitAusente: 'Git ausente',
|
|
26
|
+
repo: 'Repositório Git local necessário', manifestoAusente: 'Manifesto ausente',
|
|
27
|
+
manifestoInvalido: 'Manifesto inválido; corrija antes do despacho', manifestoValido: 'Manifesto válido',
|
|
28
|
+
modo: (modo) => `Modo solicitado: ${modo}`, abbrev: 'Identidade curta do projeto validada',
|
|
29
|
+
trio: 'Runtime/modelo/esforço resolvidos pelo mesmo contrato do despacho; aceitação nativa não comprovada',
|
|
30
|
+
runtimeOk: (runtime) => `${runtime} disponível`, runtimeAusente: (runtime) => `${runtime} ausente`,
|
|
31
|
+
sandboxOk: 'Sonda Codex sem modelo executou',
|
|
32
|
+
sandboxFalhou: 'Sonda Codex falhou; não altere o sandbox para contornar a falha',
|
|
33
|
+
providerIncompativel: (nomes) => `Nomes de provider incompatíveis com assinatura: ${nomes}`,
|
|
34
|
+
providerAlheio: 'Há nomes de provider alheios ao runtime; não usar credenciais pagas',
|
|
35
|
+
providerNenhum: 'Nenhum nome de provider pago ativo',
|
|
36
|
+
trioInvalido: 'Setup/trio ou sonda inválidos; complete o modelo e confira o runtime no setup canônico',
|
|
37
|
+
titulo: (modo) => `ork doctor contextual: ${modo}`,
|
|
38
|
+
check: (nivel, nome, detalhe) => `${nivel}: ${nome}: ${detalhe}`,
|
|
39
|
+
checkDoBloco: (nivel, nome, detalhe) => ` ${nivel}: ${nome}: ${detalhe}`,
|
|
40
|
+
bloco: (numero, fases, trio) => `bloco ${numero} ${fases}: ${trio ?? 'trio pendente'}`,
|
|
41
|
+
resumo: (primeiro, todos) => `Primeiro bloco: ${primeiro ? 'sonda pronta' : 'bloqueado'}; ` +
|
|
42
|
+
`todos os blocos: ${todos ? 'sonda pronta' : 'dependências pendentes'}`,
|
|
43
|
+
};
|
|
44
|
+
exports.PREFLIGHT_EN = {
|
|
45
|
+
nomes: {
|
|
46
|
+
node: 'node', git: 'git', repositorio: 'repository', manifesto: 'manifest', modo: 'mode', abbrev: 'abbrev',
|
|
47
|
+
trio: 'runtime/model/effort', runtime: 'runtime', contas: 'accounts', sandbox: 'dispatch sandbox', provider: 'provider', umask: 'umask',
|
|
48
|
+
'permissoes do estado': 'state permissions', 'pasta privada': 'private folder',
|
|
49
|
+
},
|
|
50
|
+
storeInvalido: (detail) => `invalid profile store: ${detail}`,
|
|
51
|
+
semPerfil: (runtime) => `${runtime} has no configured profile: dispatch uses the process environment`,
|
|
52
|
+
estadoConta: {
|
|
53
|
+
providerPago: 'paid provider, never dispatches', loginInconclusivo: 'inconclusive login check', semLogin: 'not signed in',
|
|
54
|
+
pronto: 'ready', esgotadoAte: (state, until) => `${state}${until ? ` until ${until}` : ''}`,
|
|
55
|
+
},
|
|
56
|
+
contas: (runtime, states) => `${runtime}: ${states}`,
|
|
57
|
+
contasCorrecao: '`ork accounts check` marks profiles; `ork accounts add` signs in again through the CLI itself',
|
|
58
|
+
limites: [
|
|
59
|
+
'Local contextual probe: it does not invent sessions, start a model or authorize dispatch.',
|
|
60
|
+
'Model acceptance, adapter/MCP installation, thread context, gates and request policies are checked again at dispatch; with profiles, each account login is checked here and again at dispatch.',
|
|
61
|
+
'No override in the runtime/model/effort set; a later override requires resolving and checking dispatch again.',
|
|
62
|
+
'MCP VERIFY/SHIP require their own isolated Codex executor and a valid SHIP transport; the dispatch probe does not prove delivery.',
|
|
63
|
+
],
|
|
64
|
+
node: 'Node 20 or later required', gitOk: 'Git available', gitAusente: 'Git missing',
|
|
65
|
+
repo: 'Local Git repository required', manifestoAusente: 'Manifest missing',
|
|
66
|
+
manifestoInvalido: 'Invalid manifest; fix it before dispatch', manifestoValido: 'Valid manifest',
|
|
67
|
+
modo: (mode) => `Requested mode: ${mode}`, abbrev: 'Short project identity checked',
|
|
68
|
+
trio: 'Runtime/model/effort resolved by the same dispatch contract; native acceptance not proved',
|
|
69
|
+
runtimeOk: (runtime) => `${runtime} available`, runtimeAusente: (runtime) => `${runtime} missing`,
|
|
70
|
+
sandboxOk: 'Codex probe without a model ran', sandboxFalhou: 'Codex probe failed; do not change the sandbox to bypass the failure',
|
|
71
|
+
providerIncompativel: (names) => `Provider names incompatible with subscription-only: ${names}`,
|
|
72
|
+
providerAlheio: 'There are provider names unrelated to the runtime; do not use paid credentials',
|
|
73
|
+
providerNenhum: 'No paid-provider name active',
|
|
74
|
+
trioInvalido: 'Invalid setup/runtime set or probe; complete the model and check the runtime in canonical setup',
|
|
75
|
+
titulo: (mode) => `ork contextual doctor: ${mode}`,
|
|
76
|
+
check: (level, name, detail) => `${level}: ${name}: ${detail}`,
|
|
77
|
+
checkDoBloco: (level, name, detail) => ` ${level}: ${name}: ${detail}`,
|
|
78
|
+
bloco: (number, phases, trio) => `block ${number} ${phases}: ${trio ?? 'runtime/model/effort pending'}`,
|
|
79
|
+
resumo: (first, all) => `First block: ${first ? 'probe ready' : 'blocked'}; all blocks: ${all ? 'probe ready' : 'dependencies pending'}`,
|
|
80
|
+
};
|
package/dist/locale-projetos.js
CHANGED
|
@@ -26,6 +26,9 @@ exports.PROJETOS_PT_BR = {
|
|
|
26
26
|
'`ork network roadmap` (tool ork_network_roadmap).',
|
|
27
27
|
opcaoSemValor: '--projeto sem valor',
|
|
28
28
|
usoOpcao: 'Uso: --projeto <nome|caminho>; os nomes registrados estão em `ork projetos`.',
|
|
29
|
+
initNaoLeProjeto: 'uso: ork init cria o projeto no diretório atual; entre nele e rode ork init, sem --projeto',
|
|
30
|
+
mcpNaoLeProjeto: 'uso: o servidor MCP recebe a raiz por --project <raiz absoluta>, não por --projeto',
|
|
31
|
+
comandoNaoLeProjeto: (comando) => `uso: ork ${comando} não lê projeto; tire --projeto`,
|
|
29
32
|
hostCaminho: (valor) => `no host o projeto vem pelo nome registrado; o caminho "${valor}" não é aceito`,
|
|
30
33
|
hostUseNome: 'Use o nome de um projeto de `ork projetos` (ex.: --projeto orkastery).',
|
|
31
34
|
precisaEscolher: (total) => `${total} projetos conhecidos nesta máquina e nenhum foi pedido; o ork não escolhe pelo diretório do gateway`,
|
|
@@ -74,6 +77,9 @@ exports.PROJETOS_EN = {
|
|
|
74
77
|
'`ork network roadmap` (tool ork_network_roadmap).',
|
|
75
78
|
opcaoSemValor: '--projeto has no value',
|
|
76
79
|
usoOpcao: 'Usage: --projeto <name|path>; registered names are listed by `ork projetos`.',
|
|
80
|
+
initNaoLeProjeto: 'usage: ork init creates the project in the current directory; enter it and run ork init without --projeto',
|
|
81
|
+
mcpNaoLeProjeto: 'usage: the MCP server receives its root through --project <absolute root>, not --projeto',
|
|
82
|
+
comandoNaoLeProjeto: (command) => `usage: ork ${command} does not read a project; remove --projeto`,
|
|
77
83
|
hostCaminho: (value) => `on a host, select a project by its registered name; path "${value}" is not accepted`,
|
|
78
84
|
hostUseNome: 'Use a project name from `ork projetos` (for example: --projeto orkastery).',
|
|
79
85
|
precisaEscolher: (total) => `${total} projects are known on this machine and none was requested; ork does not choose from the gateway directory`,
|