@crowdedkingdoms/crowdyjs 9.0.0 → 10.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/MIGRATION.md +56 -34
  2. package/README.md +83 -50
  3. package/dist/crowdy-client.d.ts +3 -0
  4. package/dist/crowdy-client.d.ts.map +1 -1
  5. package/dist/crowdy-client.js +2 -0
  6. package/dist/domains/playerCodeProjects.d.ts +25 -0
  7. package/dist/domains/playerCodeProjects.d.ts.map +1 -0
  8. package/dist/domains/playerCodeProjects.js +299 -0
  9. package/dist/domains/playerCompute.d.ts +1 -1
  10. package/dist/domains/playerCompute.js +1 -1
  11. package/dist/generated/graphql.d.ts +792 -7
  12. package/dist/generated/graphql.d.ts.map +1 -1
  13. package/dist/generated/graphql.js +57 -0
  14. package/dist/index.d.ts +3 -5
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +3 -5
  17. package/dist/kit/npcs.d.ts.map +1 -1
  18. package/dist/kit/social.d.ts.map +1 -1
  19. package/dist/live-coding/rust-analysis.d.ts.map +1 -1
  20. package/dist/live-coding/rust-analysis.js +64 -1
  21. package/dist/live-coding/worker-transport.d.ts +3 -0
  22. package/dist/live-coding/worker-transport.d.ts.map +1 -1
  23. package/dist/live-coding/worker-transport.js +13 -0
  24. package/dist/mod-studio/controller.d.ts +188 -0
  25. package/dist/mod-studio/controller.d.ts.map +1 -0
  26. package/dist/mod-studio/controller.js +915 -0
  27. package/dist/mod-studio/diagnostics.d.ts +22 -0
  28. package/dist/mod-studio/diagnostics.d.ts.map +1 -0
  29. package/dist/mod-studio/diagnostics.js +141 -0
  30. package/dist/mod-studio/dom-shell.d.ts +55 -0
  31. package/dist/mod-studio/dom-shell.d.ts.map +1 -0
  32. package/dist/mod-studio/dom-shell.js +527 -0
  33. package/dist/mod-studio/editor.d.ts +17 -0
  34. package/dist/mod-studio/editor.d.ts.map +1 -0
  35. package/dist/mod-studio/editor.js +1 -0
  36. package/dist/mod-studio/index.d.ts +10 -0
  37. package/dist/mod-studio/index.d.ts.map +1 -0
  38. package/dist/mod-studio/index.js +9 -0
  39. package/dist/mod-studio/models.d.ts +149 -0
  40. package/dist/mod-studio/models.d.ts.map +1 -0
  41. package/dist/mod-studio/models.js +62 -0
  42. package/dist/mod-studio/monaco-editor.d.ts +16 -0
  43. package/dist/mod-studio/monaco-editor.d.ts.map +1 -0
  44. package/dist/mod-studio/monaco-editor.js +548 -0
  45. package/dist/mod-studio/mount.d.ts +17 -0
  46. package/dist/mod-studio/mount.d.ts.map +1 -0
  47. package/dist/mod-studio/mount.js +86 -0
  48. package/dist/mod-studio/starter-projects.d.ts +11 -0
  49. package/dist/mod-studio/starter-projects.d.ts.map +1 -0
  50. package/dist/mod-studio/starter-projects.js +102 -0
  51. package/dist/mod-studio/styles.d.ts +2 -0
  52. package/dist/mod-studio/styles.d.ts.map +1 -0
  53. package/dist/mod-studio/styles.js +14 -0
  54. package/dist/mod-studio/textarea-editor.d.ts +8 -0
  55. package/dist/mod-studio/textarea-editor.d.ts.map +1 -0
  56. package/dist/mod-studio/textarea-editor.js +71 -0
  57. package/package.json +4 -4
  58. package/dist/live-coding/ide.d.ts +0 -23
  59. package/dist/live-coding/ide.d.ts.map +0 -1
  60. package/dist/live-coding/ide.js +0 -514
  61. package/dist/live-coding/index.d.ts +0 -8
  62. package/dist/live-coding/index.d.ts.map +0 -1
  63. package/dist/live-coding/index.js +0 -7
  64. package/dist/live-coding/live-coding-controller.d.ts +0 -75
  65. package/dist/live-coding/live-coding-controller.d.ts.map +0 -1
  66. package/dist/live-coding/live-coding-controller.js +0 -141
  67. package/dist/live-coding/mount.d.ts +0 -26
  68. package/dist/live-coding/mount.d.ts.map +0 -1
  69. package/dist/live-coding/mount.js +0 -108
  70. package/dist/live-coding/templates.d.ts +0 -17
  71. package/dist/live-coding/templates.d.ts.map +0 -1
  72. package/dist/live-coding/templates.js +0 -59
