@el4cteo/rbx-studio-mcp 0.8.4 → 0.8.6
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/README.md +20 -3
- package/dist/bridge/rpc.js +1 -1
- package/dist/bridge/rpc.js.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/apidump.js +75 -0
- package/dist/lib/apidump.js.map +1 -1
- package/dist/lib/errors.js +5 -4
- package/dist/lib/errors.js.map +1 -1
- package/dist/lib/format.js +92 -25
- package/dist/lib/format.js.map +1 -1
- package/dist/lib/notices.js +29 -0
- package/dist/lib/notices.js.map +1 -0
- package/dist/lib/protocol.js.map +1 -1
- package/dist/lib/sync.js +1141 -0
- package/dist/lib/sync.js.map +1 -0
- package/dist/lib/syncplan.js +338 -0
- package/dist/lib/syncplan.js.map +1 -0
- package/dist/lib/tool.js +9 -2
- package/dist/lib/tool.js.map +1 -1
- package/dist/tools/discover.js +6 -1
- package/dist/tools/discover.js.map +1 -1
- package/dist/tools/exec.js +5 -0
- package/dist/tools/exec.js.map +1 -1
- package/dist/tools/instances.js +2 -2
- package/dist/tools/instances.js.map +1 -1
- package/dist/tools/perf.js +28 -3
- package/dist/tools/perf.js.map +1 -1
- package/dist/tools/screenshot.js +7 -3
- package/dist/tools/screenshot.js.map +1 -1
- package/dist/tools/scripts.js +110 -28
- package/dist/tools/scripts.js.map +1 -1
- package/dist/tools/sync.js +169 -0
- package/dist/tools/sync.js.map +1 -0
- package/package.json +4 -4
- package/plugin/src/Config.luau +1 -1
- package/plugin/src/Dispatch.luau +131 -90
- package/plugin/src/ExecRuntime.luau +190 -168
- package/plugin/src/LogBuffer.luau +38 -9
- package/plugin/src/Paths.luau +42 -0
- package/plugin/src/Phrase.luau +41 -0
- package/plugin/src/ScriptEdit.luau +94 -8
- package/plugin/src/Serialize.luau +16 -1
- package/plugin/src/Transport.luau +5 -2
- package/plugin/src/Undo.luau +74 -10
- package/plugin/src/handlers/Capture.luau +818 -809
- package/plugin/src/handlers/Debug.luau +19 -16
- package/plugin/src/handlers/Discover.luau +31 -1
- package/plugin/src/handlers/Perf.luau +100 -21
- package/plugin/src/handlers/Scripts.luau +274 -90
- package/plugin/src/handlers/Sync.luau +968 -0
- package/plugin/src/init.server.luau +33 -2
- package/scripts/build.mjs +14 -0
- package/scripts/sync-fake.mjs +191 -0
- package/scripts/test-live-sync-scale.mjs +150 -0
- package/scripts/test-live-sync.mjs +232 -0
- package/scripts/test-live-tools.mjs +6 -1
- package/scripts/test-plugin.mjs +16 -0
- package/scripts/test-results.mjs +41 -0
- package/scripts/test-sync-more.mjs +228 -0
- package/scripts/test-sync.mjs +245 -0
- package/dist/tools/spatial.js +0 -135
- package/dist/tools/spatial.js.map +0 -1
- package/dist/tools/upload.js +0 -294
- package/dist/tools/upload.js.map +0 -1
package/dist/tools/scripts.js
CHANGED
|
@@ -4,6 +4,49 @@ import { ToolError } from "../lib/errors.js";
|
|
|
4
4
|
import { liveChildren, liveInstance, liveScriptWrite, resolveLivePath } from "../lib/liveops.js";
|
|
5
5
|
import { assertTargetsOpenPlace, requireCredentials, requirePlace, requireUniverse, } from "../lib/opencloud.js";
|
|
6
6
|
import { defineTool } from "../lib/tool.js";
|
|
7
|
+
/**
|
|
8
|
+
* Matches grouped under one header per script, context merged.
|
|
9
|
+
*
|
|
10
|
+
* With context on, neighbouring matches share lines, and printing each match's
|
|
11
|
+
* window separately showed the same lines two and three times -- some of them
|
|
12
|
+
* as context under one match while being a match themselves. One block per
|
|
13
|
+
* script, each line once, `:` for a match and `-` for context, as grep does.
|
|
14
|
+
*/
|
|
15
|
+
function renderMatches(matches, tagNeedles) {
|
|
16
|
+
const groups = new Map();
|
|
17
|
+
for (const match of matches) {
|
|
18
|
+
let group = groups.get(match.path);
|
|
19
|
+
if (group === undefined) {
|
|
20
|
+
group = {
|
|
21
|
+
header: match.revision ? `${match.path} rev=${match.revision}` : match.path,
|
|
22
|
+
lines: new Map(),
|
|
23
|
+
hits: new Set(),
|
|
24
|
+
};
|
|
25
|
+
groups.set(match.path, group);
|
|
26
|
+
}
|
|
27
|
+
const first = match.line - (match.before?.length ?? 0);
|
|
28
|
+
for (const [index, line] of (match.before ?? []).entries()) {
|
|
29
|
+
if (!group.hits.has(first + index))
|
|
30
|
+
group.lines.set(first + index, line);
|
|
31
|
+
}
|
|
32
|
+
group.hits.add(match.line);
|
|
33
|
+
group.lines.set(match.line, match.text +
|
|
34
|
+
(match.truncated ? " [line cut; read it with script_read]" : "") +
|
|
35
|
+
(tagNeedles && match.needles ? ` [patterns ${match.needles.join(",")}]` : ""));
|
|
36
|
+
for (const [index, line] of (match.after ?? []).entries()) {
|
|
37
|
+
if (!group.hits.has(match.line + index + 1))
|
|
38
|
+
group.lines.set(match.line + index + 1, line);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return [...groups.values()]
|
|
42
|
+
.map((group) => {
|
|
43
|
+
const body = [...group.lines]
|
|
44
|
+
.sort(([a], [b]) => a - b)
|
|
45
|
+
.map(([number, line]) => `${number}${group.hits.has(number) ? ":" : "-"} ${line}`);
|
|
46
|
+
return [group.header, ...body].join("\n");
|
|
47
|
+
})
|
|
48
|
+
.join("\n\n");
|
|
49
|
+
}
|
|
7
50
|
/**
|
|
8
51
|
* Prefixes each line with its number, right-aligned to the widest one.
|
|
9
52
|
*
|
|
@@ -427,12 +470,29 @@ export function registerScriptTools(context) {
|
|
|
427
470
|
"instead of backslash, there is no alternation, and `-` means a lazy " +
|
|
428
471
|
"quantifier. Set `literal` to search for text exactly as written, which is " +
|
|
429
472
|
"usually what you want for identifiers.\n\n" +
|
|
430
|
-
"
|
|
431
|
-
"
|
|
473
|
+
"To look for several identifiers, pass them together as `patterns` (literal, " +
|
|
474
|
+
"up to 16): one pass over the place instead of one per name, and each line " +
|
|
475
|
+
"says which of them it matched. `mode=\"files\"` lists matching scripts only; " +
|
|
476
|
+
"`mode=\"counts\"` gives matching-line counts per pattern.\n\n" +
|
|
477
|
+
"Results are grouped by script with its `rev`, which `script_edit` accepts " +
|
|
478
|
+
"as `revision`. Matches come from the script editor's live buffer, so " +
|
|
479
|
+
"unsaved edits are searched too.",
|
|
432
480
|
inputSchema: {
|
|
433
481
|
pattern: z
|
|
434
482
|
.string()
|
|
483
|
+
.min(1)
|
|
484
|
+
.optional()
|
|
435
485
|
.describe('Lua pattern, or exact text when `literal` is set, e.g. "PlayerAdded".'),
|
|
486
|
+
patterns: z
|
|
487
|
+
.array(z.string().min(1))
|
|
488
|
+
.min(1)
|
|
489
|
+
.max(16)
|
|
490
|
+
.optional()
|
|
491
|
+
.describe("Several literal strings searched in one pass, instead of `pattern`."),
|
|
492
|
+
mode: z
|
|
493
|
+
.enum(["lines", "files", "counts"])
|
|
494
|
+
.default("lines")
|
|
495
|
+
.describe("'lines': matching lines. 'files': one row per matching script. 'counts': matching-line counts per pattern."),
|
|
436
496
|
path: z
|
|
437
497
|
.string()
|
|
438
498
|
.optional()
|
|
@@ -463,9 +523,15 @@ export function registerScriptTools(context) {
|
|
|
463
523
|
},
|
|
464
524
|
readOnly: true,
|
|
465
525
|
}, async (args) => {
|
|
526
|
+
if ((args.pattern === undefined) === (args.patterns === undefined)) {
|
|
527
|
+
throw new ToolError("BAD_PARAMS", "Pass either `pattern` or `patterns`, not both and not neither.");
|
|
528
|
+
}
|
|
529
|
+
const needles = args.patterns ?? [args.pattern];
|
|
466
530
|
const offset = decodeCursor(args.cursor);
|
|
467
531
|
const response = await bridge.call("script.grep", {
|
|
468
532
|
pattern: args.pattern,
|
|
533
|
+
patterns: args.patterns,
|
|
534
|
+
mode: args.mode,
|
|
469
535
|
path: args.path,
|
|
470
536
|
literal: args.literal,
|
|
471
537
|
ignoreCase: args.ignoreCase,
|
|
@@ -474,6 +540,14 @@ export function registerScriptTools(context) {
|
|
|
474
540
|
limit: args.limit,
|
|
475
541
|
offset,
|
|
476
542
|
}, { studioId: args.studioId, timeoutMs: 30_000 });
|
|
543
|
+
// Before the no-match branch: a zero is exactly what counts exist to say.
|
|
544
|
+
if (args.mode === "counts") {
|
|
545
|
+
return json({
|
|
546
|
+
searched: response.searched,
|
|
547
|
+
matchedFiles: response.matchedFiles ?? 0,
|
|
548
|
+
counts: needles.map((pattern, index) => ({ pattern, lines: response.counts?.[index] ?? 0 })),
|
|
549
|
+
});
|
|
550
|
+
}
|
|
477
551
|
if (response.total === 0) {
|
|
478
552
|
if (response.searched === 0) {
|
|
479
553
|
return text(args.path
|
|
@@ -486,42 +560,50 @@ export function registerScriptTools(context) {
|
|
|
486
560
|
// silently. A regex habit writes `foo|bar`, Lua reads it as the literal
|
|
487
561
|
// characters, nothing matches, and the empty result looks like an
|
|
488
562
|
// answer rather than like a malformed pattern.
|
|
489
|
-
const
|
|
563
|
+
const literal = args.literal || args.patterns !== undefined;
|
|
564
|
+
const alternation = !literal && (args.pattern ?? "").includes("|");
|
|
490
565
|
return text(`No matches in ${response.searched} script(s).\n` +
|
|
491
566
|
(alternation
|
|
492
567
|
? "This pattern contains `|`, which Lua patterns do not support — " +
|
|
493
568
|
"there is no alternation, so `|` matched as a literal character. " +
|
|
494
|
-
"
|
|
495
|
-
:
|
|
569
|
+
"Pass the alternatives as `patterns` instead."
|
|
570
|
+
: literal
|
|
496
571
|
? "The match is literal and case-sensitive unless you set `ignoreCase`."
|
|
497
572
|
: "Check case, and remember patterns are Lua patterns — set `literal` " +
|
|
498
573
|
"to search for the text exactly as written."));
|
|
499
574
|
}
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
if (previousPath !== "")
|
|
507
|
-
lines.push("");
|
|
508
|
-
previousPath = match.path;
|
|
509
|
-
}
|
|
510
|
-
for (const [index, before] of (match.before ?? []).entries()) {
|
|
511
|
-
lines.push(`${match.path}-${match.line - (match.before?.length ?? 0) + index}- ${before}`);
|
|
512
|
-
}
|
|
513
|
-
lines.push(`${match.path}:${match.line}: ${match.text}`);
|
|
514
|
-
for (const [index, after] of (match.after ?? []).entries()) {
|
|
515
|
-
lines.push(`${match.path}-${match.line + index + 1}- ${after}`);
|
|
516
|
-
}
|
|
575
|
+
if (args.mode === "files") {
|
|
576
|
+
return table(["path", "className", "revision", "matches"], response.items, {
|
|
577
|
+
offset,
|
|
578
|
+
total: response.total,
|
|
579
|
+
more: `searched ${response.searched} scripts`,
|
|
580
|
+
});
|
|
517
581
|
}
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
582
|
+
// Clipped by whole matches, so the cursor resumes at the first one not
|
|
583
|
+
// shown rather than skipping whatever a character cut dropped.
|
|
584
|
+
let shown = response.items.length;
|
|
585
|
+
let listing = renderMatches(response.items, needles.length > 1);
|
|
586
|
+
const budget = CHARACTER_LIMIT - 500;
|
|
587
|
+
if (listing.length > budget) {
|
|
588
|
+
let low = 1;
|
|
589
|
+
let high = shown;
|
|
590
|
+
while (low < high) {
|
|
591
|
+
const middle = Math.ceil((low + high) / 2);
|
|
592
|
+
if (renderMatches(response.items.slice(0, middle), needles.length > 1).length <= budget)
|
|
593
|
+
low = middle;
|
|
594
|
+
else
|
|
595
|
+
high = middle - 1;
|
|
596
|
+
}
|
|
597
|
+
shown = low;
|
|
598
|
+
listing = renderMatches(response.items.slice(0, shown), needles.length > 1);
|
|
599
|
+
if (listing.length > budget)
|
|
600
|
+
listing = `${listing.slice(0, budget - 60)} [cut; read the script with script_read]`;
|
|
523
601
|
}
|
|
524
|
-
|
|
602
|
+
const nextOffset = offset + shown;
|
|
603
|
+
const trailer = nextOffset < response.total
|
|
604
|
+
? `[showing ${shown} of ${response.total} matches, searched ${response.searched} scripts — call again with cursor: "${encodeCursor(nextOffset)}"]`
|
|
605
|
+
: `[${response.total} match${response.total === 1 ? "" : "es"}, searched ${response.searched} scripts]`;
|
|
606
|
+
return text(`${listing}\n\n${trailer}`);
|
|
525
607
|
});
|
|
526
608
|
defineTool(context, {
|
|
527
609
|
name: "script_create",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scripts.js","sourceRoot":"","sources":["../../src/tools/scripts.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scripts.js","sourceRoot":"","sources":["../../src/tools/scripts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { json, text } from "../lib/format.js";
|
|
3
|
+
import { resolveDir, runBuild, runExport, runSync, startWatch, stopWatch, summarise, watchState, } from "../lib/sync.js";
|
|
4
|
+
import { defineTool } from "../lib/tool.js";
|
|
5
|
+
/** Per-file lines past this are counted, not listed. */
|
|
6
|
+
const LINE_LIMIT = 60;
|
|
7
|
+
function render(report, heading) {
|
|
8
|
+
const out = [`${heading}: ${summarise(report)} (${report.place} <-> ${report.dir})`];
|
|
9
|
+
if (report.undoStep)
|
|
10
|
+
out.push(`Studio changes are one undo step, "${report.undoStep}".`);
|
|
11
|
+
const lines = report.lines.slice(0, LINE_LIMIT);
|
|
12
|
+
if (lines.length > 0)
|
|
13
|
+
out.push("", ...lines);
|
|
14
|
+
if (report.lines.length > LINE_LIMIT)
|
|
15
|
+
out.push(`… and ${report.lines.length - LINE_LIMIT} more`);
|
|
16
|
+
if (report.conflicts.length > 0) {
|
|
17
|
+
out.push("", "Conflicts (nothing was written for these):");
|
|
18
|
+
for (const conflict of report.conflicts.slice(0, LINE_LIMIT))
|
|
19
|
+
out.push(` ${conflict.file}: ${conflict.reason}`);
|
|
20
|
+
out.push('Settle them by editing one side to match the other, or rerun with prefer: "studio" or "disk" to let one side win.');
|
|
21
|
+
}
|
|
22
|
+
if (report.held.length > 0) {
|
|
23
|
+
out.push("", `Held back by the direction (${report.held.length}):`, ...report.held.slice(0, 20).map((line) => ` ${line}`));
|
|
24
|
+
}
|
|
25
|
+
if (report.failures.length > 0) {
|
|
26
|
+
out.push("", "Failed:", ...report.failures.slice(0, LINE_LIMIT).map((failure) => ` ${failure.file}: ${failure.reason}`));
|
|
27
|
+
}
|
|
28
|
+
if (report.builds.length > 0) {
|
|
29
|
+
out.push("", report.dryRun ? "Build files that would rebuild:" : "Rebuilt from build files:", ...report.builds.map((file) => ` ${file}`));
|
|
30
|
+
}
|
|
31
|
+
if (report.fileSynced.length > 0) {
|
|
32
|
+
out.push("", `${report.fileSynced.length} script(s) left alone: Studio's own Script Sync already binds them to files.`);
|
|
33
|
+
}
|
|
34
|
+
return out.join("\n");
|
|
35
|
+
}
|
|
36
|
+
export function registerSyncTools(context) {
|
|
37
|
+
const { bridge } = context;
|
|
38
|
+
defineTool(context, {
|
|
39
|
+
name: "sync",
|
|
40
|
+
title: "Sync scripts with files on disk",
|
|
41
|
+
description: "Mirrors the place's scripts into a folder on disk, so you can work on code with your own " +
|
|
42
|
+
"file tools -- read a window, search, edit in place, diff -- and then send it back to Studio " +
|
|
43
|
+
"in one call. Studio stays where the game runs: use playtest, screenshot, console and input " +
|
|
44
|
+
"to check the result.\n\n" +
|
|
45
|
+
"Layout mirrors the instance tree, Rojo-style: `ServerScriptService/Main.server.luau` is a " +
|
|
46
|
+
"Script, `.client.luau` a LocalScript, `.luau` a ModuleScript, and a script with scripts " +
|
|
47
|
+
"inside is a folder holding `init.server.luau` (or `init.client.luau`, `init.luau`). New " +
|
|
48
|
+
"files become new scripts, and a file moved or renamed moves the script itself, keeping its " +
|
|
49
|
+
"identity.\n\n" +
|
|
50
|
+
"Ops: `status` shows what would change without changing anything. `sync` goes both ways, " +
|
|
51
|
+
"`pull` only Studio -> disk, `push` only disk -> Studio. `watch` keeps them in step until " +
|
|
52
|
+
"`stop`: edit files and Studio follows within a second, and edits in Studio land on disk.\n\n" +
|
|
53
|
+
"Nothing is overwritten blind. The last sync is remembered per file, so a file changed on " +
|
|
54
|
+
"both sides is a conflict, reported and left alone -- settle it, or pass `prefer`. Deleting " +
|
|
55
|
+
"a file deletes the script (one Ctrl+Z in Studio); a script deleted in Studio moves its file " +
|
|
56
|
+
"to `.rbx-sync/trash`. Nothing is deleted on a first sync.\n\n" +
|
|
57
|
+
"UI and other instance trees: `export` writes one as a build file (e.g. " +
|
|
58
|
+
"`StarterGui/Shop.build.json`, the same fields `create` takes, only non-default " +
|
|
59
|
+
"properties). Edit it, then `build` -- or any sync -- rebuilds the tree in one undo step, " +
|
|
60
|
+
"keeping the scripts inside it. Build files are two-way too: a tree edited in Studio is written " +
|
|
61
|
+
"back to its file, and edits on both sides are a conflict rather than one silently undoing the other.\n\n" +
|
|
62
|
+
"Conflicts leave Studio's version in `.rbx-sync/conflicts/`. Merge into the file (or fix Studio) " +
|
|
63
|
+
"and sync again: whichever side changed since the conflict wins. While `watch` runs, new conflicts " +
|
|
64
|
+
"and errors are appended to your next tool reply.",
|
|
65
|
+
inputSchema: {
|
|
66
|
+
op: z
|
|
67
|
+
.enum(["status", "sync", "pull", "push", "watch", "stop", "export", "build"])
|
|
68
|
+
.describe("'status': dry run. 'sync': both ways. 'pull': Studio -> disk. 'push': disk -> Studio. " +
|
|
69
|
+
"'watch'/'stop': continuous two-way sync. 'export': instance trees -> build files. " +
|
|
70
|
+
"'build': build files -> instance trees."),
|
|
71
|
+
dir: z
|
|
72
|
+
.string()
|
|
73
|
+
.optional()
|
|
74
|
+
.describe('Sync folder, relative to the working directory. Default "studio".'),
|
|
75
|
+
roots: z
|
|
76
|
+
.array(z.string())
|
|
77
|
+
.optional()
|
|
78
|
+
.describe('Studio paths to sync, e.g. ["ServerScriptService", "ReplicatedStorage.Shared"]. Default: every ' +
|
|
79
|
+
"service scripts are authored in. Remembered for the folder once given."),
|
|
80
|
+
prefer: z
|
|
81
|
+
.enum(["studio", "disk"])
|
|
82
|
+
.optional()
|
|
83
|
+
.describe("Settle conflicts in favour of one side instead of reporting them."),
|
|
84
|
+
paths: z
|
|
85
|
+
.array(z.string())
|
|
86
|
+
.optional()
|
|
87
|
+
.describe('export: instances to write as build files, e.g. ["StarterGui.Shop"].'),
|
|
88
|
+
files: z
|
|
89
|
+
.array(z.string())
|
|
90
|
+
.optional()
|
|
91
|
+
.describe('build: build files to apply, relative to the folder. Default: those changed since last built.'),
|
|
92
|
+
confirmDeletes: z
|
|
93
|
+
.boolean()
|
|
94
|
+
.optional()
|
|
95
|
+
.describe("Allow a run that deletes most of what the folder tracks. Check `status` first."),
|
|
96
|
+
rebind: z
|
|
97
|
+
.boolean()
|
|
98
|
+
.optional()
|
|
99
|
+
.describe("Let a folder synced with one place follow a different place. Almost never what you want."),
|
|
100
|
+
studioId: z.string().optional().describe("Target Studio; omit for the active one."),
|
|
101
|
+
},
|
|
102
|
+
}, async (args) => {
|
|
103
|
+
const dir = resolveDir(args.dir);
|
|
104
|
+
const base = {
|
|
105
|
+
dir,
|
|
106
|
+
roots: args.roots,
|
|
107
|
+
studioId: args.studioId,
|
|
108
|
+
prefer: args.prefer,
|
|
109
|
+
confirmDeletes: args.confirmDeletes,
|
|
110
|
+
rebind: args.rebind,
|
|
111
|
+
};
|
|
112
|
+
switch (args.op) {
|
|
113
|
+
case "status": {
|
|
114
|
+
const report = await runSync(bridge, { ...base, direction: "both", dryRun: true });
|
|
115
|
+
const watching = watchState(dir);
|
|
116
|
+
const lines = [render(report, "Would sync")];
|
|
117
|
+
if (watching) {
|
|
118
|
+
lines.push("", `Watching since ${new Date(watching.since).toISOString()}: ${watching.cycles} sync(s), ${watching.echoes} echo(es) skipped` +
|
|
119
|
+
(watching.lastCycle ? `; last change: ${watching.lastCycle.summary} (${watching.lastCycle.ms}ms)` : "") +
|
|
120
|
+
(watching.lastError ? `; last error: ${watching.lastError.message}` : ""));
|
|
121
|
+
}
|
|
122
|
+
return text(lines.join("\n"));
|
|
123
|
+
}
|
|
124
|
+
case "sync":
|
|
125
|
+
case "pull":
|
|
126
|
+
case "push": {
|
|
127
|
+
const direction = args.op === "sync" ? "both" : args.op;
|
|
128
|
+
const report = await runSync(bridge, { ...base, direction });
|
|
129
|
+
return text(render(report, args.op === "sync" ? "Synced" : args.op === "pull" ? "Pulled" : "Pushed"));
|
|
130
|
+
}
|
|
131
|
+
case "watch": {
|
|
132
|
+
const { state, first, already } = await startWatch(bridge, { ...base, direction: "both" });
|
|
133
|
+
if (already)
|
|
134
|
+
return text(`Already watching ${state.dir}. op="status" shows how it is going.`);
|
|
135
|
+
return text([
|
|
136
|
+
first.lines.length > 0 || first.conflicts.length > 0 ? render(first, "First sync") : "Already in step.",
|
|
137
|
+
"",
|
|
138
|
+
`Watching ${state.dir}: file edits reach Studio within a second, Studio edits reach the files. ` +
|
|
139
|
+
'Conflicts are left alone and listed by op="status". Stop with op="stop".',
|
|
140
|
+
].join("\n"));
|
|
141
|
+
}
|
|
142
|
+
case "stop": {
|
|
143
|
+
const state = stopWatch(dir);
|
|
144
|
+
return text(state
|
|
145
|
+
? `Stopped watching ${dir} after ${state.cycles} run(s).`
|
|
146
|
+
: `Nothing was watching ${dir}.`);
|
|
147
|
+
}
|
|
148
|
+
case "export": {
|
|
149
|
+
if (!args.paths || args.paths.length === 0) {
|
|
150
|
+
return text('export needs `paths`, e.g. ["StarterGui.Shop"].');
|
|
151
|
+
}
|
|
152
|
+
const written = await runExport(bridge, { ...base, direction: "both", paths: args.paths });
|
|
153
|
+
return json(written.map((entry) => ({
|
|
154
|
+
path: entry.path,
|
|
155
|
+
file: entry.file,
|
|
156
|
+
instances: entry.instances,
|
|
157
|
+
// Scripts are synced as files, not written into the build file.
|
|
158
|
+
scriptsLeftAsFiles: entry.scripts,
|
|
159
|
+
...(entry.skipped.length > 0 ? { propertiesNotExported: entry.skipped.slice(0, 30) } : {}),
|
|
160
|
+
})), "Edit the file, then sync op=\"build\" (or any push) rebuilds the tree in one undo step.");
|
|
161
|
+
}
|
|
162
|
+
case "build": {
|
|
163
|
+
const report = await runBuild(bridge, { ...base, direction: "push", files: args.files });
|
|
164
|
+
return text(render(report, "Built"));
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/tools/sync.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@el4cteo/rbx-studio-mcp",
|
|
3
|
-
"version": "0.8.
|
|
4
|
-
"description": "MCP server for Roblox Studio.
|
|
3
|
+
"version": "0.8.6",
|
|
4
|
+
"description": "MCP server for Roblox Studio. 35 tools, push-based SSE bridge, two-way script sync with files, editor-safe script edits, one-step undo.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"bin": {
|
|
@@ -24,14 +24,14 @@
|
|
|
24
24
|
"node": ">=22.15"
|
|
25
25
|
},
|
|
26
26
|
"scripts": {
|
|
27
|
-
"build": "
|
|
27
|
+
"build": "node scripts/build.mjs",
|
|
28
28
|
"watch": "tsc --watch",
|
|
29
29
|
"typecheck": "tsc --noEmit",
|
|
30
30
|
"start": "node dist/index.js",
|
|
31
31
|
"build:plugin": "node scripts/check-plugin.mjs && node scripts/build-plugin.mjs",
|
|
32
32
|
"sourcemap": "node scripts/sourcemap.mjs",
|
|
33
33
|
"test:live": "node scripts/test-live.mjs",
|
|
34
|
-
"test": "node scripts/test-plugin.mjs && node scripts/test-transport.mjs && node scripts/test-server.mjs && node scripts/test-bridge.mjs && node scripts/test-console.mjs && node scripts/test-failover.mjs && node scripts/test-tools.mjs && node scripts/test-apidump.mjs",
|
|
34
|
+
"test": "node scripts/test-plugin.mjs && node scripts/test-transport.mjs && node scripts/test-server.mjs && node scripts/test-bridge.mjs && node scripts/test-console.mjs && node scripts/test-failover.mjs && node scripts/test-tools.mjs && node scripts/test-results.mjs && node scripts/test-sync.mjs && node scripts/test-sync-more.mjs && node scripts/test-apidump.mjs",
|
|
35
35
|
"build:all": "npm run build && npm run build:plugin",
|
|
36
36
|
"install:plugin": "node scripts/install-plugin.mjs",
|
|
37
37
|
"check:plugin": "node scripts/check-plugin.mjs",
|
package/plugin/src/Config.luau
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
local Config = {}
|
|
11
11
|
|
|
12
|
-
Config.PLUGIN_VERSION = "0.8.
|
|
12
|
+
Config.PLUGIN_VERSION = "0.8.6"
|
|
13
13
|
|
|
14
14
|
-- Fingerprint of plugin/src, stamped in by scripts/build-plugin.mjs. The server
|
|
15
15
|
-- computes the same hash from its own copy of the sources and compares, so a
|