summaryrefslogtreecommitdiffhomepage
path: root/src/context/tools/batch-move-file.json
diff options
context:
space:
mode:
Diffstat (limited to 'src/context/tools/batch-move-file.json')
-rw-r--r--src/context/tools/batch-move-file.json25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/context/tools/batch-move-file.json b/src/context/tools/batch-move-file.json
new file mode 100644
index 0000000..e0d6482
--- /dev/null
+++ b/src/context/tools/batch-move-file.json
@@ -0,0 +1,25 @@
+{
+ "id": "batch_move_file",
+ "label": "Batch Move/Rename Files",
+ "description": "Move or rename multiple files at once (requires approval).",
+ "friendlyName": "Batch Move Files",
+ "requiresApproval": true,
+ "batchOf": "move_file",
+ "definition": {
+ "type": "function",
+ "function": {
+ "name": "batch_move_file",
+ "description": "Move or rename multiple files in the Obsidian vault in a single call. All internal links are automatically updated for each file. If some operations fail, the rest continue and per-file results are reported. Target folders are created automatically. All file paths must be exact vault-relative paths (from the vault context or get_current_note). This action requires user approval for the entire batch.",
+ "parameters": {
+ "type": "object",
+ "required": ["operations"],
+ "properties": {
+ "operations": {
+ "type": "string",
+ "description": "A JSON array of move operations. Each object must have \"file_path\" (current path) and \"new_path\" (destination). Example: [{\"file_path\": \"old/note.md\", \"new_path\": \"new/note.md\"}, {\"file_path\": \"a.md\", \"new_path\": \"archive/a.md\"}]"
+ }
+ }
+ }
+ }
+ }
+}