@crowdedkingdoms/crowdyjs 10.0.0 → 11.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/MIGRATION.md +59 -48
  2. package/README.md +29 -21
  3. package/dist/crowdy-client.d.ts +3 -3
  4. package/dist/crowdy-client.d.ts.map +1 -1
  5. package/dist/crowdy-client.js +2 -2
  6. package/dist/crowdy-studio/controller.d.ts +188 -0
  7. package/dist/crowdy-studio/controller.d.ts.map +1 -0
  8. package/dist/{mod-studio → crowdy-studio}/controller.js +22 -22
  9. package/dist/crowdy-studio/diagnostics.d.ts +22 -0
  10. package/dist/crowdy-studio/diagnostics.d.ts.map +1 -0
  11. package/dist/{mod-studio → crowdy-studio}/diagnostics.js +2 -2
  12. package/dist/{mod-studio → crowdy-studio}/dom-shell.d.ts +4 -4
  13. package/dist/crowdy-studio/dom-shell.d.ts.map +1 -0
  14. package/dist/{mod-studio → crowdy-studio}/dom-shell.js +31 -31
  15. package/dist/crowdy-studio/editor.d.ts +17 -0
  16. package/dist/crowdy-studio/editor.d.ts.map +1 -0
  17. package/dist/crowdy-studio/index.d.ts +10 -0
  18. package/dist/crowdy-studio/index.d.ts.map +1 -0
  19. package/dist/{mod-studio → crowdy-studio}/index.js +4 -4
  20. package/dist/crowdy-studio/models.d.ts +149 -0
  21. package/dist/crowdy-studio/models.d.ts.map +1 -0
  22. package/dist/{mod-studio → crowdy-studio}/models.js +10 -10
  23. package/dist/{mod-studio → crowdy-studio}/monaco-editor.d.ts +3 -3
  24. package/dist/crowdy-studio/monaco-editor.d.ts.map +1 -0
  25. package/dist/{mod-studio → crowdy-studio}/monaco-editor.js +4 -4
  26. package/dist/crowdy-studio/mount.d.ts +23 -0
  27. package/dist/crowdy-studio/mount.d.ts.map +1 -0
  28. package/dist/{mod-studio → crowdy-studio}/mount.js +48 -14
  29. package/dist/crowdy-studio/starter-projects.d.ts +11 -0
  30. package/dist/crowdy-studio/starter-projects.d.ts.map +1 -0
  31. package/dist/{mod-studio → crowdy-studio}/starter-projects.js +2 -2
  32. package/dist/crowdy-studio/styles.d.ts +2 -0
  33. package/dist/crowdy-studio/styles.d.ts.map +1 -0
  34. package/dist/crowdy-studio/styles.js +14 -0
  35. package/dist/crowdy-studio/textarea-editor.d.ts +8 -0
  36. package/dist/crowdy-studio/textarea-editor.d.ts.map +1 -0
  37. package/dist/{mod-studio → crowdy-studio}/textarea-editor.js +3 -3
  38. package/dist/domains/crowdyStudio.d.ts +27 -0
  39. package/dist/domains/crowdyStudio.d.ts.map +1 -0
  40. package/dist/domains/{playerCodeProjects.js → crowdyStudio.js} +47 -45
  41. package/dist/domains/playerCompute.d.ts +1 -1
  42. package/dist/domains/playerCompute.js +1 -1
  43. package/dist/generated/graphql.d.ts +670 -670
  44. package/dist/generated/graphql.d.ts.map +1 -1
  45. package/dist/generated/graphql.js +57 -57
  46. package/dist/index.d.ts +3 -3
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +3 -3
  49. package/dist/kit/npcs.d.ts.map +1 -1
  50. package/dist/kit/social.d.ts.map +1 -1
  51. package/dist/live-coding/rust-analysis.js +1 -1
  52. package/package.json +4 -4
  53. package/dist/domains/playerCodeProjects.d.ts +0 -25
  54. package/dist/domains/playerCodeProjects.d.ts.map +0 -1
  55. package/dist/mod-studio/controller.d.ts +0 -188
  56. package/dist/mod-studio/controller.d.ts.map +0 -1
  57. package/dist/mod-studio/diagnostics.d.ts +0 -22
  58. package/dist/mod-studio/diagnostics.d.ts.map +0 -1
  59. package/dist/mod-studio/dom-shell.d.ts.map +0 -1
  60. package/dist/mod-studio/editor.d.ts +0 -17
  61. package/dist/mod-studio/editor.d.ts.map +0 -1
  62. package/dist/mod-studio/index.d.ts +0 -10
  63. package/dist/mod-studio/index.d.ts.map +0 -1
  64. package/dist/mod-studio/models.d.ts +0 -149
  65. package/dist/mod-studio/models.d.ts.map +0 -1
  66. package/dist/mod-studio/monaco-editor.d.ts.map +0 -1
  67. package/dist/mod-studio/mount.d.ts +0 -17
  68. package/dist/mod-studio/mount.d.ts.map +0 -1
  69. package/dist/mod-studio/starter-projects.d.ts +0 -11
  70. package/dist/mod-studio/starter-projects.d.ts.map +0 -1
  71. package/dist/mod-studio/styles.d.ts +0 -2
  72. package/dist/mod-studio/styles.d.ts.map +0 -1
  73. package/dist/mod-studio/styles.js +0 -14
  74. package/dist/mod-studio/textarea-editor.d.ts +0 -8
  75. package/dist/mod-studio/textarea-editor.d.ts.map +0 -1
  76. /package/dist/{mod-studio → crowdy-studio}/editor.js +0 -0