package/MIGRATION.md CHANGED
@@ -1,46 +1,68 @@
1
- # Unpublished next-major migration local Rust authoring (BREAKING)
1
+ # CrowdyJS v10project-first Mod Studio (BREAKING)
2
2
 
3
3
  This migration is implemented on the feature branch but is **not versioned or
4
4
  published yet**.
5
5
 
6
- `mountLiveCodingIDE` no longer connects to the WSS authoring service. Remove
7
- `languageServiceUrl` and `appToken` from every call:
6
+ The session-only live-coding API was removed. There are deliberately no
7
+ compatibility aliases.
8
8
 
9
- ```ts
10
- // Before
11
- mountLiveCodingIDE(host, {
12
- // ...normal live-coding options...
13
- languageServiceUrl: import.meta.env.VITE_AUTHORING_LSP_URL,
14
- appToken: () => game.session.getToken(),
15
- });
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
16
18
 
17
- // After
18
- mountLiveCodingIDE(host, {
19
- // ...normal live-coding options...
19
+ Replace the old mount with a cloud project provider and the new subpath:
20
+
21
+ ```ts
22
+ import { mountModStudio } from '@crowdedkingdoms/crowdyjs/mod-studio';
23
+
24
+ const studio = await mountModStudio(host, {
25
+ projectProvider: game.playerCodeProjects,
26
+ playerCompute: game.playerCompute,
27
+ playerWallet: identity.playerWallet,
28
+ appId,
29
+ gridId,
30
+ grid,
31
+ workerUrl: playerCodeGlueWorkerUrl,
32
+ onHostCall,
20
33
  });
21
34
  ```
22
35
 
23
- The replacement is a lazy browser module worker. It uses local
24
- `web-tree-sitter`/Rust-grammar WASM assets and never receives a credential or
25
- opens a language-service connection. Consumers must:
26
-
27
- - remove consumer-side monaco-vscode initialization workarounds;
28
- - use a bundler that emits module workers and dependency `.wasm` assets, or pass
29
- `languageWorkerFactory` for their asset pipeline;
30
- - remove authoring-LSP URL environment variables and token plumbing;
31
- - consume the embedded game-generated platform index by default (no runtime
32
- fetch or BWF option plumbing); and
33
- - keep the textarea behavior as the only fallback. There is no server fallback.
34
-
35
- The Monaco adapter still speaks LSP 3.17 over a standard `vscode-jsonrpc`
36
- Worker `MessageConnection`. `monaco-languageclient` was removed because its
37
- current package hard-depends on `vscode-ws-jsonrpc`; direct Monaco providers
38
- adapt completion/hover/symbol/definition calls to the standard message
39
- connection without restoring that WSS dependency.
40
-
41
- The `@crowdedkingdoms/crowdyjs/live-coding` subpath now exports the IDE,
42
- platform-index loader/types, VFS limits, and worker transport. The package
43
- version intentionally remains unchanged until the coordinated major release.
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.
49
+
50
+ Full-stack order is CLIENT compile → SERVER compile → `setRequires` (only after
51
+ both succeed) SERVER enable exact-version CLIENT artifact hot-swap.
52
+
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.
58
+
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`.
64
+
65
+ This branch is versioned `10.0.0` for the coordinated major release.
44
66
 
