dominus-cli 0.5.5 → 0.5.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -2995,184 +2995,6 @@ async function startMcpServer() {
2995
2995
  return { content: [{ type: "text", text: JSON.stringify(res.payload.tree, null, 2) }] };
2996
2996
  }
2997
2997
  );
2998
- mcp.tool(
2999
- "move_instance",
3000
- "Move (reparent) an instance to a new parent in Roblox Studio. Preserves the instance and all descendants \u2014 much better than delete + recreate. Sets a ChangeHistoryService waypoint so the move can be undone.",
3001
- {
3002
- path: z.string().describe('Full path of the instance to move (e.g. "Workspace.OldFolder.MyPart")'),
3003
- newParent: z.string().describe('Full path of the new parent (e.g. "Workspace.NewFolder")')
3004
- },
3005
- async ({ path: path5, newParent }) => {
3006
- assertConnected();
3007
- const res = await bridge.sendRequest(
3008
- CliMsg.MOVE_INSTANCE,
3009
- { path: path5, newParent }
3010
- );
3011
- return { content: [{ type: "text", text: JSON.stringify(res.payload, null, 2) }] };
3012
- }
3013
- );
3014
- mcp.tool(
3015
- "bulk_set_properties",
3016
- "Set properties on multiple instances at once in a single call. Much faster than calling set_properties repeatedly. Two modes:\n1. Explicit: provide targets array of {path, properties} objects\n2. Filter: provide root + className + properties to apply to all matches",
3017
- {
3018
- targets: z.array(z.object({
3019
- path: z.string(),
3020
- properties: z.record(z.unknown())
3021
- })).optional().describe("Array of {path, properties} for explicit mode"),
3022
- root: z.string().optional().describe("Root path to search under (filter mode)"),
3023
- className: z.string().optional().describe("Only apply to instances of this ClassName (filter mode)"),
3024
- properties: z.record(z.unknown()).optional().describe("Properties to set on all matches (filter mode)")
3025
- },
3026
- async (params) => {
3027
- assertConnected();
3028
- const res = await bridge.sendRequest(
3029
- CliMsg.BULK_SET_PROPERTIES,
3030
- {
3031
- targets: params.targets,
3032
- root: params.root,
3033
- className: params.className,
3034
- properties: params.properties
3035
- },
3036
- 1e3 * 60
3037
- );
3038
- return { content: [{ type: "text", text: JSON.stringify(res.payload, null, 2) }] };
3039
- }
3040
- );
3041
- mcp.tool(
3042
- "find_replace_scripts",
3043
- "Find and replace text across all scripts in the game (or under a root path). Supports plain text and Lua patterns. Use dryRun=true to preview changes without applying.",
3044
- {
3045
- find: z.string().describe("Text or Lua pattern to search for"),
3046
- replace: z.string().describe("Replacement text (supports Lua pattern captures like %1, %2)"),
3047
- root: z.string().optional().describe("Root path to limit search scope (optional)"),
3048
- usePattern: z.boolean().optional().default(false).describe("Treat find/replace as Lua patterns"),
3049
- dryRun: z.boolean().optional().default(false).describe("Preview matches without modifying scripts")
3050
- },
3051
- async (params) => {
3052
- assertConnected();
3053
- const res = await bridge.sendRequest(
3054
- CliMsg.FIND_REPLACE_SCRIPTS,
3055
- {
3056
- find: params.find,
3057
- replace: params.replace,
3058
- root: params.root,
3059
- usePattern: params.usePattern,
3060
- dryRun: params.dryRun
3061
- },
3062
- 1e3 * 60 * 5
3063
- );
3064
- return { content: [{ type: "text", text: JSON.stringify(res.payload, null, 2) }] };
3065
- }
3066
- );
3067
- mcp.tool(
3068
- "undo",
3069
- "Undo the last action in Roblox Studio (ChangeHistoryService). Works like Ctrl+Z. Use to roll back mistakes.",
3070
- {},
3071
- async () => {
3072
- assertConnected();
3073
- const res = await bridge.sendRequest(CliMsg.UNDO, {});
3074
- return { content: [{ type: "text", text: JSON.stringify(res.payload) }] };
3075
- }
3076
- );
3077
- mcp.tool(
3078
- "redo",
3079
- "Redo the last undone action in Roblox Studio (ChangeHistoryService). Works like Ctrl+Y.",
3080
- {},
3081
- async () => {
3082
- assertConnected();
3083
- const res = await bridge.sendRequest(CliMsg.REDO, {});
3084
- return { content: [{ type: "text", text: JSON.stringify(res.payload) }] };
3085
- }
3086
- );
3087
- mcp.tool(
3088
- "move_instance",
3089
- "Move (reparent) an instance to a new parent in Roblox Studio. Preserves the instance and all descendants \u2014 much better than delete + recreate. Sets a ChangeHistoryService waypoint so the move can be undone.",
3090
- {
3091
- path: z.string().describe('Full path of the instance to move (e.g. "Workspace.OldFolder.MyPart")'),
3092
- newParent: z.string().describe('Full path of the new parent (e.g. "Workspace.NewFolder")')
3093
- },
3094
- async ({ path: path5, newParent }) => {
3095
- assertConnected();
3096
- const res = await bridge.sendRequest(
3097
- CliMsg.MOVE_INSTANCE,
3098
- { path: path5, newParent }
3099
- );
3100
- return { content: [{ type: "text", text: JSON.stringify(res.payload, null, 2) }] };
3101
- }
3102
- );
3103
- mcp.tool(
3104
- "bulk_set_properties",
3105
- "Set properties on multiple instances at once in a single call. Much faster than calling set_properties repeatedly. Two modes:\n1. Explicit: provide targets array of {path, properties} objects\n2. Filter: provide root + className + properties to apply to all matches",
3106
- {
3107
- targets: z.array(z.object({
3108
- path: z.string(),
3109
- properties: z.record(z.unknown())
3110
- })).optional().describe("Array of {path, properties} for explicit mode"),
3111
- root: z.string().optional().describe("Root path to search under (filter mode)"),
3112
- className: z.string().optional().describe("Only apply to instances of this ClassName (filter mode)"),
3113
- properties: z.record(z.unknown()).optional().describe("Properties to set on all matches (filter mode)")
3114
- },
3115
- async (params) => {
3116
- assertConnected();
3117
- const res = await bridge.sendRequest(
3118
- CliMsg.BULK_SET_PROPERTIES,
3119
- {
3120
- targets: params.targets,
3121
- root: params.root,
3122
- className: params.className,
3123
- properties: params.properties
3124
- },
3125
- 1e3 * 60
3126
- );
3127
- return { content: [{ type: "text", text: JSON.stringify(res.payload, null, 2) }] };
3128
- }
3129
- );
3130
- mcp.tool(
3131
- "find_replace_scripts",
3132
- "Find and replace text across all scripts in the game (or under a root path). Supports plain text and Lua patterns. Use dryRun=true to preview changes without applying.",
3133
- {
3134
- find: z.string().describe("Text or Lua pattern to search for"),
3135
- replace: z.string().describe("Replacement text (supports Lua pattern captures like %1, %2)"),
3136
- root: z.string().optional().describe("Root path to limit search scope (optional)"),
3137
- usePattern: z.boolean().optional().default(false).describe("Treat find/replace as Lua patterns"),
3138
- dryRun: z.boolean().optional().default(false).describe("Preview matches without modifying scripts")
3139
- },
3140
- async (params) => {
3141
- assertConnected();
3142
- const res = await bridge.sendRequest(
3143
- CliMsg.FIND_REPLACE_SCRIPTS,
3144
- {
3145
- find: params.find,
3146
- replace: params.replace,
3147
- root: params.root,
3148
- usePattern: params.usePattern,
3149
- dryRun: params.dryRun
3150
- },
3151
- 1e3 * 60 * 5
3152
- );
3153
- return { content: [{ type: "text", text: JSON.stringify(res.payload, null, 2) }] };
3154
- }
3155
- );
3156
- mcp.tool(
3157
- "undo",
3158
- "Undo the last action in Roblox Studio (ChangeHistoryService). Works like Ctrl+Z. Use to roll back mistakes.",
3159
- {},
3160
- async () => {
3161
- assertConnected();
3162
- const res = await bridge.sendRequest(CliMsg.UNDO, {});
3163
- return { content: [{ type: "text", text: JSON.stringify(res.payload) }] };
3164
- }
3165
- );
3166
- mcp.tool(
3167
- "redo",
3168
- "Redo the last undone action in Roblox Studio (ChangeHistoryService). Works like Ctrl+Y.",
3169
- {},
3170
- async () => {
3171
- assertConnected();
3172
- const res = await bridge.sendRequest(CliMsg.REDO, {});
3173
- return { content: [{ type: "text", text: JSON.stringify(res.payload) }] };
3174
- }
3175
- );
3176
2998
  mcp.tool(
3177
2999
  "recall_memory",
3178
3000
  "Search persistent memory for facts about the current Roblox project",