@semacode/cli 2.3.1 → 3.0.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 (250) hide show
  1. package/README.md +265 -217
  2. package/dist/agentContextPack.js +14 -10
  3. package/dist/agentEntryPoints.d.ts +5 -0
  4. package/dist/agentEntryPoints.js +567 -557
  5. package/dist/angular-consumer-standalone.js +1 -1
  6. package/dist/bin.d.ts +6 -0
  7. package/dist/bin.js +130 -0
  8. package/dist/cliArgs.js +4 -4
  9. package/dist/cliControlError.d.ts +12 -0
  10. package/dist/cliControlError.js +47 -0
  11. package/dist/cliGrammar.d.ts +11 -0
  12. package/dist/cliGrammar.js +551 -0
  13. package/dist/cliHelp.d.ts +13 -0
  14. package/dist/cliHelp.js +19 -0
  15. package/dist/cliHelpTexto.d.ts +3 -0
  16. package/dist/cliHelpTexto.js +168 -0
  17. package/dist/cliRuntime.d.ts +2 -0
  18. package/dist/cliRuntime.js +31 -0
  19. package/dist/comandos.js +9 -22
  20. package/dist/contexto.js +5 -5
  21. package/dist/dev/index.d.ts +1 -0
  22. package/dist/dev/index.js +51 -9
  23. package/dist/discovery/catalog.js +3 -3
  24. package/dist/distribuicao/filesystemGlobal.d.ts +63 -0
  25. package/dist/distribuicao/filesystemGlobal.js +701 -0
  26. package/dist/distribuicao/index.d.ts +7 -0
  27. package/dist/distribuicao/index.js +227 -0
  28. package/dist/distribuicao/launcherGlobal.d.ts +53 -0
  29. package/dist/distribuicao/launcherGlobal.js +643 -0
  30. package/dist/distribuicao/launcherWindows.d.ts +28 -0
  31. package/dist/distribuicao/launcherWindows.js +326 -0
  32. package/dist/distribuicao/lockContextGlobal.d.ts +10 -0
  33. package/dist/distribuicao/lockContextGlobal.js +17 -0
  34. package/dist/distribuicao/lockGlobal.d.ts +6 -0
  35. package/dist/distribuicao/lockGlobal.js +520 -0
  36. package/dist/distribuicao/skillGlobal.d.ts +48 -0
  37. package/dist/distribuicao/skillGlobal.js +652 -0
  38. package/dist/distribuicao/skillIntentPolicy.d.ts +21 -0
  39. package/dist/distribuicao/skillIntentPolicy.js +115 -0
  40. package/dist/distribuicao/tipos.d.ts +50 -0
  41. package/dist/distribuicao/tipos.js +10 -0
  42. package/dist/distribuicao/versaoSemantica.d.ts +3 -0
  43. package/dist/distribuicao/versaoSemantica.js +62 -0
  44. package/dist/drift.part01.d.ts +26 -24
  45. package/dist/drift.part01.js +2 -1
  46. package/dist/drift.part04.d.ts +12 -3
  47. package/dist/drift.part04.js +88 -17
  48. package/dist/drift.part05.d.ts +2 -2
  49. package/dist/drift.part05.js +8 -6
  50. package/dist/drift.part06.d.ts +2 -2
  51. package/dist/drift.part06.js +113 -26
  52. package/dist/drift.part07.d.ts +11 -11
  53. package/dist/drift.part07.js +261 -265
  54. package/dist/drift.part08.d.ts +2 -2
  55. package/dist/drift.part08.js +35 -26
  56. package/dist/drift.part11.js +238 -56
  57. package/dist/drift.part12.d.ts +1 -1
  58. package/dist/drift.part12.js +193 -21
  59. package/dist/drift.part13.d.ts +20 -39
  60. package/dist/drift.part13.js +601 -647
  61. package/dist/drift.part14.js +21 -7
  62. package/dist/driftCacheCas.d.ts +43 -0
  63. package/dist/driftCacheCas.js +351 -0
  64. package/dist/driftCacheFilesystem.d.ts +64 -0
  65. package/dist/driftCacheFilesystem.js +313 -0
  66. package/dist/driftCacheModes.d.ts +38 -0
  67. package/dist/driftCacheModes.js +147 -0
  68. package/dist/driftCacheStore.d.ts +80 -0
  69. package/dist/driftCacheStore.js +603 -0
  70. package/dist/driftCatalogo.d.ts +2 -28
  71. package/dist/driftCatalogo.js +143 -284
  72. package/dist/driftEscopo.d.ts +1 -3
  73. package/dist/driftEscopo.js +235 -151
  74. package/dist/driftEscopoReferencias.d.ts +5 -1
  75. package/dist/driftEscopoReferencias.js +375 -28
  76. package/dist/driftOrcamento.d.ts +0 -6
  77. package/dist/driftOrcamento.js +2 -1
  78. package/dist/execucoesExternas.js +19 -5
  79. package/dist/geracaoCore.js +4 -6
  80. package/dist/iaPrompts.d.ts +3 -3
  81. package/dist/iaPrompts.js +312 -313
  82. package/dist/index.d.ts +4 -1
  83. package/dist/index.js +6 -25
  84. package/dist/index.part01.d.ts +20 -28
  85. package/dist/index.part01.js +16 -237
  86. package/dist/index.part02.js +36 -22
  87. package/dist/index.part03.d.ts +24 -2
  88. package/dist/index.part03.js +83 -19
  89. package/dist/index.part04.d.ts +10 -2
  90. package/dist/index.part04.js +142 -120
  91. package/dist/index.part05.js +80 -78
  92. package/dist/index.part06.js +34 -17
  93. package/dist/index.part07.js +7 -3
  94. package/dist/index.part08.d.ts +1 -1
  95. package/dist/index.part08.js +22 -27
  96. package/dist/initCommand.js +5 -1
  97. package/dist/initTemplatesBase.js +81 -79
  98. package/dist/pipelineConteudo/command.d.ts +1 -0
  99. package/dist/pipelineConteudo/command.js +9 -2
  100. package/dist/pipelineConteudo/help.d.ts +2 -0
  101. package/dist/pipelineConteudo/help.js +33 -0
  102. package/dist/profileAuthorCommand.js +3 -7
  103. package/dist/profileCommand.js +3 -7
  104. package/dist/projetoCarregar.js +35 -17
  105. package/dist/projetoCatalogo.d.ts +1 -0
  106. package/dist/projetoCatalogo.js +64 -25
  107. package/dist/projetoOrigens.d.ts +2 -0
  108. package/dist/projetoOrigens.js +65 -9
  109. package/dist/projetoTipos.d.ts +1 -0
  110. package/dist/resultadoCli.d.ts +20 -0
  111. package/dist/resultadoCli.js +57 -0
  112. package/dist/saidaCli.d.ts +35 -0
  113. package/dist/saidaCli.js +118 -0
  114. package/dist/sistemasInterativos/acceptanceEvidence.d.ts +22 -0
  115. package/dist/sistemasInterativos/acceptanceEvidence.js +345 -0
  116. package/dist/sistemasInterativos/engineObservation.d.ts +12 -0
  117. package/dist/sistemasInterativos/engineObservation.js +438 -0
  118. package/dist/sistemasInterativos/jobOrchestration.d.ts +2 -0
  119. package/dist/sistemasInterativos/jobOrchestration.js +204 -0
  120. package/dist/sistemasInterativos/operationPrimitives.d.ts +21 -0
  121. package/dist/sistemasInterativos/operationPrimitives.js +194 -0
  122. package/dist/sistemasInterativos/operations.d.ts +4 -39
  123. package/dist/sistemasInterativos/operations.js +5 -1164
  124. package/dist/skillCommand.d.ts +5 -0
  125. package/dist/skillCommand.js +88 -0
  126. package/docs/README.md +34 -30
  127. package/docs/ai-integration.md +25 -12
  128. package/docs/ai-onboarding.md +37 -18
  129. package/docs/ai-workflow.md +9 -7
  130. package/docs/cli.md +125 -7
  131. package/docs/commands.md +41 -20
  132. package/docs/deploy.md +21 -8
  133. package/docs/descoberta-capacidades.md +106 -106
  134. package/docs/documentation.md +49 -39
  135. package/docs/drift-cache.md +108 -0
  136. package/docs/getting-started.md +43 -18
  137. package/docs/pipeline-conteudo.md +246 -246
  138. package/docs/profiles.md +54 -54
  139. package/docs/repositories.md +19 -2
  140. package/docs/rollback.md +15 -8
  141. package/docs/security.md +25 -3
  142. package/docs/sistemas-interativos.md +379 -374
  143. package/docs/testing.md +139 -40
  144. package/exemplos/pipeline-conteudo/README.md +44 -44
  145. package/exemplos/pipeline-conteudo/alvos.json +23 -23
  146. package/exemplos/pipeline-conteudo/definicao.json +136 -136
  147. package/exemplos/profile_simulation.sema +211 -211
  148. package/exemplos/sistemas-interativos/README.md +100 -100
  149. package/exemplos/sistemas-interativos/advanced/acceptance-context-evaluate-valid.json +5 -5
  150. package/exemplos/sistemas-interativos/advanced/acceptance-lock-valid.json +16 -16
  151. package/exemplos/sistemas-interativos/advanced/asset-provenance-valid.json +32 -32
  152. package/exemplos/sistemas-interativos/advanced/autonomy-repair-valid.json +93 -93
  153. package/exemplos/sistemas-interativos/advanced/control-run-definition-valid.json +78 -78
  154. package/exemplos/sistemas-interativos/advanced/control-run-valid.json +27 -27
  155. package/exemplos/sistemas-interativos/advanced/distributed-workers-valid.json +79 -79
  156. package/exemplos/sistemas-interativos/advanced/editor-state-valid.json +42 -42
  157. package/exemplos/sistemas-interativos/advanced/engine-snapshot-after-valid.json +32 -32
  158. package/exemplos/sistemas-interativos/advanced/engine-snapshot-before-valid.json +23 -23
  159. package/exemplos/sistemas-interativos/advanced/job-orchestration-valid.json +39 -39
  160. package/exemplos/sistemas-interativos/advanced/multimodal-evidence-valid.json +46 -46
  161. package/exemplos/sistemas-interativos/advanced/multiplayer-authority-valid.json +39 -39
  162. package/exemplos/sistemas-interativos/advanced/playtest-fuzz-valid.json +37 -37
  163. package/exemplos/sistemas-interativos/advanced/portability-valid.json +104 -104
  164. package/exemplos/sistemas-interativos/advanced/temporal-evidence-valid.json +27 -27
  165. package/exemplos/sistemas-interativos/advanced/temporal-valid.json +118 -118
  166. package/exemplos/sistemas-interativos/experience-ir-valid.json +459 -459
  167. package/exemplos/sistemas-interativos/game-2d.json +83 -83
  168. package/exemplos/sistemas-interativos/game-3d-human.json +81 -81
  169. package/exemplos/sistemas-interativos/game-pixel-16-bit.json +97 -97
  170. package/exemplos/sistemas-interativos/game-pixel-8-bit.json +94 -94
  171. package/exemplos/sistemas-interativos/game-xr-human.json +80 -80
  172. package/exemplos/sistemas-interativos/hybrid-2-5d.json +108 -108
  173. package/exemplos/sistemas-interativos/protocol-mutating-rollback-valid.json +75 -75
  174. package/exemplos/sistemas-interativos/protocol-read-only-valid.json +58 -58
  175. package/exemplos/sistemas-interativos/simulation-2d-controlled.json +97 -97
  176. package/exemplos/sistemas-interativos/simulation-3d-calibrated-autonomous.json +141 -141
  177. package/exemplos/sistemas-interativos/simulation-headless-autonomous-batch.json +112 -112
  178. package/exemplos/sistemas-interativos/simulation-pixel-16-bit.json +103 -103
  179. package/exemplos/sistemas-interativos/simulation-text-controlled.json +95 -95
  180. package/node_modules/@sema/gerador-cpp/package.json +1 -1
  181. package/node_modules/@sema/gerador-dotnet/package.json +1 -1
  182. package/node_modules/@sema/gerador-lua/dist/index.js +51 -51
  183. package/node_modules/@sema/gerador-php/dist/index.js +113 -113
  184. package/node_modules/@sema/nucleo/dist/semantico/analisador.d.ts +1 -0
  185. package/node_modules/@sema/nucleo/dist/semantico/analisador.js +1 -0
  186. package/package.json +9 -4
  187. package/scripts/postinstall.mjs +148 -0
  188. package/skills/sema/SKILL.md +199 -0
  189. package/skills/sema/agents/openai.yaml +4 -0
  190. package/dist/driftCache.d.ts +0 -49
  191. package/dist/driftCache.js +0 -311
  192. package/dist/driftCacheIncremental.d.ts +0 -98
  193. package/dist/driftCacheIncremental.js +0 -596
  194. package/dist/driftCatalogoPersistente.d.ts +0 -8
  195. package/dist/driftCatalogoPersistente.js +0 -77
  196. package/node_modules/@sema/gerador-cpp/dist/index.js.map +0 -1
  197. package/node_modules/@sema/gerador-css/dist/index.js.map +0 -1
  198. package/node_modules/@sema/gerador-css/dist/index.part01.js.map +0 -1
  199. package/node_modules/@sema/gerador-css/dist/index.part02.js.map +0 -1
  200. package/node_modules/@sema/gerador-dart/dist/index.js.map +0 -1
  201. package/node_modules/@sema/gerador-dotnet/dist/index.js.map +0 -1
  202. package/node_modules/@sema/gerador-html/dist/index.js.map +0 -1
  203. package/node_modules/@sema/gerador-javascript/dist/index.js.map +0 -1
  204. package/node_modules/@sema/gerador-lua/dist/index.js.map +0 -1
  205. package/node_modules/@sema/gerador-php/dist/index.js.map +0 -1
  206. package/node_modules/@sema/gerador-python/dist/index.js.map +0 -1
  207. package/node_modules/@sema/gerador-python/dist/index.part01.js.map +0 -1
  208. package/node_modules/@sema/gerador-python/dist/index.part02.js.map +0 -1
  209. package/node_modules/@sema/gerador-typescript/dist/index.js.map +0 -1
  210. package/node_modules/@sema/gerador-typescript/dist/index.part01.js.map +0 -1
  211. package/node_modules/@sema/gerador-typescript/dist/index.part02.js.map +0 -1
  212. package/node_modules/@sema/gerador-typescript/dist/index.part03.js.map +0 -1
  213. package/node_modules/@sema/nucleo/dist/ast/tipos.js.map +0 -1
  214. package/node_modules/@sema/nucleo/dist/diagnosticos/index.js.map +0 -1
  215. package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js.map +0 -1
  216. package/node_modules/@sema/nucleo/dist/diagnosticos/snippets.js.map +0 -1
  217. package/node_modules/@sema/nucleo/dist/formatador/index.js.map +0 -1
  218. package/node_modules/@sema/nucleo/dist/formatador/index.part01.js.map +0 -1
  219. package/node_modules/@sema/nucleo/dist/formatador/index.part02.js.map +0 -1
  220. package/node_modules/@sema/nucleo/dist/index.js.map +0 -1
  221. package/node_modules/@sema/nucleo/dist/ir/conversor.js.map +0 -1
  222. package/node_modules/@sema/nucleo/dist/ir/conversor.part01.js.map +0 -1
  223. package/node_modules/@sema/nucleo/dist/ir/conversor.part02.js.map +0 -1
  224. package/node_modules/@sema/nucleo/dist/ir/conversor.part03.js.map +0 -1
  225. package/node_modules/@sema/nucleo/dist/ir/modelos.js.map +0 -1
  226. package/node_modules/@sema/nucleo/dist/lexer/lexer.js.map +0 -1
  227. package/node_modules/@sema/nucleo/dist/lexer/tokens.js.map +0 -1
  228. package/node_modules/@sema/nucleo/dist/parser/parser.declaracoes.js.map +0 -1
  229. package/node_modules/@sema/nucleo/dist/parser/parser.js.map +0 -1
  230. package/node_modules/@sema/nucleo/dist/parser/parser.modulo.js.map +0 -1
  231. package/node_modules/@sema/nucleo/dist/parser/parser.part01.js.map +0 -1
  232. package/node_modules/@sema/nucleo/dist/parser/parser.part02.js.map +0 -1
  233. package/node_modules/@sema/nucleo/dist/parser/parser.part03.js.map +0 -1
  234. package/node_modules/@sema/nucleo/dist/persistencia/contratos.js.map +0 -1
  235. package/node_modules/@sema/nucleo/dist/semantico/analisador.js.map +0 -1
  236. package/node_modules/@sema/nucleo/dist/semantico/analisador.part01.js.map +0 -1
  237. package/node_modules/@sema/nucleo/dist/semantico/analisador.part02.js.map +0 -1
  238. package/node_modules/@sema/nucleo/dist/semantico/analisador.part03.js.map +0 -1
  239. package/node_modules/@sema/nucleo/dist/semantico/analisador.part04.js.map +0 -1
  240. package/node_modules/@sema/nucleo/dist/semantico/analisador.part05.js.map +0 -1
  241. package/node_modules/@sema/nucleo/dist/semantico/analisador.part06.js.map +0 -1
  242. package/node_modules/@sema/nucleo/dist/semantico/analisador.part07.js.map +0 -1
  243. package/node_modules/@sema/nucleo/dist/semantico/analisador.part08.js.map +0 -1
  244. package/node_modules/@sema/nucleo/dist/semantico/estruturas.js.map +0 -1
  245. package/node_modules/@sema/nucleo/dist/semantico/estruturas.part01.js.map +0 -1
  246. package/node_modules/@sema/nucleo/dist/semantico/estruturas.part02.js.map +0 -1
  247. package/node_modules/@sema/nucleo/dist/semantico/orcamentoSemantico.js.map +0 -1
  248. package/node_modules/@sema/nucleo/dist/semantico/seguranca.js.map +0 -1
  249. package/node_modules/@sema/nucleo/dist/util/arquivos.js.map +0 -1
  250. package/node_modules/@sema/padroes/dist/index.js.map +0 -1
