@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.part03.js
CHANGED
|
@@ -8,7 +8,6 @@ import { criarEntradaCanonicaProjeto } from './agentContext.js';
|
|
|
8
8
|
import { renderizarSemaBoot, renderizarSemaSmallModel, } from './agentEntryPoints.js';
|
|
9
9
|
import { escreverArquivoWorkspaceSeguro, validarDestinosEscritaWorkspace } from './workspaceWrite.js';
|
|
10
10
|
import { resumirListaTexto } from './textoListas.js';
|
|
11
|
-
import { criarResultadoDriftNaoExecutado, resolverAnaliseDriftCli, } from "./index.part01.js";
|
|
12
11
|
import { coletarResumoSemanticoModulo, criarBriefingMinimo, criarPromptCurtoModulo, renderizarResumoModuloMarkdown, renderizarResumoModuloTexto } from "./index.part02.js";
|
|
13
12
|
export function renderizarResumoProjetoMarkdown(geradoEm, modulos, guiaPorCapacidade) {
|
|
14
13
|
const entradaCanonica = criarEntradaCanonicaProjeto(guiaPorCapacidade);
|
|
@@ -83,7 +82,7 @@ export function renderizarResumoProjetoMarkdown(geradoEm, modulos, guiaPorCapaci
|
|
|
83
82
|
linhas.push(`- Faz: ${modulo.faz}`);
|
|
84
83
|
linhas.push(`- Publico: ${resumirListaTexto(modulo.superficiesPublicas, 4)}`);
|
|
85
84
|
linhas.push(`- Tocar: ${resumirListaTexto(modulo.arquivosProvaveis, 4)}`);
|
|
86
|
-
linhas.push(`- Score: ${modulo.scoreSemantico} |
|
|
85
|
+
linhas.push(`- Score: ${modulo.scoreSemantico ?? "não avaliado"} | Confiança: ${modulo.confiancaGeral ?? "não avaliada"} | Risco: ${modulo.riscoOperacional}`);
|
|
87
86
|
linhas.push(`- Lacunas: ${resumirListaTexto(modulo.lacunas, 4)}`);
|
|
88
87
|
linhas.push("");
|
|
89
88
|
}
|
|
@@ -249,16 +248,74 @@ export function criarBriefingAgente(arquivo, modulo, ir, resumoDrift, resultadoD
|
|
|
249
248
|
ancoragensVinculo: resumoDrift.ancoragensVinculo,
|
|
250
249
|
testesMinimos: [
|
|
251
250
|
"sema validar <arquivo> --json",
|
|
252
|
-
"sema drift <arquivo> --json",
|
|
251
|
+
"sema drift <arquivo> --cache fresh --json",
|
|
253
252
|
"sema verificar <arquivo-ou-pasta> --json",
|
|
254
253
|
],
|
|
255
254
|
};
|
|
256
255
|
}
|
|
257
|
-
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) {
|
|
258
313
|
const arquivo = path.resolve(arquivoEntrada);
|
|
259
314
|
garantirArquivoSema(arquivo);
|
|
260
|
-
const
|
|
261
|
-
|
|
315
|
+
const contextoProjeto = await carregarProjeto(arquivo, process.cwd(), {
|
|
316
|
+
escopo: "modulo",
|
|
317
|
+
adiarDescobertaCodigo: true,
|
|
318
|
+
});
|
|
262
319
|
const resultadoModulo = contextoProjeto.modulosSelecionados.find((item) => path.resolve(item.caminho) === arquivo)?.resultado;
|
|
263
320
|
if (!resultadoModulo) {
|
|
264
321
|
falharContextoIa(`Nao foi possivel encontrar o modulo correspondente ao arquivo ${arquivo}.`);
|
|
@@ -266,20 +323,27 @@ export async function carregarContextoModuloIa(arquivoEntrada, args = [], modoDr
|
|
|
266
323
|
const sucesso = !temErros(resultadoModulo.diagnosticos);
|
|
267
324
|
const modulo = resultadoModulo.modulo?.nome ?? path.basename(arquivo, ".sema");
|
|
268
325
|
const geradoEm = new Date().toISOString();
|
|
269
|
-
const resultadoDrift = analiseDrift.
|
|
270
|
-
?
|
|
271
|
-
|
|
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;
|
|
272
336
|
const drift = {
|
|
273
337
|
comando: "drift",
|
|
274
338
|
caminho: arquivo,
|
|
275
339
|
modulo: resultadoModulo.modulo?.nome ?? null,
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
aviso: analiseDrift.
|
|
280
|
-
?
|
|
281
|
-
:
|
|
282
|
-
resumo:
|
|
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,
|
|
283
347
|
drift: resultadoDrift,
|
|
284
348
|
};
|
|
285
349
|
const validar = {
|
|
@@ -316,7 +380,9 @@ export async function carregarContextoModuloIa(arquivoEntrada, args = [], modoDr
|
|
|
316
380
|
diagnosticos: resultadoModulo.diagnosticos,
|
|
317
381
|
ir: resultadoModulo.ir ?? null,
|
|
318
382
|
};
|
|
319
|
-
const briefing =
|
|
383
|
+
const briefing = resultadoDrift && resumoDrift
|
|
384
|
+
? criarBriefingAgente(arquivo, modulo, resultadoModulo.ir ?? null, resumoDrift, resultadoDrift)
|
|
385
|
+
: criarBriefingAgenteContratos(arquivo, modulo, resultadoModulo.ir ?? null);
|
|
320
386
|
return {
|
|
321
387
|
arquivo,
|
|
322
388
|
modulo,
|
|
@@ -330,8 +396,6 @@ export async function carregarContextoModuloIa(arquivoEntrada, args = [], modoDr
|
|
|
330
396
|
irJson: ir,
|
|
331
397
|
drift,
|
|
332
398
|
briefing,
|
|
333
|
-
modoVerificacaoCodigo: analiseDrift.modo === "none" ? "contratos_apenas" : undefined,
|
|
334
|
-
fontesConclusao: analiseDrift.modo === "none" ? ["contrato"] : undefined,
|
|
335
399
|
};
|
|
336
400
|
}
|
|
337
401
|
export const ARQUIVOS_RESUMO_MODULO_IA = [
|
package/dist/index.part04.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { type GuiaCapacidadeIaMap } from './agentContextTipos.js';
|
|
2
|
-
import { ContextoIaGerado, ResumoSemanticoModuloIa, type
|
|
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,
|
|
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";
|
|
@@ -16,9 +16,9 @@ import { carregarModulos } from './carregarModulos.js';
|
|
|
16
16
|
import { obterOpcao, obterOpcoesRepetidas, possuiFlag } from './cliArgs.js';
|
|
17
17
|
import { resumirListaTexto, unicosOrdenados } from './textoListas.js';
|
|
18
18
|
import { EXTENSOES_CODIGO, listarArquivosRecursivosLimitado } from './projetoBusca.js';
|
|
19
|
-
import { VERSAO_CLI
|
|
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,26 +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
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
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;
|
|
72
78
|
const modulos = contextoProjeto.modulosSelecionados.map((item) => {
|
|
73
79
|
const modulo = item.resultado.modulo?.nome ?? path.basename(item.caminho, ".sema");
|
|
74
|
-
const driftResumo =
|
|
75
|
-
|
|
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);
|
|
76
86
|
return coletarResumoSemanticoModulo({
|
|
77
87
|
arquivo: item.caminho,
|
|
78
88
|
modulo,
|
|
@@ -83,12 +93,12 @@ export async function gerarResumoProjetoIa(entrada, pastaSaidaOpcional, escrever
|
|
|
83
93
|
comando: "drift",
|
|
84
94
|
caminho: item.caminho,
|
|
85
95
|
modulo,
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
aviso: analiseDrift.
|
|
90
|
-
?
|
|
91
|
-
:
|
|
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.",
|
|
92
102
|
resumo: driftResumo,
|
|
93
103
|
drift: resultadoDrift,
|
|
94
104
|
},
|
|
@@ -96,7 +106,7 @@ export async function gerarResumoProjetoIa(entrada, pastaSaidaOpcional, escrever
|
|
|
96
106
|
fontesConclusao,
|
|
97
107
|
});
|
|
98
108
|
});
|
|
99
|
-
const arquivosCodigoDetectados = modoVerificacaoCodigo === "codigo_completo"
|
|
109
|
+
const arquivosCodigoDetectados = analiseDrift.executar && modoVerificacaoCodigo === "codigo_completo"
|
|
100
110
|
? await listarTopArquivosCodigoDetectados(contextoProjeto.diretoriosCodigo)
|
|
101
111
|
: [];
|
|
102
112
|
const topArquivosResumo = escolherTopArquivosResumo(modulos, arquivosCodigoDetectados);
|
|
@@ -117,6 +127,15 @@ export async function gerarResumoProjetoIa(entrada, pastaSaidaOpcional, escrever
|
|
|
117
127
|
cliVersao: VERSAO_CLI,
|
|
118
128
|
baseProjeto,
|
|
119
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
|
+
},
|
|
120
139
|
fontesConclusao,
|
|
121
140
|
conclusoesPorFonte: descreverFontesConclusao(fontesConclusao, modoVerificacaoCodigo),
|
|
122
141
|
totalModulos: modulos.length,
|
|
@@ -130,6 +149,7 @@ export async function gerarResumoProjetoIa(entrada, pastaSaidaOpcional, escrever
|
|
|
130
149
|
`PROJETO: ${path.basename(baseProjeto)}`,
|
|
131
150
|
`MODULOS: ${modulos.length}`,
|
|
132
151
|
`MODO_CODIGO: ${modoVerificacaoCodigo}`,
|
|
152
|
+
`RESULTADO_DRIFT: ${resultadoDrift ? (resultadoDrift.sucesso ? "sucesso" : "falha") : "não avaliado"}`,
|
|
133
153
|
`FONTES_CONCLUSAO: ${resumirListaTexto(fontesConclusao, 4)}`,
|
|
134
154
|
`ENTRADA_IA: ${entradaCanonica.porCapacidade.fraca.join(" -> ")}`,
|
|
135
155
|
`POLITICA_PLATAFORMA: Sema governa projeto e nao contorna politicas da plataforma; se houver alerta externo, pare e explique sem burlar filtro`,
|
|
@@ -150,6 +170,7 @@ export async function gerarResumoProjetoIa(entrada, pastaSaidaOpcional, escrever
|
|
|
150
170
|
`BASE: ${baseProjeto}`,
|
|
151
171
|
`MODULOS: ${modulos.length}`,
|
|
152
172
|
`MODO_CODIGO: ${modoVerificacaoCodigo}`,
|
|
173
|
+
`RESULTADO_DRIFT: ${resultadoDrift ? (resultadoDrift.sucesso ? "sucesso" : "falha") : "não avaliado"}`,
|
|
153
174
|
...(modoVerificacaoCodigo === "contratos_apenas"
|
|
154
175
|
? ["AVISO_CODIGO: somente contratos enviados; implementacao nao verificada neste modo"]
|
|
155
176
|
: modoVerificacaoCodigo === "codigo_selecionado"
|
|
@@ -193,6 +214,7 @@ export async function gerarResumoProjetoIa(entrada, pastaSaidaOpcional, escrever
|
|
|
193
214
|
artefatos: [...ARQUIVOS_RESUMO_PROJETO_IA],
|
|
194
215
|
modulos,
|
|
195
216
|
guiaPorCapacidade,
|
|
217
|
+
analiseDrift: indexJson.analiseDrift,
|
|
196
218
|
};
|
|
197
219
|
}
|
|
198
220
|
export async function gerarContextoIa(arquivoEntrada, pastaSaidaOpcional) {
|
|
@@ -218,102 +240,102 @@ export async function gerarContextoIa(arquivoEntrada, pastaSaidaOpcional) {
|
|
|
218
240
|
await escreverArquivoWorkspaceSeguro(pastaBase, artefato.caminhoRelativo, artefato.conteudo, { sobrescrever: true });
|
|
219
241
|
}
|
|
220
242
|
const resumoGerado = await gerarArquivosResumoModuloIa(contexto, pastaBase);
|
|
221
|
-
const resumo = `# Contexto de IA para ${contexto.modulo}
|
|
222
|
-
|
|
223
|
-
- Arquivo alvo: \`${contexto.arquivo}\`
|
|
224
|
-
- Modulo: \`${contexto.modulo}\`
|
|
225
|
-
- Sucesso em validar: \`${contexto.sucesso}\`
|
|
226
|
-
- Quantidade de diagnosticos: \`${contexto.diagnosticos.length}\`
|
|
227
|
-
- Gerado em: \`${contexto.geradoEm}\`
|
|
228
|
-
|
|
229
|
-
## Arquivos gerados neste pacote
|
|
230
|
-
|
|
231
|
-
- \`agent-context-pack.json\`
|
|
232
|
-
- \`${ARQUIVO_SEMA_BOOT}\`
|
|
233
|
-
- \`${ARQUIVO_SEMA_SMALL_MODEL}\`
|
|
234
|
-
- \`resumo.micro.txt\`
|
|
235
|
-
- \`resumo.curto.txt\`
|
|
236
|
-
- \`resumo.md\`
|
|
237
|
-
- \`briefing.min.json\`
|
|
238
|
-
- \`prompt-curto.txt\`
|
|
239
|
-
- \`validar.json\`
|
|
240
|
-
- \`diagnosticos.json\`
|
|
241
|
-
- \`ast.json\`
|
|
242
|
-
- \`ir.json\`
|
|
243
|
-
- \`drift.json\`
|
|
244
|
-
- \`briefing.json\`
|
|
245
|
-
|
|
246
|
-
## Fluxo recomendado para o agente
|
|
247
|
-
|
|
248
|
-
Antes de escolher arquivo de código, leia \`${ARQUIVO_SEMA_BOOT}\` e \`agent-context-pack.json\`. Eles declaram regras obrigatórias, proibições, prioridades, idioma humano e quando abrir texto bruto como \`AGENTS.md\`, \`exemplos/\`, docs e contratos.
|
|
249
|
-
|
|
250
|
-
## Políticas da plataforma
|
|
251
|
-
|
|
252
|
-
- Sema governa contrato, escopo, drift, evidência e qualidade; não contorna políticas, termos, permissões, segurança ou leis.
|
|
253
|
-
- Se houver alerta externo, trate como bloqueio da plataforma ou falso positivo possível, explique de forma neutra e não tente burlar filtro.
|
|
254
|
-
|
|
255
|
-
### IA fraca, gratuita ou com pouca disciplina
|
|
256
|
-
|
|
257
|
-
1. Ler \`${ARQUIVO_SEMA_BOOT}\`.
|
|
258
|
-
2. Ler \`${ARQUIVO_SEMA_SMALL_MODEL}\`.
|
|
259
|
-
3. Ler \`agent-context-pack.json\`.
|
|
260
|
-
4. Ler \`resumo.micro.txt\`.
|
|
261
|
-
5. Ler \`briefing.min.json\`.
|
|
262
|
-
6. Se ainda couber contexto, ler \`resumo.curto.txt\`.
|
|
263
|
-
|
|
264
|
-
### IA média
|
|
265
|
-
|
|
266
|
-
1. Ler \`${ARQUIVO_SEMA_BOOT}\`.
|
|
267
|
-
2. Ler \`agent-context-pack.json\`.
|
|
268
|
-
3. Ler \`resumo.curto.txt\`.
|
|
269
|
-
4. Ler \`briefing.min.json\`.
|
|
270
|
-
5. Ler \`drift.json\`.
|
|
271
|
-
6. Se precisar, subir para \`resumo.md\`.
|
|
272
|
-
|
|
273
|
-
### IA forte ou com tool use
|
|
274
|
-
|
|
275
|
-
1. Ler \`${ARQUIVO_SEMA_BOOT}\`.
|
|
276
|
-
2. Ler \`agent-context-pack.json\`.
|
|
277
|
-
3. Ler \`README.md\`.
|
|
278
|
-
4. Ler \`resumo.md\`.
|
|
279
|
-
5. Ler \`briefing.json\`.
|
|
280
|
-
6. Ler \`drift.json\`.
|
|
281
|
-
7. Só depois abrir \`ir.json\` e \`ast.json\`.
|
|
282
|
-
|
|
283
|
-
## Idioma humano
|
|
284
|
-
|
|
285
|
-
- Responda no idioma do usuário.
|
|
286
|
-
- Em PT-BR, use acentos, cedilha, pontuação e símbolos normais.
|
|
287
|
-
- A DSL \`.sema\` pode ser ASCII; texto humano não precisa ser.
|
|
288
|
-
|
|
289
|
-
## Texto bruto sob demanda
|
|
290
|
-
|
|
291
|
-
- Abra \`AGENTS.md\` antes de editar código, contrato, docs operacionais, release ou deploy.
|
|
292
|
-
- Abra \`exemplos/\` antes de criar ou corrigir sintaxe \`.sema\`.
|
|
293
|
-
- Abra \`docs/syntax.md\` quando exemplos não bastarem para resolver a gramática.
|
|
294
|
-
- Abra \`contratos/\` antes de qualquer implementação ou mudança de comportamento.
|
|
295
|
-
|
|
296
|
-
## Timeout e retry
|
|
297
|
-
|
|
298
|
-
- Timeout local do agente não é falha do Sema.
|
|
299
|
-
- Se uma chamada Sema estourar, aumente o timeout e tente de novo.
|
|
300
|
-
- Se o projeto inteiro for lento, escopar para \`sema resumo "${contexto.arquivo}" --micro --para mudanca\`.
|
|
301
|
-
- Se o ambiente impedir continuar, pare bloqueado e não avance com código sem Sema.
|
|
302
|
-
|
|
303
|
-
## Fechamento
|
|
304
|
-
|
|
305
|
-
1. Editar o arquivo \`.sema\`.
|
|
306
|
-
2. Rodar \`sema formatar "${contexto.arquivo}"\`.
|
|
307
|
-
3. Rodar \`sema validar "${contexto.arquivo}" --json\`.
|
|
308
|
-
4. Rodar \`sema drift "${contexto.arquivo}" --json\`.
|
|
309
|
-
5. Fechar com \`sema verificar <arquivo-ou-pasta> --json --saida ./.tmp/verificacao-ia\`.
|
|
310
|
-
|
|
311
|
-
## Textos base para onboarding do agente
|
|
312
|
-
|
|
313
|
-
- \`sema starter-ia\`
|
|
314
|
-
- \`sema resumo "${contexto.arquivo}" --micro --para onboarding\`
|
|
315
|
-
- \`sema prompt-curto "${contexto.arquivo}" --para mudanca\`
|
|
316
|
-
- \`sema prompt-ia\`
|
|
243
|
+
const resumo = `# Contexto de IA para ${contexto.modulo}
|
|
244
|
+
|
|
245
|
+
- Arquivo alvo: \`${contexto.arquivo}\`
|
|
246
|
+
- Modulo: \`${contexto.modulo}\`
|
|
247
|
+
- Sucesso em validar: \`${contexto.sucesso}\`
|
|
248
|
+
- Quantidade de diagnosticos: \`${contexto.diagnosticos.length}\`
|
|
249
|
+
- Gerado em: \`${contexto.geradoEm}\`
|
|
250
|
+
|
|
251
|
+
## Arquivos gerados neste pacote
|
|
252
|
+
|
|
253
|
+
- \`agent-context-pack.json\`
|
|
254
|
+
- \`${ARQUIVO_SEMA_BOOT}\`
|
|
255
|
+
- \`${ARQUIVO_SEMA_SMALL_MODEL}\`
|
|
256
|
+
- \`resumo.micro.txt\`
|
|
257
|
+
- \`resumo.curto.txt\`
|
|
258
|
+
- \`resumo.md\`
|
|
259
|
+
- \`briefing.min.json\`
|
|
260
|
+
- \`prompt-curto.txt\`
|
|
261
|
+
- \`validar.json\`
|
|
262
|
+
- \`diagnosticos.json\`
|
|
263
|
+
- \`ast.json\`
|
|
264
|
+
- \`ir.json\`
|
|
265
|
+
- \`drift.json\`
|
|
266
|
+
- \`briefing.json\`
|
|
267
|
+
|
|
268
|
+
## Fluxo recomendado para o agente
|
|
269
|
+
|
|
270
|
+
Antes de escolher arquivo de código, leia \`${ARQUIVO_SEMA_BOOT}\` e \`agent-context-pack.json\`. Eles declaram regras obrigatórias, proibições, prioridades, idioma humano e quando abrir texto bruto como \`AGENTS.md\`, \`exemplos/\`, docs e contratos.
|
|
271
|
+
|
|
272
|
+
## Políticas da plataforma
|
|
273
|
+
|
|
274
|
+
- Sema governa contrato, escopo, drift, evidência e qualidade; não contorna políticas, termos, permissões, segurança ou leis.
|
|
275
|
+
- Se houver alerta externo, trate como bloqueio da plataforma ou falso positivo possível, explique de forma neutra e não tente burlar filtro.
|
|
276
|
+
|
|
277
|
+
### IA fraca, gratuita ou com pouca disciplina
|
|
278
|
+
|
|
279
|
+
1. Ler \`${ARQUIVO_SEMA_BOOT}\`.
|
|
280
|
+
2. Ler \`${ARQUIVO_SEMA_SMALL_MODEL}\`.
|
|
281
|
+
3. Ler \`agent-context-pack.json\`.
|
|
282
|
+
4. Ler \`resumo.micro.txt\`.
|
|
283
|
+
5. Ler \`briefing.min.json\`.
|
|
284
|
+
6. Se ainda couber contexto, ler \`resumo.curto.txt\`.
|
|
285
|
+
|
|
286
|
+
### IA média
|
|
287
|
+
|
|
288
|
+
1. Ler \`${ARQUIVO_SEMA_BOOT}\`.
|
|
289
|
+
2. Ler \`agent-context-pack.json\`.
|
|
290
|
+
3. Ler \`resumo.curto.txt\`.
|
|
291
|
+
4. Ler \`briefing.min.json\`.
|
|
292
|
+
5. Ler \`drift.json\`.
|
|
293
|
+
6. Se precisar, subir para \`resumo.md\`.
|
|
294
|
+
|
|
295
|
+
### IA forte ou com tool use
|
|
296
|
+
|
|
297
|
+
1. Ler \`${ARQUIVO_SEMA_BOOT}\`.
|
|
298
|
+
2. Ler \`agent-context-pack.json\`.
|
|
299
|
+
3. Ler \`README.md\`.
|
|
300
|
+
4. Ler \`resumo.md\`.
|
|
301
|
+
5. Ler \`briefing.json\`.
|
|
302
|
+
6. Ler \`drift.json\`.
|
|
303
|
+
7. Só depois abrir \`ir.json\` e \`ast.json\`.
|
|
304
|
+
|
|
305
|
+
## Idioma humano
|
|
306
|
+
|
|
307
|
+
- Responda no idioma do usuário.
|
|
308
|
+
- Em PT-BR, use acentos, cedilha, pontuação e símbolos normais.
|
|
309
|
+
- A DSL \`.sema\` pode ser ASCII; texto humano não precisa ser.
|
|
310
|
+
|
|
311
|
+
## Texto bruto sob demanda
|
|
312
|
+
|
|
313
|
+
- Abra \`AGENTS.md\` antes de editar código, contrato, docs operacionais, release ou deploy.
|
|
314
|
+
- Abra \`exemplos/\` antes de criar ou corrigir sintaxe \`.sema\`.
|
|
315
|
+
- Abra \`docs/syntax.md\` quando exemplos não bastarem para resolver a gramática.
|
|
316
|
+
- Abra \`contratos/\` antes de qualquer implementação ou mudança de comportamento.
|
|
317
|
+
|
|
318
|
+
## Timeout e retry
|
|
319
|
+
|
|
320
|
+
- Timeout local do agente não é falha do Sema.
|
|
321
|
+
- Se uma chamada Sema estourar, aumente o timeout e tente de novo.
|
|
322
|
+
- Se o projeto inteiro for lento, escopar para \`sema resumo "${contexto.arquivo}" --micro --para mudanca --drift none\`.
|
|
323
|
+
- Se o ambiente impedir continuar, pare bloqueado e não avance com código sem Sema.
|
|
324
|
+
|
|
325
|
+
## Fechamento
|
|
326
|
+
|
|
327
|
+
1. Editar o arquivo \`.sema\`.
|
|
328
|
+
2. Rodar \`sema formatar "${contexto.arquivo}"\`.
|
|
329
|
+
3. Rodar \`sema validar "${contexto.arquivo}" --json\`.
|
|
330
|
+
4. Rodar \`sema drift "${contexto.arquivo}" --cache fresh --json\`.
|
|
331
|
+
5. Fechar com \`sema verificar <arquivo-ou-pasta> --json --saida ./.tmp/verificacao-ia\`.
|
|
332
|
+
|
|
333
|
+
## Textos base para onboarding do agente
|
|
334
|
+
|
|
335
|
+
- \`sema starter-ia\`
|
|
336
|
+
- \`sema resumo "${contexto.arquivo}" --micro --para onboarding --drift none\`
|
|
337
|
+
- \`sema prompt-curto "${contexto.arquivo}" --para mudanca\`
|
|
338
|
+
- \`sema prompt-ia\`
|
|
317
339
|
`;
|
|
318
340
|
await escreverArquivoWorkspaceSeguro(pastaBase, "README.md", resumo, {
|
|
319
341
|
sobrescrever: true,
|