package/MIGRATION.md CHANGED
@@ -1,28 +1,49 @@
1
- # CrowdyJS v10project-first Mod Studio (BREAKING)
2
-
3
- This migration is implemented on the feature branch but is **not versioned or
4
- published yet**.
5
-
6
- The session-only live-coding API was removed. There are deliberately no
7
- compatibility aliases.
8
-
9
- Removed exports:
10
-
11
- - `mountLiveCodingIDE`
12
- - `mountLiveCoding`
13
- - `LiveCodingController`
14
- - `MountLiveCodingOptions`
15
- - `PLAYER_CODE_TEMPLATES` / `templateById`
16
- - the `moduleName` and `draftByDefault` mount options
17
- - the `@crowdedkingdoms/crowdyjs/live-coding` package subpath
18
-
19
- Replace the old mount with a cloud project provider and the new subpath:
1
+ # CrowdyJS v11.1responsive Crowdy Studio embedding
2
+
3
+ Crowdy Studio now sizes to its host instead of imposing a 680-pixel minimum
4
+ height. The mount observes host element resizes and relayouts Monaco, while its
5
+ explorer and settings panes respond to the host's container width rather than
6
+ the browser viewport.
7
+
8
+ Embedding hosts should provide an explicit width and height for the mount
9
+ element. No project, autosave, deploy, pairing, worker-security, or GraphQL
10
+ behavior changed.
11
+
12
+ # CrowdyJS v11 — Crowdy Studio rename (BREAKING)
13
+
14
+ Version 11 removes the previous Mod Studio names completely. There are no
15
+ compatibility exports, client properties, package subpaths, GraphQL operations,
16
+ schema types, or CSS aliases.
17
+
18
+ Rename imports and API access:
19
+
20
+ - `@crowdedkingdoms/crowdyjs/mod-studio` →
21
+ `@crowdedkingdoms/crowdyjs/crowdy-studio`
22
+ - `mountModStudio` → `mountCrowdyStudio`
23
+ - `ModStudioController` → `CrowdyStudioController`
24
+ - `MountModStudioOptions` → `MountCrowdyStudioOptions`
25
+ - `ModStudioHandle` → `CrowdyStudioHandle`
26
+ - every other public `ModStudio*` model, error, diagnostic, and editor type →
27
+ its `CrowdyStudio*` equivalent
28
+ - `modStudioFileKey`, `modStudioFileUri`, and `normalizeModStudioPath` →
29
+ `crowdyStudioFileKey`, `crowdyStudioFileUri`, and
30
+ `normalizeCrowdyStudioPath`
31
+ - `client.playerCodeProjects` → `client.crowdyStudio`
32
+ - `PlayerCodeProjectsAPI` → `CrowdyStudioAPI`
33
+ - CSS classes under `ck-mod-studio*` → `ck-crowdy-studio*`
34
+
35
+ The matching Game API schema is required. Its project roots changed from
36
+ `playerCodeProjects`, `playerCodeProject`, `playerCodeProjectCreate`,
37
+ `playerCodeProjectSave`, `playerCodeLibraryFiles`, `playerCodeLibrarySave`,
38
+ `playerCodeCommonFiles`, and `playerCodeProjectImportFile` to the corresponding
39
+ `crowdyStudio*` roots. Project, library, common-file, input, and enum schema
40
+ types likewise use `CrowdyStudio` in place of `PlayerCode`.
20
41
 
