@semacode/cli 2.1.0 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/README.md +107 -4
  2. package/dist/agentContext.d.ts +1 -1
  3. package/dist/agentContextPack.js +6 -1
  4. package/dist/agentContextTipos.d.ts +4 -2
  5. package/dist/agentContextTipos.js +7 -0
  6. package/dist/agentEntryPoints.js +70 -19
  7. package/dist/comandos.js +6 -0
  8. package/dist/discovery/catalog.d.ts +11 -0
  9. package/dist/discovery/catalog.js +521 -0
  10. package/dist/discovery/command.d.ts +11 -0
  11. package/dist/discovery/command.js +226 -0
  12. package/dist/discovery/index.d.ts +5 -0
  13. package/dist/discovery/index.js +8 -0
  14. package/dist/discovery/ranker.d.ts +3 -0
  15. package/dist/discovery/ranker.js +310 -0
  16. package/dist/discovery/redaction.d.ts +2 -0
  17. package/dist/discovery/redaction.js +21 -0
  18. package/dist/discovery/render.d.ts +2 -0
  19. package/dist/discovery/render.js +100 -0
  20. package/dist/discovery/types.d.ts +119 -0
  21. package/dist/discovery/types.js +13 -0
  22. package/dist/execucoesExternas.js +19 -5
  23. package/dist/exemplosOficiais.js +29 -8
  24. package/dist/iaPrompts.d.ts +1 -1
  25. package/dist/iaPrompts.js +3 -0
  26. package/dist/index.d.ts +3 -0
  27. package/dist/index.js +24 -5
  28. package/dist/index.part01.d.ts +1 -1
  29. package/dist/index.part01.js +47 -3
  30. package/dist/index.part06.js +3 -0
  31. package/dist/initTemplatesBase.js +3 -2
  32. package/dist/pipelineConteudo/adapters.d.ts +84 -0
  33. package/dist/pipelineConteudo/adapters.js +449 -0
  34. package/dist/pipelineConteudo/canonical.d.ts +18 -0
  35. package/dist/pipelineConteudo/canonical.js +107 -0
  36. package/dist/pipelineConteudo/command.d.ts +3 -0
  37. package/dist/pipelineConteudo/command.js +572 -0
  38. package/dist/pipelineConteudo/index.d.ts +9 -0
  39. package/dist/pipelineConteudo/index.js +12 -0
  40. package/dist/pipelineConteudo/ledger.d.ts +68 -0
  41. package/dist/pipelineConteudo/ledger.js +732 -0
  42. package/dist/pipelineConteudo/planner.d.ts +12 -0
  43. package/dist/pipelineConteudo/planner.js +366 -0
  44. package/dist/pipelineConteudo/projection.d.ts +16 -0
  45. package/dist/pipelineConteudo/projection.js +57 -0
  46. package/dist/pipelineConteudo/state.d.ts +23 -0
  47. package/dist/pipelineConteudo/state.js +615 -0
  48. package/dist/pipelineConteudo/trust.d.ts +17 -0
  49. package/dist/pipelineConteudo/trust.js +750 -0
  50. package/dist/pipelineConteudo/types.d.ts +331 -0
  51. package/dist/pipelineConteudo/types.js +4 -0
  52. package/dist/profileArtefatoValidadores.d.ts +3 -2
  53. package/dist/profileArtefatoValidadores.js +81 -0
  54. package/dist/profileAuthorTipos.d.ts +4 -3
  55. package/dist/profileCatalogo.d.ts +5 -5
  56. package/dist/profileCatalogo.js +30 -0
  57. package/dist/profileCommand.d.ts +8 -2
  58. package/dist/profileCommand.js +15 -5
  59. package/dist/profileRegras.d.ts +5 -5
  60. package/dist/profileRegras.js +13 -1
  61. package/dist/profileRulePacks.js +68 -0
  62. package/dist/sistemasInterativos/adapterProtocol.d.ts +3 -0
  63. package/dist/sistemasInterativos/adapterProtocol.js +240 -0
  64. package/dist/sistemasInterativos/advancedCatalog.d.ts +5 -0
  65. package/dist/sistemasInterativos/advancedCatalog.js +442 -0
  66. package/dist/sistemasInterativos/autonomy.d.ts +230 -0
  67. package/dist/sistemasInterativos/autonomy.js +753 -0
  68. package/dist/sistemasInterativos/canonical.d.ts +3 -0
  69. package/dist/sistemasInterativos/canonical.js +43 -0
  70. package/dist/sistemasInterativos/catalog.d.ts +116 -0
  71. package/dist/sistemasInterativos/catalog.js +543 -0
  72. package/dist/sistemasInterativos/command.d.ts +7 -0
  73. package/dist/sistemasInterativos/command.js +311 -0
  74. package/dist/sistemasInterativos/controlRun.d.ts +56 -0
  75. package/dist/sistemasInterativos/controlRun.js +391 -0
  76. package/dist/sistemasInterativos/evidence.d.ts +5 -0
  77. package/dist/sistemasInterativos/evidence.js +306 -0
  78. package/dist/sistemasInterativos/experienceIr.d.ts +12 -0
  79. package/dist/sistemasInterativos/experienceIr.js +895 -0
  80. package/dist/sistemasInterativos/experienceIrSemantics.d.ts +30 -0
  81. package/dist/sistemasInterativos/experienceIrSemantics.js +368 -0
  82. package/dist/sistemasInterativos/experienceIrTypes.d.ts +370 -0
  83. package/dist/sistemasInterativos/experienceIrTypes.js +5 -0
  84. package/dist/sistemasInterativos/extensionCommand.d.ts +391 -0
  85. package/dist/sistemasInterativos/extensionCommand.js +383 -0
  86. package/dist/sistemasInterativos/index.d.ts +19 -0
  87. package/dist/sistemasInterativos/index.js +22 -0
  88. package/dist/sistemasInterativos/operations.d.ts +40 -0
  89. package/dist/sistemasInterativos/operations.js +1167 -0
  90. package/dist/sistemasInterativos/operationsTypes.d.ts +297 -0
  91. package/dist/sistemasInterativos/operationsTypes.js +11 -0
  92. package/dist/sistemasInterativos/planner.d.ts +2 -0
  93. package/dist/sistemasInterativos/planner.js +159 -0
  94. package/dist/sistemasInterativos/portability.d.ts +164 -0
  95. package/dist/sistemasInterativos/portability.js +539 -0
  96. package/dist/sistemasInterativos/render.d.ts +3 -0
  97. package/dist/sistemasInterativos/render.js +179 -0
  98. package/dist/sistemasInterativos/temporal.d.ts +183 -0
  99. package/dist/sistemasInterativos/temporal.js +543 -0
  100. package/dist/sistemasInterativos/types.d.ts +215 -0
  101. package/dist/sistemasInterativos/types.js +4 -0
  102. package/dist/sistemasInterativos/validator.d.ts +2 -0
  103. package/dist/sistemasInterativos/validator.js +305 -0
  104. package/docs/README.md +9 -0
  105. package/docs/ai-integration.md +7 -1
  106. package/docs/ai-workflow.md +5 -4
  107. package/docs/commands.md +43 -1
  108. package/docs/descoberta-capacidades.md +106 -0
  109. package/docs/documentation.md +11 -2
  110. package/docs/pipeline-conteudo.md +246 -0
  111. package/docs/profiles.md +11 -2
  112. package/docs/sistemas-interativos.md +381 -0
  113. package/docs/testing.md +11 -2
  114. package/exemplos/pipeline-conteudo/README.md +44 -0
  115. package/exemplos/pipeline-conteudo/alvos.json +23 -0
  116. package/exemplos/pipeline-conteudo/definicao.json +136 -0
  117. package/exemplos/profile_simulation.sema +211 -0
  118. package/exemplos/sistemas-interativos/README.md +100 -0
  119. package/exemplos/sistemas-interativos/advanced/acceptance-context-evaluate-valid.json +5 -0
  120. package/exemplos/sistemas-interativos/advanced/acceptance-lock-valid.json +16 -0
  121. package/exemplos/sistemas-interativos/advanced/asset-provenance-valid.json +32 -0
  122. package/exemplos/sistemas-interativos/advanced/autonomy-repair-valid.json +93 -0
  123. package/exemplos/sistemas-interativos/advanced/control-run-definition-valid.json +78 -0
  124. package/exemplos/sistemas-interativos/advanced/control-run-valid.json +27 -0
  125. package/exemplos/sistemas-interativos/advanced/distributed-workers-valid.json +79 -0
  126. package/exemplos/sistemas-interativos/advanced/editor-state-valid.json +42 -0
  127. package/exemplos/sistemas-interativos/advanced/engine-snapshot-after-valid.json +32 -0
  128. package/exemplos/sistemas-interativos/advanced/engine-snapshot-before-valid.json +23 -0
  129. package/exemplos/sistemas-interativos/advanced/job-orchestration-valid.json +39 -0
  130. package/exemplos/sistemas-interativos/advanced/multimodal-evidence-valid.json +46 -0
  131. package/exemplos/sistemas-interativos/advanced/multiplayer-authority-valid.json +39 -0
  132. package/exemplos/sistemas-interativos/advanced/playtest-fuzz-valid.json +37 -0
  133. package/exemplos/sistemas-interativos/advanced/portability-valid.json +104 -0
  134. package/exemplos/sistemas-interativos/advanced/temporal-evidence-valid.json +27 -0
  135. package/exemplos/sistemas-interativos/advanced/temporal-valid.json +118 -0
  136. package/exemplos/sistemas-interativos/experience-ir-valid.json +459 -0
  137. package/exemplos/sistemas-interativos/game-2d.json +83 -0
  138. package/exemplos/sistemas-interativos/game-3d-human.json +81 -0
  139. package/exemplos/sistemas-interativos/game-pixel-16-bit.json +97 -0
  140. package/exemplos/sistemas-interativos/game-pixel-8-bit.json +94 -0
  141. package/exemplos/sistemas-interativos/game-xr-human.json +80 -0
  142. package/exemplos/sistemas-interativos/hybrid-2-5d.json +108 -0
  143. package/exemplos/sistemas-interativos/protocol-mutating-rollback-valid.json +75 -0
  144. package/exemplos/sistemas-interativos/protocol-read-only-valid.json +58 -0
  145. package/exemplos/sistemas-interativos/simulation-2d-controlled.json +97 -0
  146. package/exemplos/sistemas-interativos/simulation-3d-calibrated-autonomous.json +141 -0
  147. package/exemplos/sistemas-interativos/simulation-headless-autonomous-batch.json +112 -0
  148. package/exemplos/sistemas-interativos/simulation-pixel-16-bit.json +103 -0
  149. package/exemplos/sistemas-interativos/simulation-text-controlled.json +95 -0
  150. package/node_modules/@sema/gerador-lua/dist/index.js +78 -4
  151. package/node_modules/@sema/gerador-lua/dist/index.js.map +1 -1
  152. package/node_modules/@sema/gerador-php/dist/index.js +8 -0
  153. package/node_modules/@sema/gerador-php/dist/index.js.map +1 -1
  154. package/package.json +8 -1
