@semacode/cli 2.1.0 → 2.3.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.
Files changed (154) hide show
  1. package/README.md +107 -4
  2. package/dist/agentContext.d.ts +1 -1
  3. package/dist/agentContextPack.js +6 -1
  4. package/dist/agentContextTipos.d.ts +4 -2
  5. package/dist/agentContextTipos.js +7 -0
  6. package/dist/agentEntryPoints.js +70 -19
  7. package/dist/comandos.js +6 -0
  8. package/dist/discovery/catalog.d.ts +11 -0
  9. package/dist/discovery/catalog.js +521 -0
  10. package/dist/discovery/command.d.ts +11 -0
  11. package/dist/discovery/command.js +226 -0
  12. package/dist/discovery/index.d.ts +5 -0
  13. package/dist/discovery/index.js +8 -0
  14. package/dist/discovery/ranker.d.ts +3 -0
  15. package/dist/discovery/ranker.js +310 -0
  16. package/dist/discovery/redaction.d.ts +2 -0
  17. package/dist/discovery/redaction.js +21 -0
  18. package/dist/discovery/render.d.ts +2 -0
  19. package/dist/discovery/render.js +100 -0
  20. package/dist/discovery/types.d.ts +119 -0
  21. package/dist/discovery/types.js +13 -0
  22. package/dist/execucoesExternas.js +19 -5
  23. package/dist/exemplosOficiais.js +29 -8
  24. package/dist/iaPrompts.d.ts +1 -1
  25. package/dist/iaPrompts.js +3 -0
  26. package/dist/index.d.ts +3 -0
  27. package/dist/index.js +24 -5
  28. package/dist/index.part01.d.ts +1 -1
  29. package/dist/index.part01.js +47 -3
  30. package/dist/index.part06.js +3 -0
  31. package/dist/initTemplatesBase.js +3 -2
  32. package/dist/pipelineConteudo/adapters.d.ts +84 -0
  33. package/dist/pipelineConteudo/adapters.js +449 -0
  34. package/dist/pipelineConteudo/canonical.d.ts +18 -0
  35. package/dist/pipelineConteudo/canonical.js +107 -0
  36. package/dist/pipelineConteudo/command.d.ts +3 -0
  37. package/dist/pipelineConteudo/command.js +572 -0
  38. package/dist/pipelineConteudo/index.d.ts +9 -0
  39. package/dist/pipelineConteudo/index.js +12 -0
  40. package/dist/pipelineConteudo/ledger.d.ts +68 -0
  41. package/dist/pipelineConteudo/ledger.js +732 -0
  42. package/dist/pipelineConteudo/planner.d.ts +12 -0
  43. package/dist/pipelineConteudo/planner.js +366 -0
  44. package/dist/pipelineConteudo/projection.d.ts +16 -0
  45. package/dist/pipelineConteudo/projection.js +57 -0
  46. package/dist/pipelineConteudo/state.d.ts +23 -0
  47. package/dist/pipelineConteudo/state.js +615 -0
  48. package/dist/pipelineConteudo/trust.d.ts +17 -0
  49. package/dist/pipelineConteudo/trust.js +750 -0
  50. package/dist/pipelineConteudo/types.d.ts +331 -0
  51. package/dist/pipelineConteudo/types.js +4 -0
  52. package/dist/profileArtefatoValidadores.d.ts +3 -2
  53. package/dist/profileArtefatoValidadores.js +81 -0
  54. package/dist/profileAuthorTipos.d.ts +4 -3
  55. package/dist/profileCatalogo.d.ts +5 -5
  56. package/dist/profileCatalogo.js +30 -0
  57. package/dist/profileCommand.d.ts +8 -2
  58. package/dist/profileCommand.js +15 -5
  59. package/dist/profileRegras.d.ts +5 -5
  60. package/dist/profileRegras.js +13 -1
  61. package/dist/profileRulePacks.js +68 -0
  62. package/dist/sistemasInterativos/adapterProtocol.d.ts +3 -0
  63. package/dist/sistemasInterativos/adapterProtocol.js +240 -0
  64. package/dist/sistemasInterativos/advancedCatalog.d.ts +5 -0
  65. package/dist/sistemasInterativos/advancedCatalog.js +442 -0
  66. package/dist/sistemasInterativos/autonomy.d.ts +230 -0
  67. package/dist/sistemasInterativos/autonomy.js +753 -0
  68. package/dist/sistemasInterativos/canonical.d.ts +3 -0
  69. package/dist/sistemasInterativos/canonical.js +43 -0
  70. package/dist/sistemasInterativos/catalog.d.ts +116 -0
  71. package/dist/sistemasInterativos/catalog.js +543 -0
  72. package/dist/sistemasInterativos/command.d.ts +7 -0
  73. package/dist/sistemasInterativos/command.js +311 -0
  74. package/dist/sistemasInterativos/controlRun.d.ts +56 -0
  75. package/dist/sistemasInterativos/controlRun.js +391 -0
  76. package/dist/sistemasInterativos/evidence.d.ts +5 -0
  77. package/dist/sistemasInterativos/evidence.js +306 -0
  78. package/dist/sistemasInterativos/experienceIr.d.ts +12 -0
  79. package/dist/sistemasInterativos/experienceIr.js +895 -0
  80. package/dist/sistemasInterativos/experienceIrSemantics.d.ts +30 -0
  81. package/dist/sistemasInterativos/experienceIrSemantics.js +368 -0
  82. package/dist/sistemasInterativos/experienceIrTypes.d.ts +370 -0
  83. package/dist/sistemasInterativos/experienceIrTypes.js +5 -0
  84. package/dist/sistemasInterativos/extensionCommand.d.ts +391 -0
  85. package/dist/sistemasInterativos/extensionCommand.js +383 -0
  86. package/dist/sistemasInterativos/index.d.ts +19 -0
  87. package/dist/sistemasInterativos/index.js +22 -0
  88. package/dist/sistemasInterativos/operations.d.ts +40 -0
  89. package/dist/sistemasInterativos/operations.js +1167 -0
  90. package/dist/sistemasInterativos/operationsTypes.d.ts +297 -0
  91. package/dist/sistemasInterativos/operationsTypes.js +11 -0
  92. package/dist/sistemasInterativos/planner.d.ts +2 -0
  93. package/dist/sistemasInterativos/planner.js +159 -0
  94. package/dist/sistemasInterativos/portability.d.ts +164 -0
  95. package/dist/sistemasInterativos/portability.js +539 -0
  96. package/dist/sistemasInterativos/render.d.ts +3 -0
  97. package/dist/sistemasInterativos/render.js +179 -0
  98. package/dist/sistemasInterativos/temporal.d.ts +183 -0
  99. package/dist/sistemasInterativos/temporal.js +543 -0
  100. package/dist/sistemasInterativos/types.d.ts +215 -0
  101. package/dist/sistemasInterativos/types.js +4 -0
  102. package/dist/sistemasInterativos/validator.d.ts +2 -0
  103. package/dist/sistemasInterativos/validator.js +305 -0
  104. package/docs/README.md +9 -0
  105. package/docs/ai-integration.md +7 -1
  106. package/docs/ai-workflow.md +5 -4
  107. package/docs/commands.md +43 -1
  108. package/docs/descoberta-capacidades.md +106 -0
  109. package/docs/documentation.md +11 -2
  110. package/docs/pipeline-conteudo.md +246 -0
  111. package/docs/profiles.md +11 -2
  112. package/docs/sistemas-interativos.md +381 -0
  113. package/docs/testing.md +11 -2
  114. package/exemplos/pipeline-conteudo/README.md +44 -0
  115. package/exemplos/pipeline-conteudo/alvos.json +23 -0
  116. package/exemplos/pipeline-conteudo/definicao.json +136 -0
  117. package/exemplos/profile_simulation.sema +211 -0
  118. package/exemplos/sistemas-interativos/README.md +100 -0
  119. package/exemplos/sistemas-interativos/advanced/acceptance-context-evaluate-valid.json +5 -0
  120. package/exemplos/sistemas-interativos/advanced/acceptance-lock-valid.json +16 -0
  121. package/exemplos/sistemas-interativos/advanced/asset-provenance-valid.json +32 -0
  122. package/exemplos/sistemas-interativos/advanced/autonomy-repair-valid.json +93 -0
  123. package/exemplos/sistemas-interativos/advanced/control-run-definition-valid.json +78 -0
  124. package/exemplos/sistemas-interativos/advanced/control-run-valid.json +27 -0
  125. package/exemplos/sistemas-interativos/advanced/distributed-workers-valid.json +79 -0
  126. package/exemplos/sistemas-interativos/advanced/editor-state-valid.json +42 -0
  127. package/exemplos/sistemas-interativos/advanced/engine-snapshot-after-valid.json +32 -0
  128. package/exemplos/sistemas-interativos/advanced/engine-snapshot-before-valid.json +23 -0
  129. package/exemplos/sistemas-interativos/advanced/job-orchestration-valid.json +39 -0
  130. package/exemplos/sistemas-interativos/advanced/multimodal-evidence-valid.json +46 -0
  131. package/exemplos/sistemas-interativos/advanced/multiplayer-authority-valid.json +39 -0
  132. package/exemplos/sistemas-interativos/advanced/playtest-fuzz-valid.json +37 -0
  133. package/exemplos/sistemas-interativos/advanced/portability-valid.json +104 -0
  134. package/exemplos/sistemas-interativos/advanced/temporal-evidence-valid.json +27 -0
  135. package/exemplos/sistemas-interativos/advanced/temporal-valid.json +118 -0
  136. package/exemplos/sistemas-interativos/experience-ir-valid.json +459 -0
  137. package/exemplos/sistemas-interativos/game-2d.json +83 -0
  138. package/exemplos/sistemas-interativos/game-3d-human.json +81 -0
  139. package/exemplos/sistemas-interativos/game-pixel-16-bit.json +97 -0
  140. package/exemplos/sistemas-interativos/game-pixel-8-bit.json +94 -0
  141. package/exemplos/sistemas-interativos/game-xr-human.json +80 -0
  142. package/exemplos/sistemas-interativos/hybrid-2-5d.json +108 -0
  143. package/exemplos/sistemas-interativos/protocol-mutating-rollback-valid.json +75 -0
  144. package/exemplos/sistemas-interativos/protocol-read-only-valid.json +58 -0
  145. package/exemplos/sistemas-interativos/simulation-2d-controlled.json +97 -0
  146. package/exemplos/sistemas-interativos/simulation-3d-calibrated-autonomous.json +141 -0
  147. package/exemplos/sistemas-interativos/simulation-headless-autonomous-batch.json +112 -0
  148. package/exemplos/sistemas-interativos/simulation-pixel-16-bit.json +103 -0
  149. package/exemplos/sistemas-interativos/simulation-text-controlled.json +95 -0
  150. package/node_modules/@sema/gerador-lua/dist/index.js +78 -4
  151. package/node_modules/@sema/gerador-lua/dist/index.js.map +1 -1
  152. package/node_modules/@sema/gerador-php/dist/index.js +8 -0
  153. package/node_modules/@sema/gerador-php/dist/index.js.map +1 -1
  154. package/package.json +8 -1
