@semacode/cli 2.3.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.
Files changed (177) hide show
  1. package/LICENSE +39 -39
  2. package/README.md +251 -228
  3. package/dist/agentEntryPoints.js +551 -550
  4. package/dist/angular-consumer-standalone.d.ts +3 -1
  5. package/dist/angular-consumer-standalone.js +12 -8
  6. package/dist/drift.part01.d.ts +32 -2
  7. package/dist/drift.part01.js +2 -0
  8. package/dist/drift.part04.d.ts +3 -2
  9. package/dist/drift.part04.js +6 -3
  10. package/dist/drift.part05.d.ts +2 -1
  11. package/dist/drift.part05.js +4 -3
  12. package/dist/drift.part06.d.ts +2 -1
  13. package/dist/drift.part06.js +9 -5
  14. package/dist/drift.part07.d.ts +11 -10
  15. package/dist/drift.part07.js +40 -30
  16. package/dist/drift.part08.d.ts +2 -1
  17. package/dist/drift.part08.js +4 -3
  18. package/dist/drift.part11.js +71 -6
  19. package/dist/drift.part12.js +14 -1
  20. package/dist/drift.part13.d.ts +42 -7
  21. package/dist/drift.part13.js +660 -36
  22. package/dist/driftCache.d.ts +49 -0
  23. package/dist/driftCache.js +311 -0
  24. package/dist/driftCacheIncremental.d.ts +98 -0
  25. package/dist/driftCacheIncremental.js +596 -0
  26. package/dist/driftCatalogo.d.ts +91 -0
  27. package/dist/driftCatalogo.js +657 -0
  28. package/dist/driftCatalogoPersistente.d.ts +8 -0
  29. package/dist/driftCatalogoPersistente.js +77 -0
  30. package/dist/driftEscopo.d.ts +23 -0
  31. package/dist/driftEscopo.js +563 -0
  32. package/dist/driftEscopoReferencias.d.ts +4 -0
  33. package/dist/driftEscopoReferencias.js +265 -0
  34. package/dist/driftOrcamento.d.ts +12 -0
  35. package/dist/driftOrcamento.js +19 -3
  36. package/dist/execucoesExternas.js +5 -19
  37. package/dist/iaPrompts.js +310 -310
  38. package/dist/index.part01.d.ts +16 -1
  39. package/dist/index.part01.js +80 -4
  40. package/dist/index.part02.js +21 -21
  41. package/dist/index.part03.d.ts +2 -2
  42. package/dist/index.part03.js +14 -3
  43. package/dist/index.part04.d.ts +2 -2
  44. package/dist/index.part04.js +113 -101
  45. package/dist/index.part05.d.ts +1 -1
  46. package/dist/index.part05.js +99 -22
  47. package/dist/index.part06.js +3 -2
  48. package/dist/index.part07.js +24 -24
  49. package/dist/index.part08.js +1 -1
  50. package/dist/init/templates.part01.js +393 -393
  51. package/dist/init/templates.part02.js +189 -189
  52. package/dist/initTemplatesBackend.js +73 -73
  53. package/dist/initTemplatesBase.js +81 -81
  54. package/dist/initTemplatesFlutter.js +137 -137
  55. package/dist/initTemplatesRuntime.js +350 -350
  56. package/dist/initTemplatesWeb.js +309 -309
  57. package/dist/pipelineConteudo/command.js +1 -36
  58. package/dist/projeto.d.ts +1 -1
  59. package/dist/projetoCarregar.d.ts +2 -2
  60. package/dist/projetoCarregar.js +47 -24
  61. package/dist/projetoCatalogo.d.ts +7 -0
  62. package/dist/projetoCatalogo.js +125 -0
  63. package/dist/projetoTipos.d.ts +14 -5
  64. package/dist/sync/index.js +35 -35
  65. package/docs/README.md +34 -34
  66. package/docs/ai-integration.md +1 -7
  67. package/docs/ai-onboarding.md +62 -62
  68. package/docs/ai-workflow.md +4 -0
  69. package/docs/auth.md +26 -26
  70. package/docs/cli.md +79 -79
  71. package/docs/commands.md +16 -13
  72. package/docs/database.md +15 -15
  73. package/docs/deploy.md +41 -41
  74. package/docs/descoberta-capacidades.md +106 -106
  75. package/docs/documentation.md +37 -46
  76. package/docs/env.md +16 -16
  77. package/docs/frontend.md +41 -41
  78. package/docs/getting-started.md +57 -57
  79. package/docs/i18n.md +15 -15
  80. package/docs/pipeline-conteudo.md +246 -246
  81. package/docs/profiles.md +54 -54
  82. package/docs/repositories.md +43 -43
  83. package/docs/rollback.md +31 -31
  84. package/docs/security.md +32 -32
  85. package/docs/sistemas-interativos.md +373 -378
  86. package/docs/support.md +8 -8
  87. package/docs/testing.md +51 -44
  88. package/docs/vocabulary.md +29 -29
  89. package/exemplos/agendamento.sema +1 -1
  90. package/exemplos/assinatura.sema +1 -1
  91. package/exemplos/auditoria.sema +1 -1
  92. package/exemplos/autenticacao.sema +1 -1
  93. package/exemplos/author_obra_comum.sema +1 -1
  94. package/exemplos/author_tema_sensivel.sema +1 -1
  95. package/exemplos/automacao.sema +1 -1
  96. package/exemplos/cadastro_usuario.sema +1 -1
  97. package/exemplos/calculadora.sema +1 -1
  98. package/exemplos/crud_simples.sema +1 -1
  99. package/exemplos/estoque.sema +1 -1
  100. package/exemplos/exportacao.sema +1 -1
  101. package/exemplos/fila.sema +1 -1
  102. package/exemplos/integracao_externa.sema +1 -1
  103. package/exemplos/multi_tenant.sema +1 -1
  104. package/exemplos/notificacao.sema +1 -1
  105. package/exemplos/operacao_estrategia.sema +132 -132
  106. package/exemplos/operacao_estrategia_discovery.sema +220 -220
  107. package/exemplos/operacao_estrategia_fluxo.sema +114 -114
  108. package/exemplos/operacao_estrategia_gates.sema +106 -106
  109. package/exemplos/operacao_estrategia_quarentena.sema +133 -133
  110. package/exemplos/operacao_estrategia_rollout.sema +124 -124
  111. package/exemplos/pagamento.sema +1 -1
  112. package/exemplos/pagamento_dominio.sema +1 -1
  113. package/exemplos/pedido.sema +1 -1
  114. package/exemplos/permissao.sema +1 -1
  115. package/exemplos/persistencia_vendor_first.sema +1 -1
  116. package/exemplos/pipeline-conteudo/README.md +44 -44
  117. package/exemplos/pipeline-conteudo/alvos.json +23 -23
  118. package/exemplos/pipeline-conteudo/definicao.json +136 -136
  119. package/exemplos/profile_conversas.sema +165 -165
  120. package/exemplos/profile_game.sema +1 -1
  121. package/exemplos/profile_legal.sema +1 -1
  122. package/exemplos/profile_ops.sema +1 -1
  123. package/exemplos/profile_research.sema +1 -1
  124. package/exemplos/profile_simulation.sema +211 -211
  125. package/exemplos/profile_software.sema +1 -1
  126. package/exemplos/profile_workflow_n8n.sema +1 -1
  127. package/exemplos/relatorio.sema +1 -1
  128. package/exemplos/replica_analitica_erp.sema +1 -1
  129. package/exemplos/sistemas-interativos/README.md +100 -100
  130. package/exemplos/sistemas-interativos/advanced/acceptance-context-evaluate-valid.json +5 -5
  131. package/exemplos/sistemas-interativos/advanced/acceptance-lock-valid.json +16 -16
  132. package/exemplos/sistemas-interativos/advanced/asset-provenance-valid.json +32 -32
  133. package/exemplos/sistemas-interativos/advanced/autonomy-repair-valid.json +93 -93
  134. package/exemplos/sistemas-interativos/advanced/control-run-definition-valid.json +78 -78
  135. package/exemplos/sistemas-interativos/advanced/control-run-valid.json +27 -27
  136. package/exemplos/sistemas-interativos/advanced/distributed-workers-valid.json +79 -79
  137. package/exemplos/sistemas-interativos/advanced/editor-state-valid.json +42 -42
  138. package/exemplos/sistemas-interativos/advanced/engine-snapshot-after-valid.json +32 -32
  139. package/exemplos/sistemas-interativos/advanced/engine-snapshot-before-valid.json +23 -23
  140. package/exemplos/sistemas-interativos/advanced/job-orchestration-valid.json +39 -39
  141. package/exemplos/sistemas-interativos/advanced/multimodal-evidence-valid.json +46 -46
  142. package/exemplos/sistemas-interativos/advanced/multiplayer-authority-valid.json +39 -39
  143. package/exemplos/sistemas-interativos/advanced/playtest-fuzz-valid.json +37 -37
  144. package/exemplos/sistemas-interativos/advanced/portability-valid.json +104 -104
  145. package/exemplos/sistemas-interativos/advanced/temporal-evidence-valid.json +27 -27
  146. package/exemplos/sistemas-interativos/advanced/temporal-valid.json +118 -118
  147. package/exemplos/sistemas-interativos/experience-ir-valid.json +459 -459
  148. package/exemplos/sistemas-interativos/game-2d.json +83 -83
  149. package/exemplos/sistemas-interativos/game-3d-human.json +81 -81
  150. package/exemplos/sistemas-interativos/game-pixel-16-bit.json +97 -97
  151. package/exemplos/sistemas-interativos/game-pixel-8-bit.json +94 -94
  152. package/exemplos/sistemas-interativos/game-xr-human.json +80 -80
  153. package/exemplos/sistemas-interativos/hybrid-2-5d.json +108 -108
  154. package/exemplos/sistemas-interativos/protocol-mutating-rollback-valid.json +75 -75
  155. package/exemplos/sistemas-interativos/protocol-read-only-valid.json +58 -58
  156. package/exemplos/sistemas-interativos/simulation-2d-controlled.json +97 -97
  157. package/exemplos/sistemas-interativos/simulation-3d-calibrated-autonomous.json +141 -141
  158. package/exemplos/sistemas-interativos/simulation-headless-autonomous-batch.json +112 -112
  159. package/exemplos/sistemas-interativos/simulation-pixel-16-bit.json +103 -103
  160. package/exemplos/sistemas-interativos/simulation-text-controlled.json +95 -95
  161. package/exemplos/testes_embutidos.sema +1 -1
  162. package/exemplos/tratamento_erro.sema +1 -1
  163. package/exemplos/upload_arquivo.sema +1 -1
  164. package/exemplos/webhook.sema +1 -1
  165. package/node_modules/@sema/gerador-cpp/dist/index.js +176 -176
  166. package/node_modules/@sema/gerador-cpp/package.json +1 -1
  167. package/node_modules/@sema/gerador-css/dist/index.part01.js +10 -10
  168. package/node_modules/@sema/gerador-css/dist/index.part02.js +460 -460
  169. package/node_modules/@sema/gerador-dotnet/dist/index.js +169 -169
  170. package/node_modules/@sema/gerador-dotnet/package.json +1 -1
  171. package/node_modules/@sema/gerador-html/dist/index.js +17 -17
  172. package/node_modules/@sema/gerador-lua/dist/index.js +51 -51
  173. package/node_modules/@sema/gerador-php/dist/index.js +113 -113
  174. package/node_modules/@sema/gerador-python/dist/index.part02.js +3 -3
  175. package/node_modules/@sema/gerador-typescript/dist/index.part02.js +11 -11
  176. package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js +42 -42
  177. package/package.json +3 -3