45
67
  # CrowdyJS v8.10 Notes
46
68
 
package/README.md CHANGED
@@ -32,11 +32,11 @@ CrowdyJS v4 targets browsers by default and uses native `fetch`, `WebSocket`, `c
32
32
  >
33
33
  > **Player-code authoring DX:** `playerCompute.setRequires`,
34
34
  > `marketplace.trustGridAuthor`, self-authored `gridClientMods` fields, and
35
- > attachment-keyed client artifact fetches require the 2026-07-22 authoring-DX
36
- > migration. `mountLiveCodingIDE` lazy-loads Monaco plus a browser-native Rust
37
- > language worker. Authoring sends no token and opens no server connection; if
38
- > Monaco, Worker, or the local WASM assets are unavailable, it preserves the
39
- > dependency-free textarea fallback.
35
+ > version-keyed client artifact fetches require the 2026-07-22 authoring-DX
36
+ > migration. The v9 `mountModStudio` surface is project-first: cloud project
37
+ > revisions, target-scoped files, atomic autosave, and explicit draft/live/stop
38
+ > orchestration. Its Rust language worker receives source plus the committed
39
+ > platform index only—never a credential and never a server connection.
40
40
 
41
41
  > **v8.10 inventory authority:** generated craft/barter transactions work on
42
42
  > existing Model servers. Compute-refereed durable commits require Compute SDK
@@ -66,7 +66,7 @@ together whenever the public GraphQL surface changes; `npm run check:schema`
66
66
  detects drift in CI/release work.
67
67
 
68
68
  The browser authoring index follows the same boundary. `npm run build` validates
69
- only the committed `src/live-coding/assets/browser-authoring-index.json` and its
69
+ only the committed internal `src/live-coding/assets/browser-authoring-index.json` and its
70
70
  generated TypeScript copy; it never discovers or reads a sibling game-api
71
71
  checkout. Coordinated maintainers compare an explicitly supplied exporter path:
72
72
 
@@ -140,6 +140,7 @@ If `managementUrl` is omitted, the SDK falls back to `httpUrl` for backwards-com
140
140
  | `client.gameModel` | Abstract game model: containers, properties, functions (incl. model-driven `notify_*` effects), sessions, and **automations / NPCs** (`upsertAutomation`, `runAutomation`, `automationRuns`, `automationStats`, …). |
141
141
  | `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
