@semacode/cli 2.3.1 → 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/README.md +265 -217
- package/dist/agentContextPack.js +14 -10
- package/dist/agentEntryPoints.d.ts +5 -0
- package/dist/agentEntryPoints.js +567 -557
- package/dist/angular-consumer-standalone.js +1 -1
- 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 +26 -24
- package/dist/drift.part01.js +2 -1
- package/dist/drift.part04.d.ts +12 -3
- package/dist/drift.part04.js +88 -17
- package/dist/drift.part05.d.ts +2 -2
- package/dist/drift.part05.js +8 -6
- package/dist/drift.part06.d.ts +2 -2
- package/dist/drift.part06.js +113 -26
- package/dist/drift.part07.d.ts +11 -11
- package/dist/drift.part07.js +261 -265
- package/dist/drift.part08.d.ts +2 -2
- package/dist/drift.part08.js +35 -26
- package/dist/drift.part11.js +238 -56
- package/dist/drift.part12.d.ts +1 -1
- package/dist/drift.part12.js +193 -21
- package/dist/drift.part13.d.ts +20 -39
- package/dist/drift.part13.js +601 -647
- 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 +2 -28
- package/dist/driftCatalogo.js +143 -284
- package/dist/driftEscopo.d.ts +1 -3
- package/dist/driftEscopo.js +235 -151
- package/dist/driftEscopoReferencias.d.ts +5 -1
- package/dist/driftEscopoReferencias.js +375 -28
- package/dist/driftOrcamento.d.ts +0 -6
- package/dist/driftOrcamento.js +2 -1
- package/dist/execucoesExternas.js +19 -5
- package/dist/geracaoCore.js +4 -6
- package/dist/iaPrompts.d.ts +3 -3
- package/dist/iaPrompts.js +312 -313
- package/dist/index.d.ts +4 -1
- package/dist/index.js +6 -25
- package/dist/index.part01.d.ts +20 -28
- package/dist/index.part01.js +16 -237
- package/dist/index.part02.js +36 -22
- package/dist/index.part03.d.ts +24 -2
- package/dist/index.part03.js +83 -19
- package/dist/index.part04.d.ts +10 -2
- package/dist/index.part04.js +142 -120
- package/dist/index.part05.js +80 -78
- package/dist/index.part06.js +34 -17
- package/dist/index.part07.js +7 -3
- package/dist/index.part08.d.ts +1 -1
- package/dist/index.part08.js +22 -27
- package/dist/initCommand.js +5 -1
- package/dist/initTemplatesBase.js +81 -79
- package/dist/pipelineConteudo/command.d.ts +1 -0
- package/dist/pipelineConteudo/command.js +9 -2
- 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/projetoCarregar.js +35 -17
- package/dist/projetoCatalogo.d.ts +1 -0
- package/dist/projetoCatalogo.js +64 -25
- package/dist/projetoOrigens.d.ts +2 -0
- package/dist/projetoOrigens.js +65 -9
- package/dist/projetoTipos.d.ts +1 -0
- 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/docs/README.md +34 -30
- package/docs/ai-integration.md +25 -12
- package/docs/ai-onboarding.md +37 -18
- package/docs/ai-workflow.md +9 -7
- package/docs/cli.md +125 -7
- package/docs/commands.md +41 -20
- package/docs/deploy.md +21 -8
- package/docs/descoberta-capacidades.md +106 -106
- package/docs/documentation.md +49 -39
- package/docs/drift-cache.md +108 -0
- package/docs/getting-started.md +43 -18
- package/docs/pipeline-conteudo.md +246 -246
- package/docs/profiles.md +54 -54
- package/docs/repositories.md +19 -2
- package/docs/rollback.md +15 -8
- package/docs/security.md +25 -3
- package/docs/sistemas-interativos.md +379 -374
- package/docs/testing.md +139 -40
- package/exemplos/pipeline-conteudo/README.md +44 -44
- package/exemplos/pipeline-conteudo/alvos.json +23 -23
- package/exemplos/pipeline-conteudo/definicao.json +136 -136
- package/exemplos/profile_simulation.sema +211 -211
- package/exemplos/sistemas-interativos/README.md +100 -100
- package/exemplos/sistemas-interativos/advanced/acceptance-context-evaluate-valid.json +5 -5
- package/exemplos/sistemas-interativos/advanced/acceptance-lock-valid.json +16 -16
- package/exemplos/sistemas-interativos/advanced/asset-provenance-valid.json +32 -32
- package/exemplos/sistemas-interativos/advanced/autonomy-repair-valid.json +93 -93
- package/exemplos/sistemas-interativos/advanced/control-run-definition-valid.json +78 -78
- package/exemplos/sistemas-interativos/advanced/control-run-valid.json +27 -27
- package/exemplos/sistemas-interativos/advanced/distributed-workers-valid.json +79 -79
- package/exemplos/sistemas-interativos/advanced/editor-state-valid.json +42 -42
- package/exemplos/sistemas-interativos/advanced/engine-snapshot-after-valid.json +32 -32
- package/exemplos/sistemas-interativos/advanced/engine-snapshot-before-valid.json +23 -23
- package/exemplos/sistemas-interativos/advanced/job-orchestration-valid.json +39 -39
- package/exemplos/sistemas-interativos/advanced/multimodal-evidence-valid.json +46 -46
- package/exemplos/sistemas-interativos/advanced/multiplayer-authority-valid.json +39 -39
- package/exemplos/sistemas-interativos/advanced/playtest-fuzz-valid.json +37 -37
- package/exemplos/sistemas-interativos/advanced/portability-valid.json +104 -104
- package/exemplos/sistemas-interativos/advanced/temporal-evidence-valid.json +27 -27
- package/exemplos/sistemas-interativos/advanced/temporal-valid.json +118 -118
- package/exemplos/sistemas-interativos/experience-ir-valid.json +459 -459
- package/exemplos/sistemas-interativos/game-2d.json +83 -83
- package/exemplos/sistemas-interativos/game-3d-human.json +81 -81
- package/exemplos/sistemas-interativos/game-pixel-16-bit.json +97 -97
- package/exemplos/sistemas-interativos/game-pixel-8-bit.json +94 -94
- package/exemplos/sistemas-interativos/game-xr-human.json +80 -80
- package/exemplos/sistemas-interativos/hybrid-2-5d.json +108 -108
- package/exemplos/sistemas-interativos/protocol-mutating-rollback-valid.json +75 -75
- package/exemplos/sistemas-interativos/protocol-read-only-valid.json +58 -58
- package/exemplos/sistemas-interativos/simulation-2d-controlled.json +97 -97
- package/exemplos/sistemas-interativos/simulation-3d-calibrated-autonomous.json +141 -141
- package/exemplos/sistemas-interativos/simulation-headless-autonomous-batch.json +112 -112
- package/exemplos/sistemas-interativos/simulation-pixel-16-bit.json +103 -103
- package/exemplos/sistemas-interativos/simulation-text-controlled.json +95 -95
- package/node_modules/@sema/gerador-cpp/package.json +1 -1
- package/node_modules/@sema/gerador-dotnet/package.json +1 -1
- package/node_modules/@sema/gerador-lua/dist/index.js +51 -51
- package/node_modules/@sema/gerador-php/dist/index.js +113 -113
- 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 +9 -4
- package/scripts/postinstall.mjs +148 -0
- package/skills/sema/SKILL.md +199 -0
- package/skills/sema/agents/openai.yaml +4 -0
- package/dist/driftCache.d.ts +0 -49
- package/dist/driftCache.js +0 -311
- package/dist/driftCacheIncremental.d.ts +0 -98
- package/dist/driftCacheIncremental.js +0 -596
- package/dist/driftCatalogoPersistente.d.ts +0 -8
- package/dist/driftCatalogoPersistente.js +0 -77
- 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,14 +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 {
|
|
13
|
+
import { resolverAnaliseDriftConsultaCli, resolverOpcoesDriftCli } from "./index.part01.js";
|
|
11
14
|
export async function comandoInspecionar(entrada, emJson, cwd = process.cwd(), args = []) {
|
|
12
|
-
const analiseDrift =
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const
|
|
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
|
|
16
27
|
? await analisarDriftLegado(contextoProjeto, analiseDrift.opcoes)
|
|
17
|
-
:
|
|
28
|
+
: null;
|
|
18
29
|
const framework = resolverFrameworkPadrao(undefined, contextoProjeto.configCarregada);
|
|
19
30
|
const estruturaSaida = resolverEstruturaSaidaPadrao(undefined, framework, contextoProjeto.configCarregada);
|
|
20
31
|
const alvos = resolverAlvosVerificacao(contextoProjeto.configCarregada);
|
|
@@ -35,78 +46,61 @@ export async function comandoInspecionar(entrada, emJson, cwd = process.cwd(), a
|
|
|
35
46
|
modoAdocao: contextoProjeto.modoAdocao,
|
|
36
47
|
analiseDrift: {
|
|
37
48
|
modo: analiseDrift.modo,
|
|
38
|
-
executada:
|
|
39
|
-
|
|
40
|
-
aviso:
|
|
49
|
+
executada: analiseDrift.executar,
|
|
50
|
+
sucesso: resultadoDrift?.sucesso ?? null,
|
|
51
|
+
aviso: analiseDrift.executar
|
|
41
52
|
? null
|
|
42
|
-
: "Análise de drift não executada;
|
|
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,
|
|
43
56
|
},
|
|
44
|
-
scoreDrift:
|
|
45
|
-
confiancaGeral:
|
|
46
|
-
consumerFramework:
|
|
47
|
-
appRoutes:
|
|
48
|
-
consumerSurfaces:
|
|
49
|
-
consumerBridges:
|
|
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,
|
|
50
63
|
},
|
|
51
64
|
projeto: {
|
|
52
65
|
arquivos: contextoProjeto.arquivosProjeto,
|
|
53
|
-
arquivosDescobertos: contextoProjeto.arquivosDescobertos,
|
|
54
66
|
modulos: contextoProjeto.modulosSelecionados.map((item) => ({
|
|
55
67
|
caminho: item.caminho,
|
|
56
68
|
modulo: item.resultado.modulo?.nome ?? null,
|
|
57
69
|
sucesso: !temErros(item.resultado.diagnosticos),
|
|
58
70
|
diagnosticos: item.resultado.diagnosticos.length,
|
|
59
71
|
superficies: item.resultado.ir?.superficies.map((superficie) => `${superficie.tipo}:${superficie.nome}`) ?? [],
|
|
60
|
-
|
|
61
|
-
vinculos: item.resultado.ir
|
|
62
|
-
? [
|
|
63
|
-
...item.resultado.ir.vinculos,
|
|
64
|
-
...item.resultado.ir.tasks.flatMap((task) => task.vinculos),
|
|
65
|
-
...item.resultado.ir.flows.flatMap((flow) => flow.vinculos),
|
|
66
|
-
...item.resultado.ir.routes.flatMap((route) => route.vinculos),
|
|
67
|
-
...item.resultado.ir.superficies.flatMap((superficie) => superficie.vinculos),
|
|
68
|
-
]
|
|
69
|
-
: [],
|
|
70
|
-
arquivosEsperados: item.resultado.ir
|
|
71
|
-
? [...new Set([
|
|
72
|
-
...item.resultado.ir.vinculos,
|
|
73
|
-
...item.resultado.ir.tasks.flatMap((task) => task.vinculos),
|
|
74
|
-
...item.resultado.ir.flows.flatMap((flow) => flow.vinculos),
|
|
75
|
-
...item.resultado.ir.routes.flatMap((route) => route.vinculos),
|
|
76
|
-
...item.resultado.ir.superficies.flatMap((superficie) => superficie.vinculos),
|
|
77
|
-
].flatMap((vinculo) => [
|
|
78
|
-
vinculo.arquivo,
|
|
79
|
-
vinculo.tipo === "arquivo" ? vinculo.valor : undefined,
|
|
80
|
-
]).filter((arquivo) => Boolean(arquivo)))]
|
|
81
|
-
.sort((a, b) => a.localeCompare(b, "pt-BR"))
|
|
82
|
-
: [],
|
|
83
|
-
implementacao: driftExecutado
|
|
72
|
+
implementacao: resultadoDrift
|
|
84
73
|
? resumirDriftPorModulo(item.resultado.modulo?.nome ?? null, item.caminho, resultadoDrift)
|
|
85
74
|
: null,
|
|
86
75
|
})),
|
|
87
76
|
},
|
|
88
77
|
};
|
|
78
|
+
const codigoSaida = resultadoDrift?.sucesso === false ? 1 : 0;
|
|
89
79
|
if (emJson) {
|
|
90
80
|
console.log(JSON.stringify(payload, null, 2));
|
|
91
|
-
return
|
|
81
|
+
return codigoSaida;
|
|
92
82
|
}
|
|
93
|
-
console.log("
|
|
83
|
+
console.log("Inspeção de projeto Sema");
|
|
94
84
|
console.log(`- Entrada: ${payload.entrada}`);
|
|
95
|
-
console.log(`-
|
|
85
|
+
console.log(`- Configuração: ${payload.configuracao.caminho ?? "nenhuma"}`);
|
|
96
86
|
console.log(`- Base do projeto: ${payload.configuracao.baseProjeto}`);
|
|
97
87
|
console.log(`- Framework: ${payload.configuracao.framework}`);
|
|
98
88
|
console.log(`- Estrutura de saida: ${payload.configuracao.estruturaSaida}`);
|
|
99
89
|
console.log(`- Alvos: ${payload.configuracao.alvos.join(", ")}`);
|
|
100
|
-
console.log(`- Modo de
|
|
90
|
+
console.log(`- Modo de adoção: ${payload.configuracao.modoAdocao}`);
|
|
101
91
|
console.log(`- Análise de drift: ${payload.configuracao.analiseDrift.modo} (${payload.configuracao.analiseDrift.executada ? "executada" : "não executada"})`);
|
|
102
92
|
if (payload.configuracao.analiseDrift.executada) {
|
|
103
|
-
console.log(`-
|
|
104
|
-
console.log(`-
|
|
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}`);
|
|
105
96
|
}
|
|
106
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");
|
|
107
101
|
console.log(`- Aviso: ${payload.configuracao.analiseDrift.aviso}`);
|
|
108
102
|
}
|
|
109
|
-
console.log("-
|
|
103
|
+
console.log("- Saídas por alvo:");
|
|
110
104
|
for (const [alvo, saida] of Object.entries(payload.configuracao.saidas)) {
|
|
111
105
|
console.log(` - ${alvo}: ${saida}`);
|
|
112
106
|
}
|
|
@@ -114,22 +108,16 @@ export async function comandoInspecionar(entrada, emJson, cwd = process.cwd(), a
|
|
|
114
108
|
for (const origem of payload.configuracao.origens) {
|
|
115
109
|
console.log(` - ${origem}`);
|
|
116
110
|
}
|
|
117
|
-
console.log("-
|
|
111
|
+
console.log("- Diretórios de código:");
|
|
118
112
|
for (const diretorio of payload.configuracao.diretoriosCodigo) {
|
|
119
113
|
console.log(` - ${diretorio}`);
|
|
120
114
|
}
|
|
121
115
|
console.log(`- Fontes de legado detectadas: ${payload.configuracao.fontesLegado.join(", ") || "nenhuma"}`);
|
|
122
|
-
console.log(
|
|
123
|
-
console.log(`- Contratos descobertos: ${payload.projeto.arquivosDescobertos.length}`);
|
|
124
|
-
console.log("- Modulos selecionados:");
|
|
116
|
+
console.log("- Módulos selecionados:");
|
|
125
117
|
for (const modulo of payload.projeto.modulos) {
|
|
126
118
|
console.log(` - ${modulo.modulo ?? "(sem modulo)"} :: ${modulo.caminho} :: diagnosticos=${modulo.diagnosticos}`);
|
|
127
|
-
console.log(` tasks=${modulo.tasks.length} vinculos=${modulo.vinculos.length} arquivos esperados=${modulo.arquivosEsperados.length}`);
|
|
128
|
-
for (const arquivoEsperado of modulo.arquivosEsperados.slice(0, 8)) {
|
|
129
|
-
console.log(` arquivo esperado: ${arquivoEsperado}`);
|
|
130
|
-
}
|
|
131
119
|
if (modulo.implementacao) {
|
|
132
|
-
console.log(` impls
|
|
120
|
+
console.log(` impls válidos=${modulo.implementacao.implsValidos} quebrados=${modulo.implementacao.implsQuebrados} recursos divergentes=${modulo.implementacao.recursosDivergentesCount} sem_impl=${modulo.implementacao.tasksSemImplementacao}`);
|
|
133
121
|
for (const arquivoRelacionado of modulo.implementacao.arquivosRelacionados.slice(0, 5)) {
|
|
134
122
|
console.log(` arquivo relacionado: ${arquivoRelacionado}`);
|
|
135
123
|
}
|
|
@@ -138,11 +126,14 @@ export async function comandoInspecionar(entrada, emJson, cwd = process.cwd(), a
|
|
|
138
126
|
console.log(" implementação: não verificada neste modo");
|
|
139
127
|
}
|
|
140
128
|
}
|
|
141
|
-
return
|
|
129
|
+
return codigoSaida;
|
|
142
130
|
}
|
|
143
131
|
export async function comandoDrift(entrada, args, emJson, cwd = process.cwd()) {
|
|
144
132
|
const opcoes = resolverOpcoesDriftCli(args);
|
|
145
|
-
const contextoProjeto = await carregarProjeto(entrada, cwd, {
|
|
133
|
+
const contextoProjeto = await carregarProjeto(entrada, cwd, {
|
|
134
|
+
escopo: opcoes.escopo,
|
|
135
|
+
adiarDescobertaCodigo: opcoes.escopo !== "projeto",
|
|
136
|
+
});
|
|
146
137
|
const resultado = await analisarDriftLegado(contextoProjeto, opcoes);
|
|
147
138
|
if (emJson) {
|
|
148
139
|
console.log(JSON.stringify(resultado, null, 2));
|
|
@@ -150,18 +141,29 @@ export async function comandoDrift(entrada, args, emJson, cwd = process.cwd()) {
|
|
|
150
141
|
}
|
|
151
142
|
console.log("Drift entre Sema e codigo legado");
|
|
152
143
|
console.log(`- Escopo aplicado: ${resultado.escopo_aplicado.escopo}`);
|
|
153
|
-
console.log(`-
|
|
154
|
-
console.log(`- Cobertura: ${resultado.escopo_aplicado.cobertura ?? "
|
|
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"}`);
|
|
155
146
|
console.log(`- Arquivos planejados: ${resultado.escopo_aplicado.arquivosPlanejados?.length ?? 0}`);
|
|
156
|
-
console.log(`-
|
|
157
|
-
console.log(`-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
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
|
+
}
|
|
165
167
|
}
|
|
166
168
|
console.log(`- Ignorar worktrees: ${resultado.escopo_aplicado.ignorarWorktrees ? "sim" : "nao"}`);
|
|
167
169
|
console.log(`- Ignorar consumidores laterais: ${resultado.escopo_aplicado.ignorarConsumidoresLaterais ? "sim" : "nao"}`);
|
|
@@ -251,10 +253,10 @@ export async function comandoImpacto(entrada, args, emJson, cwd = process.cwd())
|
|
|
251
253
|
return 1;
|
|
252
254
|
}
|
|
253
255
|
const opcoes = resolverOpcoesDriftCli(args);
|
|
254
|
-
|
|
255
|
-
opcoes.escopo
|
|
256
|
-
|
|
257
|
-
|
|
256
|
+
const contextoProjeto = await carregarProjeto(entrada, cwd, {
|
|
257
|
+
escopo: opcoes.escopo,
|
|
258
|
+
adiarDescobertaCodigo: opcoes.escopo !== "projeto",
|
|
259
|
+
});
|
|
258
260
|
const resultado = await gerarMapaImpactoSemantico(contextoProjeto, alvoSemantico, obterOpcao(args, "--mudanca", `avaliar impacto de ${alvoSemantico}`), opcoes);
|
|
259
261
|
if (emJson) {
|
|
260
262
|
console.log(JSON.stringify(resultado, null, 2));
|
|
@@ -289,10 +291,10 @@ export async function comandoRenomearSemantico(entrada, args, emJson, cwd = proc
|
|
|
289
291
|
return 1;
|
|
290
292
|
}
|
|
291
293
|
const opcoes = resolverOpcoesDriftCli(args);
|
|
292
|
-
|
|
293
|
-
opcoes.escopo
|
|
294
|
-
|
|
295
|
-
|
|
294
|
+
const contextoProjeto = await carregarProjeto(entrada, cwd, {
|
|
295
|
+
escopo: opcoes.escopo,
|
|
296
|
+
adiarDescobertaCodigo: opcoes.escopo !== "projeto",
|
|
297
|
+
});
|
|
296
298
|
const resultado = await assistirRenomeacaoSemantica(contextoProjeto, nomeAtual, nomeNovo, opcoes);
|
|
297
299
|
if (emJson) {
|
|
298
300
|
console.log(JSON.stringify(resultado, null, 2));
|
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,14 +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.",
|
|
212
|
-
"Use `--drift fresh|cache|none` em `resumo` para escolher análise nova, cache válido ou somente contratos; `--micro` usa `none` por padrão e os demais usam `fresh`.",
|
|
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.",
|
|
213
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.",
|
|
214
217
|
"Use `sema prompt-curto <arquivo> --curto --para mudanca` para colar contexto em modelo gratuito.",
|
|
215
218
|
"Use `sema prompt-ia`, `sema prompt-ia-ui`, `sema prompt-ia-react` e `sema prompt-ia-sema-primeiro` conforme a tarefa.",
|
|
216
219
|
"Use `sema exemplos-prompt-ia` para pegar modelos prontos de prompt.",
|
|
217
|
-
"Use `sema inspecionar` para descobrir
|
|
218
|
-
"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.",
|
|
219
222
|
"Use `sema docs-impacto --intencao <acao>` para ler ou criar docs obrigatorias antes de agir.",
|
|
220
223
|
"Use `sema finalizar-mudanca --intencao <acao>` para bloquear conclusao sem leitura documental comprovada.",
|
|
221
224
|
"Use `sema contexto-ia <arquivo.sema> --saida <diretorio> --json` para gerar AST, IR, drift, `briefing.json` e `briefing.min.json`.",
|
|
@@ -287,8 +290,10 @@ export async function comandoResumo(entrada, args, emJson) {
|
|
|
287
290
|
const pastaSaida = obterOpcao(args, "--saida");
|
|
288
291
|
const escreverNaRaiz = possuiFlag(args, "--raiz");
|
|
289
292
|
const alvo = entrada ? path.resolve(process.cwd(), entrada) : process.cwd();
|
|
290
|
-
|
|
291
|
-
|
|
293
|
+
const analiseDrift = resolverAnaliseDriftConsultaCli(args, "resumo");
|
|
294
|
+
const alvoEhArquivo = (await stat(alvo)).isFile();
|
|
295
|
+
if (alvoEhArquivo) {
|
|
296
|
+
const contexto = await carregarContextoModuloIa(alvo, analiseDrift);
|
|
292
297
|
const resumoSemantico = coletarResumoSemanticoModulo(contexto);
|
|
293
298
|
const guiaPorCapacidade = criarGuiaCapacidadeIa();
|
|
294
299
|
const texto = tamanho === "medio"
|
|
@@ -312,20 +317,28 @@ export async function comandoResumo(entrada, args, emJson) {
|
|
|
312
317
|
modulo: contexto.modulo,
|
|
313
318
|
pastaSaida: pastaResumo ?? null,
|
|
314
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
|
+
},
|
|
315
328
|
guiaPorCapacidade,
|
|
316
329
|
resumo: resumoSemantico,
|
|
317
330
|
texto,
|
|
318
331
|
}, null, 2));
|
|
319
|
-
return 0;
|
|
332
|
+
return contexto.drift.sucesso === false ? 1 : 0;
|
|
320
333
|
}
|
|
321
334
|
if (pastaResumo) {
|
|
322
335
|
console.log(`Resumo IA-first gerado em ${pastaResumo}`);
|
|
323
336
|
console.log("");
|
|
324
337
|
}
|
|
325
338
|
console.log(texto);
|
|
326
|
-
return 0;
|
|
339
|
+
return contexto.drift.sucesso === false ? 1 : 0;
|
|
327
340
|
}
|
|
328
|
-
const resumoProjeto = await gerarResumoProjetoIa(alvo, pastaSaida, escreverNaRaiz,
|
|
341
|
+
const resumoProjeto = await gerarResumoProjetoIa(alvo, pastaSaida, escreverNaRaiz, analiseDrift);
|
|
329
342
|
const arquivoResumo = tamanho === "micro"
|
|
330
343
|
? "SEMA_BRIEF.micro.txt"
|
|
331
344
|
: tamanho === "curto"
|
|
@@ -341,15 +354,19 @@ export async function comandoResumo(entrada, args, emJson) {
|
|
|
341
354
|
baseProjeto: resumoProjeto.baseProjeto,
|
|
342
355
|
pastaSaida: resumoProjeto.pastaSaida,
|
|
343
356
|
artefatos: resumoProjeto.artefatos,
|
|
357
|
+
analiseDrift: {
|
|
358
|
+
...resumoProjeto.analiseDrift,
|
|
359
|
+
avisos: analiseDrift.avisos,
|
|
360
|
+
},
|
|
344
361
|
guiaPorCapacidade: resumoProjeto.guiaPorCapacidade,
|
|
345
362
|
modulos: resumoProjeto.modulos,
|
|
346
363
|
texto,
|
|
347
364
|
}, null, 2));
|
|
348
|
-
return 0;
|
|
365
|
+
return resumoProjeto.analiseDrift.sucesso === false ? 1 : 0;
|
|
349
366
|
}
|
|
350
367
|
console.log(`Resumo IA-first do projeto gerado em ${resumoProjeto.pastaSaida}`);
|
|
351
368
|
console.log("");
|
|
352
369
|
console.log(texto);
|
|
353
|
-
return 0;
|
|
370
|
+
return resumoProjeto.analiseDrift.sucesso === false ? 1 : 0;
|
|
354
371
|
}
|
|
355
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);
|
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
|
{
|
|
@@ -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
|
package/dist/initCommand.js
CHANGED
|
@@ -11,7 +11,11 @@ async function sincronizarKitIaInicial(cwd) {
|
|
|
11
11
|
import("./index.part04.js"),
|
|
12
12
|
import("./agentEntryPoints.js"),
|
|
13
13
|
]);
|
|
14
|
-
const resumoProjeto = await gerarResumoProjetoIa(cwd, undefined, true
|
|
14
|
+
const resumoProjeto = await gerarResumoProjetoIa(cwd, undefined, true, {
|
|
15
|
+
modo: "fresh",
|
|
16
|
+
executar: true,
|
|
17
|
+
avisos: [],
|
|
18
|
+
});
|
|
15
19
|
const indexJson = JSON.parse(fs.readFileSync(path.join(resumoProjeto.pastaSaida, "SEMA_INDEX.json"), "utf8"));
|
|
16
20
|
const codex = await sincronizarEntrypointCodex(resumoProjeto.baseProjeto, indexJson.agentContextPack);
|
|
17
21
|
return {
|