@@ -1,103 +1,103 @@
1
- {
2
- "schemaVersion": "1.0",
3
- "systemId": "example.simulation.pixel-16-bit.uncontrolled",
4
- "version": "1.0.0",
5
- "kind": "SIMULATION",
6
- "spatialModel": "TWO_D",
7
- "renderMode": "VISUAL",
8
- "visualProfile": "PIXEL_16_BIT",
9
- "fidelity": "SYSTEMIC",
10
- "controlModes": [
11
- "UNCONTROLLED"
12
- ],
13
- "timeModel": "EVENT_DRIVEN",
14
- "determinism": "BEST_EFFORT",
15
- "capabilities": [
16
- "interactive.control.uncontrolled",
17
- "interactive.determinism.best_effort",
18
- "interactive.fidelity.systemic",
19
- "interactive.kind.simulation",
20
- "interactive.render.visual",
21
- "interactive.spatial.two_d",
22
- "interactive.state.model",
23
- "interactive.time.event_driven",
24
- "interactive.visual.pixel_16_bit",
25
- "interactive.world.model",
26
- "simulation.hazard.model",
27
- "simulation.model",
28
- "simulation.outputs.observe",
29
- "simulation.recovery.plan",
30
- "simulation.scenario.define",
31
- "simulation.stop.validate"
32
- ],
33
- "pipelines": [
34
- "simulation.scenario",
35
- "simulation.safety"
36
- ],
37
- "adapterTargets": [
38
- "engine.tic80",
39
- "simulation.runner.generic",
40
- "telemetry.trace.local",
41
- "validator.replay.local"
42
- ],
43
- "world": {
44
- "identity": "uncontrolled cellular ecosystem visualisation",
45
- "state": {
46
- "generation": 0,
47
- "population": 64
48
- },
49
- "time": {
50
- "advance": "next scheduled ecosystem event"
51
- },
52
- "events": [
53
- "organism.birth",
54
- "organism.consume",
55
- "organism.expire"
56
- ],
57
- "initialConditions": {
58
- "population": 64,
59
- "resourceCells": 256
60
- },
61
- "grid": "160x90 logical cells rendered as 2x2 pixels",
62
- "model": "event-driven predator-resource cellular system",
63
- "assumptions": [
64
- "all interactions are local to neighbouring cells"
65
- ],
66
- "boundaryConditions": {
67
- "topology": "toroidal",
68
- "maximumPopulation": 2048
69
- },
70
- "outputs": [
71
- "populationBySpecies",
72
- "resourceCoverage",
73
- "extinctionEvents"
74
- ],
75
- "validation": {
76
- "method": "check event and population invariants independently of pixel rendering",
77
- "invariants": ["population remains non-negative", "events reference existing cells"]
78
- },
79
- "stopCriteria": [
80
- "generation reaches 10000",
81
- "all species become extinct"
82
- ],
83
- "safetyConstraints": [
84
- "population allocation never exceeds 2048 entities",
85
- "event queue never exceeds 65536 entries"
86
- ]
87
- },
88
- "budgets": {
89
- "paletteColors": 256,
90
- "baseResolution": "320x180",
91
- "tileSize": "2x2",
92
- "spriteSize": "2x2 to 8x8",
93
- "memoryBudgetBytes": 524288,
94
- "audioProfile": "optional four-voice event sonification"
95
- },
96
- "acceptance": {
97
- "invariants": [
98
- "population counts remain non-negative",
99
- "every event references an existing cell"
100
- ],
101
- "visualisation": "pixel styling does not alter the model state or event order"
102
- }
103
- }
1
+ {
2
+ "schemaVersion": "1.0",
3
+ "systemId": "example.simulation.pixel-16-bit.uncontrolled",
4
+ "version": "1.0.0",
5
+ "kind": "SIMULATION",
6
+ "spatialModel": "TWO_D",
7
+ "renderMode": "VISUAL",
8
+ "visualProfile": "PIXEL_16_BIT",
9
+ "fidelity": "SYSTEMIC",
10
+ "controlModes": [
11
+ "UNCONTROLLED"
12
+ ],
13
+ "timeModel": "EVENT_DRIVEN",
14
+ "determinism": "BEST_EFFORT",
15
+ "capabilities": [
16
+ "interactive.control.uncontrolled",
17
+ "interactive.determinism.best_effort",
18
+ "interactive.fidelity.systemic",
19
+ "interactive.kind.simulation",
20
+ "interactive.render.visual",
21
+ "interactive.spatial.two_d",
22
+ "interactive.state.model",
23
+ "interactive.time.event_driven",
24
+ "interactive.visual.pixel_16_bit",
25
+ "interactive.world.model",
26
+ "simulation.hazard.model",
27
+ "simulation.model",
28
+ "simulation.outputs.observe",
29
+ "simulation.recovery.plan",
30
+ "simulation.scenario.define",
31
+ "simulation.stop.validate"
32
+ ],
33
+ "pipelines": [
34
+ "simulation.scenario",
35
+ "simulation.safety"
36
+ ],
37
+ "adapterTargets": [
38
+ "engine.tic80",
39
+ "simulation.runner.generic",
40
+ "telemetry.trace.local",
41
+ "validator.replay.local"
42
+ ],
43
+ "world": {
44
+ "identity": "uncontrolled cellular ecosystem visualisation",
45
+ "state": {
46
+ "generation": 0,
47
+ "population": 64
48
+ },
49
+ "time": {
50
+ "advance": "next scheduled ecosystem event"
51
+ },
52
+ "events": [
53
+ "organism.birth",
54
+ "organism.consume",
55
+ "organism.expire"
56
+ ],
57
+ "initialConditions": {
58
+ "population": 64,
59
+ "resourceCells": 256
60
+ },
61
+ "grid": "160x90 logical cells rendered as 2x2 pixels",
62
+ "model": "event-driven predator-resource cellular system",
63
+ "assumptions": [
64
+ "all interactions are local to neighbouring cells"
65
+ ],
66
+ "boundaryConditions": {
67
+ "topology": "toroidal",
68
+ "maximumPopulation": 2048
69
+ },
70
+ "outputs": [
71
+ "populationBySpecies",
72
+ "resourceCoverage",
73
+ "extinctionEvents"
74
+ ],
75
+ "validation": {
76
+ "method": "check event and population invariants independently of pixel rendering",
77
+ "invariants": ["population remains non-negative", "events reference existing cells"]
78
+ },
79
+ "stopCriteria": [
80
+ "generation reaches 10000",
81
+ "all species become extinct"
82
+ ],
83
+ "safetyConstraints": [
84
+ "population allocation never exceeds 2048 entities",
85
+ "event queue never exceeds 65536 entries"
86
+ ]
87
+ },
88
+ "budgets": {
89
+ "paletteColors": 256,
90
+ "baseResolution": "320x180",
91
+ "tileSize": "2x2",
92
+ "spriteSize": "2x2 to 8x8",
93
+ "memoryBudgetBytes": 524288,
94
+ "audioProfile": "optional four-voice event sonification"
95
+ },
96
+ "acceptance": {
97
+ "invariants": [
98
+ "population counts remain non-negative",
99
+ "every event references an existing cell"
100
+ ],
101
+ "visualisation": "pixel styling does not alter the model state or event order"
102
+ }
103
+ }
@@ -1,95 +1,95 @@
1
- {
2
- "schemaVersion": "1.0",
3
- "systemId": "example.simulation.text.controlled",
4
- "version": "1.0.0",
5
- "kind": "SIMULATION",
6
- "spatialModel": "NON_SPATIAL",
7
- "renderMode": "TEXT",
8
- "visualProfile": "NONE",
9
- "fidelity": "SYSTEMIC",
10
- "controlModes": [
11
- "SCRIPTED"
12
- ],
13
- "timeModel": "TURN_BASED",
14
- "determinism": "STRICT",
15
- "capabilities": [
16
- "interactive.control.scripted",
17
- "interactive.determinism.strict",
18
- "interactive.event.log",
19
- "interactive.fidelity.systemic",
20
- "interactive.kind.simulation",
21
- "interactive.render.text",
22
- "interactive.replay.compare",
23
- "interactive.seed.bind",
24
- "interactive.snapshot.capture",
25
- "interactive.spatial.non_spatial",
26
- "interactive.state.model",
27
- "interactive.time.turn_based",
28
- "interactive.visual.none",
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
- "runtime.text.generic",
44
- "simulation.runner.generic",
45
- "telemetry.trace.local",
46
- "validator.replay.local"
47
- ],
48
- "world": {
49
- "identity": "turn-based queueing simulation with a text surface",
50
- "state": {
51
- "turn": 0,
52
- "queueLength": 0
53
- },
54
- "time": {
55
- "turnDurationMinutes": 1
56
- },
57
- "events": [
58
- "request.arrive",
59
- "request.complete",
60
- "capacity.change"
61
- ],
62
- "initialConditions": {
63
- "servers": 4,
64
- "queueLength": 0
65
- },
66
- "model": "finite-capacity discrete queue",
67
- "assumptions": [
68
- "one turn represents one minute"
69
- ],
70
- "boundaryConditions": {
71
- "maximumQueueLength": 1000,
72
- "turns": 1440
73
- },
74
- "outputs": [
75
- "meanWaitTurns",
76
- "maximumQueueLength",
77
- "completedRequests"
78
- ],
79
- "validation": {
80
- "method": "compare seeded turns with queue invariants and expected outputs",
81
- "invariants": ["queue length remains non-negative", "completed requests do not exceed arrivals"]
82
- },
83
- "seed": 2026071905,
84
- "snapshot": "queue, servers, counters, and random stream",
85
- "replay": "ordered scripted arrivals and capacity events",
86
- "step": "one declared turn"
87
- },
88
- "acceptance": {
89
- "textSurface": "every turn can be inspected without a graphical renderer",
90
- "invariants": [
91
- "queue length is never negative",
92
- "completed requests never exceed arrivals"
93
- ]
94
- }
95
- }
1
+ {
2
+ "schemaVersion": "1.0",
3
+ "systemId": "example.simulation.text.controlled",
4
+ "version": "1.0.0",
5
+ "kind": "SIMULATION",
6
+ "spatialModel": "NON_SPATIAL",
7
+ "renderMode": "TEXT",
8
+ "visualProfile": "NONE",
9
+ "fidelity": "SYSTEMIC",
10
+ "controlModes": [
11
+ "SCRIPTED"
12
+ ],
13
+ "timeModel": "TURN_BASED",
14
+ "determinism": "STRICT",
15
+ "capabilities": [
16
+ "interactive.control.scripted",
17
+ "interactive.determinism.strict",
18
+ "interactive.event.log",
19
+ "interactive.fidelity.systemic",
20
+ "interactive.kind.simulation",
21
+ "interactive.render.text",
22
+ "interactive.replay.compare",
23
+ "interactive.seed.bind",
24
+ "interactive.snapshot.capture",
25
+ "interactive.spatial.non_spatial",
26
+ "interactive.state.model",
27
+ "interactive.time.turn_based",
28
+ "interactive.visual.none",
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
+ "runtime.text.generic",
44
+ "simulation.runner.generic",
45
+ "telemetry.trace.local",
46
+ "validator.replay.local"
47
+ ],
48
+ "world": {
49
+ "identity": "turn-based queueing simulation with a text surface",
50
+ "state": {
51
+ "turn": 0,
52
+ "queueLength": 0
53
+ },
54
+ "time": {
55
+ "turnDurationMinutes": 1
56
+ },
57
+ "events": [
58
+ "request.arrive",
59
+ "request.complete",
60
+ "capacity.change"
61
+ ],
62
+ "initialConditions": {
63
+ "servers": 4,
64
+ "queueLength": 0
65
+ },
66
+ "model": "finite-capacity discrete queue",
67
+ "assumptions": [
68
+ "one turn represents one minute"
69
+ ],
70
+ "boundaryConditions": {
71
+ "maximumQueueLength": 1000,
72
+ "turns": 1440
73
+ },
74
+ "outputs": [
75
+ "meanWaitTurns",
76
+ "maximumQueueLength",
77
+ "completedRequests"
78
+ ],
79
+ "validation": {
80
+ "method": "compare seeded turns with queue invariants and expected outputs",
81
+ "invariants": ["queue length remains non-negative", "completed requests do not exceed arrivals"]
82
+ },
83
+ "seed": 2026071905,
84
+ "snapshot": "queue, servers, counters, and random stream",
85
+ "replay": "ordered scripted arrivals and capacity events",
86
+ "step": "one declared turn"
87
+ },
88
+ "acceptance": {
89
+ "textSurface": "every turn can be inspected without a graphical renderer",
90
+ "invariants": [
91
+ "queue length is never negative",
92
+ "completed requests never exceed arrivals"
93
+ ]
94
+ }
95
+ }
@@ -42,4 +42,4 @@ module exemplos.testes.embutidos {
42
42
  }
43
43
  }
44
44
  }
45
- }
45
+ }
@@ -154,4 +154,4 @@ module exemplos.tratamento.erro {
154
154
  etapa registrar_falha usa registrar_auditoria_falha com chave = chave depende_de tentar
155
155
  etapa concluir usa registrar_sucesso com protocolo = tentar.protocolo depende_de tentar
156
156
  }
157
- }
157
+ }
@@ -90,4 +90,4 @@ module exemplos.upload.arquivo {
90
90
  }
91
91
  }
92
92
  }
93
- }
93
+ }
@@ -91,4 +91,4 @@ module exemplos.webhook {
91
91
  }
92
92
  }
93
93
  }
94
- }
94
+ }