21
42
  ```ts
22
- import { mountModStudio } from '@crowdedkingdoms/crowdyjs/mod-studio';
43
+ import { mountCrowdyStudio } from '@crowdedkingdoms/crowdyjs/crowdy-studio';
23
44
 
24
- const studio = await mountModStudio(host, {
25
- projectProvider: game.playerCodeProjects,
45
+ const studio = await mountCrowdyStudio(host, {
46
+ projectProvider: game.crowdyStudio,
26
47
  playerCompute: game.playerCompute,
27
48
  playerWallet: identity.playerWallet,
28
49
  appId,
@@ -33,36 +54,26 @@ const studio = await mountModStudio(host, {
33
54
  });
34
55
  ```
35
56
 
36
- Custom UIs instantiate `ModStudioController` directly. Move all source state
37
- into `ModStudioProjectProvider`: project files are typed
38
- `{ target: 'SERVER' | 'CLIENT', path, content }`, and full-stack files share one
39
- revision/save. Module names and pairing preference are project settings.
40
- Do not stringify source maps in callers; Mod Studio creates `sourceFilesJson`
41
- only at the existing `playerCompute.deploy` wire boundary.
42
-
43
- Action semantics are now explicit:
44
-
45
- - **Test draft** saves atomically, compiles, and runs with draft egress rules.
46
- - **Deploy live** saves and runs the live project.
47
- - **Stop project** attempts `setEnabled(false)`, client broker shutdown, and
48
- polling cleanup, and returns partial failures instead of hiding them.
57
+ Provider behavior, optimistic saves, target permissions, the credential-free
58
+ worker, full-stack deploy ordering, and stop semantics are unchanged.
49
59
 
50
- Full-stack order is CLIENT compile SERVER compile → `setRequires` (only after
51
- both succeed) → SERVER enable → exact-version CLIENT artifact hot-swap.
60
+ # CrowdyJS v10 project-first authoring (historical)
52
61
 
53
- The local Rust worker remains credential-free and server-free. Monaco now uses
54
- target-prefixed URIs and loads project, personal-library, and common Rust files
55
- for cross-file completion/hover/symbols/definition. If Monaco/Worker/WASM fails,
56
- `mountModStudio` keeps a target/file-aware textarea inside the same project UI;
57
- there is no standalone fallback API.
62
+ Version 10 replaced the session-only live-coding API with cloud projects. It
63
+ removed `mountLiveCodingIDE`, `mountLiveCoding`, `LiveCodingController`,
64
+ `MountLiveCodingOptions`, `PLAYER_CODE_TEMPLATES`, `templateById`, the
65
+ `moduleName` and `draftByDefault` mount options, and the
66
+ `@crowdedkingdoms/crowdyjs/live-coding` package subpath.
58
67
 
59
- The Game API project contract is exposed through `PlayerCodeProjectsAPI`.
60
- Generated operations cover `playerCodeProjects`, `playerCodeProject`,
61
- `playerCodeProjectCreate`, `playerCodeProjectSave`,
62
- `playerCodeLibraryFiles`, `playerCodeLibrarySave`,
63
- `playerCodeCommonFiles`, and `playerCodeProjectImportFile`.
68
+ Projects introduced one shared optimistic revision for SERVER and CLIENT files,
69
+ project metadata and module names, personal-library/common-file imports, atomic
70
+ autosave, and explicit **Test draft**, **Deploy live**, and **Stop project**
71
+ actions. Full-stack deployment was ordered CLIENT compile → SERVER compile →
72
+ `setRequires` SERVER enable → exact-version CLIENT artifact hot-swap.
64
73
 
65
- This branch is versioned `10.0.0` for the coordinated major release.
74
+ The browser Rust worker remained credential-free and server-free. Monaco used
75
+ target-prefixed URIs for cross-file language features and retained the
76
+ target/file-aware textarea fallback.
66
77
 
67
78
  # CrowdyJS v8.10 Notes
68
79
 
