@semacode/cli 2.3.0 → 2.3.1
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 +251 -228
- package/dist/agentEntryPoints.js +551 -550
- package/dist/angular-consumer-standalone.d.ts +3 -1
- package/dist/angular-consumer-standalone.js +12 -8
- package/dist/drift.part01.d.ts +32 -2
- package/dist/drift.part01.js +2 -0
- package/dist/drift.part04.d.ts +3 -2
- package/dist/drift.part04.js +6 -3
- package/dist/drift.part05.d.ts +2 -1
- package/dist/drift.part05.js +4 -3
- package/dist/drift.part06.d.ts +2 -1
- package/dist/drift.part06.js +9 -5
- package/dist/drift.part07.d.ts +11 -10
- package/dist/drift.part07.js +40 -30
- package/dist/drift.part08.d.ts +2 -1
- package/dist/drift.part08.js +4 -3
- package/dist/drift.part11.js +71 -6
- package/dist/drift.part12.js +14 -1
- package/dist/drift.part13.d.ts +42 -7
- package/dist/drift.part13.js +660 -36
- package/dist/driftCache.d.ts +49 -0
- package/dist/driftCache.js +311 -0
- package/dist/driftCacheIncremental.d.ts +98 -0
- package/dist/driftCacheIncremental.js +596 -0
- package/dist/driftCatalogo.d.ts +91 -0
- package/dist/driftCatalogo.js +657 -0
- package/dist/driftCatalogoPersistente.d.ts +8 -0
- package/dist/driftCatalogoPersistente.js +77 -0
- package/dist/driftEscopo.d.ts +23 -0
- package/dist/driftEscopo.js +563 -0
- package/dist/driftEscopoReferencias.d.ts +4 -0
- package/dist/driftEscopoReferencias.js +265 -0
- package/dist/driftOrcamento.d.ts +12 -0
- package/dist/driftOrcamento.js +19 -3
- package/dist/execucoesExternas.js +5 -19
- package/dist/iaPrompts.js +310 -310
- package/dist/index.part01.d.ts +16 -1
- package/dist/index.part01.js +80 -4
- package/dist/index.part02.js +21 -21
- package/dist/index.part03.d.ts +2 -2
- package/dist/index.part03.js +14 -3
- package/dist/index.part04.d.ts +2 -2
- package/dist/index.part04.js +113 -101
- package/dist/index.part05.d.ts +1 -1
- package/dist/index.part05.js +99 -22
- package/dist/index.part06.js +3 -2
- package/dist/index.part07.js +24 -24
- package/dist/index.part08.js +1 -1
- package/dist/init/templates.part01.js +393 -393
- package/dist/init/templates.part02.js +189 -189
- package/dist/initTemplatesBackend.js +73 -73
- package/dist/initTemplatesBase.js +81 -81
- package/dist/initTemplatesFlutter.js +137 -137
- package/dist/initTemplatesRuntime.js +350 -350
- package/dist/initTemplatesWeb.js +309 -309
- package/dist/pipelineConteudo/command.js +1 -36
- package/dist/projeto.d.ts +1 -1
- package/dist/projetoCarregar.d.ts +2 -2
- package/dist/projetoCarregar.js +47 -24
- package/dist/projetoCatalogo.d.ts +7 -0
- package/dist/projetoCatalogo.js +125 -0
- package/dist/projetoTipos.d.ts +14 -5
- package/dist/sync/index.js +35 -35
- package/docs/README.md +34 -34
- package/docs/ai-integration.md +1 -7
- package/docs/ai-onboarding.md +62 -62
- package/docs/ai-workflow.md +4 -0
- package/docs/auth.md +26 -26
- package/docs/cli.md +79 -79
- package/docs/commands.md +16 -13
- package/docs/database.md +15 -15
- package/docs/deploy.md +41 -41
- package/docs/descoberta-capacidades.md +106 -106
- package/docs/documentation.md +37 -46
- package/docs/env.md +16 -16
- package/docs/frontend.md +41 -41
- package/docs/getting-started.md +57 -57
- package/docs/i18n.md +15 -15
- package/docs/pipeline-conteudo.md +246 -246
- package/docs/profiles.md +54 -54
- package/docs/repositories.md +43 -43
- package/docs/rollback.md +31 -31
- package/docs/security.md +32 -32
- package/docs/sistemas-interativos.md +373 -378
- package/docs/support.md +8 -8
- package/docs/testing.md +51 -44
- 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/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_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_simulation.sema +211 -211
- 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/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/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-cpp/package.json +1 -1
- 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-dotnet/package.json +1 -1
- package/node_modules/@sema/gerador-html/dist/index.js +17 -17
- 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/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/package.json +3 -3
package/dist/index.part01.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { compilarCodigo, type IrModulo } from "@sema/nucleo";
|
|
2
|
+
import { type ContextoProjetoCarregado } from "./projeto.js";
|
|
2
3
|
import { analisarDriftLegado, type OpcoesDriftLegado } from "./drift.js";
|
|
3
4
|
import { type GuiaCapacidadeIaMap } from './agentContextTipos.js';
|
|
4
5
|
import { criarBriefingAgente, resumirDriftPorModulo } from "./index.part03.js";
|
|
@@ -29,6 +30,8 @@ export interface DescobertaDocsIa {
|
|
|
29
30
|
}
|
|
30
31
|
export type TamanhoResumoIa = "micro" | "curto" | "medio";
|
|
31
32
|
export type ModoResumoIa = "resumo" | "onboarding" | "review" | "mudanca" | "bug" | "arquitetura";
|
|
33
|
+
export type ModoAnaliseDriftCli = "fresh" | "cache" | "none";
|
|
34
|
+
export type PoliticaCacheDriftCli = "auto" | "refresh" | "off";
|
|
32
35
|
export type ResultadoDriftIa = Awaited<ReturnType<typeof analisarDriftLegado>>;
|
|
33
36
|
export type ResumoModuloDrift = ReturnType<typeof resumirDriftPorModulo>;
|
|
34
37
|
export interface PacoteContextoModuloIa {
|
|
@@ -75,10 +78,15 @@ export interface PacoteContextoModuloIa {
|
|
|
75
78
|
caminho: string;
|
|
76
79
|
modulo: string | null;
|
|
77
80
|
sucesso: boolean;
|
|
81
|
+
modoAnalise?: ModoAnaliseDriftCli;
|
|
82
|
+
executado?: boolean;
|
|
83
|
+
aviso?: string | null;
|
|
78
84
|
resumo: ResumoModuloDrift;
|
|
79
85
|
drift: ResultadoDriftIa;
|
|
80
86
|
};
|
|
81
87
|
briefing: ReturnType<typeof criarBriefingAgente>;
|
|
88
|
+
modoVerificacaoCodigo?: ResumoSemanticoModuloIa["modoVerificacaoCodigo"];
|
|
89
|
+
fontesConclusao?: string[];
|
|
82
90
|
}
|
|
83
91
|
export interface ResumoSemanticoModuloIa {
|
|
84
92
|
geradoEm: string;
|
|
@@ -123,7 +131,14 @@ export declare function obterArgumentos(): {
|
|
|
123
131
|
export declare function renderizarCaixaAscii(linhas: string[]): string;
|
|
124
132
|
export declare function renderizarSecaoAscii(titulo: string, linhas: string[]): string;
|
|
125
133
|
export declare function ajuda(): string;
|
|
126
|
-
export declare function
|
|
134
|
+
export declare function normalizarModoAnaliseDriftCli(args: string[], padrao?: ModoAnaliseDriftCli): ModoAnaliseDriftCli;
|
|
135
|
+
export declare function normalizarPoliticaCacheDriftCli(args: string[]): PoliticaCacheDriftCli | undefined;
|
|
136
|
+
export declare function resolverOpcoesDriftCli(args: string[], cacheForcado?: PoliticaCacheDriftCli): OpcoesDriftLegado;
|
|
137
|
+
export declare function resolverAnaliseDriftCli(args: string[], padrao?: ModoAnaliseDriftCli): {
|
|
138
|
+
modo: ModoAnaliseDriftCli;
|
|
139
|
+
opcoes: OpcoesDriftLegado;
|
|
140
|
+
};
|
|
141
|
+
export declare function criarResultadoDriftNaoExecutado(contextoProjeto: ContextoProjetoCarregado, opcoes?: OpcoesDriftLegado): ResultadoDriftIa;
|
|
127
142
|
export declare function normalizarTamanhoResumo(args: string[]): TamanhoResumoIa;
|
|
128
143
|
export declare function normalizarModoResumo(valor?: string): ModoResumoIa;
|
|
129
144
|
export declare function descobrirDocsIa(): Promise<DescobertaDocsIa>;
|
package/dist/index.part01.js
CHANGED
|
@@ -114,11 +114,11 @@ export function ajuda() {
|
|
|
114
114
|
]),
|
|
115
115
|
"",
|
|
116
116
|
renderizarSecaoAscii("Comandos principais", [
|
|
117
|
-
"descoberta: sema inspecionar [arquivo-ou-pasta] [--json]",
|
|
117
|
+
"descoberta: sema inspecionar [arquivo-ou-pasta] [--drift <fresh|cache|none>|--com-drift] [--json] (padrão: none)",
|
|
118
118
|
"catálogo: sema descobrir <catalogo|recomendar|explicar> [id] [--intencao <objetivo>] [--json]",
|
|
119
119
|
"pipelines: sema pipeline <listar|descrever> [id] [--json]",
|
|
120
120
|
"todas as capacidades: sema capabilities [--json]",
|
|
121
|
-
"auditoria: sema drift <arquivo-ou-pasta> [--escopo <arquivo|modulo|projeto>] [--incluir-worktrees] [--incluir-consumidores-laterais] [--json]",
|
|
121
|
+
"auditoria: sema drift <arquivo-ou-pasta> [--escopo <arquivo|modulo|projeto>] [--cache <auto|refresh|off>] [--incluir-worktrees] [--incluir-consumidores-laterais] [--json]",
|
|
122
122
|
"impacto: sema impacto <arquivo-ou-pasta> --alvo <token> [--mudanca <descricao>] [--escopo <arquivo|modulo|projeto>] [--json]",
|
|
123
123
|
"renomeação: sema renomear-semantico <arquivo-ou-pasta> --de <nome-atual> --para <nome-novo> [--escopo <arquivo|modulo|projeto>] [--json]",
|
|
124
124
|
"importação: sema importar <nestjs|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]",
|
|
@@ -140,7 +140,7 @@ export function ajuda() {
|
|
|
140
140
|
renderizarSecaoAscii("Ajuda IA-first", [
|
|
141
141
|
"sema ajuda-ia",
|
|
142
142
|
"sema starter-ia",
|
|
143
|
-
"sema resumo <arquivo-ou-pasta> [--micro|--curto|--medio] [--para <resumo|onboarding|review|mudanca|bug|arquitetura>] [--saida <diretorio>] [--raiz] [--json]",
|
|
143
|
+
"sema resumo <arquivo-ou-pasta> [--micro|--curto|--medio] [--para <resumo|onboarding|review|mudanca|bug|arquitetura>] [--drift <fresh|cache|none>] [--saida <diretorio>] [--raiz] [--json]",
|
|
144
144
|
"sema prompt-curto <arquivo-ou-pasta> [--micro|--curto|--medio] [--para <resumo|onboarding|review|mudanca|bug|arquitetura>] [--json]",
|
|
145
145
|
"sema prompt-ia",
|
|
146
146
|
"sema prompt-ia-ui",
|
|
@@ -172,12 +172,88 @@ export function ajuda() {
|
|
|
172
172
|
]),
|
|
173
173
|
].join("\n");
|
|
174
174
|
}
|
|
175
|
-
export function
|
|
175
|
+
export function normalizarModoAnaliseDriftCli(args, padrao = "fresh") {
|
|
176
|
+
const valor = obterOpcao(args, "--drift");
|
|
177
|
+
if (valor === undefined)
|
|
178
|
+
return possuiFlag(args, "--com-drift") ? "fresh" : padrao;
|
|
179
|
+
if (valor === "fresh" || valor === "cache" || valor === "none")
|
|
180
|
+
return valor;
|
|
181
|
+
throw new Error("Use --drift fresh, --drift cache ou --drift none.");
|
|
182
|
+
}
|
|
183
|
+
export function normalizarPoliticaCacheDriftCli(args) {
|
|
184
|
+
const valor = obterOpcao(args, "--cache");
|
|
185
|
+
if (valor === undefined)
|
|
186
|
+
return undefined;
|
|
187
|
+
if (valor === "auto" || valor === "refresh" || valor === "off")
|
|
188
|
+
return valor;
|
|
189
|
+
throw new Error("Use --cache auto, --cache refresh ou --cache off.");
|
|
190
|
+
}
|
|
191
|
+
export function resolverOpcoesDriftCli(args, cacheForcado) {
|
|
176
192
|
const escopo = obterOpcao(args, "--escopo");
|
|
193
|
+
const cache = cacheForcado ?? normalizarPoliticaCacheDriftCli(args);
|
|
177
194
|
return {
|
|
178
195
|
escopo: escopo === "arquivo" || escopo === "modulo" || escopo === "projeto" ? escopo : undefined,
|
|
179
196
|
ignorarWorktrees: !possuiFlag(args, "--incluir-worktrees"),
|
|
180
197
|
ignorarConsumidoresLaterais: !possuiFlag(args, "--incluir-consumidores-laterais"),
|
|
198
|
+
...(cache ? { cache } : {}),
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
export function resolverAnaliseDriftCli(args, padrao = "fresh") {
|
|
202
|
+
const modo = normalizarModoAnaliseDriftCli(args, padrao);
|
|
203
|
+
const cache = modo === "fresh" ? "refresh" : modo === "cache" ? "auto" : undefined;
|
|
204
|
+
return {
|
|
205
|
+
modo,
|
|
206
|
+
opcoes: resolverOpcoesDriftCli(args, cache),
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
export function criarResultadoDriftNaoExecutado(contextoProjeto, opcoes) {
|
|
210
|
+
const escopo = opcoes?.escopo === "arquivo" || opcoes?.escopo === "projeto" ? opcoes.escopo : "modulo";
|
|
211
|
+
return {
|
|
212
|
+
comando: "drift",
|
|
213
|
+
sucesso: false,
|
|
214
|
+
escopo_aplicado: {
|
|
215
|
+
escopo,
|
|
216
|
+
ignorarWorktrees: opcoes?.ignorarWorktrees !== false,
|
|
217
|
+
ignorarConsumidoresLaterais: opcoes?.ignorarConsumidoresLaterais !== false,
|
|
218
|
+
termosEscopo: [],
|
|
219
|
+
},
|
|
220
|
+
consumerFramework: null,
|
|
221
|
+
appRoutes: [],
|
|
222
|
+
consumerSurfaces: [],
|
|
223
|
+
consumerBridges: [],
|
|
224
|
+
modulos: contextoProjeto.modulosSelecionados.map((item) => ({
|
|
225
|
+
caminho: item.caminho,
|
|
226
|
+
modulo: item.resultado.modulo?.nome ?? null,
|
|
227
|
+
tasks: item.resultado.ir?.tasks.length ?? 0,
|
|
228
|
+
routes: item.resultado.ir?.routes.length ?? 0,
|
|
229
|
+
})),
|
|
230
|
+
tasks: [],
|
|
231
|
+
impls_validos: [],
|
|
232
|
+
impls_quebrados: [],
|
|
233
|
+
vinculos_validos: [],
|
|
234
|
+
vinculos_quebrados: [],
|
|
235
|
+
rotas_divergentes: [],
|
|
236
|
+
recursos_validos: [],
|
|
237
|
+
recursos_divergentes: [],
|
|
238
|
+
persistencia_real: [],
|
|
239
|
+
resumo_operacional: {
|
|
240
|
+
scoreMedio: 0,
|
|
241
|
+
confiancaGeral: "baixa",
|
|
242
|
+
pontuacaoMinimaOperacional: 80,
|
|
243
|
+
pontuacaoAlvoAtual: 80,
|
|
244
|
+
pontuacaoAlvoFinal: 100,
|
|
245
|
+
passoEvolucaoPontuacao: 0.5,
|
|
246
|
+
proximaPontuacaoAlvo: 80,
|
|
247
|
+
pontuacaoAbaixoDoPiso: false,
|
|
248
|
+
pontuacaoAbaixoDoAlvo: false,
|
|
249
|
+
travasPontuacao: [],
|
|
250
|
+
riscosPrincipais: ["analise_drift_nao_executada"],
|
|
251
|
+
oQueTocar: [],
|
|
252
|
+
oQueValidar: ["executar sema drift antes de concluir sobre a implementação"],
|
|
253
|
+
oQueEstaFrouxo: ["codigo_nao_verificado_neste_modo"],
|
|
254
|
+
oQueFoiInferido: ["modo_contratos_apenas"],
|
|
255
|
+
},
|
|
256
|
+
diagnosticos: [],
|
|
181
257
|
};
|
|
182
258
|
}
|
|
183
259
|
export function normalizarTamanhoResumo(args) {
|
package/dist/index.part02.js
CHANGED
|
@@ -320,27 +320,27 @@ export function criarBriefingMinimo(resumo, modo, tamanho) {
|
|
|
320
320
|
}
|
|
321
321
|
export function criarPromptCurtoModulo(resumo, modo, tamanho, capacidade) {
|
|
322
322
|
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}
|
|
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}
|
|
344
344
|
`;
|
|
345
345
|
}
|
|
346
346
|
//# sourceMappingURL=index.part02.js.map
|
package/dist/index.part03.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type IrModulo } from "@sema/nucleo";
|
|
2
2
|
import { analisarDriftLegado } from "./drift.js";
|
|
3
3
|
import { type GuiaCapacidadeIaMap } from './agentContextTipos.js';
|
|
4
|
-
import { PacoteContextoModuloIa, ResumoSemanticoModuloIa } from "./index.part01.js";
|
|
4
|
+
import { PacoteContextoModuloIa, ResumoSemanticoModuloIa, type ModoAnaliseDriftCli } from "./index.part01.js";
|
|
5
5
|
export declare function renderizarResumoProjetoMarkdown(geradoEm: string, modulos: ResumoSemanticoModuloIa[], guiaPorCapacidade: GuiaCapacidadeIaMap): string;
|
|
6
6
|
export declare function falharContextoIa(mensagem: string): never;
|
|
7
7
|
export declare function garantirArquivoSema(caminhoArquivo: string): void;
|
|
@@ -52,7 +52,7 @@ export declare function criarBriefingAgente(arquivo: string, modulo: string, ir:
|
|
|
52
52
|
ancoragensVinculo: string[];
|
|
53
53
|
testesMinimos: string[];
|
|
54
54
|
};
|
|
55
|
-
export declare function carregarContextoModuloIa(arquivoEntrada: string): Promise<PacoteContextoModuloIa>;
|
|
55
|
+
export declare function carregarContextoModuloIa(arquivoEntrada: string, args?: string[], modoDriftPadrao?: ModoAnaliseDriftCli): Promise<PacoteContextoModuloIa>;
|
|
56
56
|
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
57
|
export declare function gerarArquivosResumoModuloIa(contexto: PacoteContextoModuloIa, pastaBase: string): Promise<{
|
|
58
58
|
artefatosCompactos: string[];
|
package/dist/index.part03.js
CHANGED
|
@@ -8,6 +8,7 @@ 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";
|
|
11
12
|
import { coletarResumoSemanticoModulo, criarBriefingMinimo, criarPromptCurtoModulo, renderizarResumoModuloMarkdown, renderizarResumoModuloTexto } from "./index.part02.js";
|
|
12
13
|
export function renderizarResumoProjetoMarkdown(geradoEm, modulos, guiaPorCapacidade) {
|
|
13
14
|
const entradaCanonica = criarEntradaCanonicaProjeto(guiaPorCapacidade);
|
|
@@ -253,10 +254,11 @@ export function criarBriefingAgente(arquivo, modulo, ir, resumoDrift, resultadoD
|
|
|
253
254
|
],
|
|
254
255
|
};
|
|
255
256
|
}
|
|
256
|
-
export async function carregarContextoModuloIa(arquivoEntrada) {
|
|
257
|
+
export async function carregarContextoModuloIa(arquivoEntrada, args = [], modoDriftPadrao = "fresh") {
|
|
257
258
|
const arquivo = path.resolve(arquivoEntrada);
|
|
258
259
|
garantirArquivoSema(arquivo);
|
|
259
|
-
const
|
|
260
|
+
const analiseDrift = resolverAnaliseDriftCli(args, modoDriftPadrao);
|
|
261
|
+
const contextoProjeto = await carregarProjeto(arquivo, process.cwd(), { escopo: analiseDrift.opcoes.escopo });
|
|
260
262
|
const resultadoModulo = contextoProjeto.modulosSelecionados.find((item) => path.resolve(item.caminho) === arquivo)?.resultado;
|
|
261
263
|
if (!resultadoModulo) {
|
|
262
264
|
falharContextoIa(`Nao foi possivel encontrar o modulo correspondente ao arquivo ${arquivo}.`);
|
|
@@ -264,12 +266,19 @@ export async function carregarContextoModuloIa(arquivoEntrada) {
|
|
|
264
266
|
const sucesso = !temErros(resultadoModulo.diagnosticos);
|
|
265
267
|
const modulo = resultadoModulo.modulo?.nome ?? path.basename(arquivo, ".sema");
|
|
266
268
|
const geradoEm = new Date().toISOString();
|
|
267
|
-
const resultadoDrift =
|
|
269
|
+
const resultadoDrift = analiseDrift.modo === "none"
|
|
270
|
+
? criarResultadoDriftNaoExecutado(contextoProjeto, analiseDrift.opcoes)
|
|
271
|
+
: await analisarDriftLegado(contextoProjeto, analiseDrift.opcoes);
|
|
268
272
|
const drift = {
|
|
269
273
|
comando: "drift",
|
|
270
274
|
caminho: arquivo,
|
|
271
275
|
modulo: resultadoModulo.modulo?.nome ?? null,
|
|
272
276
|
sucesso: resultadoDrift.sucesso,
|
|
277
|
+
modoAnalise: analiseDrift.modo,
|
|
278
|
+
executado: analiseDrift.modo !== "none",
|
|
279
|
+
aviso: analiseDrift.modo === "none"
|
|
280
|
+
? "Análise de drift não executada; nenhuma conclusão sobre o código foi produzida."
|
|
281
|
+
: null,
|
|
273
282
|
resumo: resumirDriftPorModulo(resultadoModulo.modulo?.nome ?? null, arquivo, resultadoDrift),
|
|
274
283
|
drift: resultadoDrift,
|
|
275
284
|
};
|
|
@@ -321,6 +330,8 @@ export async function carregarContextoModuloIa(arquivoEntrada) {
|
|
|
321
330
|
irJson: ir,
|
|
322
331
|
drift,
|
|
323
332
|
briefing,
|
|
333
|
+
modoVerificacaoCodigo: analiseDrift.modo === "none" ? "contratos_apenas" : undefined,
|
|
334
|
+
fontesConclusao: analiseDrift.modo === "none" ? ["contrato"] : undefined,
|
|
324
335
|
};
|
|
325
336
|
}
|
|
326
337
|
export const ARQUIVOS_RESUMO_MODULO_IA = [
|
package/dist/index.part04.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type GuiaCapacidadeIaMap } from './agentContextTipos.js';
|
|
2
|
-
import { ContextoIaGerado, ResumoSemanticoModuloIa } from "./index.part01.js";
|
|
2
|
+
import { ContextoIaGerado, ResumoSemanticoModuloIa, type ModoAnaliseDriftCli } from "./index.part01.js";
|
|
3
3
|
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<{
|
|
4
|
+
export declare function gerarResumoProjetoIa(entrada: string | undefined, pastaSaidaOpcional?: string, escreverNaRaiz?: boolean, args?: string[], modoDriftPadrao?: ModoAnaliseDriftCli): Promise<{
|
|
5
5
|
geradoEm: string;
|
|
6
6
|
baseProjeto: string;
|
|
7
7
|
pastaSaida: string;
|
package/dist/index.part04.js
CHANGED
|
@@ -16,7 +16,7 @@ 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 } from "./index.part01.js";
|
|
19
|
+
import { VERSAO_CLI, criarResultadoDriftNaoExecutado, resolverAnaliseDriftCli, } from "./index.part01.js";
|
|
20
20
|
import { coletarResumoSemanticoModulo, descreverFontesConclusao, detectarFontesConclusaoSnapshot, detectarModoVerificacaoCodigo } from "./index.part02.js";
|
|
21
21
|
import { ARQUIVOS_RESUMO_MODULO_IA, carregarContextoModuloIa, criarBriefingAgente, gerarArquivosResumoModuloIa, renderizarResumoProjetoMarkdown, resumirDriftPorModulo } from "./index.part03.js";
|
|
22
22
|
export const ARQUIVOS_RESUMO_PROJETO_IA = [
|
|
@@ -53,15 +53,22 @@ function escolherTopArquivosResumo(modulos, arquivosCodigoDetectados) {
|
|
|
53
53
|
}
|
|
54
54
|
return { arquivos: [], fonte: "nenhum" };
|
|
55
55
|
}
|
|
56
|
-
export async function gerarResumoProjetoIa(entrada, pastaSaidaOpcional, escreverNaRaiz = false) {
|
|
56
|
+
export async function gerarResumoProjetoIa(entrada, pastaSaidaOpcional, escreverNaRaiz = false, args = [], modoDriftPadrao = "fresh") {
|
|
57
57
|
const contextoProjeto = await carregarProjeto(entrada, process.cwd());
|
|
58
58
|
const geradoEm = new Date().toISOString();
|
|
59
59
|
const guiaPorCapacidade = criarGuiaCapacidadeIa();
|
|
60
60
|
const entradaCanonica = criarEntradaCanonicaProjeto(guiaPorCapacidade);
|
|
61
61
|
const agentContextPack = entradaCanonica.agentContextPack;
|
|
62
|
-
const
|
|
63
|
-
const
|
|
64
|
-
|
|
62
|
+
const analiseDrift = resolverAnaliseDriftCli(args, modoDriftPadrao);
|
|
63
|
+
const modoVerificacaoCodigo = analiseDrift.modo === "none"
|
|
64
|
+
? "contratos_apenas"
|
|
65
|
+
: await detectarModoVerificacaoCodigo(contextoProjeto.baseProjeto, contextoProjeto.diretoriosCodigo);
|
|
66
|
+
const fontesConclusao = analiseDrift.modo === "none"
|
|
67
|
+
? ["contrato"]
|
|
68
|
+
: await detectarFontesConclusaoSnapshot(contextoProjeto.baseProjeto);
|
|
69
|
+
const resultadoDrift = analiseDrift.modo === "none"
|
|
70
|
+
? criarResultadoDriftNaoExecutado(contextoProjeto, analiseDrift.opcoes)
|
|
71
|
+
: await analisarDriftLegado(contextoProjeto, analiseDrift.opcoes);
|
|
65
72
|
const modulos = contextoProjeto.modulosSelecionados.map((item) => {
|
|
66
73
|
const modulo = item.resultado.modulo?.nome ?? path.basename(item.caminho, ".sema");
|
|
67
74
|
const driftResumo = resumirDriftPorModulo(modulo, item.caminho, resultadoDrift);
|
|
@@ -77,6 +84,11 @@ export async function gerarResumoProjetoIa(entrada, pastaSaidaOpcional, escrever
|
|
|
77
84
|
caminho: item.caminho,
|
|
78
85
|
modulo,
|
|
79
86
|
sucesso: resultadoDrift.sucesso,
|
|
87
|
+
modoAnalise: analiseDrift.modo,
|
|
88
|
+
executado: analiseDrift.modo !== "none",
|
|
89
|
+
aviso: analiseDrift.modo === "none"
|
|
90
|
+
? "Análise de drift não executada; nenhuma conclusão sobre o código foi produzida."
|
|
91
|
+
: null,
|
|
80
92
|
resumo: driftResumo,
|
|
81
93
|
drift: resultadoDrift,
|
|
82
94
|
},
|
|
@@ -206,102 +218,102 @@ export async function gerarContextoIa(arquivoEntrada, pastaSaidaOpcional) {
|
|
|
206
218
|
await escreverArquivoWorkspaceSeguro(pastaBase, artefato.caminhoRelativo, artefato.conteudo, { sobrescrever: true });
|
|
207
219
|
}
|
|
208
220
|
const resumoGerado = await gerarArquivosResumoModuloIa(contexto, pastaBase);
|
|
209
|
-
const resumo = `# Contexto de IA para ${contexto.modulo}
|
|
210
|
-
|
|
211
|
-
- Arquivo alvo: \`${contexto.arquivo}\`
|
|
212
|
-
- Modulo: \`${contexto.modulo}\`
|
|
213
|
-
- Sucesso em validar: \`${contexto.sucesso}\`
|
|
214
|
-
- Quantidade de diagnosticos: \`${contexto.diagnosticos.length}\`
|
|
215
|
-
- Gerado em: \`${contexto.geradoEm}\`
|
|
216
|
-
|
|
217
|
-
## Arquivos gerados neste pacote
|
|
218
|
-
|
|
219
|
-
- \`agent-context-pack.json\`
|
|
220
|
-
- \`${ARQUIVO_SEMA_BOOT}\`
|
|
221
|
-
- \`${ARQUIVO_SEMA_SMALL_MODEL}\`
|
|
222
|
-
- \`resumo.micro.txt\`
|
|
223
|
-
- \`resumo.curto.txt\`
|
|
224
|
-
- \`resumo.md\`
|
|
225
|
-
- \`briefing.min.json\`
|
|
226
|
-
- \`prompt-curto.txt\`
|
|
227
|
-
- \`validar.json\`
|
|
228
|
-
- \`diagnosticos.json\`
|
|
229
|
-
- \`ast.json\`
|
|
230
|
-
- \`ir.json\`
|
|
231
|
-
- \`drift.json\`
|
|
232
|
-
- \`briefing.json\`
|
|
233
|
-
|
|
234
|
-
## Fluxo recomendado para o agente
|
|
235
|
-
|
|
236
|
-
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.
|
|
237
|
-
|
|
238
|
-
## Políticas da plataforma
|
|
239
|
-
|
|
240
|
-
- Sema governa contrato, escopo, drift, evidência e qualidade; não contorna políticas, termos, permissões, segurança ou leis.
|
|
241
|
-
- Se houver alerta externo, trate como bloqueio da plataforma ou falso positivo possível, explique de forma neutra e não tente burlar filtro.
|
|
242
|
-
|
|
243
|
-
### IA fraca, gratuita ou com pouca disciplina
|
|
244
|
-
|
|
245
|
-
1. Ler \`${ARQUIVO_SEMA_BOOT}\`.
|
|
246
|
-
2. Ler \`${ARQUIVO_SEMA_SMALL_MODEL}\`.
|
|
247
|
-
3. Ler \`agent-context-pack.json\`.
|
|
248
|
-
4. Ler \`resumo.micro.txt\`.
|
|
249
|
-
5. Ler \`briefing.min.json\`.
|
|
250
|
-
6. Se ainda couber contexto, ler \`resumo.curto.txt\`.
|
|
251
|
-
|
|
252
|
-
### IA média
|
|
253
|
-
|
|
254
|
-
1. Ler \`${ARQUIVO_SEMA_BOOT}\`.
|
|
255
|
-
2. Ler \`agent-context-pack.json\`.
|
|
256
|
-
3. Ler \`resumo.curto.txt\`.
|
|
257
|
-
4. Ler \`briefing.min.json\`.
|
|
258
|
-
5. Ler \`drift.json\`.
|
|
259
|
-
6. Se precisar, subir para \`resumo.md\`.
|
|
260
|
-
|
|
261
|
-
### IA forte ou com tool use
|
|
262
|
-
|
|
263
|
-
1. Ler \`${ARQUIVO_SEMA_BOOT}\`.
|
|
264
|
-
2. Ler \`agent-context-pack.json\`.
|
|
265
|
-
3. Ler \`README.md\`.
|
|
266
|
-
4. Ler \`resumo.md\`.
|
|
267
|
-
5. Ler \`briefing.json\`.
|
|
268
|
-
6. Ler \`drift.json\`.
|
|
269
|
-
7. Só depois abrir \`ir.json\` e \`ast.json\`.
|
|
270
|
-
|
|
271
|
-
## Idioma humano
|
|
272
|
-
|
|
273
|
-
- Responda no idioma do usuário.
|
|
274
|
-
- Em PT-BR, use acentos, cedilha, pontuação e símbolos normais.
|
|
275
|
-
- A DSL \`.sema\` pode ser ASCII; texto humano não precisa ser.
|
|
276
|
-
|
|
277
|
-
## Texto bruto sob demanda
|
|
278
|
-
|
|
279
|
-
- Abra \`AGENTS.md\` antes de editar código, contrato, docs operacionais, release ou deploy.
|
|
280
|
-
- Abra \`exemplos/\` antes de criar ou corrigir sintaxe \`.sema\`.
|
|
281
|
-
- Abra \`docs/syntax.md\` quando exemplos não bastarem para resolver a gramática.
|
|
282
|
-
- Abra \`contratos/\` antes de qualquer implementação ou mudança de comportamento.
|
|
283
|
-
|
|
284
|
-
## Timeout e retry
|
|
285
|
-
|
|
286
|
-
- Timeout local do agente não é falha do Sema.
|
|
287
|
-
- 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\`.
|
|
289
|
-
- Se o ambiente impedir continuar, pare bloqueado e não avance com código sem Sema.
|
|
290
|
-
|
|
291
|
-
## Fechamento
|
|
292
|
-
|
|
293
|
-
1. Editar o arquivo \`.sema\`.
|
|
294
|
-
2. Rodar \`sema formatar "${contexto.arquivo}"\`.
|
|
295
|
-
3. Rodar \`sema validar "${contexto.arquivo}" --json\`.
|
|
296
|
-
4. Rodar \`sema drift "${contexto.arquivo}" --json\`.
|
|
297
|
-
5. Fechar com \`sema verificar <arquivo-ou-pasta> --json --saida ./.tmp/verificacao-ia\`.
|
|
298
|
-
|
|
299
|
-
## Textos base para onboarding do agente
|
|
300
|
-
|
|
301
|
-
- \`sema starter-ia\`
|
|
302
|
-
- \`sema resumo "${contexto.arquivo}" --micro --para onboarding\`
|
|
303
|
-
- \`sema prompt-curto "${contexto.arquivo}" --para mudanca\`
|
|
304
|
-
- \`sema prompt-ia\`
|
|
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\`
|
|
305
317
|
`;
|
|
306
318
|
await escreverArquivoWorkspaceSeguro(pastaBase, "README.md", resumo, {
|
|
307
319
|
sobrescrever: true,
|
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>;
|