rbxstudio-mcp 1.11.0 → 1.12.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/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Roblox Studio MCP Server
2
2
 
3
- MCP server for AI-powered Roblox Studio integration. 24 specialized tools for exploring projects, analyzing scripts, and performing bulk operations.
3
+ MCP server for AI-powered Roblox Studio integration. 28 specialized tools for exploring projects, analyzing scripts, and performing bulk operations. **Now with Claude Code-style script editing!**
4
4
 
5
5
  https://devforum.roblox.com/t/v180-roblox-studio-mcp-speed-up-your-workflow-by-letting-ai-read-paths-and-properties/3707071
6
6
 
@@ -183,6 +183,34 @@ graph TB
183
183
  - `undo` - Undo the last MCP operation in Studio's history
184
184
  - `redo` - Redo a previously undone operation
185
185
 
186
+ ### Claude Code-Style Script Editing (NEW in v1.12.0) ⭐
187
+ String-based script editing that works just like Claude Code's Edit tool - no more line number guessing!
188
+
189
+ - `edit_script` - **RECOMMENDED**: Find exact text and replace it, no line numbers needed. Auto-validates syntax and rejects broken code.
190
+ - `search_script` - Search for patterns within scripts (like grep), with optional context lines
191
+ - `get_script_function` - Extract a specific function by name with line numbers
192
+ - `find_and_replace_in_scripts` - Batch find & replace across multiple scripts
193
+
194
+ ```typescript
195
+ // Example: Safe string-based editing
196
+ edit_script({
197
+ instancePath: "game.ServerScriptService.Main",
198
+ old_string: "function onPlayerJoin()\n\tprint('hi')\nend",
199
+ new_string: "function onPlayerJoin(player)\n\tprint('Welcome', player.Name)\nend"
200
+ })
201
+ // If old_string doesn't match exactly → ERROR (safe failure)
202
+ // If syntax is broken → ERROR (edit rejected, original preserved)
203
+ // If it matches → clean replacement ✓
204
+ ```
205
+
206
+ **Why this is better:**
207
+ | Line-based (old) | String-based (v1.12.0) |
208
+ |---|---|
209
+ | "Edit lines 45-52" 🤞 | "Find this exact code" ✓ |
210
+ | Line numbers shift after edits | Matches the actual content |
211
+ | Can break `end` statements | Validates syntax before applying |
212
+ | Requires counting lines | Just copy the text to replace |
213
+
186
214
  > **Note:** All mutation tools (set_property, create_object, delete_object, etc.) are now automatically wrapped in ChangeHistoryService recordings, making every AI change undoable via Ctrl+Z in Studio or the `undo` tool.
187
215
 
188
216
  > Note: Previous tools removed: `get_file_content`, `get_file_properties`, `get_selection`, `get_dependencies`, `validate_references`. Use Rojo/Argon workflows instead.
