@el4cteo/rbx-studio-mcp 0.6.1 → 0.6.7

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 (75) hide show
  1. package/README.md +28 -2
  2. package/dist/bridge/console.js +182 -0
  3. package/dist/bridge/console.js.map +1 -1
  4. package/dist/index.js +8 -0
  5. package/dist/index.js.map +1 -1
  6. package/dist/lib/cloudassets.js +233 -0
  7. package/dist/lib/cloudassets.js.map +1 -0
  8. package/dist/lib/credentials.js +180 -0
  9. package/dist/lib/credentials.js.map +1 -0
  10. package/dist/lib/livedata.js +325 -0
  11. package/dist/lib/livedata.js.map +1 -0
  12. package/dist/lib/liveluau.js +83 -0
  13. package/dist/lib/liveluau.js.map +1 -0
  14. package/dist/lib/liveops.js +358 -0
  15. package/dist/lib/liveops.js.map +1 -0
  16. package/dist/lib/opencloud.js +235 -0
  17. package/dist/lib/opencloud.js.map +1 -0
  18. package/dist/tools/anim.js +159 -0
  19. package/dist/tools/anim.js.map +1 -0
  20. package/dist/tools/audio.js +96 -0
  21. package/dist/tools/audio.js.map +1 -0
  22. package/dist/tools/character.js +95 -5
  23. package/dist/tools/character.js.map +1 -1
  24. package/dist/tools/data.js +292 -0
  25. package/dist/tools/data.js.map +1 -0
  26. package/dist/tools/device.js +77 -7
  27. package/dist/tools/device.js.map +1 -1
  28. package/dist/tools/discover.js +80 -4
  29. package/dist/tools/discover.js.map +1 -1
  30. package/dist/tools/exec.js +96 -2
  31. package/dist/tools/exec.js.map +1 -1
  32. package/dist/tools/input.js +35 -9
  33. package/dist/tools/input.js.map +1 -1
  34. package/dist/tools/perf.js +74 -7
  35. package/dist/tools/perf.js.map +1 -1
  36. package/dist/tools/scripts.js +162 -6
  37. package/dist/tools/scripts.js.map +1 -1
  38. package/dist/tools/spatial.js +135 -0
  39. package/dist/tools/spatial.js.map +1 -0
  40. package/dist/tools/universe.js +177 -0
  41. package/dist/tools/universe.js.map +1 -0
  42. package/dist/tools/upload.js +294 -0
  43. package/dist/tools/upload.js.map +1 -0
  44. package/dist/tools/world.js +675 -51
  45. package/dist/tools/world.js.map +1 -1
  46. package/package.json +2 -2
  47. package/plugin/src/Commands.luau +31 -7
  48. package/plugin/src/Config.luau +65 -65
  49. package/plugin/src/Console.luau +1909 -1843
  50. package/plugin/src/Emulation.luau +172 -0
  51. package/plugin/src/Phrase.luau +816 -618
  52. package/plugin/src/Png.luau +8 -4
  53. package/plugin/src/Prompt.luau +965 -961
  54. package/plugin/src/Secret.luau +86 -0
  55. package/plugin/src/Serialize.luau +440 -8
  56. package/plugin/src/Undo.luau +94 -6
  57. package/plugin/src/handlers/Anim.luau +897 -0
  58. package/plugin/src/handlers/Assets.luau +286 -2
  59. package/plugin/src/handlers/Audio.luau +411 -0
  60. package/plugin/src/handlers/Capture.luau +155 -20
  61. package/plugin/src/handlers/Character.luau +823 -361
  62. package/plugin/src/handlers/Data.luau +539 -0
  63. package/plugin/src/handlers/Device.luau +394 -139
  64. package/plugin/src/handlers/Discover.luau +685 -363
  65. package/plugin/src/handlers/Geometry.luau +722 -450
  66. package/plugin/src/handlers/Instances.luau +84 -4
  67. package/plugin/src/handlers/Perf.luau +227 -0
  68. package/plugin/src/handlers/Scripts.luau +673 -539
  69. package/plugin/src/handlers/Session.luau +3 -0
  70. package/plugin/src/handlers/Spatial.luau +334 -0
  71. package/plugin/src/handlers/Viewport.luau +268 -0
  72. package/plugin/src/handlers/World.luau +89 -15
  73. package/plugin/src/init.server.luau +9 -1
  74. package/scripts/build-plugin.mjs +20 -0
  75. package/scripts/check-plugin.mjs +171 -124
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Roblox Studio MCP
2
2
 
