@semacode/cli 2.2.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.
- package/README.md +91 -4
- package/dist/agentContext.d.ts +1 -1
- package/dist/agentContextPack.js +6 -1
- package/dist/agentContextTipos.d.ts +4 -2
- package/dist/agentContextTipos.js +7 -0
- package/dist/agentEntryPoints.js +70 -19
- package/dist/comandos.js +4 -0
- package/dist/discovery/catalog.d.ts +11 -0
- package/dist/discovery/catalog.js +521 -0
- package/dist/discovery/command.d.ts +11 -0
- package/dist/discovery/command.js +226 -0
- package/dist/discovery/index.d.ts +5 -0
- package/dist/discovery/index.js +8 -0
- package/dist/discovery/ranker.d.ts +3 -0
- package/dist/discovery/ranker.js +310 -0
- package/dist/discovery/redaction.d.ts +2 -0
- package/dist/discovery/redaction.js +21 -0
- package/dist/discovery/render.d.ts +2 -0
- package/dist/discovery/render.js +100 -0
- package/dist/discovery/types.d.ts +119 -0
- package/dist/discovery/types.js +13 -0
- package/dist/exemplosOficiais.js +29 -8
- package/dist/iaPrompts.d.ts +1 -1
- package/dist/iaPrompts.js +3 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +23 -5
- package/dist/index.part01.d.ts +1 -1
- package/dist/index.part01.js +39 -4
- package/dist/index.part06.js +3 -0
- package/dist/initTemplatesBase.js +3 -2
- package/dist/profileArtefatoValidadores.d.ts +3 -2
- package/dist/profileArtefatoValidadores.js +81 -0
- package/dist/profileAuthorTipos.d.ts +4 -3
- package/dist/profileCatalogo.d.ts +5 -5
- package/dist/profileCatalogo.js +30 -0
- package/dist/profileCommand.d.ts +8 -2
- package/dist/profileCommand.js +15 -5
- package/dist/profileRegras.d.ts +5 -5
- package/dist/profileRegras.js +13 -1
- package/dist/profileRulePacks.js +68 -0
- package/dist/sistemasInterativos/adapterProtocol.d.ts +3 -0
- package/dist/sistemasInterativos/adapterProtocol.js +240 -0
- package/dist/sistemasInterativos/advancedCatalog.d.ts +5 -0
- package/dist/sistemasInterativos/advancedCatalog.js +442 -0
- package/dist/sistemasInterativos/autonomy.d.ts +230 -0
- package/dist/sistemasInterativos/autonomy.js +753 -0
- package/dist/sistemasInterativos/canonical.d.ts +3 -0
- package/dist/sistemasInterativos/canonical.js +43 -0
- package/dist/sistemasInterativos/catalog.d.ts +116 -0
- package/dist/sistemasInterativos/catalog.js +543 -0
- package/dist/sistemasInterativos/command.d.ts +7 -0
- package/dist/sistemasInterativos/command.js +311 -0
- package/dist/sistemasInterativos/controlRun.d.ts +56 -0
- package/dist/sistemasInterativos/controlRun.js +391 -0
- package/dist/sistemasInterativos/evidence.d.ts +5 -0
- package/dist/sistemasInterativos/evidence.js +306 -0
- package/dist/sistemasInterativos/experienceIr.d.ts +12 -0
- package/dist/sistemasInterativos/experienceIr.js +895 -0
- package/dist/sistemasInterativos/experienceIrSemantics.d.ts +30 -0
- package/dist/sistemasInterativos/experienceIrSemantics.js +368 -0
- package/dist/sistemasInterativos/experienceIrTypes.d.ts +370 -0
- package/dist/sistemasInterativos/experienceIrTypes.js +5 -0
- package/dist/sistemasInterativos/extensionCommand.d.ts +391 -0
- package/dist/sistemasInterativos/extensionCommand.js +383 -0
- package/dist/sistemasInterativos/index.d.ts +19 -0
- package/dist/sistemasInterativos/index.js +22 -0
- package/dist/sistemasInterativos/operations.d.ts +40 -0
- package/dist/sistemasInterativos/operations.js +1167 -0
- package/dist/sistemasInterativos/operationsTypes.d.ts +297 -0
- package/dist/sistemasInterativos/operationsTypes.js +11 -0
- package/dist/sistemasInterativos/planner.d.ts +2 -0
- package/dist/sistemasInterativos/planner.js +159 -0
- package/dist/sistemasInterativos/portability.d.ts +164 -0
- package/dist/sistemasInterativos/portability.js +539 -0
- package/dist/sistemasInterativos/render.d.ts +3 -0
- package/dist/sistemasInterativos/render.js +179 -0
- package/dist/sistemasInterativos/temporal.d.ts +183 -0
- package/dist/sistemasInterativos/temporal.js +543 -0
- package/dist/sistemasInterativos/types.d.ts +215 -0
- package/dist/sistemasInterativos/types.js +4 -0
- package/dist/sistemasInterativos/validator.d.ts +2 -0
- package/dist/sistemasInterativos/validator.js +305 -0
- package/docs/README.md +6 -0
- package/docs/ai-integration.md +7 -1
- package/docs/ai-workflow.md +5 -4
- package/docs/commands.md +43 -1
- package/docs/descoberta-capacidades.md +106 -0
- package/docs/documentation.md +11 -2
- package/docs/profiles.md +11 -2
- package/docs/sistemas-interativos.md +381 -0
- package/docs/testing.md +11 -2
- package/exemplos/profile_simulation.sema +211 -0
- package/exemplos/sistemas-interativos/README.md +100 -0
- package/exemplos/sistemas-interativos/advanced/acceptance-context-evaluate-valid.json +5 -0
- package/exemplos/sistemas-interativos/advanced/acceptance-lock-valid.json +16 -0
- package/exemplos/sistemas-interativos/advanced/asset-provenance-valid.json +32 -0
- package/exemplos/sistemas-interativos/advanced/autonomy-repair-valid.json +93 -0
- package/exemplos/sistemas-interativos/advanced/control-run-definition-valid.json +78 -0
- package/exemplos/sistemas-interativos/advanced/control-run-valid.json +27 -0
- package/exemplos/sistemas-interativos/advanced/distributed-workers-valid.json +79 -0
- package/exemplos/sistemas-interativos/advanced/editor-state-valid.json +42 -0
- package/exemplos/sistemas-interativos/advanced/engine-snapshot-after-valid.json +32 -0
- package/exemplos/sistemas-interativos/advanced/engine-snapshot-before-valid.json +23 -0
- package/exemplos/sistemas-interativos/advanced/job-orchestration-valid.json +39 -0
- package/exemplos/sistemas-interativos/advanced/multimodal-evidence-valid.json +46 -0
- package/exemplos/sistemas-interativos/advanced/multiplayer-authority-valid.json +39 -0
- package/exemplos/sistemas-interativos/advanced/playtest-fuzz-valid.json +37 -0
- package/exemplos/sistemas-interativos/advanced/portability-valid.json +104 -0
- package/exemplos/sistemas-interativos/advanced/temporal-evidence-valid.json +27 -0
- package/exemplos/sistemas-interativos/advanced/temporal-valid.json +118 -0
- package/exemplos/sistemas-interativos/experience-ir-valid.json +459 -0
- package/exemplos/sistemas-interativos/game-2d.json +83 -0
- package/exemplos/sistemas-interativos/game-3d-human.json +81 -0
- package/exemplos/sistemas-interativos/game-pixel-16-bit.json +97 -0
- package/exemplos/sistemas-interativos/game-pixel-8-bit.json +94 -0
- package/exemplos/sistemas-interativos/game-xr-human.json +80 -0
- package/exemplos/sistemas-interativos/hybrid-2-5d.json +108 -0
- package/exemplos/sistemas-interativos/protocol-mutating-rollback-valid.json +75 -0
- package/exemplos/sistemas-interativos/protocol-read-only-valid.json +58 -0
- package/exemplos/sistemas-interativos/simulation-2d-controlled.json +97 -0
- package/exemplos/sistemas-interativos/simulation-3d-calibrated-autonomous.json +141 -0
- package/exemplos/sistemas-interativos/simulation-headless-autonomous-batch.json +112 -0
- package/exemplos/sistemas-interativos/simulation-pixel-16-bit.json +103 -0
- package/exemplos/sistemas-interativos/simulation-text-controlled.json +95 -0
- package/node_modules/@sema/gerador-lua/dist/index.js +31 -2
- package/node_modules/@sema/gerador-lua/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
// SEMA-GOVERNED: sema.produto.sistemas_interativos.cli
|
|
2
|
+
// Descricao: renderer textual contextual, deterministico e honesto sobre a fronteira externa.
|
|
3
|
+
const MENSAGENS_ERRO = Object.freeze({
|
|
4
|
+
INTERATIVO_ENTRADA_INVALIDA: "A entrada ou o arquivo JSON informado não pôde ser validado.",
|
|
5
|
+
INTERATIVO_ARGUMENTOS_INVALIDOS: "As flags, valores ou argumentos não correspondem à allowlist do subcomando.",
|
|
6
|
+
INTERATIVO_FILTRO_INVALIDO: "Um filtro usa valor fora do vocabulário canônico.",
|
|
7
|
+
INTERATIVO_SUBCOMANDO_DESCONHECIDO: "O subcomando não existe na superfície de sistemas interativos.",
|
|
8
|
+
});
|
|
9
|
+
function registro(valor) {
|
|
10
|
+
return typeof valor === "object" && valor !== null && !Array.isArray(valor)
|
|
11
|
+
? valor
|
|
12
|
+
: undefined;
|
|
13
|
+
}
|
|
14
|
+
function lista(valor) {
|
|
15
|
+
return Array.isArray(valor) ? valor : [];
|
|
16
|
+
}
|
|
17
|
+
function textos(valor) {
|
|
18
|
+
return lista(valor).filter((item) => typeof item === "string");
|
|
19
|
+
}
|
|
20
|
+
function unicos(valores) {
|
|
21
|
+
return [...new Set(valores.filter((item) => item.length > 0))];
|
|
22
|
+
}
|
|
23
|
+
function ids(valor, campo) {
|
|
24
|
+
return unicos(lista(valor).flatMap((item) => {
|
|
25
|
+
if (typeof item === "string")
|
|
26
|
+
return [item];
|
|
27
|
+
const objeto = registro(item);
|
|
28
|
+
return typeof objeto?.[campo] === "string" ? [objeto[campo]] : [];
|
|
29
|
+
}));
|
|
30
|
+
}
|
|
31
|
+
function adicionarSecao(linhas, titulo, itens) {
|
|
32
|
+
if (itens.length === 0)
|
|
33
|
+
return;
|
|
34
|
+
linhas.push("", `${titulo} · ${itens.length}`, ...itens.map((item) => `- ${item}`));
|
|
35
|
+
}
|
|
36
|
+
function obterBloqueios(payload, estado) {
|
|
37
|
+
const bloqueios = unicos([
|
|
38
|
+
...textos(payload.bloqueios),
|
|
39
|
+
...textos(estado?.bloqueios),
|
|
40
|
+
]);
|
|
41
|
+
const errorCode = typeof payload.errorCode === "string" ? payload.errorCode : undefined;
|
|
42
|
+
return errorCode ? unicos([...bloqueios, errorCode]) : bloqueios;
|
|
43
|
+
}
|
|
44
|
+
function obterProximosPassos(payload, plano, estado, evidenciasAusentes) {
|
|
45
|
+
const explicitos = unicos([
|
|
46
|
+
...textos(payload.nextActions),
|
|
47
|
+
...textos(plano?.nextActions),
|
|
48
|
+
...textos(estado?.nextActions),
|
|
49
|
+
]);
|
|
50
|
+
if (explicitos.length > 0)
|
|
51
|
+
return explicitos;
|
|
52
|
+
if (evidenciasAusentes.length > 0) {
|
|
53
|
+
return evidenciasAusentes.map((item) => `coletar_evidencia_externa:${item}`);
|
|
54
|
+
}
|
|
55
|
+
const comando = typeof payload.comando === "string" ? payload.comando : "desconhecido";
|
|
56
|
+
const sucesso = payload.sucesso === true;
|
|
57
|
+
const padrao = {
|
|
58
|
+
capabilities: "consultar pipelines ou adapters com os filtros do sistema alvo",
|
|
59
|
+
schema: "usar o shape v1 e um examplePath como base para a definição",
|
|
60
|
+
pipelines: "validar uma definição e então gerar um plano declarativo",
|
|
61
|
+
adapters: "selecionar explicitamente um adapter compatível no runner externo",
|
|
62
|
+
validar: sucesso ? "planejar a definição validada" : "corrigir os bloqueios da definição",
|
|
63
|
+
planejar: sucesso ? "entregar o plano ao runner externo autorizado" : "corrigir os bloqueios antes de qualquer execução externa",
|
|
64
|
+
"validar-evidencias": sucesso ? "derivar o status local do bundle validado" : "coletar ou corrigir as evidências externas ausentes",
|
|
65
|
+
status: "usar o estado somente como visão local regenerável",
|
|
66
|
+
"validar-protocolo": sucesso ? "arquivar o registro junto às evidências externas" : "corrigir a sequência do protocolo e observar rollback quando exigido",
|
|
67
|
+
desconhecido: "usar capabilities, schema, pipelines, adapters, validar, planejar, validar-evidencias, status ou validar-protocolo",
|
|
68
|
+
};
|
|
69
|
+
return [padrao[comando] ?? padrao.desconhecido];
|
|
70
|
+
}
|
|
71
|
+
function adicionarCobertura(linhas, matrix) {
|
|
72
|
+
if (!matrix)
|
|
73
|
+
return;
|
|
74
|
+
const campos = [
|
|
75
|
+
["TIPOS", "kinds"],
|
|
76
|
+
["MODELOS ESPACIAIS", "spatialModels"],
|
|
77
|
+
["MODOS DE RENDER", "renderModes"],
|
|
78
|
+
["PERFIS VISUAIS", "visualProfiles"],
|
|
79
|
+
["CONTROLES", "controlModes"],
|
|
80
|
+
["MODELOS DE TEMPO", "timeModels"],
|
|
81
|
+
["DETERMINISMOS", "determinisms"],
|
|
82
|
+
["FIDELIDADES", "fidelities"],
|
|
83
|
+
];
|
|
84
|
+
linhas.push("", "COBERTURA CANÔNICA");
|
|
85
|
+
for (const [rotulo, campo] of campos) {
|
|
86
|
+
const valores = textos(matrix[campo]);
|
|
87
|
+
if (valores.length > 0)
|
|
88
|
+
linhas.push(`- ${rotulo}: ${valores.join(", ")}`);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
export function renderizarResultadoSistemasInterativos(payload) {
|
|
92
|
+
const comando = typeof payload.comando === "string" ? payload.comando : "desconhecido";
|
|
93
|
+
const plano = registro(payload.plano);
|
|
94
|
+
const estado = registro(payload.estado);
|
|
95
|
+
const bloqueios = obterBloqueios(payload, estado);
|
|
96
|
+
const status = typeof estado?.status === "string"
|
|
97
|
+
? estado.status
|
|
98
|
+
: payload.sucesso === true
|
|
99
|
+
? "OK"
|
|
100
|
+
: typeof payload.errorCode === "string"
|
|
101
|
+
? "ERRO"
|
|
102
|
+
: "BLOQUEADO";
|
|
103
|
+
const systemId = typeof plano?.systemId === "string"
|
|
104
|
+
? plano.systemId
|
|
105
|
+
: typeof payload.systemId === "string"
|
|
106
|
+
? payload.systemId
|
|
107
|
+
: undefined;
|
|
108
|
+
const capabilities = unicos([
|
|
109
|
+
...ids(payload.capabilities, "capability"),
|
|
110
|
+
...textos(payload.capabilitiesRequeridas),
|
|
111
|
+
...textos(plano?.capabilitiesRequeridas),
|
|
112
|
+
]);
|
|
113
|
+
const pipelines = unicos([
|
|
114
|
+
...textos(payload.pipelineIds),
|
|
115
|
+
...ids(payload.pipelines, "pipelineId"),
|
|
116
|
+
...ids(plano?.pipelines, "pipelineId"),
|
|
117
|
+
]);
|
|
118
|
+
const adapters = unicos([
|
|
119
|
+
...textos(payload.adapterIds),
|
|
120
|
+
...ids(payload.adapters, "adapterId"),
|
|
121
|
+
...textos(plano?.adaptersCompativeis),
|
|
122
|
+
]);
|
|
123
|
+
const adaptersSelecionados = unicos(textos(plano?.adaptersSelecionados));
|
|
124
|
+
const stages = unicos([
|
|
125
|
+
...ids(payload.stages, "stageInstanceId"),
|
|
126
|
+
...ids(plano?.stages, "stageInstanceId"),
|
|
127
|
+
...ids(estado?.stages, "stageId"),
|
|
128
|
+
]);
|
|
129
|
+
const capabilitiesAusentes = unicos([
|
|
130
|
+
...textos(payload.capabilitiesAusentes),
|
|
131
|
+
...textos(plano?.capabilitiesAusentes),
|
|
132
|
+
]);
|
|
133
|
+
const capabilitiesSemAdapter = unicos(textos(plano?.capabilitiesSemAdapter));
|
|
134
|
+
const evidenciasAceitas = unicos([
|
|
135
|
+
...textos(payload.evidenciasAceitas),
|
|
136
|
+
...textos(estado?.evidenciasAceitas),
|
|
137
|
+
]);
|
|
138
|
+
const evidenciasAusentes = unicos([
|
|
139
|
+
...textos(payload.evidenciasAusentes),
|
|
140
|
+
...textos(estado?.evidenciasAusentes),
|
|
141
|
+
]);
|
|
142
|
+
const proximosPassos = obterProximosPassos(payload, plano, estado, evidenciasAusentes);
|
|
143
|
+
const linhas = [
|
|
144
|
+
`SISTEMAS INTERATIVOS · ${comando.toUpperCase()}`,
|
|
145
|
+
`STATUS · ${status}`,
|
|
146
|
+
`COMANDO · ${comando}`,
|
|
147
|
+
`BLOQUEIOS · ${bloqueios.length}`,
|
|
148
|
+
];
|
|
149
|
+
if (systemId)
|
|
150
|
+
linhas.push(`SISTEMA · ${systemId}`);
|
|
151
|
+
if (estado) {
|
|
152
|
+
linhas.push(`COBERTURA LOCAL · ${estado.localCoverageComplete === true ? "COMPLETA" : "INCOMPLETA"}`, `ESCOPO DE CONCLUSÃO · ${typeof estado.completionScope === "string" ? estado.completionScope : "STRUCTURAL_LOCAL"}`, `ATESTAÇÃO EXTERNA · ${estado.awaitingExternalAttestation === true ? "PENDENTE" : "NÃO DECLARADA"}`);
|
|
153
|
+
}
|
|
154
|
+
const errorCode = typeof payload.errorCode === "string" ? payload.errorCode : undefined;
|
|
155
|
+
if (errorCode) {
|
|
156
|
+
linhas.push("", `ERRO · ${errorCode}`, MENSAGENS_ERRO[errorCode] ?? "A operação não pôde ser concluída.");
|
|
157
|
+
}
|
|
158
|
+
adicionarCobertura(linhas, registro(payload.matrix));
|
|
159
|
+
const schema = registro(payload.definitionSchema);
|
|
160
|
+
adicionarSecao(linhas, "CAMPOS OBRIGATÓRIOS DO SHAPE V1", textos(schema?.requiredFields));
|
|
161
|
+
adicionarSecao(linhas, "EXEMPLOS", textos(payload.examplePaths));
|
|
162
|
+
adicionarSecao(linhas, "CAPABILITIES", capabilities);
|
|
163
|
+
adicionarSecao(linhas, "PIPELINES", pipelines);
|
|
164
|
+
adicionarSecao(linhas, "ADAPTERS CANDIDATOS COMPATÍVEIS", adapters);
|
|
165
|
+
adicionarSecao(linhas, "ADAPTERS SELECIONADOS", adaptersSelecionados);
|
|
166
|
+
adicionarSecao(linhas, "ETAPAS", stages);
|
|
167
|
+
adicionarSecao(linhas, "CAPABILITIES AUSENTES", capabilitiesAusentes);
|
|
168
|
+
adicionarSecao(linhas, "CAPABILITIES SEM ADAPTER SELECIONADO", capabilitiesSemAdapter);
|
|
169
|
+
adicionarSecao(linhas, "EVIDÊNCIAS ACEITAS", evidenciasAceitas);
|
|
170
|
+
adicionarSecao(linhas, "EVIDÊNCIAS AUSENTES", evidenciasAusentes);
|
|
171
|
+
adicionarSecao(linhas, "BLOQUEIOS DETALHADOS", bloqueios);
|
|
172
|
+
adicionarSecao(linhas, "PRÓXIMOS PASSOS", proximosPassos);
|
|
173
|
+
if (status === "STRUCTURALLY_COMPLETE") {
|
|
174
|
+
linhas.push("", "CONCLUSÃO ESTRUTURAL LOCAL — NÃO PROVA EXECUÇÃO REAL", "- Todos os requisitos estruturais locais têm cobertura, mas ainda falta atestação externa independente.");
|
|
175
|
+
}
|
|
176
|
+
linhas.push("", "FRONTEIRA OPERACIONAL", "- Runtime e adapters: externos; nenhum engine, editor ou runner foi iniciado.", "- Workspace: intacto; nenhuma escrita foi aplicada.", "- Autoridade: saída local e não autoritativa; bundle local não substitui trust, ledger ou checkpoint externo.");
|
|
177
|
+
return linhas.join("\n");
|
|
178
|
+
}
|
|
179
|
+
//# sourceMappingURL=render.js.map
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
export declare const SCHEMA_CONTRATO_TEMPORAL: "sema.interactive.temporal/v1";
|
|
2
|
+
export declare const SCHEMA_EVIDENCIA_TEMPORAL: "sema.interactive.temporal-evidence/v1";
|
|
3
|
+
export type UnidadeTempoTemporal = "FRAME" | "MILLISECOND" | "SECOND" | "TICK";
|
|
4
|
+
export type TipoTrackTemporal = "TRANSFORM" | "ANIMATION" | "VFX" | "AUDIO" | "SPEECH" | "SUBTITLE" | "EVENT";
|
|
5
|
+
export type TipoInvariantTemporal = "ORDER" | "SYNC" | "VISIBILITY" | "BOUNDS" | "NO_OVERLAP" | "CONTINUITY";
|
|
6
|
+
export type TipoRelacaoFisica = "COLLISION" | "ATTACHMENT" | "SEPARATION" | "CONSTRAINT";
|
|
7
|
+
export type TipoQaTemporal = "FLICKER" | "GHOSTING" | "POPPING" | "EXPOSURE" | "JITTER";
|
|
8
|
+
export type TipoEvidenciaTemporal = "SCREENSHOT" | "VIDEO" | "DEPTH" | "NORMALS" | "OBJECT_ID" | "MOTION_VECTORS" | "TRANSFORMS" | "EVENT_TRACE" | "COLLISION_TRACE" | "AUDIO_TRACE" | "TELEMETRY" | "INSTALL_LOG" | "LAUNCH_LOG" | "PLAYTEST_TRACE";
|
|
9
|
+
export type DecisaoObservacaoTemporal = "PASS" | "FAIL" | "INCONCLUSIVE";
|
|
10
|
+
export interface SistemaCoordenadasTemporal {
|
|
11
|
+
readonly unit: string;
|
|
12
|
+
readonly handedness: "LEFT" | "RIGHT";
|
|
13
|
+
readonly upAxis: "X" | "Y" | "Z";
|
|
14
|
+
readonly forwardAxis: "X" | "Y" | "Z";
|
|
15
|
+
}
|
|
16
|
+
export interface FaseTemporal {
|
|
17
|
+
readonly phaseId: string;
|
|
18
|
+
readonly start: number;
|
|
19
|
+
readonly end: number;
|
|
20
|
+
readonly timeUnit: UnidadeTempoTemporal;
|
|
21
|
+
}
|
|
22
|
+
export interface ClipTemporal {
|
|
23
|
+
readonly clipId: string;
|
|
24
|
+
readonly phaseId: string;
|
|
25
|
+
readonly semanticTargetId: string;
|
|
26
|
+
readonly start: number;
|
|
27
|
+
readonly end: number;
|
|
28
|
+
readonly timeUnit: UnidadeTempoTemporal;
|
|
29
|
+
}
|
|
30
|
+
export interface TrackTemporal {
|
|
31
|
+
readonly trackId: string;
|
|
32
|
+
readonly type: TipoTrackTemporal;
|
|
33
|
+
readonly clips: readonly ClipTemporal[];
|
|
34
|
+
}
|
|
35
|
+
export interface InvariantTemporal {
|
|
36
|
+
readonly invariantId: string;
|
|
37
|
+
readonly type: TipoInvariantTemporal;
|
|
38
|
+
readonly phaseId: string;
|
|
39
|
+
readonly trackIds: readonly string[];
|
|
40
|
+
readonly subjectIds: readonly string[];
|
|
41
|
+
readonly threshold: number;
|
|
42
|
+
readonly unit: string;
|
|
43
|
+
}
|
|
44
|
+
export interface ShotTemporal {
|
|
45
|
+
readonly shotId: string;
|
|
46
|
+
readonly phaseId: string;
|
|
47
|
+
readonly cameraId: string;
|
|
48
|
+
readonly subjectIds: readonly string[];
|
|
49
|
+
readonly start: number;
|
|
50
|
+
readonly end: number;
|
|
51
|
+
readonly timeUnit: UnidadeTempoTemporal;
|
|
52
|
+
readonly composition: string;
|
|
53
|
+
readonly minimumVisibilityRatio: number;
|
|
54
|
+
readonly maximumJitter: number;
|
|
55
|
+
}
|
|
56
|
+
export interface RelacaoFisicaTemporal {
|
|
57
|
+
readonly relationId: string;
|
|
58
|
+
readonly type: TipoRelacaoFisica;
|
|
59
|
+
readonly phaseId: string;
|
|
60
|
+
readonly sourceId: string;
|
|
61
|
+
readonly targetId: string;
|
|
62
|
+
readonly start: number;
|
|
63
|
+
readonly end: number;
|
|
64
|
+
readonly timeUnit: UnidadeTempoTemporal;
|
|
65
|
+
readonly tolerance: number;
|
|
66
|
+
readonly unit: string;
|
|
67
|
+
}
|
|
68
|
+
export interface CheckQaTemporal {
|
|
69
|
+
readonly checkId: string;
|
|
70
|
+
readonly type: TipoQaTemporal;
|
|
71
|
+
readonly phaseId: string;
|
|
72
|
+
readonly threshold: number;
|
|
73
|
+
readonly unit: string;
|
|
74
|
+
}
|
|
75
|
+
export interface AceitacaoBuildTemporal {
|
|
76
|
+
readonly required: boolean;
|
|
77
|
+
readonly artifactDigest?: string;
|
|
78
|
+
readonly cleanInstallRequired: boolean;
|
|
79
|
+
readonly launchRequired: boolean;
|
|
80
|
+
readonly smokePlaytestRequired: boolean;
|
|
81
|
+
}
|
|
82
|
+
export interface AlvoHardwareTemporal {
|
|
83
|
+
readonly profileId: string;
|
|
84
|
+
readonly gpu: string;
|
|
85
|
+
readonly cpu: string;
|
|
86
|
+
readonly resolution: {
|
|
87
|
+
readonly width: number;
|
|
88
|
+
readonly height: number;
|
|
89
|
+
};
|
|
90
|
+
readonly targetFps: number;
|
|
91
|
+
readonly frameTimeP95Ms: number;
|
|
92
|
+
readonly maxRamMb: number;
|
|
93
|
+
readonly maxVramMb: number;
|
|
94
|
+
readonly maxDiskMb: number;
|
|
95
|
+
}
|
|
96
|
+
export interface ContratoTemporalInterativo {
|
|
97
|
+
readonly schemaVersion: typeof SCHEMA_CONTRATO_TEMPORAL;
|
|
98
|
+
readonly contractId: string;
|
|
99
|
+
readonly systemId: string;
|
|
100
|
+
readonly experienceIrDigest: string;
|
|
101
|
+
readonly coordinateSystem: SistemaCoordenadasTemporal;
|
|
102
|
+
readonly phases: readonly FaseTemporal[];
|
|
103
|
+
readonly tracks: readonly TrackTemporal[];
|
|
104
|
+
readonly invariants: readonly InvariantTemporal[];
|
|
105
|
+
readonly shots: readonly ShotTemporal[];
|
|
106
|
+
readonly physics: readonly RelacaoFisicaTemporal[];
|
|
107
|
+
readonly temporalQa: {
|
|
108
|
+
readonly checks: readonly CheckQaTemporal[];
|
|
109
|
+
};
|
|
110
|
+
readonly buildAcceptance: AceitacaoBuildTemporal;
|
|
111
|
+
readonly hardwareTargets: readonly AlvoHardwareTemporal[];
|
|
112
|
+
}
|
|
113
|
+
export interface MetricaTemporal {
|
|
114
|
+
readonly name: string;
|
|
115
|
+
readonly value: number;
|
|
116
|
+
readonly unit: string;
|
|
117
|
+
readonly threshold: number;
|
|
118
|
+
}
|
|
119
|
+
export interface ObservacaoTemporal {
|
|
120
|
+
readonly observationId: string;
|
|
121
|
+
readonly checkId: string;
|
|
122
|
+
readonly decision: DecisaoObservacaoTemporal;
|
|
123
|
+
readonly evidenceTypes: readonly TipoEvidenciaTemporal[];
|
|
124
|
+
readonly artifactDigests: readonly string[];
|
|
125
|
+
readonly sampleCount: number;
|
|
126
|
+
readonly traceDigest?: string;
|
|
127
|
+
readonly phaseId?: string;
|
|
128
|
+
readonly frame?: number;
|
|
129
|
+
readonly time?: number;
|
|
130
|
+
readonly timeUnit?: UnidadeTempoTemporal;
|
|
131
|
+
readonly metrics?: readonly MetricaTemporal[];
|
|
132
|
+
}
|
|
133
|
+
export interface BundleVerificacaoTemporal {
|
|
134
|
+
readonly schemaVersion: typeof SCHEMA_EVIDENCIA_TEMPORAL;
|
|
135
|
+
readonly runId: string;
|
|
136
|
+
readonly contractDigest: string;
|
|
137
|
+
readonly producerId: string;
|
|
138
|
+
readonly producerVersion: string;
|
|
139
|
+
readonly producerConfigurationDigest: string;
|
|
140
|
+
readonly verifierId: string;
|
|
141
|
+
readonly verifierVersion: string;
|
|
142
|
+
readonly verifierConfigurationDigest: string;
|
|
143
|
+
readonly independentOfProducer: boolean;
|
|
144
|
+
readonly observations: readonly ObservacaoTemporal[];
|
|
145
|
+
}
|
|
146
|
+
export interface ResultadoValidacaoContratoTemporal {
|
|
147
|
+
readonly valido: boolean;
|
|
148
|
+
readonly contractDigest: string;
|
|
149
|
+
readonly requiredCheckIds: readonly string[];
|
|
150
|
+
readonly bloqueios: readonly string[];
|
|
151
|
+
readonly executed: false;
|
|
152
|
+
readonly authoritative: false;
|
|
153
|
+
}
|
|
154
|
+
export interface DiagnosticoTemporal {
|
|
155
|
+
readonly failedInvariant: string;
|
|
156
|
+
readonly phase?: string;
|
|
157
|
+
readonly frame?: number;
|
|
158
|
+
readonly time?: number;
|
|
159
|
+
readonly timeUnit?: UnidadeTempoTemporal;
|
|
160
|
+
readonly evidenceIds: readonly string[];
|
|
161
|
+
readonly decision: "FAIL" | "INCONCLUSIVE";
|
|
162
|
+
readonly likelyCauses: readonly string[];
|
|
163
|
+
}
|
|
164
|
+
export interface ResultadoValidacaoBundleTemporal {
|
|
165
|
+
readonly valido: boolean;
|
|
166
|
+
readonly contractDigest: string;
|
|
167
|
+
readonly bundleDigest: string;
|
|
168
|
+
readonly resultDigest: string;
|
|
169
|
+
readonly checksAceitos: readonly string[];
|
|
170
|
+
readonly checksAusentes: readonly string[];
|
|
171
|
+
readonly checksFalhos: readonly string[];
|
|
172
|
+
readonly diagnostics: readonly DiagnosticoTemporal[];
|
|
173
|
+
readonly nextActions: readonly string[];
|
|
174
|
+
readonly bloqueios: readonly string[];
|
|
175
|
+
readonly completed: false;
|
|
176
|
+
readonly localCoverageComplete: boolean;
|
|
177
|
+
readonly awaitingExternalAttestation: true;
|
|
178
|
+
readonly completionScope: "STRUCTURAL_LOCAL";
|
|
179
|
+
readonly authoritative: false;
|
|
180
|
+
readonly executed: false;
|
|
181
|
+
}
|
|
182
|
+
export declare function validarContratoTemporalInterativo(entrada: unknown): ResultadoValidacaoContratoTemporal;
|
|
183
|
+
export declare function validarBundleVerificacaoTemporal(contratoEntrada: unknown, bundleEntrada: unknown): ResultadoValidacaoBundleTemporal;
|