@cratis/pi 7.27.1 → 7.27.3

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.
@@ -12,6 +12,7 @@
12
12
  - 4. Validate authoring and executable readiness
13
13
  - 5. Run/render using the same configuration
14
14
  - 6. Use Screenplay-owned fixtures
15
+ - Replay the workflow in CI without a Screenplay checkout
15
16
  - Edit, render, run and see it in the browser
16
17
  - Transcript checklist
17
18
 
@@ -109,6 +110,25 @@ contract for `--workspace` and keep its application identity equal to the source
109
110
  name. Build/tests/runtime checks are then the V5 steps owned by
110
111
  `cratis-screenplay-render-and-gap-fill` and `cratis-stage-rendering-and-sandbox`.
111
112
 
113
+ Before re-rendering an edited model over an earlier render, preview it:
114
+
115
+ ```shell
116
+ cratis render <model-folder> --name <ApplicationName> --destination <render-dir> --check -o json
117
+ ```
118
+
119
+ `--check` (CLI 3.44.0) plans exactly like a render and reports per path what a real
120
+ render would write, delete, leave unchanged or refuse, without writing anything. It
121
+ exits `0` when the destination is current, `6` (`changes_pending`) when a render
122
+ would change it and `5` when planning is refused. Since CLI 3.45.0 the receipt lists
123
+ for every path the semantic declarations it realizes (`sources`: id, kind and a
124
+ `Module/Feature/Slice/Name` address) and a `bySource` view mapping each declaration
125
+ to its files. After an MCP edit, use `bySource` to confirm the edited screen or
126
+ binding changed exactly the files you expect, and `semantic-diff` (MCP, Screenplay
127
+ 4.131.0: `before` and `after` as `{ "workspace": "active" }`, `{ "path": "<folder>" }`
128
+ or `{ "workspaceJson": "<export>" }`) to compare the model before and after the
129
+ edit. These are newer than the verified vector: report them as published, not as
130
+ executed there.
131
+
112
132
  For screens-release parity, the smoke check must assert that every authored
113
133
  screen, template, component, form, toolbar, outlet, route and package/icon use is
114
134
  represented in the generated plan or runtime diagnostics. A consumer that cannot
@@ -125,8 +145,9 @@ maintained duplicate.
125
145
  Verified public vector and executable checks:
126
146
 
127
147
  - toolchain: public CLI 3.43.0 (`23e5a24`), whose default runtime is
128
- `cratis/stage:4.52.0` and which bundles Screenplay 4.127.0. Latest public
129
- packages are Scene 4.15.0, Screenplay 4.129.0, Stage 4.57.0 and Studio 0.144.4;
148
+ `cratis/stage:4.52.0` and which bundles Screenplay 4.127.0. Published since,
149
+ and not verified by this vector: Scene 4.17.0, Screenplay 4.133.1, Stage 4.64.0, CLI
150
+ 3.46.1 (bundling Screenplay 4.130.0, default Stage still 4.52.0) and Studio 0.152.2;
130
151
  claims made through `cratis` are 4.127.0 compiler claims;
131
152
  - fixture root: `Source/DotNET/Screenplay.CanonicalCorpus/Corpus/ScreenComposition/v1/source/folder`
132
153
  in the Screenplay repository;
@@ -150,6 +171,15 @@ Verified public vector and executable checks:
150
171
  Play proof (test-account decision). UI-profile rejection and render-then-recover
151
172
  shipped in Cratis/cli#301.
152
173
 
174
+ ## Replay the workflow in CI without a Screenplay checkout
175
+
176
+ `screens-smoke.sh <work-folder>` in the AI repository's `screens-smoke` verification folder installs the pinned public `cratis` CLI,
177
+ materializes the published `Cratis.Screenplay.CanonicalCorpus` folder source (so the corpus stays Screenplay-owned and
178
+ is never copied), replays the MCP transcript with the revision-checked column edit, renders the edited folder and
179
+ requires the column in the generated `scene.json`. The pins live in `screens-smoke.json` and follow the verified
180
+ vector above; the corpus package is the one that records that vector. The corpus verification job runs it on every
181
+ change. The browser step below needs Docker and Chromium, so it stays a manual step.
182
+
153
183
  ## Edit, render, run and see it in the browser
154
184
 
155
185
  The loop above proves an agent can change the model. This proves the change
@@ -34,8 +34,10 @@ hand-writing an alternate shape.
34
34
  Keep those three lines separate in reports. Correct an old limitation only when
35
35
  the package/version you are using proves the new level. Verified public vector:
36
36
  CLI 3.43.0 with its default `cratis/stage:4.52.0` and bundled Screenplay 4.127.0;
37
- latest public packages are Scene 4.15.0, Screenplay 4.129.0, Stage 4.57.0 and
38
- Studio 0.144.4. All three levels hold for the canonical `ScreenComposition`
37
+ the executed vector renders on Scene 4.15.0. Packages published since are newer than
38
+ that vector and are not claimed verified: Scene 4.17.0, Screenplay 4.133.1, Stage
39
+ 4.64.0, CLI 3.46.1 (its default Stage is still 4.52.0) and Studio 0.152.2. All
40
+ three levels hold for the canonical `ScreenComposition`
39
41
  corpus:
40
42
 
41
43
  - authoring and executable admission: MCP opens it with `sourceSuccess true`,
@@ -210,10 +212,38 @@ screen owns the button. Dialog opening stays an interaction (`on click open dial
210
212
  node. A dialog destination must state every input with a typed `with`/`parameter`
211
213
  binding; a runtime default is not an authored contract.
212
214
 
215
+ What Scene 4.17 adds to the runtime side of this contract, so an agent knows what a
216
+ destination can do once it is authored (authoring acceptance and executable
217
+ admission are separate, see Support levels - a Scene release is not a Stage
218
+ release):
219
+
220
+ - **Nested outlets.** A `core:outlet` component declares a named nested outlet on a
221
+ screen. A destination into it opens its screen there and keeps the declaring
222
+ screen on the page; the opened screen may declare outlets of its own, so
223
+ composition nests to any depth. A deep link to the innermost level composes
224
+ every level above it, and back closes the innermost level only. An outlet
225
+ declares the template types it accepts; a destination into a missing or
226
+ incompatible outlet is a navigation diagnostic, not a fallback.
227
+ - **Toolbar buttons open destinations.** The Cratis Components toolbar button runs
228
+ its attached interactions and opens its authored `destination` (a dialog or a
229
+ slice screen) through the enclosing navigation host. Label, icon, text and
230
+ presentation are properties of the button, so author them on the toolbar item
231
+ rather than on a wrapper.
232
+ - **Settings pages.** `@cratis/scene.blueprint.components` ships a `SettingsPage`
233
+ screen template: a module's settings as a generated command form with save and
234
+ discard. Prefer it to a hand-built form for settings, and expose its command as
235
+ template configuration.
236
+ - **Embedded hosts.** `WebViewPackageHost` renders a custom package set inside a
237
+ webview (VS Code, Event Models) with no Studio dependency; the same package set
238
+ must produce the same screens in the standalone host.
239
+
240
+ Whether a given Stage or CLI release renders each of these is a runtime level
241
+ claim: confirm it from the render receipt and diagnostics before reporting it.
242
+
213
243
  ## Design-time generation results
214
244
 
215
245
  Design-time actions belong to component packages, not to the model and not to an
216
- agent. Scene 4.15 declares them as data (`PackageDesignTimeMetadata`) and ships
246
+ agent. Scene 4.15 (unchanged in 4.17) declares them as data (`PackageDesignTimeMetadata`) and ships
217
247
  their code in an optional design-time bundle; a runtime host that does not set
218
248
  `loadDesignTime` loads none of it, so nothing a design-time action does can exist
219
249
  only at runtime. The one Cratis action today is **Generate fields**
@@ -42,7 +42,7 @@ argument or an invalid semantic option.
42
42
 
43
43
  | Source | Pin | Notes |
44
44
  | --- | --- | --- |
45
- | Stage | `4.52.0` (`v4.52.0`, `0e4fd87`) as the CLI 3.43.0 default; latest public package `4.57.0` (`3b8049f`) | Renderer, sandbox host, spec runner; the CLI default image is `cratis/stage:4.52.0`. Both define `STAGE-SCENE-ACTION-001` and `STAGE-SCENE-INTERACTION-001`. Earlier executed baselines: 4.51.3, 4.51.1, 4.49.5 and `v4.24.2` (`32dcac4`) |
45
+ | Stage | `4.52.0` (`v4.52.0`, `0e4fd87`) as the CLI 3.43.0 default; newer public packages exist (latest `4.64.0`, built on Scene 4.16.0) and are not part of the verified vector | Renderer, sandbox host, spec runner; the CLI default image is `cratis/stage:4.52.0`. Both define `STAGE-SCENE-ACTION-001` and `STAGE-SCENE-INTERACTION-001`. Earlier executed baselines: 4.51.3, 4.51.1, 4.49.5 and `v4.24.2` (`32dcac4`) |
46
46
  | cratis CLI | `3.43.0` (`v3.43.0`, `23e5a24`) | `cratis render`, `cratis run`; the tag pins `StageVersion` 4.52.0 and `ScreenplayVersion` 4.127.0. The public CLI renders the canonical corpus and runs the stdio MCP transcript; refusing an unresolvable UI profile and recovering a rendered application shipped in Cratis/cli#301. Older baselines: 3.41.0, 3.40.7, `v3.28.2` (`141c499`, Cratis/cli#253) |
47
47
  | Screenplay | bundled `4.127.0`; latest public language package `4.129.0` | The CLI bundles 4.127.0, so compiler claims made through `cratis` are 4.127.0 claims; use the standalone 4.129.0 tool only for language features newer than the bundle |
48
48
  | Rendered applications | Arc, Chronicle, Scene 4.15.0, .NET 10 | CLI 3.43.0 renders the canonical corpus to `.cratis-render.json`, backend artifacts, `.frontend/**`, `scene.json`, `src/bindings.ts`. Verify the generated package set for each render before claiming exact Scene runtime parity |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cratis/pi",
3
- "version": "7.27.1",
3
+ "version": "7.27.3",
4
4
  "description": "Configuration-aware Cratis AI integration for Pi",
5
5
  "type": "module",
6
6
  "files": [