3
- Let an AI agent drive Roblox Studio: read your place, edit scripts, build geometry, run playtests, take screenshots. 31 tools. MIT.
3
+ Let an AI agent drive Roblox Studio: read your place, edit scripts, build geometry, run playtests, take screenshots. 35 tools. MIT.
4
4
 
5
5
  ![The Studio MCP panel](docs/rbx-studio.png)
6
6
 
@@ -73,12 +73,37 @@ Port is **44755**, loopback only. Change it with `--port` and match it in the pl
73
73
  | **Discover** | `tree` `inspect` `find` `api` |
74
74
  | **Scripts** | `script_read` `script_edit` `script_grep` `script_create` |
75
75
  | **Instances** | `create` `modify` `delete` `move` |
76
- | **World** | `geometry` `terrain` `generate` `assets` `collision` `undo` |
76
+ | **World** | `geometry` `terrain` `generate` `assets` `collision` `audio` `undo` |
77
+ | **Live game** | `universe` |
77
78
  | **Run & debug** | `playtest` `execute_luau` `character` `input` `console` `debug` `performance` |
78
79
  | **Look** | `screenshot` `viewport` `device` |
79
80
 
80
81
  Write tools take arrays — ten script edits is one call, one **Ctrl+Z**, and all-or-nothing.
81
82
 
