@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.part02.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: tipa contexto e evidência de drift opcional sem fabricar métricas.
|
|
3
3
|
import { readFile } from "node:fs/promises";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
import { LIMITE_AVISO_LINHAS_CODIGO_GOVERNADO, LIMITE_AVISO_LINHAS_CONTRATO_SEMA, LIMITE_BLOQUEIO_LINHAS_CODIGO_GOVERNADO, LIMITE_BLOQUEIO_LINHAS_CONTRATO_SEMA, } from "./driftOrcamento.js";
|
|
@@ -27,8 +27,13 @@ export function descreverFazModulo(ir, modulo) {
|
|
|
27
27
|
}
|
|
28
28
|
export function coletarResumoSemanticoModulo(contexto) {
|
|
29
29
|
const { arquivo, modulo, geradoEm, ir, briefing, drift } = contexto;
|
|
30
|
-
const
|
|
31
|
-
const
|
|
30
|
+
const driftExecutado = drift.executada && drift.resumo !== null && drift.drift !== null;
|
|
31
|
+
const modoVerificacaoCodigo = driftExecutado
|
|
32
|
+
? (contexto.modoVerificacaoCodigo ?? "codigo_completo")
|
|
33
|
+
: "contratos_apenas";
|
|
34
|
+
const fontesConclusao = driftExecutado
|
|
35
|
+
? (contexto.fontesConclusao ?? ["contrato", "codigo"])
|
|
36
|
+
: ["contrato"];
|
|
32
37
|
const tarefas = ir?.tasks ?? [];
|
|
33
38
|
const rotas = ir?.routes ?? [];
|
|
34
39
|
const superficies = ir?.superficies ?? [];
|
|
@@ -58,7 +63,7 @@ export function coletarResumoSemanticoModulo(contexto) {
|
|
|
58
63
|
modulo,
|
|
59
64
|
modoVerificacaoCodigo,
|
|
60
65
|
avisoVerificacaoCodigo: modoVerificacaoCodigo === "contratos_apenas"
|
|
61
|
-
? "Somente contratos foram
|
|
66
|
+
? "Somente contratos foram analisados; a implementação não foi verificada neste modo."
|
|
62
67
|
: modoVerificacaoCodigo === "codigo_selecionado"
|
|
63
68
|
? "Codigo selecionado foi enviado; conclusoes de implementacao valem apenas para os arquivos do snapshot."
|
|
64
69
|
: null,
|
|
@@ -66,7 +71,7 @@ export function coletarResumoSemanticoModulo(contexto) {
|
|
|
66
71
|
perfilCompatibilidade: ir?.perfilCompatibilidade ?? briefing.perfilCompatibilidade,
|
|
67
72
|
scoreSemantico: briefing.scoreSemantico,
|
|
68
73
|
confiancaGeral: briefing.confiancaGeral,
|
|
69
|
-
riscoOperacional: calcularRiscoOperacionalResumo(drift.resumo),
|
|
74
|
+
riscoOperacional: drift.resumo ? calcularRiscoOperacionalResumo(drift.resumo) : "nao_avaliado",
|
|
70
75
|
faz: descreverFazModulo(ir, modulo),
|
|
71
76
|
tarefasPrincipais: limitarLista(tarefas.map((task) => task.nome), 6),
|
|
72
77
|
entradasChave: limitarLista(tarefas.map((task) => resumirCamposTask(task, "input", 4)), 4),
|
|
@@ -86,8 +91,8 @@ export function coletarResumoSemanticoModulo(contexto) {
|
|
|
86
91
|
inferido: limitarLista(unicosOrdenados(briefing.oQueFoiInferido), 6),
|
|
87
92
|
checksSugeridos: limitarLista(unicosOrdenados(briefing.oQueValidar), 6),
|
|
88
93
|
testesMinimos: limitarLista(unicosOrdenados(briefing.testesMinimos), 6),
|
|
89
|
-
consumerFramework: briefing.consumerFramework ?? drift.drift
|
|
90
|
-
appRoutes: limitarLista(unicosOrdenados(briefing.appRoutes ?? drift.drift
|
|
94
|
+
consumerFramework: briefing.consumerFramework ?? drift.drift?.consumerFramework ?? null,
|
|
95
|
+
appRoutes: limitarLista(unicosOrdenados(briefing.appRoutes ?? drift.drift?.appRoutes ?? []), 8),
|
|
91
96
|
consumerSurfaces: limitarLista(unicosOrdenados(briefing.consumerSurfaces ?? []), 8),
|
|
92
97
|
consumerBridges: limitarLista(unicosOrdenados(briefing.consumerBridges ?? []), 8),
|
|
93
98
|
ancoragensVinculo: limitarLista(unicosOrdenados(briefing.ancoragensVinculo ?? []), 8),
|
|
@@ -116,6 +121,10 @@ export function normalizarResumoModoContratosApenas(resumo) {
|
|
|
116
121
|
.filter((check) => !/drift|vinculo/i.test(check));
|
|
117
122
|
return {
|
|
118
123
|
...resumo,
|
|
124
|
+
appRoutes: modoContratosApenas ? null : resumo.appRoutes,
|
|
125
|
+
consumerSurfaces: modoContratosApenas ? null : resumo.consumerSurfaces,
|
|
126
|
+
consumerBridges: modoContratosApenas ? null : resumo.consumerBridges,
|
|
127
|
+
ancoragensVinculo: modoContratosApenas ? null : resumo.ancoragensVinculo,
|
|
119
128
|
riscosPrincipais: limitarLista(unicosOrdenados([
|
|
120
129
|
...riscosPrincipais,
|
|
121
130
|
...(riscosCodigo || lacunasCodigo ? ["codigo_nao_verificado_neste_modo"] : []),
|
|
@@ -177,6 +186,8 @@ export function descreverFontesConclusao(fontes, modo) {
|
|
|
177
186
|
}
|
|
178
187
|
export function renderizarResumoModuloTexto(resumo, tamanho, modo) {
|
|
179
188
|
const limite = tamanho === "micro" ? 2 : tamanho === "curto" ? 4 : 6;
|
|
189
|
+
const consumerAvaliado = resumo.modoVerificacaoCodigo !== "contratos_apenas";
|
|
190
|
+
const resumirEvidenciaLista = (itens) => itens === null ? "não avaliado" : resumirListaTexto(itens, limite);
|
|
180
191
|
const linhas = [
|
|
181
192
|
`MODO: ${modo}`,
|
|
182
193
|
`MODULO: ${resumo.modulo}`,
|
|
@@ -185,11 +196,11 @@ export function renderizarResumoModuloTexto(resumo, tamanho, modo) {
|
|
|
185
196
|
`MODO_CODIGO: ${resumo.modoVerificacaoCodigo}`,
|
|
186
197
|
...(resumo.avisoVerificacaoCodigo ? [`AVISO_CODIGO: ${resumo.avisoVerificacaoCodigo}`] : []),
|
|
187
198
|
`FONTES_CONCLUSAO: ${resumirListaTexto(resumo.fontesConclusao, limite)}`,
|
|
188
|
-
`CONSUMER_FRAMEWORK: ${resumo.consumerFramework ?? "nenhum"}`,
|
|
189
|
-
`APP_ROUTES: ${
|
|
190
|
-
`CONSUMER_SURFACES: ${
|
|
191
|
-
`CONSUMER_BRIDGES: ${
|
|
192
|
-
`ANCORAGEM_VINCULO: ${
|
|
199
|
+
`CONSUMER_FRAMEWORK: ${resumo.consumerFramework ?? (consumerAvaliado ? "nenhum" : "não avaliado")}`,
|
|
200
|
+
`APP_ROUTES: ${resumirEvidenciaLista(resumo.appRoutes)}`,
|
|
201
|
+
`CONSUMER_SURFACES: ${resumirEvidenciaLista(resumo.consumerSurfaces)}`,
|
|
202
|
+
`CONSUMER_BRIDGES: ${resumirEvidenciaLista(resumo.consumerBridges)}`,
|
|
203
|
+
`ANCORAGEM_VINCULO: ${resumirEvidenciaLista(resumo.ancoragensVinculo)}`,
|
|
193
204
|
`PUBLICO: ${resumirListaTexto(resumo.superficiesPublicas, limite)}`,
|
|
194
205
|
`TAREFAS: ${resumirListaTexto(resumo.tarefasPrincipais, limite)}`,
|
|
195
206
|
`ENTRADAS: ${resumirListaTexto(resumo.entradasChave, limite)}`,
|
|
@@ -203,9 +214,9 @@ export function renderizarResumoModuloTexto(resumo, tamanho, modo) {
|
|
|
203
214
|
`RISCOS: ${resumirListaTexto(resumo.riscosPrincipais, limite)}`,
|
|
204
215
|
`LACUNAS: ${resumirListaTexto(resumo.lacunas, limite)}`,
|
|
205
216
|
`INFERIDO: ${resumirListaTexto(resumo.inferido, limite)}`,
|
|
206
|
-
`CONFIANCA: ${resumo.confiancaGeral}`,
|
|
217
|
+
`CONFIANCA: ${resumo.confiancaGeral ?? "não avaliada"}`,
|
|
207
218
|
`RISCO_OPERACIONAL: ${resumo.riscoOperacional}`,
|
|
208
|
-
`SCORE: ${resumo.scoreSemantico}`,
|
|
219
|
+
`SCORE: ${resumo.scoreSemantico ?? "não avaliado"}`,
|
|
209
220
|
`GERADO_EM: ${resumo.geradoEm}`,
|
|
210
221
|
];
|
|
211
222
|
if (tamanho === "micro") {
|
|
@@ -214,6 +225,9 @@ export function renderizarResumoModuloTexto(resumo, tamanho, modo) {
|
|
|
214
225
|
return `${linhas.join("\n")}\n`;
|
|
215
226
|
}
|
|
216
227
|
export function renderizarResumoModuloMarkdown(resumo, modo, guiaPorCapacidade) {
|
|
228
|
+
const consumerAvaliado = resumo.modoVerificacaoCodigo !== "contratos_apenas";
|
|
229
|
+
const resumirEvidenciaLista = (itens) => itens === null ? "não avaliado" : resumirListaTexto(itens, 6);
|
|
230
|
+
const exibirConsumer = resumo.consumerFramework !== null || resumo.appRoutes === null;
|
|
217
231
|
const linhas = [
|
|
218
232
|
`# Resumo Sema para ${resumo.modulo}`,
|
|
219
233
|
"",
|
|
@@ -224,8 +238,8 @@ export function renderizarResumoModuloMarkdown(resumo, modo, guiaPorCapacidade)
|
|
|
224
238
|
`- Modo de codigo: \`${resumo.modoVerificacaoCodigo}\``,
|
|
225
239
|
...(resumo.avisoVerificacaoCodigo ? [`- Aviso de codigo: ${resumo.avisoVerificacaoCodigo}`] : []),
|
|
226
240
|
`- Fontes de conclusao: ${resumirListaTexto(resumo.fontesConclusao, 6)}`,
|
|
227
|
-
`- Score: \`${resumo.scoreSemantico}\``,
|
|
228
|
-
`-
|
|
241
|
+
`- Score: \`${resumo.scoreSemantico ?? "não avaliado"}\``,
|
|
242
|
+
`- Confiança: \`${resumo.confiancaGeral ?? "não avaliada"}\``,
|
|
229
243
|
`- Risco operacional: \`${resumo.riscoOperacional}\``,
|
|
230
244
|
"",
|
|
231
245
|
"## O que este modulo faz",
|
|
@@ -243,14 +257,14 @@ export function renderizarResumoModuloMarkdown(resumo, modo, guiaPorCapacidade)
|
|
|
243
257
|
`- Erros: ${resumirListaTexto(resumo.erros, 6)}`,
|
|
244
258
|
`- Entidades afetadas: ${resumirListaTexto(resumo.entidadesAfetadas, 6)}`,
|
|
245
259
|
"",
|
|
246
|
-
...(
|
|
260
|
+
...(exibirConsumer
|
|
247
261
|
? [
|
|
248
262
|
"## Consumer IA-first",
|
|
249
263
|
"",
|
|
250
|
-
`- Framework consumer: ${resumo.consumerFramework}`,
|
|
251
|
-
`- Rotas de app: ${
|
|
252
|
-
`- Superficies consumer: ${
|
|
253
|
-
`- Bridges consumer: ${
|
|
264
|
+
`- Framework consumer: ${resumo.consumerFramework ?? (consumerAvaliado ? "nenhum" : "não avaliado")}`,
|
|
265
|
+
`- Rotas de app: ${resumirEvidenciaLista(resumo.appRoutes)}`,
|
|
266
|
+
`- Superficies consumer: ${resumirEvidenciaLista(resumo.consumerSurfaces)}`,
|
|
267
|
+
`- Bridges consumer: ${resumirEvidenciaLista(resumo.consumerBridges)}`,
|
|
254
268
|
"",
|
|
255
269
|
]
|
|
256
270
|
: []),
|
|
@@ -320,27 +334,27 @@ export function criarBriefingMinimo(resumo, modo, tamanho) {
|
|
|
320
334
|
}
|
|
321
335
|
export function criarPromptCurtoModulo(resumo, modo, tamanho, capacidade) {
|
|
322
336
|
const resumoTexto = renderizarResumoModuloTexto(resumo, tamanho, modo).trim();
|
|
323
|
-
return `Você está operando Sema em modo IA-first.
|
|
324
|
-
|
|
325
|
-
Esta linguagem existe para traduzir intenção operacional em contrato consumível por IA. Humanos aprovam; agentes operam.
|
|
326
|
-
|
|
327
|
-
Capacidade alvo: ${capacidade}
|
|
328
|
-
Modo da tarefa: ${modo}
|
|
329
|
-
|
|
330
|
-
Regras:
|
|
331
|
-
- não invente sintaxe nem bloco fora da gramática oficial
|
|
332
|
-
- preserve a intenção do contrato
|
|
333
|
-
- use este resumo como fonte compacta inicial
|
|
334
|
-
- se a tarefa pedir mais contexto, rode \`sema contexto-ia <arquivo.sema> --saida <diretorio> --json\` e então abra \`briefing.min.json\`, \`drift.json\` e \`ir.json\` nessa saída
|
|
335
|
-
- não saia editando software vivo sem olhar risco, lacuna e checks sugeridos
|
|
336
|
-
- se abrir código com \`SEMA-GOVERNED\`, volte ao contrato e chame Sema antes de editar
|
|
337
|
-
- não crie nem conclua código governado acima de ${LIMITE_BLOQUEIO_LINHAS_CODIGO_GOVERNADO} linhas; acima de ${LIMITE_AVISO_LINHAS_CODIGO_GOVERNADO}, planeje divisão; documentação Markdown não entra nesse limite de código
|
|
338
|
-
- não crie nem edite contrato .sema acima de ${LIMITE_BLOQUEIO_LINHAS_CONTRATO_SEMA} linhas; acima de ${LIMITE_AVISO_LINHAS_CONTRATO_SEMA}, planeje split por domínio/capacidade, nunca parte_1/parte_2
|
|
339
|
-
- vários contratos .sema podem governar o mesmo arquivo por vinculos; Sema Código deve preservar essa rastreabilidade
|
|
340
|
-
${resumo.consumerFramework ? "- se for tarefa visual consumer, priorize `appRoutes`, `consumerSurfaces` e `consumerBridges` antes de abrir arquivos aleatórios" : ""}
|
|
341
|
-
|
|
342
|
-
Contexto compacto:
|
|
343
|
-
${resumoTexto}
|
|
337
|
+
return `Você está operando Sema em modo IA-first.
|
|
338
|
+
|
|
339
|
+
Esta linguagem existe para traduzir intenção operacional em contrato consumível por IA. Humanos aprovam; agentes operam.
|
|
340
|
+
|
|
341
|
+
Capacidade alvo: ${capacidade}
|
|
342
|
+
Modo da tarefa: ${modo}
|
|
343
|
+
|
|
344
|
+
Regras:
|
|
345
|
+
- não invente sintaxe nem bloco fora da gramática oficial
|
|
346
|
+
- preserve a intenção do contrato
|
|
347
|
+
- use este resumo como fonte compacta inicial
|
|
348
|
+
- se a tarefa pedir mais contexto, rode \`sema contexto-ia <arquivo.sema> --saida <diretorio> --json\` e então abra \`briefing.min.json\`, \`drift.json\` e \`ir.json\` nessa saída
|
|
349
|
+
- não saia editando software vivo sem olhar risco, lacuna e checks sugeridos
|
|
350
|
+
- se abrir código com \`SEMA-GOVERNED\`, volte ao contrato e chame Sema antes de editar
|
|
351
|
+
- não crie nem conclua código governado acima de ${LIMITE_BLOQUEIO_LINHAS_CODIGO_GOVERNADO} linhas; acima de ${LIMITE_AVISO_LINHAS_CODIGO_GOVERNADO}, planeje divisão; documentação Markdown não entra nesse limite de código
|
|
352
|
+
- não crie nem edite contrato .sema acima de ${LIMITE_BLOQUEIO_LINHAS_CONTRATO_SEMA} linhas; acima de ${LIMITE_AVISO_LINHAS_CONTRATO_SEMA}, planeje split por domínio/capacidade, nunca parte_1/parte_2
|
|
353
|
+
- vários contratos .sema podem governar o mesmo arquivo por vinculos; Sema Código deve preservar essa rastreabilidade
|
|
354
|
+
${resumo.consumerFramework ? "- se for tarefa visual consumer, priorize `appRoutes`, `consumerSurfaces` e `consumerBridges` antes de abrir arquivos aleatórios" : ""}
|
|
355
|
+
|
|
356
|
+
Contexto compacto:
|
|
357
|
+
${resumoTexto}
|
|
344
358
|
`;
|
|
345
359
|
}
|
|
346
360
|
//# sourceMappingURL=index.part02.js.map
|
package/dist/index.part03.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { type IrModulo } from "@sema/nucleo";
|
|
|
2
2
|
import { analisarDriftLegado } from "./drift.js";
|
|
3
3
|
import { type GuiaCapacidadeIaMap } from './agentContextTipos.js';
|
|
4
4
|
import { PacoteContextoModuloIa, ResumoSemanticoModuloIa } from "./index.part01.js";
|
|
5
|
+
import type { ResolucaoModoCacheDrift } from "./driftCacheModes.js";
|
|
5
6
|
export declare function renderizarResumoProjetoMarkdown(geradoEm: string, modulos: ResumoSemanticoModuloIa[], guiaPorCapacidade: GuiaCapacidadeIaMap): string;
|
|
6
7
|
export declare function falharContextoIa(mensagem: string): never;
|
|
7
8
|
export declare function garantirArquivoSema(caminhoArquivo: string): void;
|
|
@@ -52,7 +53,28 @@ export declare function criarBriefingAgente(arquivo: string, modulo: string, ir:
|
|
|
52
53
|
ancoragensVinculo: string[];
|
|
53
54
|
testesMinimos: string[];
|
|
54
55
|
};
|
|
55
|
-
export declare function
|
|
56
|
+
export declare function criarBriefingAgenteContratos(arquivo: string, modulo: string, ir: IrModulo | null): {
|
|
57
|
+
arquivo: string;
|
|
58
|
+
modulo: string;
|
|
59
|
+
perfilCompatibilidade: import("@sema/nucleo").PerfilCompatibilidade;
|
|
60
|
+
scoreSemantico: null;
|
|
61
|
+
confiancaGeral: null;
|
|
62
|
+
riscosPrincipais: string[];
|
|
63
|
+
oQueTocar: string[];
|
|
64
|
+
arquivosProvaveisEditar: string[];
|
|
65
|
+
oQueValidar: string[];
|
|
66
|
+
oQueEstaFrouxo: never[];
|
|
67
|
+
oQueFoiInferido: string[];
|
|
68
|
+
simbolosRelacionados: string[];
|
|
69
|
+
superficiesImpactadas: string[];
|
|
70
|
+
consumerFramework: null;
|
|
71
|
+
appRoutes: never[];
|
|
72
|
+
consumerSurfaces: never[];
|
|
73
|
+
consumerBridges: never[];
|
|
74
|
+
ancoragensVinculo: never[];
|
|
75
|
+
testesMinimos: string[];
|
|
76
|
+
};
|
|
77
|
+
export declare function carregarContextoModuloIa(arquivoEntrada: string, analiseDrift?: ResolucaoModoCacheDrift): Promise<PacoteContextoModuloIa>;
|
|
56
78
|
export declare const ARQUIVOS_RESUMO_MODULO_IA: readonly ["SEMA_BOOT.md", "SEMA_SMALL_MODEL.md", "agent-context-pack.json", "resumo.micro.txt", "resumo.curto.txt", "resumo.md", "briefing.min.json", "prompt-curto.txt"];
|
|
57
79
|
export declare function gerarArquivosResumoModuloIa(contexto: PacoteContextoModuloIa, pastaBase: string): Promise<{
|
|
58
80
|
artefatosCompactos: string[];
|
package/dist/index.part03.js
CHANGED
|
@@ -82,7 +82,7 @@ export function renderizarResumoProjetoMarkdown(geradoEm, modulos, guiaPorCapaci
|
|
|
82
82
|
linhas.push(`- Faz: ${modulo.faz}`);
|
|
83
83
|
linhas.push(`- Publico: ${resumirListaTexto(modulo.superficiesPublicas, 4)}`);
|
|
84
84
|
linhas.push(`- Tocar: ${resumirListaTexto(modulo.arquivosProvaveis, 4)}`);
|
|
85
|
-
linhas.push(`- Score: ${modulo.scoreSemantico} |
|
|
85
|
+
linhas.push(`- Score: ${modulo.scoreSemantico ?? "não avaliado"} | Confiança: ${modulo.confiancaGeral ?? "não avaliada"} | Risco: ${modulo.riscoOperacional}`);
|
|
86
86
|
linhas.push(`- Lacunas: ${resumirListaTexto(modulo.lacunas, 4)}`);
|
|
87
87
|
linhas.push("");
|
|
88
88
|
}
|
|
@@ -248,15 +248,74 @@ export function criarBriefingAgente(arquivo, modulo, ir, resumoDrift, resultadoD
|
|
|
248
248
|
ancoragensVinculo: resumoDrift.ancoragensVinculo,
|
|
249
249
|
testesMinimos: [
|
|
250
250
|
"sema validar <arquivo> --json",
|
|
251
|
-
"sema drift <arquivo> --json",
|
|
251
|
+
"sema drift <arquivo> --cache fresh --json",
|
|
252
252
|
"sema verificar <arquivo-ou-pasta> --json",
|
|
253
253
|
],
|
|
254
254
|
};
|
|
255
255
|
}
|
|
256
|
-
export
|
|
256
|
+
export function criarBriefingAgenteContratos(arquivo, modulo, ir) {
|
|
257
|
+
const vinculos = ir
|
|
258
|
+
? [
|
|
259
|
+
...ir.vinculos,
|
|
260
|
+
...ir.tasks.flatMap((task) => task.vinculos),
|
|
261
|
+
...ir.flows.flatMap((flow) => flow.vinculos),
|
|
262
|
+
...ir.routes.flatMap((route) => route.vinculos),
|
|
263
|
+
...ir.superficies.flatMap((superficie) => superficie.vinculos),
|
|
264
|
+
]
|
|
265
|
+
: [];
|
|
266
|
+
const arquivosDeclarados = [...new Set(vinculos.flatMap((vinculo) => [
|
|
267
|
+
vinculo.arquivo,
|
|
268
|
+
vinculo.tipo === "arquivo" ? vinculo.valor : undefined,
|
|
269
|
+
]).filter((valor) => Boolean(valor)))]
|
|
270
|
+
.sort((a, b) => a.localeCompare(b, "pt-BR"));
|
|
271
|
+
const simbolosDeclarados = [...new Set(vinculos
|
|
272
|
+
.map((vinculo) => vinculo.simbolo)
|
|
273
|
+
.filter((valor) => Boolean(valor)))]
|
|
274
|
+
.sort((a, b) => a.localeCompare(b, "pt-BR"));
|
|
275
|
+
return {
|
|
276
|
+
arquivo,
|
|
277
|
+
modulo,
|
|
278
|
+
perfilCompatibilidade: ir?.perfilCompatibilidade ?? "interno",
|
|
279
|
+
scoreSemantico: null,
|
|
280
|
+
confiancaGeral: null,
|
|
281
|
+
riscosPrincipais: [...new Set(ir?.resumoAgente.riscos ?? [])],
|
|
282
|
+
oQueTocar: arquivosDeclarados,
|
|
283
|
+
arquivosProvaveisEditar: arquivosDeclarados,
|
|
284
|
+
oQueValidar: [...new Set([
|
|
285
|
+
...(ir?.resumoAgente.checks ?? []),
|
|
286
|
+
...(ir?.tasks.flatMap((task) => task.resumoAgente.checks) ?? []),
|
|
287
|
+
"executar drift antes de concluir sobre a implementação",
|
|
288
|
+
])],
|
|
289
|
+
oQueEstaFrouxo: [],
|
|
290
|
+
oQueFoiInferido: ["modo_contratos_apenas", "implementacao_nao_verificada"],
|
|
291
|
+
simbolosRelacionados: simbolosDeclarados,
|
|
292
|
+
superficiesImpactadas: [
|
|
293
|
+
...(ir?.routes.map((route) => `${route.metodo ?? "?"} ${route.caminho ?? route.nome}`) ?? []),
|
|
294
|
+
...(ir?.superficies.map((superficie) => `${superficie.tipo}:${superficie.nome}`) ?? []),
|
|
295
|
+
],
|
|
296
|
+
consumerFramework: null,
|
|
297
|
+
appRoutes: [],
|
|
298
|
+
consumerSurfaces: [],
|
|
299
|
+
consumerBridges: [],
|
|
300
|
+
ancoragensVinculo: [],
|
|
301
|
+
testesMinimos: [
|
|
302
|
+
"sema validar <arquivo> --json",
|
|
303
|
+
"sema drift <arquivo> --cache fresh --json",
|
|
304
|
+
],
|
|
305
|
+
};
|
|
306
|
+
}
|
|
307
|
+
const ANALISE_DRIFT_PADRAO_CONTEXTO = {
|
|
308
|
+
modo: "fresh",
|
|
309
|
+
executar: true,
|
|
310
|
+
avisos: [],
|
|
311
|
+
};
|
|
312
|
+
export async function carregarContextoModuloIa(arquivoEntrada, analiseDrift = ANALISE_DRIFT_PADRAO_CONTEXTO) {
|
|
257
313
|
const arquivo = path.resolve(arquivoEntrada);
|
|
258
314
|
garantirArquivoSema(arquivo);
|
|
259
|
-
const contextoProjeto = await carregarProjeto(arquivo, process.cwd()
|
|
315
|
+
const contextoProjeto = await carregarProjeto(arquivo, process.cwd(), {
|
|
316
|
+
escopo: "modulo",
|
|
317
|
+
adiarDescobertaCodigo: true,
|
|
318
|
+
});
|
|
260
319
|
const resultadoModulo = contextoProjeto.modulosSelecionados.find((item) => path.resolve(item.caminho) === arquivo)?.resultado;
|
|
261
320
|
if (!resultadoModulo) {
|
|
262
321
|
falharContextoIa(`Nao foi possivel encontrar o modulo correspondente ao arquivo ${arquivo}.`);
|
|
@@ -264,13 +323,27 @@ export async function carregarContextoModuloIa(arquivoEntrada) {
|
|
|
264
323
|
const sucesso = !temErros(resultadoModulo.diagnosticos);
|
|
265
324
|
const modulo = resultadoModulo.modulo?.nome ?? path.basename(arquivo, ".sema");
|
|
266
325
|
const geradoEm = new Date().toISOString();
|
|
267
|
-
const resultadoDrift =
|
|
326
|
+
const resultadoDrift = analiseDrift.executar
|
|
327
|
+
? await analisarDriftLegado(contextoProjeto, {
|
|
328
|
+
escopo: "modulo",
|
|
329
|
+
modoCache: analiseDrift.modo,
|
|
330
|
+
avisosModoCache: analiseDrift.avisos,
|
|
331
|
+
})
|
|
332
|
+
: null;
|
|
333
|
+
const resumoDrift = resultadoDrift
|
|
334
|
+
? resumirDriftPorModulo(resultadoModulo.modulo?.nome ?? null, arquivo, resultadoDrift)
|
|
335
|
+
: null;
|
|
268
336
|
const drift = {
|
|
269
337
|
comando: "drift",
|
|
270
338
|
caminho: arquivo,
|
|
271
339
|
modulo: resultadoModulo.modulo?.nome ?? null,
|
|
272
|
-
|
|
273
|
-
|
|
340
|
+
modo: analiseDrift.modo,
|
|
341
|
+
executada: analiseDrift.executar,
|
|
342
|
+
sucesso: resultadoDrift?.sucesso ?? null,
|
|
343
|
+
aviso: analiseDrift.executar
|
|
344
|
+
? null
|
|
345
|
+
: "Análise de drift não executada; implementação, vínculos e rotas não foram verificados.",
|
|
346
|
+
resumo: resumoDrift,
|
|
274
347
|
drift: resultadoDrift,
|
|
275
348
|
};
|
|
276
349
|
const validar = {
|
|
@@ -307,7 +380,9 @@ export async function carregarContextoModuloIa(arquivoEntrada) {
|
|
|
307
380
|
diagnosticos: resultadoModulo.diagnosticos,
|
|
308
381
|
ir: resultadoModulo.ir ?? null,
|
|
309
382
|
};
|
|
310
|
-
const briefing =
|
|
383
|
+
const briefing = resultadoDrift && resumoDrift
|
|
384
|
+
? criarBriefingAgente(arquivo, modulo, resultadoModulo.ir ?? null, resumoDrift, resultadoDrift)
|
|
385
|
+
: criarBriefingAgenteContratos(arquivo, modulo, resultadoModulo.ir ?? null);
|
|
311
386
|
return {
|
|
312
387
|
arquivo,
|
|
313
388
|
modulo,
|
package/dist/index.part04.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { type GuiaCapacidadeIaMap } from './agentContextTipos.js';
|
|
2
|
-
import { ContextoIaGerado, ResumoSemanticoModuloIa } from "./index.part01.js";
|
|
2
|
+
import { ContextoIaGerado, ResumoSemanticoModuloIa, type ResultadoDriftIa } from "./index.part01.js";
|
|
3
|
+
import type { ResolucaoModoCacheDrift } from "./driftCacheModes.js";
|
|
3
4
|
export declare const ARQUIVOS_RESUMO_PROJETO_IA: readonly ["SEMA_BOOT.md", "SEMA_SMALL_MODEL.md", "SEMA_BRIEF.md", "SEMA_BRIEF.micro.txt", "SEMA_BRIEF.curto.txt", "SEMA_INDEX.json", "AGENT_CONTEXT_PACK.json", "docs/ai-integration.md"];
|
|
4
|
-
export declare function gerarResumoProjetoIa(entrada: string | undefined, pastaSaidaOpcional?: string, escreverNaRaiz?: boolean): Promise<{
|
|
5
|
+
export declare function gerarResumoProjetoIa(entrada: string | undefined, pastaSaidaOpcional?: string, escreverNaRaiz?: boolean, analiseDrift?: ResolucaoModoCacheDrift): Promise<{
|
|
5
6
|
geradoEm: string;
|
|
6
7
|
baseProjeto: string;
|
|
7
8
|
pastaSaida: string;
|
|
@@ -9,6 +10,13 @@ export declare function gerarResumoProjetoIa(entrada: string | undefined, pastaS
|
|
|
9
10
|
artefatos: string[];
|
|
10
11
|
modulos: ResumoSemanticoModuloIa[];
|
|
11
12
|
guiaPorCapacidade: GuiaCapacidadeIaMap;
|
|
13
|
+
analiseDrift: {
|
|
14
|
+
modo: ResolucaoModoCacheDrift["modo"];
|
|
15
|
+
executada: boolean;
|
|
16
|
+
sucesso: boolean | null;
|
|
17
|
+
aviso: string | null;
|
|
18
|
+
cache: ResultadoDriftIa["escopo_aplicado"]["cache"] | null;
|
|
19
|
+
};
|
|
12
20
|
}>;
|
|
13
21
|
export declare function gerarContextoIa(arquivoEntrada: string, pastaSaidaOpcional?: string): Promise<ContextoIaGerado>;
|
|
14
22
|
export declare function resolverEntradaDocs(posicionais: string[], args: string[]): {
|
package/dist/index.part04.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// SEMA-GOVERNED: sema.governanca_ia_contexto, sema.produto.escrita_segura_workspace
|
|
1
|
+
// SEMA-GOVERNED: sema.governanca_ia_contexto, sema.produto.escrita_segura_workspace, sema.produto.governanca_ia.drift.cache.modos
|
|
2
2
|
// Descrição: gera contexto local e grava artefatos somente dentro da base validada.
|
|
3
3
|
import { mkdir } from "node:fs/promises";
|
|
4
4
|
import path from "node:path";
|
|
@@ -18,7 +18,7 @@ import { resumirListaTexto, unicosOrdenados } from './textoListas.js';
|
|
|
18
18
|
import { EXTENSOES_CODIGO, listarArquivosRecursivosLimitado } from './projetoBusca.js';
|
|
19
19
|
import { VERSAO_CLI } from "./index.part01.js";
|
|
20
20
|
import { coletarResumoSemanticoModulo, descreverFontesConclusao, detectarFontesConclusaoSnapshot, detectarModoVerificacaoCodigo } from "./index.part02.js";
|
|
21
|
-
import { ARQUIVOS_RESUMO_MODULO_IA, carregarContextoModuloIa, criarBriefingAgente, gerarArquivosResumoModuloIa, renderizarResumoProjetoMarkdown, resumirDriftPorModulo } from "./index.part03.js";
|
|
21
|
+
import { ARQUIVOS_RESUMO_MODULO_IA, carregarContextoModuloIa, criarBriefingAgente, criarBriefingAgenteContratos, gerarArquivosResumoModuloIa, renderizarResumoProjetoMarkdown, resumirDriftPorModulo } from "./index.part03.js";
|
|
22
22
|
export const ARQUIVOS_RESUMO_PROJETO_IA = [
|
|
23
23
|
ARQUIVO_SEMA_BOOT,
|
|
24
24
|
ARQUIVO_SEMA_SMALL_MODEL,
|
|
@@ -53,19 +53,36 @@ function escolherTopArquivosResumo(modulos, arquivosCodigoDetectados) {
|
|
|
53
53
|
}
|
|
54
54
|
return { arquivos: [], fonte: "nenhum" };
|
|
55
55
|
}
|
|
56
|
-
export async function gerarResumoProjetoIa(entrada, pastaSaidaOpcional, escreverNaRaiz = false) {
|
|
57
|
-
const contextoProjeto = await carregarProjeto(entrada, process.cwd()
|
|
56
|
+
export async function gerarResumoProjetoIa(entrada, pastaSaidaOpcional, escreverNaRaiz = false, analiseDrift = { modo: "none", executar: false, avisos: [] }) {
|
|
57
|
+
const contextoProjeto = await carregarProjeto(entrada, process.cwd(), {
|
|
58
|
+
escopo: "projeto",
|
|
59
|
+
adiarDescobertaCodigo: !analiseDrift.executar,
|
|
60
|
+
});
|
|
58
61
|
const geradoEm = new Date().toISOString();
|
|
59
62
|
const guiaPorCapacidade = criarGuiaCapacidadeIa();
|
|
60
63
|
const entradaCanonica = criarEntradaCanonicaProjeto(guiaPorCapacidade);
|
|
61
64
|
const agentContextPack = entradaCanonica.agentContextPack;
|
|
62
|
-
const modoVerificacaoCodigo =
|
|
63
|
-
|
|
64
|
-
|
|
65
|
+
const modoVerificacaoCodigo = analiseDrift.executar
|
|
66
|
+
? await detectarModoVerificacaoCodigo(contextoProjeto.baseProjeto, contextoProjeto.diretoriosCodigo)
|
|
67
|
+
: "contratos_apenas";
|
|
68
|
+
const fontesConclusao = analiseDrift.executar
|
|
69
|
+
? await detectarFontesConclusaoSnapshot(contextoProjeto.baseProjeto)
|
|
70
|
+
: ["contrato"];
|
|
71
|
+
const resultadoDrift = analiseDrift.executar
|
|
72
|
+
? await analisarDriftLegado(contextoProjeto, {
|
|
73
|
+
escopo: "projeto",
|
|
74
|
+
modoCache: analiseDrift.modo,
|
|
75
|
+
avisosModoCache: analiseDrift.avisos,
|
|
76
|
+
})
|
|
77
|
+
: null;
|
|
65
78
|
const modulos = contextoProjeto.modulosSelecionados.map((item) => {
|
|
66
79
|
const modulo = item.resultado.modulo?.nome ?? path.basename(item.caminho, ".sema");
|
|
67
|
-
const driftResumo =
|
|
68
|
-
|
|
80
|
+
const driftResumo = resultadoDrift
|
|
81
|
+
? resumirDriftPorModulo(modulo, item.caminho, resultadoDrift)
|
|
82
|
+
: null;
|
|
83
|
+
const briefing = resultadoDrift && driftResumo
|
|
84
|
+
? criarBriefingAgente(item.caminho, modulo, item.resultado.ir ?? null, driftResumo, resultadoDrift)
|
|
85
|
+
: criarBriefingAgenteContratos(item.caminho, modulo, item.resultado.ir ?? null);
|
|
69
86
|
return coletarResumoSemanticoModulo({
|
|
70
87
|
arquivo: item.caminho,
|
|
71
88
|
modulo,
|
|
@@ -76,7 +93,12 @@ export async function gerarResumoProjetoIa(entrada, pastaSaidaOpcional, escrever
|
|
|
76
93
|
comando: "drift",
|
|
77
94
|
caminho: item.caminho,
|
|
78
95
|
modulo,
|
|
79
|
-
|
|
96
|
+
modo: analiseDrift.modo,
|
|
97
|
+
executada: analiseDrift.executar,
|
|
98
|
+
sucesso: resultadoDrift?.sucesso ?? null,
|
|
99
|
+
aviso: analiseDrift.executar
|
|
100
|
+
? null
|
|
101
|
+
: "Análise de drift não executada; implementação, vínculos e rotas não foram verificados.",
|
|
80
102
|
resumo: driftResumo,
|
|
81
103
|
drift: resultadoDrift,
|
|
82
104
|
},
|
|
@@ -84,7 +106,7 @@ export async function gerarResumoProjetoIa(entrada, pastaSaidaOpcional, escrever
|
|
|
84
106
|
fontesConclusao,
|
|
85
107
|
});
|
|
86
108
|
});
|
|
87
|
-
const arquivosCodigoDetectados = modoVerificacaoCodigo === "codigo_completo"
|
|
109
|
+
const arquivosCodigoDetectados = analiseDrift.executar && modoVerificacaoCodigo === "codigo_completo"
|
|
88
110
|
? await listarTopArquivosCodigoDetectados(contextoProjeto.diretoriosCodigo)
|
|
89
111
|
: [];
|
|
90
112
|
const topArquivosResumo = escolherTopArquivosResumo(modulos, arquivosCodigoDetectados);
|
|
@@ -105,6 +127,15 @@ export async function gerarResumoProjetoIa(entrada, pastaSaidaOpcional, escrever
|
|
|
105
127
|
cliVersao: VERSAO_CLI,
|
|
106
128
|
baseProjeto,
|
|
107
129
|
modoVerificacaoCodigo,
|
|
130
|
+
analiseDrift: {
|
|
131
|
+
modo: analiseDrift.modo,
|
|
132
|
+
executada: analiseDrift.executar,
|
|
133
|
+
sucesso: resultadoDrift?.sucesso ?? null,
|
|
134
|
+
aviso: analiseDrift.executar
|
|
135
|
+
? null
|
|
136
|
+
: "Análise de drift não executada; o resumo contém somente evidência contratual.",
|
|
137
|
+
cache: resultadoDrift?.escopo_aplicado.cache ?? null,
|
|
138
|
+
},
|
|
108
139
|
fontesConclusao,
|
|
109
140
|
conclusoesPorFonte: descreverFontesConclusao(fontesConclusao, modoVerificacaoCodigo),
|
|
110
141
|
totalModulos: modulos.length,
|
|
@@ -118,6 +149,7 @@ export async function gerarResumoProjetoIa(entrada, pastaSaidaOpcional, escrever
|
|
|
118
149
|
`PROJETO: ${path.basename(baseProjeto)}`,
|
|
119
150
|
`MODULOS: ${modulos.length}`,
|
|
120
151
|
`MODO_CODIGO: ${modoVerificacaoCodigo}`,
|
|
152
|
+
`RESULTADO_DRIFT: ${resultadoDrift ? (resultadoDrift.sucesso ? "sucesso" : "falha") : "não avaliado"}`,
|
|
121
153
|
`FONTES_CONCLUSAO: ${resumirListaTexto(fontesConclusao, 4)}`,
|
|
122
154
|
`ENTRADA_IA: ${entradaCanonica.porCapacidade.fraca.join(" -> ")}`,
|
|
123
155
|
`POLITICA_PLATAFORMA: Sema governa projeto e nao contorna politicas da plataforma; se houver alerta externo, pare e explique sem burlar filtro`,
|
|
@@ -138,6 +170,7 @@ export async function gerarResumoProjetoIa(entrada, pastaSaidaOpcional, escrever
|
|
|
138
170
|
`BASE: ${baseProjeto}`,
|
|
139
171
|
`MODULOS: ${modulos.length}`,
|
|
140
172
|
`MODO_CODIGO: ${modoVerificacaoCodigo}`,
|
|
173
|
+
`RESULTADO_DRIFT: ${resultadoDrift ? (resultadoDrift.sucesso ? "sucesso" : "falha") : "não avaliado"}`,
|
|
141
174
|
...(modoVerificacaoCodigo === "contratos_apenas"
|
|
142
175
|
? ["AVISO_CODIGO: somente contratos enviados; implementacao nao verificada neste modo"]
|
|
143
176
|
: modoVerificacaoCodigo === "codigo_selecionado"
|
|
@@ -181,6 +214,7 @@ export async function gerarResumoProjetoIa(entrada, pastaSaidaOpcional, escrever
|
|
|
181
214
|
artefatos: [...ARQUIVOS_RESUMO_PROJETO_IA],
|
|
182
215
|
modulos,
|
|
183
216
|
guiaPorCapacidade,
|
|
217
|
+
analiseDrift: indexJson.analiseDrift,
|
|
184
218
|
};
|
|
185
219
|
}
|
|
186
220
|
export async function gerarContextoIa(arquivoEntrada, pastaSaidaOpcional) {
|
|
@@ -285,7 +319,7 @@ Antes de escolher arquivo de código, leia \`${ARQUIVO_SEMA_BOOT}\` e \`agent-co
|
|
|
285
319
|
|
|
286
320
|
- Timeout local do agente não é falha do Sema.
|
|
287
321
|
- Se uma chamada Sema estourar, aumente o timeout e tente de novo.
|
|
288
|
-
- Se o projeto inteiro for lento, escopar para \`sema resumo "${contexto.arquivo}" --micro --para mudanca\`.
|
|
322
|
+
- Se o projeto inteiro for lento, escopar para \`sema resumo "${contexto.arquivo}" --micro --para mudanca --drift none\`.
|
|
289
323
|
- Se o ambiente impedir continuar, pare bloqueado e não avance com código sem Sema.
|
|
290
324
|
|
|
291
325
|
## Fechamento
|
|
@@ -293,13 +327,13 @@ Antes de escolher arquivo de código, leia \`${ARQUIVO_SEMA_BOOT}\` e \`agent-co
|
|
|
293
327
|
1. Editar o arquivo \`.sema\`.
|
|
294
328
|
2. Rodar \`sema formatar "${contexto.arquivo}"\`.
|
|
295
329
|
3. Rodar \`sema validar "${contexto.arquivo}" --json\`.
|
|
296
|
-
4. Rodar \`sema drift "${contexto.arquivo}" --json\`.
|
|
330
|
+
4. Rodar \`sema drift "${contexto.arquivo}" --cache fresh --json\`.
|
|
297
331
|
5. Fechar com \`sema verificar <arquivo-ou-pasta> --json --saida ./.tmp/verificacao-ia\`.
|
|
298
332
|
|
|
299
333
|
## Textos base para onboarding do agente
|
|
300
334
|
|
|
301
335
|
- \`sema starter-ia\`
|
|
302
|
-
- \`sema resumo "${contexto.arquivo}" --micro --para onboarding\`
|
|
336
|
+
- \`sema resumo "${contexto.arquivo}" --micro --para onboarding --drift none\`
|
|
303
337
|
- \`sema prompt-curto "${contexto.arquivo}" --para mudanca\`
|
|
304
338
|
- \`sema prompt-ia\`
|
|
305
339
|
`;
|
package/dist/index.part05.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type FonteImportacao } from "./importador.js";
|
|
2
|
-
export declare function comandoInspecionar(entrada: string | undefined, emJson: boolean, cwd?: string): Promise<number>;
|
|
2
|
+
export declare function comandoInspecionar(entrada: string | undefined, emJson: boolean, cwd?: string, args?: string[]): Promise<number>;
|
|
3
3
|
export declare function comandoDrift(entrada: string | undefined, args: string[], emJson: boolean, cwd?: string): Promise<number>;
|
|
4
4
|
export declare function comandoImpacto(entrada: string | undefined, args: string[], emJson: boolean, cwd?: string): Promise<number>;
|
|
5
5
|
export declare function comandoRenomearSemantico(entrada: string | undefined, args: string[], emJson: boolean, cwd?: string): Promise<number>;
|