@crowdedkingdoms/crowdyjs 17.13.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.
Files changed (62) hide show
  1. package/MIGRATION.md +72 -1
  2. package/README.md +72 -7
  3. package/dist/crowdy-studio/controller.d.ts +38 -11
  4. package/dist/crowdy-studio/controller.d.ts.map +1 -1
  5. package/dist/crowdy-studio/controller.js +237 -46
  6. package/dist/crowdy-studio/dom-shell.d.ts.map +1 -1
  7. package/dist/crowdy-studio/dom-shell.js +3 -1
  8. package/dist/crowdy-studio/embed/hud-layer.d.ts +2 -1
  9. package/dist/crowdy-studio/embed/hud-layer.d.ts.map +1 -1
  10. package/dist/crowdy-studio/embed/panel.d.ts +7 -6
  11. package/dist/crowdy-studio/embed/panel.d.ts.map +1 -1
  12. package/dist/crowdy-studio/starter-projects.d.ts +8 -0
  13. package/dist/crowdy-studio/starter-projects.d.ts.map +1 -1
  14. package/dist/crowdy-studio/starter-projects.js +79 -5
  15. package/dist/domains/exec.d.ts +162 -15
  16. package/dist/domains/exec.d.ts.map +1 -1
  17. package/dist/domains/exec.js +180 -18
  18. package/dist/domains/marketplace.d.ts +15 -3
  19. package/dist/domains/marketplace.d.ts.map +1 -1
  20. package/dist/domains/marketplace.js +17 -3
  21. package/dist/generated/graphql.d.ts +349 -0
  22. package/dist/generated/graphql.d.ts.map +1 -1
  23. package/dist/generated/graphql.js +17 -8
  24. package/dist/grid-mods/exec-client-halves.d.ts +140 -0
  25. package/dist/grid-mods/exec-client-halves.d.ts.map +1 -0
  26. package/dist/grid-mods/exec-client-halves.js +341 -0
  27. package/dist/grid-mods/grid-host-calls.d.ts +3 -1
  28. package/dist/grid-mods/grid-host-calls.d.ts.map +1 -1
  29. package/dist/grid-mods/grid-host-calls.js +3 -1
  30. package/dist/grid-mods/index.d.ts +1 -0
  31. package/dist/grid-mods/index.d.ts.map +1 -1
  32. package/dist/grid-mods/index.js +1 -0
  33. package/dist/grid-mods/mod-runtime.d.ts +10 -2
  34. package/dist/grid-mods/mod-runtime.d.ts.map +1 -1
  35. package/dist/grid-mods/mod-runtime.js +2 -0
  36. package/dist/grid-scope.d.ts +1 -0
  37. package/dist/grid-scope.d.ts.map +1 -1
  38. package/dist/grid-scope.js +1 -0
  39. package/dist/index.d.ts +4 -4
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +4 -3
  42. package/dist/kit/npcs.d.ts.map +1 -1
  43. package/dist/kit/social.d.ts.map +1 -1
  44. package/dist/live-coding/rust-analysis.js +13 -1
  45. package/dist/player-runtime/glue-runtime.d.ts +19 -6
  46. package/dist/player-runtime/glue-runtime.d.ts.map +1 -1
  47. package/dist/player-runtime/glue-runtime.js +40 -16
  48. package/dist/player-runtime/player-code-broker.d.ts +29 -0
  49. package/dist/player-runtime/player-code-broker.d.ts.map +1 -1
  50. package/dist/player-runtime/player-code-broker.js +41 -8
  51. package/dist/player-runtime/player-glue-worker.d.ts +2 -1
  52. package/dist/player-runtime/player-glue-worker.d.ts.map +1 -1
  53. package/dist/player-runtime/player-glue-worker.js +3 -1
  54. package/dist/stores/actors.d.ts +12 -2
  55. package/dist/stores/actors.d.ts.map +1 -1
  56. package/dist/stores/actors.js +43 -18
  57. package/dist/stores/chunks.d.ts +12 -0
  58. package/dist/stores/chunks.d.ts.map +1 -1
  59. package/dist/stores/chunks.js +112 -39
  60. package/dist/stores/durable.d.ts.map +1 -1
  61. package/dist/stores/durable.js +2 -1
  62. package/package.json +1 -1
package/MIGRATION.md CHANGED
@@ -1,3 +1,73 @@
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
+
1
71
  # 17.13.0 ck-exec observability
2
72
 
3
73
  Additive (dev-tier preview; ck-api `v2.22.0`).
@@ -37,7 +107,8 @@ Crowdy Studio's SERVER target moves to ck-exec mods, which 17.12.0 offered behin
37
107
  package named for the project, instead of the legacy `crowdy-compute-sdk` crate; the
38
108
  server module name fits a mod's (48 characters, starting with a letter) and a full-stack
39
109
  project records pairing `NONE`, since a mod has no client pairing. The CLIENT crate is
40
- unchanged. `createCrowdyStudioStarterProject` takes the starter as `modStarter`.
110
+ unchanged (17.14.0 moved it to ck-exec). `createCrowdyStudioStarterProject` takes the
111
+ starter as `modStarter`.
41
112
  - **Invoke, Logs, Runs and the budget line follow the engine.** On ck-exec, Invoke calls the
42
113
  mod's endpoint (default `state`, JSON arguments sent as MessagePack) over one exec
43
114
  connection, and the result is the decoded reply as JSON; Logs are the mod's `ctx.log`
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
 