83
+ ## Open Cloud
84
+
85
+ Some calls reach past Studio to Roblox itself. All need one API key; everything else works without it.
86
+
87
+ | | |
88
+ |---|---|
89
+ | `assets op="upload"` | send a local audio/image/model/video file, get an asset id |
90
+ | `datastore target="live"` | the running game's real player data |
91
+ | `execute_luau target="live"` | run a script on the published place |
92
+ | `universe` | restart servers, message them, ban players |
93
+ | also | `assets op="grant"`, `op="publish"`, `script_read`/`script_edit target="live"` |
94
+
95
+ Make a key at [Creator Dashboard → Credentials](https://create.roblox.com/dashboard/credentials), adding the permissions you want: `assets`, `universe-datastores`, `ordered-data-stores`, `luau-execution-sessions`, `universe-places`, `universe-place-instances`, `universe`, `messaging-service`, `user-restrictions`, `inventory`, `users`, `asset-permissions`.
96
+
97
+ Then in the Studio panel:
98
+
99
+ ```
100
+ cloud key <paste>
101
+ cloud user <your user id>
102
+ cloud place <place id>
103
+ ```
104
+
105
+ `cloud place` works out the universe for you. The typed key is masked in the log and in the history, and stored at `~/.rbx-studio-mcp/credentials.json` (mode 0600) — never in the place file, never in the conversation. `cloud` shows what is set, `cloud test` re-checks it, `cloud forget` deletes it. `ROBLOX_API_KEY` and friends in the environment work too and take priority.
106
+
82
107
  Two things to watch: a playtest connects a second session, so pass `studioId` and use the edit one for changes that must last; `device` emulation stays on until `device op="stop"`.
83
108
 
84
109
  ## The console panel
@@ -93,6 +118,7 @@ Every call is logged with how long it took. At the foot of the panel is a comman
93
118
  | `studios` `use <n>` | which Studio window calls go to |
94
119
  | `theme [name]` `visuals` `autoopen [on\|off]` `log [level]` `clear` `copy` | the panel |
95
120
  | `port [n]` `reconnect` | the connection |
121
+ | `cloud [key\|user\|group\|test\|forget]` | the Open Cloud key `upload` uses |
96
122
  | `agent [use <id>\|new]` `stop` | which agent runs your prompts |
97
123
  | anything else | sent to that agent |
98
124
 
@@ -13,6 +13,8 @@
13
13
  * foreign object pasted into the session.
14
14
  */
15
15
  import { collectChecks } from "../doctor.js";
16
+ import { universeForPlace } from "../lib/opencloud.js";
17
+ import { CREDENTIALS_PATH, credentialStatus, forgetCredentials, loadCredentials, saveApiKey, saveCreator, saveTarget, testCredentials, } from "../lib/credentials.js";
16
18
  import { find, installed, matchesClient, run, } from "./harness.js";
17
19
  const agents = new Map();
18
20
  function agentFor(studioId) {
@@ -323,6 +325,186 @@ export async function handleConsole(bridge, port, request) {
323
325
  }
324
326
  return [{ level: "dim", message: "usage: agent [list|use <id>|new]" }];
325
327
  }
328
+ /**
329
+ * The Open Cloud credentials `upload` runs on.
330
+ *
331
+ * Everything printed here is deliberately non-secret: the key is echoed
332
+ * back only as its last four characters, which is enough to tell two keys
333
+ * apart and useless to anyone reading over a shoulder or a screenshot. The
334
+ * plugin masks the typed line before it reaches the log or the history —
335
+ * see `Secret.luau` — so the full value exists in exactly two places, the
336
+ * user's clipboard and a 0600 file in their home directory.
337
+ */
338
+ case "cloud": {
339
+ const verb = (request.args[0] ?? "status").toLowerCase();
340
+ if (verb === "status") {
341
+ const status = await credentialStatus();
342
+ if (!status.hasKey) {
343
+ return [
344
+ { level: "warn", message: "no Open Cloud key set", detail: "upload cannot run" },
345
+ { level: "dim", message: "1. create.roblox.com/dashboard/credentials -> Create API Key" },
346
+ { level: "dim", message: "2. Access Permissions -> add `assets`, tick Read and Write" },
347
+ { level: "dim", message: "3. add your IP, save, copy the key (it is shown once)" },
348
+ { level: "dim", message: "4. cloud key <paste it>", detail: "then: cloud user <your user id>" },
349
+ ];
350
+ }
351
+ const lines = [
352
+ {
353
+ level: "ok",
354
+ message: `key set (ends ${status.keyHint})`,
355
+ detail: status.source === "environment" ? "from ROBLOX_API_KEY" : CREDENTIALS_PATH,
356
+ },
357
+ ];
358
+ if (status.creatorId === null) {
359
+ lines.push({
360
+ level: "warn",
361
+ message: "no creator set, so uploads will fail",
362
+ detail: "cloud user <id> — the number in your roblox.com/users/NNN/profile URL",
363
+ });
364
+ }
365
+ else {
366
+ lines.push({
367
+ level: "dim",
368
+ message: `uploading as ${status.creatorField} ${status.creatorId}`,
369
+ });
370
+ }
371
+ lines.push(status.universeId === null
372
+ ? {
373
+ level: "dim",
374
+ message: "no universe set",
375
+ detail: "cloud universe <id> — needed for live data stores and live Luau",
376
+ }
377
+ : { level: "dim", message: `universe ${status.universeId}` });
378
+ if (status.placeId !== null) {
379
+ lines.push({ level: "dim", message: `place ${status.placeId}` });
380
+ }
381
+ return lines;
382
+ }
383
+ if (verb === "key") {
384
+ const key = request.args[1];
385
+ if (key === undefined) {
386
+ return [
387
+ { level: "dim", message: "usage: cloud key <your Open Cloud API key>" },
388
+ { level: "dim", message: "the line is masked in the log and in history" },
389
+ ];
390
+ }
391
+ if (request.args.length > 2) {
392
+ // A key with a space in it is a paste that picked up something else,
393
+ // and storing it would fail later with a 401 nobody could explain.
394
+ return [{ level: "error", message: "that key has a space in it — paste it as one word" }];
395
+ }
396
+ //[[ Checked BEFORE it is written, so a mistyped key is never stored at
397
+ // all. A saved-but-broken credential is the state that wastes the most
398
+ // time, because everything afterwards reports a permissions error.
399
+ //]]
400
+ const verdict = await testCredentials(key);
401
+ if (!verdict.ok) {
402
+ return [{ level: "error", message: "not saved", detail: verdict.detail }];
403
+ }
404
+ await saveApiKey(key);
405
+ const status = await credentialStatus();
406
+ const lines = [
407
+ { level: "ok", message: `key saved (ends ${key.slice(-4)})`, detail: CREDENTIALS_PATH },
408
+ { level: "dim", message: "stored for this machine only, readable by you alone" },
409
+ ];
410
+ if (status.creatorId === null) {
411
+ lines.push({ level: "warn", message: "now set who to upload as", detail: "cloud user <id>" });
412
+ }
413
+ return lines;
414
+ }
415
+ if (verb === "user" || verb === "group") {
416
+ const id = request.args[1];
417
+ if (id === undefined || !/^\d+$/.test(id)) {
418
+ return [
419
+ { level: "dim", message: `usage: cloud ${verb} <numeric id>` },
420
+ {
421
+ level: "dim",
422
+ message: verb === "user"
423
+ ? "the number in your roblox.com/users/NNN/profile URL"
424
+ : "the number in your roblox.com/groups/NNN/... URL",
425
+ },
426
+ ];
427
+ }
428
+ await saveCreator(verb === "user" ? "userId" : "groupId", id);
429
+ return [
430
+ { level: "ok", message: `uploads will be created by ${verb} ${id}` },
431
+ { level: "dim", message: "the other kind of creator was cleared" },
432
+ ];
433
+ }
434
+ if (verb === "universe" || verb === "place") {
435
+ const id = request.args[1];
436
+ if (id === undefined || !/^\d+$/.test(id)) {
437
+ return [
438
+ { level: "dim", message: `usage: cloud ${verb} <numeric id>` },
439
+ {
440
+ level: "dim",
441
+ message: verb === "universe"
442
+ ? "Creator Dashboard -> hover the game -> ⋯ -> Copy Universe ID"
443
+ : "the number after /places/ in the place's configure URL",
444
+ },
445
+ ];
446
+ }
447
+ await saveTarget(verb === "universe" ? "universeId" : "placeId", id);
448
+ //[[ Setting a place says which game you mean, so the universe is
449
+ // derived rather than asked for a second time. Only when it is not
450
+ // already set: an explicit `cloud universe` should not be undone by a
451
+ // later `cloud place`.
452
+ //]]
453
+ if (verb === "place") {
454
+ const current = await credentialStatus();
455
+ if (current.universeId === null) {
456
+ const derived = await universeForPlace(id);
457
+ if (derived !== null) {
458
+ await saveTarget("universeId", derived);
459
+ return [
460
+ { level: "ok", message: `place set to ${id}` },
461
+ { level: "ok", message: `universe ${derived}`, detail: "worked out from the place" },
462
+ ];
463
+ }
464
+ }
465
+ }
466
+ return [
467
+ { level: "ok", message: `${verb} set to ${id}` },
468
+ {
469
+ level: "dim",
470
+ message: verb === "universe"
471
+ ? "live data stores and live Luau now act on this game"
472
+ : "place publishing and live Luau now act on this place",
473
+ },
474
+ ];
475
+ }
476
+ if (verb === "test") {
477
+ const status = await credentialStatus();
478
+ if (!status.hasKey)
479
+ return [{ level: "warn", message: "no key set", detail: "cloud key <k>" }];
480
+ // Re-read rather than trusting the status: this asks Roblox, and a key
481
+ // can be revoked or have its IP list changed after it was saved.
482
+ const loaded = await loadCredentials();
483
+ if (loaded === null) {
484
+ return [{ level: "warn", message: "key set but no creator", detail: "cloud user <id>" }];
485
+ }
486
+ const verdict = await testCredentials(loaded.apiKey);
487
+ return [
488
+ { level: verdict.ok ? "ok" : "error", message: verdict.detail },
489
+ { level: "dim", message: `uploading as ${loaded.creatorField} ${loaded.creatorId}` },
490
+ ];
491
+ }
492
+ if (verb === "forget") {
493
+ const removed = await forgetCredentials();
494
+ return removed
495
+ ? [
496
+ { level: "ok", message: "stored credentials deleted", detail: CREDENTIALS_PATH },
497
+ { level: "dim", message: "revoke the key itself on the Creator Dashboard too" },
498
+ ]
499
+ : [{ level: "dim", message: "there was nothing stored to delete" }];
500
+ }
501
+ return [
502
+ {
503
+ level: "dim",
504
+ message: "usage: cloud [key <k>|user <id>|group <id>|universe <id>|place <id>|test|forget]",
505
+ },
506
+ ];
507
+ }
326
508
  case "stop": {
327
509
  if (state.active === null)
328
510
  return [{ level: "dim", message: "nothing is running" }];
@@ -1 +1 @@
1
- {"version":3,"file":"console.js","sourceRoot":"","sources":["../../src/bridge/console.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"console.js","sourceRoot":"","sources":["../../src/bridge/console.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -22,6 +22,10 @@ import { registerSessionTools } from "./tools/session.js";
22
22
  import { registerInputTools } from "./tools/input.js";
23
23
  import { registerDeviceTools } from "./tools/device.js";
24
24
  import { registerApiTools } from "./tools/api.js";
25
+ import { registerDataTools } from "./tools/data.js";
26
+ import { registerAnimTools } from "./tools/anim.js";
27
+ import { registerAudioTools } from "./tools/audio.js";
28
+ import { registerUniverseTools } from "./tools/universe.js";
25
29
  import { registerResources } from "./resources.js";
26
30
  const VERSION = "0.3.5";
27
31
  function parsePort(argv) {
@@ -101,6 +105,10 @@ async function main() {
101
105
  registerInputTools(context);
102
106
  registerDeviceTools(context);
103
107
  registerApiTools(context);
108
+ registerAudioTools(context);
109
+ registerUniverseTools(context);
110
+ registerDataTools(context);
111
+ registerAnimTools(context);
104
112
  registerTerrainTools(context);
105
113
  registerWorldTools(context);
106
114
  registerGenerateTools(context);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,233 @@
1
+ import { readFile, stat } from "node:fs/promises";
2
+ import { basename, extname, resolve } from "node:path";
3
+ import { ToolError } from "./errors.js";
4
+ import { call } from "./opencloud.js";
5
+ /**
6
+ * Putting local files into Roblox: upload, grant, publish.
7
+ *
8
+ * All three go out over Open Cloud rather than through the plugin. Studio's
9
+ * HttpService cannot carry a creator API key without shipping it into the place
10
+ * file, and two of the three endpoints are multipart or raw-binary, which
11
+ * HttpService cannot build at all. The server already has the file on disk, so
12
+ * it does the work and hands Studio nothing but an id.
13
+ *
14
+ * They live behind the `assets` tool with everything else that moves content
15
+ * between disk, the cloud and the place — `search`, `peek`, `insert`, `bake`.
16
+ * One noun, one tool.
17
+ */
18
+ const ASSETS_ENDPOINT = "/assets/v1/assets";
19
+ const OPERATIONS_ENDPOINT = "/assets/v1/operations";
20
+ const PERMISSIONS_ENDPOINT = "/asset-permissions-api/v1/assets/permissions";
21
+ /** Open Cloud's cap, per call. */
22
+ const MAX_BYTES = 20 * 1024 * 1024;
23
+ /**
24
+ * Moderation runs before an asset is usable and it is not instant. Roblox hands
25
+ * back an operation to poll rather than the asset. Give up well before an
26
+ * agent's patience runs out and say what happened, rather than reporting a
27
+ * failure for something that is merely slow.
28
+ */
29
+ const POLL_TIMEOUT_MS = 90_000;
30
+ const POLL_INTERVAL_MS = 2_000;
31
+ /**
32
+ * Extension to (assetType, content type).
33
+ *
34
+ * Roblox validates both and rejects a mismatch with a message naming neither.
35
+ * Derived from the file rather than asked for: an agent picking "Model" for a
36
+ * .png costs a round trip and a confusing error.
37
+ */
38
+ const KINDS = {
39
+ ".mp3": { assetType: "Audio", contentType: "audio/mpeg" },
40
+ ".ogg": { assetType: "Audio", contentType: "audio/ogg" },
41
+ ".wav": { assetType: "Audio", contentType: "audio/wav" },
42
+ ".flac": { assetType: "Audio", contentType: "audio/flac" },
43
+ ".png": { assetType: "Decal", contentType: "image/png" },
44
+ ".jpg": { assetType: "Decal", contentType: "image/jpeg" },
45
+ ".jpeg": { assetType: "Decal", contentType: "image/jpeg" },
46
+ ".bmp": { assetType: "Decal", contentType: "image/bmp" },
47
+ ".tga": { assetType: "Decal", contentType: "image/tga" },
48
+ ".fbx": { assetType: "Model", contentType: "model/fbx" },
49
+ ".gltf": { assetType: "Model", contentType: "model/gltf+json" },
50
+ ".glb": { assetType: "Model", contentType: "model/gltf-binary" },
51
+ ".mp4": { assetType: "Video", contentType: "video/mp4" },
52
+ ".mov": { assetType: "Video", contentType: "video/mov" },
53
+ };
54
+ async function readLocal(file, allowed) {
55
+ const path = resolve(file);
56
+ let size;
57
+ try {
58
+ size = (await stat(path)).size;
59
+ }
60
+ catch {
61
+ throw new ToolError("NO_FILE", `There is no file at ${path}.`, "Give an absolute path, or one relative to where the server was started.");
62
+ }
63
+ if (size === 0)
64
+ throw new ToolError("EMPTY_FILE", `${path} is empty.`);
65
+ if (size > MAX_BYTES) {
66
+ throw new ToolError("TOO_BIG", `${path} is ${(size / 1024 / 1024).toFixed(1)}MB; the limit is 20MB.`);
67
+ }
68
+ const extension = extname(path).toLowerCase();
69
+ if (allowed && !allowed.includes(extension)) {
70
+ throw new ToolError("WRONG_KIND", `This takes ${allowed.join(" or ")}, not ${extension || "a file with no extension"}.`);
71
+ }
72
+ const raw = await readFile(path);
73
+ // Copied into a plain ArrayBuffer: Node hands back a Buffer over a pooled,
74
+ // possibly shared allocation, which neither fetch nor Blob will accept here.
75
+ const bytes = new Uint8Array(new ArrayBuffer(raw.byteLength));
76
+ bytes.set(raw);
77
+ return { path, bytes, extension };
78
+ }
79
+ export async function uploadAsset(credentials, args) {
80
+ const { path, bytes, extension } = await readLocal(args.file);
81
+ const kind = KINDS[extension];
82
+ if (!kind) {
83
+ throw new ToolError("WRONG_KIND", `Roblox does not take ${extension || "files with no extension"} through Open Cloud.`, `It takes: ${Object.keys(KINDS).join(", ")}.`);
84
+ }
85
+ const assetType = args.assetType ?? kind.assetType;
86
+ const form = new FormData();
87
+ form.append("request", JSON.stringify({
88
+ assetType,
89
+ displayName: args.name ?? basename(path, extension),
90
+ description: args.description ?? "",
91
+ creationContext: { creator: { [credentials.creatorField]: credentials.creatorId } },
92
+ }));
93
+ form.append("fileContent", new Blob([bytes], { type: kind.contentType }), basename(path));
94
+ const started = await call(credentials, {
95
+ method: "POST",
96
+ path: ASSETS_ENDPOINT,
97
+ body: form,
98
+ scope: "assets:write",
99
+ });
100
+ if (!started.path) {
101
+ throw new ToolError("NO_OPERATION", "Roblox accepted the upload but did not say where to track it.", "Check the Development Items tab on the Creator Dashboard.");
102
+ }
103
+ const finished = await poll(credentials, started.path);
104
+ if (finished.error || !finished.response?.assetId) {
105
+ throw new ToolError("UPLOAD_REJECTED", `The upload failed moderation or validation: ${finished.error?.message ?? finished.message ?? "no reason given"}`);
106
+ }
107
+ const assetId = finished.response.assetId;
108
+ /**
109
+ * Roblox spells the verdict two ways and the docs only show one.
110
+ *
111
+ * The published example returns `MODERATION_STATE_APPROVED`; the live API
112
+ * returns a bare `Approved`. Comparing against the documented spelling alone
113
+ * made every successful upload read as pending -- measured on a real upload,
114
+ * not assumed -- so both are accepted and the flag is computed once here
115
+ * rather than re-derived by each caller.
116
+ */
117
+ const state = finished.response.moderationResult?.moderationState ?? "unknown";
118
+ return {
119
+ assetId,
120
+ approved: state === "Approved" || state === "MODERATION_STATE_APPROVED",
121
+ assetType,
122
+ uri: `rbxassetid://${assetId}`,
123
+ name: finished.response.displayName,
124
+ moderation: state,
125
+ uploadedAs: `${credentials.creatorField} ${credentials.creatorId}`,
126
+ file: path,
127
+ };
128
+ }
129
+ async function poll(credentials, operationPath) {
130
+ const id = operationPath.replace(/^operations\//, "");
131
+ const deadline = Date.now() + POLL_TIMEOUT_MS;
132
+ for (;;) {
133
+ const operation = await call(credentials, {
134
+ path: `${OPERATIONS_ENDPOINT}/${id}`,
135
+ scope: "assets:write",
136
+ });
137
+ if (operation.done)
138
+ return operation;
139
+ if (Date.now() >= deadline) {
140
+ throw new ToolError("STILL_PROCESSING", `Still processing after ${POLL_TIMEOUT_MS / 1000}s. It has not failed — ` +
141
+ "moderation can take longer.", "Check the Development Items tab on the Creator Dashboard in a minute.");
142
+ }
143
+ await new Promise((done) => setTimeout(done, POLL_INTERVAL_MS));
144
+ }
145
+ }
146
+ /**
147
+ * Grants a game or a person permission to use assets you own.
148
+ *
149
+ * Worth being precise about, because the surrounding folklore is wrong. Asset
150
+ * Privacy — the Restricted-by-default setting — applies only to Images, Decals
151
+ * and Meshes, and your own assets always work in your own published games. So
152
+ * this is NOT needed to make audio you uploaded play in your own experience.
153
+ *
154
+ * What it is for: a game you do not own — a collaborator's place, a group game
155
+ * you are not the owner of — or handing a specific person the right to use your
156
+ * asset in theirs. That is a real workflow with no other route from here: the
157
+ * alternative is the Creator Dashboard, one asset at a time.
158
+ *
159
+ * A grant to a game is PERMANENT. Roblox does not let it be revoked, so this is
160
+ * gated on an explicit confirmation rather than treated as an ordinary write.
161
+ */
162
+ export async function grantAssets(credentials, args) {
163
+ const result = await call(credentials, {
164
+ method: "PATCH",
165
+ path: PERMISSIONS_ENDPOINT,
166
+ body: {
167
+ subjectType: args.subjectType,
168
+ subjectId: args.subjectId,
169
+ // "Use" is the only action valid for Audio, Decal, Image, Mesh, MeshPart
170
+ // and Video against a Universe; the others are for models and places.
171
+ action: "Use",
172
+ requests: args.assetIds.map((assetId) => ({ assetId })),
173
+ },
174
+ scope: "asset-permissions:write",
175
+ });
176
+ const granted = result.successAssetIds ?? [];
177
+ const errors = result.errors ?? [];
178
+ return {
179
+ granted,
180
+ grantedCount: granted.length,
181
+ subject: `${args.subjectType} ${args.subjectId}`,
182
+ // AlreadyHasAccess is reported as an error by Roblox and is not one; a
183
+ // caller re-running a grant should not be told it failed.
184
+ failed: errors
185
+ .filter((entry) => entry.code !== "AlreadyHasAccess")
186
+ .map((entry) => ({ assetId: entry.assetId, reason: entry.code })),
187
+ alreadyHad: errors
188
+ .filter((entry) => entry.code === "AlreadyHasAccess")
189
+ .map((entry) => entry.assetId),
190
+ };
191
+ }
192
+ /**
193
+ * Publishes a .rbxl / .rbxlx from disk to a place.
194
+ *
195
+ * `versionType=Saved` saves without publishing, which is the safe default: it
196
+ * puts the file on Roblox and leaves what players are in alone. Publishing is
197
+ * the thing that changes the live game, so it is asked for explicitly.
198
+ *
199
+ * Roblox documents a real limitation and it is not obvious from any error: this
200
+ * API does not update EditableImage, EditableMesh, PartOperation,
201
+ * SurfaceAppearance or BaseWrap instances. A place using any of them has to be
202
+ * published from Studio, and the API will report success regardless.
203
+ */
204
+ export async function publishPlace(credentials, args) {
205
+ const { path, bytes, extension } = await readLocal(args.file, [".rbxl", ".rbxlx"]);
206
+ const result = await call(credentials, {
207
+ method: "POST",
208
+ path: `/universes/v1/${args.universeId}/places/${args.placeId}/versions`,
209
+ query: { versionType: args.publish ? "Published" : "Saved" },
210
+ raw: {
211
+ bytes,
212
+ contentType: extension === ".rbxlx" ? "application/xml" : "application/octet-stream",
213
+ },
214
+ scope: "universe-places:write",
215
+ // A place file is megabytes and the upload is one request.
216
+ timeoutMs: 180_000,
217
+ });
218
+ return {
219
+ placeId: args.placeId,
220
+ universeId: args.universeId,
221
+ versionNumber: result.versionNumber,
222
+ published: args.publish,
223
+ file: path,
224
+ note: args.publish
225
+ ? "This is live to players now."
226
+ : 'Saved as a new version but NOT live. Pass publish: true to release it.',
227
+ caveat: "Roblox's publishing API does not update EditableImage, EditableMesh, " +
228
+ "PartOperation, SurfaceAppearance or BaseWrap instances. If the place uses " +
229
+ "any of those, publish from Studio instead — this call reports success " +
230
+ "either way.",
231
+ };
232
+ }
233
+ //# sourceMappingURL=cloudassets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloudassets.js","sourceRoot":"","sources":["../../src/lib/cloudassets.ts"],"names":[],"mappings":"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"}