rbxstudio-mcp 1.9.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.
- package/LICENSE +21 -0
- package/README.md +319 -0
- package/dist/__tests__/bridge-service.test.d.ts +2 -0
- package/dist/__tests__/bridge-service.test.d.ts.map +1 -0
- package/dist/__tests__/bridge-service.test.js +109 -0
- package/dist/__tests__/bridge-service.test.js.map +1 -0
- package/dist/__tests__/http-server.test.d.ts +2 -0
- package/dist/__tests__/http-server.test.d.ts.map +1 -0
- package/dist/__tests__/http-server.test.js +193 -0
- package/dist/__tests__/http-server.test.js.map +1 -0
- package/dist/__tests__/integration.test.d.ts +2 -0
- package/dist/__tests__/integration.test.d.ts.map +1 -0
- package/dist/__tests__/integration.test.js +182 -0
- package/dist/__tests__/integration.test.js.map +1 -0
- package/dist/__tests__/smoke.test.d.ts +2 -0
- package/dist/__tests__/smoke.test.d.ts.map +1 -0
- package/dist/__tests__/smoke.test.js +63 -0
- package/dist/__tests__/smoke.test.js.map +1 -0
- package/dist/bridge-service.d.ts +17 -0
- package/dist/bridge-service.d.ts.map +1 -0
- package/dist/bridge-service.js +77 -0
- package/dist/bridge-service.js.map +1 -0
- package/dist/http-server.d.ts +4 -0
- package/dist/http-server.d.ts.map +1 -0
- package/dist/http-server.js +290 -0
- package/dist/http-server.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1102 -0
- package/dist/index.js.map +1 -0
- package/dist/tools/index.d.ts +273 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +628 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/studio-client.d.ts +7 -0
- package/dist/tools/studio-client.d.ts.map +1 -0
- package/dist/tools/studio-client.js +19 -0
- package/dist/tools/studio-client.js.map +1 -0
- package/package.json +69 -0
- package/studio-plugin/INSTALLATION.md +150 -0
- package/studio-plugin/MCPPlugin.rbxmx +3253 -0
- package/studio-plugin/plugin.json +10 -0
- package/studio-plugin/plugin.luau +3584 -0
|
@@ -0,0 +1,628 @@
|
|
|
1
|
+
import { StudioHttpClient } from './studio-client.js';
|
|
2
|
+
export class RobloxStudioTools {
|
|
3
|
+
client;
|
|
4
|
+
constructor(bridge) {
|
|
5
|
+
this.client = new StudioHttpClient(bridge);
|
|
6
|
+
}
|
|
7
|
+
// File System Tools
|
|
8
|
+
async getFileTree(path = '') {
|
|
9
|
+
const response = await this.client.request('/api/file-tree', { path });
|
|
10
|
+
return {
|
|
11
|
+
content: [
|
|
12
|
+
{
|
|
13
|
+
type: 'text',
|
|
14
|
+
text: JSON.stringify(response, null, 2)
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
async searchFiles(query, searchType = 'name') {
|
|
20
|
+
const response = await this.client.request('/api/search-files', { query, searchType });
|
|
21
|
+
return {
|
|
22
|
+
content: [
|
|
23
|
+
{
|
|
24
|
+
type: 'text',
|
|
25
|
+
text: JSON.stringify(response, null, 2)
|
|
26
|
+
}
|
|
27
|
+
]
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
// Studio Context Tools
|
|
31
|
+
async getPlaceInfo() {
|
|
32
|
+
const response = await this.client.request('/api/place-info', {});
|
|
33
|
+
return {
|
|
34
|
+
content: [
|
|
35
|
+
{
|
|
36
|
+
type: 'text',
|
|
37
|
+
text: JSON.stringify(response, null, 2)
|
|
38
|
+
}
|
|
39
|
+
]
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
async getServices(serviceName) {
|
|
43
|
+
const response = await this.client.request('/api/services', { serviceName });
|
|
44
|
+
return {
|
|
45
|
+
content: [
|
|
46
|
+
{
|
|
47
|
+
type: 'text',
|
|
48
|
+
text: JSON.stringify(response, null, 2)
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
async searchObjects(query, searchType = 'name', propertyName) {
|
|
54
|
+
const response = await this.client.request('/api/search-objects', {
|
|
55
|
+
query,
|
|
56
|
+
searchType,
|
|
57
|
+
propertyName
|
|
58
|
+
});
|
|
59
|
+
return {
|
|
60
|
+
content: [
|
|
61
|
+
{
|
|
62
|
+
type: 'text',
|
|
63
|
+
text: JSON.stringify(response, null, 2)
|
|
64
|
+
}
|
|
65
|
+
]
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
// Property & Instance Tools
|
|
69
|
+
async getInstanceProperties(instancePath) {
|
|
70
|
+
if (!instancePath) {
|
|
71
|
+
throw new Error('Instance path is required for get_instance_properties');
|
|
72
|
+
}
|
|
73
|
+
const response = await this.client.request('/api/instance-properties', { instancePath });
|
|
74
|
+
return {
|
|
75
|
+
content: [
|
|
76
|
+
{
|
|
77
|
+
type: 'text',
|
|
78
|
+
text: JSON.stringify(response, null, 2)
|
|
79
|
+
}
|
|
80
|
+
]
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
async getInstanceChildren(instancePath) {
|
|
84
|
+
if (!instancePath) {
|
|
85
|
+
throw new Error('Instance path is required for get_instance_children');
|
|
86
|
+
}
|
|
87
|
+
const response = await this.client.request('/api/instance-children', { instancePath });
|
|
88
|
+
return {
|
|
89
|
+
content: [
|
|
90
|
+
{
|
|
91
|
+
type: 'text',
|
|
92
|
+
text: JSON.stringify(response, null, 2)
|
|
93
|
+
}
|
|
94
|
+
]
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
async searchByProperty(propertyName, propertyValue) {
|
|
98
|
+
if (!propertyName || !propertyValue) {
|
|
99
|
+
throw new Error('Property name and value are required for search_by_property');
|
|
100
|
+
}
|
|
101
|
+
const response = await this.client.request('/api/search-by-property', {
|
|
102
|
+
propertyName,
|
|
103
|
+
propertyValue
|
|
104
|
+
});
|
|
105
|
+
return {
|
|
106
|
+
content: [
|
|
107
|
+
{
|
|
108
|
+
type: 'text',
|
|
109
|
+
text: JSON.stringify(response, null, 2)
|
|
110
|
+
}
|
|
111
|
+
]
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
async getClassInfo(className) {
|
|
115
|
+
if (!className) {
|
|
116
|
+
throw new Error('Class name is required for get_class_info');
|
|
117
|
+
}
|
|
118
|
+
const response = await this.client.request('/api/class-info', { className });
|
|
119
|
+
return {
|
|
120
|
+
content: [
|
|
121
|
+
{
|
|
122
|
+
type: 'text',
|
|
123
|
+
text: JSON.stringify(response, null, 2)
|
|
124
|
+
}
|
|
125
|
+
]
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
// Project Tools
|
|
129
|
+
async getProjectStructure(path, maxDepth, scriptsOnly) {
|
|
130
|
+
const response = await this.client.request('/api/project-structure', {
|
|
131
|
+
path,
|
|
132
|
+
maxDepth,
|
|
133
|
+
scriptsOnly
|
|
134
|
+
});
|
|
135
|
+
return {
|
|
136
|
+
content: [
|
|
137
|
+
{
|
|
138
|
+
type: 'text',
|
|
139
|
+
text: JSON.stringify(response, null, 2)
|
|
140
|
+
}
|
|
141
|
+
]
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
// Property Modification Tools
|
|
145
|
+
async setProperty(instancePath, propertyName, propertyValue) {
|
|
146
|
+
if (!instancePath || !propertyName) {
|
|
147
|
+
throw new Error('Instance path and property name are required for set_property');
|
|
148
|
+
}
|
|
149
|
+
const response = await this.client.request('/api/set-property', {
|
|
150
|
+
instancePath,
|
|
151
|
+
propertyName,
|
|
152
|
+
propertyValue
|
|
153
|
+
});
|
|
154
|
+
return {
|
|
155
|
+
content: [
|
|
156
|
+
{
|
|
157
|
+
type: 'text',
|
|
158
|
+
text: JSON.stringify(response, null, 2)
|
|
159
|
+
}
|
|
160
|
+
]
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
async massSetProperty(paths, propertyName, propertyValue) {
|
|
164
|
+
if (!paths || paths.length === 0 || !propertyName) {
|
|
165
|
+
throw new Error('Paths array and property name are required for mass_set_property');
|
|
166
|
+
}
|
|
167
|
+
const response = await this.client.request('/api/mass-set-property', {
|
|
168
|
+
paths,
|
|
169
|
+
propertyName,
|
|
170
|
+
propertyValue
|
|
171
|
+
});
|
|
172
|
+
return {
|
|
173
|
+
content: [
|
|
174
|
+
{
|
|
175
|
+
type: 'text',
|
|
176
|
+
text: JSON.stringify(response, null, 2)
|
|
177
|
+
}
|
|
178
|
+
]
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
async massGetProperty(paths, propertyName) {
|
|
182
|
+
if (!paths || paths.length === 0 || !propertyName) {
|
|
183
|
+
throw new Error('Paths array and property name are required for mass_get_property');
|
|
184
|
+
}
|
|
185
|
+
const response = await this.client.request('/api/mass-get-property', {
|
|
186
|
+
paths,
|
|
187
|
+
propertyName
|
|
188
|
+
});
|
|
189
|
+
return {
|
|
190
|
+
content: [
|
|
191
|
+
{
|
|
192
|
+
type: 'text',
|
|
193
|
+
text: JSON.stringify(response, null, 2)
|
|
194
|
+
}
|
|
195
|
+
]
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
// Object Creation Tools
|
|
199
|
+
async createObject(className, parent, name) {
|
|
200
|
+
if (!className || !parent) {
|
|
201
|
+
throw new Error('Class name and parent are required for create_object');
|
|
202
|
+
}
|
|
203
|
+
const response = await this.client.request('/api/create-object', {
|
|
204
|
+
className,
|
|
205
|
+
parent,
|
|
206
|
+
name
|
|
207
|
+
});
|
|
208
|
+
return {
|
|
209
|
+
content: [
|
|
210
|
+
{
|
|
211
|
+
type: 'text',
|
|
212
|
+
text: JSON.stringify(response, null, 2)
|
|
213
|
+
}
|
|
214
|
+
]
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
async createObjectWithProperties(className, parent, name, properties) {
|
|
218
|
+
if (!className || !parent) {
|
|
219
|
+
throw new Error('Class name and parent are required for create_object_with_properties');
|
|
220
|
+
}
|
|
221
|
+
const response = await this.client.request('/api/create-object', {
|
|
222
|
+
className,
|
|
223
|
+
parent,
|
|
224
|
+
name,
|
|
225
|
+
properties
|
|
226
|
+
});
|
|
227
|
+
return {
|
|
228
|
+
content: [
|
|
229
|
+
{
|
|
230
|
+
type: 'text',
|
|
231
|
+
text: JSON.stringify(response, null, 2)
|
|
232
|
+
}
|
|
233
|
+
]
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
async massCreateObjects(objects) {
|
|
237
|
+
if (!objects || objects.length === 0) {
|
|
238
|
+
throw new Error('Objects array is required for mass_create_objects');
|
|
239
|
+
}
|
|
240
|
+
const response = await this.client.request('/api/mass-create-objects', { objects });
|
|
241
|
+
return {
|
|
242
|
+
content: [
|
|
243
|
+
{
|
|
244
|
+
type: 'text',
|
|
245
|
+
text: JSON.stringify(response, null, 2)
|
|
246
|
+
}
|
|
247
|
+
]
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
async massCreateObjectsWithProperties(objects) {
|
|
251
|
+
if (!objects || objects.length === 0) {
|
|
252
|
+
throw new Error('Objects array is required for mass_create_objects_with_properties');
|
|
253
|
+
}
|
|
254
|
+
const response = await this.client.request('/api/mass-create-objects-with-properties', { objects });
|
|
255
|
+
return {
|
|
256
|
+
content: [
|
|
257
|
+
{
|
|
258
|
+
type: 'text',
|
|
259
|
+
text: JSON.stringify(response, null, 2)
|
|
260
|
+
}
|
|
261
|
+
]
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
async deleteObject(instancePath) {
|
|
265
|
+
if (!instancePath) {
|
|
266
|
+
throw new Error('Instance path is required for delete_object');
|
|
267
|
+
}
|
|
268
|
+
const response = await this.client.request('/api/delete-object', { instancePath });
|
|
269
|
+
return {
|
|
270
|
+
content: [
|
|
271
|
+
{
|
|
272
|
+
type: 'text',
|
|
273
|
+
text: JSON.stringify(response, null, 2)
|
|
274
|
+
}
|
|
275
|
+
]
|
|
276
|
+
};
|
|
277
|
+
}
|
|
278
|
+
// Smart Duplication Tools
|
|
279
|
+
async smartDuplicate(instancePath, count, options) {
|
|
280
|
+
if (!instancePath || count < 1) {
|
|
281
|
+
throw new Error('Instance path and count > 0 are required for smart_duplicate');
|
|
282
|
+
}
|
|
283
|
+
const response = await this.client.request('/api/smart-duplicate', {
|
|
284
|
+
instancePath,
|
|
285
|
+
count,
|
|
286
|
+
options
|
|
287
|
+
});
|
|
288
|
+
return {
|
|
289
|
+
content: [
|
|
290
|
+
{
|
|
291
|
+
type: 'text',
|
|
292
|
+
text: JSON.stringify(response, null, 2)
|
|
293
|
+
}
|
|
294
|
+
]
|
|
295
|
+
};
|
|
296
|
+
}
|
|
297
|
+
async massDuplicate(duplications) {
|
|
298
|
+
if (!duplications || duplications.length === 0) {
|
|
299
|
+
throw new Error('Duplications array is required for mass_duplicate');
|
|
300
|
+
}
|
|
301
|
+
const response = await this.client.request('/api/mass-duplicate', { duplications });
|
|
302
|
+
return {
|
|
303
|
+
content: [
|
|
304
|
+
{
|
|
305
|
+
type: 'text',
|
|
306
|
+
text: JSON.stringify(response, null, 2)
|
|
307
|
+
}
|
|
308
|
+
]
|
|
309
|
+
};
|
|
310
|
+
}
|
|
311
|
+
// Calculated Property Tools
|
|
312
|
+
async setCalculatedProperty(paths, propertyName, formula, variables) {
|
|
313
|
+
if (!paths || paths.length === 0 || !propertyName || !formula) {
|
|
314
|
+
throw new Error('Paths, property name, and formula are required for set_calculated_property');
|
|
315
|
+
}
|
|
316
|
+
const response = await this.client.request('/api/set-calculated-property', {
|
|
317
|
+
paths,
|
|
318
|
+
propertyName,
|
|
319
|
+
formula,
|
|
320
|
+
variables
|
|
321
|
+
});
|
|
322
|
+
return {
|
|
323
|
+
content: [
|
|
324
|
+
{
|
|
325
|
+
type: 'text',
|
|
326
|
+
text: JSON.stringify(response, null, 2)
|
|
327
|
+
}
|
|
328
|
+
]
|
|
329
|
+
};
|
|
330
|
+
}
|
|
331
|
+
// Relative Property Tools
|
|
332
|
+
async setRelativeProperty(paths, propertyName, operation, value, component // For Vector3/UDim2 properties
|
|
333
|
+
) {
|
|
334
|
+
if (!paths || paths.length === 0 || !propertyName || !operation || value === undefined) {
|
|
335
|
+
throw new Error('Paths, property name, operation, and value are required for set_relative_property');
|
|
336
|
+
}
|
|
337
|
+
const response = await this.client.request('/api/set-relative-property', {
|
|
338
|
+
paths,
|
|
339
|
+
propertyName,
|
|
340
|
+
operation,
|
|
341
|
+
value,
|
|
342
|
+
component
|
|
343
|
+
});
|
|
344
|
+
return {
|
|
345
|
+
content: [
|
|
346
|
+
{
|
|
347
|
+
type: 'text',
|
|
348
|
+
text: JSON.stringify(response, null, 2)
|
|
349
|
+
}
|
|
350
|
+
]
|
|
351
|
+
};
|
|
352
|
+
}
|
|
353
|
+
// Script Management Tools
|
|
354
|
+
async getScriptSource(instancePath, startLine, endLine) {
|
|
355
|
+
if (!instancePath) {
|
|
356
|
+
throw new Error('Instance path is required for get_script_source');
|
|
357
|
+
}
|
|
358
|
+
const response = await this.client.request('/api/get-script-source', { instancePath, startLine, endLine });
|
|
359
|
+
return {
|
|
360
|
+
content: [
|
|
361
|
+
{
|
|
362
|
+
type: 'text',
|
|
363
|
+
text: JSON.stringify(response, null, 2)
|
|
364
|
+
}
|
|
365
|
+
]
|
|
366
|
+
};
|
|
367
|
+
}
|
|
368
|
+
async setScriptSource(instancePath, source) {
|
|
369
|
+
if (!instancePath || typeof source !== 'string') {
|
|
370
|
+
throw new Error('Instance path and source code string are required for set_script_source');
|
|
371
|
+
}
|
|
372
|
+
const response = await this.client.request('/api/set-script-source', { instancePath, source });
|
|
373
|
+
return {
|
|
374
|
+
content: [
|
|
375
|
+
{
|
|
376
|
+
type: 'text',
|
|
377
|
+
text: JSON.stringify(response, null, 2)
|
|
378
|
+
}
|
|
379
|
+
]
|
|
380
|
+
};
|
|
381
|
+
}
|
|
382
|
+
// Partial Script Editing Tools
|
|
383
|
+
async editScriptLines(instancePath, startLine, endLine, newContent) {
|
|
384
|
+
if (!instancePath || !startLine || !endLine || typeof newContent !== 'string') {
|
|
385
|
+
throw new Error('Instance path, startLine, endLine, and newContent are required for edit_script_lines');
|
|
386
|
+
}
|
|
387
|
+
const response = await this.client.request('/api/edit-script-lines', { instancePath, startLine, endLine, newContent });
|
|
388
|
+
return {
|
|
389
|
+
content: [
|
|
390
|
+
{
|
|
391
|
+
type: 'text',
|
|
392
|
+
text: JSON.stringify(response, null, 2)
|
|
393
|
+
}
|
|
394
|
+
]
|
|
395
|
+
};
|
|
396
|
+
}
|
|
397
|
+
async insertScriptLines(instancePath, afterLine, newContent) {
|
|
398
|
+
if (!instancePath || typeof newContent !== 'string') {
|
|
399
|
+
throw new Error('Instance path and newContent are required for insert_script_lines');
|
|
400
|
+
}
|
|
401
|
+
const response = await this.client.request('/api/insert-script-lines', { instancePath, afterLine: afterLine || 0, newContent });
|
|
402
|
+
return {
|
|
403
|
+
content: [
|
|
404
|
+
{
|
|
405
|
+
type: 'text',
|
|
406
|
+
text: JSON.stringify(response, null, 2)
|
|
407
|
+
}
|
|
408
|
+
]
|
|
409
|
+
};
|
|
410
|
+
}
|
|
411
|
+
async deleteScriptLines(instancePath, startLine, endLine) {
|
|
412
|
+
if (!instancePath || !startLine || !endLine) {
|
|
413
|
+
throw new Error('Instance path, startLine, and endLine are required for delete_script_lines');
|
|
414
|
+
}
|
|
415
|
+
const response = await this.client.request('/api/delete-script-lines', { instancePath, startLine, endLine });
|
|
416
|
+
return {
|
|
417
|
+
content: [
|
|
418
|
+
{
|
|
419
|
+
type: 'text',
|
|
420
|
+
text: JSON.stringify(response, null, 2)
|
|
421
|
+
}
|
|
422
|
+
]
|
|
423
|
+
};
|
|
424
|
+
}
|
|
425
|
+
// Attribute Tools
|
|
426
|
+
async getAttribute(instancePath, attributeName) {
|
|
427
|
+
if (!instancePath || !attributeName) {
|
|
428
|
+
throw new Error('Instance path and attribute name are required for get_attribute');
|
|
429
|
+
}
|
|
430
|
+
const response = await this.client.request('/api/get-attribute', { instancePath, attributeName });
|
|
431
|
+
return {
|
|
432
|
+
content: [
|
|
433
|
+
{
|
|
434
|
+
type: 'text',
|
|
435
|
+
text: JSON.stringify(response, null, 2)
|
|
436
|
+
}
|
|
437
|
+
]
|
|
438
|
+
};
|
|
439
|
+
}
|
|
440
|
+
async setAttribute(instancePath, attributeName, attributeValue, valueType) {
|
|
441
|
+
if (!instancePath || !attributeName) {
|
|
442
|
+
throw new Error('Instance path and attribute name are required for set_attribute');
|
|
443
|
+
}
|
|
444
|
+
const response = await this.client.request('/api/set-attribute', { instancePath, attributeName, attributeValue, valueType });
|
|
445
|
+
return {
|
|
446
|
+
content: [
|
|
447
|
+
{
|
|
448
|
+
type: 'text',
|
|
449
|
+
text: JSON.stringify(response, null, 2)
|
|
450
|
+
}
|
|
451
|
+
]
|
|
452
|
+
};
|
|
453
|
+
}
|
|
454
|
+
async getAttributes(instancePath) {
|
|
455
|
+
if (!instancePath) {
|
|
456
|
+
throw new Error('Instance path is required for get_attributes');
|
|
457
|
+
}
|
|
458
|
+
const response = await this.client.request('/api/get-attributes', { instancePath });
|
|
459
|
+
return {
|
|
460
|
+
content: [
|
|
461
|
+
{
|
|
462
|
+
type: 'text',
|
|
463
|
+
text: JSON.stringify(response, null, 2)
|
|
464
|
+
}
|
|
465
|
+
]
|
|
466
|
+
};
|
|
467
|
+
}
|
|
468
|
+
async deleteAttribute(instancePath, attributeName) {
|
|
469
|
+
if (!instancePath || !attributeName) {
|
|
470
|
+
throw new Error('Instance path and attribute name are required for delete_attribute');
|
|
471
|
+
}
|
|
472
|
+
const response = await this.client.request('/api/delete-attribute', { instancePath, attributeName });
|
|
473
|
+
return {
|
|
474
|
+
content: [
|
|
475
|
+
{
|
|
476
|
+
type: 'text',
|
|
477
|
+
text: JSON.stringify(response, null, 2)
|
|
478
|
+
}
|
|
479
|
+
]
|
|
480
|
+
};
|
|
481
|
+
}
|
|
482
|
+
// Tag Tools (CollectionService)
|
|
483
|
+
async getTags(instancePath) {
|
|
484
|
+
if (!instancePath) {
|
|
485
|
+
throw new Error('Instance path is required for get_tags');
|
|
486
|
+
}
|
|
487
|
+
const response = await this.client.request('/api/get-tags', { instancePath });
|
|
488
|
+
return {
|
|
489
|
+
content: [
|
|
490
|
+
{
|
|
491
|
+
type: 'text',
|
|
492
|
+
text: JSON.stringify(response, null, 2)
|
|
493
|
+
}
|
|
494
|
+
]
|
|
495
|
+
};
|
|
496
|
+
}
|
|
497
|
+
async addTag(instancePath, tagName) {
|
|
498
|
+
if (!instancePath || !tagName) {
|
|
499
|
+
throw new Error('Instance path and tag name are required for add_tag');
|
|
500
|
+
}
|
|
501
|
+
const response = await this.client.request('/api/add-tag', { instancePath, tagName });
|
|
502
|
+
return {
|
|
503
|
+
content: [
|
|
504
|
+
{
|
|
505
|
+
type: 'text',
|
|
506
|
+
text: JSON.stringify(response, null, 2)
|
|
507
|
+
}
|
|
508
|
+
]
|
|
509
|
+
};
|
|
510
|
+
}
|
|
511
|
+
async removeTag(instancePath, tagName) {
|
|
512
|
+
if (!instancePath || !tagName) {
|
|
513
|
+
throw new Error('Instance path and tag name are required for remove_tag');
|
|
514
|
+
}
|
|
515
|
+
const response = await this.client.request('/api/remove-tag', { instancePath, tagName });
|
|
516
|
+
return {
|
|
517
|
+
content: [
|
|
518
|
+
{
|
|
519
|
+
type: 'text',
|
|
520
|
+
text: JSON.stringify(response, null, 2)
|
|
521
|
+
}
|
|
522
|
+
]
|
|
523
|
+
};
|
|
524
|
+
}
|
|
525
|
+
async getTagged(tagName) {
|
|
526
|
+
if (!tagName) {
|
|
527
|
+
throw new Error('Tag name is required for get_tagged');
|
|
528
|
+
}
|
|
529
|
+
const response = await this.client.request('/api/get-tagged', { tagName });
|
|
530
|
+
return {
|
|
531
|
+
content: [
|
|
532
|
+
{
|
|
533
|
+
type: 'text',
|
|
534
|
+
text: JSON.stringify(response, null, 2)
|
|
535
|
+
}
|
|
536
|
+
]
|
|
537
|
+
};
|
|
538
|
+
}
|
|
539
|
+
async getSelection() {
|
|
540
|
+
const response = await this.client.request('/api/get-selection', {});
|
|
541
|
+
return {
|
|
542
|
+
content: [
|
|
543
|
+
{
|
|
544
|
+
type: 'text',
|
|
545
|
+
text: JSON.stringify(response, null, 2)
|
|
546
|
+
}
|
|
547
|
+
]
|
|
548
|
+
};
|
|
549
|
+
}
|
|
550
|
+
// ============================================
|
|
551
|
+
// OUTPUT CAPTURE TOOL
|
|
552
|
+
// ============================================
|
|
553
|
+
async getOutput(limit, since, messageTypes, clear) {
|
|
554
|
+
const response = await this.client.request('/api/get-output', {
|
|
555
|
+
limit,
|
|
556
|
+
since,
|
|
557
|
+
messageTypes,
|
|
558
|
+
clear
|
|
559
|
+
});
|
|
560
|
+
return {
|
|
561
|
+
content: [
|
|
562
|
+
{
|
|
563
|
+
type: 'text',
|
|
564
|
+
text: JSON.stringify(response, null, 2)
|
|
565
|
+
}
|
|
566
|
+
]
|
|
567
|
+
};
|
|
568
|
+
}
|
|
569
|
+
// ============================================
|
|
570
|
+
// INSTANCE MANIPULATION TOOLS (clone, move)
|
|
571
|
+
// ============================================
|
|
572
|
+
async cloneInstance(sourcePath, targetParent, newName) {
|
|
573
|
+
if (!sourcePath || !targetParent) {
|
|
574
|
+
throw new Error('Source path and target parent are required for clone_instance');
|
|
575
|
+
}
|
|
576
|
+
const response = await this.client.request('/api/clone-instance', {
|
|
577
|
+
sourcePath,
|
|
578
|
+
targetParent,
|
|
579
|
+
newName
|
|
580
|
+
});
|
|
581
|
+
return {
|
|
582
|
+
content: [
|
|
583
|
+
{
|
|
584
|
+
type: 'text',
|
|
585
|
+
text: JSON.stringify(response, null, 2)
|
|
586
|
+
}
|
|
587
|
+
]
|
|
588
|
+
};
|
|
589
|
+
}
|
|
590
|
+
async moveInstance(instancePath, newParent) {
|
|
591
|
+
if (!instancePath || !newParent) {
|
|
592
|
+
throw new Error('Instance path and new parent are required for move_instance');
|
|
593
|
+
}
|
|
594
|
+
const response = await this.client.request('/api/move-instance', {
|
|
595
|
+
instancePath,
|
|
596
|
+
newParent
|
|
597
|
+
});
|
|
598
|
+
return {
|
|
599
|
+
content: [
|
|
600
|
+
{
|
|
601
|
+
type: 'text',
|
|
602
|
+
text: JSON.stringify(response, null, 2)
|
|
603
|
+
}
|
|
604
|
+
]
|
|
605
|
+
};
|
|
606
|
+
}
|
|
607
|
+
// ============================================
|
|
608
|
+
// SCRIPT VALIDATION TOOL
|
|
609
|
+
// ============================================
|
|
610
|
+
async validateScript(instancePath, source) {
|
|
611
|
+
if (!instancePath && !source) {
|
|
612
|
+
throw new Error('Either instance path or source code is required for validate_script');
|
|
613
|
+
}
|
|
614
|
+
const response = await this.client.request('/api/validate-script', {
|
|
615
|
+
instancePath,
|
|
616
|
+
source
|
|
617
|
+
});
|
|
618
|
+
return {
|
|
619
|
+
content: [
|
|
620
|
+
{
|
|
621
|
+
type: 'text',
|
|
622
|
+
text: JSON.stringify(response, null, 2)
|
|
623
|
+
}
|
|
624
|
+
]
|
|
625
|
+
};
|
|
626
|
+
}
|
|
627
|
+
}
|
|
628
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"studio-client.d.ts","sourceRoot":"","sources":["../../src/tools/studio-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAgB;gBAElB,MAAM,EAAE,aAAa;IAI3B,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;CAazD"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export class StudioHttpClient {
|
|
2
|
+
bridge;
|
|
3
|
+
constructor(bridge) {
|
|
4
|
+
this.bridge = bridge;
|
|
5
|
+
}
|
|
6
|
+
async request(endpoint, data) {
|
|
7
|
+
try {
|
|
8
|
+
const response = await this.bridge.sendRequest(endpoint, data);
|
|
9
|
+
return response;
|
|
10
|
+
}
|
|
11
|
+
catch (error) {
|
|
12
|
+
if (error instanceof Error && error.message === 'Request timeout') {
|
|
13
|
+
throw new Error('Studio plugin connection timeout. Make sure the Roblox Studio plugin is running and activated.');
|
|
14
|
+
}
|
|
15
|
+
throw error;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=studio-client.js.map
|