package/README.md CHANGED
@@ -33,10 +33,13 @@ CrowdyJS v4 targets browsers by default and uses native `fetch`, `WebSocket`, `c
33
33
  > **Player-code authoring DX:** `playerCompute.setRequires`,
34
34
  > `marketplace.trustGridAuthor`, self-authored `gridClientMods` fields, and
35
35
  > version-keyed client artifact fetches require the 2026-07-22 authoring-DX
36
- > migration. The v9 `mountModStudio` surface is project-first: cloud project
36
+ > migration. The v11 `mountCrowdyStudio` surface is project-first: cloud project
37
37
  > revisions, target-scoped files, atomic autosave, and explicit draft/live/stop
38
38
  > orchestration. Its Rust language worker receives source plus the committed
39
39
  > platform index only—never a credential and never a server connection.
40
+ > CrowdyJS 11 requires the matching Crowdy Studio Game API schema; the previous
41
+ > package subpath, exports, client property, GraphQL roots, and schema types were
42
+ > removed without aliases.
40
43
 
41
44
  > **v8.10 inventory authority:** generated craft/barter transactions work on
42
45
  > existing Model servers. Compute-refereed durable commits require Compute SDK
@@ -140,7 +143,7 @@ If `managementUrl` is omitted, the SDK falls back to `httpUrl` for backwards-com
140
143
  | `client.gameModel` | Abstract game model: containers, properties, functions (incl. model-driven `notify_*` effects), sessions, and **automations / NPCs** (`upsertAutomation`, `runAutomation`, `automationRuns`, `automationStats`, …). |
141
144
  | `client.compute` | **Compute Modules** — server-side Rust/WASM logic: author + deploy source (`upsertModule`, `deployVersion`, `waitForCompile`), triggers + policy, synchronous `invoke`, and monitoring (`moduleRuns`, `moduleStats`, `moduleLogs`, `appDiagnostics`). Modules run server-only; see [Compute Modules docs](https://docs.crowdedkingdoms.com/game-api/compute-modules). |
142
145
  | `client.playerCompute` | Player-authored SERVER/CLIENT Rust/WASM bound to player-owned grids: deploy source, activate/deactivate, list modules/versions, and delete self-authored modules. |
143
- | `client.playerCodeProjects` | Cloud project, personal-library, and common-file APIs for Mod Studio: target-scoped files, metadata/module names, pairing preference, optimistic revisions, copy-by-value imports, and atomic metadata/file saves. Generated operations are pinned to the committed merged SDL. |
146
+ | `client.crowdyStudio` | Cloud project, personal-library, and common-file APIs for Crowdy Studio: target-scoped files, metadata/module names, pairing preference, optimistic revisions, copy-by-value imports, and atomic metadata/file saves. Generated operations are pinned to the committed merged SDL. |
144
147
  | `client.playerModel` | Player-owned flexible model containers and grid-confined automations (`containers`, `createContainer`, `setProperty`, `automations`, `createAutomation`, …). |
145
148
  | `client.marketplace` | Player-code store/install/consent flows plus player-authorized grid claims: `claimGridOwnership` preserves the existing-grid policy flow, while `claimGridChunk` atomically creates and owns one chunk under `SELF_CLAIM` and `releaseClaimedGrid` releases an eligible owner-created claim. |
146
149
  | `client.udp` | UDP proxy subscriptions + spatial mutations (`sendActorUpdate`, `sendVoxelUpdate`, `sendAudioPacket`, `sendTextPacket`, `sendClientEvent`). |
@@ -151,23 +154,28 @@ If `managementUrl` is omitted, the SDK falls back to `httpUrl` for backwards-com
151
154
  `PlayerCodeBroker` transfers
152
155
  compiled client artifacts to a platform-owned worker, keeps tokens on the page,
153
156
  allow-lists host calls, and locally clamps chunk-targeted effects to the owned
154
- grid before the normal SDK path reaches server authorization. Mod Studio
157
+ grid before the normal SDK path reaches server authorization. Crowdy Studio
155
158
  hot-swaps only the exact version-keyed artifact returned after a successful
156
159
  CLIENT compile.
157
160
 
158
- ## Player-code Mod Studio
161
+ ## Crowdy Studio
159
162
 
160
- `mountModStudio` is the project-first SERVER/CLIENT Rust authoring surface. A
163
+ `mountCrowdyStudio` is the project-first SERVER/CLIENT Rust authoring surface. A
161
164
  project has one cloud revision, target-scoped files, project metadata, separate
162
165
  server/client module names, and a pairing preference. Full-stack edits autosave
163
166
  as one optimistic-concurrency write; the UI renders **Saving**, **Saved**,
164
167
  **Conflict**, or **Offline**, with retry and conflict-resolution actions.
165
168
 
169
+ The mount fills its host and observes host element resizes, so games can embed
170
+ it in draggable docks or split panes without manually relaying window resize
171
+ events. Give the host an explicit width and height; Crowdy Studio relayouts
172
+ Monaco and collapses secondary panes from its own container width.
173
+
166
174
  ```ts
167
- import { mountModStudio } from '@crowdedkingdoms/crowdyjs/mod-studio';
175
+ import { mountCrowdyStudio } from '@crowdedkingdoms/crowdyjs/crowdy-studio';
168
176
 
