@fallen-8/studio 0.0.32
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/LICENSE +21 -0
- package/README.md +93 -0
- package/dist-lib/Canvas3D-C5og4ZIQ.js +62011 -0
- package/dist-lib/F8GraphCanvas-Db7vzDtJ.js +11085 -0
- package/dist-lib/abap-Bs8kvjsq.js +1398 -0
- package/dist-lib/apex-Dspwrl5m.js +326 -0
- package/dist-lib/azcli-k1BiOau1.js +68 -0
- package/dist-lib/bat-BIP72KWc.js +100 -0
- package/dist-lib/bicep-VhQeYhS3.js +102 -0
- package/dist-lib/cameligo-DnuAXtHg.js +174 -0
- package/dist-lib/canvas.js +13 -0
- package/dist-lib/clojure-BAuDPsal.js +761 -0
- package/dist-lib/coffee-BV06qSnj.js +232 -0
- package/dist-lib/cpp-Cz8Jeyrf.js +389 -0
- package/dist-lib/csharp-F6hhlXFb.js +326 -0
- package/dist-lib/csp-KzlEHCyI.js +53 -0
- package/dist-lib/css-e4FKntZ3.js +187 -0
- package/dist-lib/cssMode-Czf2vRA3.js +1571 -0
- package/dist-lib/cypher-CpvDGKRr.js +263 -0
- package/dist-lib/dart-DdHeFWR0.js +281 -0
- package/dist-lib/dockerfile-aoNXDcio.js +130 -0
- package/dist-lib/ecl-C4Q0DYuA.js +456 -0
- package/dist-lib/elixir-C9X42b0T.js +569 -0
- package/dist-lib/f8-studio.css +1 -0
- package/dist-lib/f8-studio.js +16 -0
- package/dist-lib/flow9-Bff42pfB.js +142 -0
- package/dist-lib/freemarker2-BtInkOsd.js +989 -0
- package/dist-lib/fsharp-C6vPAsHG.js +217 -0
- package/dist-lib/go-DEr8zx9f.js +218 -0
- package/dist-lib/graphql-BiNBBRFh.js +151 -0
- package/dist-lib/handlebars-UwZ7mBGA.js +419 -0
- package/dist-lib/hcl-2T9lKuFg.js +183 -0
- package/dist-lib/html-BXX93YIe.js +308 -0
- package/dist-lib/htmlMode-BCqQu1PO.js +1581 -0
- package/dist-lib/index-DFm6T7Un.js +132450 -0
- package/dist-lib/ini-CZGtssYM.js +71 -0
- package/dist-lib/java-B260NeH3.js +232 -0
- package/dist-lib/javascript-CK1z7Ynl.js +70 -0
- package/dist-lib/jsonMode-C4Q3fVvV.js +1996 -0
- package/dist-lib/julia-kuNLM9c5.js +511 -0
- package/dist-lib/kotlin-Bz6kAefA.js +253 -0
- package/dist-lib/less-AZUtS89I.js +162 -0
- package/dist-lib/lexon-BcmgnyRb.js +157 -0
- package/dist-lib/liquid-BnCUERBj.js +240 -0
- package/dist-lib/lua-Dz1RbATg.js +162 -0
- package/dist-lib/m3-CIMooLFn.js +210 -0
- package/dist-lib/markdown-C1BsCK9P.js +229 -0
- package/dist-lib/mdx-D2enmFMs.js +165 -0
- package/dist-lib/mips-BovsnfLQ.js +198 -0
- package/dist-lib/msdax-CiRB2ZB-.js +375 -0
- package/dist-lib/mysql-BwdpPE19.js +878 -0
- package/dist-lib/objective-c-D4nfHfso.js +183 -0
- package/dist-lib/pascal--j5-PYtz.js +251 -0
- package/dist-lib/pascaligo-C7TcJxNL.js +164 -0
- package/dist-lib/perl-BzEWqUb5.js +626 -0
- package/dist-lib/pgsql-B_KZ0mGX.js +851 -0
- package/dist-lib/php-A19QHzQV.js +500 -0
- package/dist-lib/pla-COeKY1hA.js +137 -0
- package/dist-lib/postiats-BfMp7zJL.js +907 -0
- package/dist-lib/powerquery-B0TS_5Gb.js +890 -0
- package/dist-lib/powershell-5jSbKdYB.js +239 -0
- package/dist-lib/protobuf-YgnOutn3.js +420 -0
- package/dist-lib/pug-DLej6kn5.js +402 -0
- package/dist-lib/python-DJvSF53q.js +301 -0
- package/dist-lib/qsharp-AhjqtSHB.js +301 -0
- package/dist-lib/r-D-F4P80w.js +243 -0
- package/dist-lib/razor-RerkagjP.js +550 -0
- package/dist-lib/redis-hwwIlMnV.js +302 -0
- package/dist-lib/redshift-Bcm_kjEG.js +809 -0
- package/dist-lib/restructuredtext-CrdzfPP-.js +174 -0
- package/dist-lib/ruby-QC2UNm1s.js +511 -0
- package/dist-lib/rust-5aqiQ3L5.js +343 -0
- package/dist-lib/sb-B1g1ZfLJ.js +115 -0
- package/dist-lib/scala-C2U4R5Gb.js +370 -0
- package/dist-lib/scheme-DeFRbslr.js +108 -0
- package/dist-lib/scss-RSTCiCmI.js +262 -0
- package/dist-lib/shell-BpF-iNu8.js +221 -0
- package/dist-lib/solidity-C00r2mbQ.js +1367 -0
- package/dist-lib/sophia-DVW5ZKDB.js +199 -0
- package/dist-lib/sparql-B0nmpxeX.js +201 -0
- package/dist-lib/sql-CJwKPERn.js +853 -0
- package/dist-lib/st-DPlKG5DT.js +416 -0
- package/dist-lib/swift-YZBAbVHV.js +309 -0
- package/dist-lib/systemverilog-CDQSaH63.js +576 -0
- package/dist-lib/tcl-Dlu8sp6Q.js +232 -0
- package/dist-lib/tsMode-C-6d-f_-.js +886 -0
- package/dist-lib/twig-C5TO7-kw.js +392 -0
- package/dist-lib/types/api/changefeed.d.ts +113 -0
- package/dist-lib/types/api/client.d.ts +81 -0
- package/dist-lib/types/api/endpoints.d.ts +197 -0
- package/dist-lib/types/api/queries.d.ts +8 -0
- package/dist-lib/types/api/types.d.ts +1032 -0
- package/dist-lib/types/app/AppShell.d.ts +10 -0
- package/dist-lib/types/app/NamespaceScope.d.ts +11 -0
- package/dist-lib/types/app/applyStudioConfig.d.ts +18 -0
- package/dist-lib/types/app/mount.d.ts +19 -0
- package/dist-lib/types/app/nav.d.ts +91 -0
- package/dist-lib/types/app/routes.d.ts +9 -0
- package/dist-lib/types/app/studioConfig.d.ts +106 -0
- package/dist-lib/types/canvas/Canvas2D.d.ts +18 -0
- package/dist-lib/types/canvas/Canvas3D.d.ts +14 -0
- package/dist-lib/types/canvas/ConnectPanel.d.ts +10 -0
- package/dist-lib/types/canvas/FindPanel.d.ts +14 -0
- package/dist-lib/types/canvas/GraphCanvas.d.ts +66 -0
- package/dist-lib/types/canvas/StylePanel.d.ts +7 -0
- package/dist-lib/types/canvas/eclipse.d.ts +136 -0
- package/dist-lib/types/canvas/imageAssets.d.ts +3 -0
- package/dist-lib/types/canvas/styleConfig.d.ts +48 -0
- package/dist-lib/types/canvas/styleEngine.d.ts +125 -0
- package/dist-lib/types/canvas/styling.d.ts +15 -0
- package/dist-lib/types/components/AdjacencyPanel.d.ts +11 -0
- package/dist-lib/types/components/AnalyticsRunner.d.ts +1 -0
- package/dist-lib/types/components/ConfigurationPanel.d.ts +1 -0
- package/dist-lib/types/components/ConfirmDialog.d.ts +18 -0
- package/dist-lib/types/components/DurabilityNotice.d.ts +18 -0
- package/dist-lib/types/components/ElementDetail.d.ts +11 -0
- package/dist-lib/types/components/ElementTable.d.ts +19 -0
- package/dist-lib/types/components/EmbeddingsTab.d.ts +15 -0
- package/dist-lib/types/components/ErrorBox.d.ts +8 -0
- package/dist-lib/types/components/EventFeedBell.d.ts +16 -0
- package/dist-lib/types/components/EventFeedPanel.d.ts +10 -0
- package/dist-lib/types/components/Field.d.ts +14 -0
- package/dist-lib/types/components/GraphShapePanel.d.ts +1 -0
- package/dist-lib/types/components/InspectLink.d.ts +5 -0
- package/dist-lib/types/components/ListCapNote.d.ts +10 -0
- package/dist-lib/types/components/MutationsPanel.d.ts +1 -0
- package/dist-lib/types/components/NamespaceSwitcher.d.ts +22 -0
- package/dist-lib/types/components/NamespacesPanel.d.ts +11 -0
- package/dist-lib/types/components/NeighborhoodPreview.d.ts +10 -0
- package/dist-lib/types/components/PluginsPanel.d.ts +9 -0
- package/dist-lib/types/components/PropertiesTab.d.ts +4 -0
- package/dist-lib/types/components/PropertyListEditor.d.ts +26 -0
- package/dist-lib/types/components/SampleGraphsPanel.d.ts +3 -0
- package/dist-lib/types/components/SectionHelp.d.ts +11 -0
- package/dist-lib/types/components/SemanticBlockEditor.d.ts +29 -0
- package/dist-lib/types/components/SemanticQueryEditor.d.ts +15 -0
- package/dist-lib/types/components/SettingRow.d.ts +15 -0
- package/dist-lib/types/components/Stat.d.ts +10 -0
- package/dist-lib/types/components/StoredQueriesPanel.d.ts +14 -0
- package/dist-lib/types/components/StoredQueryControls.d.ts +29 -0
- package/dist-lib/types/components/Truncated.d.ts +17 -0
- package/dist-lib/types/components/TruncationBadge.d.ts +6 -0
- package/dist-lib/types/components/TypedLiteralEditor.d.ts +13 -0
- package/dist-lib/types/components/VertexFilterSlot.d.ts +25 -0
- package/dist-lib/types/delegate/DelegateEditor.d.ts +10 -0
- package/dist-lib/types/delegate/DelegateSlot.d.ts +18 -0
- package/dist-lib/types/delegate/editorOptions.d.ts +25 -0
- package/dist-lib/types/delegate/kinds.d.ts +19 -0
- package/dist-lib/types/delegate/markers.d.ts +21 -0
- package/dist-lib/types/delegate/monacoSetup.d.ts +3 -0
- package/dist-lib/types/delegate/nl/NlAssistPanel.d.ts +10 -0
- package/dist-lib/types/delegate/nl/NlBackendConfig.d.ts +12 -0
- package/dist-lib/types/delegate/nl/NlDraftList.d.ts +42 -0
- package/dist-lib/types/delegate/nl/config.d.ts +105 -0
- package/dist-lib/types/delegate/nl/feedback.d.ts +30 -0
- package/dist-lib/types/delegate/nl/format.d.ts +6 -0
- package/dist-lib/types/delegate/nl/generate.d.ts +57 -0
- package/dist-lib/types/delegate/nl/prompt.d.ts +21 -0
- package/dist-lib/types/delegate/nl/useNlRun.d.ts +24 -0
- package/dist-lib/types/delegate/providers.d.ts +26 -0
- package/dist-lib/types/delegate/snippets.d.ts +25 -0
- package/dist-lib/types/embed/F8GraphCanvas.d.ts +37 -0
- package/dist-lib/types/embed/canvas.d.ts +23 -0
- package/dist-lib/types/embed/index.d.ts +14 -0
- package/dist-lib/types/firstrun/FirstRunOverlay.d.ts +10 -0
- package/dist-lib/types/firstrun/FirstRunShow.d.ts +22 -0
- package/dist-lib/types/firstrun/beats.d.ts +23 -0
- package/dist-lib/types/firstrun/firstRunStore.d.ts +38 -0
- package/dist-lib/types/firstrun/mockGraph.d.ts +56 -0
- package/dist-lib/types/firstrun/useBeatTimeline.d.ts +35 -0
- package/dist-lib/types/firstrun/useReducedMotion.d.ts +7 -0
- package/dist-lib/types/instances/registry.d.ts +83 -0
- package/dist-lib/types/instances/types.d.ts +49 -0
- package/dist-lib/types/lib/canvasCap.d.ts +7 -0
- package/dist-lib/types/lib/connectPaths.d.ts +55 -0
- package/dist-lib/types/lib/embeddingProperties.d.ts +6 -0
- package/dist-lib/types/lib/fieldHelp.d.ts +139 -0
- package/dist-lib/types/lib/format.d.ts +16 -0
- package/dist-lib/types/lib/hydrate.d.ts +37 -0
- package/dist-lib/types/lib/indexCapabilities.d.ts +17 -0
- package/dist-lib/types/lib/jsonlGraph.d.ts +42 -0
- package/dist-lib/types/lib/listCaps.d.ts +48 -0
- package/dist-lib/types/lib/literals.d.ts +36 -0
- package/dist-lib/types/lib/namespaceName.d.ts +10 -0
- package/dist-lib/types/lib/neighborhood.d.ts +37 -0
- package/dist-lib/types/lib/patternValidation.d.ts +12 -0
- package/dist-lib/types/lib/restartCopy.d.ts +11 -0
- package/dist-lib/types/lib/sampleLoader.d.ts +95 -0
- package/dist-lib/types/lib/samples.d.ts +87 -0
- package/dist-lib/types/lib/sbomGraph.d.ts +58 -0
- package/dist-lib/types/lib/sectionHelp.d.ts +39 -0
- package/dist-lib/types/lib/semantic.d.ts +95 -0
- package/dist-lib/types/lib/storedQueries.d.ts +43 -0
- package/dist-lib/types/lib/truncate.d.ts +34 -0
- package/dist-lib/types/lib/truncation.d.ts +7 -0
- package/dist-lib/types/lib/vector.d.ts +13 -0
- package/dist-lib/types/main.d.ts +1 -0
- package/dist-lib/types/plugin/PluginEditor.d.ts +20 -0
- package/dist-lib/types/plugin/nl/PluginNlAssistPanel.d.ts +13 -0
- package/dist-lib/types/plugin/nl/pluginPrompt.d.ts +48 -0
- package/dist-lib/types/plugin/scaffolds.d.ts +26 -0
- package/dist-lib/types/screens/AnalyticsScreen.d.ts +8 -0
- package/dist-lib/types/screens/BenchmarkScreen.d.ts +1 -0
- package/dist-lib/types/screens/BrowserScreen.d.ts +6 -0
- package/dist-lib/types/screens/CanvasScreen.d.ts +10 -0
- package/dist-lib/types/screens/ConnectScreen.d.ts +1 -0
- package/dist-lib/types/screens/DashboardScreen.d.ts +13 -0
- package/dist-lib/types/screens/IndexesScreen.d.ts +8 -0
- package/dist-lib/types/screens/IntegrationsScreen.d.ts +14 -0
- package/dist-lib/types/screens/KnowledgeScreen.d.ts +1 -0
- package/dist-lib/types/screens/PathScreen.d.ts +9 -0
- package/dist-lib/types/screens/PluginsScreen.d.ts +1 -0
- package/dist-lib/types/screens/QueryScreen.d.ts +1 -0
- package/dist-lib/types/screens/SamplesScreen.d.ts +7 -0
- package/dist-lib/types/screens/SaveGamesScreen.d.ts +7 -0
- package/dist-lib/types/screens/SubgraphScreen.d.ts +1 -0
- package/dist-lib/types/state/eventFeed.d.ts +63 -0
- package/dist-lib/types/state/feedFilter.d.ts +42 -0
- package/dist-lib/types/state/graphShape.d.ts +37 -0
- package/dist-lib/types/state/instanceStore.d.ts +280 -0
- package/dist-lib/types/state/integrations.d.ts +25 -0
- package/dist-lib/types/state/liveFeed.d.ts +37 -0
- package/dist-lib/types/state/scopeKey.d.ts +8 -0
- package/dist-lib/types/state/status.d.ts +21 -0
- package/dist-lib/typescript-aCo3H3H0.js +343 -0
- package/dist-lib/typespec-BsmjDEu7.js +117 -0
- package/dist-lib/vb-ChHvIDrk.js +372 -0
- package/dist-lib/wgsl-XEp1ju8c.js +439 -0
- package/dist-lib/xml-CSt-F-dl.js +95 -0
- package/dist-lib/yaml-kSsc3ru_.js +206 -0
- package/package.json +98 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2011-2026 Henning Rauch
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# F8 Studio (`@fallen-8/studio`)
|
|
2
|
+
|
|
3
|
+
Browser frontend for one or more running Fallen-8 instances. Spec, design, and plan live
|
|
4
|
+
in [features/done/web-ui/](../features/done/web-ui/); the NL-assist model backend is specified in
|
|
5
|
+
[features/done/web-ui/nl-assist/spec.md](../features/done/web-ui/nl-assist/spec.md).
|
|
6
|
+
|
|
7
|
+
This directory is also the published package. Embedding Studio, or its graph canvas alone
|
|
8
|
+
(`@fallen-8/studio/canvas`), in your own application is documented at
|
|
9
|
+
<https://docs.fallen-8.com/embed-studio/> - that page is the contract, so it is not repeated
|
|
10
|
+
here. The rest of this file is how to develop the app itself.
|
|
11
|
+
|
|
12
|
+
## Development
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
npm install
|
|
16
|
+
npm run dev # Vite dev server; same-origin API calls proxy to http://localhost:5000
|
|
17
|
+
# (override with F8_API_URL). Start the apiApp separately:
|
|
18
|
+
# dotnet run --project ../fallen-8-core-apiApp
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
The repo root's package.json mirrors the common scripts, so `npm run build:apiapp`,
|
|
22
|
+
`npm run dev`, `npm run test:ui`, and `npm run e2e` also work from the repository root.
|
|
23
|
+
|
|
24
|
+
The registry's default "local" instance uses the app's own origin — in dev that means the
|
|
25
|
+
Vite proxy; in production the apiApp that serves the SPA.
|
|
26
|
+
|
|
27
|
+
## Production build (served by the apiApp, gap G-1)
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npm run build:apiapp # emits into ../fallen-8-core-apiApp/wwwroot (gitignored)
|
|
31
|
+
dotnet run --project ../fallen-8-core-apiApp
|
|
32
|
+
# open http://localhost:5000
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Cross-origin instances need their `Fallen8:Security:AllowedCorsOrigins` to include the
|
|
36
|
+
origin this app is served from.
|
|
37
|
+
|
|
38
|
+
## Auth (lightweight, Cognito-extensible)
|
|
39
|
+
|
|
40
|
+
An instance secured with `Fallen8:Security:ApiKey` is registered with that key on the
|
|
41
|
+
Connect screen. The client sends it as `Authorization: Bearer <key>` (the apiApp accepts
|
|
42
|
+
this alongside `X-Api-Key`); a future OIDC/JWT scheme (e.g. AWS Cognito) reuses the same
|
|
43
|
+
header shape — add a new `auth.kind` in `src/instances/types.ts` and a token source, and
|
|
44
|
+
no call site changes. Keys live in this browser's local storage and travel only to their
|
|
45
|
+
own instance.
|
|
46
|
+
|
|
47
|
+
The anonymous `GET /status` doubles as the connection probe: it reports whether the
|
|
48
|
+
server requires a key and whether this request's credential was accepted
|
|
49
|
+
(`StatusREST.ApiKeyRequired`). The app shell locks every nav entry except Connect until
|
|
50
|
+
the active instance is reachable AND authorized, so a missing or wrong key shows as
|
|
51
|
+
"unauthorized" — never as a working connection (`src/app/AppShell.tsx`,
|
|
52
|
+
tests in `tests/app-shell.test.tsx` and e2e scenario 11).
|
|
53
|
+
|
|
54
|
+
Note: the delegate endpoints (`/path`, `/subgraph`, `/delegates/validate`) run compiled C#
|
|
55
|
+
in-process, and dynamic code execution is always on — there is no switch to enable. The only
|
|
56
|
+
gate is authentication, which is all-or-nothing: if an API key is configured the whole service
|
|
57
|
+
(including these endpoints) needs it, and if not, the whole service is open. So the delegate
|
|
58
|
+
editor works on a keyless instance out of the box.
|
|
59
|
+
|
|
60
|
+
## NL assist (FR-26 + nl-assist-ux)
|
|
61
|
+
|
|
62
|
+
Works out of the box: the default **built-in** backend is the stack `docker-compose.yml`
|
|
63
|
+
ships (local [Ollama](https://ollama.com) on `:11434`, defaulting to the fine-tuned
|
|
64
|
+
`phi4-f8-mini` model with `phi4-mini` as the selectable base; the larger `phi4-f8` is pulled by
|
|
65
|
+
default too — MIT weights + MIT runtime, nothing bundled into F8; set `F8_PULL_PHI4F8=0` to
|
|
66
|
+
skip it on a CPU-only or disk-constrained host). The compose stack pulls the default set on
|
|
67
|
+
first start. The panel shows a
|
|
68
|
+
reachability status; if it is unreachable, start the stack with `npm run env:up` (and follow
|
|
69
|
+
`npm run env:logs` while the first-run model pull completes). Switching to **custom** under "nl assist → configure" exposes endpoint, API kind
|
|
70
|
+
(`ollama` | `openai`-compatible), model, temperature, and presets (local Ollama, OpenAI,
|
|
71
|
+
Anthropic) as prefills — hosted endpoints must send CORS headers and show a "text leaves
|
|
72
|
+
this machine" notice before the first send. Any model API key is sent only to the model
|
|
73
|
+
endpoint, never to a Fallen-8 instance. Drafts accumulate as a clickable history with
|
|
74
|
+
per-call token/duration stats (raw provider payload expandable per attempt); re-drafting
|
|
75
|
+
the same description asks the model for a distinct variant.
|
|
76
|
+
|
|
77
|
+
## Tests
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
npm test # Vitest unit + component (Monaco/model calls mocked)
|
|
81
|
+
npm run e2e # Playwright; builds the SPA into the apiApp and launches it with
|
|
82
|
+
# an API key ("e2e-key"), volatile durability (dynamic code always on)
|
|
83
|
+
# First time: npx playwright install chromium
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Regeneration
|
|
87
|
+
|
|
88
|
+
- `src/api/types.ts` is the hand-curated client contract, mirroring the checked-in snapshot
|
|
89
|
+
`features/done/web-ui/openapi-v0.1.json` (refresh the snapshot from a Development apiApp at
|
|
90
|
+
`/openapi/v0.1.json`). The contract test (`tests/api-contract.test.ts`) pins every
|
|
91
|
+
client route against the snapshot.
|
|
92
|
+
- `src/delegate/type-model.json` is hand-maintained against spec §6.2, which mirrors
|
|
93
|
+
`fallen-8-core/Model/*.cs` — update both together.
|