@@ -0,0 +1,331 @@
1
+ export type JsonPrimitivo = string | number | boolean | null;
2
+ export type JsonValor = JsonPrimitivo | JsonObjeto | readonly JsonValor[];
3
+ export interface JsonObjeto {
4
+ readonly [chave: string]: JsonValor;
5
+ }
6
+ export interface MetadataPublicaConteudo {
7
+ readonly [chave: string]: JsonPrimitivo;
8
+ }
9
+ export type VereditoConteudo = "NAO_AVALIADO" | "APROVADO" | "REPROVADO" | "INCONCLUSIVO";
10
+ export type EstadoEvidenciaConteudo = "DECLARADA" | "ACEITA" | "REJEITADA" | "EXPIRADA" | "REVOGADA" | "SUPERADA";
11
+ export type ModoAvaliacaoConteudo = "DETERMINISTICA" | "IA_ESPECIALIZADA" | "HIBRIDA";
12
+ export type CondicaoOperacionalConteudo = "PENDENTE" | "PRONTA" | "EXECUTANDO" | "AGUARDANDO_EVIDENCIA" | "AGUARDANDO_EVENTO_EXTERNO" | "FERRAMENTA_INDISPONIVEL" | "CAPACIDADE_AUSENTE" | "AUTORIZACAO_AUSENTE" | "FALHA_TRANSITORIA" | "FALHA_TERMINAL" | "EXECUCAO_ENCERRADA";
13
+ export type EscopoEtapaConteudo = "GLOBAL" | "POR_ALVO";
14
+ export type ResultadoAvaliacaoConteudo = "APROVADO" | "REPROVADO" | "INCONCLUSIVO";
15
+ export interface PrincipalConteudo {
16
+ readonly principalId: string;
17
+ readonly keyId: string;
18
+ readonly controlDomain: string;
19
+ readonly papeis: readonly string[];
20
+ readonly capabilities: readonly string[];
21
+ readonly scopes: readonly string[];
22
+ readonly publicKeyPem: string;
23
+ }
24
+ /**
25
+ * Raiz publica de confianca. Chaves privadas nunca pertencem a esta configuracao
26
+ * nem ao workspace canonico do pipeline.
27
+ */
28
+ export interface ConfiguracaoConfiancaConteudo {
29
+ readonly trustDomainId: string;
30
+ readonly principals: readonly PrincipalConteudo[];
31
+ readonly revokedKeyIds: readonly string[];
32
+ readonly maxEnvelopeAgeMs?: number;
33
+ readonly maxFutureSkewMs?: number;
34
+ readonly schemaVersionsAceitas?: readonly string[];
35
+ }
36
+ export interface ResultadoValidacaoConfiguracaoConfiancaConteudo {
37
+ readonly valida: boolean;
38
+ readonly trustRootDigest: string;
39
+ readonly revocationDigest: string;
40
+ readonly fingerprints: readonly string[];
41
+ readonly bloqueios: readonly string[];
42
+ }
43
+ export interface EnvelopeAssinavelConteudo<TPayload = JsonValor> {
44
+ readonly schemaVersion: string;
45
+ readonly payloadType: string;
46
+ readonly payload: TPayload;
47
+ readonly principalId: string;
48
+ readonly keyId: string;
49
+ readonly issuedAt: string;
50
+ readonly nonce: string;
51
+ readonly signatureAlgorithm: "Ed25519";
52
+ }
53
+ export interface EnvelopeAssinadoConteudo<TPayload = JsonValor> extends EnvelopeAssinavelConteudo<TPayload> {
54
+ /** Assinatura Ed25519 em base64 do JSON canonico de EnvelopeAssinavelConteudo. */
55
+ readonly signature: string;
56
+ }
57
+ export interface OpcoesVerificacaoEnvelopeConteudo {
58
+ /** Pins fornecidos por uma fronteira externa; nunca podem ser derivados da configuracao recebida. */
59
+ readonly trustRootDigestEsperado: string;
60
+ readonly revocationDigestEsperado: string;
61
+ readonly payloadTypeEsperado: string;
62
+ readonly capabilityRequerida?: string;
63
+ readonly scopeRequerido?: string;
64
+ readonly papelRequerido?: string;
65
+ readonly papeisPermitidos?: readonly string[];
66
+ readonly agora?: string | Date | number;
67
+ readonly maxEnvelopeAgeMs?: number;
68
+ readonly maxFutureSkewMs?: number;
69
+ /** Nonces ja observados. A verificacao e pura e nao altera este conjunto. */
70
+ readonly noncesUsados?: ReadonlySet<string>;
71
+ }
72
+ export interface EnvelopeVerificadoConteudo<TPayload = JsonValor> {
73
+ readonly estado: "ACEITA";
74
+ readonly digest: string;
75
+ readonly principal: PrincipalConteudo;
76
+ readonly envelope: EnvelopeAssinadoConteudo<TPayload>;
77
+ readonly payload: TPayload;
78
+ }
79
+ export interface ResultadoVerificacaoEnvelopeConteudo<TPayload = JsonValor> {
80
+ readonly valido: boolean;
81
+ readonly digest: string;
82
+ readonly principal?: PrincipalConteudo;
83
+ readonly envelopeVerificado?: EnvelopeVerificadoConteudo<TPayload>;
84
+ readonly bloqueios: readonly string[];
85
+ }
86
+ /** Contexto anti-replay que faz parte do payload assinado de todo evento. */
87
+ export interface ContextoAssinadoEventoConteudo {
88
+ readonly runId: string;
89
+ readonly trustDomainId: string;
90
+ readonly trustRootDigest: string;
91
+ readonly ledgerId: string;
92
+ readonly policyDigest: string;
93
+ readonly definitionDigest: string;
94
+ }
95
+ /** Eventos ligados a um alvo/conta carregam tambem o escopo derivado pelo planner. */
96
+ export interface ContextoAutorizadoEventoConteudo extends ContextoAssinadoEventoConteudo {
97
+ readonly authorizationScope: string;
98
+ }
99
+ /** Declaracao do runner/produtor. So vira evidencia depois de um atestado confiavel. */
100
+ export interface AlegacaoEvidenciaConteudo extends ContextoAutorizadoEventoConteudo {
101
+ readonly kind: "EVIDENCE_CLAIMED";
102
+ readonly claimId: string;
103
+ readonly stageId: string;
104
+ readonly targetId?: string;
105
+ readonly artifactDigest: string;
106
+ readonly evidenceType: string;
107
+ readonly producerId: string;
108
+ readonly claimedAt: string;
109
+ readonly data?: JsonObjeto;
110
+ }
111
+ /** Observacao assinada por um verificador/adapter autorizado, nunca pelo recibo em si. */
112
+ export interface AtestadoEvidenciaConteudo extends ContextoAutorizadoEventoConteudo {
113
+ readonly kind: "EVIDENCE_ATTESTED";
114
+ readonly evidenceId: string;
115
+ readonly claimId?: string;
116
+ readonly gateId: string;
117
+ readonly stageId: string;
118
+ readonly targetId?: string;
119
+ readonly artifactDigest: string;
120
+ readonly evidenceType: string;
121
+ readonly producerId: string;
122
+ readonly attesterId: string;
123
+ readonly result: ResultadoAvaliacaoConteudo;
124
+ readonly observedAt: string;
125
+ readonly data?: JsonObjeto;
126
+ }
127
+ export interface ParecerIAConteudo extends ContextoAutorizadoEventoConteudo {
128
+ readonly kind: "AI_ASSESSMENT";
129
+ readonly assessmentId: string;
130
+ readonly gateId: string;
131
+ readonly targetId?: string;
132
+ readonly artifactDigest: string;
133
+ readonly rubricDigest: string;
134
+ readonly evaluatorId: string;
135
+ /** Capability especializada concreta exercida neste parecer. */
136
+ readonly capability: string;
137
+ readonly result: ResultadoAvaliacaoConteudo;
138
+ readonly assessedAt: string;
139
+ readonly rationaleDigest?: string;
140
+ readonly data?: JsonObjeto;
141
+ }
142
+ export interface PoliticaGateConteudo {
143
+ readonly gateId: string;
144
+ readonly stageId: string;
145
+ readonly scope: EscopoEtapaConteudo;
146
+ readonly evaluationMode: ModoAvaliacaoConteudo;
147
+ readonly requiredEvidence: readonly string[];
148
+ readonly evaluatorCapabilities: readonly string[];
149
+ /** Quorum independente exigido para cada tipo de evidencia deterministica. */
150
+ readonly minAttestationsPerEvidence: number;
151
+ readonly minDistinctAttesterControlDomains: number;
152
+ readonly minApprovals: number;
153
+ readonly minDistinctControlDomains: number;
154
+ readonly producerDisjoint: boolean;
155
+ readonly rejectionIsBinding: boolean;
156
+ readonly rubricDigest: string;
157
+ }
158
+ export interface PoliticaConfiancaConteudo {
159
+ readonly policyId: string;
160
+ readonly version: string;
161
+ readonly runId: string;
162
+ readonly trustDomainId: string;
163
+ readonly trustRootDigest: string;
164
+ readonly definitionDigest: string;
165
+ readonly targetSetDigest: string;
166
+ readonly ledgerId: string;
167
+ readonly gates: readonly PoliticaGateConteudo[];
168
+ readonly issuedAt: string;
169
+ readonly expiresAt: string;
170
+ }
171
+ export interface EntradaAvaliacaoGateConteudo {
172
+ /** Politica assinada que vincula o gate base; requisitos adicionais so podem endurece-lo. */
173
+ readonly envelopePolitica: EnvelopeAssinadoConteudo<PoliticaConfiancaConteudo>;
174
+ readonly gate: PoliticaGateConteudo;
175
+ readonly requiredEvidenceAdicional?: readonly string[];
176
+ /** Requisitos adicionais derivados do adapter; so endurecem a policy assinada. */
177
+ readonly attesterCapabilitiesAdicionais?: Readonly<Record<string, string>>;
178
+ readonly artifactDigest: string;
179
+ readonly targetId?: string;
180
+ readonly runId: string;
181
+ readonly trustDomainId: string;
182
+ readonly trustRootDigest: string;
183
+ readonly revocationDigestEsperado: string;
184
+ readonly ledgerId: string;
185
+ readonly policyDigest: string;
186
+ readonly definitionDigest: string;
187
+ readonly authorizationScope: string;
188
+ readonly producerId: string;
189
+ readonly producerLineageIds: readonly string[];
190
+ readonly evidenciasAceitas: readonly EnvelopeVerificadoConteudo<AtestadoEvidenciaConteudo>[];
191
+ readonly pareceresIa: readonly EnvelopeVerificadoConteudo<ParecerIAConteudo>[];
192
+ readonly configuracaoConfianca: ConfiguracaoConfiancaConteudo;
193
+ }
194
+ export interface ResultadoAvaliacaoGateConteudo {
195
+ readonly veredito: VereditoConteudo;
196
+ readonly aprovacoesValidas: number;
197
+ readonly controlDomainsDistintos: number;
198
+ readonly evidenceIds: readonly string[];
199
+ readonly assessmentIds: readonly string[];
200
+ readonly bloqueios: readonly string[];
201
+ }
202
+ export interface RestricaoDeterministicaConteudo {
203
+ readonly constraintId: string;
204
+ readonly kind: string;
205
+ readonly config?: JsonObjeto;
206
+ }
207
+ export interface AdaptadorConteudo {
208
+ readonly adapterId: string;
209
+ readonly version: string;
210
+ readonly capabilities: readonly string[];
211
+ readonly acceptedMediaTypes: readonly string[];
212
+ readonly formatProfiles: readonly string[];
213
+ readonly deterministicConstraints: readonly RestricaoDeterministicaConteudo[];
214
+ readonly requiredMetadata: readonly string[];
215
+ readonly optionalMetadata: readonly string[];
216
+ readonly confirmationPredicates: readonly string[];
217
+ }
218
+ export interface AlvoConteudo {
219
+ readonly targetId: string;
220
+ readonly adapterId: string;
221
+ readonly accountScope: string;
222
+ readonly formatProfileId: string;
223
+ readonly locale: string;
224
+ readonly metadata: MetadataPublicaConteudo;
225
+ }
226
+ export interface EtapaPipelineConteudo {
227
+ readonly stageId: string;
228
+ readonly capability: string;
229
+ readonly scope: EscopoEtapaConteudo;
230
+ readonly adapterPolicy: "NONE" | "CONSTRAINTS" | "CONFIRMATION";
231
+ readonly dependsOn: readonly string[];
232
+ readonly produces: readonly string[];
233
+ readonly gateIds: readonly string[];
234
+ }
235
+ export interface DefinicaoPipelineConteudo {
236
+ readonly schemaVersion: string;
237
+ readonly pipelineId: string;
238
+ readonly version: string;
239
+ readonly stages: readonly EtapaPipelineConteudo[];
240
+ readonly gates: readonly PoliticaGateConteudo[];
241
+ readonly adapters: readonly AdaptadorConteudo[];
242
+ readonly requiredCompletionGates: readonly string[];
243
+ }
244
+ export interface InstanciaEtapaConteudo {
245
+ readonly stageInstanceId: string;
246
+ readonly stageId: string;
247
+ readonly targetId?: string;
248
+ readonly capability: string;
249
+ readonly dependsOn: readonly string[];
250
+ readonly produces: readonly string[];
251
+ readonly gateIds: readonly string[];
252
+ }
253
+ export interface SlotArtefatoConteudo {
254
+ readonly slotId: string;
255
+ readonly stageInstanceId: string;
256
+ readonly artifactType: string;
257
+ readonly targetId?: string;
258
+ }
259
+ export interface InstanciaGateConteudo {
260
+ readonly gateInstanceId: string;
261
+ readonly gateId: string;
262
+ readonly stageInstanceId: string;
263
+ readonly targetId?: string;
264
+ }
265
+ export interface PlanoPipelineConteudo {
266
+ readonly pipelineId: string;
267
+ readonly definitionDigest: string;
268
+ readonly targetIds: readonly string[];
269
+ readonly stageInstances: readonly InstanciaEtapaConteudo[];
270
+ readonly artifactSlots: readonly SlotArtefatoConteudo[];
271
+ readonly gateInstances: readonly InstanciaGateConteudo[];
272
+ readonly nextActions: readonly string[];
273
+ }
274
+ export interface ArtefatoConteudo extends ContextoAutorizadoEventoConteudo {
275
+ readonly kind: "ARTIFACT_REGISTERED";
276
+ readonly artifactId: string;
277
+ readonly stageId: string;
278
+ readonly targetId?: string;
279
+ readonly producerId: string;
280
+ readonly producerLineageIds: readonly string[];
281
+ readonly version: string;
282
+ readonly artifactType: string;
283
+ readonly mediaType: string;
284
+ readonly digest: string;
285
+ readonly lineageDigests: readonly string[];
286
+ }
287
+ export interface InicioExecucaoConteudo extends ContextoAssinadoEventoConteudo {
288
+ readonly kind: "RUN_STARTED";
289
+ readonly targets: readonly AlvoConteudo[];
290
+ readonly startedAt: string;
291
+ }
292
+ export interface CondicaoOperacionalReportadaConteudo extends ContextoAutorizadoEventoConteudo {
293
+ readonly kind: "OPERATIONAL_CONDITION";
294
+ readonly gateId: string;
295
+ readonly targetId?: string;
296
+ readonly condition: CondicaoOperacionalConteudo;
297
+ readonly reason: string;
298
+ readonly reportedAt: string;
299
+ }
300
+ export type EventoPayloadConteudo = InicioExecucaoConteudo | CondicaoOperacionalReportadaConteudo | ArtefatoConteudo | AlegacaoEvidenciaConteudo | AtestadoEvidenciaConteudo | ParecerIAConteudo;
301
+ export interface EventoLedgerConteudo<TPayload = JsonValor> {
302
+ readonly schemaVersion: string;
303
+ readonly ledgerId: string;
304
+ readonly sequence: number;
305
+ readonly eventId: string;
306
+ readonly recordedAt: string;
307
+ readonly previousHash: string;
308
+ readonly envelope: EnvelopeAssinadoConteudo<TPayload>;
309
+ readonly hash: string;
310
+ }
311
+ export interface EstadoGateConteudo {
312
+ readonly gateId: string;
313
+ readonly targetId?: string;
314
+ readonly artifactDigest: string;
315
+ readonly veredito: VereditoConteudo;
316
+ readonly condition: CondicaoOperacionalConteudo;
317
+ readonly evidenceIds: readonly string[];
318
+ readonly assessmentIds: readonly string[];
319
+ readonly blockers: readonly string[];
320
+ }
321
+ export interface ProjecaoPipelineConteudo {
322
+ readonly authoritative: false;
323
+ readonly ledgerId: string;
324
+ readonly ledgerHead: string;
325
+ readonly runId: string;
326
+ readonly generatedAt: string;
327
+ readonly gates: readonly EstadoGateConteudo[];
328
+ readonly targets: readonly AlvoConteudo[];
329
+ readonly artifacts: readonly ArtefatoConteudo[];
330
+ readonly nextActions: readonly string[];
331
+ }
@@ -0,0 +1,4 @@
1
+ // SEMA-GOVERNED: sema.produto.pipeline_conteudo + confianca + ledger + estado + adaptadores
2
+ // Descricao: tipos abertos do pipeline AI-native de conteudo, sem enum de canal, marca ou formato.
3
+ export {};
4
+ //# sourceMappingURL=types.js.map
@@ -1,4 +1,4 @@
1
- import type { AchadoProfile, MaturidadeProfile, PerfilSemantico, PresetProfile } from "./profileAuthorTipos.js";
1
+ import type { AchadoProfile, MaturidadeProfile, PerfilSemanticoValidavel, PresetProfile } from "./profileAuthorTipos.js";
2
2
  export declare function avaliarArtefatoSoftwareProfile(contrato: string, artefato: string, maturidade: MaturidadeProfile, preset: PresetProfile | null): AchadoProfile[];
