@crowdedkingdoms/crowdyjs 17.12.0-dev.1 → 17.14.0-dev.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/MIGRATION.md +127 -0
- package/README.md +99 -4
- package/dist/crowdy-dsh/bridge.d.ts.map +1 -1
- package/dist/crowdy-dsh/bridge.js +2 -0
- package/dist/crowdy-studio/controller.d.ts +64 -8
- package/dist/crowdy-studio/controller.d.ts.map +1 -1
- package/dist/crowdy-studio/controller.js +345 -46
- package/dist/crowdy-studio/dom-shell.d.ts.map +1 -1
- package/dist/crowdy-studio/dom-shell.js +16 -9
- package/dist/crowdy-studio/embed/hud-layer.d.ts +2 -1
- package/dist/crowdy-studio/embed/hud-layer.d.ts.map +1 -1
- package/dist/crowdy-studio/embed/panel.d.ts +9 -6
- package/dist/crowdy-studio/embed/panel.d.ts.map +1 -1
- package/dist/crowdy-studio/embed/panel.js +4 -2
- package/dist/crowdy-studio/index.d.ts +2 -2
- package/dist/crowdy-studio/index.d.ts.map +1 -1
- package/dist/crowdy-studio/models.d.ts +1 -1
- package/dist/crowdy-studio/starter-projects.d.ts +22 -0
- package/dist/crowdy-studio/starter-projects.d.ts.map +1 -1
- package/dist/crowdy-studio/starter-projects.js +129 -5
- package/dist/domains/exec.d.ts +222 -20
- package/dist/domains/exec.d.ts.map +1 -1
- package/dist/domains/exec.js +215 -21
- package/dist/domains/marketplace.d.ts +15 -3
- package/dist/domains/marketplace.d.ts.map +1 -1
- package/dist/domains/marketplace.js +17 -3
- package/dist/errors.d.ts +3 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/generated/graphql.d.ts +422 -0
- package/dist/generated/graphql.d.ts.map +1 -1
- package/dist/generated/graphql.js +23 -11
- package/dist/grid-mods/exec-client-halves.d.ts +140 -0
- package/dist/grid-mods/exec-client-halves.d.ts.map +1 -0
- package/dist/grid-mods/exec-client-halves.js +341 -0
- package/dist/grid-mods/grid-host-calls.d.ts +3 -1
- package/dist/grid-mods/grid-host-calls.d.ts.map +1 -1
- package/dist/grid-mods/grid-host-calls.js +3 -1
- package/dist/grid-mods/index.d.ts +1 -0
- package/dist/grid-mods/index.d.ts.map +1 -1
- package/dist/grid-mods/index.js +1 -0
- package/dist/grid-mods/mod-runtime.d.ts +10 -2
- package/dist/grid-mods/mod-runtime.d.ts.map +1 -1
- package/dist/grid-mods/mod-runtime.js +2 -0
- package/dist/grid-scope.d.ts +1 -0
- package/dist/grid-scope.d.ts.map +1 -1
- package/dist/grid-scope.js +1 -0
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/kit/npcs.d.ts.map +1 -1
- package/dist/kit/social.d.ts.map +1 -1
- package/dist/live-coding/rust-analysis.js +13 -1
- package/dist/player-runtime/glue-runtime.d.ts +19 -6
- package/dist/player-runtime/glue-runtime.d.ts.map +1 -1
- package/dist/player-runtime/glue-runtime.js +40 -16
- package/dist/player-runtime/player-code-broker.d.ts +29 -0
- package/dist/player-runtime/player-code-broker.d.ts.map +1 -1
- package/dist/player-runtime/player-code-broker.js +41 -8
- package/dist/player-runtime/player-glue-worker.d.ts +2 -1
- package/dist/player-runtime/player-glue-worker.d.ts.map +1 -1
- package/dist/player-runtime/player-glue-worker.js +3 -1
- package/dist/stores/actors.d.ts +12 -2
- package/dist/stores/actors.d.ts.map +1 -1
- package/dist/stores/actors.js +43 -18
- package/dist/stores/chunks.d.ts +12 -0
- package/dist/stores/chunks.d.ts.map +1 -1
- package/dist/stores/chunks.js +112 -39
- package/dist/stores/durable.d.ts.map +1 -1
- package/dist/stores/durable.js +2 -1
- package/package.json +1 -1
package/MIGRATION.md
CHANGED
|
@@ -1,3 +1,130 @@
|
|
|
1
|
+
# 17.14.0 ck-exec CLIENT halves
|
|
2
|
+
|
|
3
|
+
Dev-tier preview (cks-game-api #422, P3 W1). **The release needs a game API that has #422:**
|
|
4
|
+
the build and listing documents now select `ExecBuild.kind`, the artifacts' capability fields
|
|
5
|
+
and the listings' `client*` fields, which an older API refuses as a validation error. Deploy
|
|
6
|
+
the API first.
|
|
7
|
+
|
|
8
|
+
A mod can carry a **CLIENT half**: browser WASM from one `crowdy-client-sdk` crate, built on
|
|
9
|
+
the platform, attached to the mod and served by its grid to visitors who consent to it or
|
|
10
|
+
trust its author. It replaces the legacy grid-attached client mods, which keep working until
|
|
11
|
+
18.0.
|
|
12
|
+
|
|
13
|
+
- **`client.exec`**: `modClientBuild(appId, crate)` (a build of `kind` `client`; poll it with
|
|
14
|
+
`modBuildStatus` / `waitForModBuild`), `modClientDeploy(appId, gridId, name, buildId)` →
|
|
15
|
+
`ExecModClient`, `modClientDelete(appId, gridId, name)`, `gridClientMods(appId, gridId)` →
|
|
16
|
+
`ExecGridClientMod[]` (with `capabilitySummary` and `authorCapabilitySummary` parsed beside
|
|
17
|
+
the JSON), `consentClientMod(appId, modId, capabilityHash)`, `trustAuthor(appId, gridId,
|
|
18
|
+
authorId, capabilityHash)`, `modClientArtifact(appId, modId)` and
|
|
19
|
+
`modClientArtifactBytes(appId, modId)`, which decodes the module, recomputes its SHA-256 and
|
|
20
|
+
refuses bytes that differ from `digest` (or a CLIENT ABI other than
|
|
21
|
+
`EXEC_CLIENT_ABI_VERSION`, 0, or a capability summary that does not parse) with a
|
|
22
|
+
`CrowdyProtocolError`. Errors are the API's: a stale
|
|
23
|
+
hash is `CONFLICT`, every artifact refusal `NOT_FOUND`, more than 12 fetches a minute per
|
|
24
|
+
player and mod `RATE_LIMITED`.
|
|
25
|
+
- **Types**: `ExecBuild.kind`; `ExecBuildArtifact` (`capabilitySummaryJson`,
|
|
26
|
+
`capabilitySummary`, `capabilityHash`, `tickIntervalMs`, null for a ck-exec module);
|
|
27
|
+
`ExecModListing.clientDigest`, `clientCapabilitySummaryJson`, `clientCapabilitySummary`,
|
|
28
|
+
`clientCapabilityHash`, `clientTickIntervalMs`; `ExecClientCapabilitySummary`,
|
|
29
|
+
`ExecModClient`, `ExecGridClientMod`, `ExecModClientArtifact`, `ExecModClientArtifactBytes`.
|
|
30
|
+
- **`ExecClientHalves`**, the exec twin of the-construct's `runConsentedGridMod` and
|
|
31
|
+
`ClientModLifecycle`: tell it the grid (`enterGrid`) and `refresh()` on a cadence. It lists
|
|
32
|
+
the grid's CLIENT halves, stops the ones removed or changed (keyed by `modId`, `digest`,
|
|
33
|
+
`capabilityHash` and tick interval), asks the player once per author (`trustAuthor`) or per
|
|
34
|
+
CLIENT half (`ask: 'mod'`, `consentClientMod`) through your `confirm`, fetches and caches by
|
|
35
|
+
digest, and runs each in a `PlayerCodeBroker` with its fuel budget and tick interval.
|
|
36
|
+
`NOT_FOUND` holds a CLIENT half back 15 s, `RATE_LIMITED` 60 s, refused bytes and a tripped
|
|
37
|
+
circuit 60 s.
|
|
38
|
+
- **`PlayerCodeBroker({ engine: 'ck-exec' })`**: the allowlist is `EXEC_CLIENT_HOST_CALLS`,
|
|
39
|
+
exactly what crowdy-client-sdk calls (the client catalog less the Game Model group,
|
|
40
|
+
`sessions_list` and `grid_state_*`); the glue offers exactly `EXEC_CLIENT_ABI_IMPORTS`
|
|
41
|
+
(`ck::{log,now_ms,state_get,state_set,host_call}`, `wasi_snapshot_preview1::random_get`),
|
|
42
|
+
refuses a module without the `ck_fuel` meter, and the broker will not start without
|
|
43
|
+
`artifactHash`, `fuelPerDispatch` and `consentedHostCalls` (the served capability summary's
|
|
44
|
+
`hostFunctions`). A call outside that summary is refused too: the build derives the summary by
|
|
45
|
+
scanning the module for host-call names, so a name assembled at run time would otherwise reach
|
|
46
|
+
calls the player never consented to. The default, `'player-compute'`, is unchanged for legacy
|
|
47
|
+
CLIENT modules. `startGridMod`'s wasm spec takes `engine` and `consentedHostCalls` too.
|
|
48
|
+
- **Crowdy Studio's CLIENT target runs on ck-exec** with `serverEngine: 'ck-exec'` (the
|
|
49
|
+
default when `exec` is present). A new CLIENT target starts from a `crowdy-client-sdk` crate
|
|
50
|
+
(`createCrowdyStudioStarterProject({ engine: 'ck-exec' })`); Test draft and Deploy live
|
|
51
|
+
build it with `modClientBuild`, attach it to the project's mod with `modClientDeploy`,
|
|
52
|
+
consent to it as its author and preview the served module with `engine: 'ck-exec'`. A
|
|
53
|
+
CLIENT-only project's CLIENT half rides the mod named for its CLIENT module (which must be a
|
|
54
|
+
mod name now): with no such mod of the player's on the grid, Studio deploys the mod starter's
|
|
55
|
+
server half under it first and says so in the build log, switches it on, and Stop switches
|
|
56
|
+
it off. The preview loads only for a player with `run_client_code` standing in the grid. On
|
|
57
|
+
ck-exec no target reads player compute usage, and the pairing select is disabled.
|
|
58
|
+
- **`CrowdyStudioMods` gained `myMods`, `modClientBuild`, `modClientDeploy`,
|
|
59
|
+
`consentClientMod` and `modClientArtifactBytes`.** Pass `client.exec`; a hand-written
|
|
60
|
+
stand-in needs those too.
|
|
61
|
+
- **Superseded** (`@deprecated`, removed in 18.0): `marketplace.gridClientMods`,
|
|
62
|
+
`consentGridClientMod`, `trustGridAuthor`, `clientArtifact`, `clientArtifactBytes`, and
|
|
63
|
+
`GridScope.compute.clientMods`.
|
|
64
|
+
|
|
65
|
+
Existing CLIENT projects keep their files: a CLIENT crate on `crowdy-compute-sdk` is refused on
|
|
66
|
+
ck-exec before any build, with what to change (the SDK line becomes
|
|
67
|
+
`crowdy-client-sdk = "0.1.0"`, `crowdy_compute_sdk` becomes `crowdy_client_sdk`; the host
|
|
68
|
+
calls are the same less the Game Model and sessions). `serverEngine: 'player-compute'` keeps
|
|
69
|
+
both targets on legacy player compute until 18.0.
|
|
70
|
+
|
|
71
|
+
# 17.13.0 ck-exec observability
|
|
72
|
+
|
|
73
|
+
Additive (dev-tier preview; ck-api `v2.22.0`).
|
|
74
|
+
|
|
75
|
+
- `client.exec.endpointStats(appId, { nodeType?, sinceMinutes? })` returns `ExecEndpointStat[]`:
|
|
76
|
+
per endpoint (`nodeType`, `method`) the `calls`, `appErrors`, `busy`, `denied`,
|
|
77
|
+
`deadlineExceeded`, `otherErrors` and `timedCalls` in the window, `latencyMsAvg` /
|
|
78
|
+
`latencyMsMax` over the timed calls (null when none), and `firstMinute` / `lastMinute`.
|
|
79
|
+
- `client.exec.logs(appId, { flow })` keeps only one flow's lines, and every `ExecLogLine` (also
|
|
80
|
+
from `modLogs`) has `flow`: 32 lowercase hex digits, or null for a line written outside a call.
|
|
81
|
+
- `ExecVersion` has `manifestJson` and `manifest` (`ExecManifest`, parsed), null when the
|
|
82
|
+
version's row is gone; a type's spawn seed is its size, `seed_bytes`.
|
|
83
|
+
- `CrowdyExecError.rateLimited` and `retryAfterMs`. A call over a player's limit (120 per 10 s
|
|
84
|
+
per app and host) is refused `Busy` with a message starting `rate limited`; wait
|
|
85
|
+
`retryAfterMs` before calling again. The SDK never retries `Busy` itself.
|
|
86
|
+
- Now exported: `ExecLogLine`, `ExecLogsOptions`, `ExecInstance`, `ExecVersion`, `ExecManifest`,
|
|
87
|
+
`ExecManifestType`, `ExecAppStatus`, `ExecEndpointStat`, `ExecEndpointStatsOptions`.
|
|
88
|
+
|
|
89
|
+
# 17.13.0 Crowdy Studio runs SERVER code on ck-exec by default
|
|
90
|
+
|
|
91
|
+
**A behaviour change for embedders; no signature is removed.** The platform is switching
|
|
92
|
+
legacy player compute off (the game API answers `ENGINE_SWITCHED_OFF`, HTTP 503), so
|
|
93
|
+
Crowdy Studio's SERVER target moves to ck-exec mods, which 17.12.0 offered behind an option.
|
|
94
|
+
|
|
95
|
+
- **`createCrowdyStudioEmbed` / `CrowdyStudioEmbed`: `serverEngine` now defaults to
|
|
96
|
+
`'ck-exec'` when `client.exec` is present** (every `CrowdyClient`), and to
|
|
97
|
+
`'player-compute'` only for a client without it. An embed that passed nothing now builds
|
|
98
|
+
and runs SERVER code as the grid's mod. Pass `serverEngine: 'player-compute'` to keep the
|
|
99
|
+
legacy engine until it is removed; `'ck-exec'` without `exec` is refused at mount, as
|
|
100
|
+
before.
|
|
101
|
+
- **`CrowdyStudioController` and `mountCrowdyStudio` take `serverEngine` too**, defaulting
|
|
102
|
+
to `'ck-exec'` when `mods` is given and `'player-compute'` otherwise, so a direct caller
|
|
103
|
+
keeps its engine until it passes `mods: client.exec`. `CrowdyStudioState.serverEngine`
|
|
104
|
+
says which one runs.
|
|
105
|
+
- **On ck-exec a new project's SERVER target is the mod starter.** `createProject` asks
|
|
106
|
+
`mods.modStarter(appId)` (`execModStarter`) and uses its `ckx-sdk` crate, with the Cargo
|
|
107
|
+
package named for the project, instead of the legacy `crowdy-compute-sdk` crate; the
|
|
108
|
+
server module name fits a mod's (48 characters, starting with a letter) and a full-stack
|
|
109
|
+
project records pairing `NONE`, since a mod has no client pairing. The CLIENT crate is
|
|
110
|
+
unchanged (17.14.0 moved it to ck-exec). `createCrowdyStudioStarterProject` takes the
|
|
111
|
+
starter as `modStarter`.
|
|
112
|
+
- **Invoke, Logs, Runs and the budget line follow the engine.** On ck-exec, Invoke calls the
|
|
113
|
+
mod's endpoint (default `state`, JSON arguments sent as MessagePack) over one exec
|
|
114
|
+
connection, and the result is the decoded reply as JSON; Logs are the mod's `ctx.log`
|
|
115
|
+
lines (`modLogs`; `CrowdyStudioRun.level` is set and the text is `errorMessage`); Runs
|
|
116
|
+
stay empty (ck-exec keeps no run records); player compute usage is read only for a
|
|
117
|
+
project with a CLIENT target, whose compiles still spend it.
|
|
118
|
+
- **`CrowdyStudioMods` gained `modStarter`, `modLogs` and `connect`.** Pass `client.exec`;
|
|
119
|
+
a hand-written stand-in needs those three as well.
|
|
120
|
+
- **The mod build sends only the crate**: `Cargo.toml`, `README.md` and `src/**/*.rs`
|
|
121
|
+
(grid program assets such as `programs/*.js` stay in the project), and a server module
|
|
122
|
+
name that starts with a digit builds as crate `mod-<name>`.
|
|
123
|
+
|
|
124
|
+
Existing projects keep their files: a project created on the legacy engine has a
|
|
125
|
+
`crowdy-compute-sdk` crate, which a mod build refuses. Start a new project, or replace its
|
|
126
|
+
SERVER `Cargo.toml` and `src/lib.rs` with the mod starter's.
|
|
127
|
+
|
|
1
128
|
# CrowdyJS v17.7 — grid-scoped parity (DN-10)
|
|
2
129
|
|
|
3
130
|
**Additive, plus one coordinated break.** `17.7.0` (2026-09-22), on top of the
|
package/README.md
CHANGED
|
@@ -230,11 +230,11 @@ never told about, so a native refresh without it is a re-placement.
|
|
|
230
230
|
| `client.channels`, `client.teams` | Messaging channels and app-scoped player teams (membership + roles). |
|
|
231
231
|
| `client.gameModel` | Abstract game model: containers, properties, functions (incl. model-driven `notify_*` effects), sessions, app-scoped active-session counts (`activePlayerCount`, `activePlayerCountChanged`), container-change push (`containerChanged`), flow-correlation timelines (`flow`), automations / NPCs (`upsertAutomation`, `runAutomation`, `automationRuns`, `automationStats`, …), and one-shot timers (`scheduleInvoke`, `cancelTimer`, `timers`). |
|
|
232
232
|
| `client.compute` | Compute Modules — server-side Rust/WASM logic: author + deploy source (`upsertModule`, `deployVersion`, `deployTemplate`, `waitForCompile`), triggers + policy, synchronous `invoke`, and monitoring (`moduleRuns`, `moduleStats`, `moduleLogs`, `appDiagnostics`). See [Compute Modules](https://docs.crowdedkingdoms.com/game-api/compute-modules). |
|
|
233
|
-
| `client.exec` | **ck-exec (dev-tier preview, 17.9.0):** `connect(appId, { nodeType, key })` opens a player's connection to an execution host; the `ExecConnection` it returns has `call`, `callRaw`, `subscribe`, `ping`, `onReconnect` and `close`, with MessagePack payloads, and it reconnects and renews subscriptions by itself. `deploy({ appId, root, types })` deploys an app's hubs and spokes (`manage_compute`). See [ck-exec](#ck-exec-dev-tier-preview). |
|
|
233
|
+
| `client.exec` | **ck-exec (dev-tier preview, 17.9.0):** `connect(appId, { nodeType, key })` opens a player's connection to an execution host; the `ExecConnection` it returns has `call`, `callRaw`, `subscribe`, `ping`, `onReconnect` and `close`, with MessagePack payloads, and it reconnects and renews subscriptions by itself. `deploy({ appId, root, types })` deploys an app's hubs and spokes (`manage_compute`). Players' mods (`modBuild`, `modDeploy`, ...) and, since 17.14.0, their CLIENT halves (`modClientBuild`, `modClientDeploy`, `gridClientMods`, `consentClientMod`, `trustAuthor`, `modClientArtifactBytes`). See [ck-exec](#ck-exec-dev-tier-preview). |
|
|
234
234
|
| `client.playerCompute` | Player-authored SERVER/CLIENT Rust/WASM bound to player-owned grids: deploy source, activate/deactivate, list modules/versions, delete self-authored modules. |
|
|
235
235
|
| `client.playerModel` | Player-owned flexible model containers and grid-confined automations (`containers`, `createContainer`, `setProperty`, `automations`, `createAutomation`, …). |
|
|
236
236
|
| `client.playerWallet` | Player spend: balance, spend caps, card setup, policy, charges. |
|
|
237
|
-
| `client.marketplace` | Player-code store/install/consent flows plus player-authorized grid claims (`claimGridOwnership`, `claimGridChunk`, `releaseClaimedGrid`) and client-mod artifact fetches. |
|
|
237
|
+
| `client.marketplace` | Player-code store/install/consent flows plus player-authorized grid claims (`claimGridOwnership`, `claimGridChunk`, `releaseClaimedGrid`) and client-mod artifact fetches. The grid-attached client mods (`gridClientMods`, `consentGridClientMod`, `trustGridAuthor`, `clientArtifact(Bytes)`) are superseded by ck-exec CLIENT halves and go in 18.0. |
|
|
238
238
|
| `client.crowdyStudio` | Cloud project, personal-library, and common-file APIs for Crowdy Studio: target-scoped files, metadata/module names, optimistic revisions, copy-by-value imports, atomic saves. |
|
|
239
239
|
| `client.crowdyStudioGitHub` | Optional GitHub repository for a Crowdy Studio project: status, `bind` (push the project in, or take the repository), `unbind`, `refresh`, `layout`, `tree`, `getFile`, commit-guarded `putFile` / `deleteFile`. While bound the repository is the working tree and every Studio save commits; the project's `files` are the server's mirror at `github.sha`. Never required. |
|
|
240
240
|
| `client.udp` | UDP proxy subscriptions + spatial mutations (`sendActorUpdate`, `sendVoxelUpdate`, `sendAudioPacket`, `sendVideoPacket` / `sendVideoFrame`, `sendTextPacket`, `sendClientEvent`, `sendSingleActorMessage`, `sendChannelMessage`). |
|
|
@@ -514,7 +514,9 @@ await hostGridProgram({ port, scope: client.grid(appId, gridId), graphqlUrl, gra
|
|
|
514
514
|
|
|
515
515
|
`startGridMod` runs either a Rust CLIENT mod (WASM) or a JS grid program
|
|
516
516
|
behind one interface; `createGridHostCalls` answers every CLIENT host call in
|
|
517
|
-
the platform catalog through CrowdyJS for a mod's broker.
|
|
517
|
+
the platform catalog through CrowdyJS for a mod's broker. A ck-exec mod's
|
|
518
|
+
CLIENT half is `engine: 'ck-exec'`, and `ExecClientHalves` runs a whole grid's
|
|
519
|
+
(see [A mod's CLIENT half](#a-mods-client-half)).
|
|
518
520
|
|
|
519
521
|
## World Stores
|
|
520
522
|
|
|
@@ -704,6 +706,18 @@ exec.onReconnect((host) => console.log('moved to', host));
|
|
|
704
706
|
without a global `WebSocket` (Node before 22), pass one: `{ WebSocket }` from the `ws` package.
|
|
705
707
|
- A refused call throws `CrowdyExecError`: `status` is the platform's (`AppError` carries the
|
|
706
708
|
handler's own message; `Busy`, `Moved`, `Unavailable` and `RateLimited` are `retryable`).
|
|
709
|
+
The SDK does not retry `Busy`. A gateway refuses a player's calls over 120 per 10 s (per app
|
|
710
|
+
and host) as `Busy` with `rateLimited` true and `retryAfterMs` set; wait that long before
|
|
711
|
+
calling again, since calling sooner is refused again:
|
|
712
|
+
|
|
713
|
+
```ts
|
|
714
|
+
try {
|
|
715
|
+
await exec.call('arena', 'm1', 'hit');
|
|
716
|
+
} catch (e) {
|
|
717
|
+
if (e instanceof CrowdyExecError && e.rateLimited) await new Promise((r) => setTimeout(r, e.retryAfterMs ?? 1_000));
|
|
718
|
+
else throw e;
|
|
719
|
+
}
|
|
720
|
+
```
|
|
707
721
|
- When the host goes away, the connection asks for a host again, reconnects and renews every
|
|
708
722
|
subscription; a call caught by it, or answered `Moved`, is tried once more.
|
|
709
723
|
- `ExecConnection.open(gatewayUrl, token)` connects with a connect token you already have
|
|
@@ -711,11 +725,70 @@ exec.onReconnect((host) => console.log('moved to', host));
|
|
|
711
725
|
- `client.exec.deploy({ appId, root, types })` takes each node type's compiled module
|
|
712
726
|
(`wasm: Uint8Array`) with its manifest fields, sends each distinct module once, and makes
|
|
713
727
|
the version active.
|
|
728
|
+
- Operating it (`view_compute_diagnostics`): `logs(appId, { nodeType, key, maxLevel, flow })`,
|
|
729
|
+
where each line's `flow` is the call it was written in, so `logs(appId, { flow })` follows
|
|
730
|
+
one client call through every hub and host; `versions(appId)` with each version's
|
|
731
|
+
`manifestJson` and parsed `manifest` (a spawn seed shows as `seed_bytes`);
|
|
732
|
+
`endpointStats(appId, { nodeType, sinceMinutes })`, calls per endpoint by outcome (`calls`,
|
|
733
|
+
`appErrors`, `busy`, `denied`, `deadlineExceeded`, `otherErrors`) with latency over
|
|
734
|
+
`timedCalls` (default the last 60 minutes, at most 7 days).
|
|
714
735
|
|
|
715
736
|
Integers above 2^53 decode as `number` and lose precision unless you pass
|
|
716
737
|
`{ decode: { useBigInt64: true } }`. The wire format is in the
|
|
717
738
|
[ck-exec docs](https://docs.dev.crowdedkingdoms.com/exec/intro).
|
|
718
739
|
|
|
740
|
+
### A mod's CLIENT half
|
|
741
|
+
|
|
742
|
+
A mod (a player's code on a grid they own: `modBuild`, `modDeploy`) can carry a **CLIENT
|
|
743
|
+
half** (17.14.0): browser WASM from one `crowdy-client-sdk` crate, which the mod's grid serves
|
|
744
|
+
to visitors who consent to it or trust its author. It runs in the visitor's
|
|
745
|
+
`PlayerCodeBroker`, sandboxed like a legacy CLIENT module.
|
|
746
|
+
|
|
747
|
+
```ts
|
|
748
|
+
// The mod's owner builds one crowdy-client-sdk crate and attaches it to the mod.
|
|
749
|
+
const queued = await client.exec.modClientBuild(appId, { name: 'hud', files }); // kind 'client'
|
|
750
|
+
const built = await client.exec.waitForModBuild(appId, queued.buildId);
|
|
751
|
+
const half = await client.exec.modClientDeploy(appId, gridId, 'shop', built.buildId);
|
|
752
|
+
```
|
|
753
|
+
|
|
754
|
+
A visitor's page lists what the grid serves (`gridClientMods`: each CLIENT half's capability
|
|
755
|
+
summary and hash, its author's union and hash, and whether the player consented or trusts the
|
|
756
|
+
author), asks the player, consents (`consentClientMod(appId, modId, capabilityHash)`, or
|
|
757
|
+
`trustAuthor(appId, gridId, authorId, authorCapabilityHash)` once per author) and fetches the
|
|
758
|
+
module (`modClientArtifactBytes(appId, modId)`: its bytes checked against `digest`, its fuel
|
|
759
|
+
budget and tick interval). A stale hash is `CONFLICT`. The module is served only to a player
|
|
760
|
+
holding `run_client_code` who stands in the grid now, every refusal is `NOT_FOUND`, and a
|
|
761
|
+
player may fetch a mod's 12 times a minute, so cache it by `digest`. `ExecClientHalves` does
|
|
762
|
+
all of that:
|
|
763
|
+
|
|
764
|
+
```ts
|
|
765
|
+
import { ExecClientHalves } from '@crowdedkingdoms/crowdyjs';
|
|
766
|
+
|
|
767
|
+
const halves = new ExecClientHalves({
|
|
768
|
+
exec: client.exec,
|
|
769
|
+
appId,
|
|
770
|
+
workerUrl, // the platform glue worker, same origin
|
|
771
|
+
onHostCall: (call) => hostCalls(call), // e.g. createGridHostCalls({ scope, client })
|
|
772
|
+
onPresentation: (p, mod) => hud.set({ source: mod.modId, label: mod.name, payload: p.payload }),
|
|
773
|
+
confirm: (prompt) => window.confirm(describe(prompt)), // once per author; ask: 'mod' for each
|
|
774
|
+
onStopped: (mod) => hud.remove(mod.modId),
|
|
775
|
+
});
|
|
776
|
+
halves.enterGrid({ gridId, low, high }); // the grid the player stands in; null to leave
|
|
777
|
+
setInterval(() => void halves.refresh().catch(console.warn), 10_000);
|
|
778
|
+
```
|
|
779
|
+
|
|
780
|
+
Each refresh stops the CLIENT halves whose mod is gone or whose digest, capability hash or
|
|
781
|
+
tick interval changed, asks about the rest, and starts the consented ones in a broker with
|
|
782
|
+
`engine: 'ck-exec'`. That engine allows exactly the host calls crowdy-client-sdk makes
|
|
783
|
+
(`EXEC_CLIENT_HOST_CALLS`: no Game Model, sessions or `grid_state_*`), offers exactly the CLIENT
|
|
784
|
+
ABI imports (`EXEC_CLIENT_ABI_IMPORTS`) and runs a module only with its digest, its fuel budget
|
|
785
|
+
and `consentedHostCalls`, the host calls of the summary the player consented to: a call outside
|
|
786
|
+
them is refused, even one whose name the module assembled at run time.
|
|
787
|
+
`NOT_FOUND` holds a CLIENT half back 15 s and `RATE_LIMITED` 60 s. The grid's owner is asked
|
|
788
|
+
about their own CLIENT halves like anyone; answer yes in `confirm` when `prompt.authorId` is
|
|
789
|
+
the player. The legacy grid-attached client mods (`marketplace.gridClientMods` and the rest)
|
|
790
|
+
keep working until 18.0.
|
|
791
|
+
|
|
719
792
|
## Hosting a game on Crowdy Games
|
|
720
793
|
|
|
721
794
|
Since 17.2.0 (ck-api v2.1) a developer can publish a built static bundle to the
|
|
@@ -786,7 +859,7 @@ import { createCrowdyStudioEmbed } from '@crowdedkingdoms/crowdyjs/crowdy-studio
|
|
|
786
859
|
import workerUrl from '@crowdedkingdoms/crowdyjs/player-glue-worker?worker&url';
|
|
787
860
|
|
|
788
861
|
const studio = createCrowdyStudioEmbed({
|
|
789
|
-
client: game, // CrowdyClient: crowdyStudio, playerCompute, playerWallet, crowdyStudioGitHub
|
|
862
|
+
client: game, // CrowdyClient: crowdyStudio, exec, playerCompute, playerWallet, crowdyStudioGitHub
|
|
790
863
|
appId,
|
|
791
864
|
gameName: 'My Game',
|
|
792
865
|
suppressGameplayInput: () => pauseInput(),
|
|
@@ -809,6 +882,28 @@ fullscreen modal on narrow screens. For custom chrome, call
|
|
|
809
882
|
`new CrowdyStudioController(options)`. New games should start SERVER-only.
|
|
810
883
|
Untrusted HUD payloads always render as text, never HTML.
|
|
811
884
|
|
|
885
|
+
**The SERVER target runs as a ck-exec mod.** The embed's `serverEngine` defaults to
|
|
886
|
+
`'ck-exec'` when the client has `exec` (a `CrowdyClient` always does): a new project's
|
|
887
|
+
SERVER target starts from the platform's mod starter (`client.exec.modStarter(appId)`, a
|
|
888
|
+
`ckx-sdk` crate), Test draft and Deploy live build it with `modBuild` and deploy it to the
|
|
889
|
+
grid as the mod `mod:<server module name>`, Invoke calls one of its endpoints (`state` by
|
|
890
|
+
default) over an exec connection, and Logs shows its `ctx.log` lines.
|
|
891
|
+
|
|
892
|
+
**The CLIENT target is that mod's CLIENT half** (17.14.0). A new CLIENT target starts from a
|
|
893
|
+
`crowdy-client-sdk` crate; Test draft and Deploy live build it with `modClientBuild`, attach
|
|
894
|
+
it to the project's mod with `modClientDeploy`, consent to it as its author (the API serves a
|
|
895
|
+
CLIENT half only to players who consented, its author too) and preview the served module in
|
|
896
|
+
the HUD layer. A CLIENT-only project's CLIENT half rides the mod named for its CLIENT module:
|
|
897
|
+
when the player has no mod of that name on the grid, Studio deploys the mod starter's server
|
|
898
|
+
half under it first and says so in the build log, and Stop switches that mod off. The
|
|
899
|
+
preview loads only while the player stands in the grid with `run_client_code`. A CLIENT crate
|
|
900
|
+
still on the legacy `crowdy-compute-sdk` is refused with what to change.
|
|
901
|
+
|
|
902
|
+
`mountCrowdyStudio` and the controller take the same `serverEngine` with
|
|
903
|
+
`mods: client.exec`; without `mods` they stay on legacy player compute, and
|
|
904
|
+
`serverEngine: 'player-compute'` keeps it explicitly for both targets. The platform is
|
|
905
|
+
switching legacy player compute off, so that option lasts only until 18.0 removes it.
|
|
906
|
+
|
|
812
907
|
See [Crowdy Studio & player client mods](https://docs.crowdedkingdoms.com/crowdyjs/player-client-mods)
|
|
813
908
|
and [Embed Crowdy Studio in your game](https://docs.crowdedkingdoms.com/crowdyjs/crowdy-studio-embed).
|
|
814
909
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/crowdy-dsh/bridge.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/crowdy-dsh/bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -490,6 +490,8 @@ function clampLimit(value, fallback) {
|
|
|
490
490
|
return Math.max(1, Math.min(400, Math.floor(value)));
|
|
491
491
|
}
|
|
492
492
|
function formatRunLine(run) {
|
|
493
|
+
if (run.level)
|
|
494
|
+
return `${run.startedAt} ${run.moduleName} ${run.level}: ${run.errorMessage ?? ''}`;
|
|
493
495
|
const status = run.success ? 'ok' : 'FAILED';
|
|
494
496
|
const error = run.errorMessage ? ` — ${run.errorMessage}` : '';
|
|
495
497
|
return `${run.startedAt} ${run.moduleName} ${run.triggerSource} ${status} ${Math.round(run.durationUs / 1000)}ms fuel=${run.fuelUsed}${error}`;
|
|
@@ -63,7 +63,13 @@ export interface CrowdyStudioRun {
|
|
|
63
63
|
fuelUsed: string;
|
|
64
64
|
success: boolean;
|
|
65
65
|
errorMessage?: string | null;
|
|
66
|
+
/**
|
|
67
|
+
* Set on a ck-exec mod's log line (`ctx.log`), whose text is `errorMessage` at every level;
|
|
68
|
+
* such a line has no duration or fuel.
|
|
69
|
+
*/
|
|
70
|
+
level?: CrowdyStudioLogLevel;
|
|
66
71
|
}
|
|
72
|
+
export type CrowdyStudioLogLevel = 'error' | 'warn' | 'info' | 'debug';
|
|
67
73
|
export interface CrowdyStudioInvokeResult {
|
|
68
74
|
resultBase64?: string | null;
|
|
69
75
|
resultJson?: string | null;
|
|
@@ -71,6 +77,8 @@ export interface CrowdyStudioInvokeResult {
|
|
|
71
77
|
durationUs?: number;
|
|
72
78
|
}
|
|
73
79
|
export interface CrowdyStudioState {
|
|
80
|
+
/** What runs the project's targets; fixed for the controller's life. */
|
|
81
|
+
serverEngine: CrowdyStudioServerEngine;
|
|
74
82
|
projects: readonly CrowdyStudioProjectSummary[];
|
|
75
83
|
project: CrowdyStudioProject | null;
|
|
76
84
|
personalLibraryFiles: readonly CrowdyStudioReferenceFile[];
|
|
@@ -101,20 +109,36 @@ export interface CrowdyStudioState {
|
|
|
101
109
|
export type CrowdyStudioPlayerCompute = Pick<PlayerComputeAPI, 'deploy' | 'versions' | 'setEnabled' | 'setRequires' | 'artifactBytes' | 'usage' | 'runs' | 'logs' | 'invoke'>;
|
|
102
110
|
export type CrowdyStudioPlayerWallet = Pick<PlayerWalletAPI, 'balance'>;
|
|
103
111
|
/**
|
|
104
|
-
* ck-exec
|
|
105
|
-
*
|
|
106
|
-
*
|
|
112
|
+
* What runs the project: `'ck-exec'`, a mod on the grid (`mods`) with the CLIENT target as its
|
|
113
|
+
* CLIENT half, or `'player-compute'`, legacy player compute for both targets, which the
|
|
114
|
+
* platform is switching off and removes in 18.0.
|
|
115
|
+
*/
|
|
116
|
+
export type CrowdyStudioServerEngine = 'player-compute' | 'ck-exec';
|
|
117
|
+
/**
|
|
118
|
+
* ck-exec mods (`client.exec`), in place of legacy player compute. The SERVER target of a new
|
|
119
|
+
* project starts from the mod starter, builds the project's server crate and runs it as the
|
|
120
|
+
* grid's mod; the Invoke and Logs panels call and read that mod. The CLIENT target is a
|
|
121
|
+
* `crowdy-client-sdk` crate built as that mod's CLIENT half (`modClientBuild`), attached to it
|
|
122
|
+
* (`modClientDeploy`) and previewed from the served artifact once its author consents to it. A
|
|
123
|
+
* CLIENT-only project's CLIENT half rides the mod named for its CLIENT module, which Studio
|
|
124
|
+
* deploys from the mod starter when the player has no mod of that name on the grid.
|
|
107
125
|
*/
|
|
108
|
-
export type CrowdyStudioMods = Pick<ExecAPI, 'modBuild' | 'modBuildStatus' | 'modDeploy' | 'modSetEnabled'>;
|
|
126
|
+
export type CrowdyStudioMods = Pick<ExecAPI, 'modStarter' | 'modBuild' | 'modBuildStatus' | 'modDeploy' | 'modSetEnabled' | 'modLogs' | 'myMods' | 'modClientBuild' | 'modClientDeploy' | 'consentClientMod' | 'modClientArtifactBytes' | 'connect'>;
|
|
109
127
|
export interface CrowdyStudioBroker {
|
|
110
128
|
start(bytes: ArrayBuffer): Promise<void>;
|
|
111
129
|
stop(): void;
|
|
112
130
|
}
|
|
113
131
|
export interface CrowdyStudioControllerOptions {
|
|
114
132
|
projectProvider: CrowdyStudioProjectProvider;
|
|
133
|
+
/** Legacy player compute: both targets' compiles and runs with `'player-compute'`. */
|
|
115
134
|
playerCompute: CrowdyStudioPlayerCompute;
|
|
116
|
-
/** Run the
|
|
135
|
+
/** Run the project as a ck-exec mod and its CLIENT half (see {@link CrowdyStudioMods}). */
|
|
117
136
|
mods?: CrowdyStudioMods;
|
|
137
|
+
/**
|
|
138
|
+
* Defaults to `'ck-exec'` when `mods` is given, else `'player-compute'`. `'ck-exec'` needs
|
|
139
|
+
* `mods`; `'player-compute'` keeps the legacy engine even when `mods` is given.
|
|
140
|
+
*/
|
|
141
|
+
serverEngine?: CrowdyStudioServerEngine;
|
|
118
142
|
playerWallet?: CrowdyStudioPlayerWallet;
|
|
119
143
|
/**
|
|
120
144
|
* GitHub repository card (bring-your-own repo). Optional: without it the
|
|
@@ -148,7 +172,8 @@ export interface CrowdyStudioControllerOptions {
|
|
|
148
172
|
/**
|
|
149
173
|
* Override CLIENT tick cadence. When omitted, Studio reads
|
|
150
174
|
* `[package.metadata.crowdy] tick_interval_ms` from the project's CLIENT
|
|
151
|
-
* Cargo.toml (default 1000, clamped 16–1000)
|
|
175
|
+
* Cargo.toml (default 1000, clamped 16–1000); on ck-exec the served CLIENT
|
|
176
|
+
* half carries the value its build read from that line.
|
|
152
177
|
*/
|
|
153
178
|
clientTickIntervalMs?: number;
|
|
154
179
|
autosaveMs?: number;
|
|
@@ -192,6 +217,8 @@ export declare class CrowdyStudioController {
|
|
|
192
217
|
private readonly surfaceTimers;
|
|
193
218
|
private pageVisible;
|
|
194
219
|
private destroyed;
|
|
220
|
+
private readonly mods;
|
|
221
|
+
private modConnection;
|
|
195
222
|
constructor(options: CrowdyStudioControllerOptions);
|
|
196
223
|
getState(): CrowdyStudioState;
|
|
197
224
|
subscribe(listener: (state: CrowdyStudioState) => void): () => void;
|
|
@@ -303,10 +330,33 @@ export declare class CrowdyStudioController {
|
|
|
303
330
|
private deployProject;
|
|
304
331
|
private compileTarget;
|
|
305
332
|
/**
|
|
306
|
-
* The SERVER target as a ck-exec mod: the project's server files
|
|
307
|
-
*
|
|
333
|
+
* The SERVER target as a ck-exec mod: the project's server crate files, built on the
|
|
334
|
+
* platform, then deployed to this grid (switched off until {@link enableServer}). Other
|
|
335
|
+
* project files, such as grid program assets, are not part of the crate.
|
|
308
336
|
*/
|
|
309
337
|
private buildMod;
|
|
338
|
+
/**
|
|
339
|
+
* The CLIENT target as a ck-exec mod's CLIENT half: the project's `crowdy-client-sdk` crate,
|
|
340
|
+
* built on the platform (`modClientBuild`, a build of `kind` `client`). It is attached to the
|
|
341
|
+
* project's mod when the project runs ({@link attachClientHalf}).
|
|
342
|
+
*/
|
|
343
|
+
private buildClientHalf;
|
|
344
|
+
/** Polls a mod build, a mod's or a CLIENT half's, recording its log; null when it did not succeed. */
|
|
345
|
+
private awaitModBuild;
|
|
346
|
+
/**
|
|
347
|
+
* Attaches a built CLIENT half to the project's mod, consents to it as its author (the API
|
|
348
|
+
* serves a CLIENT half only to a player who consented or trusts its author, the author too) and
|
|
349
|
+
* fetches the served module for this browser's preview. A CLIENT-only project first makes sure
|
|
350
|
+
* the mod it rides is the player's and switched on.
|
|
351
|
+
*/
|
|
352
|
+
private attachClientHalf;
|
|
353
|
+
/**
|
|
354
|
+
* A CLIENT half rides a mod: without a mod of this name running as the player on the grid,
|
|
355
|
+
* the mod starter's server half is deployed under it first, and the log says so. The mod is
|
|
356
|
+
* switched on, since only a running mod's CLIENT half is served.
|
|
357
|
+
*/
|
|
358
|
+
private ensureClientOnlyMod;
|
|
359
|
+
private recordNote;
|
|
310
360
|
private recordBuild;
|
|
311
361
|
private enableServer;
|
|
312
362
|
private setServerEnabled;
|
|
@@ -315,6 +365,12 @@ export declare class CrowdyStudioController {
|
|
|
315
365
|
invoke(exportName: string, paramsJson?: string, agentOperation?: number): Promise<CrowdyStudioInvokeResult>;
|
|
316
366
|
setSurfaceVisible(surface: CrowdyStudioPolledSurface, visible: boolean): void;
|
|
317
367
|
setPageVisible(visible: boolean): void;
|
|
368
|
+
/**
|
|
369
|
+
* The mod's endpoint `method` with `paramsJson` as its arguments, through one exec
|
|
370
|
+
* connection to the mod (`mod:<name>`, keyed by the grid) that later calls reuse.
|
|
371
|
+
*/
|
|
372
|
+
private callMod;
|
|
373
|
+
private closeModConnection;
|
|
318
374
|
refreshSurface(surface: CrowdyStudioPolledSurface): Promise<void>;
|
|
319
375
|
destroy(): void;
|
|
320
376
|
private performSaveLoop;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/crowdy-studio/controller.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/crowdy-studio/controller.ts"],"names":[],"mappings":"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"}
|