sublime-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.
@@ -271,6 +271,41 @@
271
271
  }
272
272
  }
273
273
  },
274
+ {
275
+ "name": "claim_resource",
276
+ "description": "Announce intent to use a shared Sublime Text singleton (the native input panel, the Control Panel, or any other resource name agents agree on) for a short multi-step sequence, so other agents sharing this Sublime Text instance can avoid colliding with it. Advisory only -- nothing enforces it except callers checking it, the same trust level as every other tool here. Returns {error: 'busy', holder, note, expires_in} if already claimed; call release_resource as soon as the sequence finishes.",
277
+ "inputSchema": {
278
+ "type": "object",
279
+ "properties": {
280
+ "resource": {
281
+ "type": "string",
282
+ "description": "Name of the shared resource, e.g. 'input_panel' or 'control_panel'."
283
+ },
284
+ "holder": {
285
+ "type": "string",
286
+ "description": "A short, stable label identifying who is claiming it."
287
+ },
288
+ "note": {
289
+ "type": "string",
290
+ "description": "What the holder is doing, e.g. 'filling Goto Line'."
291
+ },
292
+ "ttl_seconds": {
293
+ "type": "number",
294
+ "default": 60,
295
+ "description": "Auto-expiry; max 600."
296
+ },
297
+ "force": {
298
+ "type": "boolean",
299
+ "default": false,
300
+ "description": "Take the claim even if already held (recovery only)."
301
+ }
302
+ },
303
+ "required": [
304
+ "resource",
305
+ "holder"
306
+ ]
307
+ }
308
+ },
274
309
  {
275
310
  "name": "clear_bookmarks",
276
311
  "description": "Clear all bookmarks in the active view.",
@@ -847,7 +882,7 @@
847
882
  },
848
883
  {
849
884
  "name": "drive_input_panel",
850
- "description": "Fill and/or submit or cancel Sublime's currently open input panel (window.show_input_panel), e.g. a package's 'Enter a path...' prompt.\nInput panels have no reachable View through normal APIs and Enter is a native keybinding, not a scriptable insert -- this reaches both, and works even when the panel belongs to a legacy Python 3.3-hosted package in a different plugin_host process, since it drives the panel through Sublime's own built-in commands rather than that package's code.\ntext (optional): replace the panel's current content before acting. action: 'submit' (default, fires on_done) or 'cancel' (fires on_cancel). Errors if no input panel is currently open.",
885
+ "description": "Fill and/or submit or cancel Sublime's currently open input panel (window.show_input_panel), e.g. a package's 'Enter a path...' prompt.\nInput panels have no reachable View through normal APIs and Enter is a native keybinding, not a scriptable insert -- this reaches both, and works even when the panel belongs to a legacy Python 3.3-hosted package in a different plugin_host process, since it drives the panel through Sublime's own built-in commands rather than that package's code.\ntext (optional): replace the panel's current content before acting. action: 'submit' (default, fires on_done) or 'cancel' (fires on_cancel). Errors if no input panel is currently open.\nIf several agents share this Sublime Text, call claim_resource with resource='input_panel' before opening the panel and release_resource when you are done, so another agent does not take the panel in between.",
851
886
  "inputSchema": {
852
887
  "type": "object",
853
888
  "properties": {
@@ -2044,6 +2079,14 @@
2044
2079
  "properties": {}
2045
2080
  }
2046
2081
  },
2082
+ {
2083
+ "name": "list_claims",
2084
+ "description": "List every currently live (non-expired) resource claim, so an agent can check whether a shared singleton is in use before starting its own multi-step sequence on it.",
2085
+ "inputSchema": {
2086
+ "type": "object",
2087
+ "properties": {}
2088
+ }
2089
+ },
2047
2090
  {
2048
2091
  "name": "list_native_windows",
2049
2092
  "description": "List the native OS windows, dialogs and menus of this Sublime Text process (Windows only): kind (dialog, menu, editor_window, window), title, hwnd, and for dialogs their buttons and message text. Works while a native dialog has BLOCKED Sublime's main thread (every other tool then times out); the result says whether the main thread is blocked and which tool blocked it.",
@@ -2973,6 +3016,25 @@
2973
3016
  "properties": {}
2974
3017
  }
2975
3018
  },
3019
+ {
3020
+ "name": "release_resource",
3021
+ "description": "Release a claim taken with claim_resource before its TTL expires. Only the current holder (same 'holder' value) can release it.",
3022
+ "inputSchema": {
3023
+ "type": "object",
3024
+ "properties": {
3025
+ "resource": {
3026
+ "type": "string"
3027
+ },
3028
+ "holder": {
3029
+ "type": "string"
3030
+ }
3031
+ },
3032
+ "required": [
3033
+ "resource",
3034
+ "holder"
3035
+ ]
3036
+ }
3037
+ },
2976
3038
  {
2977
3039
  "name": "remove_folder",
2978
3040
  "description": "Remove a folder from the current project by path.",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sublime-mcp",
3
- "version": "1.11.0",
3
+ "version": "1.12.0",
4
4
  "description": "MCP server for Sublime Text 4 — exposes editor state and editing tools to AI assistants via the Model Context Protocol.",
5
5
  "type": "module",
6
6
  "bin": {