@semacode/cli 2.2.0 → 2.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +39 -39
- package/README.md +251 -141
- 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 +551 -499
- package/dist/angular-consumer-standalone.d.ts +3 -1
- package/dist/angular-consumer-standalone.js +12 -8
- 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/drift.part01.d.ts +32 -2
- package/dist/drift.part01.js +2 -0
- package/dist/drift.part04.d.ts +3 -2
- package/dist/drift.part04.js +6 -3
- package/dist/drift.part05.d.ts +2 -1
- package/dist/drift.part05.js +4 -3
- package/dist/drift.part06.d.ts +2 -1
- package/dist/drift.part06.js +9 -5
- package/dist/drift.part07.d.ts +11 -10
- package/dist/drift.part07.js +40 -30
- package/dist/drift.part08.d.ts +2 -1
- package/dist/drift.part08.js +4 -3
- package/dist/drift.part11.js +71 -6
- package/dist/drift.part12.js +14 -1
- package/dist/drift.part13.d.ts +42 -7
- package/dist/drift.part13.js +660 -36
- package/dist/driftCache.d.ts +49 -0
- package/dist/driftCache.js +311 -0
- package/dist/driftCacheIncremental.d.ts +98 -0
- package/dist/driftCacheIncremental.js +596 -0
- package/dist/driftCatalogo.d.ts +91 -0
- package/dist/driftCatalogo.js +657 -0
- package/dist/driftCatalogoPersistente.d.ts +8 -0
- package/dist/driftCatalogoPersistente.js +77 -0
- package/dist/driftEscopo.d.ts +23 -0
- package/dist/driftEscopo.js +563 -0
- package/dist/driftEscopoReferencias.d.ts +4 -0
- package/dist/driftEscopoReferencias.js +265 -0
- package/dist/driftOrcamento.d.ts +12 -0
- package/dist/driftOrcamento.js +19 -3
- package/dist/execucoesExternas.js +5 -19
- package/dist/exemplosOficiais.js +29 -8
- package/dist/iaPrompts.d.ts +1 -1
- package/dist/iaPrompts.js +310 -307
- package/dist/index.d.ts +2 -0
- package/dist/index.js +23 -5
- package/dist/index.part01.d.ts +17 -2
- package/dist/index.part01.js +119 -8
- package/dist/index.part02.js +21 -21
- package/dist/index.part03.d.ts +2 -2
- package/dist/index.part03.js +14 -3
- package/dist/index.part04.d.ts +2 -2
- package/dist/index.part04.js +113 -101
- package/dist/index.part05.d.ts +1 -1
- package/dist/index.part05.js +99 -22
- package/dist/index.part06.js +6 -2
- package/dist/index.part07.js +24 -24
- package/dist/index.part08.js +1 -1
- package/dist/init/templates.part01.js +393 -393
- package/dist/init/templates.part02.js +189 -189
- package/dist/initTemplatesBackend.js +73 -73
- package/dist/initTemplatesBase.js +81 -80
- package/dist/initTemplatesFlutter.js +137 -137
- package/dist/initTemplatesRuntime.js +350 -350
- package/dist/initTemplatesWeb.js +309 -309
- package/dist/pipelineConteudo/command.js +1 -36
- package/dist/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/projeto.d.ts +1 -1
- package/dist/projetoCarregar.d.ts +2 -2
- package/dist/projetoCarregar.js +47 -24
- package/dist/projetoCatalogo.d.ts +7 -0
- package/dist/projetoCatalogo.js +125 -0
- package/dist/projetoTipos.d.ts +14 -5
- package/dist/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/dist/sync/index.js +35 -35
- package/docs/README.md +34 -28
- package/docs/ai-onboarding.md +62 -62
- package/docs/ai-workflow.md +9 -4
- package/docs/auth.md +26 -26
- package/docs/cli.md +79 -79
- package/docs/commands.md +47 -2
- package/docs/database.md +15 -15
- package/docs/deploy.md +41 -41
- package/docs/descoberta-capacidades.md +106 -0
- package/docs/documentation.md +39 -39
- package/docs/env.md +16 -16
- package/docs/frontend.md +41 -41
- package/docs/getting-started.md +57 -57
- package/docs/i18n.md +15 -15
- package/docs/pipeline-conteudo.md +246 -246
- package/docs/profiles.md +54 -45
- package/docs/repositories.md +43 -43
- package/docs/rollback.md +31 -31
- package/docs/security.md +32 -32
- package/docs/sistemas-interativos.md +376 -0
- package/docs/support.md +8 -8
- package/docs/testing.md +51 -35
- package/docs/vocabulary.md +29 -29
- package/exemplos/agendamento.sema +1 -1
- package/exemplos/assinatura.sema +1 -1
- package/exemplos/auditoria.sema +1 -1
- package/exemplos/autenticacao.sema +1 -1
- package/exemplos/author_obra_comum.sema +1 -1
- package/exemplos/author_tema_sensivel.sema +1 -1
- package/exemplos/automacao.sema +1 -1
- package/exemplos/cadastro_usuario.sema +1 -1
- package/exemplos/calculadora.sema +1 -1
- package/exemplos/crud_simples.sema +1 -1
- package/exemplos/estoque.sema +1 -1
- package/exemplos/exportacao.sema +1 -1
- package/exemplos/fila.sema +1 -1
- package/exemplos/integracao_externa.sema +1 -1
- package/exemplos/multi_tenant.sema +1 -1
- package/exemplos/notificacao.sema +1 -1
- package/exemplos/operacao_estrategia.sema +132 -132
- package/exemplos/operacao_estrategia_discovery.sema +220 -220
- package/exemplos/operacao_estrategia_fluxo.sema +114 -114
- package/exemplos/operacao_estrategia_gates.sema +106 -106
- package/exemplos/operacao_estrategia_quarentena.sema +133 -133
- package/exemplos/operacao_estrategia_rollout.sema +124 -124
- package/exemplos/pagamento.sema +1 -1
- package/exemplos/pagamento_dominio.sema +1 -1
- package/exemplos/pedido.sema +1 -1
- package/exemplos/permissao.sema +1 -1
- package/exemplos/persistencia_vendor_first.sema +1 -1
- package/exemplos/pipeline-conteudo/README.md +44 -44
- package/exemplos/pipeline-conteudo/alvos.json +23 -23
- package/exemplos/pipeline-conteudo/definicao.json +136 -136
- package/exemplos/profile_conversas.sema +165 -165
- package/exemplos/profile_game.sema +1 -1
- package/exemplos/profile_legal.sema +1 -1
- package/exemplos/profile_ops.sema +1 -1
- package/exemplos/profile_research.sema +1 -1
- package/exemplos/profile_simulation.sema +211 -0
- package/exemplos/profile_software.sema +1 -1
- package/exemplos/profile_workflow_n8n.sema +1 -1
- package/exemplos/relatorio.sema +1 -1
- package/exemplos/replica_analitica_erp.sema +1 -1
- package/exemplos/sistemas-interativos/README.md +100 -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/exemplos/testes_embutidos.sema +1 -1
- package/exemplos/tratamento_erro.sema +1 -1
- package/exemplos/upload_arquivo.sema +1 -1
- package/exemplos/webhook.sema +1 -1
- package/node_modules/@sema/gerador-cpp/dist/index.js +176 -176
- package/node_modules/@sema/gerador-cpp/package.json +1 -1
- package/node_modules/@sema/gerador-css/dist/index.part01.js +10 -10
- package/node_modules/@sema/gerador-css/dist/index.part02.js +460 -460
- package/node_modules/@sema/gerador-dotnet/dist/index.js +169 -169
- package/node_modules/@sema/gerador-dotnet/package.json +1 -1
- package/node_modules/@sema/gerador-html/dist/index.js +17 -17
- package/node_modules/@sema/gerador-lua/dist/index.js +76 -47
- package/node_modules/@sema/gerador-lua/dist/index.js.map +1 -1
- package/node_modules/@sema/gerador-php/dist/index.js +113 -113
- package/node_modules/@sema/gerador-python/dist/index.part02.js +3 -3
- package/node_modules/@sema/gerador-typescript/dist/index.part02.js +11 -11
- package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js +42 -42
- package/package.json +3 -3
|
@@ -0,0 +1,543 @@
|
|
|
1
|
+
// SEMA-GOVERNED: sema.produto.sistemas_interativos + sema.produto.sistemas_interativos.adaptadores
|
|
2
|
+
// Descricao: catalogo canonico, versionado e apenas declarativo de capabilities, pipelines e adapters.
|
|
3
|
+
import { CATALOGO_ADAPTADORES_INTERATIVOS_AVANCADOS, CATALOGO_PIPELINES_INTERATIVOS_AVANCADOS, } from "./advancedCatalog.js";
|
|
4
|
+
const KINDS = ["GAME", "SIMULATION", "HYBRID"];
|
|
5
|
+
const MODELOS_ESPACIAIS = [
|
|
6
|
+
"NON_SPATIAL", "TWO_D", "TWO_POINT_FIVE_D", "THREE_D",
|
|
7
|
+
];
|
|
8
|
+
const MODOS_RENDER = ["HEADLESS", "TEXT", "VISUAL", "XR"];
|
|
9
|
+
const PERFIS_VISUAIS = [
|
|
10
|
+
"NONE", "PIXEL_8_BIT", "PIXEL_16_BIT", "RASTER", "VECTOR", "STYLIZED", "REALISTIC",
|
|
11
|
+
];
|
|
12
|
+
const CONTROLES = [
|
|
13
|
+
"HUMAN", "SCRIPTED", "AI", "HYBRID", "AUTONOMOUS", "UNCONTROLLED",
|
|
14
|
+
];
|
|
15
|
+
const TEMPOS = [
|
|
16
|
+
"TURN_BASED", "FIXED_STEP", "VARIABLE_STEP", "REAL_TIME", "EVENT_DRIVEN", "BATCH", "ACCELERATED",
|
|
17
|
+
];
|
|
18
|
+
const FIDELIDADES = [
|
|
19
|
+
"ARCADE", "STYLIZED", "SYSTEMIC", "REALISTIC", "CALIBRATED",
|
|
20
|
+
];
|
|
21
|
+
function congelarProfundo(valor) {
|
|
22
|
+
if (typeof valor !== "object" || valor === null || Object.isFrozen(valor))
|
|
23
|
+
return valor;
|
|
24
|
+
for (const item of Object.values(valor))
|
|
25
|
+
congelarProfundo(item);
|
|
26
|
+
return Object.freeze(valor);
|
|
27
|
+
}
|
|
28
|
+
function etapa(stageId, capability, dependsOn, produces, requiredEvidence) {
|
|
29
|
+
return { stageId, capability, dependsOn, produces, requiredEvidence };
|
|
30
|
+
}
|
|
31
|
+
function pipeline(entrada) {
|
|
32
|
+
return { version: "1.0.0", ...entrada };
|
|
33
|
+
}
|
|
34
|
+
export const CATALOGO_PIPELINES_INTERATIVOS = congelarProfundo([
|
|
35
|
+
pipeline({
|
|
36
|
+
pipelineId: "interactive.prototype",
|
|
37
|
+
label: "Protótipo interativo",
|
|
38
|
+
summary: "Modela mundo, estado, tempo e runtime antes do primeiro smoke test externo.",
|
|
39
|
+
kinds: KINDS,
|
|
40
|
+
spatialModels: MODELOS_ESPACIAIS,
|
|
41
|
+
renderModes: MODOS_RENDER,
|
|
42
|
+
visualProfiles: PERFIS_VISUAIS,
|
|
43
|
+
controlModes: CONTROLES,
|
|
44
|
+
fidelities: FIDELIDADES,
|
|
45
|
+
capabilities: ["interactive.world.model", "interactive.state.model", "interactive.runtime.bind", "interactive.smoke.observe"],
|
|
46
|
+
stages: [
|
|
47
|
+
etapa("world", "interactive.world.model", [], ["world-model"], ["world.model.valid"]),
|
|
48
|
+
etapa("state", "interactive.state.model", ["world"], ["state-model"], ["state.transitions.valid"]),
|
|
49
|
+
etapa("runtime", "interactive.runtime.bind", ["state"], ["runtime-binding"], ["runtime.binding.observed"]),
|
|
50
|
+
etapa("smoke", "interactive.smoke.observe", ["runtime"], ["smoke-report"], ["runtime.boot", "runtime.loop"]),
|
|
51
|
+
],
|
|
52
|
+
requiredEvidence: ["world.model.valid", "state.transitions.valid", "runtime.binding.observed", "runtime.boot", "runtime.loop"],
|
|
53
|
+
useWhen: ["criar primeiro prototipo", "validar arquitetura interativa", "ligar mundo a runtime"],
|
|
54
|
+
avoidWhen: ["o sistema ja esta empacotado e precisa apenas de release"],
|
|
55
|
+
}),
|
|
56
|
+
pipeline({
|
|
57
|
+
pipelineId: "interactive.playtest",
|
|
58
|
+
label: "Playtest observável",
|
|
59
|
+
summary: "Exige boot, loop, falha e replay observados; compilação isolada não prova jogabilidade.",
|
|
60
|
+
kinds: ["GAME", "HYBRID"],
|
|
61
|
+
spatialModels: MODELOS_ESPACIAIS,
|
|
62
|
+
renderModes: MODOS_RENDER,
|
|
63
|
+
visualProfiles: PERFIS_VISUAIS,
|
|
64
|
+
controlModes: ["HUMAN", "SCRIPTED", "AI", "HYBRID"],
|
|
65
|
+
fidelities: FIDELIDADES,
|
|
66
|
+
capabilities: ["interactive.playtest.plan", "interactive.runtime.observe", "interactive.failure.observe", "interactive.replay.compare"],
|
|
67
|
+
stages: [
|
|
68
|
+
etapa("plan", "interactive.playtest.plan", [], ["playtest-plan"], ["playtest.plan.valid"]),
|
|
69
|
+
etapa("boot", "interactive.runtime.observe", ["plan"], ["boot-trace"], ["runtime.boot"]),
|
|
70
|
+
etapa("loop", "interactive.runtime.observe", ["boot"], ["loop-trace"], ["runtime.loop"]),
|
|
71
|
+
etapa("failure", "interactive.failure.observe", ["loop"], ["failure-trace"], ["runtime.failure"]),
|
|
72
|
+
etapa("replay", "interactive.replay.compare", ["failure"], ["replay-report"], ["runtime.replay"]),
|
|
73
|
+
],
|
|
74
|
+
requiredEvidence: ["playtest.plan.valid", "runtime.boot", "runtime.loop", "runtime.failure", "runtime.replay"],
|
|
75
|
+
useWhen: ["testar loop jogavel", "provar primeiros minutos", "observar falha e recuperacao"],
|
|
76
|
+
avoidWhen: ["simulacao sem objetivo de jogador"],
|
|
77
|
+
}),
|
|
78
|
+
pipeline({
|
|
79
|
+
pipelineId: "interactive.package",
|
|
80
|
+
label: "Build empacotado",
|
|
81
|
+
summary: "Planeja build, pacote, lançamento e smoke do artefato materializado.",
|
|
82
|
+
kinds: KINDS,
|
|
83
|
+
spatialModels: MODELOS_ESPACIAIS,
|
|
84
|
+
renderModes: MODOS_RENDER,
|
|
85
|
+
visualProfiles: PERFIS_VISUAIS,
|
|
86
|
+
controlModes: CONTROLES,
|
|
87
|
+
fidelities: FIDELIDADES,
|
|
88
|
+
capabilities: ["interactive.build.plan", "interactive.package.plan", "interactive.launch.observe"],
|
|
89
|
+
stages: [
|
|
90
|
+
etapa("build", "interactive.build.plan", [], ["build-artifact"], ["package.build"]),
|
|
91
|
+
etapa("package", "interactive.package.plan", ["build"], ["package-artifact"], ["package.materialized"]),
|
|
92
|
+
etapa("launch", "interactive.launch.observe", ["package"], ["launch-report"], ["package.launch", "runtime.smoke"]),
|
|
93
|
+
],
|
|
94
|
+
requiredEvidence: ["package.build", "package.materialized", "package.launch", "runtime.smoke"],
|
|
95
|
+
useWhen: ["gerar pacote testavel", "validar artefato fora do editor"],
|
|
96
|
+
avoidWhen: ["o pedido e apenas modelagem conceitual"],
|
|
97
|
+
}),
|
|
98
|
+
pipeline({
|
|
99
|
+
pipelineId: "interactive.release",
|
|
100
|
+
label: "Release interativo",
|
|
101
|
+
summary: "Fecha pacote, compatibilidade, rollback e evidência de distribuição sem publicar pela CLI.",
|
|
102
|
+
kinds: KINDS,
|
|
103
|
+
spatialModels: MODELOS_ESPACIAIS,
|
|
104
|
+
renderModes: MODOS_RENDER,
|
|
105
|
+
visualProfiles: PERFIS_VISUAIS,
|
|
106
|
+
controlModes: CONTROLES,
|
|
107
|
+
fidelities: FIDELIDADES,
|
|
108
|
+
capabilities: ["interactive.release.plan", "interactive.compatibility.validate", "interactive.rollback.plan"],
|
|
109
|
+
stages: [
|
|
110
|
+
etapa("candidate", "interactive.release.plan", [], ["release-candidate"], ["release.candidate"]),
|
|
111
|
+
etapa("compatibility", "interactive.compatibility.validate", ["candidate"], ["compatibility-report"], ["release.compatibility"]),
|
|
112
|
+
etapa("rollback", "interactive.rollback.plan", ["compatibility"], ["rollback-plan"], ["release.rollback.plan"]),
|
|
113
|
+
etapa("distribution", "interactive.release.plan", ["rollback"], ["distribution-plan"], ["release.distribution.plan"]),
|
|
114
|
+
],
|
|
115
|
+
requiredEvidence: ["release.candidate", "release.compatibility", "release.rollback.plan", "release.distribution.plan"],
|
|
116
|
+
useWhen: ["preparar release", "provar compatibilidade e rollback"],
|
|
117
|
+
avoidWhen: ["nao existe build empacotado validado"],
|
|
118
|
+
}),
|
|
119
|
+
pipeline({
|
|
120
|
+
pipelineId: "interactive.replay",
|
|
121
|
+
label: "Replay determinístico",
|
|
122
|
+
summary: "Compara seed, snapshot, eventos e digest final em execução externa reproduzível.",
|
|
123
|
+
kinds: KINDS,
|
|
124
|
+
spatialModels: MODELOS_ESPACIAIS,
|
|
125
|
+
renderModes: MODOS_RENDER,
|
|
126
|
+
visualProfiles: PERFIS_VISUAIS,
|
|
127
|
+
controlModes: CONTROLES,
|
|
128
|
+
fidelities: FIDELIDADES,
|
|
129
|
+
capabilities: ["interactive.seed.bind", "interactive.snapshot.capture", "interactive.event.log", "interactive.replay.compare"],
|
|
130
|
+
stages: [
|
|
131
|
+
etapa("seed", "interactive.seed.bind", [], ["seed-binding"], ["determinism.seed"]),
|
|
132
|
+
etapa("snapshot", "interactive.snapshot.capture", ["seed"], ["state-snapshot"], ["state.snapshot"]),
|
|
133
|
+
etapa("events", "interactive.event.log", ["snapshot"], ["event-log"], ["event.log"]),
|
|
134
|
+
etapa("compare", "interactive.replay.compare", ["events"], ["replay-comparison"], ["result.digest", "runtime.replay"]),
|
|
135
|
+
],
|
|
136
|
+
requiredEvidence: ["determinism.seed", "state.snapshot", "event.log", "result.digest", "runtime.replay"],
|
|
137
|
+
useWhen: ["reproduzir bug", "provar determinismo", "comparar execucoes"],
|
|
138
|
+
avoidWhen: ["determinismo nao e requisito e nao ha snapshot"],
|
|
139
|
+
}),
|
|
140
|
+
pipeline({
|
|
141
|
+
pipelineId: "game.balance",
|
|
142
|
+
label: "Balanceamento de jogo",
|
|
143
|
+
summary: "Transforma hipóteses de balanceamento em cenários, métricas e evidências comparáveis.",
|
|
144
|
+
kinds: ["GAME", "HYBRID"],
|
|
145
|
+
spatialModels: MODELOS_ESPACIAIS,
|
|
146
|
+
renderModes: MODOS_RENDER,
|
|
147
|
+
visualProfiles: PERFIS_VISUAIS,
|
|
148
|
+
controlModes: CONTROLES,
|
|
149
|
+
fidelities: FIDELIDADES,
|
|
150
|
+
capabilities: ["game.balance.baseline", "game.balance.scenario", "game.balance.measure", "game.balance.review"],
|
|
151
|
+
stages: [
|
|
152
|
+
etapa("baseline", "game.balance.baseline", [], ["balance-baseline"], ["game.balance.baseline"]),
|
|
153
|
+
etapa("scenarios", "game.balance.scenario", ["baseline"], ["balance-scenarios"], ["game.balance.scenarios"]),
|
|
154
|
+
etapa("measure", "game.balance.measure", ["scenarios"], ["balance-metrics"], ["game.balance.metrics"]),
|
|
155
|
+
etapa("review", "game.balance.review", ["measure"], ["balance-report"], ["game.balance.review"]),
|
|
156
|
+
],
|
|
157
|
+
requiredEvidence: ["game.balance.baseline", "game.balance.scenarios", "game.balance.metrics", "game.balance.review"],
|
|
158
|
+
useWhen: ["ajustar dano economia dificuldade", "detectar exploit numerico"],
|
|
159
|
+
avoidWhen: ["nao existe loop ou metrica observavel"],
|
|
160
|
+
}),
|
|
161
|
+
pipeline({
|
|
162
|
+
pipelineId: "game.progression",
|
|
163
|
+
label: "Progressão de jogo",
|
|
164
|
+
summary: "Valida curva, desbloqueios, ritmo e atalhos abusivos da progressão.",
|
|
165
|
+
kinds: ["GAME", "HYBRID"],
|
|
166
|
+
spatialModels: MODELOS_ESPACIAIS,
|
|
167
|
+
renderModes: MODOS_RENDER,
|
|
168
|
+
visualProfiles: PERFIS_VISUAIS,
|
|
169
|
+
controlModes: CONTROLES,
|
|
170
|
+
fidelities: FIDELIDADES,
|
|
171
|
+
capabilities: ["game.progression.model", "game.progression.curve", "game.progression.exploit"],
|
|
172
|
+
stages: [
|
|
173
|
+
etapa("model", "game.progression.model", [], ["progression-model"], ["game.progression.model"]),
|
|
174
|
+
etapa("curve", "game.progression.curve", ["model"], ["progression-curve"], ["game.progression.curve"]),
|
|
175
|
+
etapa("exploit", "game.progression.exploit", ["curve"], ["progression-review"], ["game.progression.exploit.review"]),
|
|
176
|
+
],
|
|
177
|
+
requiredEvidence: ["game.progression.model", "game.progression.curve", "game.progression.exploit.review"],
|
|
178
|
+
useWhen: ["modelar desbloqueios", "revisar grind e pacing"],
|
|
179
|
+
avoidWhen: ["jogo sem progressao persistente"],
|
|
180
|
+
}),
|
|
181
|
+
pipeline({
|
|
182
|
+
pipelineId: "game.multiplayer",
|
|
183
|
+
label: "Multiplayer",
|
|
184
|
+
summary: "Planeja sessão, sincronização, conflito e reconexão com evidências observáveis.",
|
|
185
|
+
kinds: ["GAME", "HYBRID"],
|
|
186
|
+
spatialModels: MODELOS_ESPACIAIS,
|
|
187
|
+
renderModes: MODOS_RENDER,
|
|
188
|
+
visualProfiles: PERFIS_VISUAIS,
|
|
189
|
+
controlModes: ["HUMAN", "SCRIPTED", "AI", "HYBRID"],
|
|
190
|
+
fidelities: FIDELIDADES,
|
|
191
|
+
capabilities: ["game.multiplayer.session", "game.multiplayer.sync", "game.multiplayer.recovery"],
|
|
192
|
+
stages: [
|
|
193
|
+
etapa("session", "game.multiplayer.session", [], ["session-model"], ["multiplayer.session"]),
|
|
194
|
+
etapa("sync", "game.multiplayer.sync", ["session"], ["sync-report"], ["multiplayer.sync"]),
|
|
195
|
+
etapa("conflict", "game.multiplayer.sync", ["sync"], ["conflict-report"], ["multiplayer.conflict"]),
|
|
196
|
+
etapa("recovery", "game.multiplayer.recovery", ["conflict"], ["recovery-report"], ["multiplayer.reconnect"]),
|
|
197
|
+
],
|
|
198
|
+
requiredEvidence: ["multiplayer.session", "multiplayer.sync", "multiplayer.conflict", "multiplayer.reconnect"],
|
|
199
|
+
useWhen: ["implementar multiplayer", "validar sincronizacao e reconexao"],
|
|
200
|
+
avoidWhen: ["experiencia exclusivamente single-player"],
|
|
201
|
+
}),
|
|
202
|
+
pipeline({
|
|
203
|
+
pipelineId: "simulation.scenario",
|
|
204
|
+
label: "Cenário de simulação",
|
|
205
|
+
summary: "Declara modelo, condições iniciais, contorno e outputs de um cenário reproduzível.",
|
|
206
|
+
kinds: ["SIMULATION", "HYBRID"],
|
|
207
|
+
spatialModels: MODELOS_ESPACIAIS,
|
|
208
|
+
renderModes: MODOS_RENDER,
|
|
209
|
+
visualProfiles: PERFIS_VISUAIS,
|
|
210
|
+
controlModes: CONTROLES,
|
|
211
|
+
fidelities: FIDELIDADES,
|
|
212
|
+
capabilities: ["simulation.model", "simulation.scenario.define", "simulation.outputs.observe"],
|
|
213
|
+
stages: [
|
|
214
|
+
etapa("model", "simulation.model", [], ["simulation-model"], ["simulation.model.valid"]),
|
|
215
|
+
etapa("scenario", "simulation.scenario.define", ["model"], ["scenario-definition"], ["simulation.scenario.valid"]),
|
|
216
|
+
etapa("outputs", "simulation.outputs.observe", ["scenario"], ["output-schema"], ["simulation.outputs.observable"]),
|
|
217
|
+
],
|
|
218
|
+
requiredEvidence: ["simulation.model.valid", "simulation.scenario.valid", "simulation.outputs.observable"],
|
|
219
|
+
useWhen: ["definir cenario", "separar modelo de condicoes iniciais"],
|
|
220
|
+
avoidWhen: ["o objetivo e apenas um loop de jogo"],
|
|
221
|
+
}),
|
|
222
|
+
pipeline({
|
|
223
|
+
pipelineId: "simulation.batch_run",
|
|
224
|
+
label: "Lote de simulações",
|
|
225
|
+
summary: "Planeja matriz de cenários, seeds e agregação sem executar o lote localmente.",
|
|
226
|
+
kinds: ["SIMULATION", "HYBRID"],
|
|
227
|
+
spatialModels: MODELOS_ESPACIAIS,
|
|
228
|
+
renderModes: MODOS_RENDER,
|
|
229
|
+
visualProfiles: PERFIS_VISUAIS,
|
|
230
|
+
controlModes: ["SCRIPTED", "AI", "HYBRID", "AUTONOMOUS", "UNCONTROLLED"],
|
|
231
|
+
fidelities: FIDELIDADES,
|
|
232
|
+
capabilities: ["simulation.batch.plan", "simulation.batch.seed", "simulation.batch.aggregate"],
|
|
233
|
+
stages: [
|
|
234
|
+
etapa("matrix", "simulation.batch.plan", [], ["scenario-matrix"], ["simulation.batch.matrix"]),
|
|
235
|
+
etapa("seeds", "simulation.batch.seed", ["matrix"], ["seed-set"], ["simulation.batch.seeds"]),
|
|
236
|
+
etapa("aggregate", "simulation.batch.aggregate", ["seeds"], ["aggregate-plan"], ["simulation.batch.aggregate"]),
|
|
237
|
+
],
|
|
238
|
+
requiredEvidence: ["simulation.batch.matrix", "simulation.batch.seeds", "simulation.batch.aggregate"],
|
|
239
|
+
useWhen: ["rodar muitos cenarios", "comparar distribuicoes"],
|
|
240
|
+
avoidWhen: ["uma unica execucao interativa humana"],
|
|
241
|
+
}),
|
|
242
|
+
pipeline({
|
|
243
|
+
pipelineId: "simulation.calibrate",
|
|
244
|
+
label: "Calibração de simulação",
|
|
245
|
+
summary: "Liga dataset de referência, método, tolerâncias, incerteza e telemetria.",
|
|
246
|
+
kinds: ["SIMULATION", "HYBRID"],
|
|
247
|
+
spatialModels: MODELOS_ESPACIAIS,
|
|
248
|
+
renderModes: MODOS_RENDER,
|
|
249
|
+
visualProfiles: PERFIS_VISUAIS,
|
|
250
|
+
controlModes: CONTROLES,
|
|
251
|
+
fidelities: ["REALISTIC", "CALIBRATED"],
|
|
252
|
+
capabilities: ["simulation.reference.bind", "simulation.calibrate", "simulation.uncertainty.measure", "simulation.telemetry.observe"],
|
|
253
|
+
stages: [
|
|
254
|
+
etapa("reference", "simulation.reference.bind", [], ["reference-binding"], ["simulation.reference.dataset"]),
|
|
255
|
+
etapa("calibrate", "simulation.calibrate", ["reference"], ["calibration-report"], ["simulation.calibration"]),
|
|
256
|
+
etapa("uncertainty", "simulation.uncertainty.measure", ["calibrate"], ["uncertainty-report"], ["simulation.tolerance", "simulation.uncertainty"]),
|
|
257
|
+
etapa("telemetry", "simulation.telemetry.observe", ["uncertainty"], ["telemetry-schema"], ["simulation.telemetry"]),
|
|
258
|
+
],
|
|
259
|
+
requiredEvidence: ["simulation.reference.dataset", "simulation.calibration", "simulation.tolerance", "simulation.uncertainty", "simulation.telemetry"],
|
|
260
|
+
useWhen: ["alegar fidelidade calibrada", "comparar modelo com referencia"],
|
|
261
|
+
avoidWhen: ["nao existe referencia rastreavel"],
|
|
262
|
+
}),
|
|
263
|
+
pipeline({
|
|
264
|
+
pipelineId: "interactive.calibrate",
|
|
265
|
+
label: "Calibração transversal",
|
|
266
|
+
summary: "Liga qualquer sistema REALISTIC ou CALIBRATED a referência, tolerâncias, incerteza e telemetria.",
|
|
267
|
+
kinds: KINDS,
|
|
268
|
+
spatialModels: MODELOS_ESPACIAIS,
|
|
269
|
+
renderModes: MODOS_RENDER,
|
|
270
|
+
visualProfiles: PERFIS_VISUAIS,
|
|
271
|
+
controlModes: CONTROLES,
|
|
272
|
+
fidelities: ["REALISTIC", "CALIBRATED"],
|
|
273
|
+
capabilities: ["simulation.reference.bind", "simulation.calibrate", "simulation.uncertainty.measure", "simulation.telemetry.observe"],
|
|
274
|
+
stages: [
|
|
275
|
+
etapa("reference", "simulation.reference.bind", [], ["reference-binding"], ["simulation.reference.dataset"]),
|
|
276
|
+
etapa("calibrate", "simulation.calibrate", ["reference"], ["calibration-report"], ["simulation.calibration"]),
|
|
277
|
+
etapa("uncertainty", "simulation.uncertainty.measure", ["calibrate"], ["uncertainty-report"], ["simulation.tolerance", "simulation.uncertainty"]),
|
|
278
|
+
etapa("telemetry", "simulation.telemetry.observe", ["uncertainty"], ["telemetry-schema"], ["simulation.telemetry"]),
|
|
279
|
+
],
|
|
280
|
+
requiredEvidence: ["simulation.reference.dataset", "simulation.calibration", "simulation.tolerance", "simulation.uncertainty", "simulation.telemetry"],
|
|
281
|
+
useWhen: ["fidelity REALISTIC ou CALIBRATED em qualquer kind"],
|
|
282
|
+
avoidWhen: ["realismo apenas visual com fidelity nao REALISTIC"],
|
|
283
|
+
}),
|
|
284
|
+
pipeline({
|
|
285
|
+
pipelineId: "simulation.validate",
|
|
286
|
+
label: "Validação de simulação",
|
|
287
|
+
summary: "Valida invariantes, outputs e comparação com referência sem confundir aparência com validade.",
|
|
288
|
+
kinds: ["SIMULATION", "HYBRID"],
|
|
289
|
+
spatialModels: MODELOS_ESPACIAIS,
|
|
290
|
+
renderModes: MODOS_RENDER,
|
|
291
|
+
visualProfiles: PERFIS_VISUAIS,
|
|
292
|
+
controlModes: CONTROLES,
|
|
293
|
+
fidelities: FIDELIDADES,
|
|
294
|
+
capabilities: ["simulation.invariants.validate", "simulation.outputs.compare", "simulation.validity.report"],
|
|
295
|
+
stages: [
|
|
296
|
+
etapa("invariants", "simulation.invariants.validate", [], ["invariant-report"], ["simulation.invariants"]),
|
|
297
|
+
etapa("compare", "simulation.outputs.compare", ["invariants"], ["comparison-report"], ["simulation.output.comparison"]),
|
|
298
|
+
etapa("report", "simulation.validity.report", ["compare"], ["validity-report"], ["simulation.validity.report"]),
|
|
299
|
+
],
|
|
300
|
+
requiredEvidence: ["simulation.invariants", "simulation.output.comparison", "simulation.validity.report"],
|
|
301
|
+
useWhen: ["validar modelo", "provar outputs dentro de tolerancias"],
|
|
302
|
+
avoidWhen: ["nao existem outputs observaveis"],
|
|
303
|
+
}),
|
|
304
|
+
pipeline({
|
|
305
|
+
pipelineId: "simulation.safety",
|
|
306
|
+
label: "Segurança de simulação",
|
|
307
|
+
summary: "Exige perigos, limites, parada e recuperação para sistemas autônomos ou emergentes.",
|
|
308
|
+
kinds: ["SIMULATION", "HYBRID"],
|
|
309
|
+
spatialModels: MODELOS_ESPACIAIS,
|
|
310
|
+
renderModes: MODOS_RENDER,
|
|
311
|
+
visualProfiles: PERFIS_VISUAIS,
|
|
312
|
+
controlModes: ["AI", "HYBRID", "AUTONOMOUS", "UNCONTROLLED"],
|
|
313
|
+
fidelities: FIDELIDADES,
|
|
314
|
+
capabilities: ["simulation.hazard.model", "simulation.stop.validate", "simulation.recovery.plan"],
|
|
315
|
+
stages: [
|
|
316
|
+
etapa("hazards", "simulation.hazard.model", [], ["hazard-model"], ["simulation.hazards"]),
|
|
317
|
+
etapa("stop", "simulation.stop.validate", ["hazards"], ["stop-policy"], ["simulation.stop.criteria"]),
|
|
318
|
+
etapa("recovery", "simulation.recovery.plan", ["stop"], ["recovery-plan"], ["simulation.recovery.plan"]),
|
|
319
|
+
],
|
|
320
|
+
requiredEvidence: ["simulation.hazards", "simulation.stop.criteria", "simulation.recovery.plan"],
|
|
321
|
+
useWhen: ["simulacao autonoma", "comportamento emergente", "risco operacional"],
|
|
322
|
+
avoidWhen: ["sistema passivo sem estado mutavel"],
|
|
323
|
+
}),
|
|
324
|
+
pipeline({
|
|
325
|
+
pipelineId: "interactive.safety",
|
|
326
|
+
label: "Segurança transversal",
|
|
327
|
+
summary: "Exige perigos, parada e recuperação para qualquer sistema autônomo ou não controlado.",
|
|
328
|
+
kinds: KINDS,
|
|
329
|
+
spatialModels: MODELOS_ESPACIAIS,
|
|
330
|
+
renderModes: MODOS_RENDER,
|
|
331
|
+
visualProfiles: PERFIS_VISUAIS,
|
|
332
|
+
controlModes: ["AUTONOMOUS", "UNCONTROLLED"],
|
|
333
|
+
fidelities: FIDELIDADES,
|
|
334
|
+
capabilities: ["simulation.hazard.model", "simulation.stop.validate", "simulation.recovery.plan"],
|
|
335
|
+
stages: [
|
|
336
|
+
etapa("hazards", "simulation.hazard.model", [], ["hazard-model"], ["simulation.hazards"]),
|
|
337
|
+
etapa("stop", "simulation.stop.validate", ["hazards"], ["stop-policy"], ["simulation.stop.criteria"]),
|
|
338
|
+
etapa("recovery", "simulation.recovery.plan", ["stop"], ["recovery-plan"], ["simulation.recovery.plan"]),
|
|
339
|
+
],
|
|
340
|
+
requiredEvidence: ["simulation.hazards", "simulation.stop.criteria", "simulation.recovery.plan"],
|
|
341
|
+
useWhen: ["jogo ou sistema autonomo", "comportamento nao controlado", "risco operacional"],
|
|
342
|
+
avoidWhen: ["sistema sem AUTONOMOUS ou UNCONTROLLED"],
|
|
343
|
+
}),
|
|
344
|
+
...CATALOGO_PIPELINES_INTERATIVOS_AVANCADOS,
|
|
345
|
+
]);
|
|
346
|
+
const PROTOCOLO_LEITURA = ["DETECT", "PROBE", "SNAPSHOT", "PLAN", "VALIDATE", "EVIDENCE"];
|
|
347
|
+
const PROTOCOLO_MUTANTE = ["DETECT", "PROBE", "SNAPSHOT", "PLAN", "APPLY", "VALIDATE", "EVIDENCE", "ROLLBACK"];
|
|
348
|
+
function adaptador(entrada) {
|
|
349
|
+
return {
|
|
350
|
+
version: "1.0.0",
|
|
351
|
+
readOnlyProbe: true,
|
|
352
|
+
supportsRollback: entrada.mutatesWorkspace,
|
|
353
|
+
executionBoundary: "EXTERNAL",
|
|
354
|
+
protocol: entrada.mutatesWorkspace ? PROTOCOLO_MUTANTE : PROTOCOLO_LEITURA,
|
|
355
|
+
...entrada,
|
|
356
|
+
};
|
|
357
|
+
}
|
|
358
|
+
const BASE_ADAPTER = {
|
|
359
|
+
kinds: KINDS,
|
|
360
|
+
controlModes: CONTROLES,
|
|
361
|
+
timeModels: TEMPOS,
|
|
362
|
+
fidelities: FIDELIDADES,
|
|
363
|
+
};
|
|
364
|
+
const CAPABILIDADES_PIPELINES = [...new Set(CATALOGO_PIPELINES_INTERATIVOS.flatMap((item) => item.capabilities))].sort();
|
|
365
|
+
const CAPABILIDADES_VALIDACAO = new Set([
|
|
366
|
+
"interactive.compatibility.validate", "interactive.replay.compare", "game.balance.review",
|
|
367
|
+
"game.progression.exploit", "game.multiplayer.sync", "simulation.invariants.validate",
|
|
368
|
+
"simulation.outputs.compare", "simulation.stop.validate", "simulation.validity.report",
|
|
369
|
+
]);
|
|
370
|
+
const CAPABILIDADES_TELEMETRIA = new Set([
|
|
371
|
+
"interactive.event.log", "interactive.failure.observe", "interactive.runtime.observe",
|
|
372
|
+
"game.balance.measure", "simulation.batch.aggregate", "simulation.outputs.observe",
|
|
373
|
+
"simulation.telemetry.observe", "simulation.uncertainty.measure",
|
|
374
|
+
]);
|
|
375
|
+
const CAPABILIDADES_EXECUCAO = CAPABILIDADES_PIPELINES.filter((item) => (!CAPABILIDADES_VALIDACAO.has(item) && !CAPABILIDADES_TELEMETRIA.has(item)));
|
|
376
|
+
const CAPABILIDADES_RUNTIME = [
|
|
377
|
+
"interactive.playtest.plan", "interactive.runtime.bind", "interactive.seed.bind",
|
|
378
|
+
"interactive.smoke.observe", "interactive.snapshot.capture", "interactive.state.model",
|
|
379
|
+
"interactive.world.model",
|
|
380
|
+
];
|
|
381
|
+
const CAPABILIDADES_PACOTE_ENGINE = [
|
|
382
|
+
"interactive.build.plan", "interactive.launch.observe", "interactive.package.plan",
|
|
383
|
+
];
|
|
384
|
+
const CAPABILIDADES_GATES_TRANSVERSAIS = [
|
|
385
|
+
"simulation.calibrate", "simulation.hazard.model", "simulation.recovery.plan", "simulation.reference.bind",
|
|
386
|
+
];
|
|
387
|
+
const CAPABILIDADES_GAME_ENGINE = [...new Set([
|
|
388
|
+
...CAPABILIDADES_RUNTIME,
|
|
389
|
+
...CAPABILIDADES_PACOTE_ENGINE,
|
|
390
|
+
...CAPABILIDADES_GATES_TRANSVERSAIS,
|
|
391
|
+
...CAPABILIDADES_EXECUCAO.filter((item) => item.startsWith("game.")),
|
|
392
|
+
])].sort();
|
|
393
|
+
const CAPABILIDADES_SIMULATION_RUNNER = [...new Set([
|
|
394
|
+
...CAPABILIDADES_RUNTIME,
|
|
395
|
+
...CAPABILIDADES_EXECUCAO.filter((item) => item.startsWith("simulation.")),
|
|
396
|
+
])].sort();
|
|
397
|
+
const CAPABILIDADES_ENGINE_COMPLETO = [...new Set([
|
|
398
|
+
...CAPABILIDADES_GAME_ENGINE,
|
|
399
|
+
...CAPABILIDADES_SIMULATION_RUNNER,
|
|
400
|
+
])].sort();
|
|
401
|
+
export const CATALOGO_ADAPTADORES_INTERATIVOS = congelarProfundo([
|
|
402
|
+
adaptador({ ...BASE_ADAPTER, adapterId: "runtime.headless.generic", role: "RUNTIME", engine: "headless", spatialModels: MODELOS_ESPACIAIS, renderModes: ["HEADLESS"], visualProfiles: ["NONE"], capabilities: CAPABILIDADES_RUNTIME, mutatesWorkspace: false }),
|
|
403
|
+
adaptador({ ...BASE_ADAPTER, adapterId: "runtime.text.generic", role: "RUNTIME", engine: "text", spatialModels: ["NON_SPATIAL"], renderModes: ["TEXT"], visualProfiles: ["NONE"], capabilities: CAPABILIDADES_RUNTIME, mutatesWorkspace: false }),
|
|
404
|
+
adaptador({ ...BASE_ADAPTER, adapterId: "simulation.runner.generic", role: "RUNTIME", engine: "simulation-runner", kinds: ["SIMULATION", "HYBRID"], spatialModels: MODELOS_ESPACIAIS, renderModes: MODOS_RENDER, visualProfiles: PERFIS_VISUAIS, capabilities: CAPABILIDADES_SIMULATION_RUNNER, mutatesWorkspace: false }),
|
|
405
|
+
adaptador({ ...BASE_ADAPTER, adapterId: "validator.replay.local", role: "VALIDATOR", engine: "custom", spatialModels: MODELOS_ESPACIAIS, renderModes: MODOS_RENDER, visualProfiles: PERFIS_VISUAIS, capabilities: [...CAPABILIDADES_VALIDACAO].sort(), mutatesWorkspace: false }),
|
|
406
|
+
adaptador({ ...BASE_ADAPTER, adapterId: "telemetry.trace.local", role: "TELEMETRY", engine: "custom", spatialModels: MODELOS_ESPACIAIS, renderModes: MODOS_RENDER, visualProfiles: PERFIS_VISUAIS, capabilities: [...CAPABILIDADES_TELEMETRIA].sort(), mutatesWorkspace: false }),
|
|
407
|
+
adaptador({ ...BASE_ADAPTER, adapterId: "engine.web.canvas2d", role: "ENGINE", engine: "web-canvas", spatialModels: ["TWO_D", "TWO_POINT_FIVE_D"], renderModes: ["VISUAL"], visualProfiles: ["PIXEL_8_BIT", "PIXEL_16_BIT", "RASTER", "VECTOR", "STYLIZED"], capabilities: CAPABILIDADES_GAME_ENGINE, mutatesWorkspace: true }),
|
|
408
|
+
adaptador({ ...BASE_ADAPTER, adapterId: "engine.web.webgl", role: "ENGINE", engine: "webgl", spatialModels: ["TWO_D", "TWO_POINT_FIVE_D", "THREE_D"], renderModes: ["VISUAL", "XR"], visualProfiles: ["RASTER", "VECTOR", "STYLIZED", "REALISTIC"], capabilities: CAPABILIDADES_GAME_ENGINE, mutatesWorkspace: true }),
|
|
409
|
+
adaptador({ ...BASE_ADAPTER, adapterId: "engine.love2d", role: "ENGINE", engine: "love2d", spatialModels: ["TWO_D"], renderModes: ["VISUAL"], visualProfiles: ["PIXEL_8_BIT", "PIXEL_16_BIT", "RASTER", "STYLIZED"], capabilities: CAPABILIDADES_GAME_ENGINE, mutatesWorkspace: true }),
|
|
410
|
+
adaptador({ ...BASE_ADAPTER, adapterId: "engine.pico8", role: "ENGINE", engine: "pico8", spatialModels: ["TWO_D"], renderModes: ["VISUAL"], visualProfiles: ["PIXEL_8_BIT"], capabilities: CAPABILIDADES_GAME_ENGINE, mutatesWorkspace: true }),
|
|
411
|
+
adaptador({ ...BASE_ADAPTER, adapterId: "engine.tic80", role: "ENGINE", engine: "tic80", spatialModels: ["TWO_D"], renderModes: ["VISUAL"], visualProfiles: ["PIXEL_8_BIT", "PIXEL_16_BIT"], capabilities: CAPABILIDADES_GAME_ENGINE, mutatesWorkspace: true }),
|
|
412
|
+
adaptador({ ...BASE_ADAPTER, adapterId: "engine.godot", role: "ENGINE", engine: "godot", spatialModels: ["TWO_D", "TWO_POINT_FIVE_D", "THREE_D"], renderModes: ["HEADLESS", "VISUAL", "XR"], visualProfiles: PERFIS_VISUAIS, capabilities: CAPABILIDADES_ENGINE_COMPLETO, mutatesWorkspace: true }),
|
|
413
|
+
adaptador({ ...BASE_ADAPTER, adapterId: "engine.unity", role: "ENGINE", engine: "unity", spatialModels: ["TWO_D", "TWO_POINT_FIVE_D", "THREE_D"], renderModes: ["HEADLESS", "VISUAL", "XR"], visualProfiles: PERFIS_VISUAIS, capabilities: CAPABILIDADES_ENGINE_COMPLETO, mutatesWorkspace: true }),
|
|
414
|
+
adaptador({ ...BASE_ADAPTER, adapterId: "engine.unreal", role: "ENGINE", engine: "unreal", spatialModels: ["TWO_D", "TWO_POINT_FIVE_D", "THREE_D"], renderModes: ["HEADLESS", "VISUAL", "XR"], visualProfiles: ["NONE", "RASTER", "STYLIZED", "REALISTIC"], capabilities: CAPABILIDADES_ENGINE_COMPLETO, mutatesWorkspace: true }),
|
|
415
|
+
adaptador({ ...BASE_ADAPTER, adapterId: "editor.generic.external", role: "EDITOR", engine: "custom", spatialModels: MODELOS_ESPACIAIS, renderModes: MODOS_RENDER, visualProfiles: PERFIS_VISUAIS, capabilities: ["interactive.editor.project", "interactive.runtime.bind", "interactive.state.model", "interactive.world.model"], mutatesWorkspace: true }),
|
|
416
|
+
adaptador({ ...BASE_ADAPTER, adapterId: "editor.blender", role: "EDITOR", engine: "blender", spatialModels: ["TWO_D", "TWO_POINT_FIVE_D", "THREE_D"], renderModes: ["HEADLESS", "VISUAL"], visualProfiles: PERFIS_VISUAIS, capabilities: ["interactive.asset.export", "interactive.asset.prepare", "interactive.scene.author"], mutatesWorkspace: true }),
|
|
417
|
+
adaptador({ ...BASE_ADAPTER, adapterId: "asset.pipeline.generic", role: "ASSET", engine: "custom", spatialModels: MODELOS_ESPACIAIS, renderModes: MODOS_RENDER, visualProfiles: PERFIS_VISUAIS, capabilities: ["interactive.asset.prepare"], mutatesWorkspace: true }),
|
|
418
|
+
adaptador({ ...BASE_ADAPTER, adapterId: "build.generic.external", role: "BUILD", engine: "custom", spatialModels: MODELOS_ESPACIAIS, renderModes: MODOS_RENDER, visualProfiles: PERFIS_VISUAIS, capabilities: ["interactive.build.plan", "interactive.launch.observe", "interactive.package.plan", "interactive.release.plan", "interactive.rollback.plan"], mutatesWorkspace: true }),
|
|
419
|
+
adaptador({ ...BASE_ADAPTER, adapterId: "engine.custom", role: "CUSTOM", engine: "custom", spatialModels: MODELOS_ESPACIAIS, renderModes: MODOS_RENDER, visualProfiles: PERFIS_VISUAIS, capabilities: CAPABILIDADES_EXECUCAO, mutatesWorkspace: true }),
|
|
420
|
+
...CATALOGO_ADAPTADORES_INTERATIVOS_AVANCADOS,
|
|
421
|
+
]);
|
|
422
|
+
function derivarCatalogoCapabilities() {
|
|
423
|
+
const kindsPorCapability = new Map();
|
|
424
|
+
for (const pipelineItem of CATALOGO_PIPELINES_INTERATIVOS) {
|
|
425
|
+
for (const capability of pipelineItem.capabilities) {
|
|
426
|
+
const kinds = kindsPorCapability.get(capability) ?? new Set();
|
|
427
|
+
pipelineItem.kinds.forEach((kind) => kinds.add(kind));
|
|
428
|
+
kindsPorCapability.set(capability, kinds);
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
for (const adapter of CATALOGO_ADAPTADORES_INTERATIVOS) {
|
|
432
|
+
for (const capability of adapter.capabilities) {
|
|
433
|
+
const kinds = kindsPorCapability.get(capability) ?? new Set();
|
|
434
|
+
adapter.kinds.forEach((kind) => kinds.add(kind));
|
|
435
|
+
kindsPorCapability.set(capability, kinds);
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
return [...kindsPorCapability.entries()].sort(([a], [b]) => a.localeCompare(b)).map(([capability, kinds]) => ({
|
|
439
|
+
capability,
|
|
440
|
+
label: capability.split(".").map((item) => item.replace(/_/g, " ")).join(" · "),
|
|
441
|
+
summary: `Capability canônica declarada por pipeline ou adapter: ${capability}.`,
|
|
442
|
+
kinds: KINDS.filter((kind) => kinds.has(kind)),
|
|
443
|
+
}));
|
|
444
|
+
}
|
|
445
|
+
export const CATALOGO_CAPABILITIES_INTERATIVAS = congelarProfundo(derivarCatalogoCapabilities());
|
|
446
|
+
function copiarDescritor(valor) {
|
|
447
|
+
if (Array.isArray(valor))
|
|
448
|
+
return valor.map((item) => copiarDescritor(item));
|
|
449
|
+
if (typeof valor === "object" && valor !== null) {
|
|
450
|
+
return Object.fromEntries(Object.entries(valor).map(([chave, item]) => ([chave, copiarDescritor(item)])));
|
|
451
|
+
}
|
|
452
|
+
return valor;
|
|
453
|
+
}
|
|
454
|
+
export function obterPipelineSistemaInterativo(pipelineId) {
|
|
455
|
+
const pipelineEncontrado = CATALOGO_PIPELINES_INTERATIVOS.find((item) => item.pipelineId === pipelineId);
|
|
456
|
+
return pipelineEncontrado === undefined ? undefined : copiarDescritor(pipelineEncontrado);
|
|
457
|
+
}
|
|
458
|
+
export function obterAdaptadorSistemaInterativo(adapterId) {
|
|
459
|
+
const adapterEncontrado = CATALOGO_ADAPTADORES_INTERATIVOS.find((item) => item.adapterId === adapterId);
|
|
460
|
+
return adapterEncontrado === undefined ? undefined : copiarDescritor(adapterEncontrado);
|
|
461
|
+
}
|
|
462
|
+
export function listarAdaptadoresSistemasInterativos(filtros = {}) {
|
|
463
|
+
const adapters = CATALOGO_ADAPTADORES_INTERATIVOS.filter((adapter) => ((filtros.kind === undefined || adapter.kinds.includes(filtros.kind))
|
|
464
|
+
&& (filtros.spatialModel === undefined || adapter.spatialModels.includes(filtros.spatialModel))
|
|
465
|
+
&& (filtros.renderMode === undefined || adapter.renderModes.includes(filtros.renderMode))
|
|
466
|
+
&& (filtros.visualProfile === undefined || adapter.visualProfiles.includes(filtros.visualProfile))
|
|
467
|
+
&& (filtros.role === undefined || adapter.role === filtros.role)
|
|
468
|
+
&& (filtros.controlMode === undefined || adapter.controlModes.includes(filtros.controlMode))
|
|
469
|
+
&& (filtros.timeModel === undefined || adapter.timeModels.includes(filtros.timeModel))
|
|
470
|
+
&& (filtros.fidelity === undefined || adapter.fidelities.includes(filtros.fidelity)))).map((adapter) => copiarDescritor(adapter));
|
|
471
|
+
return { adapters, filtrosAplicados: { ...filtros }, executed: false };
|
|
472
|
+
}
|
|
473
|
+
export const MATRIZ_DOMINIO_SISTEMAS_INTERATIVOS = congelarProfundo({
|
|
474
|
+
schemaVersion: "1.0",
|
|
475
|
+
kinds: KINDS,
|
|
476
|
+
spatialModels: MODELOS_ESPACIAIS,
|
|
477
|
+
renderModes: MODOS_RENDER,
|
|
478
|
+
visualProfiles: PERFIS_VISUAIS,
|
|
479
|
+
controlModes: CONTROLES,
|
|
480
|
+
timeModels: TEMPOS,
|
|
481
|
+
determinisms: ["NONE", "BEST_EFFORT", "STOCHASTIC", "SEEDED", "STRICT"],
|
|
482
|
+
fidelities: FIDELIDADES,
|
|
483
|
+
adapterRoles: ["ENGINE", "RUNTIME", "EDITOR", "ASSET", "BUILD", "TELEMETRY", "VALIDATOR", "CUSTOM"],
|
|
484
|
+
});
|
|
485
|
+
export const SCHEMA_DEFINICAO_SISTEMA_INTERATIVO = congelarProfundo({
|
|
486
|
+
schemaVersion: "sema.interativo.schema/v1",
|
|
487
|
+
readOnly: true,
|
|
488
|
+
definitionSchema: {
|
|
489
|
+
schemaVersion: "1.0",
|
|
490
|
+
requiredFields: [
|
|
491
|
+
"schemaVersion", "systemId", "version", "kind", "spatialModel", "renderMode", "visualProfile",
|
|
492
|
+
"fidelity", "controlModes", "timeModel", "determinism", "capabilities", "pipelines",
|
|
493
|
+
"adapterTargets", "world", "acceptance",
|
|
494
|
+
],
|
|
495
|
+
fields: {
|
|
496
|
+
schemaVersion: { type: "string", const: "1.0" },
|
|
497
|
+
systemId: { type: "string", format: "safe-opaque-id" },
|
|
498
|
+
version: { type: "string", constraint: "fixed-not-floating" },
|
|
499
|
+
kind: { type: "string", enum: KINDS },
|
|
500
|
+
spatialModel: { type: "string", enum: MODELOS_ESPACIAIS },
|
|
501
|
+
renderMode: { type: "string", enum: MODOS_RENDER },
|
|
502
|
+
visualProfile: { type: "string", enum: PERFIS_VISUAIS },
|
|
503
|
+
fidelity: { type: "string", enum: FIDELIDADES },
|
|
504
|
+
controlModes: { type: "array", uniqueItems: true, minItems: 1, items: CONTROLES },
|
|
505
|
+
timeModel: { type: "string", enum: TEMPOS },
|
|
506
|
+
determinism: { type: "string", enum: MATRIZ_DOMINIO_SISTEMAS_INTERATIVOS.determinisms },
|
|
507
|
+
capabilities: { type: "array", uniqueItems: true, source: "sema interativo capabilities" },
|
|
508
|
+
pipelines: { type: "array", uniqueItems: true, minItems: 1, source: "sema interativo pipelines" },
|
|
509
|
+
adapterTargets: { type: "array", uniqueItems: true, source: "sema interativo adapters", emptyMeans: "blocked-plan-with-recommendations" },
|
|
510
|
+
world: { type: "object" },
|
|
511
|
+
budgets: { type: "object", optional: true },
|
|
512
|
+
acceptance: { type: "object" },
|
|
513
|
+
},
|
|
514
|
+
constraints: [
|
|
515
|
+
"renderMode HEADLESS ou TEXT exige visualProfile NONE",
|
|
516
|
+
"renderMode VISUAL ou XR exige visualProfile diferente de NONE",
|
|
517
|
+
"renderMode XR exige spatialModel THREE_D",
|
|
518
|
+
"spatialModel THREE_D exige world.units, world.scale e world.coordinateSystem",
|
|
519
|
+
"SIMULATION ou HYBRID exige world.model, assumptions, boundaryConditions, outputs e validation",
|
|
520
|
+
"REALISTIC ou CALIBRATED exige acceptance.reference, calibration, tolerances, uncertainty, telemetry e pipeline calibrate compatível",
|
|
521
|
+
"AUTONOMOUS ou UNCONTROLLED exige world.stopCriteria, safetyConstraints e pipeline safety compatível",
|
|
522
|
+
"SEEDED ou STRICT exige world.seed, snapshot, replay, step e pipeline interactive.replay",
|
|
523
|
+
"adapterTargets deve selecionar composição que cubra toda capability de stage",
|
|
524
|
+
],
|
|
525
|
+
},
|
|
526
|
+
matrix: MATRIZ_DOMINIO_SISTEMAS_INTERATIVOS,
|
|
527
|
+
examplePaths: [
|
|
528
|
+
"exemplos/sistemas-interativos/game-2d.json",
|
|
529
|
+
"exemplos/sistemas-interativos/game-3d-human.json",
|
|
530
|
+
"exemplos/sistemas-interativos/game-pixel-16-bit.json",
|
|
531
|
+
"exemplos/sistemas-interativos/game-pixel-8-bit.json",
|
|
532
|
+
"exemplos/sistemas-interativos/game-xr-human.json",
|
|
533
|
+
"exemplos/sistemas-interativos/hybrid-2-5d.json",
|
|
534
|
+
"exemplos/sistemas-interativos/simulation-2d-controlled.json",
|
|
535
|
+
"exemplos/sistemas-interativos/simulation-3d-calibrated-autonomous.json",
|
|
536
|
+
"exemplos/sistemas-interativos/simulation-headless-autonomous-batch.json",
|
|
537
|
+
"exemplos/sistemas-interativos/simulation-pixel-16-bit.json",
|
|
538
|
+
"exemplos/sistemas-interativos/simulation-text-controlled.json",
|
|
539
|
+
"exemplos/sistemas-interativos/protocol-mutating-rollback-valid.json",
|
|
540
|
+
"exemplos/sistemas-interativos/protocol-read-only-valid.json",
|
|
541
|
+
],
|
|
542
|
+
});
|
|
543
|
+
//# sourceMappingURL=catalog.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
interface ResultadoComandoSistemasInterativos {
|
|
2
|
+
readonly exitCode: number;
|
|
3
|
+
readonly payload: Record<string, unknown>;
|
|
4
|
+
}
|
|
5
|
+
export declare function executarComandoSistemasInterativos(args: readonly string[]): Promise<ResultadoComandoSistemasInterativos>;
|
|
6
|
+
export declare function comandoSistemasInterativos(_posicionaisGlobais: string[], args: string[], emJson: boolean): Promise<number>;
|
|
7
|
+
export {};
|