169
- const studio = await mountModStudio(host, {
170
- projectProvider: game.playerCodeProjects,
177
+ const studio = await mountCrowdyStudio(host, {
178
+ projectProvider: game.crowdyStudio,
171
179
  playerCompute: game.playerCompute,
172
180
  playerWallet: identity.playerWallet,
173
181
  appId,
@@ -182,7 +190,7 @@ const studio = await mountModStudio(host, {
182
190
  studio.destroy();
183
191
  ```
184
192
 
185
- Use `new ModStudioController(options)` for a custom/headless presentation. Its
193
+ Use `new CrowdyStudioController(options)` for a custom/headless presentation. Its
186
194
  public edits are file operations (`addFile`, `renameFile`, `deleteFile`,
187
195
  `updateFile`) and project settings—there is no session-only source blob, fixed
188
196
  module name, or template JSON API. The deploy conversion to the Game API's
@@ -211,7 +219,7 @@ Build.
211
219
  The Rust worker receives source files and the strict embedded platform index
212
220
  only. It receives no credential, opens no socket/fetch path, and never falls
213
221
  back to a server language service. If Monaco, Worker, a WASM asset, or a custom
214
- platform index fails, the same Mod Studio mount keeps project/target tabs and
222
+ platform index fails, the same Crowdy Studio mount keeps project/target tabs and
215
223
  uses one file-aware textarea—never a raw JSON blob.
216
224
 
217
225
  Modern bundlers must preserve module workers and package `.wasm` assets. Custom
@@ -222,22 +230,22 @@ embedded index remains the byte-identical game export (`schemaVersion: 2`, Rust
222
230
 
223
231
  ### Game API project contract
224
232
 
225
- `PlayerCodeProjectsAPI` implements the transport-neutral
226
- `ModStudioProjectProvider`; generated GraphQL types remain inside the adapter.
233
+ `CrowdyStudioAPI` implements the transport-neutral
234
+ `CrowdyStudioProjectProvider`; generated GraphQL types remain inside the adapter.
227
235
  The committed merged schema and generated operations cover:
228
236
 
229
- - `playerCodeProjects(appId)` / `playerCodeProject(appId, projectId)`
230
- - `playerCodeProjectCreate(input)`
231
- - `playerCodeProjectSave(input)` for one atomic metadata/file delta
232
- - `playerCodeLibraryFiles(appId)` / `playerCodeLibrarySave(input)`
233
- - `playerCodeCommonFiles(appId)`
234
- - `playerCodeProjectImportFile(input)` for copy-by-value imports
237
+ - `crowdyStudioProjects(appId)` / `crowdyStudioProject(appId, projectId)`
238
+ - `crowdyStudioProjectCreate(input)`
239
+ - `crowdyStudioProjectSave(input)` for one atomic metadata/file delta
240
+ - `crowdyStudioLibraryFiles(appId)` / `crowdyStudioLibrarySave(input)`
241
+ - `crowdyStudioCommonFiles(appId)`
242
+ - `crowdyStudioProjectImportFile(input)` for copy-by-value imports
235
243
 
236
244
  The adapter maps the API's `PAIRED | INDEPENDENT | SERVER_ONLY | CLIENT_ONLY`
237
- presentation enum to Mod Studio's runtime-oriented project kind and
245
+ presentation enum to Crowdy Studio's runtime-oriented project kind and
238
246
  `REQUIRED | OPTIONAL | NONE` setting. A stale expected `revision` arrives as
239
- `CONFLICT` with `PLAYER_CODE_REVISION_CONFLICT` in the message and becomes a
240
- `ModStudioRevisionConflictError` with the latest cloud project when that
247
+ `CONFLICT` with `CROWDY_STUDIO_REVISION_CONFLICT` in the message and becomes a
248
+ `CrowdyStudioRevisionConflictError` with the latest cloud project when that
241
249
  follow-up read succeeds.
242
250
 
243
251
  | `createWorldSession(client, appId, config)` (from `@crowdedkingdoms/crowdyjs/stores`) | World Stores: opt-in, SDK-managed game state — typed codecs (`structCodec` binary DSL), your own actor with a 5 Hz send loop (`session.self`), a remote-actor registry with lanes/history/staleness (`session.actors`), attributed send errors (`session.errors`), a chunk/voxel cache with realtime merge + worldgen write-back (`session.chunks`), channel/direct-message inboxes + a typed event router, host tracking, typed save/avatar state, and a game-model container mirror. Only configured stores exist (compile-time + runtime); unimported stores tree-shake away. |
@@ -59,7 +59,7 @@ import { UdpAPI } from './domains/udp.js';
59
59
  import { GameModelAPI } from './domains/gameModel.js';
60
60
  import { ComputeAPI } from './domains/compute.js';
61
61
  import { PlayerComputeAPI } from './domains/playerCompute.js';
62
- import { PlayerCodeProjectsAPI } from './domains/playerCodeProjects.js';
62
+ import { CrowdyStudioAPI } from './domains/crowdyStudio.js';
63
63
  import { PlayerWalletAPI } from './domains/playerWallet.js';
64
64
  import { MarketplaceAPI } from './domains/marketplace.js';
65
65
  import { PlayerModelAPI } from './domains/playerModel.js';
@@ -198,8 +198,8 @@ export declare class CrowdyClient {
198
198
  readonly compute: ComputeAPI;
199
199
  /** Player-authored Rust/WASM bound to player-owned grids. */
200
200
  readonly playerCompute: PlayerComputeAPI;
201
- /** Cloud source projects consumed by the project-first Mod Studio. */
202
- readonly playerCodeProjects: PlayerCodeProjectsAPI;
201
+ /** Crowdy Studio cloud projects, libraries, and common source files. */
202
+ readonly crowdyStudio: CrowdyStudioAPI;
203
203
  /** P4a marketplace (free mode): store, installs, consent, claim flows. */
204
204
  readonly marketplace: MarketplaceAPI;
205
205
  /** Player wallet, spend caps, hourly usage charges, and player policy (P2). */
@@ -1 +1 @@
1
- {"version":3,"file":"crowdy-client.d.ts","sourceRoot":"","sources":["../src/crowdy-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crowdy-client.d.ts","sourceRoot":"","sources":["../src/crowdy-client.ts"],"names":[],"mappings":"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"}
@@ -58,7 +58,7 @@ import { UdpAPI } from './domains/udp.js';
58
58
  import { GameModelAPI } from './domains/gameModel.js';
59
59
  import { ComputeAPI } from './domains/compute.js';
60
60
  import { PlayerComputeAPI } from './domains/playerCompute.js';
61
- import { PlayerCodeProjectsAPI } from './domains/playerCodeProjects.js';
61
+ import { CrowdyStudioAPI } from './domains/crowdyStudio.js';
62
62
  import { PlayerWalletAPI } from './domains/playerWallet.js';
63
63
  import { MarketplaceAPI } from './domains/marketplace.js';
64
64
  import { PlayerModelAPI } from './domains/playerModel.js';
@@ -121,7 +121,7 @@ export class CrowdyClient {
121
121
  });
122
122
  this.compute = new ComputeAPI(this.graphql);
123
123
  this.playerCompute = new PlayerComputeAPI(this.graphql);
124
- this.playerCodeProjects = new PlayerCodeProjectsAPI(this.graphql);
124
+ this.crowdyStudio = new CrowdyStudioAPI(this.graphql);
125
125
  this.playerWallet = new PlayerWalletAPI(this.management);
126
126
  this.marketplace = new MarketplaceAPI(this.graphql, this.management);
127
127
  this.playerModel = new PlayerModelAPI(this.graphql);
@@ -0,0 +1,188 @@
1
+ import { type PlayerCodeBrokerOptions, type PlayerCodeGridBounds } from '../player-runtime/player-code-broker.js';
2
+ import type { PlayerComputeAPI } from '../domains/playerCompute.js';
3
+ import type { PlayerWalletAPI } from '../domains/playerWallet.js';
4
+ import { type CrowdyStudioDiagnostic } from './diagnostics.js';
5
+ import { type CrowdyStudioFileRef, type CrowdyStudioPairingPreference, type CrowdyStudioProject, type CrowdyStudioProjectMetadata, type CrowdyStudioProjectProvider, type CrowdyStudioProjectSummary, type CrowdyStudioReferenceFile, type CrowdyStudioSaveState, type CrowdyStudioTarget } from './models.js';
6
+ import { type CrowdyStudioNewProjectOptions } from './starter-projects.js';
7
+ export type CrowdyStudioPhase = 'IDLE' | 'TESTING_DRAFT' | 'DEPLOYING_LIVE' | 'COMPILING' | 'ENABLING' | 'RUNNING' | 'COMPILE_FAILED' | 'STOPPING' | 'STOPPED' | 'PARTIAL_FAILURE' | 'ERROR';
8
+ export type CrowdyStudioPolledSurface = 'runs' | 'logs' | 'usage';
9
+ export interface CrowdyStudioRuntimeStatus {
10
+ phase: CrowdyStudioPhase;
11
+ target?: CrowdyStudioTarget;
12
+ message?: string;
13
+ }
14
+ export interface CrowdyStudioUsageSnapshot {
15
+ hourUnitsUsed: string;
16
+ dayUnitsUsed: string;
17
+ unitsPerHour: string | null;
18
+ unitsPerDay: string | null;
19
+ compilesThisHour: number;
20
+ maxCompilesPerHour: number;
21
+ gateStatus: string;
22
+ gateReason: string | null;
23
+ }
24
+ export interface CrowdyStudioWalletSnapshot {
25
+ balanceCents: string;
26
+ currency: string;
27
+ }
28
+ export interface CrowdyStudioRun {
29
+ runId: string;
30
+ moduleName: string;
31
+ triggerSource: string;
32
+ startedAt: string;
33
+ durationUs: number;
34
+ fuelUsed: string;
35
+ success: boolean;
36
+ errorMessage?: string | null;
37
+ }
38
+ export interface CrowdyStudioInvokeResult {
39
+ resultBase64?: string | null;
40
+ resultJson?: string | null;
41
+ fuelUsed?: string;
42
+ durationUs?: number;
43
+ }
44
+ export interface CrowdyStudioState {
45
+ projects: readonly CrowdyStudioProjectSummary[];
46
+ project: CrowdyStudioProject | null;
47
+ personalLibraryFiles: readonly CrowdyStudioReferenceFile[];
48
+ commonFiles: readonly CrowdyStudioReferenceFile[];
49
+ openFiles: readonly CrowdyStudioFileRef[];
50
+ activeFile: CrowdyStudioFileRef | null;
51
+ saveState: CrowdyStudioSaveState;
52
+ saveMessage?: string;
53
+ runtime: CrowdyStudioRuntimeStatus;
54
+ buildOutput: string;
55
+ authoritativeDiagnostics: readonly CrowdyStudioDiagnostic[];
56
+ localDiagnostics: readonly CrowdyStudioDiagnostic[];
57
+ runs: readonly CrowdyStudioRun[];
58
+ logs: readonly CrowdyStudioRun[];
59
+ usage: CrowdyStudioUsageSnapshot | null;
60
+ wallet: CrowdyStudioWalletSnapshot | null;
61
+ invokeResult: CrowdyStudioInvokeResult | null;
62
+ }
63
+ export type CrowdyStudioPlayerCompute = Pick<PlayerComputeAPI, 'deploy' | 'versions' | 'setEnabled' | 'setRequires' | 'artifactBytes' | 'usage' | 'runs' | 'logs' | 'invoke'>;
64
+ export type CrowdyStudioPlayerWallet = Pick<PlayerWalletAPI, 'balance'>;
65
+ export interface CrowdyStudioBroker {
66
+ start(bytes: ArrayBuffer): Promise<void>;
67
+ stop(): void;
68
+ }
69
+ export interface CrowdyStudioControllerOptions {
70
+ projectProvider: CrowdyStudioProjectProvider;
71
+ playerCompute: CrowdyStudioPlayerCompute;
72
+ playerWallet?: CrowdyStudioPlayerWallet;
73
+ appId: string;
74
+ gridId: string;
75
+ initialProjectId?: string;
76
+ /** Required only when a project has a CLIENT target. */
77
+ grid?: PlayerCodeGridBounds;
78
+ /** Platform-owned glue worker; required only for CLIENT execution. */
79
+ workerUrl?: string | URL;
80
+ /** Page-side allow-listed host-call router; required only for CLIENT execution. */
81
+ onHostCall?: PlayerCodeBrokerOptions['onHostCall'];
82
+ onPresentation?: PlayerCodeBrokerOptions['onPresentation'];
83
+ /** Host-visible effective permissions; server authorization remains final. */
84
+ targetPermissions?: Partial<Record<CrowdyStudioTarget, {
85
+ canWrite: boolean;
86
+ canRun: boolean;
87
+ }>>;
88
+ clientTickIntervalMs?: number;
89
+ autosaveMs?: number;
90
+ retryMs?: number;
91
+ compilePollMs?: number;
92
+ compilePollLimit?: number;
93
+ monitorPollMs?: number;
94
+ sleep?: (ms: number) => Promise<void>;
95
+ brokerFactory?: (options: PlayerCodeBrokerOptions) => CrowdyStudioBroker;
96
+ isOnline?: () => boolean;
97
+ onStateChange?: (state: CrowdyStudioState) => void;
98
+ }
99
+ export interface CrowdyStudioStopResult {
100
+ serverStopped: boolean | null;
101
+ clientStopped: boolean | null;
102
+ failures: string[];
103
+ }
104
+ /**
105
+ * Headless project-first Crowdy Studio driver. It owns optimistic project saves,
106
+ * file CRUD, deployment ordering, runtime polling, and client hot swaps; the
107
+ * DOM mount is only a view over this state.
108
+ */
109
+ export declare class CrowdyStudioController {
110
+ private readonly options;
111
+ private state;
112
+ private readonly listeners;
113
+ private autosaveTimer;
114
+ private retryTimer;
115
+ private savePromise;
116
+ private editGeneration;
117
+ private persistedGeneration;
118
+ private conflictRemote;
119
+ private broker;
120
+ private operationGeneration;
121
+ private readonly visibleSurfaces;
122
+ private readonly surfaceTimers;
123
+ private pageVisible;
124
+ private destroyed;
125
+ constructor(options: CrowdyStudioControllerOptions);
126
+ getState(): CrowdyStudioState;
127
+ subscribe(listener: (state: CrowdyStudioState) => void): () => void;
128
+ canTarget(target: CrowdyStudioTarget, action: 'write' | 'run'): boolean;
129
+ initialize(): Promise<void>;
130
+ createProject(options: Omit<CrowdyStudioNewProjectOptions, 'appId' | 'gridId'>): Promise<CrowdyStudioProject>;
131
+ switchProject(projectId: string): Promise<void>;
132
+ private loadProject;
133
+ private installProject;
134
+ openFile(ref: CrowdyStudioFileRef): void;
135
+ closeFile(ref: CrowdyStudioFileRef): void;
136
+ fileContent(ref: CrowdyStudioFileRef): string;
137
+ addFile(target: CrowdyStudioTarget, path: string, content?: string): void;
138
+ renameFile(target: CrowdyStudioTarget, path: string, nextPath: string): void;
139
+ deleteFile(target: CrowdyStudioTarget, path: string): void;
140
+ importReferenceFile(reference: CrowdyStudioReferenceFile, destinationPath?: string): Promise<void>;
141
+ saveProjectFileToLibrary(target: CrowdyStudioTarget, path: string, title?: string): Promise<CrowdyStudioReferenceFile>;
142
+ updateFile(target: CrowdyStudioTarget, path: string, content: string): void;
143
+ updateSettings(patch: Partial<Pick<CrowdyStudioProjectMetadata, 'name' | 'description' | 'serverModuleName' | 'clientModuleName' | 'pairingPreference'>>): void;
144
+ setPairingPreference(preference: CrowdyStudioPairingPreference): void;
145
+ setLocalDiagnostics(diagnostics: readonly CrowdyStudioDiagnostic[]): void;
146
+ /**
147
+ * Flush all edits in one optimistic-concurrency save. If edits arrive while
148
+ * the request is in flight, a second atomic save follows with the new
149
+ * revision instead of overwriting local content with the earlier response.
150
+ */
151
+ saveNow(): Promise<boolean>;
152
+ retrySave(): Promise<boolean>;
153
+ acceptRemoteConflict(): Promise<void>;
154
+ overwriteConflict(): Promise<boolean>;
155
+ testDraft(): Promise<void>;
156
+ deployLive(): Promise<void>;
157
+ private deployProject;
158
+ private compileTarget;
159
+ private recordBuild;
160
+ private enableServer;
161
+ private runClient;
162
+ stopProject(): Promise<CrowdyStudioStopResult>;
163
+ invoke(exportName: string, paramsJson?: string): Promise<CrowdyStudioInvokeResult>;
164
+ setSurfaceVisible(surface: CrowdyStudioPolledSurface, visible: boolean): void;
165
+ setPageVisible(visible: boolean): void;
166
+ refreshSurface(surface: CrowdyStudioPolledSurface): Promise<void>;
167
+ destroy(): void;
168
+ private performSaveLoop;
169
+ private markEdited;
170
+ private scheduleRetry;
171
+ private scheduleSurfacePoll;
172
+ private restartVisibleSurfacePolling;
173
+ private stopSurfacePolling;
174
+ private clearSurfaceTimer;
175
+ private clearSaveTimers;
176
+ private clearTimer;
177
+ private clientRuntimeOptions;
178
+ private checkOperation;
179
+ private sleep;
180
+ private requireProject;
181
+ private requireFile;
182
+ private assertProjectTarget;
183
+ private scope;
184
+ private setRuntime;
185
+ private update;
186
+ private ensureAlive;
187
+ }
188
+ //# sourceMappingURL=controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/crowdy-studio/controller.ts"],"names":[],"mappings":"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"}