142
  | `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. |
143
144
  | `client.playerModel` | Player-owned flexible model containers and grid-confined automations (`containers`, `createContainer`, `setProperty`, `automations`, `createAutomation`, …). |
144
145
  | `client.marketplace` | Player-code store/install/consent flows plus player-authorized grid claims: `claimGridOwnership` preserves the existing-grid policy flow, while `claimGridChunk` atomically creates and owns one chunk under `SELF_CLAIM` and `releaseClaimedGrid` releases an eligible owner-created claim. |
145
146
  | `client.udp` | UDP proxy subscriptions + spatial mutations (`sendActorUpdate`, `sendVoxelUpdate`, `sendAudioPacket`, `sendTextPacket`, `sendClientEvent`). |
@@ -147,38 +148,28 @@ If `managementUrl` is omitted, the SDK falls back to `httpUrl` for backwards-com
147
148
  | `client.refreshGameplayToken()` | Safely rotates an active game client's app token: disconnects the old-token UDP proxy, refreshes/stores the token, and opens the new-token proxy while existing realtime handlers resubscribe in place. |
148
149
  | `client.world(appId)` | Higher-level helpers for browser games (`actor.join`, `actor.sendState`, `actor.sendText`). |
149
150
 
150
- `PlayerCodeBroker` is the P1 page-side browser security skeleton: it transfers
151
+ `PlayerCodeBroker` transfers
151
152
  compiled client artifacts to a platform-owned worker, keeps tokens on the page,
152
153
  allow-lists host calls, and locally clamps chunk-targeted effects to the owned
153
- grid before the normal SDK path reaches server authorization. P3 adds the
154
- platform worker glue/live-coding presentation UI.
155
-
156
- ## Browser Rust live-coding IDE
157
-
158
- `mountLiveCodingIDE` creates one Monaco editor and one module Web Worker. The
159
- worker runs `web-tree-sitter` with the pinned VS Code Rust grammar asset and a
160
- bounded in-memory workspace. It implements LSP initialize/shutdown, full/incremental
161
- document sync, diagnostics, completion, hover, document symbols, and definitions
162
- within the open workspace. It does not run rustc or rust-analyzer, and deploys
163
- still use the platform compiler.
164
-
165
- The mount initializes the required monaco-vscode base/editor services once
166
- before creating any editor. Consumers must not provide a separate Monaco
167
- initialization workaround; concurrent mounts share services but receive
168
- isolated model roots, and destroyed roots are reusable by later mounts.
169
-
170
- The worker speaks the LSP 3.17 subset above over a standard
171
- `vscode-jsonrpc` `MessageConnection` and Worker `MessageReader`/`MessageWriter`.
172
- Small direct Monaco providers adapt editor actions to that connection.
173
- `monaco-languageclient` is intentionally absent: its current release hard-depends
174
- on the forbidden `vscode-ws-jsonrpc` WSS adapter and boots a much larger VS Code
175
- service stack. Removing it does not replace LSP with ad-hoc messages.
154
+ grid before the normal SDK path reaches server authorization. Mod Studio
155
+ hot-swaps only the exact version-keyed artifact returned after a successful
156
+ CLIENT compile.
157
+
158
+ ## Player-code Mod Studio
159
+
160
+ `mountModStudio` is the project-first SERVER/CLIENT Rust authoring surface. A
161
+ project has one cloud revision, target-scoped files, project metadata, separate
162
+ server/client module names, and a pairing preference. Full-stack edits autosave
163
+ as one optimistic-concurrency write; the UI renders **Saving**, **Saved**,
164
+ **Conflict**, or **Offline**, with retry and conflict-resolution actions.
176
165
 
177
166
  ```ts
178
- import { mountLiveCodingIDE } from '@crowdedkingdoms/crowdyjs/live-coding';
167
+ import { mountModStudio } from '@crowdedkingdoms/crowdyjs/mod-studio';
179
168
 