@@ -1,459 +1,459 @@
1
- {
2
- "schemaVersion": "sema.experience-ir/v1",
3
- "revision": "1.0.0",
4
- "coordinateSystem": {
5
- "units": {
6
- "length": "METER",
7
- "mass": "KILOGRAM",
8
- "time": "SECOND",
9
- "angle": "RADIAN"
10
- },
11
- "axes": {
12
- "handedness": "RIGHT_HANDED",
13
- "up": "Y",
14
- "forward": "NEGATIVE_Z"
15
- },
16
- "worldScaleMetersPerUnit": 1
17
- },
18
- "serialization": {
19
- "json": {
20
- "version": "1",
21
- "mediaType": "application/vnd.sema.experience-ir+json",
22
- "canonicalization": "SEMA_CANONICAL_JSON_V1"
23
- },
24
- "cbor": {
25
- "mode": "EXTERNAL_CODEC_REQUIRED",
26
- "mediaType": "application/cbor",
27
- "encoded": false,
28
- "deterministicEncodingRequired": true,
29
- "codec": null
30
- }
31
- },
32
- "project": {
33
- "semanticId": "project.demo",
34
- "kind": "PROJECT",
35
- "references": [
36
- "scene.main",
37
- "world.main"
38
- ],
39
- "name": "Experience IR Demo",
40
- "worldIds": [
41
- "world.main"
42
- ],
43
- "defaultSceneId": "scene.main"
44
- },
45
- "worlds": [
46
- {
47
- "semanticId": "world.main",
48
- "kind": "WORLD",
49
- "references": [
50
- "scene.main"
51
- ],
52
- "name": "Main World",
53
- "sceneIds": [
54
- "scene.main"
55
- ]
56
- }
57
- ],
58
- "scenes": [
59
- {
60
- "semanticId": "scene.main",
61
- "kind": "SCENE",
62
- "references": [
63
- "camera.main",
64
- "entity.player",
65
- "light.sun"
66
- ],
67
- "name": "Main Scene",
68
- "semanticRole": "LEVEL",
69
- "entityIds": [
70
- "entity.player"
71
- ],
72
- "cameraId": "camera.main",
73
- "lightIds": [
74
- "light.sun"
75
- ]
76
- }
77
- ],
78
- "entities": [
79
- {
80
- "semanticId": "entity.player",
81
- "kind": "ENTITY",
82
- "references": [
83
- "component.player_state",
84
- "transform.origin"
85
- ],
86
- "name": "Player",
87
- "componentIds": [
88
- "component.player_state"
89
- ],
90
- "transformId": "transform.origin"
91
- }
92
- ],
93
- "components": [
94
- {
95
- "semanticId": "component.player_state",
96
- "kind": "COMPONENT",
97
- "references": [
98
- "entity.player"
99
- ],
100
- "ownerEntityId": "entity.player",
101
- "componentType": "player-state",
102
- "properties": {
103
- "health": 100,
104
- "active": true
105
- }
106
- }
107
- ],
108
- "transforms": [
109
- {
110
- "semanticId": "transform.origin",
111
- "kind": "TRANSFORM",
112
- "references": [],
113
- "semanticRole": "PIVOT",
114
- "translation": [0, 0, 0],
115
- "rotation": [0, 0, 0, 1],
116
- "scale": [1, 1, 1]
117
- }
118
- ],
119
- "cameras": [
120
- {
121
- "semanticId": "camera.main",
122
- "kind": "CAMERA",
123
- "references": [
124
- "transform.origin"
125
- ],
126
- "transformId": "transform.origin",
127
- "projection": "PERSPECTIVE",
128
- "near": 0.1,
129
- "far": 1000,
130
- "fieldOfViewRadians": 1.0471975512
131
- }
132
- ],
133
- "lights": [
134
- {
135
- "semanticId": "light.sun",
136
- "kind": "LIGHT",
137
- "references": [
138
- "transform.origin"
139
- ],
140
- "transformId": "transform.origin",
141
- "lightType": "DIRECTIONAL",
142
- "color": "#fff4dd",
143
- "intensity": {
144
- "value": 110000,
145
- "unit": "LUX"
146
- }
147
- }
148
- ],
149
- "materials": [
150
- {
151
- "semanticId": "material.player",
152
- "kind": "MATERIAL",
153
- "references": [
154
- "texture.player_albedo"
155
- ],
156
- "shadingModel": "physically-based",
157
- "textureIds": [
158
- "texture.player_albedo"
159
- ],
160
- "parameters": {
161
- "roughness": 0.6,
162
- "metallic": 0
163
- }
164
- }
165
- ],
166
- "textures": [
167
- {
168
- "semanticId": "texture.player_albedo",
169
- "kind": "TEXTURE",
170
- "references": [],
171
- "usage": "ALBEDO",
172
- "colorSpace": "SRGB",
173
- "provenance": {
174
- "source": {
175
- "kind": "ORIGINAL",
176
- "uri": "asset://textures/player-albedo.png"
177
- },
178
- "license": {
179
- "name": "CC0-1.0",
180
- "spdxId": "CC0-1.0",
181
- "attributionRequired": false
182
- },
183
- "hash": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
184
- "derivations": []
185
- }
186
- }
187
- ],
188
- "audio": [
189
- {
190
- "semanticId": "audio.ambience",
191
- "kind": "AUDIO",
192
- "references": [
193
- "entity.player"
194
- ],
195
- "ownerEntityId": "entity.player",
196
- "spatial": true,
197
- "loop": true,
198
- "provenance": {
199
- "source": {
200
- "kind": "VENDOR",
201
- "uri": "asset://audio/ambience.ogg"
202
- },
203
- "license": {
204
- "name": "Licensed asset pack",
205
- "uri": "license://asset-pack/2026-07",
206
- "attributionRequired": true
207
- },
208
- "hash": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
209
- "derivations": []
210
- }
211
- }
212
- ],
213
- "physics": [
214
- {
215
- "semanticId": "physics.player_body",
216
- "kind": "PHYSICS",
217
- "references": [
218
- "entity.player"
219
- ],
220
- "ownerEntityId": "entity.player",
221
- "bodyType": "DYNAMIC",
222
- "massKilograms": 80,
223
- "collider": {
224
- "shape": "capsule",
225
- "radiusMeters": 0.4,
226
- "heightMeters": 1.8
227
- },
228
- "colliders": [
229
- {
230
- "semanticRole": "COLLIDER",
231
- "colliderId": "collider.player_body",
232
- "shape": "CAPSULE",
233
- "trigger": false,
234
- "radiusMeters": 0.4,
235
- "heightMeters": 1.8
236
- }
237
- ]
238
- }
239
- ],
240
- "constraints": [
241
- {
242
- "semanticId": "constraint.player_ground",
243
- "kind": "CONSTRAINT",
244
- "references": [
245
- "entity.player",
246
- "physics.player_body"
247
- ],
248
- "constraintType": "ground-contact",
249
- "sourceId": "entity.player",
250
- "targetId": "physics.player_body",
251
- "parameters": {
252
- "maxSlopeRadians": 0.7853981634
253
- }
254
- }
255
- ],
256
- "animations": [
257
- {
258
- "semanticId": "animation.player_idle",
259
- "kind": "ANIMATION",
260
- "references": [
261
- "entity.player"
262
- ],
263
- "targetIds": [
264
- "entity.player"
265
- ],
266
- "durationSeconds": 2,
267
- "provenance": {
268
- "source": {
269
- "kind": "DERIVED",
270
- "uri": "asset://animation/player-idle.glb"
271
- },
272
- "license": {
273
- "name": "Project-owned",
274
- "attributionRequired": false
275
- },
276
- "hash": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
277
- "derivations": [
278
- {
279
- "operation": "retarget",
280
- "tool": "external-animation-tool",
281
- "toolVersion": "1.0.0",
282
- "inputHashes": [
283
- "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd"
284
- ],
285
- "parametersDigest": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
286
- "outputHash": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
287
- }
288
- ]
289
- }
290
- }
291
- ],
292
- "vfx": [
293
- {
294
- "semanticId": "vfx.player_spawn",
295
- "kind": "VFX",
296
- "references": [
297
- "entity.player",
298
- "material.player"
299
- ],
300
- "ownerEntityId": "entity.player",
301
- "materialIds": [
302
- "material.player"
303
- ],
304
- "emitters": [
305
- {
306
- "semanticRole": "EMITTER",
307
- "emitterId": "emitter.player_spawn",
308
- "ratePerSecond": 8,
309
- "maxParticles": 128,
310
- "enabled": true
311
- }
312
- ],
313
- "provenance": {
314
- "source": {
315
- "kind": "GENERATED",
316
- "uri": "asset://vfx/player-spawn.json"
317
- },
318
- "license": {
319
- "name": "Project-owned",
320
- "attributionRequired": false
321
- },
322
- "hash": "sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
323
- "derivations": [
324
- {
325
- "operation": "generate",
326
- "tool": "external-vfx-tool",
327
- "inputHashes": [],
328
- "parametersDigest": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
329
- "outputHash": "sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
330
- }
331
- ]
332
- }
333
- }
334
- ],
335
- "timelines": [
336
- {
337
- "semanticId": "timeline.intro",
338
- "kind": "TIMELINE",
339
- "references": [
340
- "animation.player_idle"
341
- ],
342
- "durationSeconds": 2,
343
- "tracks": [
344
- {
345
- "semanticRole": "TRACK",
346
- "trackId": "intro-player-idle",
347
- "trackType": "ANIMATION",
348
- "targetId": "animation.player_idle",
349
- "clips": [
350
- {
351
- "semanticRole": "CLIP",
352
- "clipId": "clip.player_idle",
353
- "targetId": "animation.player_idle",
354
- "startSeconds": 0,
355
- "endSeconds": 2
356
- }
357
- ],
358
- "events": [
359
- {
360
- "semanticRole": "EVENT",
361
- "eventId": "event.intro_started",
362
- "eventType": "INTRO_STARTED",
363
- "atSeconds": 0,
364
- "payload": {
365
- "phase": "intro"
366
- }
367
- }
368
- ],
369
- "keyframes": [
370
- {
371
- "atSeconds": 0,
372
- "value": {
373
- "weight": 1
374
- }
375
- },
376
- {
377
- "atSeconds": 2,
378
- "value": {
379
- "weight": 0
380
- }
381
- }
382
- ]
383
- }
384
- ]
385
- }
386
- ],
387
- "inputs": [
388
- {
389
- "semanticId": "input.player",
390
- "kind": "INPUT",
391
- "references": [
392
- "entity.player"
393
- ],
394
- "contextEntityId": "entity.player",
395
- "actions": [
396
- {
397
- "actionId": "move",
398
- "bindings": [
399
- "keyboard:wasd",
400
- "gamepad:left-stick"
401
- ]
402
- }
403
- ]
404
- }
405
- ],
406
- "saves": [
407
- {
408
- "semanticId": "save.main",
409
- "kind": "SAVE",
410
- "references": [
411
- "entity.player",
412
- "physics.player_body"
413
- ],
414
- "semanticRole": "GAME_STATE",
415
- "strategy": "HYBRID",
416
- "schemaRevision": "1",
417
- "stateSemanticIds": [
418
- "entity.player",
419
- "physics.player_body"
420
- ]
421
- }
422
- ],
423
- "networks": [
424
- {
425
- "semanticId": "network.local",
426
- "kind": "NETWORK",
427
- "references": [],
428
- "mode": "OFFLINE",
429
- "authority": "NONE",
430
- "replicatedSemanticIds": [],
431
- "tickRateHz": 0
432
- }
433
- ],
434
- "builds": [
435
- {
436
- "semanticId": "build.web",
437
- "kind": "BUILD",
438
- "references": [
439
- "animation.player_idle",
440
- "audio.ambience",
441
- "scene.main",
442
- "texture.player_albedo",
443
- "vfx.player_spawn"
444
- ],
445
- "target": "web",
446
- "entrySceneId": "scene.main",
447
- "assetIds": [
448
- "animation.player_idle",
449
- "audio.ambience",
450
- "texture.player_albedo",
451
- "vfx.player_spawn"
452
- ],
453
- "options": {
454
- "optimization": "balanced",
455
- "sourceMaps": false
456
- }
457
- }
458
- ]
459
- }
1
+ {
2
+ "schemaVersion": "sema.experience-ir/v1",
3
+ "revision": "1.0.0",
4
+ "coordinateSystem": {
5
+ "units": {
6
+ "length": "METER",
7
+ "mass": "KILOGRAM",
8
+ "time": "SECOND",
9
+ "angle": "RADIAN"
10
+ },
11
+ "axes": {
12
+ "handedness": "RIGHT_HANDED",
13
+ "up": "Y",
14
+ "forward": "NEGATIVE_Z"
15
+ },
16
+ "worldScaleMetersPerUnit": 1
17
+ },
18
+ "serialization": {
19
+ "json": {
20
+ "version": "1",
21
+ "mediaType": "application/vnd.sema.experience-ir+json",
22
+ "canonicalization": "SEMA_CANONICAL_JSON_V1"
23
+ },
24
+ "cbor": {
25
+ "mode": "EXTERNAL_CODEC_REQUIRED",
26
+ "mediaType": "application/cbor",
27
+ "encoded": false,
28
+ "deterministicEncodingRequired": true,
29
+ "codec": null
30
+ }
31
+ },
32
+ "project": {
33
+ "semanticId": "project.demo",
34
+ "kind": "PROJECT",
35
+ "references": [
36
+ "scene.main",
37
+ "world.main"
38
+ ],
39
+ "name": "Experience IR Demo",
40
+ "worldIds": [
41
+ "world.main"
42
+ ],
43
+ "defaultSceneId": "scene.main"
44
+ },
45
+ "worlds": [
46
+ {
47
+ "semanticId": "world.main",
48
+ "kind": "WORLD",
49
+ "references": [
50
+ "scene.main"
51
+ ],
52
+ "name": "Main World",
53
+ "sceneIds": [
54
+ "scene.main"
55
+ ]
56
+ }
57
+ ],
58
+ "scenes": [
59
+ {
60
+ "semanticId": "scene.main",
61
+ "kind": "SCENE",
62
+ "references": [
63
+ "camera.main",
64
+ "entity.player",
65
+ "light.sun"
66
+ ],
67
+ "name": "Main Scene",
68
+ "semanticRole": "LEVEL",
69
+ "entityIds": [
70
+ "entity.player"
71
+ ],
72
+ "cameraId": "camera.main",
73
+ "lightIds": [
74
+ "light.sun"
75
+ ]
76
+ }
77
+ ],
78
+ "entities": [
79
+ {
80
+ "semanticId": "entity.player",
81
+ "kind": "ENTITY",
82
+ "references": [
83
+ "component.player_state",
84
+ "transform.origin"
85
+ ],
86
+ "name": "Player",
87
+ "componentIds": [
88
+ "component.player_state"
89
+ ],
90
+ "transformId": "transform.origin"
91
+ }
92
+ ],
93
+ "components": [
94
+ {
95
+ "semanticId": "component.player_state",
96
+ "kind": "COMPONENT",
97
+ "references": [
98
+ "entity.player"
99
+ ],
100
+ "ownerEntityId": "entity.player",
101
+ "componentType": "player-state",
102
+ "properties": {
103
+ "health": 100,
104
+ "active": true
105
+ }
106
+ }
107
+ ],
108
+ "transforms": [
109
+ {
110
+ "semanticId": "transform.origin",
111
+ "kind": "TRANSFORM",
112
+ "references": [],
113
+ "semanticRole": "PIVOT",
114
+ "translation": [0, 0, 0],
115
+ "rotation": [0, 0, 0, 1],
116
+ "scale": [1, 1, 1]
117
+ }
118
+ ],
119
+ "cameras": [
120
+ {
121
+ "semanticId": "camera.main",
122
+ "kind": "CAMERA",
123
+ "references": [
124
+ "transform.origin"
125
+ ],
126
+ "transformId": "transform.origin",
127
+ "projection": "PERSPECTIVE",
128
+ "near": 0.1,
129
+ "far": 1000,
130
+ "fieldOfViewRadians": 1.0471975512
131
+ }
132
+ ],
133
+ "lights": [
134
+ {
135
+ "semanticId": "light.sun",
136
+ "kind": "LIGHT",
137
+ "references": [
138
+ "transform.origin"
139
+ ],
140
+ "transformId": "transform.origin",
141
+ "lightType": "DIRECTIONAL",
142
+ "color": "#fff4dd",
143
+ "intensity": {
144
+ "value": 110000,
145
+ "unit": "LUX"
146
+ }
147
+ }
148
+ ],
149
+ "materials": [
150
+ {
151
+ "semanticId": "material.player",
152
+ "kind": "MATERIAL",
153
+ "references": [
154
+ "texture.player_albedo"
155
+ ],
156
+ "shadingModel": "physically-based",
157
+ "textureIds": [
158
+ "texture.player_albedo"
159
+ ],
160
+ "parameters": {
161
+ "roughness": 0.6,
162
+ "metallic": 0
163
+ }
164
+ }
165
+ ],
166
+ "textures": [
167
+ {
168
+ "semanticId": "texture.player_albedo",
169
+ "kind": "TEXTURE",
170
+ "references": [],
171
+ "usage": "ALBEDO",
172
+ "colorSpace": "SRGB",
173
+ "provenance": {
174
+ "source": {
175
+ "kind": "ORIGINAL",
176
+ "uri": "asset://textures/player-albedo.png"
177
+ },
178
+ "license": {
179
+ "name": "CC0-1.0",
180
+ "spdxId": "CC0-1.0",
181
+ "attributionRequired": false
182
+ },
183
+ "hash": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
184
+ "derivations": []
185
+ }
186
+ }
187
+ ],
188
+ "audio": [
189
+ {
190
+ "semanticId": "audio.ambience",
191
+ "kind": "AUDIO",
192
+ "references": [
193
+ "entity.player"
194
+ ],
195
+ "ownerEntityId": "entity.player",
196
+ "spatial": true,
197
+ "loop": true,
198
+ "provenance": {
199
+ "source": {
200
+ "kind": "VENDOR",
201
+ "uri": "asset://audio/ambience.ogg"
202
+ },
203
+ "license": {
204
+ "name": "Licensed asset pack",
205
+ "uri": "license://asset-pack/2026-07",
206
+ "attributionRequired": true
207
+ },
208
+ "hash": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
209
+ "derivations": []
210
+ }
211
+ }
212
+ ],
213
+ "physics": [
214
+ {
215
+ "semanticId": "physics.player_body",
216
+ "kind": "PHYSICS",
217
+ "references": [
218
+ "entity.player"
219
+ ],
220
+ "ownerEntityId": "entity.player",
221
+ "bodyType": "DYNAMIC",
222
+ "massKilograms": 80,
223
+ "collider": {
224
+ "shape": "capsule",
225
+ "radiusMeters": 0.4,
226
+ "heightMeters": 1.8
227
+ },
228
+ "colliders": [
229
+ {
230
+ "semanticRole": "COLLIDER",
231
+ "colliderId": "collider.player_body",
232
+ "shape": "CAPSULE",
233
+ "trigger": false,
234
+ "radiusMeters": 0.4,
235
+ "heightMeters": 1.8
236
+ }
237
+ ]
238
+ }
239
+ ],
240
+ "constraints": [
241
+ {
242
+ "semanticId": "constraint.player_ground",
243
+ "kind": "CONSTRAINT",
244
+ "references": [
245
+ "entity.player",
246
+ "physics.player_body"
247
+ ],
248
+ "constraintType": "ground-contact",
249
+ "sourceId": "entity.player",
250
+ "targetId": "physics.player_body",
251
+ "parameters": {
252
+ "maxSlopeRadians": 0.7853981634
253
+ }
254
+ }
255
+ ],
256
+ "animations": [
257
+ {
258
+ "semanticId": "animation.player_idle",
259
+ "kind": "ANIMATION",
260
+ "references": [
261
+ "entity.player"
262
+ ],
263
+ "targetIds": [
264
+ "entity.player"
265
+ ],
266
+ "durationSeconds": 2,
267
+ "provenance": {
268
+ "source": {
269
+ "kind": "DERIVED",
270
+ "uri": "asset://animation/player-idle.glb"
271
+ },
272
+ "license": {
273
+ "name": "Project-owned",
274
+ "attributionRequired": false
275
+ },
276
+ "hash": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
277
+ "derivations": [
278
+ {
279
+ "operation": "retarget",
280
+ "tool": "external-animation-tool",
281
+ "toolVersion": "1.0.0",
282
+ "inputHashes": [
283
+ "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd"
284
+ ],
285
+ "parametersDigest": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
286
+ "outputHash": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
287
+ }
288
+ ]
289
+ }
290
+ }
291
+ ],
292
+ "vfx": [
293
+ {
294
+ "semanticId": "vfx.player_spawn",
295
+ "kind": "VFX",
296
+ "references": [
297
+ "entity.player",
298
+ "material.player"
299
+ ],
300
+ "ownerEntityId": "entity.player",
301
+ "materialIds": [
302
+ "material.player"
303
+ ],
304
+ "emitters": [
305
+ {
306
+ "semanticRole": "EMITTER",
307
+ "emitterId": "emitter.player_spawn",
308
+ "ratePerSecond": 8,
309
+ "maxParticles": 128,
310
+ "enabled": true
311
+ }
312
+ ],
313
+ "provenance": {
314
+ "source": {
315
+ "kind": "GENERATED",
316
+ "uri": "asset://vfx/player-spawn.json"
317
+ },
318
+ "license": {
319
+ "name": "Project-owned",
320
+ "attributionRequired": false
321
+ },
322
+ "hash": "sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
323
+ "derivations": [
324
+ {
325
+ "operation": "generate",
326
+ "tool": "external-vfx-tool",
327
+ "inputHashes": [],
328
+ "parametersDigest": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
329
+ "outputHash": "sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
330
+ }
331
+ ]
332
+ }
333
+ }
334
+ ],
335
+ "timelines": [
336
+ {
337
+ "semanticId": "timeline.intro",
338
+ "kind": "TIMELINE",
339
+ "references": [
340
+ "animation.player_idle"
341
+ ],
342
+ "durationSeconds": 2,
343
+ "tracks": [
344
+ {
345
+ "semanticRole": "TRACK",
346
+ "trackId": "intro-player-idle",
347
+ "trackType": "ANIMATION",
348
+ "targetId": "animation.player_idle",
349
+ "clips": [
350
+ {
351
+ "semanticRole": "CLIP",
352
+ "clipId": "clip.player_idle",
353
+ "targetId": "animation.player_idle",
354
+ "startSeconds": 0,
355
+ "endSeconds": 2
356
+ }
357
+ ],
358
+ "events": [
359
+ {
360
+ "semanticRole": "EVENT",
361
+ "eventId": "event.intro_started",
362
+ "eventType": "INTRO_STARTED",
363
+ "atSeconds": 0,
364
+ "payload": {
365
+ "phase": "intro"
366
+ }
367
+ }
368
+ ],
369
+ "keyframes": [
370
+ {
371
+ "atSeconds": 0,
372
+ "value": {
373
+ "weight": 1
374
+ }
375
+ },
376
+ {
377
+ "atSeconds": 2,
378
+ "value": {
379
+ "weight": 0
380
+ }
381
+ }
382
+ ]
383
+ }
384
+ ]
385
+ }
386
+ ],
387
+ "inputs": [
388
+ {
389
+ "semanticId": "input.player",
390
+ "kind": "INPUT",
391
+ "references": [
392
+ "entity.player"
393
+ ],
394
+ "contextEntityId": "entity.player",
395
+ "actions": [
396
+ {
397
+ "actionId": "move",
398
+ "bindings": [
399
+ "keyboard:wasd",
400
+ "gamepad:left-stick"
401
+ ]
402
+ }
403
+ ]
404
+ }
405
+ ],
406
+ "saves": [
407
+ {
408
+ "semanticId": "save.main",
409
+ "kind": "SAVE",
410
+ "references": [
411
+ "entity.player",
412
+ "physics.player_body"
413
+ ],
414
+ "semanticRole": "GAME_STATE",
415
+ "strategy": "HYBRID",
416
+ "schemaRevision": "1",
417
+ "stateSemanticIds": [
418
+ "entity.player",
419
+ "physics.player_body"
420
+ ]
421
+ }
422
+ ],
423
+ "networks": [
424
+ {
425
+ "semanticId": "network.local",
426
+ "kind": "NETWORK",
427
+ "references": [],
428
+ "mode": "OFFLINE",
429
+ "authority": "NONE",
430
+ "replicatedSemanticIds": [],
431
+ "tickRateHz": 0
432
+ }
433
+ ],
434
+ "builds": [
435
+ {
436
+ "semanticId": "build.web",
437
+ "kind": "BUILD",
438
+ "references": [
439
+ "animation.player_idle",
440
+ "audio.ambience",
441
+ "scene.main",
442
+ "texture.player_albedo",
443
+ "vfx.player_spawn"
444
+ ],
445
+ "target": "web",
446
+ "entrySceneId": "scene.main",
447
+ "assetIds": [
448
+ "animation.player_idle",
449
+ "audio.ambience",
450
+ "texture.player_albedo",
451
+ "vfx.player_spawn"
452
+ ],
453
+ "options": {
454
+ "optimization": "balanced",
455
+ "sourceMaps": false
456
+ }
457
+ }
458
+ ]
459
+ }