@semacode/cli 2.3.0 → 3.0.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/LICENSE +39 -39
- package/README.md +112 -41
- package/dist/agentContextPack.js +14 -10
- package/dist/agentEntryPoints.d.ts +5 -0
- package/dist/agentEntryPoints.js +102 -91
- package/dist/angular-consumer-standalone.d.ts +3 -1
- package/dist/angular-consumer-standalone.js +12 -8
- package/dist/bin.d.ts +6 -0
- package/dist/bin.js +130 -0
- package/dist/cliArgs.js +4 -4
- package/dist/cliControlError.d.ts +12 -0
- package/dist/cliControlError.js +47 -0
- package/dist/cliGrammar.d.ts +11 -0
- package/dist/cliGrammar.js +551 -0
- package/dist/cliHelp.d.ts +13 -0
- package/dist/cliHelp.js +19 -0
- package/dist/cliHelpTexto.d.ts +3 -0
- package/dist/cliHelpTexto.js +168 -0
- package/dist/cliRuntime.d.ts +2 -0
- package/dist/cliRuntime.js +31 -0
- package/dist/comandos.js +9 -22
- package/dist/contexto.js +5 -5
- package/dist/dev/index.d.ts +1 -0
- package/dist/dev/index.js +51 -9
- package/dist/discovery/catalog.js +3 -3
- package/dist/distribuicao/filesystemGlobal.d.ts +63 -0
- package/dist/distribuicao/filesystemGlobal.js +701 -0
- package/dist/distribuicao/index.d.ts +7 -0
- package/dist/distribuicao/index.js +227 -0
- package/dist/distribuicao/launcherGlobal.d.ts +53 -0
- package/dist/distribuicao/launcherGlobal.js +643 -0
- package/dist/distribuicao/launcherWindows.d.ts +28 -0
- package/dist/distribuicao/launcherWindows.js +326 -0
- package/dist/distribuicao/lockContextGlobal.d.ts +10 -0
- package/dist/distribuicao/lockContextGlobal.js +17 -0
- package/dist/distribuicao/lockGlobal.d.ts +6 -0
- package/dist/distribuicao/lockGlobal.js +520 -0
- package/dist/distribuicao/skillGlobal.d.ts +48 -0
- package/dist/distribuicao/skillGlobal.js +652 -0
- package/dist/distribuicao/skillIntentPolicy.d.ts +21 -0
- package/dist/distribuicao/skillIntentPolicy.js +115 -0
- package/dist/distribuicao/tipos.d.ts +50 -0
- package/dist/distribuicao/tipos.js +10 -0
- package/dist/distribuicao/versaoSemantica.d.ts +3 -0
- package/dist/distribuicao/versaoSemantica.js +62 -0
- package/dist/drift.part01.d.ts +34 -2
- package/dist/drift.part01.js +3 -0
- package/dist/drift.part04.d.ts +12 -2
- package/dist/drift.part04.js +89 -15
- package/dist/drift.part05.d.ts +2 -1
- package/dist/drift.part05.js +9 -6
- package/dist/drift.part06.d.ts +2 -1
- package/dist/drift.part06.js +115 -24
- package/dist/drift.part07.d.ts +11 -10
- package/dist/drift.part07.js +261 -255
- package/dist/drift.part08.d.ts +2 -1
- package/dist/drift.part08.js +35 -25
- package/dist/drift.part11.js +279 -32
- package/dist/drift.part12.d.ts +1 -1
- package/dist/drift.part12.js +196 -11
- package/dist/drift.part13.d.ts +18 -2
- package/dist/drift.part13.js +654 -76
- package/dist/drift.part14.js +21 -7
- package/dist/driftCacheCas.d.ts +43 -0
- package/dist/driftCacheCas.js +351 -0
- package/dist/driftCacheFilesystem.d.ts +64 -0
- package/dist/driftCacheFilesystem.js +313 -0
- package/dist/driftCacheModes.d.ts +38 -0
- package/dist/driftCacheModes.js +147 -0
- package/dist/driftCacheStore.d.ts +80 -0
- package/dist/driftCacheStore.js +603 -0
- package/dist/driftCatalogo.d.ts +65 -0
- package/dist/driftCatalogo.js +516 -0
- package/dist/driftEscopo.d.ts +21 -0
- package/dist/driftEscopo.js +647 -0
- package/dist/driftEscopoReferencias.d.ts +8 -0
- package/dist/driftEscopoReferencias.js +612 -0
- package/dist/driftOrcamento.d.ts +6 -0
- package/dist/driftOrcamento.js +20 -3
- package/dist/geracaoCore.js +4 -6
- package/dist/iaPrompts.d.ts +3 -3
- package/dist/iaPrompts.js +13 -14
- package/dist/index.d.ts +4 -1
- package/dist/index.js +6 -25
- package/dist/index.part01.d.ts +21 -14
- package/dist/index.part01.js +20 -165
- package/dist/index.part02.js +57 -43
- package/dist/index.part03.d.ts +23 -1
- package/dist/index.part03.js +83 -8
- package/dist/index.part04.d.ts +10 -2
- package/dist/index.part04.js +48 -14
- package/dist/index.part05.d.ts +1 -1
- package/dist/index.part05.js +109 -30
- package/dist/index.part06.js +34 -16
- package/dist/index.part07.js +31 -27
- package/dist/index.part08.d.ts +1 -1
- package/dist/index.part08.js +23 -28
- package/dist/init/templates.part01.js +393 -393
- package/dist/init/templates.part02.js +189 -189
- package/dist/initCommand.js +5 -1
- package/dist/initTemplatesBackend.js +73 -73
- package/dist/initTemplatesBase.js +7 -5
- package/dist/initTemplatesFlutter.js +137 -137
- package/dist/initTemplatesRuntime.js +350 -350
- package/dist/initTemplatesWeb.js +309 -309
- package/dist/pipelineConteudo/command.d.ts +1 -0
- package/dist/pipelineConteudo/command.js +4 -32
- package/dist/pipelineConteudo/help.d.ts +2 -0
- package/dist/pipelineConteudo/help.js +33 -0
- package/dist/profileAuthorCommand.js +3 -7
- package/dist/profileCommand.js +3 -7
- package/dist/projeto.d.ts +1 -1
- package/dist/projetoCarregar.d.ts +2 -2
- package/dist/projetoCarregar.js +69 -28
- package/dist/projetoCatalogo.d.ts +8 -0
- package/dist/projetoCatalogo.js +164 -0
- package/dist/projetoOrigens.d.ts +2 -0
- package/dist/projetoOrigens.js +65 -9
- package/dist/projetoTipos.d.ts +15 -5
- package/dist/resultadoCli.d.ts +20 -0
- package/dist/resultadoCli.js +57 -0
- package/dist/saidaCli.d.ts +35 -0
- package/dist/saidaCli.js +118 -0
- package/dist/sistemasInterativos/acceptanceEvidence.d.ts +22 -0
- package/dist/sistemasInterativos/acceptanceEvidence.js +345 -0
- package/dist/sistemasInterativos/engineObservation.d.ts +12 -0
- package/dist/sistemasInterativos/engineObservation.js +438 -0
- package/dist/sistemasInterativos/jobOrchestration.d.ts +2 -0
- package/dist/sistemasInterativos/jobOrchestration.js +204 -0
- package/dist/sistemasInterativos/operationPrimitives.d.ts +21 -0
- package/dist/sistemasInterativos/operationPrimitives.js +194 -0
- package/dist/sistemasInterativos/operations.d.ts +4 -39
- package/dist/sistemasInterativos/operations.js +5 -1164
- package/dist/skillCommand.d.ts +5 -0
- package/dist/skillCommand.js +88 -0
- package/dist/sync/index.js +35 -35
- package/docs/README.md +11 -7
- package/docs/ai-integration.md +18 -11
- package/docs/ai-onboarding.md +81 -62
- package/docs/ai-workflow.md +10 -4
- package/docs/auth.md +26 -26
- package/docs/cli.md +197 -79
- package/docs/commands.md +30 -6
- package/docs/database.md +15 -15
- package/docs/deploy.md +54 -41
- package/docs/documentation.md +11 -10
- package/docs/drift-cache.md +108 -0
- package/docs/env.md +16 -16
- package/docs/frontend.md +41 -41
- package/docs/getting-started.md +82 -57
- package/docs/i18n.md +15 -15
- package/docs/repositories.md +60 -43
- package/docs/rollback.md +38 -31
- package/docs/security.md +54 -32
- package/docs/sistemas-interativos.md +27 -27
- package/docs/support.md +8 -8
- package/docs/testing.md +123 -17
- package/docs/vocabulary.md +29 -29
- package/exemplos/agendamento.sema +1 -1
- package/exemplos/assinatura.sema +1 -1
- package/exemplos/auditoria.sema +1 -1
- package/exemplos/autenticacao.sema +1 -1
- package/exemplos/author_obra_comum.sema +1 -1
- package/exemplos/author_tema_sensivel.sema +1 -1
- package/exemplos/automacao.sema +1 -1
- package/exemplos/cadastro_usuario.sema +1 -1
- package/exemplos/calculadora.sema +1 -1
- package/exemplos/crud_simples.sema +1 -1
- package/exemplos/estoque.sema +1 -1
- package/exemplos/exportacao.sema +1 -1
- package/exemplos/fila.sema +1 -1
- package/exemplos/integracao_externa.sema +1 -1
- package/exemplos/multi_tenant.sema +1 -1
- package/exemplos/notificacao.sema +1 -1
- package/exemplos/operacao_estrategia.sema +132 -132
- package/exemplos/operacao_estrategia_discovery.sema +220 -220
- package/exemplos/operacao_estrategia_fluxo.sema +114 -114
- package/exemplos/operacao_estrategia_gates.sema +106 -106
- package/exemplos/operacao_estrategia_quarentena.sema +133 -133
- package/exemplos/operacao_estrategia_rollout.sema +124 -124
- package/exemplos/pagamento.sema +1 -1
- package/exemplos/pagamento_dominio.sema +1 -1
- package/exemplos/pedido.sema +1 -1
- package/exemplos/permissao.sema +1 -1
- package/exemplos/persistencia_vendor_first.sema +1 -1
- package/exemplos/profile_conversas.sema +165 -165
- package/exemplos/profile_game.sema +1 -1
- package/exemplos/profile_legal.sema +1 -1
- package/exemplos/profile_ops.sema +1 -1
- package/exemplos/profile_research.sema +1 -1
- package/exemplos/profile_software.sema +1 -1
- package/exemplos/profile_workflow_n8n.sema +1 -1
- package/exemplos/relatorio.sema +1 -1
- package/exemplos/replica_analitica_erp.sema +1 -1
- package/exemplos/testes_embutidos.sema +1 -1
- package/exemplos/tratamento_erro.sema +1 -1
- package/exemplos/upload_arquivo.sema +1 -1
- package/exemplos/webhook.sema +1 -1
- package/node_modules/@sema/gerador-cpp/dist/index.js +176 -176
- package/node_modules/@sema/gerador-css/dist/index.part01.js +10 -10
- package/node_modules/@sema/gerador-css/dist/index.part02.js +460 -460
- package/node_modules/@sema/gerador-dotnet/dist/index.js +169 -169
- package/node_modules/@sema/gerador-html/dist/index.js +17 -17
- package/node_modules/@sema/gerador-python/dist/index.part02.js +3 -3
- package/node_modules/@sema/gerador-typescript/dist/index.part02.js +11 -11
- package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js +42 -42
- package/node_modules/@sema/nucleo/dist/semantico/analisador.d.ts +1 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.js +1 -0
- package/package.json +7 -2
- package/scripts/postinstall.mjs +148 -0
- package/skills/sema/SKILL.md +199 -0
- package/skills/sema/agents/openai.yaml +4 -0
- package/node_modules/@sema/gerador-cpp/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-css/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-css/dist/index.part01.js.map +0 -1
- package/node_modules/@sema/gerador-css/dist/index.part02.js.map +0 -1
- package/node_modules/@sema/gerador-dart/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-dotnet/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-html/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-javascript/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-lua/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-php/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-python/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-python/dist/index.part01.js.map +0 -1
- package/node_modules/@sema/gerador-python/dist/index.part02.js.map +0 -1
- package/node_modules/@sema/gerador-typescript/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-typescript/dist/index.part01.js.map +0 -1
- package/node_modules/@sema/gerador-typescript/dist/index.part02.js.map +0 -1
- package/node_modules/@sema/gerador-typescript/dist/index.part03.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/ast/tipos.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/diagnosticos/index.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/diagnosticos/snippets.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/formatador/index.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/formatador/index.part01.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/formatador/index.part02.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/index.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/ir/conversor.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/ir/conversor.part01.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/ir/conversor.part02.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/ir/conversor.part03.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/ir/modelos.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/lexer/lexer.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/lexer/tokens.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/parser/parser.declaracoes.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/parser/parser.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/parser/parser.modulo.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/parser/parser.part01.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/parser/parser.part02.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/parser/parser.part03.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/persistencia/contratos.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part01.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part02.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part03.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part04.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part05.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part06.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part07.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part08.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/estruturas.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/estruturas.part01.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/estruturas.part02.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/orcamentoSemantico.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/seguranca.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/util/arquivos.js.map +0 -1
- package/node_modules/@sema/padroes/dist/index.js.map +0 -1
package/dist/index.part05.js
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
// SEMA-GOVERNED: sema.governanca_ia_contexto, sema.produto.governanca_ia.drift.cache.modos
|
|
2
|
+
// Descrição: executa drift sob modo explícito e mantém consultas honestas quando a análise é pulada.
|
|
3
|
+
import { stat } from "node:fs/promises";
|
|
1
4
|
import path from "node:path";
|
|
2
5
|
import { compilarCodigo, formatarDiagnosticos, lerArquivoTexto, temErros, } from "@sema/nucleo";
|
|
3
6
|
import { carregarProjeto, resolverAlvosVerificacao, resolverEstruturaSaidaPadrao, resolverFrameworkPadrao, resolverSaidaPadrao, } from "./projeto.js";
|
|
@@ -7,10 +10,22 @@ import { escreverArquivos, formatarAvisoArtefatosGeradosAcimaDoLimite, } from '.
|
|
|
7
10
|
import { carregarModulos } from './carregarModulos.js';
|
|
8
11
|
import { obterOpcao } from './cliArgs.js';
|
|
9
12
|
import { resumirDriftPorModulo } from "./index.part03.js";
|
|
10
|
-
import { resolverOpcoesDriftCli } from "./index.part01.js";
|
|
11
|
-
export async function comandoInspecionar(entrada, emJson, cwd = process.cwd()) {
|
|
12
|
-
const
|
|
13
|
-
const
|
|
13
|
+
import { resolverAnaliseDriftConsultaCli, resolverOpcoesDriftCli } from "./index.part01.js";
|
|
14
|
+
export async function comandoInspecionar(entrada, emJson, cwd = process.cwd(), args = []) {
|
|
15
|
+
const analiseDrift = resolverAnaliseDriftConsultaCli(args, "inspecionar");
|
|
16
|
+
const alvo = entrada ? path.resolve(cwd, entrada) : cwd;
|
|
17
|
+
const alvoEhArquivo = (await stat(alvo)).isFile();
|
|
18
|
+
const escopoEstreito = analiseDrift.opcoes.escopo === "arquivo"
|
|
19
|
+
|| analiseDrift.opcoes.escopo === "modulo"
|
|
20
|
+
|| (analiseDrift.opcoes.escopo === undefined
|
|
21
|
+
&& alvoEhArquivo);
|
|
22
|
+
const contextoProjeto = await carregarProjeto(entrada, cwd, {
|
|
23
|
+
escopo: analiseDrift.opcoes.escopo,
|
|
24
|
+
adiarDescobertaCodigo: !analiseDrift.executar || escopoEstreito,
|
|
25
|
+
});
|
|
26
|
+
const resultadoDrift = analiseDrift.executar
|
|
27
|
+
? await analisarDriftLegado(contextoProjeto, analiseDrift.opcoes)
|
|
28
|
+
: null;
|
|
14
29
|
const framework = resolverFrameworkPadrao(undefined, contextoProjeto.configCarregada);
|
|
15
30
|
const estruturaSaida = resolverEstruturaSaidaPadrao(undefined, framework, contextoProjeto.configCarregada);
|
|
16
31
|
const alvos = resolverAlvosVerificacao(contextoProjeto.configCarregada);
|
|
@@ -29,12 +44,22 @@ export async function comandoInspecionar(entrada, emJson, cwd = process.cwd()) {
|
|
|
29
44
|
diretoriosCodigo: contextoProjeto.diretoriosCodigo,
|
|
30
45
|
fontesLegado: contextoProjeto.fontesLegado,
|
|
31
46
|
modoAdocao: contextoProjeto.modoAdocao,
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
47
|
+
analiseDrift: {
|
|
48
|
+
modo: analiseDrift.modo,
|
|
49
|
+
executada: analiseDrift.executar,
|
|
50
|
+
sucesso: resultadoDrift?.sucesso ?? null,
|
|
51
|
+
aviso: analiseDrift.executar
|
|
52
|
+
? null
|
|
53
|
+
: "Análise de drift não executada; implementação, vínculos e rotas não foram verificados.",
|
|
54
|
+
avisos: analiseDrift.avisos,
|
|
55
|
+
cache: resultadoDrift?.escopo_aplicado.cache ?? null,
|
|
56
|
+
},
|
|
57
|
+
scoreDrift: resultadoDrift?.resumo_operacional.scoreMedio ?? null,
|
|
58
|
+
confiancaGeral: resultadoDrift?.resumo_operacional.confiancaGeral ?? null,
|
|
59
|
+
consumerFramework: resultadoDrift?.consumerFramework ?? null,
|
|
60
|
+
appRoutes: resultadoDrift?.appRoutes ?? null,
|
|
61
|
+
consumerSurfaces: resultadoDrift?.consumerSurfaces ?? null,
|
|
62
|
+
consumerBridges: resultadoDrift?.consumerBridges ?? null,
|
|
38
63
|
},
|
|
39
64
|
projeto: {
|
|
40
65
|
arquivos: contextoProjeto.arquivosProjeto,
|
|
@@ -44,25 +69,38 @@ export async function comandoInspecionar(entrada, emJson, cwd = process.cwd()) {
|
|
|
44
69
|
sucesso: !temErros(item.resultado.diagnosticos),
|
|
45
70
|
diagnosticos: item.resultado.diagnosticos.length,
|
|
46
71
|
superficies: item.resultado.ir?.superficies.map((superficie) => `${superficie.tipo}:${superficie.nome}`) ?? [],
|
|
47
|
-
implementacao:
|
|
72
|
+
implementacao: resultadoDrift
|
|
73
|
+
? resumirDriftPorModulo(item.resultado.modulo?.nome ?? null, item.caminho, resultadoDrift)
|
|
74
|
+
: null,
|
|
48
75
|
})),
|
|
49
76
|
},
|
|
50
77
|
};
|
|
78
|
+
const codigoSaida = resultadoDrift?.sucesso === false ? 1 : 0;
|
|
51
79
|
if (emJson) {
|
|
52
80
|
console.log(JSON.stringify(payload, null, 2));
|
|
53
|
-
return
|
|
81
|
+
return codigoSaida;
|
|
54
82
|
}
|
|
55
|
-
console.log("
|
|
83
|
+
console.log("Inspeção de projeto Sema");
|
|
56
84
|
console.log(`- Entrada: ${payload.entrada}`);
|
|
57
|
-
console.log(`-
|
|
85
|
+
console.log(`- Configuração: ${payload.configuracao.caminho ?? "nenhuma"}`);
|
|
58
86
|
console.log(`- Base do projeto: ${payload.configuracao.baseProjeto}`);
|
|
59
87
|
console.log(`- Framework: ${payload.configuracao.framework}`);
|
|
60
88
|
console.log(`- Estrutura de saida: ${payload.configuracao.estruturaSaida}`);
|
|
61
89
|
console.log(`- Alvos: ${payload.configuracao.alvos.join(", ")}`);
|
|
62
|
-
console.log(`- Modo de
|
|
63
|
-
console.log(`-
|
|
64
|
-
|
|
65
|
-
|
|
90
|
+
console.log(`- Modo de adoção: ${payload.configuracao.modoAdocao}`);
|
|
91
|
+
console.log(`- Análise de drift: ${payload.configuracao.analiseDrift.modo} (${payload.configuracao.analiseDrift.executada ? "executada" : "não executada"})`);
|
|
92
|
+
if (payload.configuracao.analiseDrift.executada) {
|
|
93
|
+
console.log(`- Resultado do drift: ${payload.configuracao.analiseDrift.sucesso ? "sucesso" : "falha"}`);
|
|
94
|
+
console.log(`- Score médio de drift: ${payload.configuracao.scoreDrift}`);
|
|
95
|
+
console.log(`- Confiança geral: ${payload.configuracao.confiancaGeral}`);
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
console.log("- Resultado do drift: não avaliado");
|
|
99
|
+
console.log("- Score médio de drift: não avaliado");
|
|
100
|
+
console.log("- Confiança geral: não avaliada");
|
|
101
|
+
console.log(`- Aviso: ${payload.configuracao.analiseDrift.aviso}`);
|
|
102
|
+
}
|
|
103
|
+
console.log("- Saídas por alvo:");
|
|
66
104
|
for (const [alvo, saida] of Object.entries(payload.configuracao.saidas)) {
|
|
67
105
|
console.log(` - ${alvo}: ${saida}`);
|
|
68
106
|
}
|
|
@@ -70,30 +108,63 @@ export async function comandoInspecionar(entrada, emJson, cwd = process.cwd()) {
|
|
|
70
108
|
for (const origem of payload.configuracao.origens) {
|
|
71
109
|
console.log(` - ${origem}`);
|
|
72
110
|
}
|
|
73
|
-
console.log("-
|
|
111
|
+
console.log("- Diretórios de código:");
|
|
74
112
|
for (const diretorio of payload.configuracao.diretoriosCodigo) {
|
|
75
113
|
console.log(` - ${diretorio}`);
|
|
76
114
|
}
|
|
77
115
|
console.log(`- Fontes de legado detectadas: ${payload.configuracao.fontesLegado.join(", ") || "nenhuma"}`);
|
|
78
|
-
console.log("-
|
|
116
|
+
console.log("- Módulos selecionados:");
|
|
79
117
|
for (const modulo of payload.projeto.modulos) {
|
|
80
118
|
console.log(` - ${modulo.modulo ?? "(sem modulo)"} :: ${modulo.caminho} :: diagnosticos=${modulo.diagnosticos}`);
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
119
|
+
if (modulo.implementacao) {
|
|
120
|
+
console.log(` impls válidos=${modulo.implementacao.implsValidos} quebrados=${modulo.implementacao.implsQuebrados} recursos divergentes=${modulo.implementacao.recursosDivergentesCount} sem_impl=${modulo.implementacao.tasksSemImplementacao}`);
|
|
121
|
+
for (const arquivoRelacionado of modulo.implementacao.arquivosRelacionados.slice(0, 5)) {
|
|
122
|
+
console.log(` arquivo relacionado: ${arquivoRelacionado}`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
console.log(" implementação: não verificada neste modo");
|
|
84
127
|
}
|
|
85
128
|
}
|
|
86
|
-
return
|
|
129
|
+
return codigoSaida;
|
|
87
130
|
}
|
|
88
131
|
export async function comandoDrift(entrada, args, emJson, cwd = process.cwd()) {
|
|
89
|
-
const
|
|
90
|
-
const
|
|
132
|
+
const opcoes = resolverOpcoesDriftCli(args);
|
|
133
|
+
const contextoProjeto = await carregarProjeto(entrada, cwd, {
|
|
134
|
+
escopo: opcoes.escopo,
|
|
135
|
+
adiarDescobertaCodigo: opcoes.escopo !== "projeto",
|
|
136
|
+
});
|
|
137
|
+
const resultado = await analisarDriftLegado(contextoProjeto, opcoes);
|
|
91
138
|
if (emJson) {
|
|
92
139
|
console.log(JSON.stringify(resultado, null, 2));
|
|
93
140
|
return resultado.sucesso ? 0 : 1;
|
|
94
141
|
}
|
|
95
142
|
console.log("Drift entre Sema e codigo legado");
|
|
96
143
|
console.log(`- Escopo aplicado: ${resultado.escopo_aplicado.escopo}`);
|
|
144
|
+
console.log(`- Estratégia física: ${resultado.escopo_aplicado.estrategia ?? "não informada"}`);
|
|
145
|
+
console.log(`- Cobertura: ${resultado.escopo_aplicado.cobertura ?? "não informada"}`);
|
|
146
|
+
console.log(`- Arquivos planejados: ${resultado.escopo_aplicado.arquivosPlanejados?.length ?? 0}`);
|
|
147
|
+
console.log(`- Arquivos declarados: ${resultado.escopo_aplicado.arquivosDeclarados?.length ?? 0}`);
|
|
148
|
+
console.log(`- Arquivos inferidos: ${resultado.escopo_aplicado.arquivosInferidos?.length ?? 0}`);
|
|
149
|
+
console.log(`- Arquivos ausentes: ${resultado.escopo_aplicado.arquivosAusentes?.length ?? 0}`);
|
|
150
|
+
console.log(`- Bloqueios do plano: ${resultado.escopo_aplicado.bloqueios?.length ?? 0}`);
|
|
151
|
+
for (const bloqueio of resultado.escopo_aplicado.bloqueios ?? []) {
|
|
152
|
+
console.log(` - ${bloqueio}`);
|
|
153
|
+
}
|
|
154
|
+
const metricasCatalogo = resultado.escopo_aplicado.catalogo;
|
|
155
|
+
if (metricasCatalogo) {
|
|
156
|
+
const origemCatalogo = metricasCatalogo.origem === "plano_explicito"
|
|
157
|
+
? "plano explícito"
|
|
158
|
+
: "caminhada";
|
|
159
|
+
console.log(`- Catálogo: ${metricasCatalogo.arquivosCatalogados} arquivos, ${metricasCatalogo.diretoriosVisitados} diretórios visitados, ${metricasCatalogo.leiturasConteudo} leituras, ${metricasCatalogo.bytesLidos} bytes, ${metricasCatalogo.acertosMemoriaConteudo} reaproveitamentos em memória, origem ${origemCatalogo}`);
|
|
160
|
+
}
|
|
161
|
+
const estadoCache = resultado.escopo_aplicado.cache;
|
|
162
|
+
if (estadoCache) {
|
|
163
|
+
console.log(`- Cache: modo=${estadoCache.modo} origem=${estadoCache.origem} hits=${estadoCache.metricas.hits} misses=${estadoCache.metricas.misses} corrompidos=${estadoCache.metricas.corruptos} gravações=${estadoCache.metricas.gravacoes}`);
|
|
164
|
+
for (const aviso of estadoCache.avisos) {
|
|
165
|
+
console.log(` - Aviso: ${aviso.mensagem}`);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
97
168
|
console.log(`- Ignorar worktrees: ${resultado.escopo_aplicado.ignorarWorktrees ? "sim" : "nao"}`);
|
|
98
169
|
console.log(`- Ignorar consumidores laterais: ${resultado.escopo_aplicado.ignorarConsumidoresLaterais ? "sim" : "nao"}`);
|
|
99
170
|
console.log(`- Modulos analisados: ${resultado.modulos.length}`);
|
|
@@ -181,8 +252,12 @@ export async function comandoImpacto(entrada, args, emJson, cwd = process.cwd())
|
|
|
181
252
|
console.error("Uso: sema impacto <arquivo-ou-pasta> --alvo <token-semântico> [--mudanca <descricao>] [--escopo <arquivo|modulo|projeto>] [--incluir-worktrees] [--incluir-consumidores-laterais] [--json]");
|
|
182
253
|
return 1;
|
|
183
254
|
}
|
|
184
|
-
const
|
|
185
|
-
const
|
|
255
|
+
const opcoes = resolverOpcoesDriftCli(args);
|
|
256
|
+
const contextoProjeto = await carregarProjeto(entrada, cwd, {
|
|
257
|
+
escopo: opcoes.escopo,
|
|
258
|
+
adiarDescobertaCodigo: opcoes.escopo !== "projeto",
|
|
259
|
+
});
|
|
260
|
+
const resultado = await gerarMapaImpactoSemantico(contextoProjeto, alvoSemantico, obterOpcao(args, "--mudanca", `avaliar impacto de ${alvoSemantico}`), opcoes);
|
|
186
261
|
if (emJson) {
|
|
187
262
|
console.log(JSON.stringify(resultado, null, 2));
|
|
188
263
|
return resultado.sucesso ? 0 : 1;
|
|
@@ -215,8 +290,12 @@ export async function comandoRenomearSemantico(entrada, args, emJson, cwd = proc
|
|
|
215
290
|
console.error("Uso: sema renomear-semantico <arquivo-ou-pasta> --de <nome-atual> --para <nome-novo> [--escopo <arquivo|modulo|projeto>] [--incluir-worktrees] [--incluir-consumidores-laterais] [--json]");
|
|
216
291
|
return 1;
|
|
217
292
|
}
|
|
218
|
-
const
|
|
219
|
-
const
|
|
293
|
+
const opcoes = resolverOpcoesDriftCli(args);
|
|
294
|
+
const contextoProjeto = await carregarProjeto(entrada, cwd, {
|
|
295
|
+
escopo: opcoes.escopo,
|
|
296
|
+
adiarDescobertaCodigo: opcoes.escopo !== "projeto",
|
|
297
|
+
});
|
|
298
|
+
const resultado = await assistirRenomeacaoSemantica(contextoProjeto, nomeAtual, nomeNovo, opcoes);
|
|
220
299
|
if (emJson) {
|
|
221
300
|
console.log(JSON.stringify(resultado, null, 2));
|
|
222
301
|
return resultado.sucesso ? 0 : 1;
|
package/dist/index.part06.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// SEMA-GOVERNED: sema.governanca_ia_contexto
|
|
2
|
-
//
|
|
1
|
+
// SEMA-GOVERNED: sema.governanca_ia_contexto, sema.produto.governanca_ia.drift.cache.modos
|
|
2
|
+
// Descrição: resume contrato ou projeto com política explícita de análise de drift.
|
|
3
3
|
import { mkdir, readFile, stat, writeFile } from "node:fs/promises";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
import { compilarCodigo, formatarCodigo, formatarDiagnosticos, lerArquivoTexto, temErros, } from "@sema/nucleo";
|
|
@@ -13,7 +13,7 @@ import { carregarModulos } from './carregarModulos.js';
|
|
|
13
13
|
import { obterOpcao, possuiFlag } from './cliArgs.js';
|
|
14
14
|
import { EXEMPLOS_PROMPT_IA, PROMPT_BASE_IA, PROMPT_IA_REACT, PROMPT_IA_SEMA_PRIMEIRO, PROMPT_IA_UI, STARTER_IA } from './iaPrompts.js';
|
|
15
15
|
import { aplicarEstruturaSaida, gerarArquivosPorAlvo, garantirIr, validarCompatibilidadeFramework, } from './geracaoCore.js';
|
|
16
|
-
import { descobrirDocsIa, normalizarModoResumo, normalizarTamanhoResumo, renderizarCabecalhoDocsIa, renderizarCaixaAscii, renderizarSecaoAscii } from "./index.part01.js";
|
|
16
|
+
import { descobrirDocsIa, normalizarModoResumo, normalizarTamanhoResumo, renderizarCabecalhoDocsIa, renderizarCaixaAscii, renderizarSecaoAscii, resolverAnaliseDriftConsultaCli } from "./index.part01.js";
|
|
17
17
|
import { gerarResumoProjetoIa } from "./index.part04.js";
|
|
18
18
|
import { carregarContextoModuloIa, gerarArquivosResumoModuloIa } from "./index.part03.js";
|
|
19
19
|
import { coletarResumoSemanticoModulo, renderizarResumoModuloMarkdown, renderizarResumoModuloTexto } from "./index.part02.js";
|
|
@@ -121,7 +121,11 @@ export async function comandoStarterIa() {
|
|
|
121
121
|
return 0;
|
|
122
122
|
}
|
|
123
123
|
export async function comandoSyncCodex(emJson) {
|
|
124
|
-
const resumoProjeto = await gerarResumoProjetoIa(process.cwd(), undefined, true
|
|
124
|
+
const resumoProjeto = await gerarResumoProjetoIa(process.cwd(), undefined, true, {
|
|
125
|
+
modo: "fresh",
|
|
126
|
+
executar: true,
|
|
127
|
+
avisos: [],
|
|
128
|
+
});
|
|
125
129
|
const exemplos = await materializarExemplosOficiais(resumoProjeto.baseProjeto, true);
|
|
126
130
|
if (!exemplos.sucesso) {
|
|
127
131
|
if (emJson) {
|
|
@@ -196,8 +200,8 @@ export async function comandoAjudaIa() {
|
|
|
196
200
|
]));
|
|
197
201
|
console.log("");
|
|
198
202
|
console.log(renderizarSecaoAscii("Capacidade de IA", [
|
|
199
|
-
"fraca: `sema resumo <arquivo> --micro --json` usa stdout compacto",
|
|
200
|
-
"média: `sema resumo <arquivo> --curto --json` + `sema drift <arquivo> --json`",
|
|
203
|
+
"fraca: `sema resumo <arquivo> --micro --drift none --json` usa stdout compacto sem inventar evidência de implementação",
|
|
204
|
+
"média: `sema resumo <arquivo> --curto --drift none --json` + `sema drift <arquivo> --cache fresh --json`",
|
|
201
205
|
"forte: `sema contexto-ia <arquivo.sema> --saida <diretorio> --json` materializa o pacote completo",
|
|
202
206
|
]));
|
|
203
207
|
console.log("");
|
|
@@ -208,13 +212,13 @@ export async function comandoAjudaIa() {
|
|
|
208
212
|
"Use `sema interativo pipelines --json` para jogos, simulações e híbridos 3D, 2D, retro, texto, XR ou headless.",
|
|
209
213
|
"Use `sema sync-codex` para regenerar o contexto governado do Codex na raiz.",
|
|
210
214
|
"Use `sema instalar-exemplos` para materializar `exemplos/` oficiais sem sobrescrever arquivos locais.",
|
|
211
|
-
"Use `sema resumo <arquivo> --micro --para onboarding --json` para IA fraca; o resumo vem no stdout.",
|
|
215
|
+
"Use `sema resumo <arquivo> --micro --para onboarding --drift none --json` para IA fraca; o resumo contratual vem no stdout e campos derivados ficam não avaliados.",
|
|
212
216
|
"Se `sema resumo` ou outro gate estourar timeout local, aumente o timeout e tente de novo; timeout do agente nao e falha do Sema.",
|
|
213
217
|
"Use `sema prompt-curto <arquivo> --curto --para mudanca` para colar contexto em modelo gratuito.",
|
|
214
218
|
"Use `sema prompt-ia`, `sema prompt-ia-ui`, `sema prompt-ia-react` e `sema prompt-ia-sema-primeiro` conforme a tarefa.",
|
|
215
219
|
"Use `sema exemplos-prompt-ia` para pegar modelos prontos de prompt.",
|
|
216
|
-
"Use `sema inspecionar` para descobrir
|
|
217
|
-
"Use `sema drift` para medir impls,
|
|
220
|
+
"Use `sema inspecionar --drift none` para descobrir a superfície contratual sem executar drift implicitamente.",
|
|
221
|
+
"Use `sema drift --cache fresh` para medir impls, vínculos, rotas, score e lacunas no fechamento; cache é aceleração, não prova final.",
|
|
218
222
|
"Use `sema docs-impacto --intencao <acao>` para ler ou criar docs obrigatorias antes de agir.",
|
|
219
223
|
"Use `sema finalizar-mudanca --intencao <acao>` para bloquear conclusao sem leitura documental comprovada.",
|
|
220
224
|
"Use `sema contexto-ia <arquivo.sema> --saida <diretorio> --json` para gerar AST, IR, drift, `briefing.json` e `briefing.min.json`.",
|
|
@@ -286,8 +290,10 @@ export async function comandoResumo(entrada, args, emJson) {
|
|
|
286
290
|
const pastaSaida = obterOpcao(args, "--saida");
|
|
287
291
|
const escreverNaRaiz = possuiFlag(args, "--raiz");
|
|
288
292
|
const alvo = entrada ? path.resolve(process.cwd(), entrada) : process.cwd();
|
|
289
|
-
|
|
290
|
-
|
|
293
|
+
const analiseDrift = resolverAnaliseDriftConsultaCli(args, "resumo");
|
|
294
|
+
const alvoEhArquivo = (await stat(alvo)).isFile();
|
|
295
|
+
if (alvoEhArquivo) {
|
|
296
|
+
const contexto = await carregarContextoModuloIa(alvo, analiseDrift);
|
|
291
297
|
const resumoSemantico = coletarResumoSemanticoModulo(contexto);
|
|
292
298
|
const guiaPorCapacidade = criarGuiaCapacidadeIa();
|
|
293
299
|
const texto = tamanho === "medio"
|
|
@@ -311,20 +317,28 @@ export async function comandoResumo(entrada, args, emJson) {
|
|
|
311
317
|
modulo: contexto.modulo,
|
|
312
318
|
pastaSaida: pastaResumo ?? null,
|
|
313
319
|
artefatosCompactos,
|
|
320
|
+
analiseDrift: {
|
|
321
|
+
modo: contexto.drift.modo,
|
|
322
|
+
executada: contexto.drift.executada,
|
|
323
|
+
sucesso: contexto.drift.sucesso,
|
|
324
|
+
aviso: contexto.drift.aviso,
|
|
325
|
+
avisos: analiseDrift.avisos,
|
|
326
|
+
cache: contexto.drift.drift?.escopo_aplicado.cache ?? null,
|
|
327
|
+
},
|
|
314
328
|
guiaPorCapacidade,
|
|
315
329
|
resumo: resumoSemantico,
|
|
316
330
|
texto,
|
|
317
331
|
}, null, 2));
|
|
318
|
-
return 0;
|
|
332
|
+
return contexto.drift.sucesso === false ? 1 : 0;
|
|
319
333
|
}
|
|
320
334
|
if (pastaResumo) {
|
|
321
335
|
console.log(`Resumo IA-first gerado em ${pastaResumo}`);
|
|
322
336
|
console.log("");
|
|
323
337
|
}
|
|
324
338
|
console.log(texto);
|
|
325
|
-
return 0;
|
|
339
|
+
return contexto.drift.sucesso === false ? 1 : 0;
|
|
326
340
|
}
|
|
327
|
-
const resumoProjeto = await gerarResumoProjetoIa(alvo, pastaSaida, escreverNaRaiz);
|
|
341
|
+
const resumoProjeto = await gerarResumoProjetoIa(alvo, pastaSaida, escreverNaRaiz, analiseDrift);
|
|
328
342
|
const arquivoResumo = tamanho === "micro"
|
|
329
343
|
? "SEMA_BRIEF.micro.txt"
|
|
330
344
|
: tamanho === "curto"
|
|
@@ -340,15 +354,19 @@ export async function comandoResumo(entrada, args, emJson) {
|
|
|
340
354
|
baseProjeto: resumoProjeto.baseProjeto,
|
|
341
355
|
pastaSaida: resumoProjeto.pastaSaida,
|
|
342
356
|
artefatos: resumoProjeto.artefatos,
|
|
357
|
+
analiseDrift: {
|
|
358
|
+
...resumoProjeto.analiseDrift,
|
|
359
|
+
avisos: analiseDrift.avisos,
|
|
360
|
+
},
|
|
343
361
|
guiaPorCapacidade: resumoProjeto.guiaPorCapacidade,
|
|
344
362
|
modulos: resumoProjeto.modulos,
|
|
345
363
|
texto,
|
|
346
364
|
}, null, 2));
|
|
347
|
-
return 0;
|
|
365
|
+
return resumoProjeto.analiseDrift.sucesso === false ? 1 : 0;
|
|
348
366
|
}
|
|
349
367
|
console.log(`Resumo IA-first do projeto gerado em ${resumoProjeto.pastaSaida}`);
|
|
350
368
|
console.log("");
|
|
351
369
|
console.log(texto);
|
|
352
|
-
return 0;
|
|
370
|
+
return resumoProjeto.analiseDrift.sucesso === false ? 1 : 0;
|
|
353
371
|
}
|
|
354
372
|
//# sourceMappingURL=index.part06.js.map
|
package/dist/index.part07.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// SEMA-GOVERNED: sema.governanca_ia_contexto
|
|
2
|
-
//
|
|
1
|
+
// SEMA-GOVERNED: sema.governanca_ia_contexto, sema.produto.governanca_ia.drift.cache.modos
|
|
2
|
+
// Descrição: preserva modos explícitos nas superfícies auxiliares de contexto.
|
|
3
3
|
import { readFile } from "node:fs/promises";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
import { compilarCodigo, formatarDiagnosticos, lerArquivoTexto, temErros, } from "@sema/nucleo";
|
|
@@ -17,7 +17,11 @@ export async function comandoPromptCurto(entrada, args, emJson) {
|
|
|
17
17
|
const modo = normalizarModoResumo(obterOpcao(args, "--para"));
|
|
18
18
|
const alvo = entrada ? path.resolve(process.cwd(), entrada) : process.cwd();
|
|
19
19
|
if (entrada && entrada.toLowerCase().endsWith(".sema")) {
|
|
20
|
-
const contexto = await carregarContextoModuloIa(alvo
|
|
20
|
+
const contexto = await carregarContextoModuloIa(alvo, {
|
|
21
|
+
modo: "none",
|
|
22
|
+
executar: false,
|
|
23
|
+
avisos: [],
|
|
24
|
+
});
|
|
21
25
|
const resumoSemantico = coletarResumoSemanticoModulo(contexto);
|
|
22
26
|
const capacidade = tamanho === "micro" ? "fraca" : tamanho === "curto" ? "media" : "forte";
|
|
23
27
|
const prompt = criarPromptCurtoModulo(resumoSemantico, modo, tamanho, capacidade);
|
|
@@ -45,30 +49,30 @@ export async function comandoPromptCurto(entrada, args, emJson) {
|
|
|
45
49
|
: "SEMA_BRIEF.md";
|
|
46
50
|
const contextoProjeto = await readFile(path.join(resumoProjeto.pastaSaida, arquivoResumo), "utf8");
|
|
47
51
|
const capacidade = tamanho === "micro" ? "fraca" : tamanho === "curto" ? "media" : "forte";
|
|
48
|
-
const prompt = `⚠️ REGRA OBRIGATÓRIA DE GOVERNANÇA:
|
|
49
|
-
|
|
50
|
-
ANTES DE QUALQUER AÇÃO (editar, criar, deletar, executar, consultar ou modificar):
|
|
51
|
-
1. Rode \`sema docs-impacto --intencao "<ação>" --json\` com sua intenção declarada.
|
|
52
|
-
2. Aguarde a resposta com as docs obrigatórias.
|
|
53
|
-
3. Leia as docs antes de agir.
|
|
54
|
-
4. Antes de concluir, rode \`sema finalizar-mudanca --intencao "<ação>" --doc-lida <arquivo> --json\` com todas as docs lidas.
|
|
55
|
-
|
|
56
|
-
Você está operando Sema em modo IA-first.
|
|
57
|
-
|
|
58
|
-
Isto é contexto comprimido para IA operar contrato semântico antes de tocar código vivo.
|
|
59
|
-
|
|
60
|
-
Capacidade alvo: ${capacidade}
|
|
61
|
-
Modo da tarefa: ${modo}
|
|
62
|
-
|
|
63
|
-
Regras:
|
|
64
|
-
- ANTES DE TUDO: rode \`sema docs-impacto --intencao "<ação>" --json\`.
|
|
65
|
-
- Comece pelo resumo compacto abaixo.
|
|
66
|
-
- Se a tarefa pedir mais contexto, abra \`AGENT_CONTEXT_PACK.json\` e depois \`SEMA_INDEX.json\`.
|
|
67
|
-
- Não tente ler o repositório inteiro se o resumo já disser onde tocar.
|
|
68
|
-
- Preserve contrato, risco, lacuna e checks sugeridos.
|
|
69
|
-
|
|
70
|
-
Contexto do projeto:
|
|
71
|
-
${contextoProjeto.trim()}
|
|
52
|
+
const prompt = `⚠️ REGRA OBRIGATÓRIA DE GOVERNANÇA:
|
|
53
|
+
|
|
54
|
+
ANTES DE QUALQUER AÇÃO (editar, criar, deletar, executar, consultar ou modificar):
|
|
55
|
+
1. Rode \`sema docs-impacto --intencao "<ação>" --json\` com sua intenção declarada.
|
|
56
|
+
2. Aguarde a resposta com as docs obrigatórias.
|
|
57
|
+
3. Leia as docs antes de agir.
|
|
58
|
+
4. Antes de concluir, rode \`sema finalizar-mudanca --intencao "<ação>" --doc-lida <arquivo> --json\` com todas as docs lidas.
|
|
59
|
+
|
|
60
|
+
Você está operando Sema em modo IA-first.
|
|
61
|
+
|
|
62
|
+
Isto é contexto comprimido para IA operar contrato semântico antes de tocar código vivo.
|
|
63
|
+
|
|
64
|
+
Capacidade alvo: ${capacidade}
|
|
65
|
+
Modo da tarefa: ${modo}
|
|
66
|
+
|
|
67
|
+
Regras:
|
|
68
|
+
- ANTES DE TUDO: rode \`sema docs-impacto --intencao "<ação>" --json\`.
|
|
69
|
+
- Comece pelo resumo compacto abaixo.
|
|
70
|
+
- Se a tarefa pedir mais contexto, abra \`AGENT_CONTEXT_PACK.json\` e depois \`SEMA_INDEX.json\`.
|
|
71
|
+
- Não tente ler o repositório inteiro se o resumo já disser onde tocar.
|
|
72
|
+
- Preserve contrato, risco, lacuna e checks sugeridos.
|
|
73
|
+
|
|
74
|
+
Contexto do projeto:
|
|
75
|
+
${contextoProjeto.trim()}
|
|
72
76
|
`;
|
|
73
77
|
if (emJson) {
|
|
74
78
|
console.log(JSON.stringify({
|
package/dist/index.part08.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function principal(): Promise<
|
|
1
|
+
export declare function principal(): Promise<number>;
|
package/dist/index.part08.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// SEMA-GOVERNED: sema.governanca_ia_contexto
|
|
2
|
-
//
|
|
1
|
+
// SEMA-GOVERNED: sema.governanca_ia_contexto, sema.produto.governanca_ia.drift.cache.modos, sema.produto.cli_invocacao_publica, sema.produto.cli_invocacao_publica.argumentos
|
|
2
|
+
// Descrição: encaminha argumentos validados para as consultas e o comando de drift.
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { carregarConfiguracaoProjeto, resolverAlvoPadrao, resolverEstruturaSaidaPadrao, resolverFrameworkPadrao, resolverSaidaPadrao, } from "./projeto.js";
|
|
5
5
|
import { REGISTRO_COMANDOS } from "./comandos.js";
|
|
@@ -7,32 +7,31 @@ import { comandoIniciar, comandoInstalarExemplos } from './initCommand.js';
|
|
|
7
7
|
import { obterOpcao, obterPosicionais, possuiFlag } from './cliArgs.js';
|
|
8
8
|
import { comandoAuthor, comandoProfile, criarPayloadRulePacks, normalizarProfileGovernanca, renderizarRulePacksTexto } from './profileAuthorCommand.js';
|
|
9
9
|
import { comandoDoctor } from './doctorCommand.js';
|
|
10
|
+
import { erroArgumentoInvalido, erroComandoDesconhecido } from './cliControlError.js';
|
|
11
|
+
import { validarSintaxeInvocacaoPublica } from './cliGrammar.js';
|
|
10
12
|
import { normalizarFonteImportacao, normalizarTemplateIniciar, } from './geracaoCore.js';
|
|
11
|
-
import {
|
|
13
|
+
import { obterArgumentos } from "./index.part01.js";
|
|
12
14
|
import { comandoDocsImpacto, comandoFinalizarMudanca, comandoValidar, comandoValidarJson } from "./index.part04.js";
|
|
13
15
|
import { comandoAst, comandoAstJson, comandoDrift, comandoImpacto, comandoImportar, comandoInspecionar, comandoIr, comandoIrJson, comandoRenomearSemantico } from "./index.part05.js";
|
|
14
16
|
import { comandoAjudaIa, comandoCompilar, comandoDiagnosticos, comandoExemplosPromptIa, comandoFormatar, comandoPromptIa, comandoPromptIaReact, comandoPromptIaSemaPrimeiro, comandoPromptIaUi, comandoResumo, comandoStarterIa, comandoSyncCodex } from "./index.part06.js";
|
|
15
17
|
import { comandoContextoIa, comandoPromptCurto, comandoTestar, comandoVerificar, comandoVerificarJson } from "./index.part07.js";
|
|
16
18
|
export async function principal() {
|
|
19
|
+
const argvPublico = process.argv.slice(2);
|
|
20
|
+
const sintaxe = validarSintaxeInvocacaoPublica(argvPublico);
|
|
21
|
+
if (!sintaxe.dispatchPermitido)
|
|
22
|
+
return 0;
|
|
17
23
|
const { comando, resto } = obterArgumentos();
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
console.log(VERSAO_CLI);
|
|
21
|
-
process.exit(0);
|
|
22
|
-
}
|
|
23
|
-
if (!comando || comandoCru === "--help" || comandoCru === "-h") {
|
|
24
|
-
console.log(ajuda());
|
|
25
|
-
process.exit(0);
|
|
26
|
-
}
|
|
27
|
-
const cwd = process.cwd();
|
|
24
|
+
if (!comando)
|
|
25
|
+
return 0;
|
|
28
26
|
const posicionais = obterPosicionais(resto);
|
|
29
|
-
|
|
27
|
+
const modoJson = argvPublico.includes("--json");
|
|
28
|
+
const cwd = process.cwd();
|
|
30
29
|
// --- Comandos registrados via REGISTRO_COMANDOS (guard, init, dev, sync) ---
|
|
31
30
|
const handlerRegistrado = REGISTRO_COMANDOS[comando];
|
|
32
31
|
if (handlerRegistrado) {
|
|
33
|
-
|
|
34
|
-
process.exit(codigoSaida);
|
|
32
|
+
return handlerRegistrado(posicionais, resto, modoJson);
|
|
35
33
|
}
|
|
34
|
+
let codigoSaida = 0;
|
|
36
35
|
switch (comando) {
|
|
37
36
|
case "iniciar":
|
|
38
37
|
codigoSaida = await comandoIniciar(cwd, normalizarTemplateIniciar(obterOpcao(resto, "--template")), { force: possuiFlag(resto, "--force") });
|
|
@@ -58,13 +57,13 @@ export async function principal() {
|
|
|
58
57
|
break;
|
|
59
58
|
case "ast":
|
|
60
59
|
codigoSaida = possuiFlag(resto, "--json")
|
|
61
|
-
? await comandoAstJson(
|
|
62
|
-
: await comandoAst(
|
|
60
|
+
? await comandoAstJson(posicionais[0] ?? "")
|
|
61
|
+
: await comandoAst(posicionais[0] ?? "");
|
|
63
62
|
break;
|
|
64
63
|
case "ir":
|
|
65
64
|
codigoSaida = possuiFlag(resto, "--json")
|
|
66
|
-
? await comandoIrJson(
|
|
67
|
-
: await comandoIr(
|
|
65
|
+
? await comandoIrJson(posicionais[0] ?? "")
|
|
66
|
+
: await comandoIr(posicionais[0] ?? "");
|
|
68
67
|
break;
|
|
69
68
|
case "compilar":
|
|
70
69
|
{
|
|
@@ -105,7 +104,7 @@ export async function principal() {
|
|
|
105
104
|
: await comandoVerificar(posicionais[0], resolverSaidaPadrao(obterOpcao(resto, "--saida", "./.tmp/sema-verificar"), "typescript", await carregarConfiguracaoProjeto(posicionais[0] ? path.resolve(cwd, posicionais[0]) : cwd)), cwd);
|
|
106
105
|
break;
|
|
107
106
|
case "inspecionar":
|
|
108
|
-
codigoSaida = await comandoInspecionar(posicionais[0], possuiFlag(resto, "--json"), cwd);
|
|
107
|
+
codigoSaida = await comandoInspecionar(posicionais[0], possuiFlag(resto, "--json"), cwd, resto);
|
|
109
108
|
break;
|
|
110
109
|
case "drift":
|
|
111
110
|
codigoSaida = await comandoDrift(posicionais[0], resto, possuiFlag(resto, "--json"), cwd);
|
|
@@ -120,9 +119,7 @@ export async function principal() {
|
|
|
120
119
|
{
|
|
121
120
|
const fonte = normalizarFonteImportacao(posicionais[0]);
|
|
122
121
|
if (!fonte || !posicionais[1]) {
|
|
123
|
-
|
|
124
|
-
codigoSaida = 1;
|
|
125
|
-
break;
|
|
122
|
+
throw erroArgumentoInvalido();
|
|
126
123
|
}
|
|
127
124
|
codigoSaida = await comandoImportar(fonte, path.resolve(cwd, posicionais[1]), path.resolve(cwd, obterOpcao(resto, "--saida", "./sema/importado")), obterOpcao(resto, "--namespace"), possuiFlag(resto, "--json"));
|
|
128
125
|
}
|
|
@@ -176,10 +173,8 @@ export async function principal() {
|
|
|
176
173
|
codigoSaida = await comandoContextoIa(posicionais[0] ?? "", obterOpcao(resto, "--saida"), possuiFlag(resto, "--json"));
|
|
177
174
|
break;
|
|
178
175
|
default:
|
|
179
|
-
|
|
180
|
-
codigoSaida = 1;
|
|
181
|
-
break;
|
|
176
|
+
throw erroComandoDesconhecido();
|
|
182
177
|
}
|
|
183
|
-
|
|
178
|
+
return codigoSaida;
|
|
184
179
|
}
|
|
185
180
|
//# sourceMappingURL=index.part08.js.map
|