@semacode/cli 1.5.10 → 1.5.14
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 +6 -1
- package/SEMA_BRIEF.curto.txt +3 -3
- package/SEMA_BRIEF.md +5 -5
- package/SEMA_BRIEF.micro.txt +2 -2
- package/SEMA_INDEX.json +50 -32
- package/dist/drift.d.ts +3 -3
- package/dist/drift.js +67 -4
- package/dist/drift.js.map +1 -1
- package/dist/importador.d.ts +1 -1
- package/dist/importador.js +144 -1
- package/dist/importador.js.map +1 -1
- package/dist/index.js +388 -3
- package/dist/index.js.map +1 -1
- package/dist/php-symbols.d.ts +24 -0
- package/dist/php-symbols.js +375 -0
- package/dist/php-symbols.js.map +1 -0
- package/dist/projeto.js +14 -0
- package/dist/projeto.js.map +1 -1
- package/dist/tipos.d.ts +1 -1
- package/docs/cli.md +10 -1
- package/docs/sintaxe.md +192 -0
- package/node_modules/@sema/gerador-css/package.json +1 -1
- package/node_modules/@sema/gerador-dart/package.json +1 -1
- package/node_modules/@sema/gerador-html/package.json +1 -1
- package/node_modules/@sema/gerador-javascript/package.json +1 -1
- package/node_modules/@sema/gerador-lua/package.json +1 -1
- package/node_modules/@sema/gerador-python/package.json +1 -1
- package/node_modules/@sema/gerador-typescript/package.json +1 -1
- package/node_modules/@sema/nucleo/dist/ast/tipos.d.ts +4 -2
- package/node_modules/@sema/nucleo/dist/formatador/index.js +40 -13
- package/node_modules/@sema/nucleo/dist/formatador/index.js.map +1 -1
- package/node_modules/@sema/nucleo/dist/ir/conversor.js +182 -3
- package/node_modules/@sema/nucleo/dist/ir/conversor.js.map +1 -1
- package/node_modules/@sema/nucleo/dist/ir/modelos.d.ts +35 -3
- package/node_modules/@sema/nucleo/dist/lexer/tokens.js +21 -0
- package/node_modules/@sema/nucleo/dist/lexer/tokens.js.map +1 -1
- package/node_modules/@sema/nucleo/dist/parser/parser.js +38 -0
- package/node_modules/@sema/nucleo/dist/parser/parser.js.map +1 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.d.ts +4 -3
- package/node_modules/@sema/nucleo/dist/semantico/analisador.js +310 -13
- package/node_modules/@sema/nucleo/dist/semantico/analisador.js.map +1 -1
- package/node_modules/@sema/nucleo/package.json +1 -1
- package/node_modules/@sema/padroes/package.json +1 -1
- package/package.json +14 -14
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/parser/parser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/parser/parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { type Diagnostico } from "../diagnosticos/index.js";
|
|
|
2
2
|
import type { ModuloAst } from "../ast/tipos.js";
|
|
3
3
|
export interface SimboloSemantico {
|
|
4
4
|
nome: string;
|
|
5
|
-
categoria: "tipo" | "entity" | "enum" | "task" | "flow" | "route" | "state" | "worker" | "evento" | "fila" | "cron" | "webhook" | "cache" | "storage" | "policy" | "database";
|
|
5
|
+
categoria: "tipo" | "entity" | "enum" | "task" | "flow" | "route" | "book" | "work" | "part" | "chapter" | "section" | "scene" | "character" | "arc" | "audience" | "thesis" | "argument" | "claim" | "source" | "concept" | "example" | "voice" | "style_rule" | "lexicon" | "motif" | "canon" | "agent" | "state" | "worker" | "evento" | "fila" | "cron" | "webhook" | "cache" | "storage" | "policy" | "database";
|
|
6
6
|
}
|
|
7
7
|
export interface CampoSemantico {
|
|
8
8
|
nome: string;
|
|
@@ -26,11 +26,11 @@ export interface ResumoTaskSemantico {
|
|
|
26
26
|
implementacoes: ImplementacaoTaskSemantica[];
|
|
27
27
|
}
|
|
28
28
|
export interface InteropSemantico {
|
|
29
|
-
origem: "ts" | "py" | "dart" | "lua" | "cs" | "java" | "go" | "rust" | "cpp";
|
|
29
|
+
origem: "ts" | "py" | "dart" | "lua" | "php" | "cs" | "java" | "go" | "rust" | "cpp";
|
|
30
30
|
caminho: string;
|
|
31
31
|
}
|
|
32
32
|
export interface ImplementacaoTaskSemantica {
|
|
33
|
-
origem: "ts" | "py" | "dart" | "lua" | "cs" | "java" | "go" | "rust" | "cpp";
|
|
33
|
+
origem: "ts" | "py" | "dart" | "lua" | "php" | "cs" | "java" | "go" | "rust" | "cpp";
|
|
34
34
|
caminho: string;
|
|
35
35
|
}
|
|
36
36
|
export interface ContextoSemantico {
|
|
@@ -38,6 +38,7 @@ export interface ContextoSemantico {
|
|
|
38
38
|
simbolos: Map<string, SimboloSemantico>;
|
|
39
39
|
tiposConhecidos: Set<string>;
|
|
40
40
|
tasksConhecidas: Set<string>;
|
|
41
|
+
agentsConhecidos: Set<string>;
|
|
41
42
|
tarefasDetalhadas: Map<string, ResumoTaskSemantico>;
|
|
42
43
|
statesConhecidos: Map<string, {
|
|
43
44
|
transicoes: Set<string>;
|
|
@@ -90,6 +90,54 @@ const CAMPOS_ERRO_OPERACIONAL = new Set([
|
|
|
90
90
|
"requer_compensacao",
|
|
91
91
|
]);
|
|
92
92
|
const CRITICIDADES_OPERACIONAIS = new Set(["baixa", "media", "alta", "critica"]);
|
|
93
|
+
const TIPOS_AUTHOR_PROFILE = new Set([
|
|
94
|
+
"book",
|
|
95
|
+
"work",
|
|
96
|
+
"part",
|
|
97
|
+
"chapter",
|
|
98
|
+
"section",
|
|
99
|
+
"scene",
|
|
100
|
+
"character",
|
|
101
|
+
"arc",
|
|
102
|
+
"audience",
|
|
103
|
+
"thesis",
|
|
104
|
+
"argument",
|
|
105
|
+
"claim",
|
|
106
|
+
"source",
|
|
107
|
+
"concept",
|
|
108
|
+
"example",
|
|
109
|
+
"voice",
|
|
110
|
+
"style_rule",
|
|
111
|
+
"lexicon",
|
|
112
|
+
"motif",
|
|
113
|
+
"canon",
|
|
114
|
+
]);
|
|
115
|
+
const TERMOS_AUTHOR_SENSIVEIS = [
|
|
116
|
+
"autismo",
|
|
117
|
+
"autista",
|
|
118
|
+
"autistas",
|
|
119
|
+
"tea",
|
|
120
|
+
"neurodiversidade",
|
|
121
|
+
"neurodivergencia",
|
|
122
|
+
"neurodivergente",
|
|
123
|
+
"saude",
|
|
124
|
+
"clinico",
|
|
125
|
+
"clinica",
|
|
126
|
+
"medico",
|
|
127
|
+
"medica",
|
|
128
|
+
"diagnostico",
|
|
129
|
+
"diagnosticar",
|
|
130
|
+
"terapia",
|
|
131
|
+
"tratamento",
|
|
132
|
+
"medicamento",
|
|
133
|
+
"psicologia",
|
|
134
|
+
"psiquiatria",
|
|
135
|
+
"educacao inclusiva",
|
|
136
|
+
"inclusao escolar",
|
|
137
|
+
"juridico",
|
|
138
|
+
"legal",
|
|
139
|
+
"financeiro",
|
|
140
|
+
];
|
|
93
141
|
const PADRAO_CAMINHO_INTEROP = /^[A-Za-z_][A-Za-z0-9_-]*(\.[A-Za-z_][A-Za-z0-9_-]*)*$/;
|
|
94
142
|
function normalizarOrigemImplementacao(valor) {
|
|
95
143
|
switch (valor.toLowerCase()) {
|
|
@@ -103,6 +151,8 @@ function normalizarOrigemImplementacao(valor) {
|
|
|
103
151
|
return "dart";
|
|
104
152
|
case "lua":
|
|
105
153
|
return "lua";
|
|
154
|
+
case "php":
|
|
155
|
+
return "php";
|
|
106
156
|
case "cs":
|
|
107
157
|
case "csharp":
|
|
108
158
|
case "dotnet":
|
|
@@ -153,6 +203,17 @@ function localizarBloco(corpo, nome) {
|
|
|
153
203
|
}
|
|
154
204
|
return corpo.blocos.find((bloco) => bloco.tipo === "bloco_generico" && (bloco.palavraChave === nome || bloco.nome === nome));
|
|
155
205
|
}
|
|
206
|
+
function nomeBlocoDeclarativo(bloco) {
|
|
207
|
+
return bloco.palavraChave === "desconhecido"
|
|
208
|
+
? (bloco.nome ?? "desconhecido")
|
|
209
|
+
: bloco.palavraChave;
|
|
210
|
+
}
|
|
211
|
+
function blocoTemNome(bloco, nomes) {
|
|
212
|
+
return nomes.includes(nomeBlocoDeclarativo(bloco).toLowerCase());
|
|
213
|
+
}
|
|
214
|
+
function localizarBlocoPorNomes(corpo, ...nomes) {
|
|
215
|
+
return corpo?.blocos.find((bloco) => bloco.tipo === "bloco_generico" && blocoTemNome(bloco, nomes));
|
|
216
|
+
}
|
|
156
217
|
function localizarCampo(bloco, ...nomes) {
|
|
157
218
|
if (!bloco) {
|
|
158
219
|
return undefined;
|
|
@@ -252,7 +313,7 @@ function validarImplementacoesTask(task, diagnosticos) {
|
|
|
252
313
|
for (const campo of task.impl.campos) {
|
|
253
314
|
const origem = normalizarOrigemImplementacao(campo.nome);
|
|
254
315
|
if (!origem) {
|
|
255
|
-
diagnosticos.push(criarDiagnostico("SEM059", `Task "${task.nome}" declarou implementacao externa invalida em impl: "${campo.nome}".`, "erro", campo.intervalo, "Use apenas ts, py, dart, lua, cs, java, go, rust ou cpp dentro do bloco impl."));
|
|
316
|
+
diagnosticos.push(criarDiagnostico("SEM059", `Task "${task.nome}" declarou implementacao externa invalida em impl: "${campo.nome}".`, "erro", campo.intervalo, "Use apenas ts, py, dart, lua, php, cs, java, go, rust ou cpp dentro do bloco impl."));
|
|
256
317
|
continue;
|
|
257
318
|
}
|
|
258
319
|
if (origens.has(origem)) {
|
|
@@ -882,7 +943,16 @@ function validarInvariantesDeCampos(bloco, nomeBloco, diagnosticos) {
|
|
|
882
943
|
dicaReferencia: "Referencie apenas campos declarados no proprio bloco ao escrever invariantes de dominio.",
|
|
883
944
|
});
|
|
884
945
|
}
|
|
885
|
-
function
|
|
946
|
+
function referenciaAgentConhecida(referencia, agentsConhecidos) {
|
|
947
|
+
if (agentsConhecidos.has(referencia)) {
|
|
948
|
+
return true;
|
|
949
|
+
}
|
|
950
|
+
return referencia.startsWith("agent.") && agentsConhecidos.has(referencia.slice("agent.".length));
|
|
951
|
+
}
|
|
952
|
+
function referenciaOperadorFlowConhecida(referencia, tasksConhecidas, agentsConhecidos) {
|
|
953
|
+
return tasksConhecidas.has(referencia) || referenciaAgentConhecida(referencia, agentsConhecidos);
|
|
954
|
+
}
|
|
955
|
+
function validarFlow(flow, tasksConhecidas, agentsConhecidos, tarefasDetalhadas, diagnosticos) {
|
|
886
956
|
const possuiEtapas = flow.corpo.linhas.length > 0 || flow.corpo.campos.length > 0 || flow.corpo.blocos.length > 0;
|
|
887
957
|
if (!possuiEtapas) {
|
|
888
958
|
diagnosticos.push(criarDiagnostico("SEM012", `Flow "${flow.nome}" precisa declarar ao menos uma etapa.`, "erro", flow.intervalo, "Adicione linhas declarativas, campos ou subblocos dentro de flow."));
|
|
@@ -896,8 +966,8 @@ function validarFlow(flow, tasksConhecidas, tarefasDetalhadas, diagnosticos) {
|
|
|
896
966
|
.filter((campo) => campo.nome === "task" || campo.nome === "tarefa")
|
|
897
967
|
.map((campo) => campo.valor);
|
|
898
968
|
for (const tarefa of tarefasReferenciadas) {
|
|
899
|
-
if (!
|
|
900
|
-
diagnosticos.push(criarDiagnostico("SEM013", `Flow "${flow.nome}" referencia
|
|
969
|
+
if (!referenciaOperadorFlowConhecida(tarefa, tasksConhecidas, agentsConhecidos)) {
|
|
970
|
+
diagnosticos.push(criarDiagnostico("SEM013", `Flow "${flow.nome}" referencia operador "${tarefa}" que nao existe.`, "erro", flow.intervalo, "Declare a task ou agent no mesmo modulo, ou ajuste a referencia do flow."));
|
|
901
971
|
}
|
|
902
972
|
}
|
|
903
973
|
const etapas = flow.corpo.linhas
|
|
@@ -917,11 +987,16 @@ function validarFlow(flow, tasksConhecidas, tarefasDetalhadas, diagnosticos) {
|
|
|
917
987
|
}
|
|
918
988
|
nomesEtapas.add(item.etapa.nome);
|
|
919
989
|
etapasValidas.set(item.etapa.nome, item.etapa);
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
990
|
+
const etapaUsaTask = Boolean(item.etapa.task && tasksConhecidas.has(item.etapa.task));
|
|
991
|
+
const etapaUsaAgent = Boolean(item.etapa.task && referenciaAgentConhecida(item.etapa.task, agentsConhecidos));
|
|
992
|
+
if (item.etapa.task && !etapaUsaTask && !etapaUsaAgent) {
|
|
993
|
+
const sugestoesOperadores = [
|
|
994
|
+
descreverSugestoes(tasksConhecidas, "Tasks conhecidas no contexto"),
|
|
995
|
+
descreverSugestoes(agentsConhecidos, "Agents conhecidos no contexto"),
|
|
996
|
+
].filter(Boolean).join(" ");
|
|
997
|
+
diagnosticos.push(criarDiagnostico("SEM034", `Etapa "${item.etapa.nome}" do flow "${flow.nome}" usa operador "${item.etapa.task}" que nao existe.`, "erro", item.linha.intervalo, sugestoesOperadores || "Ajuste a etapa para apontar para uma task ou agent declarado/importado."));
|
|
998
|
+
}
|
|
999
|
+
if (item.etapa.task && etapaUsaTask) {
|
|
925
1000
|
const detalhesTask = tarefasDetalhadas.get(item.etapa.task);
|
|
926
1001
|
if (detalhesTask) {
|
|
927
1002
|
const indiceInput = indicesCampos(detalhesTask.input);
|
|
@@ -961,8 +1036,12 @@ function validarFlow(flow, tasksConhecidas, tarefasDetalhadas, diagnosticos) {
|
|
|
961
1036
|
if (item.etapa.condicao) {
|
|
962
1037
|
const referencias = extrairReferenciasDaExpressao(item.etapa.condicao).map((referencia) => extrairRaiz(referencia));
|
|
963
1038
|
for (const referencia of referencias) {
|
|
964
|
-
if (!ehMarcadorSemantico(referencia)
|
|
965
|
-
|
|
1039
|
+
if (!ehMarcadorSemantico(referencia)
|
|
1040
|
+
&& !tasksConhecidas.has(referencia)
|
|
1041
|
+
&& !referenciaAgentConhecida(referencia, agentsConhecidos)
|
|
1042
|
+
&& !nomesEtapas.has(referencia)
|
|
1043
|
+
&& !contextoFlow.has(referencia)) {
|
|
1044
|
+
diagnosticos.push(criarDiagnostico("SEM035", `Condicao da etapa "${item.etapa.nome}" em flow "${flow.nome}" referencia "${referencia}" fora do contexto atual.`, "erro", item.linha.intervalo, "Condicoes de flow devem apontar para marcadores semanticos, campos do flow, tasks, agents ou etapas anteriores."));
|
|
966
1045
|
}
|
|
967
1046
|
}
|
|
968
1047
|
}
|
|
@@ -983,7 +1062,7 @@ function validarFlow(flow, tasksConhecidas, tarefasDetalhadas, diagnosticos) {
|
|
|
983
1062
|
diagnosticos.push(criarDiagnostico("SEM045", `Etapa "${item.etapa.nome}" do flow "${flow.nome}" aponta para "${destino}" em ramificacao, mas essa etapa nao foi declarada.`, "erro", item.linha.intervalo, sugestoesEtapas ?? "Declare a etapa de destino no mesmo flow antes de usa-la em em_sucesso ou em_erro."));
|
|
984
1063
|
}
|
|
985
1064
|
}
|
|
986
|
-
if (item.etapa.task) {
|
|
1065
|
+
if (item.etapa.task && tasksConhecidas.has(item.etapa.task)) {
|
|
987
1066
|
const detalhesTask = tarefasDetalhadas.get(item.etapa.task);
|
|
988
1067
|
const indiceErrors = indiceErros(detalhesTask?.errors ?? []);
|
|
989
1068
|
for (const rotaErro of item.etapa.porErro) {
|
|
@@ -1187,10 +1266,187 @@ function validarGuardrailsSeguranca(modulo, diagnosticos) {
|
|
|
1187
1266
|
}
|
|
1188
1267
|
}
|
|
1189
1268
|
}
|
|
1269
|
+
function valoresDeclarativos(bloco) {
|
|
1270
|
+
if (!bloco) {
|
|
1271
|
+
return [];
|
|
1272
|
+
}
|
|
1273
|
+
return [
|
|
1274
|
+
...bloco.linhas.map((linha) => linha.conteudo),
|
|
1275
|
+
...bloco.campos.map((campo) => valorCampoCompleto(campo) ?? campo.nome),
|
|
1276
|
+
].filter((valor) => valor.trim().length > 0);
|
|
1277
|
+
}
|
|
1278
|
+
function valoresDeclarativosProfundos(bloco) {
|
|
1279
|
+
if (!bloco) {
|
|
1280
|
+
return [];
|
|
1281
|
+
}
|
|
1282
|
+
return [
|
|
1283
|
+
nomeBlocoDeclarativo(bloco),
|
|
1284
|
+
bloco.nome ?? "",
|
|
1285
|
+
...valoresDeclarativos(bloco),
|
|
1286
|
+
...bloco.campos.flatMap((campo) => [campo.nome, campo.valor, ...campo.modificadores]),
|
|
1287
|
+
...bloco.blocos.flatMap((filho) => filho.tipo === "bloco_generico" ? valoresDeclarativosProfundos(filho) : []),
|
|
1288
|
+
].filter((valor) => valor.trim().length > 0);
|
|
1289
|
+
}
|
|
1290
|
+
function normalizarTextoAuthorSensivel(valor) {
|
|
1291
|
+
return valor
|
|
1292
|
+
.normalize("NFD")
|
|
1293
|
+
.replace(/[\u0300-\u036f]/g, "")
|
|
1294
|
+
.toLowerCase()
|
|
1295
|
+
.replace(/[_\W]+/g, " ")
|
|
1296
|
+
.replace(/\s+/g, " ")
|
|
1297
|
+
.trim();
|
|
1298
|
+
}
|
|
1299
|
+
function textoContemTermoAuthorSensivel(valor) {
|
|
1300
|
+
const texto = ` ${normalizarTextoAuthorSensivel(valor)} `;
|
|
1301
|
+
return TERMOS_AUTHOR_SENSIVEIS.some((termo) => {
|
|
1302
|
+
const termoNormalizado = normalizarTextoAuthorSensivel(termo);
|
|
1303
|
+
if (termoNormalizado.length <= 3) {
|
|
1304
|
+
return texto.includes(` ${termoNormalizado} `);
|
|
1305
|
+
}
|
|
1306
|
+
return texto.includes(termoNormalizado);
|
|
1307
|
+
});
|
|
1308
|
+
}
|
|
1309
|
+
function blocoAuthorMarcaSensivel(bloco) {
|
|
1310
|
+
const campoSensivel = localizarCampo(bloco, "sensivel", "sensitive", "tema_sensivel");
|
|
1311
|
+
const valorSensivel = normalizarTextoAuthorSensivel(valorCampoCompleto(campoSensivel) ?? "");
|
|
1312
|
+
if (["verdadeiro", "true", "sim", "alto", "alta", "critico", "critica"].includes(valorSensivel)) {
|
|
1313
|
+
return true;
|
|
1314
|
+
}
|
|
1315
|
+
return valoresDeclarativosProfundos(bloco).some(textoContemTermoAuthorSensivel);
|
|
1316
|
+
}
|
|
1317
|
+
function coletarAuthorBlocksPorTipo(modulo, tipos) {
|
|
1318
|
+
return modulo.authorBlocks.filter((bloco) => tipos.includes(nomeBlocoDeclarativo(bloco)));
|
|
1319
|
+
}
|
|
1320
|
+
function coletarSubblocosPorNomes(bloco, nomes) {
|
|
1321
|
+
return bloco.blocos.filter((item) => item.tipo === "bloco_generico" && blocoTemNome(item, nomes));
|
|
1322
|
+
}
|
|
1323
|
+
function validarSubblocoNaoVazio(bloco, diagnosticos, codigo, contexto) {
|
|
1324
|
+
if (bloco.campos.length > 0 || bloco.linhas.length > 0 || bloco.blocos.length > 0) {
|
|
1325
|
+
return;
|
|
1326
|
+
}
|
|
1327
|
+
diagnosticos.push(criarDiagnostico(codigo, `${contexto} declarou "${nomeBlocoDeclarativo(bloco)}" vazio.`, "erro", bloco.intervalo, "Declare ao menos uma linha ou campo para que o guardrail seja verificavel por IA."));
|
|
1328
|
+
}
|
|
1329
|
+
function validarAuthorBlock(bloco, diagnosticos) {
|
|
1330
|
+
const tipo = nomeBlocoDeclarativo(bloco);
|
|
1331
|
+
const contexto = `${tipo} "${bloco.nome ?? tipo}"`;
|
|
1332
|
+
if (["book", "work"].includes(tipo) && !localizarCampo(bloco, "titulo", "title", "proposito", "purpose")) {
|
|
1333
|
+
diagnosticos.push(criarDiagnostico("SEM120", `${contexto} deveria declarar titulo ou proposito para ancorar a obra autoral.`, "aviso", bloco.intervalo, "Use titulo/title para nome editorial ou proposito/purpose para livro tecnico, ensaio, manual ou obra nao ficcional."));
|
|
1334
|
+
}
|
|
1335
|
+
if (["chapter", "section"].includes(tipo) && !localizarCampo(bloco, "intent", "intencao", "objetivo", "purpose")) {
|
|
1336
|
+
diagnosticos.push(criarDiagnostico("SEM121", `${contexto} deveria declarar intencao ou objetivo.`, "aviso", bloco.intervalo, "Declare intent/intencao/objetivo para que a IA nao preencha a secao com texto generico."));
|
|
1337
|
+
}
|
|
1338
|
+
if (tipo === "scene" && !localizarCampo(bloco, "pov", "ponto_de_vista")) {
|
|
1339
|
+
diagnosticos.push(criarDiagnostico("SEM122", `${contexto} deveria declarar pov para preservar continuidade narrativa.`, "aviso", bloco.intervalo, "Use pov ou ponto_de_vista quando a obra tiver cenas narrativas."));
|
|
1340
|
+
}
|
|
1341
|
+
if (tipo === "voice" && !localizarCampo(bloco, "tom", "tone", "registro", "ritmo")) {
|
|
1342
|
+
diagnosticos.push(criarDiagnostico("SEM123", `${contexto} deveria declarar tom, registro ou ritmo.`, "aviso", bloco.intervalo, "Declare a voz da obra para reduzir texto raso, repetitivo ou com cara de IA."));
|
|
1343
|
+
}
|
|
1344
|
+
if (tipo === "claim" && !localizarCampo(bloco, "source", "fonte", "evidencia", "confidence", "confianca")) {
|
|
1345
|
+
diagnosticos.push(criarDiagnostico("SEM124", `${contexto} deveria declarar fonte, evidencia ou confianca.`, "aviso", bloco.intervalo, "Claims de nao-ficcao precisam de rastreio para diferenciar argumento, opiniao e evidencia."));
|
|
1346
|
+
}
|
|
1347
|
+
if (tipo === "style_rule") {
|
|
1348
|
+
const guardrails = coletarSubblocosPorNomes(bloco, ["forbidden", "proibido", "avoid", "evitar", "echo", "ecos"]);
|
|
1349
|
+
const tolerancia = localizarBlocoPorNomes(bloco, "tolerancia", "tolerance");
|
|
1350
|
+
if (guardrails.length === 0 && !tolerancia && bloco.campos.length === 0 && bloco.linhas.length === 0) {
|
|
1351
|
+
diagnosticos.push(criarDiagnostico("SEM125", `${contexto} precisa declarar proibicoes, ecos, tolerancia ou preferencias.`, "erro", bloco.intervalo, "Use proibido/forbidden para cliches, echo/ecos para repeticao, evitar/avoid para muletas ou tolerancia para limites."));
|
|
1352
|
+
}
|
|
1353
|
+
for (const guardrail of guardrails) {
|
|
1354
|
+
validarSubblocoNaoVazio(guardrail, diagnosticos, "SEM126", contexto);
|
|
1355
|
+
}
|
|
1356
|
+
const vistos = new Set();
|
|
1357
|
+
for (const guardrail of guardrails) {
|
|
1358
|
+
for (const valor of valoresDeclarativos(guardrail)) {
|
|
1359
|
+
const chave = valor.toLowerCase();
|
|
1360
|
+
if (vistos.has(chave)) {
|
|
1361
|
+
diagnosticos.push(criarDiagnostico("SEM127", `${contexto} repetiu o guardrail de estilo "${valor}".`, "aviso", guardrail.intervalo, "Remova duplicatas para manter a regra de estilo enxuta."));
|
|
1362
|
+
}
|
|
1363
|
+
vistos.add(chave);
|
|
1364
|
+
}
|
|
1365
|
+
}
|
|
1366
|
+
}
|
|
1367
|
+
}
|
|
1368
|
+
function styleRuleTemProibicoes(bloco) {
|
|
1369
|
+
return coletarSubblocosPorNomes(bloco, ["forbidden", "proibido", "avoid", "evitar"]).some((guardrail) => valoresDeclarativos(guardrail).length > 0);
|
|
1370
|
+
}
|
|
1371
|
+
function flowReferenciaAgent(flow, agentsConhecidos) {
|
|
1372
|
+
for (const linha of flow.corpo.linhas) {
|
|
1373
|
+
const etapa = parsearEtapaFlow(linha.conteudo);
|
|
1374
|
+
if (etapa?.task && referenciaAgentConhecida(etapa.task, agentsConhecidos)) {
|
|
1375
|
+
return true;
|
|
1376
|
+
}
|
|
1377
|
+
}
|
|
1378
|
+
const task = localizarCampo(flow.corpo, "task")?.valor;
|
|
1379
|
+
return Boolean(task && referenciaAgentConhecida(task, agentsConhecidos));
|
|
1380
|
+
}
|
|
1381
|
+
function validarAuthorSensivel(modulo, agentsConhecidos, diagnosticos) {
|
|
1382
|
+
if (modulo.authorBlocks.length === 0 || !modulo.authorBlocks.some(blocoAuthorMarcaSensivel)) {
|
|
1383
|
+
return;
|
|
1384
|
+
}
|
|
1385
|
+
const obras = coletarAuthorBlocksPorTipo(modulo, ["book", "work"]);
|
|
1386
|
+
const audiences = coletarAuthorBlocksPorTipo(modulo, ["audience"]);
|
|
1387
|
+
const claims = coletarAuthorBlocksPorTipo(modulo, ["claim"]);
|
|
1388
|
+
const sources = coletarAuthorBlocksPorTipo(modulo, ["source"]);
|
|
1389
|
+
const styleRules = coletarAuthorBlocksPorTipo(modulo, ["style_rule"]);
|
|
1390
|
+
const primeiroBlocoSensivel = modulo.authorBlocks.find(blocoAuthorMarcaSensivel) ?? modulo.authorBlocks[0];
|
|
1391
|
+
const intervaloBase = primeiroBlocoSensivel?.intervalo;
|
|
1392
|
+
if (obras.length === 0) {
|
|
1393
|
+
diagnosticos.push(criarDiagnostico("SEM132", "Author sensivel precisa declarar book/work para ancorar proposito, tipo, publico e limites da obra.", "erro", intervaloBase, "Declare book ou work antes de pedir para a IA criar ou editar material sensivel."));
|
|
1394
|
+
}
|
|
1395
|
+
if (audiences.length === 0) {
|
|
1396
|
+
diagnosticos.push(criarDiagnostico("SEM133", "Author sensivel precisa declarar audience/publico antes da IA escrever ou editar.", "erro", intervaloBase, "Declare se o livro fala com pais, educadores, pessoas autistas, profissionais, publico geral ou outro grupo."));
|
|
1397
|
+
}
|
|
1398
|
+
if (claims.length === 0) {
|
|
1399
|
+
diagnosticos.push(criarDiagnostico("SEM134", "Author sensivel precisa declarar claim para separar fato, argumento, opiniao e promessa editorial.", "erro", intervaloBase, "Declare ao menos um claim para qualquer tese factual que a IA deva sustentar ou revisar."));
|
|
1400
|
+
}
|
|
1401
|
+
if (sources.length === 0) {
|
|
1402
|
+
diagnosticos.push(criarDiagnostico("SEM135", "Author sensivel precisa declarar source/fonte rastreavel.", "erro", intervaloBase, "Declare source para DSM, CID, artigo, livro, guia clinico, entrevista, experiencia autoral ou outra fonte aceita."));
|
|
1403
|
+
}
|
|
1404
|
+
if (styleRules.length === 0) {
|
|
1405
|
+
diagnosticos.push(criarDiagnostico("SEM136", "Author sensivel precisa declarar style_rule para bloquear cliche, infantilizacao, generalizacao e linguagem ruim.", "erro", intervaloBase, "Declare style_rule com proibido/evitar/ecos/tolerancia antes da IA gerar texto."));
|
|
1406
|
+
}
|
|
1407
|
+
if (modulo.agents.length === 0) {
|
|
1408
|
+
diagnosticos.push(criarDiagnostico("SEM137", "Author sensivel precisa declarar agent governado para revisao, fonte, sensibilidade ou estilo.", "erro", intervaloBase, "Declare ao menos um agent com role, goal, tools, memory e policy."));
|
|
1409
|
+
}
|
|
1410
|
+
if (!modulo.flows.some((flow) => flowReferenciaAgent(flow, agentsConhecidos))) {
|
|
1411
|
+
diagnosticos.push(criarDiagnostico("SEM138", "Author sensivel precisa declarar flow chamando agent governado.", "erro", intervaloBase, "Modele etapas como escrever, checar fonte, revisar linguagem, validar sensibilidade e preservar canon."));
|
|
1412
|
+
}
|
|
1413
|
+
for (const claim of claims) {
|
|
1414
|
+
if (!localizarCampo(claim, "source", "fonte", "evidencia")) {
|
|
1415
|
+
diagnosticos.push(criarDiagnostico("SEM139", `Claim sensivel "${claim.nome ?? "claim"}" precisa declarar source/fonte/evidencia.`, "erro", claim.intervalo, "Toda afirmacao factual sensivel precisa apontar fonte ou evidencia antes da IA usar no texto."));
|
|
1416
|
+
}
|
|
1417
|
+
if (!localizarCampo(claim, "confidence", "confianca")) {
|
|
1418
|
+
diagnosticos.push(criarDiagnostico("SEM140", `Claim sensivel "${claim.nome ?? "claim"}" precisa declarar confidence/confianca.`, "erro", claim.intervalo, "Declare o nivel de confianca para a IA diferenciar fato forte, consenso limitado e hipotese."));
|
|
1419
|
+
}
|
|
1420
|
+
}
|
|
1421
|
+
for (const styleRule of styleRules) {
|
|
1422
|
+
if (!styleRuleTemProibicoes(styleRule)) {
|
|
1423
|
+
diagnosticos.push(criarDiagnostico("SEM141", `Style_rule sensivel "${styleRule.nome ?? "style_rule"}" precisa declarar proibido/evitar verificavel.`, "erro", styleRule.intervalo, "Inclua termos, frases ou abordagens proibidas, como infantilizacao, generalizacao, promessa clinica ou cliche."));
|
|
1424
|
+
}
|
|
1425
|
+
}
|
|
1426
|
+
}
|
|
1427
|
+
function validarAgent(agent, diagnosticos) {
|
|
1428
|
+
const nome = agent.nome ?? "agent";
|
|
1429
|
+
if (!localizarCampo(agent, "role", "papel") && !localizarCampo(agent, "goal", "objetivo")) {
|
|
1430
|
+
diagnosticos.push(criarDiagnostico("SEM128", `Agent "${nome}" precisa declarar role/papel ou goal/objetivo.`, "erro", agent.intervalo, "Agente sem objetivo vira prompt solto. Declare role ou goal."));
|
|
1431
|
+
}
|
|
1432
|
+
const tools = localizarBlocoPorNomes(agent, "tools", "ferramentas");
|
|
1433
|
+
if (!tools || valoresDeclarativos(tools).length === 0) {
|
|
1434
|
+
diagnosticos.push(criarDiagnostico("SEM129", `Agent "${nome}" precisa declarar tools/ferramentas.`, "erro", agent.intervalo, "Declare as ferramentas que o agente pode usar para limitar acao e dar rastreabilidade."));
|
|
1435
|
+
}
|
|
1436
|
+
const policy = localizarBlocoPorNomes(agent, "policy", "politica");
|
|
1437
|
+
if (!policy || valoresDeclarativos(policy).length === 0) {
|
|
1438
|
+
diagnosticos.push(criarDiagnostico("SEM130", `Agent "${nome}" precisa declarar policy/politica.`, "erro", agent.intervalo, "Declare limites como nao_reescrever_sem_aprovacao, citar_trechos_afetados ou atualizar_docs_apos_edicao."));
|
|
1439
|
+
}
|
|
1440
|
+
const memory = localizarBlocoPorNomes(agent, "memory", "memoria");
|
|
1441
|
+
if (!memory || valoresDeclarativos(memory).length === 0) {
|
|
1442
|
+
diagnosticos.push(criarDiagnostico("SEM131", `Agent "${nome}" deveria declarar memory/memoria para evitar contexto improvisado.`, "aviso", agent.intervalo, "Declare quais memorias, docs ou contratos o agente deve consultar antes de agir."));
|
|
1443
|
+
}
|
|
1444
|
+
}
|
|
1190
1445
|
export function criarContextoLocal(modulo) {
|
|
1191
1446
|
const simbolos = new Map();
|
|
1192
1447
|
const tiposConhecidos = new Set(TIPOS_PRIMITIVOS);
|
|
1193
1448
|
const tasksConhecidas = new Set();
|
|
1449
|
+
const agentsConhecidos = new Set();
|
|
1194
1450
|
const tarefasDetalhadas = new Map();
|
|
1195
1451
|
const statesConhecidos = new Map();
|
|
1196
1452
|
const enumsConhecidos = new Map();
|
|
@@ -1203,6 +1459,10 @@ export function criarContextoLocal(modulo) {
|
|
|
1203
1459
|
tasksConhecidas.add(nome);
|
|
1204
1460
|
return;
|
|
1205
1461
|
}
|
|
1462
|
+
if (categoria === "agent") {
|
|
1463
|
+
agentsConhecidos.add(nome);
|
|
1464
|
+
return;
|
|
1465
|
+
}
|
|
1206
1466
|
if (categoria !== "database") {
|
|
1207
1467
|
tiposConhecidos.add(nome);
|
|
1208
1468
|
}
|
|
@@ -1227,6 +1487,16 @@ export function criarContextoLocal(modulo) {
|
|
|
1227
1487
|
for (const route of modulo.routes) {
|
|
1228
1488
|
registrar(route.nome, "route");
|
|
1229
1489
|
}
|
|
1490
|
+
for (const authorBlock of modulo.authorBlocks) {
|
|
1491
|
+
if (authorBlock.nome && TIPOS_AUTHOR_PROFILE.has(authorBlock.palavraChave)) {
|
|
1492
|
+
registrar(authorBlock.nome, authorBlock.palavraChave);
|
|
1493
|
+
}
|
|
1494
|
+
}
|
|
1495
|
+
for (const agent of modulo.agents) {
|
|
1496
|
+
if (agent.nome) {
|
|
1497
|
+
registrar(agent.nome, "agent");
|
|
1498
|
+
}
|
|
1499
|
+
}
|
|
1230
1500
|
for (const worker of modulo.workers) {
|
|
1231
1501
|
if (worker.nome) {
|
|
1232
1502
|
registrar(worker.nome, "worker");
|
|
@@ -1287,6 +1557,7 @@ export function criarContextoLocal(modulo) {
|
|
|
1287
1557
|
simbolos,
|
|
1288
1558
|
tiposConhecidos,
|
|
1289
1559
|
tasksConhecidas,
|
|
1560
|
+
agentsConhecidos,
|
|
1290
1561
|
tarefasDetalhadas,
|
|
1291
1562
|
statesConhecidos,
|
|
1292
1563
|
modulosImportados: [],
|
|
@@ -1380,6 +1651,7 @@ export function analisarSemantica(modulo, opcoes = {}) {
|
|
|
1380
1651
|
const simbolos = new Map();
|
|
1381
1652
|
const tiposConhecidos = new Set(TIPOS_PRIMITIVOS);
|
|
1382
1653
|
const tasksConhecidas = new Set();
|
|
1654
|
+
const agentsConhecidos = new Set();
|
|
1383
1655
|
const tarefasDetalhadas = new Map();
|
|
1384
1656
|
const statesConhecidos = new Map();
|
|
1385
1657
|
const modulosImportados = [];
|
|
@@ -1415,6 +1687,9 @@ export function analisarSemantica(modulo, opcoes = {}) {
|
|
|
1415
1687
|
for (const task of contextoImportado.tasksConhecidas) {
|
|
1416
1688
|
tasksConhecidas.add(task);
|
|
1417
1689
|
}
|
|
1690
|
+
for (const agent of contextoImportado.agentsConhecidos) {
|
|
1691
|
+
agentsConhecidos.add(agent);
|
|
1692
|
+
}
|
|
1418
1693
|
for (const [nomeTask, detalhesTask] of contextoImportado.tarefasDetalhadas) {
|
|
1419
1694
|
tarefasDetalhadas.set(nomeTask, {
|
|
1420
1695
|
input: detalhesTask.input.map((campo) => ({ ...campo, modificadores: [...campo.modificadores] })),
|
|
@@ -1444,6 +1719,10 @@ export function analisarSemantica(modulo, opcoes = {}) {
|
|
|
1444
1719
|
tasksConhecidas.add(nome);
|
|
1445
1720
|
return;
|
|
1446
1721
|
}
|
|
1722
|
+
if (categoria === "agent") {
|
|
1723
|
+
agentsConhecidos.add(nome);
|
|
1724
|
+
return;
|
|
1725
|
+
}
|
|
1447
1726
|
if (categoria !== "database") {
|
|
1448
1727
|
tiposConhecidos.add(nome);
|
|
1449
1728
|
}
|
|
@@ -1468,6 +1747,16 @@ export function analisarSemantica(modulo, opcoes = {}) {
|
|
|
1468
1747
|
for (const route of modulo.routes) {
|
|
1469
1748
|
registrar(route.nome, "route", route.intervalo);
|
|
1470
1749
|
}
|
|
1750
|
+
for (const authorBlock of modulo.authorBlocks) {
|
|
1751
|
+
if (authorBlock.nome && TIPOS_AUTHOR_PROFILE.has(authorBlock.palavraChave)) {
|
|
1752
|
+
registrar(authorBlock.nome, authorBlock.palavraChave, authorBlock.intervalo);
|
|
1753
|
+
}
|
|
1754
|
+
}
|
|
1755
|
+
for (const agent of modulo.agents) {
|
|
1756
|
+
if (agent.nome) {
|
|
1757
|
+
registrar(agent.nome, "agent", agent.intervalo);
|
|
1758
|
+
}
|
|
1759
|
+
}
|
|
1471
1760
|
for (const worker of modulo.workers) {
|
|
1472
1761
|
if (worker.nome) {
|
|
1473
1762
|
registrar(worker.nome, "worker", worker.intervalo);
|
|
@@ -1545,7 +1834,7 @@ export function analisarSemantica(modulo, opcoes = {}) {
|
|
|
1545
1834
|
validarTask(task, tiposConhecidos, statesConhecidos, diagnosticos);
|
|
1546
1835
|
}
|
|
1547
1836
|
for (const flow of modulo.flows) {
|
|
1548
|
-
validarFlow(flow, tasksConhecidas, tarefasDetalhadas, diagnosticos);
|
|
1837
|
+
validarFlow(flow, tasksConhecidas, agentsConhecidos, tarefasDetalhadas, diagnosticos);
|
|
1549
1838
|
}
|
|
1550
1839
|
for (const route of modulo.routes) {
|
|
1551
1840
|
validarRoute(route, tasksConhecidas, tarefasDetalhadas, diagnosticos);
|
|
@@ -1575,6 +1864,13 @@ export function analisarSemantica(modulo, opcoes = {}) {
|
|
|
1575
1864
|
for (const policy of modulo.policies) {
|
|
1576
1865
|
validarSuperficie(policy, "policy", tasksConhecidas, tiposConhecidos, diagnosticos);
|
|
1577
1866
|
}
|
|
1867
|
+
for (const authorBlock of modulo.authorBlocks) {
|
|
1868
|
+
validarAuthorBlock(authorBlock, diagnosticos);
|
|
1869
|
+
}
|
|
1870
|
+
for (const agent of modulo.agents) {
|
|
1871
|
+
validarAgent(agent, diagnosticos);
|
|
1872
|
+
}
|
|
1873
|
+
validarAuthorSensivel(modulo, agentsConhecidos, diagnosticos);
|
|
1578
1874
|
for (const database of modulo.databases) {
|
|
1579
1875
|
validarDatabase(database, diagnosticos);
|
|
1580
1876
|
}
|
|
@@ -1603,6 +1899,7 @@ export function analisarSemantica(modulo, opcoes = {}) {
|
|
|
1603
1899
|
simbolos,
|
|
1604
1900
|
tiposConhecidos,
|
|
1605
1901
|
tasksConhecidas,
|
|
1902
|
+
agentsConhecidos,
|
|
1606
1903
|
tarefasDetalhadas,
|
|
1607
1904
|
statesConhecidos,
|
|
1608
1905
|
modulosImportados,
|