@semacode/cli 2.3.1 → 3.5.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 +592 -568
- 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/docs.part01.d.ts +4 -1
- package/dist/docs.part01.js +8 -0
- package/dist/docs.part02.js +9 -1
- package/dist/drift.part01.d.ts +33 -25
- package/dist/drift.part01.js +2 -1
- package/dist/drift.part04.d.ts +26 -5
- package/dist/drift.part04.js +123 -19
- 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.part09.d.ts +2 -2
- package/dist/drift.part09.js +10 -3
- package/dist/drift.part11.js +261 -58
- 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 +23 -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/exemplosOficiais.d.ts +2 -1
- package/dist/exemplosOficiais.js +9 -3
- package/dist/geracaoCore.d.ts +1 -0
- package/dist/geracaoCore.js +6 -6
- package/dist/iaPrompts.d.ts +3 -3
- package/dist/iaPrompts.js +312 -313
- package/dist/importador.part01.d.ts +1 -1
- package/dist/importador.part06.d.ts +2 -0
- package/dist/importador.part06.js +87 -1
- package/dist/importador.part09.js +7 -1
- 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 +152 -123
- package/dist/index.part05.js +80 -78
- package/dist/index.part06.js +34 -17
- package/dist/index.part07.d.ts +8 -2
- package/dist/index.part07.js +153 -7
- package/dist/index.part08.d.ts +1 -1
- package/dist/index.part08.js +25 -30
- package/dist/initCommand.d.ts +1 -0
- package/dist/initCommand.js +20 -4
- package/dist/initTemplatesBase.js +6 -4
- 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/projetoConfig.js +2 -0
- package/dist/projetoLegado.js +18 -0
- 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/dist/tipos.d.ts +1 -1
- package/dist/typescript-http-modelos.d.ts +1 -1
- package/dist/typescript-http-rotas.d.ts +1 -0
- package/dist/typescript-http-rotas.js +93 -0
- package/dist/typescript-http.d.ts +1 -1
- package/dist/typescript-http.js +1 -1
- package/dist/verificacaoCache.d.ts +25 -0
- package/dist/verificacaoCache.js +80 -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/syntax.md +14 -0
- package/docs/testing.md +139 -40
- package/exemplos/express_crud.sema +139 -0
- package/exemplos/fastify_crud.sema +146 -0
- 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/ir/conversor.part01.js +37 -38
- package/node_modules/@sema/nucleo/dist/ir/modelos.d.ts +1 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.d.ts +1 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.js +1 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part01.d.ts +7 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part01.js +33 -10
- 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
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
// SEMA-GOVERNED: sema.produto.cli_invocacao_publica
|
|
2
|
+
// Descrição: renderiza a ajuda pública da CLI sem carregar handlers ou consultar estado externo.
|
|
3
|
+
export function renderizarCaixaAscii(linhas) {
|
|
4
|
+
const largura = Math.max(...linhas.map((linha) => linha.length), 12);
|
|
5
|
+
const borda = `+${"-".repeat(largura + 2)}+`;
|
|
6
|
+
return [
|
|
7
|
+
borda,
|
|
8
|
+
...linhas.map((linha) => `| ${linha.padEnd(largura, " ")} |`),
|
|
9
|
+
borda,
|
|
10
|
+
].join("\n");
|
|
11
|
+
}
|
|
12
|
+
export function renderizarSecaoAscii(titulo, linhas) {
|
|
13
|
+
return [
|
|
14
|
+
titulo,
|
|
15
|
+
...linhas.map((linha) => ` ${linha}`),
|
|
16
|
+
].join("\n");
|
|
17
|
+
}
|
|
18
|
+
export function criarAjudaRaiz(versao) {
|
|
19
|
+
return [
|
|
20
|
+
renderizarCaixaAscii([
|
|
21
|
+
`Sema CLI v${versao}`,
|
|
22
|
+
"IA-first para contrato, geração e adoção incremental",
|
|
23
|
+
"novo projeto, edição guiada e legado sem contrato inicial",
|
|
24
|
+
]),
|
|
25
|
+
"",
|
|
26
|
+
renderizarSecaoAscii("Fluxos rápidos", [
|
|
27
|
+
"[1] Projeto novo / produção inicial",
|
|
28
|
+
"sema iniciar --template <base|nestjs|fastapi|nextjs-api|nextjs-consumer|react-vite-consumer|angular-consumer|flutter-consumer> [--force] [--com-exemplos]",
|
|
29
|
+
"Arquivos existentes são preservados; use --force somente para sobrescrita explícita. O starter de exemplos vem por padrão; --com-exemplos instala o pacote completo.",
|
|
30
|
+
"sema validar contratos/<modulo>.sema --json",
|
|
31
|
+
"sema compilar <arquivo-ou-pasta> --alvo <typescript|python|php|dart|lua|javascript|html|css|dotnet|cpp> --saida <diretorio>",
|
|
32
|
+
"sema verificar <arquivo-ou-pasta> [--saida <dir>] [--alvo <alvo>] [--sem-cache] --json",
|
|
33
|
+
"",
|
|
34
|
+
"[2] Editar projeto que já usa Sema",
|
|
35
|
+
"sema inspecionar . [--drift <none|cache|fresh>] --json",
|
|
36
|
+
"sema resumo <arquivo-ou-pasta> --micro --para mudanca [--drift <none|cache|fresh>]",
|
|
37
|
+
"sema drift <arquivo-ou-pasta> --escopo modulo [--cache <none|cache|fresh>] --json",
|
|
38
|
+
"sema impacto <arquivo-ou-pasta> --alvo <token> --mudanca <descricao> --json",
|
|
39
|
+
"sema docs-impacto --intencao \"fazer deploy\" --criar-ausentes --json",
|
|
40
|
+
"sema contexto-ia <arquivo.sema> --saida ./.tmp/contexto --json",
|
|
41
|
+
"",
|
|
42
|
+
"[3] Governar escrita autoral com Sema Author",
|
|
43
|
+
"sema author iniciar [--tema-sensivel] [--saida contratos/author.sema]",
|
|
44
|
+
"sema author validar contratos/author.sema --json",
|
|
45
|
+
"sema author briefing contratos/author.sema --json",
|
|
46
|
+
"sema author revisar-cliches contratos/author.sema --texto <texto> --json # reprova se houver bloqueio",
|
|
47
|
+
"sema author validar-narrativa contratos/author.sema --texto <texto> --texto-anterior <texto> --json",
|
|
48
|
+
"sema author validar-proibicoes contratos/author.sema --texto <texto> --json",
|
|
49
|
+
"",
|
|
50
|
+
"[4] Validar profiles semânticos",
|
|
51
|
+
"sema profile validar workflow contratos/sema/workflow_ops.sema --maturidade production --preset webhook --artefato-arquivo workflow.md --json",
|
|
52
|
+
"sema profile validar ops contratos/sema/workflow_ops.sema --maturidade critical --preset deploy --artefato-arquivo runbook.md --json",
|
|
53
|
+
"sema profile validar game contratos/sema/game.sema --maturidade prototype --preset playtest --artefato-arquivo playtest.md --json",
|
|
54
|
+
"sema profile validar simulation contratos/sema/simulation.sema --maturidade production --preset calibration --artefato-arquivo calibration.md --json",
|
|
55
|
+
"sema profile validar redacao contratos/sema/redator.sema --maturidade production --preset seo --artefato-arquivo materia.md --json",
|
|
56
|
+
"sema profile validar propostas contratos/sema/propostas_comerciais.sema --maturidade production --preset score90 --artefato-arquivo proposta.md --json",
|
|
57
|
+
"sema profile validar conversas contratos/sema/conversas.sema --maturidade production --preset vendas --artefato-arquivo conversa.md --json",
|
|
58
|
+
"sema profile capabilities --json",
|
|
59
|
+
"sema rule-packs --profile legal --json",
|
|
60
|
+
"",
|
|
61
|
+
"[5] Descobrir a capacidade ou pipeline certo",
|
|
62
|
+
"sema descobrir catalogo --json",
|
|
63
|
+
"sema descobrir recomendar --intencao \"validar simulador 3D autônomo calibrado\" --json",
|
|
64
|
+
"sema descobrir explicar simulation.calibrate --json",
|
|
65
|
+
"sema pipeline listar --json",
|
|
66
|
+
"sema capabilities --json",
|
|
67
|
+
"",
|
|
68
|
+
"[6] Modelar jogos e simulações em qualquer combinação espacial, visual e de render",
|
|
69
|
+
"sema interativo capabilities --json",
|
|
70
|
+
"sema interativo schema --json",
|
|
71
|
+
"sema interativo pipelines --json",
|
|
72
|
+
"sema interativo adapters --spatial-model THREE_D --render-mode VISUAL --json",
|
|
73
|
+
"sema interativo validar <definition.json> --json",
|
|
74
|
+
"sema interativo planejar <definition.json> --json",
|
|
75
|
+
"sema interativo validar-evidencias <definition.json> [--plano-arquivo <plan.json>] --bundle-arquivo <bundle.json> --json",
|
|
76
|
+
"sema interativo validar-protocolo <adapter-run.json> --json",
|
|
77
|
+
"sema interativo validar-ir <experience-ir.json> --json",
|
|
78
|
+
"sema interativo consultar-ir <experience-ir.json> --semantic-id <id> --json",
|
|
79
|
+
"sema interativo validar-engine-snapshot <snapshot.json> --json",
|
|
80
|
+
"sema interativo validar-temporal <temporal.json> --json",
|
|
81
|
+
"sema interativo validar-autonomia <cycle.json> --json",
|
|
82
|
+
"sema interativo validar-playtest-fuzz <plan.json> --json",
|
|
83
|
+
"sema interativo validar-multiplayer <model.json> --json",
|
|
84
|
+
"sema interativo analisar-portabilidade <plan.json> --json",
|
|
85
|
+
"sema interativo validar-workers <plan.json> --json",
|
|
86
|
+
"",
|
|
87
|
+
"[7] Orquestrar criação de conteúdo por IA",
|
|
88
|
+
"sema conteudo capabilities --json",
|
|
89
|
+
"sema conteudo validar <definition.json> --json",
|
|
90
|
+
"sema conteudo planejar <definition.json> --alvos-arquivo <targets.json> --json",
|
|
91
|
+
"sema conteudo registrar <ledger.ndjson> --envelope-arquivo <envelope.json> --politica-arquivo <policy-envelope.json> --confianca-arquivo <trust.json> --trust-root-digest <sha256:...> --revocation-digest <sha256:...> --ledger-id <id> --expected-head <sha256:...> --json",
|
|
92
|
+
"sema conteudo status <definition.json> --politica-arquivo <policy-envelope.json> --confianca-arquivo <trust.json> --trust-root-digest <sha256:...> --revocation-digest <sha256:...> --ledger-arquivo <ledger.ndjson> --expected-head <sha256:...> --json",
|
|
93
|
+
"",
|
|
94
|
+
"[8] Adotar Sema em projeto que ainda não usa",
|
|
95
|
+
"sema importar <fonte> <diretorio> --saida <diretorio> --json",
|
|
96
|
+
"sema formatar <arquivo-ou-pasta>",
|
|
97
|
+
"sema validar <arquivo-ou-pasta> --json",
|
|
98
|
+
"sema drift <arquivo-ou-pasta> --escopo modulo --cache fresh --json",
|
|
99
|
+
]),
|
|
100
|
+
"",
|
|
101
|
+
renderizarSecaoAscii("IA por capacidade", [
|
|
102
|
+
"fraca: sema resumo <arquivo> --micro --drift none --json (contrato compacto; implementação não avaliada)",
|
|
103
|
+
"média: sema resumo <arquivo> --curto --drift none --json + sema drift <arquivo> --cache fresh --json",
|
|
104
|
+
"forte: sema contexto-ia <arquivo.sema> --saida <diretorio> --json",
|
|
105
|
+
]),
|
|
106
|
+
"",
|
|
107
|
+
renderizarSecaoAscii("Comandos principais", [
|
|
108
|
+
"descoberta: sema inspecionar [arquivo-ou-pasta] [--drift <none|cache|fresh>] [--json] (padrão: none)",
|
|
109
|
+
"catálogo: sema descobrir <catalogo|recomendar|explicar> [id] [--intencao <objetivo>] [--json]",
|
|
110
|
+
"pipelines: sema pipeline <listar|descrever> [id] [--json]",
|
|
111
|
+
"todas as capacidades: sema capabilities [--json]",
|
|
112
|
+
"distribuição global: sema skill <status|sync> [--json] (status é somente leitura; sync repara launcher e skill)",
|
|
113
|
+
"auditoria: sema drift <arquivo-ou-pasta> [--escopo <arquivo|modulo|projeto>] [--cache <none|cache|fresh>] [--incluir-worktrees] [--incluir-consumidores-laterais] [--json]",
|
|
114
|
+
"modos: drift direto usa fresh por padrão; --cache none ainda executa sem cache persistente; resumo/inspecionar usam --drift none por padrão e não fabricam evidência",
|
|
115
|
+
"impacto: sema impacto <arquivo-ou-pasta> --alvo <token> [--mudanca <descricao>] [--escopo <arquivo|modulo|projeto>] [--json]",
|
|
116
|
+
"renomeação: sema renomear-semantico <arquivo-ou-pasta> --de <nome-atual> --para <nome-novo> [--escopo <arquivo|modulo|projeto>] [--json]",
|
|
117
|
+
"importação: sema importar <nestjs|express|fastify|fastapi|flask|nextjs|nextjs-consumer|react-vite-consumer|angular-consumer|flutter-consumer|firebase|dotnet|java|go|rust|cpp|php|typescript|python|dart> <diretorio> [--saida <diretorio>] [--namespace <base>] [--json]",
|
|
118
|
+
"validação: sema validar <arquivo-ou-pasta> [--json]",
|
|
119
|
+
"diagnóstico: sema diagnosticos <arquivo.sema> [--json]",
|
|
120
|
+
"geração: sema compilar <arquivo-ou-pasta> --alvo <typescript|python|php|dart|lua|javascript|html|css|dotnet|cpp> --saida <diretorio> [--estrutura <flat|modulos|backend>] [--framework <base|nestjs|fastapi>]",
|
|
121
|
+
"teste local: sema testar <arquivo.sema> --alvo <typescript|python|php|dart|lua|javascript|html|css|dotnet|cpp> --saida <diretorio-temporario> [--estrutura <flat|modulos|backend>] [--framework <base|nestjs|fastapi>]",
|
|
122
|
+
"aliases nativos: cs|csharp -> dotnet; c++|cxx|cc -> cpp (CLI e sema.config.json)",
|
|
123
|
+
"verificação final: sema verificar <arquivo-ou-pasta> [--saida <diretorio-base>] [--alvo <alvo>] [--sem-cache] [--json]",
|
|
124
|
+
"formatação: sema formatar <arquivo-ou-pasta> [--check] [--json]",
|
|
125
|
+
"author: sema author <iniciar|validar|briefing|revisar-cliches|validar-narrativa|validar-proibicoes> [arquivo] [--tema-sensivel] [--preset conto|romance|roteiro|lore|campanha] [--saida <arquivo>] [--texto <texto>] [--json]",
|
|
126
|
+
"profile: sema profile validar <software|workflow|ops|game|simulation|legal|research|redacao|propostas|conversas> <arquivo-ou-pasta> [--maturidade draft|prototype|production|critical] [--preset <preset>] [--artefato <texto>|--artefato-arquivo <arquivo>] [--json]",
|
|
127
|
+
"capabilities: sema profile capabilities [--json]",
|
|
128
|
+
"conteúdo: sema conteudo <capabilities|validar|planejar|validar-envelope|registrar|status|projetar> [--trust-root-digest <sha256:...>] [--revocation-digest <sha256:...>] [--expected-head <sha256:...>] [opções] [--json]",
|
|
129
|
+
"interativo: sema interativo <capabilities|schema|pipelines|adapters|validar|planejar|validar-evidencias|status|validar-protocolo|extensões-P0-P2> [opções] [--json]",
|
|
130
|
+
"rule packs: sema rule-packs [--profile <author|software|workflow|ops|game|simulation|legal|research|redacao|propostas|conversas>] [--json]",
|
|
131
|
+
]),
|
|
132
|
+
"",
|
|
133
|
+
renderizarSecaoAscii("Ajuda IA-first", [
|
|
134
|
+
"sema ajuda-ia",
|
|
135
|
+
"sema starter-ia",
|
|
136
|
+
"sema resumo <arquivo-ou-pasta> [--micro|--curto|--medio] [--para <resumo|onboarding|review|mudanca|bug|arquitetura>] [--drift <none|cache|fresh>] [--saida <diretorio>] [--raiz] [--json]",
|
|
137
|
+
"sema prompt-curto <arquivo-ou-pasta> [--micro|--curto|--medio] [--para <resumo|onboarding|review|mudanca|bug|arquitetura>] [--json]",
|
|
138
|
+
"sema prompt-ia",
|
|
139
|
+
"sema prompt-ia-ui",
|
|
140
|
+
"sema prompt-ia-react",
|
|
141
|
+
"sema prompt-ia-sema-primeiro",
|
|
142
|
+
"sema exemplos-prompt-ia",
|
|
143
|
+
"sema contexto-ia <arquivo.sema> [--saida <diretorio>] [--json]",
|
|
144
|
+
"sema sync-codex [--json]",
|
|
145
|
+
"sema instalar-exemplos [--json]",
|
|
146
|
+
"sema docs-impacto --intencao <acao> [--arquivo <caminho>] [--criar-ausentes] [--completo] [--json]",
|
|
147
|
+
"sema finalizar-mudanca --intencao <acao> [--arquivo <caminho>] [--doc-lida <caminho>] [--json]",
|
|
148
|
+
"sema author briefing <arquivo.sema> [--json]",
|
|
149
|
+
"sema author revisar-cliches <arquivo.sema> [--texto <texto>|--texto-arquivo <arquivo>] [--texto-anterior <texto>|--texto-anterior-arquivo <arquivo>] [--json]",
|
|
150
|
+
"sema author validar-narrativa <arquivo.sema> [--texto <texto>|--texto-arquivo <arquivo>] [--json]",
|
|
151
|
+
"sema author validar-proibicoes <arquivo.sema> [--texto <texto>|--texto-arquivo <arquivo>] [--json]",
|
|
152
|
+
"sema profile validar <profile> <arquivo.sema> [--maturidade draft|prototype|production|critical] [--preset <preset>] [--artefato <texto>|--artefato-arquivo <arquivo>] [--json]",
|
|
153
|
+
"sema profile capabilities [--json]",
|
|
154
|
+
"sema descobrir <catalogo|recomendar|explicar> [id] [--intencao <objetivo>] [--json]",
|
|
155
|
+
"sema pipeline <listar|descrever> [id] [--json]",
|
|
156
|
+
"sema capabilities [--json]",
|
|
157
|
+
"sema interativo <capabilities|schema|pipelines|adapters|validar|planejar|validar-evidencias|status|validar-protocolo|extensões-P0-P2> [opções] [--json]",
|
|
158
|
+
"sema conteudo <capabilities|validar|planejar|validar-envelope|registrar|status|projetar> [--trust-root-digest <sha256:...>] [--revocation-digest <sha256:...>] [--expected-head <sha256:...>] [opções] [--json]",
|
|
159
|
+
"sema rule-packs [--profile <profile>] [--json]",
|
|
160
|
+
]),
|
|
161
|
+
"",
|
|
162
|
+
renderizarSecaoAscii("Operacional", [
|
|
163
|
+
"sema doctor",
|
|
164
|
+
"sema --versao | --version | -v",
|
|
165
|
+
]),
|
|
166
|
+
].join("\n");
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=cliHelpTexto.js.map
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// SEMA-GOVERNED: sema.produto.cli_invocacao_publica.handlers
|
|
2
|
+
// Descrição: executa o dispatcher operacional no processo interno capturado pela CLI pública.
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { pathToFileURL } from "node:url";
|
|
5
|
+
import { CODIGO_SAIDA_FATAL_RUNTIME_CLI } from "./resultadoCli.js";
|
|
6
|
+
export async function executarCliRuntimeInterno(principalInjetado) {
|
|
7
|
+
try {
|
|
8
|
+
const principal = principalInjetado
|
|
9
|
+
?? (await import("./index.part08.js")).principal;
|
|
10
|
+
const codigoSaida = await principal();
|
|
11
|
+
return Number.isSafeInteger(codigoSaida) && codigoSaida >= 0 && codigoSaida <= 255
|
|
12
|
+
? codigoSaida
|
|
13
|
+
: CODIGO_SAIDA_FATAL_RUNTIME_CLI;
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
return CODIGO_SAIDA_FATAL_RUNTIME_CLI;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
function executadoDiretamente() {
|
|
20
|
+
const entrada = process.argv[1];
|
|
21
|
+
return typeof entrada === "string"
|
|
22
|
+
&& pathToFileURL(path.resolve(entrada)).href === import.meta.url;
|
|
23
|
+
}
|
|
24
|
+
if (executadoDiretamente()) {
|
|
25
|
+
void executarCliRuntimeInterno().then((codigoSaida) => {
|
|
26
|
+
process.exitCode = codigoSaida;
|
|
27
|
+
}, () => {
|
|
28
|
+
process.exitCode = CODIGO_SAIDA_FATAL_RUNTIME_CLI;
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=cliRuntime.js.map
|
package/dist/comandos.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// SEMA-GOVERNED: sema.governanca_ia_contexto
|
|
1
|
+
// SEMA-GOVERNED: sema.governanca_ia_contexto, sema.produto.distribuicao_global, sema.produto.cli_invocacao_publica.argumentos
|
|
2
2
|
// Descricao: dispatcher de comandos publicos da CLI local; consulte contratos/sema/governanca_ia_contexto.sema antes de editar.
|
|
3
3
|
import { comandoDev } from "./dev/index.js";
|
|
4
4
|
import { comandoInit } from "./init/index.js";
|
|
@@ -6,32 +6,18 @@ import { comandoSyncPrisma } from "./sync/index.js";
|
|
|
6
6
|
import { comandoPipelineConteudo } from "./pipelineConteudo/command.js";
|
|
7
7
|
import { REGISTRO_HANDLERS_DESCOBERTA } from "./discovery/index.js";
|
|
8
8
|
import { comandoSistemasInterativos } from "./sistemasInterativos/command.js";
|
|
9
|
+
import { comandoSkill } from "./skillCommand.js";
|
|
9
10
|
async function comandoInitHandler(posicionais, args, _emJson) {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
return 0;
|
|
13
|
-
}
|
|
14
|
-
catch {
|
|
15
|
-
return 1;
|
|
16
|
-
}
|
|
11
|
+
await comandoInit([...posicionais, ...args]);
|
|
12
|
+
return 0;
|
|
17
13
|
}
|
|
18
14
|
async function comandoDevHandler(posicionais, args, _emJson) {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
return 0;
|
|
22
|
-
}
|
|
23
|
-
catch {
|
|
24
|
-
return 1;
|
|
25
|
-
}
|
|
15
|
+
await comandoDev([...posicionais, ...args]);
|
|
16
|
+
return 0;
|
|
26
17
|
}
|
|
27
18
|
async function comandoSyncPrismaHandler(posicionais, args, _emJson) {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
return 0;
|
|
31
|
-
}
|
|
32
|
-
catch {
|
|
33
|
-
return 1;
|
|
34
|
-
}
|
|
19
|
+
await comandoSyncPrisma([...posicionais, ...args]);
|
|
20
|
+
return 0;
|
|
35
21
|
}
|
|
36
22
|
async function comandoGuard(posicionais, _args, emJson) {
|
|
37
23
|
const { ativarGuarda, desativarGuarda, statusGuarda } = await import("./guard.js");
|
|
@@ -64,6 +50,7 @@ export const REGISTRO_COMANDOS = {
|
|
|
64
50
|
sync: comandoSyncPrismaHandler,
|
|
65
51
|
conteudo: comandoPipelineConteudo,
|
|
66
52
|
interativo: comandoSistemasInterativos,
|
|
53
|
+
skill: comandoSkill,
|
|
67
54
|
...REGISTRO_HANDLERS_DESCOBERTA,
|
|
68
55
|
};
|
|
69
56
|
//# sourceMappingURL=comandos.js.map
|
package/dist/contexto.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: gera um pacote local de contexto Sema e distingue contexto contratual de evidência fresh de drift.
|
|
3
3
|
import { readFile, mkdir, writeFile } from "node:fs/promises";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
const LIMITE_TAMANHO_INLINE = 100_000;
|
|
@@ -62,8 +62,8 @@ export async function gerarPacoteContextoChat(entrada, cwd = process.cwd()) {
|
|
|
62
62
|
"",
|
|
63
63
|
].join("\n");
|
|
64
64
|
const driftResumido = entrada.incluirDrift
|
|
65
|
-
? "## Drift\nRun `sema drift` locally for
|
|
66
|
-
: "## Drift\nNot
|
|
65
|
+
? "## Drift\nRun `sema drift --cache fresh` locally for authoritative closing evidence. Persistent cache is navigation evidence only.\n"
|
|
66
|
+
: "## Drift\nNot evaluated. Run `sema drift --cache fresh` locally when live implementation evidence is required; do not interpret missing score or implementation as zero.\n";
|
|
67
67
|
const impactMap = entrada.incluirImpacto
|
|
68
68
|
? tarefas.map((tarefa) => `- \`${tarefa}\`: local contract and linked implementation must be inspected with \`sema impacto\`.`)
|
|
69
69
|
: [];
|
|
@@ -98,7 +98,7 @@ export async function gerarPacoteContextoChat(entrada, cwd = process.cwd()) {
|
|
|
98
98
|
"1. Read the contracts above. They are the source of truth.",
|
|
99
99
|
"2. Treat selected code as context, not as a substitute for the contract.",
|
|
100
100
|
"3. Run `sema docs-impacto` with the declared intention before changing files.",
|
|
101
|
-
"4. Run `sema drift` and `sema impacto` locally before editing governed code.",
|
|
101
|
+
"4. Run `sema drift --cache fresh` and `sema impacto` locally before editing governed code.",
|
|
102
102
|
"5. Close with `sema finalizar-mudanca` and concrete evidence.",
|
|
103
103
|
].join("\n");
|
|
104
104
|
const tamanhoBytes = Buffer.byteLength(inlineTexto, "utf8");
|
package/dist/dev/index.d.ts
CHANGED
package/dist/dev/index.js
CHANGED
|
@@ -1,10 +1,54 @@
|
|
|
1
|
-
// SEMA-GOVERNED: sema.governanca_ia_contexto
|
|
1
|
+
// SEMA-GOVERNED: sema.governanca_ia_contexto, sema.produto.cli_dev_mode, sema.produto.cli_invocacao_publica.handlers
|
|
2
2
|
// Descricao: codigo governado pelo Sema; consulte contratos/sema/governanca_ia_contexto.sema antes de editar.
|
|
3
3
|
// Modo dev --watch para paralelizacao
|
|
4
4
|
// Contrato: cli_dev_mode.sema
|
|
5
5
|
import * as fs from 'fs';
|
|
6
6
|
import * as path from 'path';
|
|
7
7
|
import { spawn } from 'child_process';
|
|
8
|
+
import { fileURLToPath } from 'node:url';
|
|
9
|
+
export function resolverCaminhoBinCliDev(urlModulo = import.meta.url) {
|
|
10
|
+
return fileURLToPath(new URL('../bin.js', urlModulo));
|
|
11
|
+
}
|
|
12
|
+
const CAMINHO_BIN_CLI = resolverCaminhoBinCliDev();
|
|
13
|
+
const CHAVES_RESULTADO_CLI_V1 = [
|
|
14
|
+
'code',
|
|
15
|
+
'command',
|
|
16
|
+
'exitCode',
|
|
17
|
+
'kind',
|
|
18
|
+
'message',
|
|
19
|
+
'ok',
|
|
20
|
+
'payload',
|
|
21
|
+
'schemaVersion'
|
|
22
|
+
];
|
|
23
|
+
function extrairPayloadValidacaoCli(saida, codigoProcesso) {
|
|
24
|
+
const envelope = JSON.parse(saida);
|
|
25
|
+
if (typeof envelope !== 'object'
|
|
26
|
+
|| envelope === null
|
|
27
|
+
|| Array.isArray(envelope)
|
|
28
|
+
|| envelope.schemaVersion !== 'sema.cli.result/v1'
|
|
29
|
+
|| envelope.command !== 'validar'
|
|
30
|
+
|| !Number.isSafeInteger(envelope.exitCode)
|
|
31
|
+
|| envelope.exitCode !== codigoProcesso
|
|
32
|
+
|| JSON.stringify(Object.keys(envelope).sort()) !== JSON.stringify(CHAVES_RESULTADO_CLI_V1)) {
|
|
33
|
+
throw new TypeError('Resultado público de validação inválido.');
|
|
34
|
+
}
|
|
35
|
+
const sucesso = envelope.exitCode === 0;
|
|
36
|
+
if (envelope.ok !== sucesso
|
|
37
|
+
|| envelope.kind !== (sucesso ? 'SUCCESS' : 'DOMAIN_ERROR')
|
|
38
|
+
|| envelope.code !== (sucesso ? 'CLI_SUCCESS' : 'CLI_DOMAIN_ERROR')
|
|
39
|
+
|| (sucesso ? envelope.message !== null : typeof envelope.message !== 'string')) {
|
|
40
|
+
throw new TypeError('Resultado público de validação incoerente.');
|
|
41
|
+
}
|
|
42
|
+
const payload = envelope.payload;
|
|
43
|
+
if (typeof payload !== 'object' || payload === null || Array.isArray(payload)) {
|
|
44
|
+
throw new TypeError('Payload público de validação inválido.');
|
|
45
|
+
}
|
|
46
|
+
const schemaPayload = payload.schemaVersion;
|
|
47
|
+
if (schemaPayload === 'sema.cli.result/v1' || schemaPayload === 'sema.cli.control/v1') {
|
|
48
|
+
throw new TypeError('Payload público de validação não pode conter envelope CLI aninhado.');
|
|
49
|
+
}
|
|
50
|
+
return payload;
|
|
51
|
+
}
|
|
8
52
|
const sessoes = new Map();
|
|
9
53
|
export async function iniciarModoDev(pastaContratos, alvoCodigo, modoInicial = 'permissivo') {
|
|
10
54
|
// Validar pasta
|
|
@@ -57,14 +101,13 @@ function iniciarWatcher(sessao) {
|
|
|
57
101
|
}
|
|
58
102
|
async function validarAlteracao(caminhoArquivo, modo) {
|
|
59
103
|
// Executar validacao via CLI
|
|
60
|
-
const semaPath = path.resolve('pacotes/cli/dist/index.js');
|
|
61
104
|
const args = ['validar', caminhoArquivo];
|
|
62
105
|
if (modo === 'permissivo') {
|
|
63
106
|
console.log(' 🟡 Modo permissivo: mostrando apenas warnings\n');
|
|
64
107
|
}
|
|
65
|
-
const processo = spawn(
|
|
108
|
+
const processo = spawn(process.execPath, [CAMINHO_BIN_CLI, ...args], {
|
|
66
109
|
stdio: 'inherit',
|
|
67
|
-
shell:
|
|
110
|
+
shell: false
|
|
68
111
|
});
|
|
69
112
|
processo.on('close', (codigo) => {
|
|
70
113
|
if (codigo === 0) {
|
|
@@ -81,16 +124,15 @@ async function validarAlteracao(caminhoArquivo, modo) {
|
|
|
81
124
|
export async function promoverParaProduction(caminhoContrato, verificacoesPendentes) {
|
|
82
125
|
console.log(`\n🚀 Promovendo ${path.basename(caminhoContrato)} para PRODUCTION...`);
|
|
83
126
|
// Validar rigorosamente
|
|
84
|
-
const semaPath = path.resolve('pacotes/cli/dist/index.js');
|
|
85
127
|
return new Promise((resolve) => {
|
|
86
|
-
const processo = spawn(
|
|
87
|
-
shell:
|
|
128
|
+
const processo = spawn(process.execPath, [CAMINHO_BIN_CLI, 'validar', caminhoContrato, '--json'], {
|
|
129
|
+
shell: false
|
|
88
130
|
});
|
|
89
131
|
let saida = '';
|
|
90
132
|
processo.stdout?.on('data', (data) => { saida += data; });
|
|
91
|
-
processo.on('close', () => {
|
|
133
|
+
processo.on('close', (codigo) => {
|
|
92
134
|
try {
|
|
93
|
-
const resultado =
|
|
135
|
+
const resultado = extrairPayloadValidacaoCli(saida, codigo);
|
|
94
136
|
const temErros = resultado.bloqueia_acao === true;
|
|
95
137
|
if (temErros) {
|
|
96
138
|
console.log(' ❌ Bloqueado: resolva os erros antes de promover\n');
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// SEMA-GOVERNED: sema.produto.descoberta_capacidades
|
|
1
|
+
// SEMA-GOVERNED: sema.produto.descoberta_capacidades, sema.produto.governanca_ia.drift.cache.modos
|
|
2
2
|
// Descrição: registro canônico derivado de profiles, conteúdo e sistemas interativos.
|
|
3
3
|
import { ALIASES_PROFILE, CAPABILITY_MATRIX_GOVERNANCA, PRESETS_PROFILE, } from "../profileCatalogo.js";
|
|
4
4
|
import { CAPABILITIES_CONTEUDO_PADRAO } from "../pipelineConteudo/adapters.js";
|
|
@@ -112,8 +112,8 @@ function entradasGovernanca() {
|
|
|
112
112
|
requiredInputs: ["<intenção>", "<contrato.sema>"],
|
|
113
113
|
commandTemplates: [
|
|
114
114
|
template("docs-impacto", "sema docs-impacto --intencao <intenção> --arquivo <contrato.sema> --json", "WORKSPACE_VERIFICATION", true),
|
|
115
|
-
template("inspecionar", "sema inspecionar <contrato.sema> --json", "READ_ONLY_VALIDATION"),
|
|
116
|
-
template("drift", "sema drift <contrato.sema> --escopo modulo --json", "READ_ONLY_VALIDATION"),
|
|
115
|
+
template("inspecionar", "sema inspecionar <contrato.sema> --drift none --json", "READ_ONLY_VALIDATION"),
|
|
116
|
+
template("drift", "sema drift <contrato.sema> --escopo modulo --cache fresh --json", "READ_ONLY_VALIDATION"),
|
|
117
117
|
template("impacto", "sema impacto <contrato.sema> --alvo <token> --mudanca <descrição> --json", "READ_ONLY_VALIDATION"),
|
|
118
118
|
template("finalizar", "sema finalizar-mudanca --intencao <intenção> --doc-lida <documento> --json", "WORKSPACE_VERIFICATION"),
|
|
119
119
|
],
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { type BigIntStats } from "node:fs";
|
|
2
|
+
import type { CodigoDiagnosticoDistribuicaoGlobal, EstadoDistribuicaoGlobal } from "./tipos.js";
|
|
3
|
+
export declare class FalhaDistribuicaoGlobal extends Error {
|
|
4
|
+
readonly estado: Extract<EstadoDistribuicaoGlobal, "BROKEN_TARGET" | "PERMISSION_DENIED">;
|
|
5
|
+
readonly codigo: CodigoDiagnosticoDistribuicaoGlobal;
|
|
6
|
+
constructor(estado: Extract<EstadoDistribuicaoGlobal, "BROKEN_TARGET" | "PERMISSION_DENIED">, codigo: CodigoDiagnosticoDistribuicaoGlobal);
|
|
7
|
+
}
|
|
8
|
+
export interface IdentidadeDiretorioSeguro {
|
|
9
|
+
dev: bigint;
|
|
10
|
+
ino: bigint;
|
|
11
|
+
}
|
|
12
|
+
export declare function mesmaIdentidadeDiretorio(a: IdentidadeDiretorioSeguro, b: IdentidadeDiretorioSeguro): boolean;
|
|
13
|
+
export declare function erroEhPermissao(erro: unknown): boolean;
|
|
14
|
+
export declare function falhaParaResultado(erro: unknown): FalhaDistribuicaoGlobal;
|
|
15
|
+
export declare function lstatOuNull(caminho: string): Promise<BigIntStats | null>;
|
|
16
|
+
export declare function caminhosIguais(a: string, b: string): boolean;
|
|
17
|
+
export declare function caminhoContido(base: string, alvo: string): boolean;
|
|
18
|
+
export declare function identidadeDiretorioSeguro(caminho: string): Promise<IdentidadeDiretorioSeguro>;
|
|
19
|
+
export declare function resolverHomeReal(diretorioUsuario: string): Promise<string>;
|
|
20
|
+
export declare function resolverDentroDaHome(homeReal: string, ...segmentos: string[]): string;
|
|
21
|
+
export declare function validarCadeiaExistente(homeReal: string, destino: string): Promise<"completa" | "ausente">;
|
|
22
|
+
export declare function garantirDiretoriosSeguros(homeReal: string, destino: string): Promise<void>;
|
|
23
|
+
export declare function validarArquivoRegular(caminho: string, basePermitida?: string): Promise<BigIntStats>;
|
|
24
|
+
export declare function identidadeArquivoSeguro(caminho: string, basePermitida?: string): Promise<{
|
|
25
|
+
dev: bigint;
|
|
26
|
+
ino: bigint;
|
|
27
|
+
}>;
|
|
28
|
+
export declare function removerArquivoSeguro(homeReal: string, caminho: string, identidadeEsperada?: {
|
|
29
|
+
dev: bigint;
|
|
30
|
+
ino: bigint;
|
|
31
|
+
}): Promise<void>;
|
|
32
|
+
export declare function lerArquivoSeguro(caminho: string, limiteBytes?: number, basePermitida?: string): Promise<Buffer>;
|
|
33
|
+
export declare function escreverArquivoAtomico(homeReal: string, destino: string, conteudo: string | Buffer, modo: number): Promise<void>;
|
|
34
|
+
export declare function nomeTemporarioDiretorio(prefixo: "stage" | "backup"): string;
|
|
35
|
+
export declare function removerDiretorioTemporarioGerenciado(homeReal: string, caminho: string, identidadeEsperada?: IdentidadeDiretorioSeguro): Promise<void>;
|
|
36
|
+
export declare function moverDiretorioSeguro(homeReal: string, origem: string, destino: string, identidadeEsperada?: IdentidadeDiretorioSeguro): Promise<IdentidadeDiretorioSeguro>;
|
|
37
|
+
export declare function diretorioExisteSeguro(caminho: string): Promise<boolean>;
|
|
38
|
+
export declare function statDiretorioSeguro(caminho: string): Promise<BigIntStats>;
|
|
39
|
+
export interface ArtefatoTransacaoArquivo {
|
|
40
|
+
nome: string;
|
|
41
|
+
conteudoDepois: Buffer;
|
|
42
|
+
modo: number;
|
|
43
|
+
}
|
|
44
|
+
export interface TransacaoArquivosDuravel {
|
|
45
|
+
readonly homeReal: string;
|
|
46
|
+
readonly diretorio: string;
|
|
47
|
+
readonly journal: string;
|
|
48
|
+
readonly stage: string;
|
|
49
|
+
readonly backup: string;
|
|
50
|
+
readonly journalPrepared: Buffer;
|
|
51
|
+
readonly journalCommitted: Buffer;
|
|
52
|
+
readonly stageBytes: Buffer;
|
|
53
|
+
readonly backupBytes: Buffer;
|
|
54
|
+
}
|
|
55
|
+
export declare function prepararTransacaoArquivosLauncher(homeReal: string, diretorio: string, artefatos: ArtefatoTransacaoArquivo[]): Promise<TransacaoArquivosDuravel>;
|
|
56
|
+
export declare function recuperarTransacaoArquivosLauncher(homeReal: string, diretorio: string): Promise<{
|
|
57
|
+
alterado: boolean;
|
|
58
|
+
limpezaPendente: boolean;
|
|
59
|
+
}>;
|
|
60
|
+
export declare function concluirTransacaoArquivosLauncher(transacao: TransacaoArquivosDuravel): Promise<{
|
|
61
|
+
limpezaPendente: boolean;
|
|
62
|
+
}>;
|
|
63
|
+
export declare function transacaoArquivosLauncherPendente(homeReal: string, diretorio: string): Promise<boolean>;
|