@crowdedkingdoms/crowdyjs 17.12.0-dev.1 → 17.13.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 +56 -0
- package/README.md +31 -1
- 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 +35 -6
- package/dist/crowdy-studio/controller.d.ts.map +1 -1
- package/dist/crowdy-studio/controller.js +119 -11
- package/dist/crowdy-studio/dom-shell.d.ts.map +1 -1
- package/dist/crowdy-studio/dom-shell.js +13 -8
- package/dist/crowdy-studio/embed/panel.d.ts +8 -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 +14 -0
- package/dist/crowdy-studio/starter-projects.d.ts.map +1 -1
- package/dist/crowdy-studio/starter-projects.js +55 -5
- package/dist/domains/exec.d.ts +61 -6
- package/dist/domains/exec.d.ts.map +1 -1
- package/dist/domains/exec.js +36 -4
- package/dist/errors.d.ts +3 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/generated/graphql.d.ts +73 -0
- package/dist/generated/graphql.d.ts.map +1 -1
- package/dist/generated/graphql.js +6 -3
- package/dist/grid-scope.d.ts.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/kit/npcs.d.ts.map +1 -1
- package/dist/kit/social.d.ts.map +1 -1
- package/package.json +1 -1
package/MIGRATION.md
CHANGED
|
@@ -1,3 +1,59 @@
|
|
|
1
|
+
# 17.13.0 ck-exec observability
|
|
2
|
+
|
|
3
|
+
Additive (dev-tier preview; ck-api `v2.22.0`).
|
|
4
|
+
|
|
5
|
+
- `client.exec.endpointStats(appId, { nodeType?, sinceMinutes? })` returns `ExecEndpointStat[]`:
|
|
6
|
+
per endpoint (`nodeType`, `method`) the `calls`, `appErrors`, `busy`, `denied`,
|
|
7
|
+
`deadlineExceeded`, `otherErrors` and `timedCalls` in the window, `latencyMsAvg` /
|
|
8
|
+
`latencyMsMax` over the timed calls (null when none), and `firstMinute` / `lastMinute`.
|
|
9
|
+
- `client.exec.logs(appId, { flow })` keeps only one flow's lines, and every `ExecLogLine` (also
|
|
10
|
+
from `modLogs`) has `flow`: 32 lowercase hex digits, or null for a line written outside a call.
|
|
11
|
+
- `ExecVersion` has `manifestJson` and `manifest` (`ExecManifest`, parsed), null when the
|
|
12
|
+
version's row is gone; a type's spawn seed is its size, `seed_bytes`.
|
|
13
|
+
- `CrowdyExecError.rateLimited` and `retryAfterMs`. A call over a player's limit (120 per 10 s
|
|
14
|
+
per app and host) is refused `Busy` with a message starting `rate limited`; wait
|
|
15
|
+
`retryAfterMs` before calling again. The SDK never retries `Busy` itself.
|
|
16
|
+
- Now exported: `ExecLogLine`, `ExecLogsOptions`, `ExecInstance`, `ExecVersion`, `ExecManifest`,
|
|
17
|
+
`ExecManifestType`, `ExecAppStatus`, `ExecEndpointStat`, `ExecEndpointStatsOptions`.
|
|
18
|
+
|
|
19
|
+
# 17.13.0 Crowdy Studio runs SERVER code on ck-exec by default
|
|
20
|
+
|
|
21
|
+
**A behaviour change for embedders; no signature is removed.** The platform is switching
|
|
22
|
+
legacy player compute off (the game API answers `ENGINE_SWITCHED_OFF`, HTTP 503), so
|
|
23
|
+
Crowdy Studio's SERVER target moves to ck-exec mods, which 17.12.0 offered behind an option.
|
|
24
|
+
|
|
25
|
+
- **`createCrowdyStudioEmbed` / `CrowdyStudioEmbed`: `serverEngine` now defaults to
|
|
26
|
+
`'ck-exec'` when `client.exec` is present** (every `CrowdyClient`), and to
|
|
27
|
+
`'player-compute'` only for a client without it. An embed that passed nothing now builds
|
|
28
|
+
and runs SERVER code as the grid's mod. Pass `serverEngine: 'player-compute'` to keep the
|
|
29
|
+
legacy engine until it is removed; `'ck-exec'` without `exec` is refused at mount, as
|
|
30
|
+
before.
|
|
31
|
+
- **`CrowdyStudioController` and `mountCrowdyStudio` take `serverEngine` too**, defaulting
|
|
32
|
+
to `'ck-exec'` when `mods` is given and `'player-compute'` otherwise, so a direct caller
|
|
33
|
+
keeps its engine until it passes `mods: client.exec`. `CrowdyStudioState.serverEngine`
|
|
34
|
+
says which one runs.
|
|
35
|
+
- **On ck-exec a new project's SERVER target is the mod starter.** `createProject` asks
|
|
36
|
+
`mods.modStarter(appId)` (`execModStarter`) and uses its `ckx-sdk` crate, with the Cargo
|
|
37
|
+
package named for the project, instead of the legacy `crowdy-compute-sdk` crate; the
|
|
38
|
+
server module name fits a mod's (48 characters, starting with a letter) and a full-stack
|
|
39
|
+
project records pairing `NONE`, since a mod has no client pairing. The CLIENT crate is
|
|
40
|
+
unchanged. `createCrowdyStudioStarterProject` takes the starter as `modStarter`.
|
|
41
|
+
- **Invoke, Logs, Runs and the budget line follow the engine.** On ck-exec, Invoke calls the
|
|
42
|
+
mod's endpoint (default `state`, JSON arguments sent as MessagePack) over one exec
|
|
43
|
+
connection, and the result is the decoded reply as JSON; Logs are the mod's `ctx.log`
|
|
44
|
+
lines (`modLogs`; `CrowdyStudioRun.level` is set and the text is `errorMessage`); Runs
|
|
45
|
+
stay empty (ck-exec keeps no run records); player compute usage is read only for a
|
|
46
|
+
project with a CLIENT target, whose compiles still spend it.
|
|
47
|
+
- **`CrowdyStudioMods` gained `modStarter`, `modLogs` and `connect`.** Pass `client.exec`;
|
|
48
|
+
a hand-written stand-in needs those three as well.
|
|
49
|
+
- **The mod build sends only the crate**: `Cargo.toml`, `README.md` and `src/**/*.rs`
|
|
50
|
+
(grid program assets such as `programs/*.js` stay in the project), and a server module
|
|
51
|
+
name that starts with a digit builds as crate `mod-<name>`.
|
|
52
|
+
|
|
53
|
+
Existing projects keep their files: a project created on the legacy engine has a
|
|
54
|
+
`crowdy-compute-sdk` crate, which a mod build refuses. Start a new project, or replace its
|
|
55
|
+
SERVER `Cargo.toml` and `src/lib.rs` with the mod starter's.
|
|
56
|
+
|
|
1
57
|
# CrowdyJS v17.7 — grid-scoped parity (DN-10)
|
|
2
58
|
|
|
3
59
|
**Additive, plus one coordinated break.** `17.7.0` (2026-09-22), on top of the
|
package/README.md
CHANGED
|
@@ -704,6 +704,18 @@ exec.onReconnect((host) => console.log('moved to', host));
|
|
|
704
704
|
without a global `WebSocket` (Node before 22), pass one: `{ WebSocket }` from the `ws` package.
|
|
705
705
|
- A refused call throws `CrowdyExecError`: `status` is the platform's (`AppError` carries the
|
|
706
706
|
handler's own message; `Busy`, `Moved`, `Unavailable` and `RateLimited` are `retryable`).
|
|
707
|
+
The SDK does not retry `Busy`. A gateway refuses a player's calls over 120 per 10 s (per app
|
|
708
|
+
and host) as `Busy` with `rateLimited` true and `retryAfterMs` set; wait that long before
|
|
709
|
+
calling again, since calling sooner is refused again:
|
|
710
|
+
|
|
711
|
+
```ts
|
|
712
|
+
try {
|
|
713
|
+
await exec.call('arena', 'm1', 'hit');
|
|
714
|
+
} catch (e) {
|
|
715
|
+
if (e instanceof CrowdyExecError && e.rateLimited) await new Promise((r) => setTimeout(r, e.retryAfterMs ?? 1_000));
|
|
716
|
+
else throw e;
|
|
717
|
+
}
|
|
718
|
+
```
|
|
707
719
|
- When the host goes away, the connection asks for a host again, reconnects and renews every
|
|
708
720
|
subscription; a call caught by it, or answered `Moved`, is tried once more.
|
|
709
721
|
- `ExecConnection.open(gatewayUrl, token)` connects with a connect token you already have
|
|
@@ -711,6 +723,13 @@ exec.onReconnect((host) => console.log('moved to', host));
|
|
|
711
723
|
- `client.exec.deploy({ appId, root, types })` takes each node type's compiled module
|
|
712
724
|
(`wasm: Uint8Array`) with its manifest fields, sends each distinct module once, and makes
|
|
713
725
|
the version active.
|
|
726
|
+
- Operating it (`view_compute_diagnostics`): `logs(appId, { nodeType, key, maxLevel, flow })`,
|
|
727
|
+
where each line's `flow` is the call it was written in, so `logs(appId, { flow })` follows
|
|
728
|
+
one client call through every hub and host; `versions(appId)` with each version's
|
|
729
|
+
`manifestJson` and parsed `manifest` (a spawn seed shows as `seed_bytes`);
|
|
730
|
+
`endpointStats(appId, { nodeType, sinceMinutes })`, calls per endpoint by outcome (`calls`,
|
|
731
|
+
`appErrors`, `busy`, `denied`, `deadlineExceeded`, `otherErrors`) with latency over
|
|
732
|
+
`timedCalls` (default the last 60 minutes, at most 7 days).
|
|
714
733
|
|
|
715
734
|
Integers above 2^53 decode as `number` and lose precision unless you pass
|
|
716
735
|
`{ decode: { useBigInt64: true } }`. The wire format is in the
|
|
@@ -786,7 +805,7 @@ import { createCrowdyStudioEmbed } from '@crowdedkingdoms/crowdyjs/crowdy-studio
|
|
|
786
805
|
import workerUrl from '@crowdedkingdoms/crowdyjs/player-glue-worker?worker&url';
|
|
787
806
|
|
|
788
807
|
const studio = createCrowdyStudioEmbed({
|
|
789
|
-
client: game, // CrowdyClient: crowdyStudio, playerCompute, playerWallet, crowdyStudioGitHub
|
|
808
|
+
client: game, // CrowdyClient: crowdyStudio, exec, playerCompute, playerWallet, crowdyStudioGitHub
|
|
790
809
|
appId,
|
|
791
810
|
gameName: 'My Game',
|
|
792
811
|
suppressGameplayInput: () => pauseInput(),
|
|
@@ -809,6 +828,17 @@ fullscreen modal on narrow screens. For custom chrome, call
|
|
|
809
828
|
`new CrowdyStudioController(options)`. New games should start SERVER-only.
|
|
810
829
|
Untrusted HUD payloads always render as text, never HTML.
|
|
811
830
|
|
|
831
|
+
**The SERVER target runs as a ck-exec mod.** The embed's `serverEngine` defaults to
|
|
832
|
+
`'ck-exec'` when the client has `exec` (a `CrowdyClient` always does): a new project's
|
|
833
|
+
SERVER target starts from the platform's mod starter (`client.exec.modStarter(appId)`, a
|
|
834
|
+
`ckx-sdk` crate), Test draft and Deploy live build it with `modBuild` and deploy it to the
|
|
835
|
+
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
|
|
838
|
+
`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.
|
|
841
|
+
|
|
812
842
|
See [Crowdy Studio & player client mods](https://docs.crowdedkingdoms.com/crowdyjs/player-client-mods)
|
|
813
843
|
and [Embed Crowdy Studio in your game](https://docs.crowdedkingdoms.com/crowdyjs/crowdy-studio-embed).
|
|
814
844
|
|
|
@@ -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 SERVER target; 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,32 @@ 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 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.
|
|
114
|
+
*/
|
|
115
|
+
export type CrowdyStudioServerEngine = 'player-compute' | 'ck-exec';
|
|
116
|
+
/**
|
|
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.
|
|
107
121
|
*/
|
|
108
|
-
export type CrowdyStudioMods = Pick<ExecAPI, 'modBuild' | 'modBuildStatus' | 'modDeploy' | 'modSetEnabled'>;
|
|
122
|
+
export type CrowdyStudioMods = Pick<ExecAPI, 'modStarter' | 'modBuild' | 'modBuildStatus' | 'modDeploy' | 'modSetEnabled' | 'modLogs' | 'connect'>;
|
|
109
123
|
export interface CrowdyStudioBroker {
|
|
110
124
|
start(bytes: ArrayBuffer): Promise<void>;
|
|
111
125
|
stop(): void;
|
|
112
126
|
}
|
|
113
127
|
export interface CrowdyStudioControllerOptions {
|
|
114
128
|
projectProvider: CrowdyStudioProjectProvider;
|
|
129
|
+
/** Legacy player compute: the CLIENT target's compiles, and the SERVER target's with `'player-compute'`. */
|
|
115
130
|
playerCompute: CrowdyStudioPlayerCompute;
|
|
116
131
|
/** Run the SERVER target as a ck-exec mod (see {@link CrowdyStudioMods}). */
|
|
117
132
|
mods?: CrowdyStudioMods;
|
|
133
|
+
/**
|
|
134
|
+
* Defaults to `'ck-exec'` when `mods` is given, else `'player-compute'`. `'ck-exec'` needs
|
|
135
|
+
* `mods`; `'player-compute'` keeps the legacy engine even when `mods` is given.
|
|
136
|
+
*/
|
|
137
|
+
serverEngine?: CrowdyStudioServerEngine;
|
|
118
138
|
playerWallet?: CrowdyStudioPlayerWallet;
|
|
119
139
|
/**
|
|
120
140
|
* GitHub repository card (bring-your-own repo). Optional: without it the
|
|
@@ -192,6 +212,8 @@ export declare class CrowdyStudioController {
|
|
|
192
212
|
private readonly surfaceTimers;
|
|
193
213
|
private pageVisible;
|
|
194
214
|
private destroyed;
|
|
215
|
+
private readonly mods;
|
|
216
|
+
private modConnection;
|
|
195
217
|
constructor(options: CrowdyStudioControllerOptions);
|
|
196
218
|
getState(): CrowdyStudioState;
|
|
197
219
|
subscribe(listener: (state: CrowdyStudioState) => void): () => void;
|
|
@@ -303,8 +325,9 @@ export declare class CrowdyStudioController {
|
|
|
303
325
|
private deployProject;
|
|
304
326
|
private compileTarget;
|
|
305
327
|
/**
|
|
306
|
-
* The SERVER target as a ck-exec mod: the project's server files
|
|
307
|
-
*
|
|
328
|
+
* The SERVER target as a ck-exec mod: the project's server crate files, built on the
|
|
329
|
+
* platform, then deployed to this grid (switched off until {@link enableServer}). Other
|
|
330
|
+
* project files, such as grid program assets, are not part of the crate.
|
|
308
331
|
*/
|
|
309
332
|
private buildMod;
|
|
310
333
|
private recordBuild;
|
|
@@ -315,6 +338,12 @@ export declare class CrowdyStudioController {
|
|
|
315
338
|
invoke(exportName: string, paramsJson?: string, agentOperation?: number): Promise<CrowdyStudioInvokeResult>;
|
|
316
339
|
setSurfaceVisible(surface: CrowdyStudioPolledSurface, visible: boolean): void;
|
|
317
340
|
setPageVisible(visible: boolean): void;
|
|
341
|
+
/**
|
|
342
|
+
* The mod's endpoint `method` with `paramsJson` as its arguments, through one exec
|
|
343
|
+
* connection to the mod (`mod:<name>`, keyed by the grid) that later calls reuse.
|
|
344
|
+
*/
|
|
345
|
+
private callMod;
|
|
346
|
+
private closeModConnection;
|
|
318
347
|
refreshSurface(surface: CrowdyStudioPolledSurface): Promise<void>;
|
|
319
348
|
destroy(): void;
|
|
320
349
|
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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"}
|
|
@@ -7,6 +7,9 @@ import { parseClientTickIntervalMs } from './client-tick-interval.js';
|
|
|
7
7
|
import { createCrowdyStudioStarterProject, } from './starter-projects.js';
|
|
8
8
|
/** As ck-exec's mod names. */
|
|
9
9
|
const MOD_NAME = /^[a-z0-9_-]{1,48}$/;
|
|
10
|
+
/** As a ck-exec build's crate names. */
|
|
11
|
+
const CRATE_NAME = /^[a-z][a-z0-9_-]{0,63}$/;
|
|
12
|
+
const LOG_LEVELS = ['error', 'warn', 'info', 'debug'];
|
|
10
13
|
class OperationCancelledError extends Error {
|
|
11
14
|
}
|
|
12
15
|
/**
|
|
@@ -18,6 +21,7 @@ export class CrowdyStudioController {
|
|
|
18
21
|
constructor(options) {
|
|
19
22
|
this.options = options;
|
|
20
23
|
this.state = {
|
|
24
|
+
serverEngine: 'player-compute',
|
|
21
25
|
projects: [],
|
|
22
26
|
project: null,
|
|
23
27
|
personalLibraryFiles: [],
|
|
@@ -55,8 +59,15 @@ export class CrowdyStudioController {
|
|
|
55
59
|
this.surfaceTimers = new Map();
|
|
56
60
|
this.pageVisible = true;
|
|
57
61
|
this.destroyed = false;
|
|
62
|
+
this.modConnection = null;
|
|
58
63
|
// ----- GitHub repository card ------------------------------------------
|
|
59
64
|
this.githubStatusGeneration = 0;
|
|
65
|
+
const serverEngine = options.serverEngine ?? (options.mods ? 'ck-exec' : 'player-compute');
|
|
66
|
+
if (serverEngine === 'ck-exec' && !options.mods) {
|
|
67
|
+
throw new Error("serverEngine 'ck-exec' needs the mods option (client.exec)");
|
|
68
|
+
}
|
|
69
|
+
this.mods = serverEngine === 'ck-exec' ? options.mods : null;
|
|
70
|
+
this.state = { ...this.state, serverEngine };
|
|
60
71
|
if (options.onStateChange)
|
|
61
72
|
this.listeners.add(options.onStateChange);
|
|
62
73
|
}
|
|
@@ -186,9 +197,13 @@ export class CrowdyStudioController {
|
|
|
186
197
|
if (this.state.project && !(await this.saveNow())) {
|
|
187
198
|
throw new Error('Resolve or retry the current project save before creating another');
|
|
188
199
|
}
|
|
200
|
+
const modStarter = this.mods && projectTargets(options.kind).includes('SERVER')
|
|
201
|
+
? await this.mods.modStarter(this.options.appId)
|
|
202
|
+
: undefined;
|
|
189
203
|
const input = createCrowdyStudioStarterProject({
|
|
190
204
|
...options,
|
|
191
205
|
...this.scope(),
|
|
206
|
+
...(modStarter ? { modStarter } : {}),
|
|
192
207
|
});
|
|
193
208
|
const project = await this.options.projectProvider.createProject(input);
|
|
194
209
|
this.installProject(project);
|
|
@@ -254,6 +269,7 @@ export class CrowdyStudioController {
|
|
|
254
269
|
this.stopSurfacePolling();
|
|
255
270
|
this.broker?.stop();
|
|
256
271
|
this.broker = null;
|
|
272
|
+
this.closeModConnection();
|
|
257
273
|
this.clearSaveTimers();
|
|
258
274
|
this.editGeneration = 0;
|
|
259
275
|
this.persistedGeneration = 0;
|
|
@@ -890,7 +906,7 @@ export class CrowdyStudioController {
|
|
|
890
906
|
}
|
|
891
907
|
this.checkOperation(operation);
|
|
892
908
|
// A mod has no client pairing: its players call it by name.
|
|
893
|
-
if (!this.
|
|
909
|
+
if (!this.mods) {
|
|
894
910
|
const requiredClientName = project.metadata.pairingPreference === 'REQUIRED'
|
|
895
911
|
? client.name
|
|
896
912
|
: null;
|
|
@@ -966,7 +982,7 @@ export class CrowdyStudioController {
|
|
|
966
982
|
message: `Submitting ${name}`,
|
|
967
983
|
},
|
|
968
984
|
});
|
|
969
|
-
if (target === 'SERVER' && this.
|
|
985
|
+
if (target === 'SERVER' && this.mods) {
|
|
970
986
|
return this.buildMod(name, files, operation);
|
|
971
987
|
}
|
|
972
988
|
// The server resolves the source from the project itself: the saved
|
|
@@ -1019,18 +1035,21 @@ export class CrowdyStudioController {
|
|
|
1019
1035
|
return null;
|
|
1020
1036
|
}
|
|
1021
1037
|
/**
|
|
1022
|
-
* The SERVER target as a ck-exec mod: the project's server files
|
|
1023
|
-
*
|
|
1038
|
+
* The SERVER target as a ck-exec mod: the project's server crate files, built on the
|
|
1039
|
+
* platform, then deployed to this grid (switched off until {@link enableServer}). Other
|
|
1040
|
+
* project files, such as grid program assets, are not part of the crate.
|
|
1024
1041
|
*/
|
|
1025
1042
|
async buildMod(name, files, operation) {
|
|
1026
|
-
const mods = this.
|
|
1043
|
+
const mods = this.mods;
|
|
1027
1044
|
if (!MOD_NAME.test(name)) {
|
|
1028
1045
|
throw new Error(`The server module name '${name}' must be 1-48 lowercase letters, digits, - or _ to run as a mod`);
|
|
1029
1046
|
}
|
|
1030
1047
|
const { appId, gridId } = this.scope();
|
|
1031
1048
|
const queued = await mods.modBuild(appId, {
|
|
1032
|
-
name
|
|
1033
|
-
files: files
|
|
1049
|
+
name: CRATE_NAME.test(name) ? name : `mod-${name}`,
|
|
1050
|
+
files: files
|
|
1051
|
+
.filter((file) => isModCrateFile(file.path))
|
|
1052
|
+
.map((file) => ({ path: file.path, content: file.content })),
|
|
1034
1053
|
});
|
|
1035
1054
|
this.checkOperation(operation);
|
|
1036
1055
|
const limit = this.options.compilePollLimit ?? 60;
|
|
@@ -1087,9 +1106,9 @@ export class CrowdyStudioController {
|
|
|
1087
1106
|
this.checkOperation(operation);
|
|
1088
1107
|
}
|
|
1089
1108
|
async setServerEnabled(name, enabled) {
|
|
1090
|
-
if (this.
|
|
1109
|
+
if (this.mods) {
|
|
1091
1110
|
const { appId, gridId } = this.scope();
|
|
1092
|
-
await this.
|
|
1111
|
+
await this.mods.modSetEnabled(appId, gridId, name, enabled);
|
|
1093
1112
|
return;
|
|
1094
1113
|
}
|
|
1095
1114
|
await this.options.playerCompute.setEnabled({
|
|
@@ -1182,6 +1201,12 @@ export class CrowdyStudioController {
|
|
|
1182
1201
|
if (!projectTargets(project.kind).includes('SERVER')) {
|
|
1183
1202
|
throw new Error('Invoke requires a SERVER target');
|
|
1184
1203
|
}
|
|
1204
|
+
if (this.mods) {
|
|
1205
|
+
const result = await this.callMod(moduleNameFor(project, 'SERVER'), exportName.trim() || 'state', paramsJson);
|
|
1206
|
+
this.checkAgentOperation(agentOperation);
|
|
1207
|
+
this.update({ invokeResult: result });
|
|
1208
|
+
return result;
|
|
1209
|
+
}
|
|
1185
1210
|
const result = await this.options.playerCompute.invoke({
|
|
1186
1211
|
...this.scope(),
|
|
1187
1212
|
moduleName: moduleNameFor(project, 'SERVER'),
|
|
@@ -1214,10 +1239,64 @@ export class CrowdyStudioController {
|
|
|
1214
1239
|
else
|
|
1215
1240
|
this.stopSurfacePolling();
|
|
1216
1241
|
}
|
|
1242
|
+
/**
|
|
1243
|
+
* The mod's endpoint `method` with `paramsJson` as its arguments, through one exec
|
|
1244
|
+
* connection to the mod (`mod:<name>`, keyed by the grid) that later calls reuse.
|
|
1245
|
+
*/
|
|
1246
|
+
async callMod(name, method, paramsJson) {
|
|
1247
|
+
const text = paramsJson?.trim();
|
|
1248
|
+
let args = null;
|
|
1249
|
+
if (text) {
|
|
1250
|
+
try {
|
|
1251
|
+
args = JSON.parse(text);
|
|
1252
|
+
}
|
|
1253
|
+
catch {
|
|
1254
|
+
throw new Error('The call arguments must be JSON');
|
|
1255
|
+
}
|
|
1256
|
+
}
|
|
1257
|
+
if (this.modConnection?.name !== name) {
|
|
1258
|
+
this.closeModConnection();
|
|
1259
|
+
const connection = this.mods.connect(this.options.appId, {
|
|
1260
|
+
nodeType: modNodeType(name),
|
|
1261
|
+
key: this.options.gridId,
|
|
1262
|
+
});
|
|
1263
|
+
connection.catch(() => {
|
|
1264
|
+
if (this.modConnection?.connection === connection)
|
|
1265
|
+
this.modConnection = null;
|
|
1266
|
+
});
|
|
1267
|
+
this.modConnection = { name, connection };
|
|
1268
|
+
}
|
|
1269
|
+
const connection = await this.modConnection.connection;
|
|
1270
|
+
const started = Date.now();
|
|
1271
|
+
const value = await connection.call(modNodeType(name), this.options.gridId, method, args);
|
|
1272
|
+
return {
|
|
1273
|
+
resultJson: JSON.stringify(value ?? null, (_key, v) => typeof v === 'bigint' ? v.toString() : v),
|
|
1274
|
+
durationUs: (Date.now() - started) * 1000,
|
|
1275
|
+
};
|
|
1276
|
+
}
|
|
1277
|
+
closeModConnection() {
|
|
1278
|
+
const open = this.modConnection;
|
|
1279
|
+
this.modConnection = null;
|
|
1280
|
+
void open?.connection.then((connection) => connection.close(), () => { });
|
|
1281
|
+
}
|
|
1217
1282
|
async refreshSurface(surface) {
|
|
1218
1283
|
if (!this.state.project)
|
|
1219
1284
|
return;
|
|
1220
1285
|
const serverName = this.state.project.metadata.serverModuleName;
|
|
1286
|
+
if (this.mods && surface !== 'usage') {
|
|
1287
|
+
// ck-exec records no runs; a mod's log is its own `ctx.log` lines.
|
|
1288
|
+
if (surface === 'runs') {
|
|
1289
|
+
this.update({ runs: [] });
|
|
1290
|
+
return;
|
|
1291
|
+
}
|
|
1292
|
+
const lines = serverName?.trim()
|
|
1293
|
+
? await this.mods.modLogs(this.options.appId, this.options.gridId, serverName.trim(), {
|
|
1294
|
+
limit: 50,
|
|
1295
|
+
})
|
|
1296
|
+
: [];
|
|
1297
|
+
this.update({ logs: lines.map((line) => modLogRow(serverName.trim(), line)) });
|
|
1298
|
+
return;
|
|
1299
|
+
}
|
|
1221
1300
|
if (surface === 'runs') {
|
|
1222
1301
|
this.update({
|
|
1223
1302
|
runs: await this.options.playerCompute.runs({
|
|
@@ -1239,11 +1318,15 @@ export class CrowdyStudioController {
|
|
|
1239
1318
|
});
|
|
1240
1319
|
return;
|
|
1241
1320
|
}
|
|
1321
|
+
// Player compute's units and compile quota: with a mod, only a CLIENT target spends them.
|
|
1322
|
+
const legacyUsage = !this.mods || projectTargets(this.state.project.kind).includes('CLIENT');
|
|
1242
1323
|
const [usage, wallet] = await Promise.all([
|
|
1243
|
-
|
|
1324
|
+
legacyUsage
|
|
1325
|
+
? this.options.playerCompute.usage({ appId: this.options.appId })
|
|
1326
|
+
: Promise.resolve(null),
|
|
1244
1327
|
this.options.playerWallet?.balance() ?? Promise.resolve(null),
|
|
1245
1328
|
]);
|
|
1246
|
-
this.update({ usage: normalizeUsage(usage), wallet });
|
|
1329
|
+
this.update({ usage: usage ? normalizeUsage(usage) : null, wallet });
|
|
1247
1330
|
}
|
|
1248
1331
|
destroy() {
|
|
1249
1332
|
if (this.destroyed)
|
|
@@ -1254,6 +1337,7 @@ export class CrowdyStudioController {
|
|
|
1254
1337
|
this.stopSurfacePolling();
|
|
1255
1338
|
this.broker?.stop();
|
|
1256
1339
|
this.broker = null;
|
|
1340
|
+
this.closeModConnection();
|
|
1257
1341
|
this.listeners.clear();
|
|
1258
1342
|
this.humanEditListeners.clear();
|
|
1259
1343
|
}
|
|
@@ -1499,6 +1583,30 @@ function sameFileRef(a, b) {
|
|
|
1499
1583
|
function compareProjectFile(a, b) {
|
|
1500
1584
|
return crowdyStudioFileKey(a.target, a.path).localeCompare(crowdyStudioFileKey(b.target, b.path));
|
|
1501
1585
|
}
|
|
1586
|
+
/** The node type players call a mod by, as `execModType`. */
|
|
1587
|
+
function modNodeType(name) {
|
|
1588
|
+
return `mod:${name}`;
|
|
1589
|
+
}
|
|
1590
|
+
/** What a mod build takes: `Cargo.toml`, `README.md` and Rust under `src/`. */
|
|
1591
|
+
function isModCrateFile(path) {
|
|
1592
|
+
return (path === 'Cargo.toml' ||
|
|
1593
|
+
path === 'README.md' ||
|
|
1594
|
+
(path.startsWith('src/') && path.endsWith('.rs')));
|
|
1595
|
+
}
|
|
1596
|
+
function modLogRow(moduleName, line) {
|
|
1597
|
+
const level = LOG_LEVELS[line.level] ?? 'debug';
|
|
1598
|
+
return {
|
|
1599
|
+
runId: line.id,
|
|
1600
|
+
moduleName,
|
|
1601
|
+
triggerSource: level,
|
|
1602
|
+
startedAt: line.at,
|
|
1603
|
+
durationUs: 0,
|
|
1604
|
+
fuelUsed: '0',
|
|
1605
|
+
success: level !== 'error',
|
|
1606
|
+
errorMessage: line.text,
|
|
1607
|
+
level,
|
|
1608
|
+
};
|
|
1609
|
+
}
|
|
1502
1610
|
function moduleNameFor(project, target) {
|
|
1503
1611
|
const name = target === 'SERVER'
|
|
1504
1612
|
? project.metadata.serverModuleName
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom-shell.d.ts","sourceRoot":"","sources":["../../src/crowdy-studio/dom-shell.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"dom-shell.d.ts","sourceRoot":"","sources":["../../src/crowdy-studio/dom-shell.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EACL,sBAAsB,EAIvB,MAAM,aAAa,CAAC;AAuCrB;;;;;;;GAOG;AACH;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,kDAAkD;IAClD,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC/B,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,2BAA2B;IAC1C,0EAA0E;IAC1E,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,WAAW,KAAK,cAAc,CAAC;IAClD,qEAAqE;IACrE,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,sBAAsB,KAAK,IAAI,CAAC;CAC5D;AAED,qBAAa,oBAAoB;IAkE7B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAlE/B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAc;IAC9C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAc;IAC9C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IACjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAa;IACrC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IACjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAc;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAc;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAc;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAoB;IACrD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAmB;IACnD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IACjD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAc;IAC5C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAmB;IACvD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAc;IAC5C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IACxC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;IAChD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;IACnD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA2C;IACxE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqC;IAC5D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA8C;IAC1E,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA+C;IACzE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAwB;IAC7C,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAa;IAC/C,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,QAAQ,CAAS;gBAGvB,IAAI,EAAE,WAAW,EACA,UAAU,EAAE,sBAAsB,EAClC,YAAY,GAAE,2BAAgC;IA8VjE,MAAM,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAsCtC,OAAO,IAAI,IAAI;IAiBf,OAAO,CAAC,UAAU;IAmBlB;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;IAgBhC,OAAO,CAAC,YAAY;IAkBpB,OAAO,CAAC,WAAW;IAsCnB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,UAAU;IA2DlB,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,aAAa;IAWrB,wEAAwE;IACxE,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,cAAc;IA+BtB,OAAO,CAAC,eAAe;IAyBvB,OAAO,CAAC,cAAc;IA2BtB,OAAO,CAAC,cAAc;IA6CtB,OAAO,CAAC,cAAc;IAuDtB,OAAO,CAAC,kBAAkB;IAyD1B,OAAO,CAAC,gBAAgB;IA4DxB,OAAO,CAAC,UAAU;IA4ClB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,UAAU;IAwBlB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,YAAY;IAmCpB,OAAO,CAAC,cAAc;IAgCtB,OAAO,CAAC,cAAc;IAqDtB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,iBAAiB;YAmBX,GAAG;CAQlB"}
|
|
@@ -274,12 +274,13 @@ export class CrowdyStudioDomShell {
|
|
|
274
274
|
clientModuleName: this.clientModuleName.value,
|
|
275
275
|
}));
|
|
276
276
|
this.pairing.addEventListener('change', () => this.controller.setPairingPreference(this.pairing.value));
|
|
277
|
-
|
|
278
|
-
this.invokeExport
|
|
277
|
+
const onMod = controller.getState().serverEngine === 'ck-exec';
|
|
278
|
+
this.invokeExport = input(onMod ? 'Endpoint' : 'Export name');
|
|
279
|
+
this.invokeExport.value = onMod ? 'state' : 'invoke';
|
|
279
280
|
this.invokeParams = document.createElement('textarea');
|
|
280
281
|
this.invokeParams.placeholder = '{"example": true}';
|
|
281
|
-
this.invokeParams.setAttribute('aria-label', 'Invoke JSON parameters');
|
|
282
|
-
const invokeButton = button('Invoke server export');
|
|
282
|
+
this.invokeParams.setAttribute('aria-label', onMod ? 'Call arguments (JSON)' : 'Invoke JSON parameters');
|
|
283
|
+
const invokeButton = button(onMod ? 'Call mod endpoint' : 'Invoke server export');
|
|
283
284
|
this.invokeResult = document.createElement('pre');
|
|
284
285
|
const invokeControls = element('div', 'ck-crowdy-studio-invoke');
|
|
285
286
|
invokeControls.append(this.invokeExport, this.invokeParams, invokeButton);
|
|
@@ -310,7 +311,9 @@ export class CrowdyStudioDomShell {
|
|
|
310
311
|
this.renderProblems(state);
|
|
311
312
|
this.renderBuild(state);
|
|
312
313
|
this.renderRuntimeRows(this.logsPanel, state.logs);
|
|
313
|
-
this.renderRuntimeRows(this.runsPanel, state.runs
|
|
314
|
+
this.renderRuntimeRows(this.runsPanel, state.runs, state.serverEngine === 'ck-exec'
|
|
315
|
+
? 'A mod keeps no run records; its log lines are under Logs.'
|
|
316
|
+
: undefined);
|
|
314
317
|
this.invokeResult.textContent = state.invokeResult
|
|
315
318
|
? formatInvokeResult(state.invokeResult)
|
|
316
319
|
: '';
|
|
@@ -959,15 +962,17 @@ export class CrowdyStudioDomShell {
|
|
|
959
962
|
output.textContent = state.buildOutput || 'No build has run.';
|
|
960
963
|
this.buildPanel.append(output);
|
|
961
964
|
}
|
|
962
|
-
renderRuntimeRows(panel, rows) {
|
|
965
|
+
renderRuntimeRows(panel, rows, emptyText = 'No runtime records.') {
|
|
963
966
|
panel.replaceChildren();
|
|
964
967
|
if (rows.length === 0) {
|
|
965
|
-
panel.append(empty(
|
|
968
|
+
panel.append(empty(emptyText));
|
|
966
969
|
return;
|
|
967
970
|
}
|
|
968
971
|
for (const row of rows) {
|
|
969
972
|
const line = document.createElement('pre');
|
|
970
|
-
line.textContent =
|
|
973
|
+
line.textContent = row.level
|
|
974
|
+
? `${row.success ? '·' : '✗'} ${row.startedAt} ${row.moduleName} ${row.level}\n${row.errorMessage ?? ''}`
|
|
975
|
+
: `${row.success ? '✓' : '✗'} ${row.startedAt} ${row.moduleName} ${row.triggerSource} · ${row.durationUs}µs · ${row.fuelUsed} fuel${row.errorMessage ? `\n${row.errorMessage}` : ''}`;
|
|
971
976
|
panel.append(line);
|
|
972
977
|
}
|
|
973
978
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type MountCrowdyStudioDshOptions, type MountCrowdyStudioOptions } from '../mount.js';
|
|
2
2
|
import type { CrowdyStudioDshPane } from '../../crowdy-dsh/pane.js';
|
|
3
3
|
import type { CrowdyStudioDshHost } from '../../crowdy-dsh/bridge.js';
|
|
4
|
-
import type { CrowdyStudioController, CrowdyStudioMods, CrowdyStudioPlayerCompute, CrowdyStudioPlayerWallet } from '../controller.js';
|
|
4
|
+
import type { CrowdyStudioController, CrowdyStudioMods, CrowdyStudioPlayerCompute, CrowdyStudioPlayerWallet, CrowdyStudioServerEngine } from '../controller.js';
|
|
5
5
|
import type { CrowdyStudioProjectProvider } from '../models.js';
|
|
6
6
|
import type { CrowdyStudioGitHubTransport } from '../github/transport.js';
|
|
7
7
|
import type { PlayerHostAdapterV1 } from '../../player-host/index.js';
|
|
@@ -19,7 +19,7 @@ export interface CrowdyStudioEmbedServices {
|
|
|
19
19
|
playerWallet?: CrowdyStudioPlayerWallet;
|
|
20
20
|
/** GitHub repository loop; omission hides the card. `CrowdyClient` provides it. */
|
|
21
21
|
crowdyStudioGitHub?: CrowdyStudioGitHubTransport;
|
|
22
|
-
/** ck-exec,
|
|
22
|
+
/** ck-exec, the default SERVER engine when present. `CrowdyClient` provides it. */
|
|
23
23
|
exec?: CrowdyStudioMods;
|
|
24
24
|
}
|
|
25
25
|
export interface CrowdyStudioEmbedTargetPermission {
|
|
@@ -70,11 +70,13 @@ export interface CrowdyStudioEmbedOptions {
|
|
|
70
70
|
*/
|
|
71
71
|
github?: CrowdyStudioGitHubTransport;
|
|
72
72
|
/**
|
|
73
|
-
* What runs the SERVER target:
|
|
74
|
-
*
|
|
75
|
-
*
|
|
73
|
+
* What runs the SERVER target: a ck-exec mod on the grid, built from the project's
|
|
74
|
+
* `ckx-sdk` crate (`client.exec`), or legacy player compute, which the platform is
|
|
75
|
+
* switching off. Defaults to `'ck-exec'` when the client has `exec` (every `CrowdyClient`
|
|
76
|
+
* does), else `'player-compute'`. Pass `'player-compute'` to stay on the legacy engine
|
|
77
|
+
* until it is removed.
|
|
76
78
|
*/
|
|
77
|
-
serverEngine?:
|
|
79
|
+
serverEngine?: CrowdyStudioServerEngine;
|
|
78
80
|
/**
|
|
79
81
|
* Suppress gameplay input and return a restoration callback. Used only by
|
|
80
82
|
* the narrow-screen modal; the desktop dock remains non-modal.
|