3
3
  export declare function avaliarArtefatoWorkflowProfile(contrato: string, artefato: string, preset: PresetProfile | null): AchadoProfile[];
4
4
  export declare function avaliarArtefatoOpsProfile(artefato: string, preset: PresetProfile | null): AchadoProfile[];
@@ -7,5 +7,6 @@ export declare function avaliarArtefatoResearchProfile(artefato: string, preset:
7
7
  export declare function avaliarArtefatoRedacaoProfile(artefato: string, preset: PresetProfile | null): AchadoProfile[];
8
8
  export declare function avaliarArtefatoPropostasProfile(artefato: string, preset: PresetProfile | null): AchadoProfile[];
9
9
  export declare function avaliarArtefatoGameProfile(artefato: string, preset: PresetProfile | null): AchadoProfile[];
10
+ export declare function avaliarArtefatoSimulationProfile(artefato: string, preset: PresetProfile | null): AchadoProfile[];
10
11
  export declare function avaliarArtefatoConversasProfile(artefato: string, preset: PresetProfile | null): AchadoProfile[];
11
- export declare function avaliarArtefatoProfile(profile: PerfilSemantico, contrato: string, artefato: string | null | undefined, maturidade: MaturidadeProfile, preset: PresetProfile | null): AchadoProfile[];
12
+ export declare function avaliarArtefatoProfile(profile: PerfilSemanticoValidavel, contrato: string, artefato: string | null | undefined, maturidade: MaturidadeProfile, preset: PresetProfile | null): AchadoProfile[];
@@ -281,6 +281,85 @@ export function avaliarArtefatoGameProfile(artefato, preset) {
281
281
  }
282
282
  return achados;
283
283
  }