@@ -735,6 +737,58 @@ Integers above 2^53 decode as `number` and lose precision unless you pass
735
737
  `{ decode: { useBigInt64: true } }`. The wire format is in the
736
738
  [ck-exec docs](https://docs.dev.crowdedkingdoms.com/exec/intro).
737
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
+
738
792
  ## Hosting a game on Crowdy Games
739
793
 
740
794
  Since 17.2.0 (ck-api v2.1) a developer can publish a built static bundle to the
@@ -833,11 +887,22 @@ Untrusted HUD payloads always render as text, never HTML.
833
887
  SERVER target starts from the platform's mod starter (`client.exec.modStarter(appId)`, a
834
888
  `ckx-sdk` crate), Test draft and Deploy live build it with `modBuild` and deploy it to the
835
889
  grid as the mod `mod:<server module name>`, Invoke calls one of its endpoints (`state` by
836
- default) over an exec connection, and Logs shows its `ctx.log` lines. The CLIENT target is
837
- unchanged. `mountCrowdyStudio` and the controller take the same `serverEngine` with
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
838
903
  `mods: client.exec`; without `mods` they stay on legacy player compute, and
839
- `serverEngine: 'player-compute'` keeps it explicitly. The platform is switching legacy
840
- player compute off, so that option lasts only until it is removed.
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.
841
906
 
842
907
  See [Crowdy Studio & player client mods](https://docs.crowdedkingdoms.com/crowdyjs/player-client-mods)
843
908
  and [Embed Crowdy Studio in your game](https://docs.crowdedkingdoms.com/crowdyjs/crowdy-studio-embed).
@@ -77,7 +77,7 @@ export interface CrowdyStudioInvokeResult {
77
77
  durationUs?: number;
78
78
  }
79
79
  export interface CrowdyStudioState {
80
- /** What runs the SERVER target; fixed for the controller's life. */
80
+ /** What runs the project's targets; fixed for the controller's life. */
81
81
  serverEngine: CrowdyStudioServerEngine;
82
82
  projects: readonly CrowdyStudioProjectSummary[];
83
83
  project: CrowdyStudioProject | null;
@@ -109,26 +109,30 @@ export interface CrowdyStudioState {
109
109
  export type CrowdyStudioPlayerCompute = Pick<PlayerComputeAPI, 'deploy' | 'versions' | 'setEnabled' | 'setRequires' | 'artifactBytes' | 'usage' | 'runs' | 'logs' | 'invoke'>;
110
110
  export type CrowdyStudioPlayerWallet = Pick<PlayerWalletAPI, 'balance'>;
111
111
  /**
112
- * What runs the SERVER target: `'ck-exec'`, a mod on the grid (`mods`), or `'player-compute'`,
113
- * legacy player compute, which the platform is switching off and will remove.
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.
114
115
  */
115
116
  export type CrowdyStudioServerEngine = 'player-compute' | 'ck-exec';
116
117
  /**
117
- * ck-exec mods (`client.exec`): the SERVER target of a new project starts from the mod
118
- * starter, builds the project's server crate and runs it as the grid's mod, and the Invoke
119
- * and Logs panels call and read that mod, in place of legacy player compute. The CLIENT
120
- * target is unchanged.
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.
121
125
  */
122
- export type CrowdyStudioMods = Pick<ExecAPI, 'modStarter' | 'modBuild' | 'modBuildStatus' | 'modDeploy' | 'modSetEnabled' | 'modLogs' | 'connect'>;
126
+ export type CrowdyStudioMods = Pick<ExecAPI, 'modStarter' | 'modBuild' | 'modBuildStatus' | 'modDeploy' | 'modSetEnabled' | 'modLogs' | 'myMods' | 'modClientBuild' | 'modClientDeploy' | 'consentClientMod' | 'modClientArtifactBytes' | 'connect'>;
123
127
  export interface CrowdyStudioBroker {
124
128
  start(bytes: ArrayBuffer): Promise<void>;
125
129
  stop(): void;
126
130
  }
127
131
  export interface CrowdyStudioControllerOptions {
128
132
  projectProvider: CrowdyStudioProjectProvider;
129
- /** Legacy player compute: the CLIENT target's compiles, and the SERVER target's with `'player-compute'`. */
133
+ /** Legacy player compute: both targets' compiles and runs with `'player-compute'`. */
130
134
  playerCompute: CrowdyStudioPlayerCompute;
131
- /** Run the SERVER target as a ck-exec mod (see {@link CrowdyStudioMods}). */
135
+ /** Run the project as a ck-exec mod and its CLIENT half (see {@link CrowdyStudioMods}). */
132
136
  mods?: CrowdyStudioMods;
133
137
  /**
134
138
  * Defaults to `'ck-exec'` when `mods` is given, else `'player-compute'`. `'ck-exec'` needs
@@ -168,7 +172,8 @@ export interface CrowdyStudioControllerOptions {
168
172
  /**
169
173
  * Override CLIENT tick cadence. When omitted, Studio reads
170
174
  * `[package.metadata.crowdy] tick_interval_ms` from the project's CLIENT
171
- * 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.
172
177
  */
173
178
  clientTickIntervalMs?: number;
174
179
  autosaveMs?: number;
@@ -330,6 +335,28 @@ export declare class CrowdyStudioController {
330
335
  * project files, such as grid program assets, are not part of the crate.
331
336
  */
332
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;
333
360
  private recordBuild;
334
361
  private enableServer;
335
362
  private setServerEnabled;
@@ -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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"}