@@ -0,0 +1,97 @@
1
+ {
2
+ "schemaVersion": "1.0",
3
+ "systemId": "example.game.pixel-16-bit",
4
+ "version": "1.0.0",
5
+ "kind": "GAME",
6
+ "spatialModel": "TWO_D",
7
+ "renderMode": "VISUAL",
8
+ "visualProfile": "PIXEL_16_BIT",
9
+ "fidelity": "STYLIZED",
10
+ "controlModes": [
11
+ "HUMAN"
12
+ ],
13
+ "timeModel": "FIXED_STEP",
14
+ "determinism": "SEEDED",
15
+ "capabilities": [
16
+ "game.progression.curve",
17
+ "game.progression.exploit",
18
+ "game.progression.model",
19
+ "interactive.control.human",
20
+ "interactive.determinism.seeded",
21
+ "interactive.event.log",
22
+ "interactive.fidelity.stylized",
23
+ "interactive.kind.game",
24
+ "interactive.render.visual",
25
+ "interactive.replay.compare",
26
+ "interactive.runtime.bind",
27
+ "interactive.seed.bind",
28
+ "interactive.smoke.observe",
29
+ "interactive.snapshot.capture",
30
+ "interactive.spatial.two_d",
31
+ "interactive.state.model",
32
+ "interactive.time.fixed_step",
33
+ "interactive.visual.pixel_16_bit",
34
+ "interactive.world.model"
35
+ ],
36
+ "pipelines": [
37
+ "interactive.prototype",
38
+ "game.progression",
39
+ "interactive.replay"
40
+ ],
41
+ "adapterTargets": [
42
+ "engine.tic80",
43
+ "telemetry.trace.local",
44
+ "validator.replay.local"
45
+ ],
46
+ "world": {
47
+ "identity": "side-view action adventure",
48
+ "state": {
49
+ "area": "harbour",
50
+ "abilities": [
51
+ "dash"
52
+ ]
53
+ },
54
+ "time": {
55
+ "tickRateHz": 60
56
+ },
57
+ "events": [
58
+ "enemy.defeat",
59
+ "ability.unlock",
60
+ "checkpoint.activate"
61
+ ],
62
+ "initialConditions": {
63
+ "area": "harbour",
64
+ "health": 5
65
+ },
66
+ "coordinateSystem": "screen-space origin top-left",
67
+ "grid": "16 px metatiles on a 320x180 canvas",
68
+ "loop": "explore, fight, unlock, return",
69
+ "objective": "restore the harbour beacon",
70
+ "successConditions": [
71
+ "beacon restored"
72
+ ],
73
+ "failureConditions": [
74
+ "health reaches zero before a checkpoint"
75
+ ],
76
+ "rules": [
77
+ "abilities unlock through declared progression gates",
78
+ "animation frames use the declared sprite budget"
79
+ ],
80
+ "seed": 16,
81
+ "snapshot": "checkpoint state",
82
+ "replay": "input transitions and progression events",
83
+ "step": "one 60 Hz tick"
84
+ },
85
+ "budgets": {
86
+ "paletteColors": 256,
87
+ "baseResolution": "320x180",
88
+ "tileSize": "16x16",
89
+ "spriteSize": "16x32 and 32x32",
90
+ "memoryBudgetBytes": 262144,
91
+ "audioProfile": "sampled tracker with eight voices"
92
+ },
93
+ "acceptance": {
94
+ "progression": "every required ability is reachable without sequence breaking",
95
+ "pixelIntegrity": "camera scaling preserves hard pixel edges"
96
+ }
97
+ }
@@ -0,0 +1,94 @@
1
+ {
2
+ "schemaVersion": "1.0",
3
+ "systemId": "example.game.pixel-8-bit",
4
+ "version": "1.0.0",
5
+ "kind": "GAME",
6
+ "spatialModel": "TWO_D",
7
+ "renderMode": "VISUAL",
8
+ "visualProfile": "PIXEL_8_BIT",
9
+ "fidelity": "ARCADE",
10
+ "controlModes": [
11
+ "HUMAN"
12
+ ],
13
+ "timeModel": "FIXED_STEP",
14
+ "determinism": "SEEDED",
15
+ "capabilities": [
16
+ "interactive.control.human",
17
+ "interactive.determinism.seeded",
18
+ "interactive.event.log",
19
+ "interactive.failure.observe",
20
+ "interactive.fidelity.arcade",
21
+ "interactive.kind.game",
22
+ "interactive.playtest.plan",
23
+ "interactive.render.visual",
24
+ "interactive.replay.compare",
25
+ "interactive.runtime.bind",
26
+ "interactive.runtime.observe",
27
+ "interactive.seed.bind",
28
+ "interactive.smoke.observe",
29
+ "interactive.snapshot.capture",
30
+ "interactive.spatial.two_d",
31
+ "interactive.state.model",
32
+ "interactive.time.fixed_step",
33
+ "interactive.visual.pixel_8_bit",
34
+ "interactive.world.model"
35
+ ],
36
+ "pipelines": [
37
+ "interactive.prototype",
38
+ "interactive.playtest",
39
+ "interactive.replay"
40
+ ],
41
+ "adapterTargets": [
42
+ "engine.pico8",
43
+ "telemetry.trace.local",
44
+ "validator.replay.local"
45
+ ],
46
+ "world": {
47
+ "identity": "compact single-screen platform game",
48
+ "state": {
49
+ "room": 1,
50
+ "score": 0
51
+ },
52
+ "time": {
53
+ "tickRateHz": 30
54
+ },
55
+ "events": [
56
+ "player.jump",
57
+ "coin.collect",
58
+ "player.hit"
59
+ ],
60
+ "initialConditions": {
61
+ "room": 1,
62
+ "lives": 3
63
+ },
64
+ "grid": "8 px tiles on a 128x128 canvas",
65
+ "loop": "move, jump, collect, exit",
66
+ "objective": "collect every coin and reach the exit",
67
+ "successConditions": [
68
+ "exit reached after all coins are collected"
69
+ ],
70
+ "failureConditions": [
71
+ "all lives exhausted"
72
+ ],
73
+ "rules": [
74
+ "integer-aligned sprite positions",
75
+ "no sub-pixel rendering"
76
+ ],
77
+ "seed": 8,
78
+ "snapshot": "room state at entry",
79
+ "replay": "button transitions per fixed tick",
80
+ "step": "one 30 Hz tick"
81
+ },
82
+ "budgets": {
83
+ "paletteColors": 16,
84
+ "baseResolution": "128x128",
85
+ "tileSize": "8x8",
86
+ "spriteSize": "8x8 and 16x16",
87
+ "memoryBudgetBytes": 32768,
88
+ "audioProfile": "four-channel chiptune"
89
+ },
90
+ "acceptance": {
91
+ "pixelIntegrity": "sprites and tiles stay on the integer grid",
92
+ "playability": "the full loop is completable with two buttons and a d-pad"
93
+ }
94
+ }
@@ -0,0 +1,80 @@
1
+ {
2
+ "schemaVersion": "1.0",
3
+ "systemId": "example.game.xr.human",
4
+ "version": "1.0.0",
5
+ "kind": "GAME",
6
+ "spatialModel": "THREE_D",
7
+ "renderMode": "XR",
8
+ "visualProfile": "REALISTIC",
9
+ "fidelity": "STYLIZED",
10
+ "controlModes": [
11
+ "HUMAN"
12
+ ],
13
+ "timeModel": "REAL_TIME",
14
+ "determinism": "BEST_EFFORT",
15
+ "capabilities": [
16
+ "interactive.control.human",
17
+ "interactive.determinism.best_effort",
18
+ "interactive.failure.observe",
19
+ "interactive.fidelity.stylized",
20
+ "interactive.kind.game",
21
+ "interactive.playtest.plan",
22
+ "interactive.render.xr",
23
+ "interactive.replay.compare",
24
+ "interactive.runtime.bind",
25
+ "interactive.runtime.observe",
26
+ "interactive.smoke.observe",
27
+ "interactive.spatial.three_d",
28
+ "interactive.state.model",
29
+ "interactive.time.real_time",
30
+ "interactive.visual.realistic",
31
+ "interactive.world.model"
32
+ ],
33
+ "pipelines": [
34
+ "interactive.prototype",
35
+ "interactive.playtest"
36
+ ],
37
+ "adapterTargets": [
38
+ "engine.godot",
39
+ "telemetry.trace.local",
40
+ "validator.replay.local"
41
+ ],
42
+ "world": {
43
+ "identity": "room-scale cooperative repair game",
44
+ "state": {
45
+ "station": "offline",
46
+ "completedRepairs": 0
47
+ },
48
+ "time": {
49
+ "tickRateHz": 90
50
+ },
51
+ "events": [
52
+ "tool.grab",
53
+ "component.install",
54
+ "station.restart"
55
+ ],
56
+ "initialConditions": {
57
+ "playerPose": "calibrated-origin",
58
+ "station": "offline"
59
+ },
60
+ "units": "metres",
61
+ "scale": "1 unit = 1 metre",
62
+ "coordinateSystem": "right-handed Y-up room space",
63
+ "loop": "inspect, grab, repair, test",
64
+ "objective": "restart the station",
65
+ "successConditions": [
66
+ "station reports operational"
67
+ ],
68
+ "failureConditions": [
69
+ "session safety boundary is breached"
70
+ ],
71
+ "rules": [
72
+ "interactions require reachable controller poses",
73
+ "locomotion respects the declared comfort mode"
74
+ ]
75
+ },
76
+ "acceptance": {
77
+ "comfort": "turning and locomotion respect the configured comfort policy",
78
+ "interaction": "all required repair actions are reachable from a calibrated room origin"
79
+ }
80
+ }
@@ -0,0 +1,108 @@
1
+ {
2
+ "schemaVersion": "1.0",
3
+ "systemId": "example.hybrid.2-5d.seeded",
4
+ "version": "1.0.0",
5
+ "kind": "HYBRID",
6
+ "spatialModel": "TWO_POINT_FIVE_D",
7
+ "renderMode": "VISUAL",
8
+ "visualProfile": "STYLIZED",
9
+ "fidelity": "SYSTEMIC",
10
+ "controlModes": [
11
+ "HYBRID"
12
+ ],
13
+ "timeModel": "FIXED_STEP",
14
+ "determinism": "SEEDED",
15
+ "capabilities": [
16
+ "interactive.control.hybrid",
17
+ "interactive.determinism.seeded",
18
+ "interactive.event.log",
19
+ "interactive.failure.observe",
20
+ "interactive.fidelity.systemic",
21
+ "interactive.kind.hybrid",
22
+ "interactive.playtest.plan",
23
+ "interactive.render.visual",
24
+ "interactive.replay.compare",
25
+ "interactive.runtime.bind",
26
+ "interactive.runtime.observe",
27
+ "interactive.seed.bind",
28
+ "interactive.smoke.observe",
29
+ "interactive.snapshot.capture",
30
+ "interactive.spatial.2_5_d",
31
+ "interactive.state.model",
32
+ "interactive.time.fixed_step",
33
+ "interactive.visual.stylized",
34
+ "interactive.world.model",
35
+ "simulation.model",
36
+ "simulation.outputs.observe",
37
+ "simulation.scenario.define"
38
+ ],
39
+ "pipelines": [
40
+ "interactive.prototype",
41
+ "interactive.playtest",
42
+ "simulation.scenario",
43
+ "interactive.replay"
44
+ ],
45
+ "adapterTargets": [
46
+ "engine.godot",
47
+ "telemetry.trace.local",
48
+ "validator.replay.local"
49
+ ],
50
+ "world": {
51
+ "identity": "2.5D emergency-routing training sandbox",
52
+ "state": {
53
+ "district": "coastal-a",
54
+ "evacuatedAgents": 0
55
+ },
56
+ "time": {
57
+ "fixedStepSeconds": 0.25
58
+ },
59
+ "events": [
60
+ "route.open",
61
+ "hazard.spread",
62
+ "agent.evacuate"
63
+ ],
64
+ "initialConditions": {
65
+ "hazardOrigin": "sector-4",
66
+ "activeRoutes": 3
67
+ },
68
+ "coordinateSystem": "isometric grid with metric depth",
69
+ "grid": "1 metre navigation cells",
70
+ "loop": "inspect, route, advance, review",
71
+ "objective": "evacuate the declared population before the horizon",
72
+ "successConditions": [
73
+ "all reachable agents evacuated"
74
+ ],
75
+ "failureConditions": [
76
+ "simulation horizon reached with reachable agents remaining"
77
+ ],
78
+ "rules": [
79
+ "human route choices and scripted agents share one state model",
80
+ "render depth does not change navigation costs"
81
+ ],
82
+ "model": "discrete agent movement over a weighted evacuation graph",
83
+ "assumptions": [
84
+ "agents select only currently open routes"
85
+ ],
86
+ "boundaryConditions": {
87
+ "horizonSeconds": 900,
88
+ "maximumAgents": 500
89
+ },
90
+ "outputs": [
91
+ "evacuationTimeSeconds",
92
+ "routeUtilisation",
93
+ "agentsRemaining"
94
+ ],
95
+ "validation": {
96
+ "method": "compare replay outputs against declared evacuation invariants",
97
+ "invariants": ["agent counts are conserved", "route costs remain non-negative"]
98
+ },
99
+ "seed": 2026071904,
100
+ "snapshot": "graph, agents, hazard, and human decisions",
101
+ "replay": "ordered route decisions and simulation events",
102
+ "step": "fixed 0.25 second update"
103
+ },
104
+ "acceptance": {
105
+ "hybridBoundary": "human actions and simulated agents remain distinguishable in the event log",
106
+ "projection": "2.5D rendering preserves the underlying metric grid"
107
+ }
108
+ }
@@ -0,0 +1,75 @@
1
+ {
2
+ "runId": "fixture.protocol.mutating-rollback.001",
3
+ "adapterId": "engine.godot",
4
+ "adapterVersion": "1.0.0",
5
+ "semanticTargetId": "example.game.3d.human",
6
+ "phases": [
7
+ {
8
+ "phaseId": "mutating.detect",
9
+ "phase": "DETECT",
10
+ "semanticTargetId": "example.game.3d.human",
11
+ "inputDigest": "sha256:8faad66a2e59a27af6bbc6e1421493a2f3758f376515c44e2e16fbcb340ac082",
12
+ "outputDigest": "sha256:4f135cff766c846e90720c6e50676c37a7b98023bbe7b1ef6b3fa46fd54ffc2d",
13
+ "success": true
14
+ },
15
+ {
16
+ "phaseId": "mutating.probe",
17
+ "phase": "PROBE",
18
+ "semanticTargetId": "example.game.3d.human",
19
+ "inputDigest": "sha256:8faad66a2e59a27af6bbc6e1421493a2f3758f376515c44e2e16fbcb340ac082",
20
+ "outputDigest": "sha256:4f135cff766c846e90720c6e50676c37a7b98023bbe7b1ef6b3fa46fd54ffc2d",
21
+ "success": true
22
+ },
23
+ {
24
+ "phaseId": "mutating.snapshot",
25
+ "phase": "SNAPSHOT",
26
+ "semanticTargetId": "example.game.3d.human",
27
+ "inputDigest": "sha256:8faad66a2e59a27af6bbc6e1421493a2f3758f376515c44e2e16fbcb340ac082",
28
+ "outputDigest": "sha256:4f135cff766c846e90720c6e50676c37a7b98023bbe7b1ef6b3fa46fd54ffc2d",
29
+ "success": true
30
+ },
31
+ {
32
+ "phaseId": "mutating.plan",
33
+ "phase": "PLAN",
34
+ "semanticTargetId": "example.game.3d.human",
35
+ "inputDigest": "sha256:8faad66a2e59a27af6bbc6e1421493a2f3758f376515c44e2e16fbcb340ac082",
36
+ "outputDigest": "sha256:4f135cff766c846e90720c6e50676c37a7b98023bbe7b1ef6b3fa46fd54ffc2d",
37
+ "success": true
38
+ },
39
+ {
40
+ "phaseId": "mutating.apply",
41
+ "phase": "APPLY",
42
+ "semanticTargetId": "example.game.3d.human",
43
+ "inputDigest": "sha256:8faad66a2e59a27af6bbc6e1421493a2f3758f376515c44e2e16fbcb340ac082",
44
+ "outputDigest": "sha256:4f135cff766c846e90720c6e50676c37a7b98023bbe7b1ef6b3fa46fd54ffc2d",
45
+ "success": true
46
+ },
47
+ {
48
+ "phaseId": "mutating.validate",
49
+ "phase": "VALIDATE",
50
+ "semanticTargetId": "example.game.3d.human",
51
+ "inputDigest": "sha256:8faad66a2e59a27af6bbc6e1421493a2f3758f376515c44e2e16fbcb340ac082",
52
+ "outputDigest": "sha256:4f135cff766c846e90720c6e50676c37a7b98023bbe7b1ef6b3fa46fd54ffc2d",
53
+ "success": false
54
+ },
55
+ {
56
+ "phaseId": "mutating.evidence",
57
+ "phase": "EVIDENCE",
58
+ "semanticTargetId": "example.game.3d.human",
59
+ "inputDigest": "sha256:8faad66a2e59a27af6bbc6e1421493a2f3758f376515c44e2e16fbcb340ac082",
60
+ "outputDigest": "sha256:4f135cff766c846e90720c6e50676c37a7b98023bbe7b1ef6b3fa46fd54ffc2d",
61
+ "success": true
62
+ },
63
+ {
64
+ "phaseId": "mutating.rollback",
65
+ "phase": "ROLLBACK",
66
+ "semanticTargetId": "example.game.3d.human",
67
+ "inputDigest": "sha256:8faad66a2e59a27af6bbc6e1421493a2f3758f376515c44e2e16fbcb340ac082",
68
+ "outputDigest": "sha256:4f135cff766c846e90720c6e50676c37a7b98023bbe7b1ef6b3fa46fd54ffc2d",
69
+ "success": true
70
+ }
71
+ ],
72
+ "mutated": true,
73
+ "success": false,
74
+ "rollbackEvidenceId": "fixture.rollback.observed.001"
75
+ }
@@ -0,0 +1,58 @@
1
+ {
2
+ "runId": "fixture.protocol.read-only.001",
3
+ "adapterId": "runtime.headless.generic",
4
+ "adapterVersion": "1.0.0",
5
+ "semanticTargetId": "example.simulation.headless.autonomous-batch",
6
+ "phases": [
7
+ {
8
+ "phaseId": "readonly.detect",
9
+ "phase": "DETECT",
10
+ "semanticTargetId": "example.simulation.headless.autonomous-batch",
11
+ "inputDigest": "sha256:8faad66a2e59a27af6bbc6e1421493a2f3758f376515c44e2e16fbcb340ac082",
12
+ "outputDigest": "sha256:4f135cff766c846e90720c6e50676c37a7b98023bbe7b1ef6b3fa46fd54ffc2d",
13
+ "success": true
14
+ },
15
+ {
16
+ "phaseId": "readonly.probe",
17
+ "phase": "PROBE",
18
+ "semanticTargetId": "example.simulation.headless.autonomous-batch",
19
+ "inputDigest": "sha256:8faad66a2e59a27af6bbc6e1421493a2f3758f376515c44e2e16fbcb340ac082",
20
+ "outputDigest": "sha256:4f135cff766c846e90720c6e50676c37a7b98023bbe7b1ef6b3fa46fd54ffc2d",
21
+ "success": true
22
+ },
23
+ {
24
+ "phaseId": "readonly.snapshot",
25
+ "phase": "SNAPSHOT",
26
+ "semanticTargetId": "example.simulation.headless.autonomous-batch",
27
+ "inputDigest": "sha256:8faad66a2e59a27af6bbc6e1421493a2f3758f376515c44e2e16fbcb340ac082",
28
+ "outputDigest": "sha256:4f135cff766c846e90720c6e50676c37a7b98023bbe7b1ef6b3fa46fd54ffc2d",
29
+ "success": true
30
+ },
31
+ {
32
+ "phaseId": "readonly.plan",
33
+ "phase": "PLAN",
34
+ "semanticTargetId": "example.simulation.headless.autonomous-batch",
35
+ "inputDigest": "sha256:8faad66a2e59a27af6bbc6e1421493a2f3758f376515c44e2e16fbcb340ac082",
36
+ "outputDigest": "sha256:4f135cff766c846e90720c6e50676c37a7b98023bbe7b1ef6b3fa46fd54ffc2d",
37
+ "success": true
38
+ },
39
+ {
40
+ "phaseId": "readonly.validate",
41
+ "phase": "VALIDATE",
42
+ "semanticTargetId": "example.simulation.headless.autonomous-batch",
43
+ "inputDigest": "sha256:8faad66a2e59a27af6bbc6e1421493a2f3758f376515c44e2e16fbcb340ac082",
44
+ "outputDigest": "sha256:4f135cff766c846e90720c6e50676c37a7b98023bbe7b1ef6b3fa46fd54ffc2d",
45
+ "success": true
46
+ },
47
+ {
48
+ "phaseId": "readonly.evidence",
49
+ "phase": "EVIDENCE",
50
+ "semanticTargetId": "example.simulation.headless.autonomous-batch",
51
+ "inputDigest": "sha256:8faad66a2e59a27af6bbc6e1421493a2f3758f376515c44e2e16fbcb340ac082",
52
+ "outputDigest": "sha256:4f135cff766c846e90720c6e50676c37a7b98023bbe7b1ef6b3fa46fd54ffc2d",
53
+ "success": true
54
+ }
55
+ ],
56
+ "mutated": false,
57
+ "success": true
58
+ }
@@ -0,0 +1,97 @@
1
+ {
2
+ "schemaVersion": "1.0",
3
+ "systemId": "example.simulation.2d.controlled",
4
+ "version": "1.0.0",
5
+ "kind": "SIMULATION",
6
+ "spatialModel": "TWO_D",
7
+ "renderMode": "VISUAL",
8
+ "visualProfile": "VECTOR",
9
+ "fidelity": "SYSTEMIC",
10
+ "controlModes": [
11
+ "SCRIPTED"
12
+ ],
13
+ "timeModel": "FIXED_STEP",
14
+ "determinism": "SEEDED",
15
+ "capabilities": [
16
+ "interactive.control.scripted",
17
+ "interactive.determinism.seeded",
18
+ "interactive.event.log",
19
+ "interactive.fidelity.systemic",
20
+ "interactive.kind.simulation",
21
+ "interactive.render.visual",
22
+ "interactive.replay.compare",
23
+ "interactive.seed.bind",
24
+ "interactive.snapshot.capture",
25
+ "interactive.spatial.two_d",
26
+ "interactive.state.model",
27
+ "interactive.time.fixed_step",
28
+ "interactive.visual.vector",
29
+ "interactive.world.model",
30
+ "simulation.invariants.validate",
31
+ "simulation.model",
32
+ "simulation.outputs.compare",
33
+ "simulation.outputs.observe",
34
+ "simulation.scenario.define",
35
+ "simulation.validity.report"
36
+ ],
37
+ "pipelines": [
38
+ "simulation.scenario",
39
+ "simulation.validate",
40
+ "interactive.replay"
41
+ ],
42
+ "adapterTargets": [
43
+ "engine.web.canvas2d",
44
+ "simulation.runner.generic",
45
+ "telemetry.trace.local",
46
+ "validator.replay.local"
47
+ ],
48
+ "world": {
49
+ "identity": "script-controlled urban traffic grid",
50
+ "state": {
51
+ "vehicles": 120,
52
+ "signals": "timed-plan-a"
53
+ },
54
+ "time": {
55
+ "fixedStepSeconds": 0.1
56
+ },
57
+ "events": [
58
+ "vehicle.enter",
59
+ "signal.change",
60
+ "vehicle.exit"
61
+ ],
62
+ "initialConditions": {
63
+ "demandProfile": "weekday-am",
64
+ "signalPlan": "timed-plan-a"
65
+ },
66
+ "grid": "lane graph projected onto a 2D metric plane",
67
+ "coordinateSystem": "local east-north metres",
68
+ "model": "cell-transmission traffic flow with scripted signal phases",
69
+ "assumptions": [
70
+ "driver response is homogeneous inside each vehicle class"
71
+ ],
72
+ "boundaryConditions": {
73
+ "inflowVehiclesPerHour": 900,
74
+ "simulationDurationSeconds": 3600
75
+ },
76
+ "outputs": [
77
+ "meanTravelTimeSeconds",
78
+ "queueLengthVehicles",
79
+ "throughputVehiclesPerHour"
80
+ ],
81
+ "validation": {
82
+ "method": "compare seeded replay outputs with conservation invariants",
83
+ "invariants": ["vehicle count is conserved", "queue length remains non-negative"]
84
+ },
85
+ "seed": 2026071902,
86
+ "snapshot": "network, queues, signals, and random stream state",
87
+ "replay": "scripted demand and signal events",
88
+ "step": "fixed 0.1 second update"
89
+ },
90
+ "acceptance": {
91
+ "invariants": [
92
+ "vehicle count is conserved",
93
+ "queue length is never negative"
94
+ ],
95
+ "outputs": "all declared metrics are emitted for every completed run"
96
+ }
97
+ }