@el4cteo/rbx-studio-mcp 0.8.2 → 0.8.4
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 +7 -4
- package/dist/bridge/api.js +2 -2
- package/dist/bridge/api.js.map +1 -1
- package/dist/bridge/failover.js +12 -4
- package/dist/bridge/failover.js.map +1 -1
- package/dist/bridge/harness.js +48 -6
- package/dist/bridge/harness.js.map +1 -1
- package/dist/bridge/remote.js +4 -2
- package/dist/bridge/remote.js.map +1 -1
- package/dist/bridge/rpc.js +43 -5
- package/dist/bridge/rpc.js.map +1 -1
- package/dist/bridge/server.js +26 -1
- package/dist/bridge/server.js.map +1 -1
- package/dist/lib/apidump.js +58 -13
- package/dist/lib/apidump.js.map +1 -1
- package/dist/lib/cloudassets.js +2 -2
- package/dist/lib/cloudassets.js.map +1 -1
- package/dist/lib/png.js +19 -31
- package/dist/lib/png.js.map +1 -1
- package/dist/tools/discover.js +78 -4
- package/dist/tools/discover.js.map +1 -1
- package/dist/tools/instances.js +3 -1
- package/dist/tools/instances.js.map +1 -1
- package/dist/tools/session.js +11 -3
- package/dist/tools/session.js.map +1 -1
- package/package.json +3 -3
- package/plugin/src/Commands.luau +72 -5
- package/plugin/src/Config.luau +65 -65
- package/plugin/src/Console.luau +5 -0
- package/plugin/src/Prompt.luau +23 -3
- package/plugin/src/handlers/Debug.luau +42 -0
- package/plugin/src/handlers/Exec.luau +5 -1
- package/plugin/src/handlers/Spatial.luau +34 -0
- package/plugin/src/handlers/Terrain.luau +10 -0
- package/plugin/src/handlers/Viewport.luau +33 -1
- package/plugin/src/handlers/World.luau +21 -1
- package/plugin/src/init.server.luau +25 -0
- package/scripts/check-plugin.mjs +54 -0
- package/scripts/test-apidump.mjs +170 -0
- package/scripts/test-bridge.mjs +111 -4
- package/scripts/test-live-tools.mjs +382 -0
- package/scripts/test-plugin.mjs +1 -0
- package/scripts/test-tools.mjs +44 -0
package/dist/tools/instances.js
CHANGED
|
@@ -258,7 +258,9 @@ export function registerInstanceTools(context) {
|
|
|
258
258
|
// not the agent asking to inspect anything — see discover.ts for
|
|
259
259
|
// why the console needs to be told apart the two.
|
|
260
260
|
{
|
|
261
|
-
|
|
261
|
+
// Each path once: several entries commonly name the same instance,
|
|
262
|
+
// and every duplicate is a resolve and a serialise in Studio.
|
|
263
|
+
paths: [...new Set(args.targets.flatMap((target) => target.paths))],
|
|
262
264
|
includeChildren: false,
|
|
263
265
|
probeOnly: true,
|
|
264
266
|
}, { studioId: args.studioId });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instances.js","sourceRoot":"","sources":["../../src/tools/instances.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"instances.js","sourceRoot":"","sources":["../../src/tools/instances.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/session.js
CHANGED
|
@@ -57,11 +57,19 @@ export function registerSessionTools(context) {
|
|
|
57
57
|
},
|
|
58
58
|
readOnly: true,
|
|
59
59
|
}, async ({ studioId }) => {
|
|
60
|
-
|
|
61
|
-
|
|
60
|
+
// The two reads do not depend on each other, and through a proxying
|
|
61
|
+
// instance each is an HTTP round trip -- so the tool everyone is told to
|
|
62
|
+
// call first paid for both in series.
|
|
63
|
+
const [status, view] = await Promise.all([
|
|
64
|
+
bridge.call("studio.status", {}, { studioId }),
|
|
65
|
+
bridge.sessions(),
|
|
66
|
+
]);
|
|
62
67
|
const targetId = studioId ?? view.activeId;
|
|
68
|
+
// Remembered for later listings, not needed for this answer, so it is not
|
|
69
|
+
// waited for. Best effort on every implementation; the catch is only there
|
|
70
|
+
// so a failure cannot surface as an unhandled rejection.
|
|
63
71
|
if (targetId)
|
|
64
|
-
|
|
72
|
+
void bridge.notePlaceName(targetId, status.placeName, status.context).catch(() => undefined);
|
|
65
73
|
// A stale plugin answers with older handlers and no other symptom, so the
|
|
66
74
|
// warning rides along with the one call agents are told to make first —
|
|
67
75
|
// in full the first time, as a one-line tag on every call after that.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/tools/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAmB,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,EAAE,uBAAuB,EAAsB,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,UAAU,EAAoB,MAAM,gBAAgB,CAAC;AA+B9D;;;;;;;;;;GAUG;AACH,SAAS,WAAW,CAAC,QAAyB,EAAE,MAAqB;IACnE,IAAI,MAAM,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAE9D,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IACnE,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,CACL,yEAAyE;YACzE,2EAA2E;YAC3E,0EAA0E;YAC1E,mBAAmB,CACpB,CAAC;IACJ,CAAC;IACD,OAAO,CACL,4EAA4E;QAC5E,oCAAoC,CACrC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAoB;IACvD,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAE3B,UAAU,CACR,OAAO,EACP;QACE,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,eAAe;QACtB,WAAW,EACT,uEAAuE;YACvE,wEAAwE;YACxE,oEAAoE;YACpE,2EAA2E;YAC3E,uEAAuE;YACvE,yEAAyE;YACzE,0EAA0E;YAC1E,2EAA2E;YAC3E,4EAA4E;YAC5E,oEAAoE;YACpE,wEAAwE;YACxE,2EAA2E;YAC3E,yEAAyE;YACzE,UAAU;YACV,2EAA2E;YAC3E,mDAAmD;QACrD,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,gEAAgE;gBAC9D,yCAAyC,CAC5C;SACJ;QACD,QAAQ,EAAE,IAAI;KACf,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAuB,EAAE;QAC1C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAe,eAAe,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/tools/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAmB,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,EAAE,uBAAuB,EAAsB,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,UAAU,EAAoB,MAAM,gBAAgB,CAAC;AA+B9D;;;;;;;;;;GAUG;AACH,SAAS,WAAW,CAAC,QAAyB,EAAE,MAAqB;IACnE,IAAI,MAAM,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAE9D,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IACnE,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,CACL,yEAAyE;YACzE,2EAA2E;YAC3E,0EAA0E;YAC1E,mBAAmB,CACpB,CAAC;IACJ,CAAC;IACD,OAAO,CACL,4EAA4E;QAC5E,oCAAoC,CACrC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAoB;IACvD,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAE3B,UAAU,CACR,OAAO,EACP;QACE,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,eAAe;QACtB,WAAW,EACT,uEAAuE;YACvE,wEAAwE;YACxE,oEAAoE;YACpE,2EAA2E;YAC3E,uEAAuE;YACvE,yEAAyE;YACzE,0EAA0E;YAC1E,2EAA2E;YAC3E,4EAA4E;YAC5E,oEAAoE;YACpE,wEAAwE;YACxE,2EAA2E;YAC3E,yEAAyE;YACzE,UAAU;YACV,2EAA2E;YAC3E,mDAAmD;QACrD,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,gEAAgE;gBAC9D,yCAAyC,CAC5C;SACJ;QACD,QAAQ,EAAE,IAAI;KACf,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAuB,EAAE;QAC1C,oEAAoE;QACpE,yEAAyE;QACzE,sCAAsC;QACtC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACvC,MAAM,CAAC,IAAI,CAAe,eAAe,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;YAC5D,MAAM,CAAC,QAAQ,EAAE;SAClB,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC;QAC3C,0EAA0E;QAC1E,2EAA2E;QAC3E,yDAAyD;QACzD,IAAI,QAAQ;YAAE,KAAK,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAE3G,0EAA0E;QAC1E,wEAAwE;QACxE,sEAAsE;QACtE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAG;YACf,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC;YACvC,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI;SAClE,CAAC,MAAM,CAAC,CAAC,OAAO,EAAqB,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC1F,CAAC,CACF,CAAC;IAEF,UAAU,CACR,OAAO,EACP;QACE,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EACT,uEAAuE;YACvE,kEAAkE;YAClE,yCAAyC;YACzC,uEAAuE;YACvE,uEAAuE;YACvE,yEAAyE;YACzE,cAAc;YACd,2EAA2E;YAC3E,0EAA0E;YAC1E,6CAA6C;YAC7C,wEAAwE;YACxE,uEAAuE;YACvE,4DAA4D;YAC5D,0EAA0E;YAC1E,2EAA2E;YAC3E,2EAA2E;YAC3E,yEAAyE;YACzE,yEAAyE;YACzE,qCAAqC;QACvC,WAAW,EAAE,EAAE;QACf,QAAQ,EAAE,IAAI;KACf,EACD,KAAK,IAAyB,EAAE;QAC9B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;QAC3B,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAI,CACT,sCAAsC;gBACpC,uEAAuE;gBACvE,+CAA+C,CAClD,CAAC;QACJ,CAAC;QACD,uEAAuE;QACvE,qEAAqE;QACrE,iEAAiE;QACjE,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;QAEnF,0EAA0E;QAC1E,uEAAuE;QACvE,2EAA2E;QAC3E,yEAAyE;QACzE,+CAA+C;QAC/C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAC7B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAC9B,eAAe,EACf,EAAE,EACF,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,CACjD,CAAC;gBACF,MAAM,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC/E,OAAO;oBACL,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,WAAW,EAAE,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;iBACrE,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;YAC7D,CAAC;QACH,CAAC,CAAC,CACH,CAAC;QAEF,qEAAqE;QACrE,uEAAuE;QACvE,mEAAmE;QACnE,oEAAoE;QACpE,uEAAuE;QACvE,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CACjF,CAAC,OAAO,EAAE,EAAE,CAAC,sBAAsB,CAAC,OAAO,CAAC,KAAK,IAAI,CACtD,CAAC;QACF,MAAM,OAAO,GAAG,WAAW;aACxB,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;aAChD,MAAM,CAAC,CAAC,MAAM,EAAoB,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;QAEzD,yEAAyE;QACzE,oEAAoE;QACpE,wEAAwE;QACxE,qEAAqE;QACrE,mEAAmE;QACnE,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAChF,MAAM,YAAY,GAChB,cAAc,CAAC,MAAM,GAAG,CAAC;YACvB,CAAC,CAAC,8DAA8D;gBAC9D,QAAQ;qBACL,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,IAAI,SAAS,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;qBACpF,IAAI,CAAC,IAAI,CAAC;gBACb,6EAA6E;gBAC7E,2EAA2E;gBAC3E,0DAA0D;YAC5D,CAAC,CAAC,IAAI,CAAC;QAEX,MAAM,IAAI,GAAG;YACX,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;YAC3D,YAAY,CAAC,CAAC,CAAC,YAAY,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI;YAChD,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC;SAC9B;aACE,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,CAAC;aACrE,IAAI,CAAC,MAAM,CAAC,CAAC;QAEhB,OAAO,IAAI,CACT;YACE,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;gBACzC,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,GAAG,MAAM,CAAC,KAAK,CAAC;gBAChB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,WAAW,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE;gBACxD,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,KAAK,EAAE,sBAAsB,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI;gBACvD,gBAAgB,EAAE,uBAAuB,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,KAAK;gBAC3E,MAAM,EAAE,OAAO,CAAC,QAAQ,KAAK,MAAM;aACpC,CAAC,CAAC;YACH,cAAc,EAAE,MAAM;SACvB,EACD,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CACnC,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,UAAU,CACR,OAAO,EACP;QACE,IAAI,EAAE,mBAAmB;QACzB,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EACT,oEAAoE;YACpE,uEAAuE;YACvE,8DAA8D;YAC9D,sEAAsE;YACtE,sEAAsE;YACtE,wDAAwD;YACxD,sEAAsE;YACtE,yEAAyE;YACzE,yEAAyE;YACzE,qBAAqB;YACrB,yEAAyE;YACzE,wEAAwE;YACxE,0EAA0E;YAC1E,wEAAwE;YACxE,oEAAoE;YACpE,kDAAkD;QACpD,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC;iBACR,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,QAAQ,CAAC,+BAA+B,CAAC;SAC7C;QACD,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,KAAK;QAClB,UAAU,EAAE,IAAI;KACjB,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAuB,EAAE;QAC1C,MAAM,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACjC,MAAM,OAAO,GAAG,CAAC,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;QAEpF,uEAAuE;QACvE,sEAAsE;QACtE,8BAA8B;QAC9B,MAAM,MAAM,GAAG,MAAM,MAAM;aACxB,IAAI,CAAe,eAAe,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;aACvE,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACrB,MAAM,KAAK,GAAG,MAAM,EAAE,OAAO,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAEzF,OAAO,IAAI,CACT,yBAAyB,MAAM,EAAE,SAAS,IAAI,OAAO,EAAE,SAAS,IAAI,QAAQ,IAAI,KAAK,GAAG;YACtF,CAAC,KAAK;gBACJ,CAAC,CAAC,sEAAsE;oBACtE,mCAAmC;gBACrC,CAAC,CAAC,EAAE,CAAC,CACV,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@el4cteo/rbx-studio-mcp",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.4",
|
|
4
4
|
"description": "MCP server for Roblox Studio. 34 tools, push-based SSE bridge, editor-safe script edits, one-step undo.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -31,7 +31,7 @@
|
|
|
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",
|
|
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",
|
|
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",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"ai-agent"
|
|
54
54
|
],
|
|
55
55
|
"dependencies": {
|
|
56
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
56
|
+
"@modelcontextprotocol/sdk": "^1.31.0",
|
|
57
57
|
"zod": "^4.6.5"
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
package/plugin/src/Commands.luau
CHANGED
|
@@ -46,6 +46,9 @@ export type Hooks = {
|
|
|
46
46
|
-- Whether the panel may open itself on load, and the setter for it.
|
|
47
47
|
autoOpen: () -> boolean,
|
|
48
48
|
saveAutoOpen: (boolean) -> (),
|
|
49
|
+
-- Whether a line that is not a command is sent to an agent, and the setter.
|
|
50
|
+
chat: () -> boolean,
|
|
51
|
+
saveChat: (boolean) -> (),
|
|
49
52
|
-- The transport's own view of the connection, which the console only ever
|
|
50
53
|
-- receives second-hand as a string to display.
|
|
51
54
|
status: () -> string,
|
|
@@ -137,11 +140,16 @@ define({
|
|
|
137
140
|
for _, entry in entries do
|
|
138
141
|
Console.log("dim", " " .. entry.usage, entry.summary)
|
|
139
142
|
end
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
143
|
+
local current = hooks
|
|
144
|
+
if current ~= nil and current.chat() then
|
|
145
|
+
Console.log(
|
|
146
|
+
"dim",
|
|
147
|
+
" anything else",
|
|
148
|
+
"sent to a coding agent -- run `agent` to see which"
|
|
149
|
+
)
|
|
150
|
+
else
|
|
151
|
+
Console.log("dim", " anything else", "ignored -- `chat on` sends it to a coding agent")
|
|
152
|
+
end
|
|
145
153
|
end,
|
|
146
154
|
})
|
|
147
155
|
|
|
@@ -334,6 +342,56 @@ define({
|
|
|
334
342
|
end,
|
|
335
343
|
})
|
|
336
344
|
|
|
345
|
+
--[[
|
|
346
|
+
Whether a sentence typed at the prompt reaches an agent.
|
|
347
|
+
|
|
348
|
+
Off by default. A prompt starts a real agent -- a separate session, billed
|
|
349
|
+
separately -- so a line typed into the panel by habit, or pasted by mistake,
|
|
350
|
+
should not spend anything until the user has said they want that. Commands
|
|
351
|
+
are unaffected either way, and so are `agent` and `stop`.
|
|
352
|
+
]]
|
|
353
|
+
define({
|
|
354
|
+
name = "chat",
|
|
355
|
+
usage = "chat [on|off]",
|
|
356
|
+
summary = "let a coding agent answer sentences typed here; OFF by default",
|
|
357
|
+
run = function(args)
|
|
358
|
+
local current = hooks
|
|
359
|
+
if current == nil then
|
|
360
|
+
return
|
|
361
|
+
end
|
|
362
|
+
|
|
363
|
+
local wanted = args[1]
|
|
364
|
+
if #args > 1 or (wanted ~= nil and wanted ~= "on" and wanted ~= "off") then
|
|
365
|
+
Console.log("error", "usage: chat [on|off]")
|
|
366
|
+
return
|
|
367
|
+
end
|
|
368
|
+
|
|
369
|
+
if wanted == nil then
|
|
370
|
+
Console.log(
|
|
371
|
+
"dim",
|
|
372
|
+
if current.chat()
|
|
373
|
+
then "chat on -- a sentence is sent to a coding agent"
|
|
374
|
+
else "chat off -- a sentence is ignored; `chat on` to let an agent answer"
|
|
375
|
+
)
|
|
376
|
+
return
|
|
377
|
+
end
|
|
378
|
+
|
|
379
|
+
local value = wanted == "on"
|
|
380
|
+
if value == current.chat() then
|
|
381
|
+
Console.log("dim", string.format("already chat %s", wanted))
|
|
382
|
+
return
|
|
383
|
+
end
|
|
384
|
+
|
|
385
|
+
current.saveChat(value)
|
|
386
|
+
Console.setPromptChat(value)
|
|
387
|
+
if value then
|
|
388
|
+
Console.log("ok", "chat on", "type a sentence and a coding agent answers; `agent` shows which")
|
|
389
|
+
else
|
|
390
|
+
Console.log("ok", "chat off", "sentences are ignored; commands still run")
|
|
391
|
+
end
|
|
392
|
+
end,
|
|
393
|
+
})
|
|
394
|
+
|
|
337
395
|
define({
|
|
338
396
|
name = "place",
|
|
339
397
|
usage = "place",
|
|
@@ -648,6 +706,15 @@ function Commands.run(line: string)
|
|
|
648
706
|
return
|
|
649
707
|
end
|
|
650
708
|
end
|
|
709
|
+
local current = hooks
|
|
710
|
+
if current == nil or not current.chat() then
|
|
711
|
+
Console.log(
|
|
712
|
+
"dim",
|
|
713
|
+
"not a command, and chat is off -- nothing was sent",
|
|
714
|
+
"run `chat on` to let a coding agent answer sentences, or `help` for commands"
|
|
715
|
+
)
|
|
716
|
+
return
|
|
717
|
+
end
|
|
651
718
|
Console.setPromptBusy(true)
|
|
652
719
|
remote("prompt", words, trimmed)
|
|
653
720
|
return
|
package/plugin/src/Config.luau
CHANGED
|
@@ -1,65 +1,65 @@
|
|
|
1
|
-
--!strict
|
|
2
|
-
--[[
|
|
3
|
-
Connection settings for the Studio MCP plugin.
|
|
4
|
-
|
|
5
|
-
The port must match the one the Node server was started with (`--port`, or
|
|
6
|
-
the ROBLOX_STUDIO_MCP_PORT environment variable). It is stored as a plugin
|
|
7
|
-
setting so a user running on a non-default port only has to set it once.
|
|
8
|
-
]]
|
|
9
|
-
|
|
10
|
-
local Config = {}
|
|
11
|
-
|
|
12
|
-
Config.PLUGIN_VERSION = "0.8.
|
|
13
|
-
|
|
14
|
-
-- Fingerprint of plugin/src, stamped in by scripts/build-plugin.mjs. The server
|
|
15
|
-
-- computes the same hash from its own copy of the sources and compares, so a
|
|
16
|
-
-- plugin left running from an older build is reported rather than silently
|
|
17
|
-
-- answering with stale handlers. Stays "dev" when the tree is loaded unbuilt.
|
|
18
|
-
Config.BUILD_ID = "dev"
|
|
19
|
-
Config.PROTOCOL_VERSION = 1
|
|
20
|
-
Config.DEFAULT_PORT = 44755
|
|
21
|
-
|
|
22
|
-
-- Header the bridge requires on every request. A web page cannot set it
|
|
23
|
-
-- cross-origin without a preflight the bridge never answers, which is what
|
|
24
|
-
-- keeps a malicious site from driving Studio through the loopback port.
|
|
25
|
-
Config.CLIENT_HEADER = "x-roblox-studio-mcp"
|
|
26
|
-
|
|
27
|
-
-- How long to wait before retrying after the stream drops. Studio closes SSE
|
|
28
|
-
-- connections at the 30 minute mark, so reconnects are routine, not exceptional.
|
|
29
|
-
Config.RECONNECT_DELAY = 1
|
|
30
|
-
Config.MAX_RECONNECT_DELAY = 30
|
|
31
|
-
|
|
32
|
-
-- How long a connection has to last before it counts as having worked, rather
|
|
33
|
-
-- than as one more failure to back off from. Comfortably longer than a failed
|
|
34
|
-
-- handshake against a dead port, which resolves in milliseconds, and far shorter
|
|
35
|
-
-- than any connection that carried a single command.
|
|
36
|
-
Config.HEALTHY_CONNECTION = 10
|
|
37
|
-
|
|
38
|
-
-- How long a healthy long-poll session runs before standing aside so streaming
|
|
39
|
-
-- can be tried again. Long enough that a Studio which genuinely cannot stream
|
|
40
|
-
-- is not reconnecting constantly, short enough that a session downgraded by one
|
|
41
|
-
-- unlucky attempt does not spend the rest of its life slower than it should be.
|
|
42
|
-
Config.RESTREAM_INTERVAL = 60
|
|
43
|
-
|
|
44
|
-
local port: number? = nil
|
|
45
|
-
|
|
46
|
-
function Config.setPort(value: number)
|
|
47
|
-
port = value
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
function Config.getPort(): number
|
|
51
|
-
return port or Config.DEFAULT_PORT
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
function Config.baseUrl(): string
|
|
55
|
-
return string.format("http://127.0.0.1:%d", Config.getPort())
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
function Config.headers(): { [string]: string }
|
|
59
|
-
return {
|
|
60
|
-
[Config.CLIENT_HEADER] = tostring(Config.PROTOCOL_VERSION),
|
|
61
|
-
["Content-Type"] = "application/json",
|
|
62
|
-
}
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
return Config
|
|
1
|
+
--!strict
|
|
2
|
+
--[[
|
|
3
|
+
Connection settings for the Studio MCP plugin.
|
|
4
|
+
|
|
5
|
+
The port must match the one the Node server was started with (`--port`, or
|
|
6
|
+
the ROBLOX_STUDIO_MCP_PORT environment variable). It is stored as a plugin
|
|
7
|
+
setting so a user running on a non-default port only has to set it once.
|
|
8
|
+
]]
|
|
9
|
+
|
|
10
|
+
local Config = {}
|
|
11
|
+
|
|
12
|
+
Config.PLUGIN_VERSION = "0.8.4"
|
|
13
|
+
|
|
14
|
+
-- Fingerprint of plugin/src, stamped in by scripts/build-plugin.mjs. The server
|
|
15
|
+
-- computes the same hash from its own copy of the sources and compares, so a
|
|
16
|
+
-- plugin left running from an older build is reported rather than silently
|
|
17
|
+
-- answering with stale handlers. Stays "dev" when the tree is loaded unbuilt.
|
|
18
|
+
Config.BUILD_ID = "dev"
|
|
19
|
+
Config.PROTOCOL_VERSION = 1
|
|
20
|
+
Config.DEFAULT_PORT = 44755
|
|
21
|
+
|
|
22
|
+
-- Header the bridge requires on every request. A web page cannot set it
|
|
23
|
+
-- cross-origin without a preflight the bridge never answers, which is what
|
|
24
|
+
-- keeps a malicious site from driving Studio through the loopback port.
|
|
25
|
+
Config.CLIENT_HEADER = "x-roblox-studio-mcp"
|
|
26
|
+
|
|
27
|
+
-- How long to wait before retrying after the stream drops. Studio closes SSE
|
|
28
|
+
-- connections at the 30 minute mark, so reconnects are routine, not exceptional.
|
|
29
|
+
Config.RECONNECT_DELAY = 1
|
|
30
|
+
Config.MAX_RECONNECT_DELAY = 30
|
|
31
|
+
|
|
32
|
+
-- How long a connection has to last before it counts as having worked, rather
|
|
33
|
+
-- than as one more failure to back off from. Comfortably longer than a failed
|
|
34
|
+
-- handshake against a dead port, which resolves in milliseconds, and far shorter
|
|
35
|
+
-- than any connection that carried a single command.
|
|
36
|
+
Config.HEALTHY_CONNECTION = 10
|
|
37
|
+
|
|
38
|
+
-- How long a healthy long-poll session runs before standing aside so streaming
|
|
39
|
+
-- can be tried again. Long enough that a Studio which genuinely cannot stream
|
|
40
|
+
-- is not reconnecting constantly, short enough that a session downgraded by one
|
|
41
|
+
-- unlucky attempt does not spend the rest of its life slower than it should be.
|
|
42
|
+
Config.RESTREAM_INTERVAL = 60
|
|
43
|
+
|
|
44
|
+
local port: number? = nil
|
|
45
|
+
|
|
46
|
+
function Config.setPort(value: number)
|
|
47
|
+
port = value
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
function Config.getPort(): number
|
|
51
|
+
return port or Config.DEFAULT_PORT
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
function Config.baseUrl(): string
|
|
55
|
+
return string.format("http://127.0.0.1:%d", Config.getPort())
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
function Config.headers(): { [string]: string }
|
|
59
|
+
return {
|
|
60
|
+
[Config.CLIENT_HEADER] = tostring(Config.PROTOCOL_VERSION),
|
|
61
|
+
["Content-Type"] = "application/json",
|
|
62
|
+
}
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
return Config
|
package/plugin/src/Console.luau
CHANGED
|
@@ -1870,6 +1870,11 @@ function Console.setPromptBusy(busy: boolean)
|
|
|
1870
1870
|
Visuals.setThinking(busy)
|
|
1871
1871
|
end
|
|
1872
1872
|
|
|
1873
|
+
-- Whether the prompt row invites sentences. See `chat` in Commands.
|
|
1874
|
+
function Console.setPromptChat(enabled: boolean)
|
|
1875
|
+
Prompt.setChat(enabled)
|
|
1876
|
+
end
|
|
1877
|
+
|
|
1873
1878
|
--[[
|
|
1874
1879
|
Switches the whole panel to the active preset.
|
|
1875
1880
|
|
package/plugin/src/Prompt.luau
CHANGED
|
@@ -162,6 +162,10 @@ type Runtime = {
|
|
|
162
162
|
-- back returns it rather than an empty line.
|
|
163
163
|
draft: string,
|
|
164
164
|
busy: boolean,
|
|
165
|
+
-- Whether a line that is not a command goes to an agent. Off until the user
|
|
166
|
+
-- runs `chat on`; only used to word the placeholder, since `Commands` is what
|
|
167
|
+
-- actually refuses the line.
|
|
168
|
+
chat: boolean,
|
|
165
169
|
--[[
|
|
166
170
|
What is selected in Studio right now, already worded for display.
|
|
167
171
|
|
|
@@ -195,6 +199,7 @@ local runtime: Runtime = {
|
|
|
195
199
|
offset = 0,
|
|
196
200
|
draft = "",
|
|
197
201
|
busy = false,
|
|
202
|
+
chat = false,
|
|
198
203
|
selection = "",
|
|
199
204
|
complete = nil,
|
|
200
205
|
suggest = nil,
|
|
@@ -218,9 +223,12 @@ local function paintCaret()
|
|
|
218
223
|
end
|
|
219
224
|
|
|
220
225
|
local function placeholder(): string
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
226
|
+
if runtime.busy then
|
|
227
|
+
return "running -- type stop to cancel"
|
|
228
|
+
end
|
|
229
|
+
return if runtime.chat
|
|
230
|
+
then "type a command, or ask for something"
|
|
231
|
+
else "type a command -- `chat on` lets an agent answer"
|
|
224
232
|
end
|
|
225
233
|
|
|
226
234
|
--[[
|
|
@@ -903,6 +911,18 @@ function Prompt.setBusy(busy: boolean)
|
|
|
903
911
|
end
|
|
904
912
|
end
|
|
905
913
|
|
|
914
|
+
--[[
|
|
915
|
+
Reports whether sentences are answered, so the placeholder does not invite
|
|
916
|
+
a request the console is about to decline.
|
|
917
|
+
]]
|
|
918
|
+
function Prompt.setChat(enabled: boolean)
|
|
919
|
+
runtime.chat = enabled
|
|
920
|
+
local field = runtime.field
|
|
921
|
+
if field ~= nil then
|
|
922
|
+
field.PlaceholderText = placeholder()
|
|
923
|
+
end
|
|
924
|
+
end
|
|
925
|
+
|
|
906
926
|
--[[
|
|
907
927
|
Reports what Studio has selected, as a phrase rather than a list.
|
|
908
928
|
|
|
@@ -69,6 +69,8 @@ local Dispatch = require(script.Parent.Parent.Dispatch)
|
|
|
69
69
|
local Paths = require(script.Parent.Parent.Paths)
|
|
70
70
|
local ClientRelay = require(script.Parent.Parent.ClientRelay)
|
|
71
71
|
local RemoteTrace = require(script.Parent.Parent.RemoteTrace)
|
|
72
|
+
local ScriptEdit = require(script.Parent.Parent.ScriptEdit)
|
|
73
|
+
local TextEdit = require(script.Parent.Parent.TextEdit)
|
|
72
74
|
|
|
73
75
|
-- Snapshots are far heavier than log lines: each carries a stack and its
|
|
74
76
|
-- variables. A tight cap keeps a breakpoint inside a loop from exhausting memory
|
|
@@ -288,6 +290,9 @@ function Debug.set(params: { [string]: any }): { [string]: any }
|
|
|
288
290
|
|
|
289
291
|
local added: { { [string]: any } } = {}
|
|
290
292
|
local failed: { { [string]: any } } = {}
|
|
293
|
+
-- How many of `failed` were lines the script does not have, as opposed to
|
|
294
|
+
-- refusals from the debugger itself. See below.
|
|
295
|
+
local outside = 0
|
|
291
296
|
|
|
292
297
|
for _, item in requested :: { { [string]: any } } do
|
|
293
298
|
local target = Paths.resolve(item.path)
|
|
@@ -298,6 +303,31 @@ function Debug.set(params: { [string]: any }): { [string]: any }
|
|
|
298
303
|
)
|
|
299
304
|
end
|
|
300
305
|
|
|
306
|
+
--[[
|
|
307
|
+
A line the script does not have is knowable here, so it is refused here.
|
|
308
|
+
|
|
309
|
+
It used to go to `AddBreakpoint` like any other, which refuses it with
|
|
310
|
+
nothing to say -- and the refusal below then blamed the "Debugger Luau
|
|
311
|
+
API" beta, so a mistyped line number sent people off to change a Studio
|
|
312
|
+
setting that was already on.
|
|
313
|
+
]]
|
|
314
|
+
local wanted = tonumber(item.line)
|
|
315
|
+
local lineCount = #TextEdit.toLines(ScriptEdit.read(target :: LuaSourceContainer))
|
|
316
|
+
if wanted == nil or wanted < 1 or wanted > lineCount then
|
|
317
|
+
outside += 1
|
|
318
|
+
table.insert(failed, {
|
|
319
|
+
path = item.path,
|
|
320
|
+
line = wanted,
|
|
321
|
+
error = string.format(
|
|
322
|
+
"the script has %d line%s, so line %s does not exist",
|
|
323
|
+
lineCount,
|
|
324
|
+
if lineCount == 1 then "" else "s",
|
|
325
|
+
tostring(item.line)
|
|
326
|
+
),
|
|
327
|
+
})
|
|
328
|
+
continue
|
|
329
|
+
end
|
|
330
|
+
|
|
301
331
|
--[[
|
|
302
332
|
Capitalised keys, from Roblox's example -- `Line`, `Condition`,
|
|
303
333
|
`LogMessage`, `ContinueExecution`. Lowercase `line` was rejected.
|
|
@@ -372,6 +402,18 @@ function Debug.set(params: { [string]: any }): { [string]: any }
|
|
|
372
402
|
a user's script just to answer a status question. So the hint says what
|
|
373
403
|
to check first and what else it could be, and does not claim to know.
|
|
374
404
|
]]
|
|
405
|
+
if #added == 0 and outside > 0 and outside == #failed then
|
|
406
|
+
local reasons: { string } = {}
|
|
407
|
+
for _, entry in failed do
|
|
408
|
+
table.insert(reasons, string.format("%s: %s", tostring(entry.path), tostring(entry.error)))
|
|
409
|
+
end
|
|
410
|
+
Dispatch.fail(
|
|
411
|
+
"BAD_LINE",
|
|
412
|
+
string.format("No breakpoint was set: %s.", table.concat(reasons, "; ")),
|
|
413
|
+
"Read the script with `script_read` for its line numbers -- they shift after every edit."
|
|
414
|
+
)
|
|
415
|
+
end
|
|
416
|
+
|
|
375
417
|
if #added == 0 and #failed > 0 then
|
|
376
418
|
Dispatch.fail(
|
|
377
419
|
"NO_BREAKPOINTS_SET",
|
|
@@ -160,7 +160,11 @@ end)
|
|
|
160
160
|
report:FireServer(if ok then result else { ok = false, error = tostring(result), output = {}, milliseconds = 0 })
|
|
161
161
|
]==], { Timeout = timeout }, timeout + 5, function(relay)
|
|
162
162
|
-- These modules are required ONLY by the LocalScript, sharing the game's client VM.
|
|
163
|
-
|
|
163
|
+
-- Everything ExecRuntime requires has to be listed too: the plugin's own module
|
|
164
|
+
-- tree does not exist in the client, so `script.Parent.LogBuffer` finds only
|
|
165
|
+
-- what is cloned beside it. Leaving LogBuffer out made every client run fail
|
|
166
|
+
-- with "Requested module experienced an error while loading".
|
|
167
|
+
for _, name in { "ExecRuntime", "LogBuffer", "Serialize", "Paths", "Dispatch" } do
|
|
164
168
|
local copy = script.Parent.Parent[name]:Clone()
|
|
165
169
|
copy.Parent = relay
|
|
166
170
|
end
|
|
@@ -191,6 +191,24 @@ function Spatial.cast(params: { [string]: any }): { [string]: any }
|
|
|
191
191
|
end
|
|
192
192
|
local distance = tonumber(params.distance) or 100
|
|
193
193
|
direction = towards.Unit * distance
|
|
194
|
+
--[[
|
|
195
|
+
Checked below, once `direction` is settled: a zero `direction` has a NaN
|
|
196
|
+
`Unit`, so it only shows up as a NaN length by the time it gets there.
|
|
197
|
+
]]
|
|
198
|
+
end
|
|
199
|
+
|
|
200
|
+
--[[
|
|
201
|
+
A cast with no length is not a cast. `to` equal to `from`, a zero `direction`
|
|
202
|
+
(whose `Unit` is NaN) or a zero `distance` all end up here, and every shape
|
|
203
|
+
then "misses" -- reported as a clear line of sight, which is the opposite of
|
|
204
|
+
"nothing was checked".
|
|
205
|
+
]]
|
|
206
|
+
if direction.Magnitude == 0 or direction.Magnitude ~= direction.Magnitude then
|
|
207
|
+
Dispatch.fail(
|
|
208
|
+
"BAD_PARAMS",
|
|
209
|
+
"The cast has no length, so nothing was checked.",
|
|
210
|
+
"`to` is the same point as `from`, or `direction` or `distance` is zero. Give it somewhere to go."
|
|
211
|
+
)
|
|
194
212
|
end
|
|
195
213
|
|
|
196
214
|
local query = buildParams(params)
|
|
@@ -259,11 +277,27 @@ function Spatial.overlap(params: { [string]: any }): { [string]: any }
|
|
|
259
277
|
if region == "box" then
|
|
260
278
|
local centre = vector(params.at, "at")
|
|
261
279
|
local size = optionalVector(params.size, "size") or Vector3.new(4, 4, 4)
|
|
280
|
+
-- A box with no volume overlaps nothing by construction, which then reads
|
|
281
|
+
-- as "that space is clear" -- an answer to a question nobody asked.
|
|
282
|
+
if size.X <= 0 or size.Y <= 0 or size.Z <= 0 then
|
|
283
|
+
Dispatch.fail(
|
|
284
|
+
"BAD_PARAMS",
|
|
285
|
+
string.format("`size` is %s, which has no volume.", tostring(size)),
|
|
286
|
+
"Every side has to be greater than zero."
|
|
287
|
+
)
|
|
288
|
+
end
|
|
262
289
|
found = world:GetPartBoundsInBox(CFrame.new(centre), size, overlap)
|
|
263
290
|
about.at, about.size = Serialize.value(centre), Serialize.value(size)
|
|
264
291
|
elseif region == "radius" then
|
|
265
292
|
local centre = vector(params.at, "at")
|
|
266
293
|
local radius = tonumber(params.radius) or 4
|
|
294
|
+
if radius <= 0 then
|
|
295
|
+
Dispatch.fail(
|
|
296
|
+
"BAD_PARAMS",
|
|
297
|
+
string.format("`radius` is %s, which has no volume.", tostring(radius)),
|
|
298
|
+
"Give a radius greater than zero."
|
|
299
|
+
)
|
|
300
|
+
end
|
|
267
301
|
found = world:GetPartBoundsInRadius(centre, radius, overlap)
|
|
268
302
|
about.at, about.radius = Serialize.value(centre), radius
|
|
269
303
|
elseif region == "part" then
|
|
@@ -130,6 +130,16 @@ end
|
|
|
130
130
|
something smaller.
|
|
131
131
|
]]
|
|
132
132
|
local function guard(size: Vector3, what: string)
|
|
133
|
+
-- An empty extent is not a small fill, it is no fill: the engine raised
|
|
134
|
+
-- "Extents cannot be empty" from inside the recording, and that came back as
|
|
135
|
+
-- an unstructured HANDLER_ERROR with no hint which side was zero.
|
|
136
|
+
if size.X <= 0 or size.Y <= 0 or size.Z <= 0 then
|
|
137
|
+
Dispatch.fail(
|
|
138
|
+
"BAD_PARAMS",
|
|
139
|
+
string.format("%s has a size of %s, which is empty.", what, tostring(size)),
|
|
140
|
+
"Every side of the size has to be greater than zero."
|
|
141
|
+
)
|
|
142
|
+
end
|
|
133
143
|
local voxels = math.ceil(size.X / RESOLUTION)
|
|
134
144
|
* math.ceil(size.Y / RESOLUTION)
|
|
135
145
|
* math.ceil(size.Z / RESOLUTION)
|