@crowdedkingdoms/crowdyjs 9.0.0 → 11.0.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.
- package/MIGRATION.md +60 -38
- package/README.md +86 -50
- package/dist/crowdy-client.d.ts +3 -0
- package/dist/crowdy-client.d.ts.map +1 -1
- package/dist/crowdy-client.js +2 -0
- package/dist/crowdy-studio/controller.d.ts +188 -0
- package/dist/crowdy-studio/controller.d.ts.map +1 -0
- package/dist/crowdy-studio/controller.js +915 -0
- package/dist/crowdy-studio/diagnostics.d.ts +22 -0
- package/dist/crowdy-studio/diagnostics.d.ts.map +1 -0
- package/dist/crowdy-studio/diagnostics.js +141 -0
- package/dist/crowdy-studio/dom-shell.d.ts +55 -0
- package/dist/crowdy-studio/dom-shell.d.ts.map +1 -0
- package/dist/crowdy-studio/dom-shell.js +527 -0
- package/dist/crowdy-studio/editor.d.ts +17 -0
- package/dist/crowdy-studio/editor.d.ts.map +1 -0
- package/dist/crowdy-studio/editor.js +1 -0
- package/dist/crowdy-studio/index.d.ts +10 -0
- package/dist/crowdy-studio/index.d.ts.map +1 -0
- package/dist/crowdy-studio/index.js +9 -0
- package/dist/crowdy-studio/models.d.ts +149 -0
- package/dist/crowdy-studio/models.d.ts.map +1 -0
- package/dist/crowdy-studio/models.js +62 -0
- package/dist/crowdy-studio/monaco-editor.d.ts +16 -0
- package/dist/crowdy-studio/monaco-editor.d.ts.map +1 -0
- package/dist/crowdy-studio/monaco-editor.js +548 -0
- package/dist/crowdy-studio/mount.d.ts +17 -0
- package/dist/crowdy-studio/mount.d.ts.map +1 -0
- package/dist/crowdy-studio/mount.js +86 -0
- package/dist/crowdy-studio/starter-projects.d.ts +11 -0
- package/dist/crowdy-studio/starter-projects.d.ts.map +1 -0
- package/dist/crowdy-studio/starter-projects.js +102 -0
- package/dist/crowdy-studio/styles.d.ts +2 -0
- package/dist/crowdy-studio/styles.d.ts.map +1 -0
- package/dist/crowdy-studio/styles.js +14 -0
- package/dist/crowdy-studio/textarea-editor.d.ts +8 -0
- package/dist/crowdy-studio/textarea-editor.d.ts.map +1 -0
- package/dist/crowdy-studio/textarea-editor.js +71 -0
- package/dist/domains/crowdyStudio.d.ts +27 -0
- package/dist/domains/crowdyStudio.d.ts.map +1 -0
- package/dist/domains/crowdyStudio.js +301 -0
- package/dist/domains/playerCompute.d.ts +1 -1
- package/dist/domains/playerCompute.js +1 -1
- package/dist/generated/graphql.d.ts +792 -7
- package/dist/generated/graphql.d.ts.map +1 -1
- package/dist/generated/graphql.js +57 -0
- package/dist/index.d.ts +3 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -5
- package/dist/kit/npcs.d.ts.map +1 -1
- package/dist/kit/social.d.ts.map +1 -1
- package/dist/live-coding/rust-analysis.d.ts.map +1 -1
- package/dist/live-coding/rust-analysis.js +64 -1
- package/dist/live-coding/worker-transport.d.ts +3 -0
- package/dist/live-coding/worker-transport.d.ts.map +1 -1
- package/dist/live-coding/worker-transport.js +13 -0
- package/package.json +4 -4
- package/dist/live-coding/ide.d.ts +0 -23
- package/dist/live-coding/ide.d.ts.map +0 -1
- package/dist/live-coding/ide.js +0 -514
- package/dist/live-coding/index.d.ts +0 -8
- package/dist/live-coding/index.d.ts.map +0 -1
- package/dist/live-coding/index.js +0 -7
- package/dist/live-coding/live-coding-controller.d.ts +0 -75
- package/dist/live-coding/live-coding-controller.d.ts.map +0 -1
- package/dist/live-coding/live-coding-controller.js +0 -141
- package/dist/live-coding/mount.d.ts +0 -26
- package/dist/live-coding/mount.d.ts.map +0 -1
- package/dist/live-coding/mount.js +0 -108
- package/dist/live-coding/templates.d.ts +0 -17
- package/dist/live-coding/templates.d.ts.map +0 -1
- package/dist/live-coding/templates.js +0 -59
package/MIGRATION.md
CHANGED
|
@@ -1,46 +1,68 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
# CrowdyJS v11 — Crowdy Studio rename (BREAKING)
|
|
2
|
+
|
|
3
|
+
Version 11 removes the previous Mod Studio names completely. There are no
|
|
4
|
+
compatibility exports, client properties, package subpaths, GraphQL operations,
|
|
5
|
+
schema types, or CSS aliases.
|
|
6
|
+
|
|
7
|
+
Rename imports and API access:
|
|
8
|
+
|
|
9
|
+
- `@crowdedkingdoms/crowdyjs/mod-studio` →
|
|
10
|
+
`@crowdedkingdoms/crowdyjs/crowdy-studio`
|
|
11
|
+
- `mountModStudio` → `mountCrowdyStudio`
|
|
12
|
+
- `ModStudioController` → `CrowdyStudioController`
|
|
13
|
+
- `MountModStudioOptions` → `MountCrowdyStudioOptions`
|
|
14
|
+
- `ModStudioHandle` → `CrowdyStudioHandle`
|
|
15
|
+
- every other public `ModStudio*` model, error, diagnostic, and editor type →
|
|
16
|
+
its `CrowdyStudio*` equivalent
|
|
17
|
+
- `modStudioFileKey`, `modStudioFileUri`, and `normalizeModStudioPath` →
|
|
18
|
+
`crowdyStudioFileKey`, `crowdyStudioFileUri`, and
|
|
19
|
+
`normalizeCrowdyStudioPath`
|
|
20
|
+
- `client.playerCodeProjects` → `client.crowdyStudio`
|
|
21
|
+
- `PlayerCodeProjectsAPI` → `CrowdyStudioAPI`
|
|
22
|
+
- CSS classes under `ck-mod-studio*` → `ck-crowdy-studio*`
|
|
23
|
+
|
|
24
|
+
The matching Game API schema is required. Its project roots changed from
|
|
25
|
+
`playerCodeProjects`, `playerCodeProject`, `playerCodeProjectCreate`,
|
|
26
|
+
`playerCodeProjectSave`, `playerCodeLibraryFiles`, `playerCodeLibrarySave`,
|
|
27
|
+
`playerCodeCommonFiles`, and `playerCodeProjectImportFile` to the corresponding
|
|
28
|
+
`crowdyStudio*` roots. Project, library, common-file, input, and enum schema
|
|
29
|
+
types likewise use `CrowdyStudio` in place of `PlayerCode`.
|
|
8
30
|
|
|
9
31
|
```ts
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
32
|
+
import { mountCrowdyStudio } from '@crowdedkingdoms/crowdyjs/crowdy-studio';
|
|
33
|
+
|
|
34
|
+
const studio = await mountCrowdyStudio(host, {
|
|
35
|
+
projectProvider: game.crowdyStudio,
|
|
36
|
+
playerCompute: game.playerCompute,
|
|
37
|
+
playerWallet: identity.playerWallet,
|
|
38
|
+
appId,
|
|
39
|
+
gridId,
|
|
40
|
+
grid,
|
|
41
|
+
workerUrl: playerCodeGlueWorkerUrl,
|
|
42
|
+
onHostCall,
|
|
20
43
|
});
|
|
21
44
|
```
|
|
22
45
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
version intentionally remains unchanged until the coordinated major release.
|
|
46
|
+
Provider behavior, optimistic saves, target permissions, the credential-free
|
|
47
|
+
worker, full-stack deploy ordering, and stop semantics are unchanged.
|
|
48
|
+
|
|
49
|
+
# CrowdyJS v10 — project-first authoring (historical)
|
|
50
|
+
|
|
51
|
+
Version 10 replaced the session-only live-coding API with cloud projects. It
|
|
52
|
+
removed `mountLiveCodingIDE`, `mountLiveCoding`, `LiveCodingController`,
|
|
53
|
+
`MountLiveCodingOptions`, `PLAYER_CODE_TEMPLATES`, `templateById`, the
|
|
54
|
+
`moduleName` and `draftByDefault` mount options, and the
|
|
55
|
+
`@crowdedkingdoms/crowdyjs/live-coding` package subpath.
|
|
56
|
+
|
|
57
|
+
Projects introduced one shared optimistic revision for SERVER and CLIENT files,
|
|
58
|
+
project metadata and module names, personal-library/common-file imports, atomic
|
|
59
|
+
autosave, and explicit **Test draft**, **Deploy live**, and **Stop project**
|
|
60
|
+
actions. Full-stack deployment was ordered CLIENT compile → SERVER compile →
|
|
61
|
+
`setRequires` → SERVER enable → exact-version CLIENT artifact hot-swap.
|
|
62
|
+
|
|
63
|
+
The browser Rust worker remained credential-free and server-free. Monaco used
|
|
64
|
+
target-prefixed URIs for cross-file language features and retained the
|
|
65
|
+
target/file-aware textarea fallback.
|
|
44
66
|
|
|
45
67
|
# CrowdyJS v8.10 Notes
|
|
46
68
|
|
package/README.md
CHANGED
|
@@ -32,11 +32,14 @@ CrowdyJS v4 targets browsers by default and uses native `fetch`, `WebSocket`, `c
|
|
|
32
32
|
>
|
|
33
33
|
> **Player-code authoring DX:** `playerCompute.setRequires`,
|
|
34
34
|
> `marketplace.trustGridAuthor`, self-authored `gridClientMods` fields, and
|
|
35
|
-
>
|
|
36
|
-
> migration. `
|
|
37
|
-
>
|
|
38
|
-
>
|
|
39
|
-
>
|
|
35
|
+
> version-keyed client artifact fetches require the 2026-07-22 authoring-DX
|
|
36
|
+
> migration. The v11 `mountCrowdyStudio` surface is project-first: cloud project
|
|
37
|
+
> revisions, target-scoped files, atomic autosave, and explicit draft/live/stop
|
|
38
|
+
> orchestration. Its Rust language worker receives source plus the committed
|
|
39
|
+
> platform index only—never a credential and never a server connection.
|
|
40
|
+
> CrowdyJS 11 requires the matching Crowdy Studio Game API schema; the previous
|
|
41
|
+
> package subpath, exports, client property, GraphQL roots, and schema types were
|
|
42
|
+
> removed without aliases.
|
|
40
43
|
|
|
41
44
|
> **v8.10 inventory authority:** generated craft/barter transactions work on
|
|
42
45
|
> existing Model servers. Compute-refereed durable commits require Compute SDK
|
|
@@ -66,7 +69,7 @@ together whenever the public GraphQL surface changes; `npm run check:schema`
|
|
|
66
69
|
detects drift in CI/release work.
|
|
67
70
|
|
|
68
71
|
The browser authoring index follows the same boundary. `npm run build` validates
|
|
69
|
-
only the committed `src/live-coding/assets/browser-authoring-index.json` and its
|
|
72
|
+
only the committed internal `src/live-coding/assets/browser-authoring-index.json` and its
|
|
70
73
|
generated TypeScript copy; it never discovers or reads a sibling game-api
|
|
71
74
|
checkout. Coordinated maintainers compare an explicitly supplied exporter path:
|
|
72
75
|
|
|
@@ -140,6 +143,7 @@ If `managementUrl` is omitted, the SDK falls back to `httpUrl` for backwards-com
|
|
|
140
143
|
| `client.gameModel` | Abstract game model: containers, properties, functions (incl. model-driven `notify_*` effects), sessions, and **automations / NPCs** (`upsertAutomation`, `runAutomation`, `automationRuns`, `automationStats`, …). |
|
|
141
144
|
| `client.compute` | **Compute Modules** — server-side Rust/WASM logic: author + deploy source (`upsertModule`, `deployVersion`, `waitForCompile`), triggers + policy, synchronous `invoke`, and monitoring (`moduleRuns`, `moduleStats`, `moduleLogs`, `appDiagnostics`). Modules run server-only; see [Compute Modules docs](https://docs.crowdedkingdoms.com/game-api/compute-modules). |
|
|
142
145
|
| `client.playerCompute` | Player-authored SERVER/CLIENT Rust/WASM bound to player-owned grids: deploy source, activate/deactivate, list modules/versions, and delete self-authored modules. |
|
|
146
|
+
| `client.crowdyStudio` | Cloud project, personal-library, and common-file APIs for Crowdy Studio: target-scoped files, metadata/module names, pairing preference, optimistic revisions, copy-by-value imports, and atomic metadata/file saves. Generated operations are pinned to the committed merged SDL. |
|
|
143
147
|
| `client.playerModel` | Player-owned flexible model containers and grid-confined automations (`containers`, `createContainer`, `setProperty`, `automations`, `createAutomation`, …). |
|
|
144
148
|
| `client.marketplace` | Player-code store/install/consent flows plus player-authorized grid claims: `claimGridOwnership` preserves the existing-grid policy flow, while `claimGridChunk` atomically creates and owns one chunk under `SELF_CLAIM` and `releaseClaimedGrid` releases an eligible owner-created claim. |
|
|
145
149
|
| `client.udp` | UDP proxy subscriptions + spatial mutations (`sendActorUpdate`, `sendVoxelUpdate`, `sendAudioPacket`, `sendTextPacket`, `sendClientEvent`). |
|
|
@@ -147,38 +151,28 @@ If `managementUrl` is omitted, the SDK falls back to `httpUrl` for backwards-com
|
|
|
147
151
|
| `client.refreshGameplayToken()` | Safely rotates an active game client's app token: disconnects the old-token UDP proxy, refreshes/stores the token, and opens the new-token proxy while existing realtime handlers resubscribe in place. |
|
|
148
152
|
| `client.world(appId)` | Higher-level helpers for browser games (`actor.join`, `actor.sendState`, `actor.sendText`). |
|
|
149
153
|
|
|
150
|
-
`PlayerCodeBroker`
|
|
154
|
+
`PlayerCodeBroker` transfers
|
|
151
155
|
compiled client artifacts to a platform-owned worker, keeps tokens on the page,
|
|
152
156
|
allow-lists host calls, and locally clamps chunk-targeted effects to the owned
|
|
153
|
-
grid before the normal SDK path reaches server authorization.
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
The mount initializes the required monaco-vscode base/editor services once
|
|
166
|
-
before creating any editor. Consumers must not provide a separate Monaco
|
|
167
|
-
initialization workaround; concurrent mounts share services but receive
|
|
168
|
-
isolated model roots, and destroyed roots are reusable by later mounts.
|
|
169
|
-
|
|
170
|
-
The worker speaks the LSP 3.17 subset above over a standard
|
|
171
|
-
`vscode-jsonrpc` `MessageConnection` and Worker `MessageReader`/`MessageWriter`.
|
|
172
|
-
Small direct Monaco providers adapt editor actions to that connection.
|
|
173
|
-
`monaco-languageclient` is intentionally absent: its current release hard-depends
|
|
174
|
-
on the forbidden `vscode-ws-jsonrpc` WSS adapter and boots a much larger VS Code
|
|
175
|
-
service stack. Removing it does not replace LSP with ad-hoc messages.
|
|
157
|
+
grid before the normal SDK path reaches server authorization. Crowdy Studio
|
|
158
|
+
hot-swaps only the exact version-keyed artifact returned after a successful
|
|
159
|
+
CLIENT compile.
|
|
160
|
+
|
|
161
|
+
## Crowdy Studio
|
|
162
|
+
|
|
163
|
+
`mountCrowdyStudio` is the project-first SERVER/CLIENT Rust authoring surface. A
|
|
164
|
+
project has one cloud revision, target-scoped files, project metadata, separate
|
|
165
|
+
server/client module names, and a pairing preference. Full-stack edits autosave
|
|
166
|
+
as one optimistic-concurrency write; the UI renders **Saving**, **Saved**,
|
|
167
|
+
**Conflict**, or **Offline**, with retry and conflict-resolution actions.
|
|
176
168
|
|
|
177
169
|
```ts
|
|
178
|
-
import {
|
|
170
|
+
import { mountCrowdyStudio } from '@crowdedkingdoms/crowdyjs/crowdy-studio';
|
|
179
171
|
|
|
180
|
-
const
|
|
172
|
+
const studio = await mountCrowdyStudio(host, {
|
|
173
|
+
projectProvider: game.crowdyStudio,
|
|
181
174
|
playerCompute: game.playerCompute,
|
|
175
|
+
playerWallet: identity.playerWallet,
|
|
182
176
|
appId,
|
|
183
177
|
gridId,
|
|
184
178
|
grid,
|
|
@@ -186,26 +180,68 @@ const handle = await mountLiveCodingIDE(host, {
|
|
|
186
180
|
onHostCall,
|
|
187
181
|
});
|
|
188
182
|
|
|
189
|
-
//
|
|
190
|
-
|
|
183
|
+
// Stops editor/runtime polling, the Rust worker, and any client broker owned
|
|
184
|
+
// by this mount. It does not implicitly disable a deliberately live server.
|
|
185
|
+
studio.destroy();
|
|
191
186
|
```
|
|
192
187
|
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
The
|
|
201
|
-
(
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
188
|
+
Use `new CrowdyStudioController(options)` for a custom/headless presentation. Its
|
|
189
|
+
public edits are file operations (`addFile`, `renameFile`, `deleteFile`,
|
|
190
|
+
`updateFile`) and project settings—there is no session-only source blob, fixed
|
|
191
|
+
module name, or template JSON API. The deploy conversion to the Game API's
|
|
192
|
+
legacy `sourceFilesJson` input happens only inside the controller's
|
|
193
|
+
`playerCompute.deploy` call.
|
|
194
|
+
|
|
195
|
+
The built-in UI provides a project switcher/new-project wizard
|
|
196
|
+
(server/client/full-stack), target explorer, personal library/common files,
|
|
197
|
+
tabs, settings, Problems/Build/Logs/Runs/Invoke panels, and explicit **Test
|
|
198
|
+
draft**, **Deploy live**, and **Stop project** actions. Full-stack deployment is
|
|
199
|
+
ordered: save once → compile CLIENT → compile SERVER → set/clear the pairing
|
|
200
|
+
requirement only after both compiles → enable SERVER → hot-swap the exact
|
|
201
|
+
version-keyed CLIENT artifact. Partial compile failures never write a new
|
|
202
|
+
requirement. Stop always attempts both server disable and client/poll cleanup
|
|
203
|
+
and reports each failure.
|
|
204
|
+
|
|
205
|
+
Monaco uses target-prefixed model URIs (`.../server/Cargo.toml` and
|
|
206
|
+
`.../client/Cargo.toml`) and opens every loaded project/library/common Rust file
|
|
207
|
+
in one bounded local worker workspace. Completion, hover, symbols, and
|
|
208
|
+
definition therefore work across loaded files; lifecycle snippets and hover
|
|
209
|
+
notes distinguish SERVER platform execution from CLIENT broker host calls.
|
|
210
|
+
Local tree-sitter markers are labeled advisory. Platform rustc output is parsed
|
|
211
|
+
separately into authoritative path/line/column markers and remains visible in
|
|
212
|
+
Build.
|
|
213
|
+
|
|
214
|
+
The Rust worker receives source files and the strict embedded platform index
|
|
215
|
+
only. It receives no credential, opens no socket/fetch path, and never falls
|
|
216
|
+
back to a server language service. If Monaco, Worker, a WASM asset, or a custom
|
|
217
|
+
platform index fails, the same Crowdy Studio mount keeps project/target tabs and
|
|
218
|
+
uses one file-aware textarea—never a raw JSON blob.
|
|
219
|
+
|
|
220
|
+
Modern bundlers must preserve module workers and package `.wasm` assets. Custom
|
|
221
|
+
pipelines can pass `languageWorkerFactory` and `editorWorkerFactory`. The
|
|
222
|
+
embedded index remains the byte-identical game export (`schemaVersion: 2`, Rust
|
|
223
|
+
1.97.1, SDK 0.1.5, ABI 0, 725 symbols, content hash
|
|
224
|
+
`3f5f39d4…18ffb`).
|
|
225
|
+
|
|
226
|
+
### Game API project contract
|
|
227
|
+
|
|
228
|
+
`CrowdyStudioAPI` implements the transport-neutral
|
|
229
|
+
`CrowdyStudioProjectProvider`; generated GraphQL types remain inside the adapter.
|
|
230
|
+
The committed merged schema and generated operations cover:
|
|
231
|
+
|
|
232
|
+
- `crowdyStudioProjects(appId)` / `crowdyStudioProject(appId, projectId)`
|
|
233
|
+
- `crowdyStudioProjectCreate(input)`
|
|
234
|
+
- `crowdyStudioProjectSave(input)` for one atomic metadata/file delta
|
|
235
|
+
- `crowdyStudioLibraryFiles(appId)` / `crowdyStudioLibrarySave(input)`
|
|
236
|
+
- `crowdyStudioCommonFiles(appId)`
|
|
237
|
+
- `crowdyStudioProjectImportFile(input)` for copy-by-value imports
|
|
238
|
+
|
|
239
|
+
The adapter maps the API's `PAIRED | INDEPENDENT | SERVER_ONLY | CLIENT_ONLY`
|
|
240
|
+
presentation enum to Crowdy Studio's runtime-oriented project kind and
|
|
241
|
+
`REQUIRED | OPTIONAL | NONE` setting. A stale expected `revision` arrives as
|
|
242
|
+
`CONFLICT` with `CROWDY_STUDIO_REVISION_CONFLICT` in the message and becomes a
|
|
243
|
+
`CrowdyStudioRevisionConflictError` with the latest cloud project when that
|
|
244
|
+
follow-up read succeeds.
|
|
209
245
|
|
|
210
246
|
| `createWorldSession(client, appId, config)` (from `@crowdedkingdoms/crowdyjs/stores`) | World Stores: opt-in, SDK-managed game state — typed codecs (`structCodec` binary DSL), your own actor with a 5 Hz send loop (`session.self`), a remote-actor registry with lanes/history/staleness (`session.actors`), attributed send errors (`session.errors`), a chunk/voxel cache with realtime merge + worldgen write-back (`session.chunks`), channel/direct-message inboxes + a typed event router, host tracking, typed save/avatar state, and a game-model container mirror. Only configured stores exist (compile-time + runtime); unimported stores tree-shake away. |
|
|
211
247
|
| `client.kit(appId)` | Game Kit: ready-made mappings of game concepts onto the game model — `kit.inventory`, `kit.objects` (lockable doors/chests with custom permissions), `kit.npcs`, `kit.plots` (buy/rent land with transactional, replication-enforced grid grants), and the genre layers `kit.economy` (wallets/shops/trades/market), `kit.progression` (xp/skills/achievements/rating), `kit.loot`, `kit.quests`, `kit.combat`, `kit.matches` (session lobbies/turns/scores with notify-to-pull channels), `kit.decks` (hidden hands), `kit.worldsim` (clock/nodes/crops/waves), `kit.social` (parties/guilds/chat over teams+channels), `kit.leaderboards`, `kit.features` (tier gates), and the engine-aware helpers `kit.mobs` (refereed attacks, defs/slots, contact-damage parsing), `kit.pets` (adopt/summon/dismiss/rename), `kit.instances` (private world slices, seeded runs), `kit.director` (encounter runs), `kit.matchmaking` (queues/proposals/rating), `kit.minigames` (invoke-loop wrapper), `kit.economy.orderBook` (escrowed bid/ask market), engine paths on `kit.matches`/`kit.decks`/`kit.leaderboards`, `kit.quests` tutorial sequencing, `kit.engines` (compute capability detection) with `kit/wire` (the engine pose codec, `engineLanes()`, and the 77/90/91/92/93 event parsers) — plus blueprint builders + `kit.deploy(...)` for the admin "load the rules" step. |
|
package/dist/crowdy-client.d.ts
CHANGED
|
@@ -59,6 +59,7 @@ import { UdpAPI } from './domains/udp.js';
|
|
|
59
59
|
import { GameModelAPI } from './domains/gameModel.js';
|
|
60
60
|
import { ComputeAPI } from './domains/compute.js';
|
|
61
61
|
import { PlayerComputeAPI } from './domains/playerCompute.js';
|
|
62
|
+
import { CrowdyStudioAPI } from './domains/crowdyStudio.js';
|
|
62
63
|
import { PlayerWalletAPI } from './domains/playerWallet.js';
|
|
63
64
|
import { MarketplaceAPI } from './domains/marketplace.js';
|
|
64
65
|
import { PlayerModelAPI } from './domains/playerModel.js';
|
|
@@ -197,6 +198,8 @@ export declare class CrowdyClient {
|
|
|
197
198
|
readonly compute: ComputeAPI;
|
|
198
199
|
/** Player-authored Rust/WASM bound to player-owned grids. */
|
|
199
200
|
readonly playerCompute: PlayerComputeAPI;
|
|
201
|
+
/** Crowdy Studio cloud projects, libraries, and common source files. */
|
|
202
|
+
readonly crowdyStudio: CrowdyStudioAPI;
|
|
200
203
|
/** P4a marketplace (free mode): store, installs, consent, claim flows. */
|
|
201
204
|
readonly marketplace: MarketplaceAPI;
|
|
202
205
|
/** Player wallet, spend caps, hourly usage charges, and player policy (P2). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crowdy-client.d.ts","sourceRoot":"","sources":["../src/crowdy-client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"crowdy-client.d.ts","sourceRoot":"","sources":["../src/crowdy-client.ts"],"names":[],"mappings":"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"}
|
package/dist/crowdy-client.js
CHANGED
|
@@ -58,6 +58,7 @@ import { UdpAPI } from './domains/udp.js';
|
|
|
58
58
|
import { GameModelAPI } from './domains/gameModel.js';
|
|
59
59
|
import { ComputeAPI } from './domains/compute.js';
|
|
60
60
|
import { PlayerComputeAPI } from './domains/playerCompute.js';
|
|
61
|
+
import { CrowdyStudioAPI } from './domains/crowdyStudio.js';
|
|
61
62
|
import { PlayerWalletAPI } from './domains/playerWallet.js';
|
|
62
63
|
import { MarketplaceAPI } from './domains/marketplace.js';
|
|
63
64
|
import { PlayerModelAPI } from './domains/playerModel.js';
|
|
@@ -120,6 +121,7 @@ export class CrowdyClient {
|
|
|
120
121
|
});
|
|
121
122
|
this.compute = new ComputeAPI(this.graphql);
|
|
122
123
|
this.playerCompute = new PlayerComputeAPI(this.graphql);
|
|
124
|
+
this.crowdyStudio = new CrowdyStudioAPI(this.graphql);
|
|
123
125
|
this.playerWallet = new PlayerWalletAPI(this.management);
|
|
124
126
|
this.marketplace = new MarketplaceAPI(this.graphql, this.management);
|
|
125
127
|
this.playerModel = new PlayerModelAPI(this.graphql);
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { type PlayerCodeBrokerOptions, type PlayerCodeGridBounds } from '../player-runtime/player-code-broker.js';
|
|
2
|
+
import type { PlayerComputeAPI } from '../domains/playerCompute.js';
|
|
3
|
+
import type { PlayerWalletAPI } from '../domains/playerWallet.js';
|
|
4
|
+
import { type CrowdyStudioDiagnostic } from './diagnostics.js';
|
|
5
|
+
import { type CrowdyStudioFileRef, type CrowdyStudioPairingPreference, type CrowdyStudioProject, type CrowdyStudioProjectMetadata, type CrowdyStudioProjectProvider, type CrowdyStudioProjectSummary, type CrowdyStudioReferenceFile, type CrowdyStudioSaveState, type CrowdyStudioTarget } from './models.js';
|
|
6
|
+
import { type CrowdyStudioNewProjectOptions } from './starter-projects.js';
|
|
7
|
+
export type CrowdyStudioPhase = 'IDLE' | 'TESTING_DRAFT' | 'DEPLOYING_LIVE' | 'COMPILING' | 'ENABLING' | 'RUNNING' | 'COMPILE_FAILED' | 'STOPPING' | 'STOPPED' | 'PARTIAL_FAILURE' | 'ERROR';
|
|
8
|
+
export type CrowdyStudioPolledSurface = 'runs' | 'logs' | 'usage';
|
|
9
|
+
export interface CrowdyStudioRuntimeStatus {
|
|
10
|
+
phase: CrowdyStudioPhase;
|
|
11
|
+
target?: CrowdyStudioTarget;
|
|
12
|
+
message?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface CrowdyStudioUsageSnapshot {
|
|
15
|
+
hourUnitsUsed: string;
|
|
16
|
+
dayUnitsUsed: string;
|
|
17
|
+
unitsPerHour: string | null;
|
|
18
|
+
unitsPerDay: string | null;
|
|
19
|
+
compilesThisHour: number;
|
|
20
|
+
maxCompilesPerHour: number;
|
|
21
|
+
gateStatus: string;
|
|
22
|
+
gateReason: string | null;
|
|
23
|
+
}
|
|
24
|
+
export interface CrowdyStudioWalletSnapshot {
|
|
25
|
+
balanceCents: string;
|
|
26
|
+
currency: string;
|
|
27
|
+
}
|
|
28
|
+
export interface CrowdyStudioRun {
|
|
29
|
+
runId: string;
|
|
30
|
+
moduleName: string;
|
|
31
|
+
triggerSource: string;
|
|
32
|
+
startedAt: string;
|
|
33
|
+
durationUs: number;
|
|
34
|
+
fuelUsed: string;
|
|
35
|
+
success: boolean;
|
|
36
|
+
errorMessage?: string | null;
|
|
37
|
+
}
|
|
38
|
+
export interface CrowdyStudioInvokeResult {
|
|
39
|
+
resultBase64?: string | null;
|
|
40
|
+
resultJson?: string | null;
|
|
41
|
+
fuelUsed?: string;
|
|
42
|
+
durationUs?: number;
|
|
43
|
+
}
|
|
44
|
+
export interface CrowdyStudioState {
|
|
45
|
+
projects: readonly CrowdyStudioProjectSummary[];
|
|
46
|
+
project: CrowdyStudioProject | null;
|
|
47
|
+
personalLibraryFiles: readonly CrowdyStudioReferenceFile[];
|
|
48
|
+
commonFiles: readonly CrowdyStudioReferenceFile[];
|
|
49
|
+
openFiles: readonly CrowdyStudioFileRef[];
|
|
50
|
+
activeFile: CrowdyStudioFileRef | null;
|
|
51
|
+
saveState: CrowdyStudioSaveState;
|
|
52
|
+
saveMessage?: string;
|
|
53
|
+
runtime: CrowdyStudioRuntimeStatus;
|
|
54
|
+
buildOutput: string;
|
|
55
|
+
authoritativeDiagnostics: readonly CrowdyStudioDiagnostic[];
|
|
56
|
+
localDiagnostics: readonly CrowdyStudioDiagnostic[];
|
|
57
|
+
runs: readonly CrowdyStudioRun[];
|
|
58
|
+
logs: readonly CrowdyStudioRun[];
|
|
59
|
+
usage: CrowdyStudioUsageSnapshot | null;
|
|
60
|
+
wallet: CrowdyStudioWalletSnapshot | null;
|
|
61
|
+
invokeResult: CrowdyStudioInvokeResult | null;
|
|
62
|
+
}
|
|
63
|
+
export type CrowdyStudioPlayerCompute = Pick<PlayerComputeAPI, 'deploy' | 'versions' | 'setEnabled' | 'setRequires' | 'artifactBytes' | 'usage' | 'runs' | 'logs' | 'invoke'>;
|
|
64
|
+
export type CrowdyStudioPlayerWallet = Pick<PlayerWalletAPI, 'balance'>;
|
|
65
|
+
export interface CrowdyStudioBroker {
|
|
66
|
+
start(bytes: ArrayBuffer): Promise<void>;
|
|
67
|
+
stop(): void;
|
|
68
|
+
}
|
|
69
|
+
export interface CrowdyStudioControllerOptions {
|
|
70
|
+
projectProvider: CrowdyStudioProjectProvider;
|
|
71
|
+
playerCompute: CrowdyStudioPlayerCompute;
|
|
72
|
+
playerWallet?: CrowdyStudioPlayerWallet;
|
|
73
|
+
appId: string;
|
|
74
|
+
gridId: string;
|
|
75
|
+
initialProjectId?: string;
|
|
76
|
+
/** Required only when a project has a CLIENT target. */
|
|
77
|
+
grid?: PlayerCodeGridBounds;
|
|
78
|
+
/** Platform-owned glue worker; required only for CLIENT execution. */
|
|
79
|
+
workerUrl?: string | URL;
|
|
80
|
+
/** Page-side allow-listed host-call router; required only for CLIENT execution. */
|
|
81
|
+
onHostCall?: PlayerCodeBrokerOptions['onHostCall'];
|
|
82
|
+
onPresentation?: PlayerCodeBrokerOptions['onPresentation'];
|
|
83
|
+
/** Host-visible effective permissions; server authorization remains final. */
|
|
84
|
+
targetPermissions?: Partial<Record<CrowdyStudioTarget, {
|
|
85
|
+
canWrite: boolean;
|
|
86
|
+
canRun: boolean;
|
|
87
|
+
}>>;
|
|
88
|
+
clientTickIntervalMs?: number;
|
|
89
|
+
autosaveMs?: number;
|
|
90
|
+
retryMs?: number;
|
|
91
|
+
compilePollMs?: number;
|
|
92
|
+
compilePollLimit?: number;
|
|
93
|
+
monitorPollMs?: number;
|
|
94
|
+
sleep?: (ms: number) => Promise<void>;
|
|
95
|
+
brokerFactory?: (options: PlayerCodeBrokerOptions) => CrowdyStudioBroker;
|
|
96
|
+
isOnline?: () => boolean;
|
|
97
|
+
onStateChange?: (state: CrowdyStudioState) => void;
|
|
98
|
+
}
|
|
99
|
+
export interface CrowdyStudioStopResult {
|
|
100
|
+
serverStopped: boolean | null;
|
|
101
|
+
clientStopped: boolean | null;
|
|
102
|
+
failures: string[];
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Headless project-first Crowdy Studio driver. It owns optimistic project saves,
|
|
106
|
+
* file CRUD, deployment ordering, runtime polling, and client hot swaps; the
|
|
107
|
+
* DOM mount is only a view over this state.
|
|
108
|
+
*/
|
|
109
|
+
export declare class CrowdyStudioController {
|
|
110
|
+
private readonly options;
|
|
111
|
+
private state;
|
|
112
|
+
private readonly listeners;
|
|
113
|
+
private autosaveTimer;
|
|
114
|
+
private retryTimer;
|
|
115
|
+
private savePromise;
|
|
116
|
+
private editGeneration;
|
|
117
|
+
private persistedGeneration;
|
|
118
|
+
private conflictRemote;
|
|
119
|
+
private broker;
|
|
120
|
+
private operationGeneration;
|
|
121
|
+
private readonly visibleSurfaces;
|
|
122
|
+
private readonly surfaceTimers;
|
|
123
|
+
private pageVisible;
|
|
124
|
+
private destroyed;
|
|
125
|
+
constructor(options: CrowdyStudioControllerOptions);
|
|
126
|
+
getState(): CrowdyStudioState;
|
|
127
|
+
subscribe(listener: (state: CrowdyStudioState) => void): () => void;
|
|
128
|
+
canTarget(target: CrowdyStudioTarget, action: 'write' | 'run'): boolean;
|
|
129
|
+
initialize(): Promise<void>;
|
|
130
|
+
createProject(options: Omit<CrowdyStudioNewProjectOptions, 'appId' | 'gridId'>): Promise<CrowdyStudioProject>;
|
|
131
|
+
switchProject(projectId: string): Promise<void>;
|
|
132
|
+
private loadProject;
|
|
133
|
+
private installProject;
|
|
134
|
+
openFile(ref: CrowdyStudioFileRef): void;
|
|
135
|
+
closeFile(ref: CrowdyStudioFileRef): void;
|
|
136
|
+
fileContent(ref: CrowdyStudioFileRef): string;
|
|
137
|
+
addFile(target: CrowdyStudioTarget, path: string, content?: string): void;
|
|
138
|
+
renameFile(target: CrowdyStudioTarget, path: string, nextPath: string): void;
|
|
139
|
+
deleteFile(target: CrowdyStudioTarget, path: string): void;
|
|
140
|
+
importReferenceFile(reference: CrowdyStudioReferenceFile, destinationPath?: string): Promise<void>;
|
|
141
|
+
saveProjectFileToLibrary(target: CrowdyStudioTarget, path: string, title?: string): Promise<CrowdyStudioReferenceFile>;
|
|
142
|
+
updateFile(target: CrowdyStudioTarget, path: string, content: string): void;
|
|
143
|
+
updateSettings(patch: Partial<Pick<CrowdyStudioProjectMetadata, 'name' | 'description' | 'serverModuleName' | 'clientModuleName' | 'pairingPreference'>>): void;
|
|
144
|
+
setPairingPreference(preference: CrowdyStudioPairingPreference): void;
|
|
145
|
+
setLocalDiagnostics(diagnostics: readonly CrowdyStudioDiagnostic[]): void;
|
|
146
|
+
/**
|
|
147
|
+
* Flush all edits in one optimistic-concurrency save. If edits arrive while
|
|
148
|
+
* the request is in flight, a second atomic save follows with the new
|
|
149
|
+
* revision instead of overwriting local content with the earlier response.
|
|
150
|
+
*/
|
|
151
|
+
saveNow(): Promise<boolean>;
|
|
152
|
+
retrySave(): Promise<boolean>;
|
|
153
|
+
acceptRemoteConflict(): Promise<void>;
|
|
154
|
+
overwriteConflict(): Promise<boolean>;
|
|
155
|
+
testDraft(): Promise<void>;
|
|
156
|
+
deployLive(): Promise<void>;
|
|
157
|
+
private deployProject;
|
|
158
|
+
private compileTarget;
|
|
159
|
+
private recordBuild;
|
|
160
|
+
private enableServer;
|
|
161
|
+
private runClient;
|
|
162
|
+
stopProject(): Promise<CrowdyStudioStopResult>;
|
|
163
|
+
invoke(exportName: string, paramsJson?: string): Promise<CrowdyStudioInvokeResult>;
|
|
164
|
+
setSurfaceVisible(surface: CrowdyStudioPolledSurface, visible: boolean): void;
|
|
165
|
+
setPageVisible(visible: boolean): void;
|
|
166
|
+
refreshSurface(surface: CrowdyStudioPolledSurface): Promise<void>;
|
|
167
|
+
destroy(): void;
|
|
168
|
+
private performSaveLoop;
|
|
169
|
+
private markEdited;
|
|
170
|
+
private scheduleRetry;
|
|
171
|
+
private scheduleSurfacePoll;
|
|
172
|
+
private restartVisibleSurfacePolling;
|
|
173
|
+
private stopSurfacePolling;
|
|
174
|
+
private clearSurfaceTimer;
|
|
175
|
+
private clearSaveTimers;
|
|
176
|
+
private clearTimer;
|
|
177
|
+
private clientRuntimeOptions;
|
|
178
|
+
private checkOperation;
|
|
179
|
+
private sleep;
|
|
180
|
+
private requireProject;
|
|
181
|
+
private requireFile;
|
|
182
|
+
private assertProjectTarget;
|
|
183
|
+
private scope;
|
|
184
|
+
private setRuntime;
|
|
185
|
+
private update;
|
|
186
|
+
private ensureAlive;
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/crowdy-studio/controller.ts"],"names":[],"mappings":"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"}
|