180
- const handle = await mountLiveCodingIDE(host, {
169
+ const studio = await mountModStudio(host, {
170
+ projectProvider: game.playerCodeProjects,
181
171
  playerCompute: game.playerCompute,
172
+ playerWallet: identity.playerWallet,
182
173
  appId,
183
174
  gridId,
184
175
  grid,
@@ -186,26 +177,68 @@ const handle = await mountLiveCodingIDE(host, {
186
177
  onHostCall,
187
178
  });
188
179
 
189
- // Terminates the language worker and the player-code runtime.
190
- handle.destroy();
180
+ // Stops editor/runtime polling, the Rust worker, and any client broker owned
181
+ // by this mount. It does not implicitly disable a deliberately live server.
182
+ studio.destroy();
191
183
  ```
192
184
 
193
- Modern bundlers must preserve `new Worker(new URL(..., import.meta.url),
194
- { type: 'module' })` and package `.wasm` assets. If a host needs custom worker
195
- loading (tests, a strict CSP, or a bespoke asset pipeline), pass
196
- `languageWorkerFactory: () => new Worker(yourUrl, { type: 'module' })`.
197
- `languageServiceUrl` and `appToken` are not IDE options; no server fallback
198
- exists.
199
-
200
- The embedded platform index is a byte-identical copy of the game export
201
- (`schemaVersion: 2`, Rust 1.97.1, SDK 0.1.5, ABI 0, 725 symbols, content hash
202
- `3f5f39d4…18ffb`). Its strict top-level fields are `schemaVersion`,
203
- `rustVersion`, `sdkVersion`, `abiVersion`, `contentHash`, `crates`, and
204
- `symbols`; every crate records its bounded `name`, `version`, and source hash,
205
- and each symbol has exactly `module`, `name`, `kind`, `signature`, and `docs`.
206
- BWF uses this embedded default and does not fetch or pass the artifact at runtime.
207
- `platformIndex` remains injectable for tests or coordinated future indexes;
208
- schema or unknown-field failures intentionally fall back to the textarea.
185
+ Use `new ModStudioController(options)` for a custom/headless presentation. Its
186
+ public edits are file operations (`addFile`, `renameFile`, `deleteFile`,
187
+ `updateFile`) and project settings—there is no session-only source blob, fixed
188
+ module name, or template JSON API. The deploy conversion to the Game API's
189
+ legacy `sourceFilesJson` input happens only inside the controller's
190
+ `playerCompute.deploy` call.
191
+
192
+ The built-in UI provides a project switcher/new-project wizard
193
+ (server/client/full-stack), target explorer, personal library/common files,
194
+ tabs, settings, Problems/Build/Logs/Runs/Invoke panels, and explicit **Test
195
+ draft**, **Deploy live**, and **Stop project** actions. Full-stack deployment is
196
+ ordered: save once compile CLIENT compile SERVER set/clear the pairing
197
+ requirement only after both compiles enable SERVER hot-swap the exact
198
+ version-keyed CLIENT artifact. Partial compile failures never write a new
199
+ requirement. Stop always attempts both server disable and client/poll cleanup
200
+ and reports each failure.
201
+
202
+ Monaco uses target-prefixed model URIs (`.../server/Cargo.toml` and
203
+ `.../client/Cargo.toml`) and opens every loaded project/library/common Rust file
204
+ in one bounded local worker workspace. Completion, hover, symbols, and
205
+ definition therefore work across loaded files; lifecycle snippets and hover
206
+ notes distinguish SERVER platform execution from CLIENT broker host calls.
207
+ Local tree-sitter markers are labeled advisory. Platform rustc output is parsed
208
+ separately into authoritative path/line/column markers and remains visible in
209
+ Build.
210
+
211
+ The Rust worker receives source files and the strict embedded platform index
212
+ only. It receives no credential, opens no socket/fetch path, and never falls
213
+ 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
215
+ uses one file-aware textarea—never a raw JSON blob.
216
+
217
+ Modern bundlers must preserve module workers and package `.wasm` assets. Custom
218
+ pipelines can pass `languageWorkerFactory` and `editorWorkerFactory`. The
219
+ embedded index remains the byte-identical game export (`schemaVersion: 2`, Rust
220
+ 1.97.1, SDK 0.1.5, ABI 0, 725 symbols, content hash
221
+ `3f5f39d4…18ffb`).
222
+
223
+ ### Game API project contract
224
+
225
+ `PlayerCodeProjectsAPI` implements the transport-neutral
226
+ `ModStudioProjectProvider`; generated GraphQL types remain inside the adapter.
227
+ The committed merged schema and generated operations cover:
228
+
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
235
+
236
+ The adapter maps the API's `PAIRED | INDEPENDENT | SERVER_ONLY | CLIENT_ONLY`
237
+ presentation enum to Mod Studio's runtime-oriented project kind and
238
+ `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
241
+ follow-up read succeeds.
209
242
 
210
243
  | `createWorldSession(client, appId, config)` (from `@crowdedkingdoms/crowdyjs/stores`) | World Stores: opt-in, SDK-managed game state — typed codecs (`structCodec` binary DSL), your own actor with a 5 Hz send loop (`session.self`), a remote-actor registry with lanes/history/staleness (`session.actors`), attributed send errors (`session.errors`), a chunk/voxel cache with realtime merge + worldgen write-back (`session.chunks`), channel/direct-message inboxes + a typed event router, host tracking, typed save/avatar state, and a game-model container mirror. Only configured stores exist (compile-time + runtime); unimported stores tree-shake away. |
211
244
  | `client.kit(appId)` | Game Kit: ready-made mappings of game concepts onto the game model — `kit.inventory`, `kit.objects` (lockable doors/chests with custom permissions), `kit.npcs`, `kit.plots` (buy/rent land with transactional, replication-enforced grid grants), and the genre layers `kit.economy` (wallets/shops/trades/market), `kit.progression` (xp/skills/achievements/rating), `kit.loot`, `kit.quests`, `kit.combat`, `kit.matches` (session lobbies/turns/scores with notify-to-pull channels), `kit.decks` (hidden hands), `kit.worldsim` (clock/nodes/crops/waves), `kit.social` (parties/guilds/chat over teams+channels), `kit.leaderboards`, `kit.features` (tier gates), and the engine-aware helpers `kit.mobs` (refereed attacks, defs/slots, contact-damage parsing), `kit.pets` (adopt/summon/dismiss/rename), `kit.instances` (private world slices, seeded runs), `kit.director` (encounter runs), `kit.matchmaking` (queues/proposals/rating), `kit.minigames` (invoke-loop wrapper), `kit.economy.orderBook` (escrowed bid/ask market), engine paths on `kit.matches`/`kit.decks`/`kit.leaderboards`, `kit.quests` tutorial sequencing, `kit.engines` (compute capability detection) with `kit/wire` (the engine pose codec, `engineLanes()`, and the 77/90/91/92/93 event parsers) — plus blueprint builders + `kit.deploy(...)` for the admin "load the rules" step. |
@@ -59,6 +59,7 @@ import { UdpAPI } from './domains/udp.js';
59
59
  import { GameModelAPI } from './domains/gameModel.js';
60
60
  import { ComputeAPI } from './domains/compute.js';
61
61
  import { PlayerComputeAPI } from './domains/playerCompute.js';
62
+ import { PlayerCodeProjectsAPI } from './domains/playerCodeProjects.js';
62
63
  import { PlayerWalletAPI } from './domains/playerWallet.js';
63
64
  import { MarketplaceAPI } from './domains/marketplace.js';
64
65
  import { PlayerModelAPI } from './domains/playerModel.js';
@@ -197,6 +198,8 @@ export declare class CrowdyClient {
197
198
  readonly compute: ComputeAPI;
198
199
  /** Player-authored Rust/WASM bound to player-owned grids. */
199
200
  readonly playerCompute: PlayerComputeAPI;
201
+ /** Cloud source projects consumed by the project-first Mod Studio. */
202
+ readonly playerCodeProjects: PlayerCodeProjectsAPI;
200
203
  /** P4a marketplace (free mode): store, installs, consent, claim flows. */
201
204
  readonly marketplace: MarketplaceAPI;
202
205
  /** Player wallet, spend caps, hourly usage charges, and player policy (P2). */
@@ -1 +1 @@
1
- {"version":3,"file":"crowdy-client.d.ts","sourceRoot":"","sources":["../src/crowdy-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crowdy-client.d.ts","sourceRoot":"","sources":["../src/crowdy-client.ts"],"names":[],"mappings":"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"}
@@ -58,6 +58,7 @@ import { UdpAPI } from './domains/udp.js';
58
58
  import { GameModelAPI } from './domains/gameModel.js';
59
59
  import { ComputeAPI } from './domains/compute.js';
60
60
  import { PlayerComputeAPI } from './domains/playerCompute.js';
61
+ import { PlayerCodeProjectsAPI } from './domains/playerCodeProjects.js';
61
62
  import { PlayerWalletAPI } from './domains/playerWallet.js';
62
63
  import { MarketplaceAPI } from './domains/marketplace.js';
63
64
  import { PlayerModelAPI } from './domains/playerModel.js';
@@ -120,6 +121,7 @@ export class CrowdyClient {
120
121
  });
121
122
  this.compute = new ComputeAPI(this.graphql);
122
123
  this.playerCompute = new PlayerComputeAPI(this.graphql);
124
+ this.playerCodeProjects = new PlayerCodeProjectsAPI(this.graphql);
123
125
  this.playerWallet = new PlayerWalletAPI(this.management);
124
126
  this.marketplace = new MarketplaceAPI(this.graphql, this.management);
125
127
  this.playerModel = new PlayerModelAPI(this.graphql);
@@ -0,0 +1,25 @@
1
+ import type { GraphQLClient } from '../client.js';
2
+ import { type CreateModStudioProjectInput, type ImportModStudioReferenceFileInput, type ModStudioProject, type ModStudioProjectProvider, type ModStudioProjectScope, type ModStudioProjectSummary, type ModStudioReferenceFile, type SaveModStudioLibraryFileInput, type SaveModStudioProjectInput } from '../mod-studio/models.js';
3
+ /**
4
+ * Typed Game API adapter for private Mod Studio projects and reusable files.
5
+ * Mutable projects remain separate from immutable player-compute versions;
6
+ * only the controller's deploy path converts target files to sourceFilesJson.
7
+ */
8
+ export declare class PlayerCodeProjectsAPI implements ModStudioProjectProvider {
9
+ private readonly graphql;
10
+ private readonly baselines;
11
+ constructor(graphql: GraphQLClient);
12
+ listProjects(scope: ModStudioProjectScope): Promise<ModStudioProjectSummary[]>;
13
+ getProject(input: ModStudioProjectScope & {
14
+ projectId: string;
15
+ }): Promise<ModStudioProject>;
16
+ createProject(input: CreateModStudioProjectInput): Promise<ModStudioProject>;
17
+ saveProject(input: SaveModStudioProjectInput): Promise<ModStudioProject>;
18
+ listPersonalLibraryFiles(scope: ModStudioProjectScope): Promise<ModStudioReferenceFile[]>;
19
+ savePersonalLibraryFile(input: SaveModStudioLibraryFileInput): Promise<ModStudioReferenceFile>;
20
+ listCommonFiles(scope: ModStudioProjectScope): Promise<ModStudioReferenceFile[]>;
21
+ importReferenceFile(input: ImportModStudioReferenceFileInput): Promise<ModStudioProject>;
22
+ private remember;
23
+ private request;
24
+ }
25
+ //# sourceMappingURL=playerCodeProjects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playerCodeProjects.d.ts","sourceRoot":"","sources":["../../src/domains/playerCodeProjects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAQlD,OAAO,EAIL,KAAK,2BAA2B,EAChC,KAAK,iCAAiC,EAEtC,KAAK,gBAAgB,EAErB,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,6BAA6B,EAClC,KAAK,yBAAyB,EAC/B,MAAM,yBAAyB,CAAC;AA0BjC;;;;GAIG;AACH,qBAAa,qBAAsB,YAAW,wBAAwB;IAGxD,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuC;gBAEpC,OAAO,EAAE,aAAa;IAE7C,YAAY,CAChB,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAU/B,UAAU,CACd,KAAK,EAAE,qBAAqB,GAAG;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GACnD,OAAO,CAAC,gBAAgB,CAAC;IAQtB,aAAa,CACjB,KAAK,EAAE,2BAA2B,GACjC,OAAO,CAAC,gBAAgB,CAAC;IAoBtB,WAAW,CACf,KAAK,EAAE,yBAAyB,GAC/B,OAAO,CAAC,gBAAgB,CAAC;IAwDtB,wBAAwB,CAC5B,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAU9B,uBAAuB,CAC3B,KAAK,EAAE,6BAA6B,GACnC,OAAO,CAAC,sBAAsB,CAAC;IAc5B,eAAe,CACnB,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAS9B,mBAAmB,CACvB,KAAK,EAAE,iCAAiC,GACvC,OAAO,CAAC,gBAAgB,CAAC;IAuB5B,OAAO,CAAC,QAAQ;YAKF,OAAO;CAiBtB"}