@cratis/pi 7.69.1 → 7.70.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/package/corpus/hooks/scripts/cratis-check-pr.mjs +17 -10
- package/package/corpus/product-sync.json +7 -7
- package/package/corpus/skills/cratis-arc-command/references/generated-values.md +3 -1
- package/package/corpus/skills/cratis-arc-command/references/shop-generation.md +2 -2
- package/package/corpus/skills/cratis-screenplay-automations-and-translations/SKILL.md +1 -1
- package/package/corpus/skills/cratis-screenplay-automations-and-translations/references/audit-format.md +1 -1
- package/package/corpus/skills/cratis-screenplay-automations-and-translations/references/realization-and-gap-fill.md +1 -1
- package/package/corpus/skills/cratis-screenplay-captures-and-reactions/SKILL.md +1 -1
- package/package/corpus/skills/cratis-screenplay-captures-and-reactions/references/atomic-batches-and-source-mappings.md +1 -1
- package/package/corpus/skills/cratis-screenplay-command-surface/SKILL.md +3 -3
- package/package/corpus/skills/cratis-screenplay-command-surface/references/generated-values-and-responses.md +4 -4
- package/package/corpus/skills/cratis-screenplay-command-surface/references/protected-reads.md +34 -7
- package/package/corpus/skills/cratis-screenplay-command-surface/references/shop-generation.md +2 -2
- package/package/corpus/skills/cratis-screenplay-event-modeling/SKILL.md +3 -3
- package/package/corpus/skills/cratis-screenplay-event-modeling/references/parsed-not-runnable.md +1 -1
- package/package/corpus/skills/cratis-screenplay-legacy-extraction/references/generated-recovery.md +1 -1
- package/package/corpus/skills/cratis-screenplay-model-authoring/references/choosing-generation.md +1 -1
- package/package/corpus/skills/cratis-screenplay-model-authoring/references/language-reference.md +2 -2
- package/package/corpus/skills/cratis-screenplay-model-review/references/anti-patterns.md +1 -1
- package/package/corpus/skills/cratis-screenplay-model-review/references/checklist.md +1 -1
- package/package/corpus/skills/cratis-screenplay-modeling-lifecycle/references/principles.md +1 -1
- package/package/corpus/skills/cratis-screenplay-modeling-lifecycle/references/vocabulary-map.md +1 -1
- package/package/corpus/skills/cratis-screenplay-read-surface/references/named-keys.md +10 -5
- package/package/corpus/skills/cratis-screenplay-render-and-gap-fill/SKILL.md +2 -2
- package/package/corpus/skills/cratis-screenplay-render-and-gap-fill/references/gap-fill-handoff.md +4 -3
- package/package/corpus/skills/cratis-screenplay-render-and-gap-fill/references/renderability-gate.md +2 -1
- package/package/corpus/skills/cratis-screenplay-scenario-coverage/references/berth-reservations.md +1 -1
- package/package/corpus/skills/cratis-screenplay-scenario-coverage/references/invoicing-dues-design.md +2 -2
- package/package/corpus/skills/cratis-screenplay-scenario-coverage/references/scenario-catalogue.md +2 -2
- package/package/corpus/skills/cratis-screenplay-scenario-coverage/references/spec-forms-by-mode.md +2 -2
- package/package/corpus/skills/cratis-screenplay-slice-design/references/rule-layers.md +1 -1
- package/package/corpus/skills/cratis-screenplay-slice-design/references/worked-example.md +1 -1
- package/package/corpus/skills/cratis-screenplay-specifications/references/generated-fixtures.md +3 -3
- package/package/corpus/skills/cratis-screenplay-streams-and-consistency/SKILL.md +2 -2
- package/package/corpus/skills/cratis-screenplay-streams-and-consistency/references/consistency-and-concurrency.md +2 -2
- package/package/corpus/skills/cratis-screenplay-streams-and-consistency/references/read-model-keys.md +3 -3
- package/package/corpus/skills/cratis-screenplay-streams-and-consistency/references/streams-example.md +1 -1
- package/package/corpus/skills/cratis-screenplay-toolchain/SKILL.md +2 -2
- package/package/corpus/skills/cratis-screenplay-toolchain/references/cheat-sheet.md +1 -1
- package/package/corpus/skills/cratis-screenplay-toolchain/references/diagnostic-arguments.md +8 -0
- package/package/corpus/skills/cratis-screenplay-toolchain/references/diagnostics.md +13 -10
- package/package/corpus/skills/cratis-screenplay-toolchain/references/executable-subset.md +4 -5
- package/package/corpus/skills/cratis-screenplay-toolchain/references/language-admission.md +9 -8
- package/package/corpus/skills/cratis-screenplay-toolchain/references/renderable-subset.md +12 -8
- package/package/corpus/skills/cratis-screenplay-toolchain/references/traps.md +1 -1
- package/package/corpus/skills/cratis-stage-rendering-and-sandbox/SKILL.md +16 -12
- package/package/corpus/skills/cratis-stage-rendering-and-sandbox/references/admission.md +19 -15
- package/package/corpus/skills/cratis-stage-rendering-and-sandbox/references/behavior-walk.md +4 -3
- package/package/corpus/skills/cratis-stage-rendering-and-sandbox/references/choosing-generation.md +1 -1
- package/package/corpus/skills/cratis-stage-rendering-and-sandbox/references/sandbox-and-specrunner.md +9 -9
- package/package/corpus/skills/cratis-stage-rendering-and-sandbox/verification.json +2 -2
- package/package.json +1 -1
|
@@ -32,18 +32,18 @@ port `35000` (a plain `http://` request gets no reply; the certificate is self-s
|
|
|
32
32
|
The entrypoint takes a model file or folder, default `/eventmodel`. Deployment settings
|
|
33
33
|
come from `cratis-stage.json` (path override `STAGE_CONFIG`), not `appsettings.json`.
|
|
34
34
|
Implementation `file` references stay symbolic: the sandbox never opens them.
|
|
35
|
-
`cratis run`
|
|
35
|
+
Requires Cratis CLI 3.64.0 for `--engine`; from CLI 3.73.0 `cratis run` runs the `semantic` engine by default and always passes `Stage__Runtime__Engine`, while older CLIs default to `eventmodel`. The EventModel engine is legacy and refuses newer constructs (for example v27 composite keys); do not rely on it. Running the image directly, the environment setting below selects the engine.
|
|
36
36
|
|
|
37
37
|
Two engines:
|
|
38
38
|
|
|
39
39
|
| Engine | Selected by | Behaviour |
|
|
40
40
|
| --- | --- | --- |
|
|
41
|
-
| EventModel (default) | nothing | Commands evaluate their modeled `produces` mappings, append the facts to Chronicle and echo the payload. **Only part of modeled validation is enforced, and no authorization.** See [What the
|
|
42
|
-
| Semantic | `Stage__Runtime__Engine=semantic` | Evaluates validation, requirements, authorization, conditional production and constraints before accepting a command; appends one batch; denied is HTTP 403, validation or constraint failure HTTP 400, an unsupported command HTTP 501. `GET /stage/semantic/admission` lists what is admitted. Executes routes and event-triggered reactions (including `where`, `runs as`, `from`, productions, invocations and cascades), settling them with the initiating command in one batch. Refuses a model it cannot execute (`state: "unsupported"`, `/api/**` returns 501). Read models are in-process, not Chronicle projections in the Workbench; the history is unbounded, so use it for short sessions |
|
|
41
|
+
| EventModel (legacy; the image's default) | nothing | Commands evaluate their modeled `produces` mappings, append the facts to Chronicle and echo the payload. **Only part of modeled validation is enforced, and no authorization.** See [What the EventModel engine enforces](#what-the-eventmodel-engine-enforces). It registers Chronicle projections. Named event sources, streams and routes are refused with `STAGE-ESM-030` (`/stage/status` reports `state: "unsupported"` and `/api/**` answers 501), so a routed model does not run here |
|
|
42
|
+
| Semantic (`cratis run`'s default) | `Stage__Runtime__Engine=semantic` | Evaluates validation, requirements, authorization, conditional production and constraints before accepting a command; appends one batch; denied is HTTP 403, validation or constraint failure HTTP 400, an unsupported command HTTP 501. `GET /stage/semantic/admission` lists what is admitted. Executes routes and event-triggered reactions (including `where`, `runs as`, `from`, productions, invocations and cascades), settling them with the initiating command in one batch. Refuses a model it cannot execute (`state: "unsupported"`, `/api/**` returns 501). Read models are in-process, not Chronicle projections in the Workbench; the history is unbounded, so use it for short sessions |
|
|
43
43
|
|
|
44
44
|
Do not read an answering sandbox as evidence of correct authorization. Callers are
|
|
45
45
|
built from unsigned `x-ms-client-principal` headers that anyone who can reach the host can
|
|
46
|
-
forge, the
|
|
46
|
+
forge, the EventModel engine enforces no authorization, and the session should stay private (loopback
|
|
47
47
|
ports or an authenticated proxy). Rendered applications use the renderer's admitted Arc
|
|
48
48
|
authorization instead, which is the thing to test for production behavior (Debug tests
|
|
49
49
|
of a render, [render-example.md](render-example.md)).
|
|
@@ -68,12 +68,12 @@ registration failure if the model was admitted.
|
|
|
68
68
|
The semantic Host/specification executor admits v24 literal `contains`, `not contains`,
|
|
69
69
|
`starts with` and `ends with` rules as ordinal UTF-16 comparisons; absence passes.
|
|
70
70
|
Empty operands pass contains/starts/ends and fail not-contains for present text.
|
|
71
|
-
The legacy EventModel
|
|
71
|
+
The legacy EventModel engine drops these rules: its list below is not evidence
|
|
72
72
|
of semantic support. Generated applications render these comparisons without regex.
|
|
73
73
|
|
|
74
|
-
### What the
|
|
74
|
+
### What the EventModel engine enforces
|
|
75
75
|
|
|
76
|
-
When a command that declares at least one `produces` executes, the
|
|
76
|
+
When a command that declares at least one `produces` executes, the EventModel engine
|
|
77
77
|
refuses it with a validation result naming the property, and appends nothing, if:
|
|
78
78
|
|
|
79
79
|
- a property the command's schema requires is missing or `null`;
|
|
@@ -99,7 +99,7 @@ Everything else passes unchecked:
|
|
|
99
99
|
- every check on a command without `produces`, and the `/validate` route, which runs none
|
|
100
100
|
of these checks.
|
|
101
101
|
|
|
102
|
-
A refusal or an acceptance from the
|
|
102
|
+
A refusal or an acceptance from the EventModel engine therefore proves nothing beyond the
|
|
103
103
|
lists above. Use the semantic engine, or Debug tests of a render, for
|
|
104
104
|
evidence about the rest.
|
|
105
105
|
|
|
@@ -108,7 +108,7 @@ evidence about the rest.
|
|
|
108
108
|
Requires Stage 4.129.0 for semantic Host and specification-executor protected reads;
|
|
109
109
|
older engines refuse them with `STAGE-ESM-044`. The default EventModel Host and
|
|
110
110
|
structural runner still refuse the preamble with `STAGE-ESM-044`; the structural
|
|
111
|
-
runner exits `1` without a report. The Cratis
|
|
111
|
+
runner exits `1` without a report. The Cratis renderer renders protected reads only from Stage 4.138.0 and refuses unpreservable shapes with `-044`:
|
|
112
112
|
executing a model here does not make it renderable.
|
|
113
113
|
|
|
114
114
|
After authorization and property/concept rules, each declared read must exist at
|
|
@@ -21,10 +21,10 @@
|
|
|
21
21
|
{ "kind": "skill-contains", "value": "`Customizations/`" },
|
|
22
22
|
{ "kind": "skill-contains", "value": "`Stage__Runtime__Engine=semantic`" },
|
|
23
23
|
{ "kind": "skill-contains", "value": "`--engine semantic`" },
|
|
24
|
-
{ "kind": "skill-contains", "value": "
|
|
24
|
+
{ "kind": "skill-contains", "value": "Requires Cratis CLI 3.64.0 for `--engine`", "file": "references/sandbox-and-specrunner.md" },
|
|
25
25
|
{ "kind": "skill-contains", "value": "the environment setting below", "file": "references/sandbox-and-specrunner.md" },
|
|
26
26
|
{ "kind": "skill-contains", "value": "fresh in-memory Chronicle log per specification", "file": "references/sandbox-and-specrunner.md" },
|
|
27
|
-
{ "kind": "skill-contains", "value": "exact ESM v1–v21 and v23–
|
|
27
|
+
{ "kind": "skill-contains", "value": "exact ESM v1–v21 and v23–v27 pairs" },
|
|
28
28
|
{ "kind": "skill-contains", "value": "STAGE-ESM-044" },
|
|
29
29
|
{ "kind": "skill-contains", "value": "STAGE-IMPL-002" },
|
|
30
30
|
{ "kind": "skill-contains", "value": "all-Proven rules permit unpinned rendered", "file": "references/admission.md" },
|