package/dist/index.js CHANGED
@@ -27,7 +27,7 @@ class RobloxStudioMCPServer {
27
27
  constructor() {
28
28
  this.server = new Server({
29
29
  name: 'rbxstudio-mcp',
30
- version: '1.11.0',
30
+ version: '1.12.0',
31
31
  }, {
32
32
  capabilities: {
33
33
  tools: {},
@@ -701,6 +701,115 @@ class RobloxStudioMCPServer {
701
701
  required: ['instancePath', 'startLine', 'endLine']
702
702
  }
703
703
  },
704
+ // ============================================
705
+ // CLAUDE CODE-STYLE SCRIPT EDITING TOOLS
706
+ // ============================================
707
+ {
708
+ name: 'edit_script',
709
+ description: 'RECOMMENDED: String-based script editing like Claude Code\'s Edit tool. Find exact text and replace it - no line numbers needed! This is the safest and most reliable way to edit scripts. The edit will FAIL safely if old_string is not found or appears multiple times (unless replace_all is true). Always validates syntax after editing.',
710
+ inputSchema: {
711
+ type: 'object',
712
+ properties: {
713
+ instancePath: {
714
+ type: 'string',
715
+ description: 'Roblox instance path to the script (e.g., "game.ServerScriptService.MainScript")'
716
+ },
717
+ old_string: {
718
+ type: 'string',
719
+ description: 'The exact text to find and replace (must match exactly, including whitespace/indentation)'
720
+ },
721
+ new_string: {
722
+ type: 'string',
723
+ description: 'The text to replace it with (must be different from old_string)'
724
+ },
725
+ replace_all: {
726
+ type: 'boolean',
727
+ description: 'If true, replace ALL occurrences of old_string. If false (default), fails if old_string appears more than once.',
728
+ default: false
729
+ },
730
+ validate_after: {
731
+ type: 'boolean',
732
+ description: 'If true (default), validates the script syntax after editing and reverts if invalid.',
733
+ default: true
734
+ }
735
+ },
736
+ required: ['instancePath', 'old_string', 'new_string']
737
+ }
738
+ },
739
+ {
740
+ name: 'search_script',
741
+ description: 'Search for patterns within a script source code (like grep). Returns matching lines with line numbers and optional context.',
742
+ inputSchema: {
743
+ type: 'object',
744
+ properties: {
745
+ instancePath: {
746
+ type: 'string',
747
+ description: 'Roblox instance path to the script (e.g., "game.ServerScriptService.MainScript")'
748
+ },
749
+ pattern: {
750
+ type: 'string',
751
+ description: 'Search pattern (literal string or regex if use_regex is true)'
752
+ },
753
+ use_regex: {
754
+ type: 'boolean',
755
+ description: 'If true, treat pattern as a Lua regex pattern. Default false (literal match).',
756
+ default: false
757
+ },
758
+ context_lines: {
759
+ type: 'number',
760
+ description: 'Number of lines to show before and after each match (like grep -C). Default 0.',
761
+ default: 0
762
+ }
763
+ },
764
+ required: ['instancePath', 'pattern']
765
+ }
766
+ },
767
+ {
768
+ name: 'get_script_function',
769
+ description: 'Extract a specific function from a script by name. Returns the function source code with start/end line numbers. Perfect for editing just one function without affecting the rest of the script.',
770
+ inputSchema: {
771
+ type: 'object',
772
+ properties: {
773
+ instancePath: {
774
+ type: 'string',
775
+ description: 'Roblox instance path to the script (e.g., "game.ServerScriptService.MainScript")'
776
+ },
777
+ function_name: {
778
+ type: 'string',
779
+ description: 'Name of the function to extract (e.g., "onPlayerJoin", "handleDamage")'
780
+ }
781
+ },
782
+ required: ['instancePath', 'function_name']
783
+ }
784
+ },
785
+ {
786
+ name: 'find_and_replace_in_scripts',
787
+ description: 'Find and replace text across multiple scripts at once. Like edit_script but for batch operations. Validates all scripts after editing.',
788
+ inputSchema: {
789
+ type: 'object',
790
+ properties: {
791
+ paths: {
792
+ type: 'array',
793
+ items: { type: 'string' },
794
+ description: 'Array of script paths to search and replace in'
795
+ },
796
+ old_string: {
797
+ type: 'string',
798
+ description: 'The exact text to find and replace'
799
+ },
800
+ new_string: {
801
+ type: 'string',
802
+ description: 'The text to replace it with'
803
+ },
804
+ validate_after: {
805
+ type: 'boolean',
806
+ description: 'If true (default), validates syntax after each edit.',
807
+ default: true
808
+ }
809
+ },
810
+ required: ['paths', 'old_string', 'new_string']
811
+ }
812
+ },
704
813
  // Attribute Tools (for Roblox instance attributes)
705
814
  {
706
815
  name: 'get_attribute',
@@ -1056,13 +1165,22 @@ class RobloxStudioMCPServer {
1056
1165
  return await this.tools.getScriptSource(args?.instancePath, args?.startLine, args?.endLine);
1057
1166
  case 'set_script_source':
1058
1167
  return await this.tools.setScriptSource(args?.instancePath, args?.source);
1059
- // Partial Script Editing Tools
1168
+ // Partial Script Editing Tools (line-based - legacy)
1060
1169
  case 'edit_script_lines':
1061
1170
  return await this.tools.editScriptLines(args?.instancePath, args?.startLine, args?.endLine, args?.newContent);
1062
1171
  case 'insert_script_lines':
1063
1172
  return await this.tools.insertScriptLines(args?.instancePath, args?.afterLine, args?.newContent);
1064
1173
  case 'delete_script_lines':
1065
1174
  return await this.tools.deleteScriptLines(args?.instancePath, args?.startLine, args?.endLine);
1175
+ // Claude Code-Style Script Editing Tools (RECOMMENDED)
1176
+ case 'edit_script':
1177
+ return await this.tools.editScript(args?.instancePath, args?.old_string, args?.new_string, args?.replace_all ?? false, args?.validate_after ?? true);
1178
+ case 'search_script':
1179
+ return await this.tools.searchScript(args?.instancePath, args?.pattern, args?.use_regex ?? false, args?.context_lines ?? 0);
1180
+ case 'get_script_function':
1181
+ return await this.tools.getScriptFunction(args?.instancePath, args?.function_name);
1182
+ case 'find_and_replace_in_scripts':
1183
+ return await this.tools.findAndReplaceInScripts(args?.paths, args?.old_string, args?.new_string, args?.validate_after ?? true);
1066
1184
  // Attribute Tools
1067
1185
  case 'get_attribute':
1068
1186
  return await this.tools.getAttribute(args?.instancePath, args?.attributeName);
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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"}
@@ -191,6 +191,43 @@ export declare class RobloxStudioTools {
191
191
  text: string;
192
192
  }[];
193
193
  }>;
194
+ /**
195
+ * edit_script - String-based script editing like Claude Code's Edit tool
196
+ * Find exact text and replace it - no line numbers needed!
197
+ */
198
+ editScript(instancePath: string, oldString: string, newString: string, replaceAll?: boolean, validateAfter?: boolean): Promise<{
199
+ content: {
200
+ type: string;
201
+ text: string;
202
+ }[];
203
+ }>;
204
+ /**
205
+ * search_script - Search for patterns within a script (like grep)
206
+ */
207
+ searchScript(instancePath: string, pattern: string, useRegex?: boolean, contextLines?: number): Promise<{
208
+ content: {
209
+ type: string;
210
+ text: string;
211
+ }[];
212
+ }>;
213
+ /**
214
+ * get_script_function - Extract a specific function from a script by name
215
+ */
216
+ getScriptFunction(instancePath: string, functionName: string): Promise<{
217
+ content: {
218
+ type: string;
219
+ text: string;
220
+ }[];
221
+ }>;
222
+ /**
223
+ * find_and_replace_in_scripts - Find and replace across multiple scripts
224
+ */
225
+ findAndReplaceInScripts(paths: string[], oldString: string, newString: string, validateAfter?: boolean): Promise<{
226
+ content: {
227
+ type: string;
228
+ text: string;
229
+ }[];
230
+ }>;
194
231
  getAttribute(instancePath: string, attributeName: string): Promise<{
195
232
  content: {
196
233
  type: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
@@ -422,6 +422,109 @@ export class RobloxStudioTools {
422
422
  ]
423
423
  };
424
424
  }
425
+ // ============================================
426
+ // CLAUDE CODE-STYLE SCRIPT EDITING TOOLS
427
+ // ============================================
428
+ /**
429
+ * edit_script - String-based script editing like Claude Code's Edit tool
430
+ * Find exact text and replace it - no line numbers needed!
431
+ */
432
+ async editScript(instancePath, oldString, newString, replaceAll = false, validateAfter = true) {
433
+ if (!instancePath) {
434
+ throw new Error('Instance path is required for edit_script');
435
+ }
436
+ if (typeof oldString !== 'string') {
437
+ throw new Error('old_string is required for edit_script');
438
+ }
439
+ if (typeof newString !== 'string') {
440
+ throw new Error('new_string is required for edit_script');
441
+ }
442
+ if (oldString === newString) {
443
+ throw new Error('old_string and new_string must be different');
444
+ }
445
+ const response = await this.client.request('/api/edit-script', {
446
+ instancePath,
447
+ oldString,
448
+ newString,
449
+ replaceAll,
450
+ validateAfter
451
+ });
452
+ return {
453
+ content: [
454
+ {
455
+ type: 'text',
456
+ text: JSON.stringify(response, null, 2)
457
+ }
458
+ ]
459
+ };
460
+ }
461
+ /**
462
+ * search_script - Search for patterns within a script (like grep)
463
+ */
464
+ async searchScript(instancePath, pattern, useRegex = false, contextLines = 0) {
465
+ if (!instancePath || !pattern) {
466
+ throw new Error('Instance path and pattern are required for search_script');
467
+ }
468
+ const response = await this.client.request('/api/search-script', {
469
+ instancePath,
470
+ pattern,
471
+ useRegex,
472
+ contextLines
473
+ });
474
+ return {
475
+ content: [
476
+ {
477
+ type: 'text',
478
+ text: JSON.stringify(response, null, 2)
479
+ }
480
+ ]
481
+ };
482
+ }
483
+ /**
484
+ * get_script_function - Extract a specific function from a script by name
485
+ */
486
+ async getScriptFunction(instancePath, functionName) {
487
+ if (!instancePath || !functionName) {
488
+ throw new Error('Instance path and function name are required for get_script_function');
489
+ }
490
+ const response = await this.client.request('/api/get-script-function', {
491
+ instancePath,
492
+ functionName
493
+ });
494
+ return {
495
+ content: [
496
+ {
497
+ type: 'text',
498
+ text: JSON.stringify(response, null, 2)
499
+ }
500
+ ]
501
+ };
502
+ }
503
+ /**
504
+ * find_and_replace_in_scripts - Find and replace across multiple scripts
505
+ */
506
+ async findAndReplaceInScripts(paths, oldString, newString, validateAfter = true) {
507
+ if (!paths || paths.length === 0) {
508
+ throw new Error('Paths array is required for find_and_replace_in_scripts');
509
+ }
510
+ if (typeof oldString !== 'string' || typeof newString !== 'string') {
511
+ throw new Error('old_string and new_string are required');
512
+ }
513
+ const response = await this.client.request('/api/find-and-replace-in-scripts', {
514
+ paths,
515
+ oldString,
516
+ newString,
517
+ validateAfter
518
+ });
519
+ return {
520
+ content: [
521
+ {
522
+ type: 'text',
523
+ text: JSON.stringify(response, null, 2)
524
+ }
525
+ ]
526
+ };
527
+ }
425
528
  // Attribute Tools
426
529
  async getAttribute(instancePath, attributeName) {
427
530
  if (!instancePath || !attributeName) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rbxstudio-mcp",
3
- "version": "1.11.0",
3
+ "version": "1.12.0",
4
4
  "description": "MCP Server for Roblox Studio Integration - Access Studio data, scripts, and objects through AI tools",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -17,6 +17,30 @@ end)
17
17
  local outputBuffer = {}
18
18
  local MAX_OUTPUT_BUFFER = 1000
19
19
 
20
+ -- Track action history for enhanced undo/redo
21
+ local actionHistory = {} -- Stack of actions that can be undone
22
+ local redoHistory = {} -- Stack of actions that can be redone
23
+ local MAX_ACTION_HISTORY = 100
24
+
25
+ -- Helper to log an action for undo tracking
26
+ local function logAction(actionType, target, summary, details)
27
+ -- Clear redo history when a new action is performed
28
+ redoHistory = {}
29
+
30
+ table.insert(actionHistory, {
31
+ action = actionType,
32
+ target = target,
33
+ summary = summary,
34
+ details = details or {},
35
+ timestamp = os.time()
36
+ })
37
+
38
+ -- Keep history from growing too large
39
+ if #actionHistory > MAX_ACTION_HISTORY then
40
+ table.remove(actionHistory, 1)
41
+ end
42
+ end
43
+
20
44
  -- Connect to LogService to capture output
21
45
  LogService.MessageOut:Connect(function(message, messageType)
22
46
  table.insert(outputBuffer, {
@@ -55,7 +79,7 @@ local screenGui = plugin:CreateDockWidgetPluginGuiAsync(
55
79
  "MCPServerInterface",
56
80
  DockWidgetPluginGuiInfo.new(Enum.InitialDockState.Float, false, false, 400, 500, 350, 450)
57
81
  )
58
- screenGui.Title = "MCP Server v1.11.0"
82
+ screenGui.Title = "MCP Server v1.12.0"
59
83
 
60
84
  local mainFrame = Instance.new("Frame")
61
85
  mainFrame.Size = UDim2.new(1, 0, 1, 0)
@@ -108,7 +132,7 @@ local versionLabel = Instance.new("TextLabel")
108
132
  versionLabel.Size = UDim2.new(1, 0, 0, 16)
109
133
  versionLabel.Position = UDim2.new(0, 0, 0, 32)
110
134
  versionLabel.BackgroundTransparency = 1
111
- versionLabel.Text = "AI Integration • v1.11.0"
135
+ versionLabel.Text = "AI Integration • v1.12.0"
112
136
  versionLabel.TextColor3 = Color3.fromRGB(191, 219, 254)
113
137
  versionLabel.TextScaled = false
114
138
  versionLabel.TextSize = 12
@@ -1465,6 +1489,11 @@ handlers.setProperty = function(requestData)
1465
1489
  end)
1466
1490
 
1467
1491
  if success and result ~= false then
1492
+ -- Log for undo tracking
1493
+ logAction("set_property", instancePath, propertyName .. " = " .. tostring(propertyValue), {
1494
+ propertyName = propertyName,
1495
+ newValue = propertyValue
1496
+ })
1468
1497
  return {
1469
1498
  success = true,
1470
1499
  instancePath = instancePath,
@@ -1515,11 +1544,17 @@ handlers.createObject = function(requestData)
1515
1544
  end)
1516
1545
 
1517
1546
  if success and newInstance then
1547
+ local newPath = getInstancePath(newInstance)
1548
+ -- Log for undo tracking
1549
+ logAction("create_object", newPath, "Created " .. className .. " '" .. newInstance.Name .. "'", {
1550
+ className = className,
1551
+ parent = parentPath
1552
+ })
1518
1553
  return {
1519
1554
  success = true,
1520
1555
  className = className,
1521
1556
  parent = parentPath,
1522
- instancePath = getInstancePath(newInstance),
1557
+ instancePath = newPath,
1523
1558
  name = newInstance.Name,
1524
1559
  message = "Object created successfully",
1525
1560
  }
@@ -1548,15 +1583,21 @@ handlers.deleteObject = function(requestData)
1548
1583
  return { error = "Cannot delete the game instance" }
1549
1584
  end
1550
1585
 
1586
+ local name = instance.Name
1587
+ local className = instance.ClassName
1588
+
1551
1589
  local success, result = pcall(function()
1552
- local name = instance.Name
1553
- local className = instance.ClassName
1554
1590
  instance:Destroy()
1555
1591
  ChangeHistoryService:SetWaypoint("Delete " .. className .. " (" .. name .. ")")
1556
1592
  return true
1557
1593
  end)
1558
1594
 
1559
1595
  if success then
1596
+ -- Log for undo tracking
1597
+ logAction("delete_object", instancePath, "Deleted " .. className .. " '" .. name .. "'", {
1598
+ className = className,
1599
+ name = name
1600
+ })
1560
1601
  return {
1561
1602
  success = true,
1562
1603
  instancePath = instancePath,
@@ -2459,6 +2500,10 @@ handlers.setScriptSource = function(requestData)
2459
2500
  end)
2460
2501
 
2461
2502
  if directSuccess then
2503
+ -- Log for undo tracking
2504
+ logAction("set_script_source", instancePath, "Script source replaced (" .. directResult.newSourceLength .. " chars)", {
2505
+ method = "direct"
2506
+ })
2462
2507
  return directResult
2463
2508
  end
2464
2509
 
@@ -2494,6 +2539,10 @@ handlers.setScriptSource = function(requestData)
2494
2539
  end)
2495
2540
 
2496
2541
  if replaceSuccess then
2542
+ -- Log for undo tracking
2543
+ logAction("set_script_source", replaceResult.instancePath, "Script replaced entirely", {
2544
+ method = "replace"
2545
+ })
2497
2546
  return replaceResult
2498
2547
  else
2499
2548
  return {
@@ -2736,6 +2785,509 @@ handlers.deleteScriptLines = function(requestData)
2736
2785
  end
2737
2786
  end
2738
2787
 
2788
+ -- ============================================
2789
+ -- CLAUDE CODE-STYLE SCRIPT EDITING TOOLS
2790
+ -- ============================================
2791
+
2792
+ -- Helper: Count occurrences of a substring
2793
+ local function countOccurrences(source, searchStr)
2794
+ local count = 0
2795
+ local start = 1
2796
+ while true do
2797
+ local pos = string.find(source, searchStr, start, true) -- plain search
2798
+ if pos then
2799
+ count = count + 1
2800
+ start = pos + 1
2801
+ else
2802
+ break
2803
+ end
2804
+ end
2805
+ return count
2806
+ end
2807
+
2808
+ -- Helper: Simple Lua syntax validation (checks for balanced blocks)
2809
+ local function validateLuaSyntax(source)
2810
+ local errors = {}
2811
+
2812
+ -- Check for balanced keywords
2813
+ local blockStarters = { "function", "if", "for", "while", "do", "repeat" }
2814
+ local openBlocks = 0
2815
+ local repeatBlocks = 0
2816
+
2817
+ -- Simple pattern-based checking for common errors
2818
+ for line in string.gmatch(source .. "\n", "([^\n]*)\n") do
2819
+ -- Count block starters
2820
+ if string.match(line, "^%s*function%s") or string.match(line, "=%s*function%s*%(") or string.match(line, "^%s*local%s+function%s") then
2821
+ openBlocks = openBlocks + 1
2822
+ end
2823
+ if string.match(line, "^%s*if%s") and not string.match(line, "%sthen%s+.+%send%s*$") then
2824
+ openBlocks = openBlocks + 1
2825
+ end
2826
+ if string.match(line, "^%s*for%s") and string.match(line, "%sdo%s*$") then
2827
+ openBlocks = openBlocks + 1
2828
+ end
2829
+ if string.match(line, "^%s*while%s") and string.match(line, "%sdo%s*$") then
2830
+ openBlocks = openBlocks + 1
2831
+ end
2832
+ if string.match(line, "^%s*repeat%s*$") then
2833
+ repeatBlocks = repeatBlocks + 1
2834
+ end
2835
+
2836
+ -- Count block enders
2837
+ if string.match(line, "^%s*end%s*$") or string.match(line, "^%s*end[%)%],;%s]") or string.match(line, "%send%s*$") then
2838
+ if not string.match(line, "^%s*%-%-") then -- Not a comment
2839
+ openBlocks = openBlocks - 1
2840
+ end
2841
+ end
2842
+ if string.match(line, "^%s*until%s") then
2843
+ repeatBlocks = repeatBlocks - 1
2844
+ end
2845
+ end
2846
+
2847
+ if openBlocks > 0 then
2848
+ table.insert(errors, "Missing " .. openBlocks .. " 'end' statement(s) - check your function/if/for/while blocks")
2849
+ elseif openBlocks < 0 then
2850
+ table.insert(errors, "Extra " .. math.abs(openBlocks) .. " 'end' statement(s) - you have more 'end' keywords than block openers")
2851
+ end
2852
+
2853
+ if repeatBlocks > 0 then
2854
+ table.insert(errors, "Missing " .. repeatBlocks .. " 'until' statement(s) for repeat blocks")
2855
+ elseif repeatBlocks < 0 then
2856
+ table.insert(errors, "Extra " .. math.abs(repeatBlocks) .. " 'until' statement(s)")
2857
+ end
2858
+
2859
+ -- Check for unclosed strings (simple check)
2860
+ local inString = false
2861
+ local stringChar = nil
2862
+ local lineNum = 0
2863
+ for line in string.gmatch(source .. "\n", "([^\n]*)\n") do
2864
+ lineNum = lineNum + 1
2865
+ -- Skip long strings and comments for now
2866
+ if not string.match(line, "%[%[") and not string.match(line, "%-%-") then
2867
+ for i = 1, #line do
2868
+ local char = string.sub(line, i, i)
2869
+ if not inString then
2870
+ if char == '"' or char == "'" then
2871
+ inString = true
2872
+ stringChar = char
2873
+ end
2874
+ else
2875
+ if char == stringChar and string.sub(line, i-1, i-1) ~= "\\" then
2876
+ inString = false
2877
+ stringChar = nil
2878
+ end
2879
+ end
2880
+ end
2881
+ end
2882
+ end
2883
+
2884
+ return #errors == 0, errors
2885
+ end
2886
+
2887
+ -- edit_script: String-based editing like Claude Code's Edit tool
2888
+ handlers.editScript = function(requestData)
2889
+ local instancePath = requestData.instancePath
2890
+ local oldString = requestData.oldString
2891
+ local newString = requestData.newString
2892
+ local replaceAll = requestData.replaceAll or false
2893
+ local validateAfter = requestData.validateAfter
2894
+ if validateAfter == nil then validateAfter = true end
2895
+
2896
+ if not instancePath then
2897
+ return { error = "Instance path is required" }
2898
+ end
2899
+ if not oldString or oldString == "" then
2900
+ return { error = "old_string is required and cannot be empty" }
2901
+ end
2902
+ if newString == nil then
2903
+ return { error = "new_string is required" }
2904
+ end
2905
+ if oldString == newString then
2906
+ return { error = "old_string and new_string must be different" }
2907
+ end
2908
+
2909
+ local instance = getInstanceByPath(instancePath)
2910
+ if not instance then
2911
+ return { error = "Instance not found: " .. instancePath }
2912
+ end
2913
+
2914
+ if not instance:IsA("LuaSourceContainer") then
2915
+ return { error = "Instance is not a script: " .. instance.ClassName }
2916
+ end
2917
+
2918
+ local success, result = pcall(function()
2919
+ local source = instance.Source
2920
+
2921
+ -- Normalize escape sequences that may have been double-escaped
2922
+ local searchStr = oldString:gsub("\\n", "\n"):gsub("\\t", "\t"):gsub("\\r", "\r"):gsub("\\\\", "\\")
2923
+ local replaceStr = newString:gsub("\\n", "\n"):gsub("\\t", "\t"):gsub("\\r", "\r"):gsub("\\\\", "\\")
2924
+
2925
+ -- Count occurrences
2926
+ local occurrences = countOccurrences(source, searchStr)
2927
+
2928
+ if occurrences == 0 then
2929
+ return {
2930
+ success = false,
2931
+ error = "old_string not found in script. Make sure the text matches exactly, including whitespace and indentation.",
2932
+ hint = "Tip: Use get_script_source first to see the exact content, then copy the text precisely."
2933
+ }
2934
+ end
2935
+
2936
+ if occurrences > 1 and not replaceAll then
2937
+ return {
2938
+ success = false,
2939
+ error = "old_string appears " .. occurrences .. " times in the script. Either provide more context to make it unique, or set replace_all=true to replace all occurrences.",
2940
+ occurrences = occurrences
2941
+ }
2942
+ end
2943
+
2944
+ -- Perform the replacement
2945
+ local newSource
2946
+ if replaceAll then
2947
+ newSource = string.gsub(source, searchStr:gsub("([^%w])", "%%%1"), replaceStr) -- Escape pattern chars
2948
+ else
2949
+ -- Replace just the first occurrence
2950
+ local pos = string.find(source, searchStr, 1, true)
2951
+ newSource = string.sub(source, 1, pos - 1) .. replaceStr .. string.sub(source, pos + #searchStr)
2952
+ end
2953
+
2954
+ -- Validate syntax if requested
2955
+ if validateAfter then
2956
+ local isValid, syntaxErrors = validateLuaSyntax(newSource)
2957
+ if not isValid then
2958
+ return {
2959
+ success = false,
2960
+ error = "Edit would create invalid Lua syntax",
2961
+ syntaxErrors = syntaxErrors,
2962
+ hint = "The edit was NOT applied. Fix the syntax issues in new_string and try again."
2963
+ }
2964
+ end
2965
+ end
2966
+
2967
+ -- Apply the change
2968
+ ScriptEditorService:UpdateSourceAsync(instance, function(oldContent)
2969
+ return newSource
2970
+ end)
2971
+
2972
+ ChangeHistoryService:SetWaypoint("Edit script: " .. instance.Name)
2973
+
2974
+ -- Prepare summary for logging
2975
+ local shortOld = #searchStr > 30 and (string.sub(searchStr, 1, 30) .. "...") or searchStr
2976
+ local shortNew = #replaceStr > 30 and (string.sub(replaceStr, 1, 30) .. "...") or replaceStr
2977
+
2978
+ return {
2979
+ success = true,
2980
+ instancePath = instancePath,
2981
+ replacements = replaceAll and occurrences or 1,
2982
+ oldLength = #source,
2983
+ newLength = #newSource,
2984
+ validated = validateAfter,
2985
+ message = replaceAll
2986
+ and ("Replaced " .. occurrences .. " occurrence(s) successfully")
2987
+ or "Edit applied successfully",
2988
+ _logSummary = shortOld:gsub("\n", "\\n") .. " → " .. shortNew:gsub("\n", "\\n")
2989
+ }
2990
+ end)
2991
+
2992
+ if success then
2993
+ if result.success then
2994
+ -- Log for undo tracking
2995
+ logAction("edit_script", instancePath, result._logSummary or "Script edited", {
2996
+ replacements = result.replacements
2997
+ })
2998
+ result._logSummary = nil -- Remove internal field
2999
+ end
3000
+ return result
3001
+ else
3002
+ return { error = "Failed to edit script: " .. tostring(result) }
3003
+ end
3004
+ end
3005
+
3006
+ -- search_script: Search for patterns within a script (like grep)
3007
+ handlers.searchScript = function(requestData)
3008
+ local instancePath = requestData.instancePath
3009
+ local pattern = requestData.pattern
3010
+ local useRegex = requestData.useRegex or false
3011
+ local contextLines = requestData.contextLines or 0
3012
+
3013
+ if not instancePath or not pattern then
3014
+ return { error = "Instance path and pattern are required" }
3015
+ end
3016
+
3017
+ local instance = getInstanceByPath(instancePath)
3018
+ if not instance then
3019
+ return { error = "Instance not found: " .. instancePath }
3020
+ end
3021
+
3022
+ if not instance:IsA("LuaSourceContainer") then
3023
+ return { error = "Instance is not a script: " .. instance.ClassName }
3024
+ end
3025
+
3026
+ local success, result = pcall(function()
3027
+ local source = instance.Source
3028
+ local lines, _ = splitLines(source)
3029
+ local matches = {}
3030
+
3031
+ for lineNum, line in ipairs(lines) do
3032
+ local found = false
3033
+ if useRegex then
3034
+ found = string.match(line, pattern) ~= nil
3035
+ else
3036
+ found = string.find(line, pattern, 1, true) ~= nil
3037
+ end
3038
+
3039
+ if found then
3040
+ local match = {
3041
+ lineNumber = lineNum,
3042
+ content = line,
3043
+ context = {}
3044
+ }
3045
+
3046
+ -- Add context lines
3047
+ if contextLines > 0 then
3048
+ for i = math.max(1, lineNum - contextLines), lineNum - 1 do
3049
+ table.insert(match.context, { lineNumber = i, content = lines[i], type = "before" })
3050
+ end
3051
+ for i = lineNum + 1, math.min(#lines, lineNum + contextLines) do
3052
+ table.insert(match.context, { lineNumber = i, content = lines[i], type = "after" })
3053
+ end
3054
+ end
3055
+
3056
+ table.insert(matches, match)
3057
+ end
3058
+ end
3059
+
3060
+ return {
3061
+ instancePath = instancePath,
3062
+ pattern = pattern,
3063
+ useRegex = useRegex,
3064
+ matches = matches,
3065
+ matchCount = #matches,
3066
+ totalLines = #lines
3067
+ }
3068
+ end)
3069
+
3070
+ if success then
3071
+ return result
3072
+ else
3073
+ return { error = "Failed to search script: " .. tostring(result) }
3074
+ end
3075
+ end
3076
+
3077
+ -- get_script_function: Extract a specific function by name
3078
+ handlers.getScriptFunction = function(requestData)
3079
+ local instancePath = requestData.instancePath
3080
+ local functionName = requestData.functionName
3081
+
3082
+ if not instancePath or not functionName then
3083
+ return { error = "Instance path and function name are required" }
3084
+ end
3085
+
3086
+ local instance = getInstanceByPath(instancePath)
3087
+ if not instance then
3088
+ return { error = "Instance not found: " .. instancePath }
3089
+ end
3090
+
3091
+ if not instance:IsA("LuaSourceContainer") then
3092
+ return { error = "Instance is not a script: " .. instance.ClassName }
3093
+ end
3094
+
3095
+ local success, result = pcall(function()
3096
+ local source = instance.Source
3097
+ local lines, _ = splitLines(source)
3098
+
3099
+ local functionStart = nil
3100
+ local functionEnd = nil
3101
+ local depth = 0
3102
+ local inFunction = false
3103
+
3104
+ -- Patterns to match function definitions
3105
+ local patterns = {
3106
+ "^%s*function%s+" .. functionName .. "%s*%(", -- function name(
3107
+ "^%s*local%s+function%s+" .. functionName .. "%s*%(", -- local function name(
3108
+ functionName .. "%s*=%s*function%s*%(", -- name = function(
3109
+ "local%s+" .. functionName .. "%s*=%s*function%s*%(" -- local name = function(
3110
+ }
3111
+
3112
+ for lineNum, line in ipairs(lines) do
3113
+ -- Check if this line starts the function we're looking for
3114
+ if not inFunction then
3115
+ for _, pat in ipairs(patterns) do
3116
+ if string.match(line, pat) then
3117
+ functionStart = lineNum
3118
+ inFunction = true
3119
+ depth = 1
3120
+ -- Check if function also ends on this line (one-liner)
3121
+ if string.match(line, "%send%s*$") or string.match(line, "%send%s*[%)%];,]") then
3122
+ functionEnd = lineNum
3123
+ inFunction = false
3124
+ end
3125
+ break
3126
+ end
3127
+ end
3128
+ else
3129
+ -- We're inside the function, track depth
3130
+ -- Count block openers
3131
+ if string.match(line, "^%s*function%s") or string.match(line, "=%s*function%s*%(") then
3132
+ depth = depth + 1
3133
+ end
3134
+ if string.match(line, "^%s*if%s") and string.match(line, "%sthen%s*$") then
3135
+ depth = depth + 1
3136
+ end
3137
+ if string.match(line, "^%s*for%s") and string.match(line, "%sdo%s*$") then
3138
+ depth = depth + 1
3139
+ end
3140
+ if string.match(line, "^%s*while%s") and string.match(line, "%sdo%s*$") then
3141
+ depth = depth + 1
3142
+ end
3143
+ if string.match(line, "^%s*do%s*$") then
3144
+ depth = depth + 1
3145
+ end
3146
+
3147
+ -- Count block closers
3148
+ if string.match(line, "^%s*end%s*$") or string.match(line, "^%s*end[%)%],;%s]") or string.match(line, "%send%s*$") then
3149
+ depth = depth - 1
3150
+ if depth == 0 then
3151
+ functionEnd = lineNum
3152
+ break
3153
+ end
3154
+ end
3155
+ end
3156
+ end
3157
+
3158
+ if not functionStart then
3159
+ return {
3160
+ success = false,
3161
+ error = "Function '" .. functionName .. "' not found in script",
3162
+ hint = "Check the function name spelling. Use search_script to find available functions."
3163
+ }
3164
+ end
3165
+
3166
+ if not functionEnd then
3167
+ return {
3168
+ success = false,
3169
+ error = "Could not find the end of function '" .. functionName .. "' - the function may be malformed",
3170
+ startLine = functionStart
3171
+ }
3172
+ end
3173
+
3174
+ -- Extract the function source
3175
+ local functionLines = {}
3176
+ for i = functionStart, functionEnd do
3177
+ table.insert(functionLines, lines[i])
3178
+ end
3179
+
3180
+ local functionSource = table.concat(functionLines, "\n")
3181
+
3182
+ -- Create numbered version
3183
+ local numberedLines = {}
3184
+ for i = functionStart, functionEnd do
3185
+ table.insert(numberedLines, string.format("%4d: %s", i, lines[i]))
3186
+ end
3187
+ local numberedSource = table.concat(numberedLines, "\n")
3188
+
3189
+ return {
3190
+ success = true,
3191
+ instancePath = instancePath,
3192
+ functionName = functionName,
3193
+ startLine = functionStart,
3194
+ endLine = functionEnd,
3195
+ lineCount = functionEnd - functionStart + 1,
3196
+ source = functionSource,
3197
+ numberedSource = numberedSource
3198
+ }
3199
+ end)
3200
+
3201
+ if success then
3202
+ return result
3203
+ else
3204
+ return { error = "Failed to get function: " .. tostring(result) }
3205
+ end
3206
+ end
3207
+
3208
+ -- find_and_replace_in_scripts: Batch replace across multiple scripts
3209
+ handlers.findAndReplaceInScripts = function(requestData)
3210
+ local paths = requestData.paths
3211
+ local oldString = requestData.oldString
3212
+ local newString = requestData.newString
3213
+ local validateAfter = requestData.validateAfter
3214
+ if validateAfter == nil then validateAfter = true end
3215
+
3216
+ if not paths or #paths == 0 then
3217
+ return { error = "Paths array is required" }
3218
+ end
3219
+ if not oldString or oldString == "" then
3220
+ return { error = "old_string is required" }
3221
+ end
3222
+ if newString == nil then
3223
+ return { error = "new_string is required" }
3224
+ end
3225
+
3226
+ local results = {}
3227
+ local successCount = 0
3228
+ local failCount = 0
3229
+ local skippedCount = 0
3230
+
3231
+ for _, path in ipairs(paths) do
3232
+ local instance = getInstanceByPath(path)
3233
+ if not instance then
3234
+ table.insert(results, { path = path, success = false, error = "Instance not found" })
3235
+ failCount = failCount + 1
3236
+ elseif not instance:IsA("LuaSourceContainer") then
3237
+ table.insert(results, { path = path, success = false, error = "Not a script" })
3238
+ failCount = failCount + 1
3239
+ else
3240
+ local source = instance.Source
3241
+ local searchStr = oldString:gsub("\\n", "\n"):gsub("\\t", "\t"):gsub("\\r", "\r"):gsub("\\\\", "\\")
3242
+ local replaceStr = newString:gsub("\\n", "\n"):gsub("\\t", "\t"):gsub("\\r", "\r"):gsub("\\\\", "\\")
3243
+
3244
+ local occurrences = countOccurrences(source, searchStr)
3245
+
3246
+ if occurrences == 0 then
3247
+ table.insert(results, { path = path, success = true, skipped = true, reason = "Pattern not found" })
3248
+ skippedCount = skippedCount + 1
3249
+ else
3250
+ local newSource = string.gsub(source, searchStr:gsub("([^%w])", "%%%1"), replaceStr)
3251
+
3252
+ if validateAfter then
3253
+ local isValid, syntaxErrors = validateLuaSyntax(newSource)
3254
+ if not isValid then
3255
+ table.insert(results, { path = path, success = false, error = "Would create invalid syntax", syntaxErrors = syntaxErrors })
3256
+ failCount = failCount + 1
3257
+ else
3258
+ pcall(function()
3259
+ ScriptEditorService:UpdateSourceAsync(instance, function() return newSource end)
3260
+ end)
3261
+ table.insert(results, { path = path, success = true, replacements = occurrences })
3262
+ successCount = successCount + 1
3263
+ end
3264
+ else
3265
+ pcall(function()
3266
+ ScriptEditorService:UpdateSourceAsync(instance, function() return newSource end)
3267
+ end)
3268
+ table.insert(results, { path = path, success = true, replacements = occurrences })
3269
+ successCount = successCount + 1
3270
+ end
3271
+ end
3272
+ end
3273
+ end
3274
+
3275
+ if successCount > 0 then
3276
+ ChangeHistoryService:SetWaypoint("Batch replace in " .. successCount .. " scripts")
3277
+ end
3278
+
3279
+ return {
3280
+ success = failCount == 0,
3281
+ results = results,
3282
+ summary = {
3283
+ total = #paths,
3284
+ successful = successCount,
3285
+ failed = failCount,
3286
+ skipped = skippedCount
3287
+ }
3288
+ }
3289
+ end
3290
+
2739
3291
  -- Attribute Tools: Get a single attribute
2740
3292
  handlers.getAttribute = function(requestData)
2741
3293
  local instancePath = requestData.instancePath
@@ -3412,15 +3964,31 @@ handlers.validateScript = function(requestData)
3412
3964
  end
3413
3965
 
3414
3966
  -- ============================================
3415
- -- UNDO/REDO HANDLERS
3967
+ -- UNDO/REDO HANDLERS (Enhanced with action tracking)
3416
3968
  -- ============================================
3417
3969
 
3418
3970
  handlers.undo = function(requestData)
3419
3971
  local success, result = pcall(function()
3972
+ -- Pop the last action from history
3973
+ local lastAction = nil
3974
+ if #actionHistory > 0 then
3975
+ lastAction = table.remove(actionHistory)
3976
+ -- Move it to redo history
3977
+ table.insert(redoHistory, lastAction)
3978
+ end
3979
+
3420
3980
  ChangeHistoryService:Undo()
3981
+
3421
3982
  return {
3422
3983
  success = true,
3423
- message = "Undo executed"
3984
+ undone = lastAction and (lastAction.action .. " " .. lastAction.target .. " (" .. lastAction.summary .. ")") or "Unknown action (possibly manual change)",
3985
+ action = lastAction and lastAction.action or nil,
3986
+ target = lastAction and lastAction.target or nil,
3987
+ summary = lastAction and lastAction.summary or nil,
3988
+ details = lastAction and lastAction.details or nil,
3989
+ remaining_undos = #actionHistory,
3990
+ available_redos = #redoHistory,
3991
+ message = lastAction and ("Undone: " .. lastAction.summary) or "Undo executed"
3424
3992
  }
3425
3993
  end)
3426
3994
 
@@ -3429,17 +3997,35 @@ handlers.undo = function(requestData)
3429
3997
  else
3430
3998
  return {
3431
3999
  success = false,
3432
- error = "Failed to undo: " .. tostring(result)
4000
+ error = "Failed to undo: " .. tostring(result),
4001
+ remaining_undos = #actionHistory,
4002
+ available_redos = #redoHistory
3433
4003
  }
3434
4004
  end
3435
4005
  end
3436
4006
 
3437
4007
  handlers.redo = function(requestData)
3438
4008
  local success, result = pcall(function()
4009
+ -- Pop the last undone action from redo history
4010
+ local redoneAction = nil
4011
+ if #redoHistory > 0 then
4012
+ redoneAction = table.remove(redoHistory)
4013
+ -- Move it back to action history
4014
+ table.insert(actionHistory, redoneAction)
4015
+ end
4016
+
3439
4017
  ChangeHistoryService:Redo()
4018
+
3440
4019
  return {
3441
4020
  success = true,
3442
- message = "Redo executed"
4021
+ redone = redoneAction and (redoneAction.action .. " " .. redoneAction.target .. " (" .. redoneAction.summary .. ")") or "Unknown action",
4022
+ action = redoneAction and redoneAction.action or nil,
4023
+ target = redoneAction and redoneAction.target or nil,
4024
+ summary = redoneAction and redoneAction.summary or nil,
4025
+ details = redoneAction and redoneAction.details or nil,
4026
+ remaining_undos = #actionHistory,
4027
+ available_redos = #redoHistory,
4028
+ message = redoneAction and ("Redone: " .. redoneAction.summary) or "Redo executed"
3443
4029
  }
3444
4030
  end)
3445
4031
 
@@ -3448,7 +4034,9 @@ handlers.redo = function(requestData)
3448
4034
  else
3449
4035
  return {
3450
4036
  success = false,
3451
- error = "Failed to redo: " .. tostring(result)
4037
+ error = "Failed to redo: " .. tostring(result),
4038
+ remaining_undos = #actionHistory,
4039
+ available_redos = #redoHistory
3452
4040
  }
3453
4041
  end
3454
4042
  end
@@ -3559,6 +4147,11 @@ endpointHandlers = {
3559
4147
  ["/api/edit-script-lines"] = handlers.editScriptLines,
3560
4148
  ["/api/insert-script-lines"] = handlers.insertScriptLines,
3561
4149
  ["/api/delete-script-lines"] = handlers.deleteScriptLines,
4150
+ -- Claude Code-style script editing tools
4151
+ ["/api/edit-script"] = handlers.editScript,
4152
+ ["/api/search-script"] = handlers.searchScript,
4153
+ ["/api/get-script-function"] = handlers.getScriptFunction,
4154
+ ["/api/find-and-replace-in-scripts"] = handlers.findAndReplaceInScripts,
3562
4155
  ["/api/get-attribute"] = handlers.getAttribute,
3563
4156
  ["/api/set-attribute"] = handlers.setAttribute,
3564
4157
  ["/api/get-attributes"] = handlers.getAttributes,
@@ -3573,6 +4166,8 @@ endpointHandlers = {
3573
4166
  ["/api/move-instance"] = handlers.moveInstance,
3574
4167
  ["/api/validate-script"] = handlers.validateScript,
3575
4168
  ["/api/insert-asset"] = handlers.insertAsset,
4169
+ ["/api/undo"] = handlers.undo,
4170
+ ["/api/redo"] = handlers.redo,
3576
4171
  }
3577
4172
 
3578
4173
  local function updateUIState()