284
+ export function avaliarArtefatoSimulationProfile(artefato, preset) {
285
+ const achados = validarTermosObrigatoriosArtefato(artefato, [
286
+ { id: "simulation_modelo_artefato", descricao: "artefato declara modelo testavel", regex: /modelo|model/i, sugestao: "declare o modelo testavel do simulador." },
287
+ { id: "simulation_assumptions_artefato", descricao: "artefato declara assumptions ou premissas", regex: /assumptions?|premissas?/i, sugestao: "declare assumptions ou premissas e seus limites." },
288
+ { id: "simulation_condicoes_iniciais_artefato", descricao: "artefato declara condicoes iniciais", regex: /condicoes?[_ -]?iniciais|initial[_ -]?conditions?/i, sugestao: "declare o estado e os parametros iniciais do simulador." },
289
+ { id: "simulation_condicoes_contorno_artefato", descricao: "artefato declara condicoes de contorno", regex: /condicoes?[_ -]?contorno|boundary[_ -]?conditions?/i, sugestao: "declare limites, fronteiras e condicoes de contorno." },
290
+ { id: "simulation_outputs_unidades_artefato", descricao: "artefato declara outputs observaveis e unidades", regex: /(?:outputs?|saidas?|resultados?)[\s\S]{0,180}(?:unidades?|units?)|(?:unidades?|units?)[\s\S]{0,180}(?:outputs?|saidas?|resultados?)/i, sugestao: "declare outputs observaveis com unidades explicitas." },
291
+ { id: "simulation_spatial_model_artefato", descricao: "artefato declara modelo espacial", regex: /spatial[_ -]?model|modelo[_ -]?espacial/i, sugestao: "declare NON_SPATIAL, TWO_D, TWO_POINT_FIVE_D ou THREE_D como spatial_model." },
292
+ { id: "simulation_render_mode_artefato", descricao: "artefato declara modo de renderizacao", regex: /render[_ -]?mode|modo[_ -]?(?:de[_ -]?)?render/i, sugestao: "declare HEADLESS, TEXT, VISUAL ou XR como render_mode." },
293
+ { id: "simulation_visual_profile_artefato", descricao: "artefato declara visual profile separado", regex: /visual[_ -]?profile|perfil[_ -]?visual/i, sugestao: "declare o visual profile separadamente de spatial_model e render_mode; 8/16-bit pertencem ao visual profile." },
294
+ { id: "simulation_validation_artefato", descricao: "artefato declara metodo de validacao do modelo", regex: /validation|validacao|validar[_ -]?modelo/i, sugestao: "declare como outputs, invariantes e tolerancias validam o modelo." },
295
+ { id: "simulation_controle_tempo_artefato", descricao: "artefato declara controle e modelo de tempo", regex: /(?:controle|control(?:[_ -]?modes?)?)[\s\S]{0,180}(?:tempo|time[_ -]?model|fixed[_ -]?step|real[_ -]?time|event[_ -]?driven)|(?:tempo|time[_ -]?model)[\s\S]{0,180}(?:controle|control(?:[_ -]?modes?)?)/i, sugestao: "declare modo de controle e modelo de tempo de forma independente." },
296
+ { id: "simulation_fidelidade_artefato", descricao: "artefato declara nivel de fidelidade", regex: /fidelity|fidelidade|ARCADE|STYLIZED|SYSTEMIC|REALISTIC|CALIBRATED/i, sugestao: "declare o nivel de fidelidade sem inferi-lo da aparencia visual." },
297
+ { id: "simulation_incerteza_artefato", descricao: "artefato declara incerteza ou limites do modelo", regex: /incerteza|uncertainty|intervalo[_ -]?confianca|confidence[_ -]?interval/i, severidade: "warning", sugestao: "registre incerteza, limites e validade esperada do modelo." },
298
+ { id: "simulation_telemetria_replay_artefato", descricao: "artefato declara telemetria, snapshot ou replay", regex: /telemetria|telemetry|metricas?|snapshot|replay|event[_ -]?log|state[_ -]?digest/i, severidade: "warning", sugestao: "adicione evidencia observavel, snapshot e replay quando aplicavel." },
299
+ ]);
300
+ const representacaoLegada = /["']?(?:representation|representacao)["']?\s*[:=]/i;
301
+ if (contemArtefatoProfile(artefato, representacaoLegada)) {
302
+ achados.push(criarAchadoArtefatoProfile("simulation_representacao_legada", "campo unico de representacao conflita modelo espacial e renderizacao", false, "critical", trechoRegexProfile(artefato, representacaoLegada), "substitua por spatial_model e render_mode ortogonais.", "THREE_D com HEADLESS deve preservar ambos os eixos."));
303
+ }
304
+ const pixelComoEixo = /["']?(?:spatial[_ -]?model|modelo[_ -]?espacial|render[_ -]?mode|modo[_ -]?(?:de[_ -]?)?render)["']?\s*[:=]\s*["']?(?:PIXEL[_ -]?(?:8|16)[_ -]?BIT|(?:8|16)[_ -]?BIT)/i;
305
+ if (contemArtefatoProfile(artefato, pixelComoEixo)) {
306
+ achados.push(criarAchadoArtefatoProfile("simulation_pixel_como_eixo", "8/16-bit foi usado como eixo espacial ou de render em vez de visual profile", false, "critical", trechoRegexProfile(artefato, pixelComoEixo), "use um spatial_model e render_mode validos e mova PIXEL_8_BIT/PIXEL_16_BIT para visual_profile.", "estetica retro nao define a dimensionalidade nem o modo de execucao do simulador."));
307
+ }
308
+ const headless = avaliarPresencaPositivaArtefato(artefato, /["']?(?:render[_ -]?mode|modo[_ -]?(?:de[_ -]?)?render)["']?\s*[:=]\s*["']?HEADLESS/i).atendido;
309
+ if (headless) {
310
+ achados.push(...validarTermosObrigatoriosArtefato(artefato, [
311
+ { id: "simulation_headless_visual_none", descricao: "simulacao headless usa visual profile NONE", regex: /["']?(?:visual[_ -]?profile|perfil[_ -]?visual)["']?\s*[:=]\s*["']?NONE/i, sugestao: "defina visual_profile NONE quando render_mode for HEADLESS." },
312
+ ]));
313
+ }
314
+ const xr = avaliarPresencaPositivaArtefato(artefato, /["']?(?:render[_ -]?mode|modo[_ -]?(?:de[_ -]?)?render)["']?\s*[:=]\s*["']?XR/i).atendido;
315
+ if (xr) {
316
+ achados.push(...validarTermosObrigatoriosArtefato(artefato, [
317
+ { id: "simulation_xr_spatial_three_d", descricao: "render XR usa spatial model THREE_D", regex: /["']?(?:spatial[_ -]?model|modelo[_ -]?espacial)["']?\s*[:=]\s*["']?THREE_D/i, sugestao: "defina spatial_model THREE_D quando render_mode for XR." },
318
+ ]));
319
+ }
320
+ const exigeCalibracao = preset === "calibration" || avaliarPresencaPositivaArtefato(artefato, /fidelity["'\s:=]+(?:REALISTIC|CALIBRATED)|fidelidade["'\s:=]+(?:realista|calibrada)/i).atendido;
321
+ if (exigeCalibracao) {
322
+ achados.push(...validarTermosObrigatoriosArtefato(artefato, [
323
+ { id: "simulation_calibration_referencia_artefato", descricao: "calibracao declara referencia ou dataset rastreavel", regex: /referencia|reference|dataset|baseline/i, severidade: "critical", sugestao: "vincule dataset, baseline ou referencia versionada." },
324
+ { id: "simulation_calibration_metodo_artefato", descricao: "calibracao declara metodo reproduzivel", regex: /(?:calibracao|calibration)[\s\S]{0,140}(?:metodo|method|procedimento|procedure)|(?:metodo|method)[\s\S]{0,140}(?:calibracao|calibration)/i, severidade: "critical", sugestao: "declare metodo e parametros reproduziveis de calibracao." },
325
+ { id: "simulation_calibration_tolerancia_artefato", descricao: "calibracao declara tolerancia numerica com unidade", regex: /(?:tolerancias?|tolerances?|erro|error)[^\n\r]{0,120}(?:<=|>=|=|:)?\s*\d+(?:[.,]\d+)?\s*(?:%|percent|por cento|ms|s|m|km|kg|g|K|C|Hz|Pa|N)\b/i, severidade: "critical", sugestao: "declare tolerancia numerica, criterio de erro e unidade." },
326
+ { id: "simulation_calibration_incerteza_telemetria_artefato", descricao: "calibracao declara incerteza e telemetria observavel", regex: /(?:incerteza|uncertainty)[\s\S]{0,180}(?:telemetria|telemetry|metricas?)|(?:telemetria|telemetry)[\s\S]{0,180}(?:incerteza|uncertainty)/i, severidade: "blocking", sugestao: "registre incerteza e telemetria usadas para validar a calibracao." },
327
+ ]));
328
+ }
329
+ const exigeDeterminismo = preset === "deterministic" || avaliarPresencaPositivaArtefato(artefato, /["']?(?:determinism|determinismo)["']?\s*[:=]\s*["']?(?:STRICT|SEEDED|DETERMINISTIC)|\bdeterministic\b/i).atendido;
330
+ if (exigeDeterminismo) {
331
+ achados.push(...validarTermosObrigatoriosArtefato(artefato, [
332
+ { id: "simulation_deterministic_seed_artefato", descricao: "execucao deterministica declara seed", regex: /\bseed\b|semente[_ -]?aleatoria/i, sugestao: "declare a seed de cada execucao." },
333
+ { id: "simulation_deterministic_step_artefato", descricao: "execucao deterministica declara passo reproduzivel", regex: /fixed[_ -]?step|passo[_ -]?fixo|passo[_ -]?reprodutivel|time[_ -]?step/i, sugestao: "declare fixed step ou passo reproduzivel." },
334
+ { id: "simulation_deterministic_snapshot_artefato", descricao: "execucao deterministica declara snapshot ou digest de estado", regex: /snapshot|state[_ -]?digest|hash[_ -]?estado|estado[_ -]?hash/i, sugestao: "capture snapshot e digest do estado por etapa relevante." },
335
+ { id: "simulation_deterministic_replay_artefato", descricao: "execucao deterministica declara replay ou event log", regex: /replay|event[_ -]?log|result[_ -]?digest|log[_ -]?eventos/i, sugestao: "preserve replay/event log e digest do resultado." },
336
+ ]));
337
+ }
338
+ if (preset === "scenario") {
339
+ achados.push(...validarTermosObrigatoriosArtefato(artefato, [
340
+ { id: "simulation_scenario_id_artefato", descricao: "cenario possui identidade estavel", regex: /scenario[_ -]?id|cenario[_ -]?id|id[_ -]?cenario/i, sugestao: "declare scenario_id estavel." },
341
+ { id: "simulation_scenario_acceptance_artefato", descricao: "cenario possui resultado esperado e aceite", regex: /acceptance|aceitacao|resultado[_ -]?esperado|expected[_ -]?output/i, sugestao: "declare outputs esperados e criterios de aceitacao." },
342
+ ]));
343
+ }
344
+ if (preset === "batch") {
345
+ achados.push(...validarTermosObrigatoriosArtefato(artefato, [
346
+ { id: "simulation_batch_runs_artefato", descricao: "batch declara repeticoes ou ensemble", regex: /batch|lote|ensemble|replications?|repeticoes?/i, sugestao: "declare quantidade de runs ou replications do batch." },
347
+ { id: "simulation_batch_seed_strategy_artefato", descricao: "batch declara estrategia de seeds", regex: /seed[_ -]?strategy|estrategia[_ -]?(?:de[_ -]?)?seeds?/i, sugestao: "declare estrategia de seeds por run." },
348
+ { id: "simulation_batch_aggregation_artefato", descricao: "batch declara agregacao de outputs", regex: /aggregation|agregacao|percentil|media|mediana|distribution|distribuicao/i, sugestao: "declare como outputs dos runs serao agregados." },
349
+ { id: "simulation_batch_budget_stop_artefato", descricao: "batch declara budget e condicao de parada", regex: /(?:resource[_ -]?budget|time[_ -]?budget|orcamento|limite)[\s\S]{0,180}(?:stop[_ -]?condition|criterio[_ -]?parada|max[_ -]?runs)|(?:stop[_ -]?condition|criterio[_ -]?parada)[\s\S]{0,180}(?:budget|orcamento|limite)/i, sugestao: "declare limite de recursos/tempo e condicao de parada do batch." },
350
+ ]));
351
+ }
352
+ const exigeSafety = preset === "safety" || avaliarPresencaPositivaArtefato(artefato, /AUTONOMOUS|UNCONTROLLED|autonom[oa]/i).atendido;
353
+ if (exigeSafety) {
354
+ achados.push(...validarTermosObrigatoriosArtefato(artefato, [
355
+ { id: "simulation_safety_authority_artefato", descricao: "autonomia declara fronteira de autoridade", regex: /authority[_ -]?boundary|fronteira[_ -]?(?:de[_ -]?)?autoridade|escopo[_ -]?autonomia/i, severidade: "critical", sugestao: "delimite o que o controlador autonomo pode observar e alterar." },
356
+ { id: "simulation_safety_budget_artefato", descricao: "autonomia declara budget de recursos ou tempo", regex: /resource[_ -]?budget|time[_ -]?budget|orcamento[_ -]?(?:de[_ -]?)?recursos|limite[_ -]?(?:de[_ -]?)?(?:tempo|recursos)/i, severidade: "critical", sugestao: "declare limites de tempo, memoria, CPU, iteracoes ou custo." },
357
+ { id: "simulation_safety_stop_artefato", descricao: "autonomia declara condicao de parada ou kill switch", regex: /stop[_ -]?condition|criterio[_ -]?(?:de[_ -]?)?parada|kill[_ -]?switch|emergency[_ -]?stop/i, severidade: "critical", sugestao: "declare condicao de parada verificavel e mecanismo de interrupcao." },
358
+ { id: "simulation_safety_failsafe_artefato", descricao: "autonomia declara fail-safe, isolamento ou tomada humana", regex: /fail[_ -]?safe|failsafe|human[_ -]?takeover|tomada[_ -]?humana|isolamento|sandbox/i, severidade: "critical", sugestao: "declare fail-safe, isolamento e quando um humano assume o controle." },
359
+ ]));
360
+ }
361
+ return achados;
362
+ }
284
363
  export function avaliarArtefatoConversasProfile(artefato, preset) {
285
364
  const achados = validarTermosObrigatoriosArtefato(artefato, [
286
365
  { id: "conversas_tom_artefato", descricao: "artefato declara tom/persona da conversa", regex: /tom|persona|voz|formalidade|comercial|persuasiv|serio|consultiv/i, sugestao: "declare o tom, persona e nivel de formalidade usados na resposta." },
@@ -366,6 +445,8 @@ export function avaliarArtefatoProfile(profile, contrato, artefato, maturidade,
366
445
  return avaliarArtefatoPropostasProfile(artefato, preset);
367
446
  case "game":
368
447
  return avaliarArtefatoGameProfile(artefato, preset);
448
+ case "simulation":
449
+ return avaliarArtefatoSimulationProfile(artefato, preset);
369
450
  case "conversas":
370
451
  return avaliarArtefatoConversasProfile(artefato, preset);
371
452
  }
@@ -1,12 +1,13 @@
1
1
  import type { compilarCodigo } from "@sema/nucleo";
2
2
  export type PerfilSemantico = "software" | "workflow" | "ops" | "game" | "legal" | "research" | "redacao" | "propostas" | "conversas";
3
- export type ProfileGovernanca = PerfilSemantico | "author";
3
+ export type PerfilSemanticoValidavel = PerfilSemantico | "simulation";
4
+ export type ProfileGovernanca = PerfilSemanticoValidavel | "author";
4
5
  export type SeveridadeProfile = "info" | "warning" | "blocking" | "critical";
5
6
  export type MaturidadeProfile = "draft" | "prototype" | "production" | "critical";
6
7
  export type DecisaoAgenteProfile = "continuar" | "continuar_com_ressalva" | "parar" | "chamar_humano";
7
8
  export type FonteAchadoProfile = "contrato" | "artefato" | "preset";
8
9
  export type ConfiancaValidacaoProfile = "alta" | "media" | "parcial" | "baixa";
9
- export type PresetProfile = "api" | "modulo" | "refactor" | "persistencia" | "security" | "webhook" | "fila" | "n8n" | "cron" | "integracao" | "deploy" | "migration" | "incidente" | "rollback" | "critical" | "lgpd" | "contrato" | "dpa" | "termos_uso" | "privacidade" | "due_diligence" | "compliance" | "rapida" | "tecnica" | "decisoria" | "critica" | "editorial" | "materia" | "blog" | "seo" | "reescrita" | "marketplace" | "freela" | "consultiva" | "diagnostico" | "score90" | "casual" | "arcade" | "rpg" | "economia" | "playtest" | "atendimento" | "vendas" | "suporte" | "qualificacao" | "retencao" | "cobranca";
10
+ export type PresetProfile = "api" | "modulo" | "refactor" | "persistencia" | "security" | "webhook" | "fila" | "n8n" | "cron" | "integracao" | "deploy" | "migration" | "incidente" | "rollback" | "critical" | "lgpd" | "contrato" | "dpa" | "termos_uso" | "privacidade" | "due_diligence" | "compliance" | "rapida" | "tecnica" | "decisoria" | "critica" | "editorial" | "materia" | "blog" | "seo" | "reescrita" | "marketplace" | "freela" | "consultiva" | "diagnostico" | "score90" | "casual" | "arcade" | "rpg" | "economia" | "playtest" | "model" | "scenario" | "calibration" | "deterministic" | "batch" | "safety" | "atendimento" | "vendas" | "suporte" | "qualificacao" | "retencao" | "cobranca";
10
11
  export interface RequisitoProfile {
11
12
  id: string;
12
13
  descricao: string;
@@ -81,7 +82,7 @@ export interface OpcoesProfileValidar {
81
82
  export interface ResultadoProfileValidar {
82
83
  comando: "profile validar";
83
84
  sucesso: boolean;
84
- profile: PerfilSemantico;
85
+ profile: PerfilSemanticoValidavel;
85
86
  arquivo: string;
86
87
  modulo: string | null;
87
88
  maturidade: MaturidadeProfile;
@@ -1,8 +1,8 @@
1
- import type { CapabilityProfile, MaturidadeProfile, PerfilSemantico, PresetProfile, ProfileGovernanca, RequisitoProfile } from "./profileAuthorTipos.js";
2
- export declare const REQUISITOS_PROFILE: Record<PerfilSemantico, RequisitoProfile[]>;
1
+ import type { CapabilityProfile, MaturidadeProfile, PerfilSemanticoValidavel, PresetProfile, ProfileGovernanca, RequisitoProfile } from "./profileAuthorTipos.js";
2
+ export declare const REQUISITOS_PROFILE: Record<PerfilSemanticoValidavel, RequisitoProfile[]>;
3
3
  export declare const REQUISITOS_PROFILE_COMUNS: RequisitoProfile[];
4
- export declare const ALIASES_PROFILE: Record<string, PerfilSemantico>;
5
- export declare function normalizarProfileSemantico(valor: string | undefined): PerfilSemantico | null;
4
+ export declare const ALIASES_PROFILE: Record<string, PerfilSemanticoValidavel>;
5
+ export declare function normalizarProfileSemantico(valor: string | undefined): PerfilSemanticoValidavel | null;
6
6
  export declare function normalizarMaturidadeProfile(valor: string | undefined): MaturidadeProfile;
7
- export declare const PRESETS_PROFILE: Record<PerfilSemantico, PresetProfile[]>;
7
+ export declare const PRESETS_PROFILE: Record<PerfilSemanticoValidavel, PresetProfile[]>;
8
8
  export declare const CAPABILITY_MATRIX_GOVERNANCA: Record<ProfileGovernanca, CapabilityProfile>;
@@ -27,6 +27,14 @@ export const REQUISITOS_PROFILE = {
27
27
  { id: "falha_balanceamento", descricao: "modela falha, balanceamento e abuso", termos: [/falha|derrota|erro/i, /balanceamento|abuso|exploit/i], obrigatorio: true },
28
28
  { id: "telemetria_jogo", descricao: "define telemetria ou replay de decisao", termos: [/telemetria|replay|metricas/i], obrigatorio: false },
29
29
  ],
30
+ simulation: [
31
+ { id: "modelo_e_assumptions", descricao: "declara modelo testavel e assumptions explicitas", termos: [/modelo|model/i, /assumptions?|premissas?|hipoteses?/i], obrigatorio: true },
32
+ { id: "condicoes_outputs_unidades", descricao: "declara condicoes iniciais, contorno, outputs e unidades", termos: [/condicoes?_iniciais|initial[_ -]?conditions?/i, /condicoes?_contorno|boundary[_ -]?conditions?/i, /outputs?|saidas?|resultados?/i, /unidades?|units?/i], obrigatorio: true },
33
+ { id: "spatial_render_visual_separados", descricao: "separa modelo espacial, modo de renderizacao e visual profile", termos: [/spatial[_ -]?model|modelo[_ -]?espacial/i, /render[_ -]?mode|modo[_ -]?(?:de[_ -]?)?render/i, /visual[_ -]?profile|perfil[_ -]?visual/i], obrigatorio: true },
34
+ { id: "controle_e_tempo", descricao: "declara modo de controle e modelo de tempo", termos: [/controle|control(?:[_ -]?modes?)?/i, /tempo|time[_ -]?model|fixed[_ -]?step|real[_ -]?time|event[_ -]?driven/i], obrigatorio: true },
35
+ { id: "fidelidade_calibracao_incerteza", descricao: "declara fidelidade, referencia, calibracao, tolerancia e incerteza", termos: [/fidelity|fidelidade/i, /referencia|reference|dataset/i, /calibracao|calibration/i, /tolerancias?|tolerances?/i, /incerteza|uncertainty/i], obrigatorio: true },
36
+ { id: "telemetria_e_replay_simulacao", descricao: "define telemetria, seed, snapshot ou replay reproduzivel", termos: [/telemetria|telemetry|metricas?/i, /seed|snapshot|replay|event[_ -]?log/i], obrigatorio: false },
37
+ ],
30
38
  legal: [
31
39
  { id: "jurisdicao_e_escopo", descricao: "declara jurisdicao, escopo e limite de uso", termos: [/jurisdicao/i, /escopo|limite/i], obrigatorio: true },
32
40
  { id: "fontes_normativas", descricao: "exige fontes normativas ou base documental", termos: [/fonte|norma|lei|regulamento/i, /citacao|evidencia|documento/i], obrigatorio: true },
@@ -89,6 +97,12 @@ export const ALIASES_PROFILE = {
89
97
  game: "game",
90
98
  jogo: "game",
91
99
  games: "game",
100
+ simulation: "simulation",
101
+ simulations: "simulation",
102
+ simulacao: "simulation",
103
+ simulacoes: "simulation",
104
+ simulador: "simulation",
105
+ simuladores: "simulation",
92
106
  legal: "legal",
93
107
  juridico: "legal",
94
108
  research: "research",
@@ -140,6 +154,7 @@ export const PRESETS_PROFILE = {
140
154
  redacao: ["editorial", "materia", "blog", "seo", "reescrita"],
141
155
  propostas: ["marketplace", "freela", "consultiva", "diagnostico", "score90"],
142
156
  game: ["casual", "arcade", "rpg", "economia", "playtest"],
157
+ simulation: ["model", "scenario", "calibration", "deterministic", "batch", "safety"],
143
158
  conversas: ["atendimento", "vendas", "suporte", "qualificacao", "retencao", "cobranca"],
144
159
  };
145
160
  export const CAPABILITY_MATRIX_GOVERNANCA = {
@@ -278,6 +293,21 @@ export const CAPABILITY_MATRIX_GOVERNANCA = {
278
293
  ],
279
294
  rulePacksSugeridos: ["playtest", "economy-balance", "progression"],
280
295
  },
296
+ simulation: {
297
+ profile: "simulation",
298
+ detectaLiteral: true,
299
+ detectaSemantico: "parcial",
300
+ detectaOrdemExecucao: "parcial",
301
+ detectaDriftReal: "parcial",
302
+ validaArtefatoReal: "parcial",
303
+ interpretaNegacao: true,
304
+ confianca: "media",
305
+ limites: [
306
+ "validacao textual nao executa engine, solver ou runtime externo",
307
+ "aparencia visual nao prova fidelidade sem referencia, calibracao, tolerancia e evidencia observada",
308
+ ],
309
+ rulePacksSugeridos: ["simulation-model", "simulation-calibration", "simulation-determinism", "simulation-batch", "simulation-safety"],
310
+ },
281
311
  conversas: {
282
312
  profile: "conversas",
283
313
  detectaLiteral: true,
@@ -1,16 +1,22 @@
1
- import type { CapabilityProfile, OpcoesProfileValidar, PerfilSemantico, ProfileGovernanca, ResultadoProfileValidar, RulePackSema } from "./profileAuthorTipos.js";
1
+ import type { CapabilityProfile, OpcoesProfileValidar, PerfilSemanticoValidavel, ProfileGovernanca, ResultadoProfileValidar, RulePackSema } from "./profileAuthorTipos.js";
2
2
  export declare function carregarArtefatoProfile(args: string[]): Promise<{
3
3
  texto: string | null;
4
4
  arquivo: string | null;
5
5
  }>;
6
- export declare function validarProfileSemantico(entrada: string | undefined, profile: PerfilSemantico, opcoes: OpcoesProfileValidar): Promise<ResultadoProfileValidar>;
6
+ export declare function validarProfileSemantico(entrada: string | undefined, profile: PerfilSemanticoValidavel, opcoes: OpcoesProfileValidar): Promise<ResultadoProfileValidar>;
7
7
  export declare function renderizarProfileValidarTexto(resultado: ResultadoProfileValidar): string;
8
8
  export declare function criarPayloadCapabilityMatrix(): {
9
9
  comando: string;
10
10
  sucesso: boolean;
11
11
  profiles: CapabilityProfile[];
12
+ workflowsEspecializados: readonly [{
13
+ readonly id: "workflow.author";
14
+ readonly comando: "sema author <subcomando>";
15
+ readonly resumo: "Workflow narrativo especializado; não é um profile validável.";
16
+ }];
12
17
  resumo: {
13
18
  profiles: number;
19
+ workflowsEspecializados: 1;
14
20
  validaArtefatoReal: ProfileGovernanca[];
15
21
  interpretaNegacao: ProfileGovernanca[];
16
22
  };
@@ -24,7 +24,7 @@ export async function carregarArtefatoProfile(args) {
24
24
  }
25
25
  export async function validarProfileSemantico(entrada, profile, opcoes) {
26
26
  if (!entrada) {
27
- throw new Error("Uso: sema profile validar <software|workflow|ops|game|legal|research|redacao|propostas|conversas> <arquivo-ou-pasta> [--maturidade draft|prototype|production|critical] [--preset <preset>] [--artefato <texto>|--artefato-arquivo <arquivo>] [--json]");
27
+ throw new Error("Uso: 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]");
28
28
  }
29
29
  const modulos = await carregarModulos(entrada);
30
30
  const escolhido = modulos.find((item) => moduloCombinaComProfile(item.resultado.modulo?.nome, item.caminho, profile)) ?? modulos[0];
@@ -139,13 +139,21 @@ export function renderizarProfileValidarTexto(resultado) {
139
139
  return linhas.join("\n");
140
140
  }
141
141
  export function criarPayloadCapabilityMatrix() {
142
- const profiles = Object.values(CAPABILITY_MATRIX_GOVERNANCA);
142
+ const profiles = Object.values(CAPABILITY_MATRIX_GOVERNANCA)
143
+ .filter((profile) => profile.profile !== "author");
144
+ const workflowsEspecializados = [{
145
+ id: "workflow.author",
146
+ comando: "sema author <subcomando>",
147
+ resumo: "Workflow narrativo especializado; não é um profile validável.",
148
+ }];
143
149
  return {
144
150
  comando: "profile capabilities",
145
151
  sucesso: true,
146
152
  profiles,
153
+ workflowsEspecializados,
147
154
  resumo: {
148
155
  profiles: profiles.length,
156
+ workflowsEspecializados: workflowsEspecializados.length,
149
157
  validaArtefatoReal: profiles.filter((profile) => profile.validaArtefatoReal).map((profile) => profile.profile),
150
158
  interpretaNegacao: profiles.filter((profile) => profile.interpretaNegacao).map((profile) => profile.profile),
151
159
  },
@@ -160,6 +168,8 @@ export function renderizarCapabilityMatrixTexto(payload) {
160
168
  ` packs=${profile.rulePacksSugeridos.join(", ")}`,
161
169
  ` limites=${profile.limites.join(" | ")}`,
162
170
  ].join("\n")).join("\n"),
171
+ "SPECIALIZED_WORKFLOWS",
172
+ ...payload.workflowsEspecializados.map((workflow) => (`- ${workflow.id}: ${workflow.resumo}\n comando=${workflow.comando}`)),
163
173
  ].join("\n");
164
174
  }
165
175
  export function criarPayloadRulePacks(profileFiltro = null) {
@@ -204,9 +214,9 @@ export async function comandoProfile(posicionais, args, emJson) {
204
214
  "Uso: sema profile <validar|capabilities|rule-packs>",
205
215
  "",
206
216
  "Comandos:",
207
- " sema profile validar <software|workflow|ops|game|legal|research|redacao|propostas|conversas> <arquivo-ou-pasta> [--maturidade draft|prototype|production|critical] [--preset <preset>] [--artefato <texto>|--artefato-arquivo <arquivo>] [--json]",
217
+ " 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]",
208
218
  " sema profile capabilities [--json]",
209
- " sema profile rule-packs [--profile <author|software|workflow|ops|game|legal|research|redacao|propostas|conversas>] [--json]",
219
+ " sema profile rule-packs [--profile <author|software|workflow|ops|game|simulation|legal|research|redacao|propostas|conversas>] [--json]",
210
220
  "",
211
221
  "O profile e um gate semantico: se requisito obrigatorio faltar, a saida bloqueia.",
212
222
  ].join("\n"));
@@ -230,7 +240,7 @@ export async function comandoProfile(posicionais, args, emJson) {
230
240
  const profile = normalizarProfileSemantico(posicionais[1] ?? obterOpcao(args, "--profile"));
231
241
  const entrada = posicionais[2] ?? obterOpcao(args, "--arquivo");
232
242
  if (!profile) {
233
- console.error("Profile invalido. Use software, workflow, ops, game, legal, research, redacao, propostas ou conversas.");
243
+ console.error("Profile invalido. Use software, workflow, ops, game, simulation, legal, research, redacao, propostas ou conversas.");
234
244
  return 1;
235
245
  }
236
246
  const preset = normalizarPresetProfile(profile, obterOpcao(args, "--preset"));