@rethunk/mcp-multi-root-git 2.9.1 → 4.0.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/AGENTS.md +23 -19
- package/CHANGELOG.md +145 -39
- package/HUMANS.md +23 -42
- package/README.md +30 -13
- package/dist/repo-paths.js +57 -13
- package/dist/server/batch-commit-tool.js +203 -53
- package/dist/server/error-codes.js +31 -16
- package/dist/server/git-blame-tool.js +66 -19
- package/dist/server/git-branch-tool.js +151 -0
- package/dist/server/git-cherry-pick-tool.js +221 -12
- package/dist/server/git-conflicts-tool.js +230 -0
- package/dist/server/git-diff-summary-tool.js +39 -28
- package/dist/server/git-diff-tool.js +56 -31
- package/dist/server/git-grep-tool.js +188 -0
- package/dist/server/git-inventory-tool.js +30 -10
- package/dist/server/git-log-tool.js +37 -6
- package/dist/server/git-merge-tool.js +71 -13
- package/dist/server/git-parity-tool.js +15 -6
- package/dist/server/git-push-tool.js +4 -2
- package/dist/server/git-refs.js +48 -17
- package/dist/server/git-reset-soft-tool.js +1 -1
- package/dist/server/git-revert-tool.js +160 -0
- package/dist/server/git-show-tool.js +5 -10
- package/dist/server/git-stash-tool.js +112 -78
- package/dist/server/git-status-tool.js +2 -2
- package/dist/server/git-tag-tool.js +8 -13
- package/dist/server/git-worktree-tool.js +67 -59
- package/dist/server/git.js +116 -24
- package/dist/server/inventory.js +90 -32
- package/dist/server/list-presets-tool.js +2 -8
- package/dist/server/presets-resource.js +37 -20
- package/dist/server/presets.js +87 -15
- package/dist/server/roots.js +52 -79
- package/dist/server/schemas.js +18 -19
- package/dist/server/test-harness.js +11 -4
- package/dist/server/tool-parameter-schemas.js +47 -58
- package/dist/server/tools.js +36 -17
- package/dist/server.js +1 -1
- package/docs/install.md +52 -5
- package/docs/mcp-tools.md +472 -284
- package/package.json +6 -6
- package/schemas/batch_commit.json +5 -17
- package/schemas/git_blame.json +13 -11
- package/schemas/git_branch.json +54 -0
- package/schemas/git_cherry_pick.json +13 -15
- package/schemas/git_cherry_pick_continue.json +34 -0
- package/schemas/git_conflicts.json +38 -0
- package/schemas/git_diff.json +12 -10
- package/schemas/git_diff_summary.json +1 -15
- package/schemas/git_grep.json +85 -0
- package/schemas/git_inventory.json +32 -23
- package/schemas/git_log.json +20 -24
- package/schemas/git_merge.json +3 -15
- package/schemas/git_parity.json +13 -23
- package/schemas/git_push.json +1 -13
- package/schemas/git_reset_soft.json +1 -13
- package/schemas/git_revert.json +47 -0
- package/schemas/git_show.json +2 -8
- package/schemas/git_stash_apply.json +2 -8
- package/schemas/git_stash_push.json +47 -0
- package/schemas/git_status.json +13 -23
- package/schemas/git_tag.json +1 -7
- package/schemas/git_worktree_add.json +2 -14
- package/schemas/git_worktree_remove.json +2 -14
- package/schemas/index.json +28 -23
- package/schemas/list_presets.json +13 -23
- package/tool-parameters.schema.json +407 -423
- package/dist/server/git-branch-list-tool.js +0 -138
- package/dist/server/git-fetch-tool.js +0 -266
- package/dist/server/git-reflog-tool.js +0 -126
- package/schemas/git_branch_list.json +0 -36
- package/schemas/git_fetch.json +0 -52
- package/schemas/git_reflog.json +0 -44
- package/schemas/git_stash_list.json +0 -30
- package/schemas/git_worktree_list.json +0 -30
|
@@ -8,28 +8,19 @@
|
|
|
8
8
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
9
9
|
"type": "object",
|
|
10
10
|
"properties": {
|
|
11
|
-
"
|
|
12
|
-
"description": "
|
|
13
|
-
"
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
"type": "boolean"
|
|
25
|
-
},
|
|
26
|
-
"absoluteGitRoots": {
|
|
27
|
-
"description": "Absolute paths to git repo roots; use for sibling clones under a non-git parent.",
|
|
28
|
-
"maxItems": 256,
|
|
29
|
-
"type": "array",
|
|
30
|
-
"items": {
|
|
31
|
-
"type": "string"
|
|
32
|
-
}
|
|
11
|
+
"root": {
|
|
12
|
+
"description": "Repo path, array of paths, or \"*\" for all MCP roots.",
|
|
13
|
+
"anyOf": [
|
|
14
|
+
{
|
|
15
|
+
"type": "string"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"type": "array",
|
|
19
|
+
"items": {
|
|
20
|
+
"type": "string"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
]
|
|
33
24
|
},
|
|
34
25
|
"format": {
|
|
35
26
|
"default": "markdown",
|
|
@@ -45,7 +36,6 @@
|
|
|
45
36
|
}
|
|
46
37
|
},
|
|
47
38
|
"required": [
|
|
48
|
-
"allWorkspaceRoots",
|
|
49
39
|
"format",
|
|
50
40
|
"includeSubmodules"
|
|
51
41
|
],
|
|
@@ -55,28 +45,19 @@
|
|
|
55
45
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
56
46
|
"type": "object",
|
|
57
47
|
"properties": {
|
|
58
|
-
"
|
|
59
|
-
"description": "
|
|
60
|
-
"
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
"type": "boolean"
|
|
72
|
-
},
|
|
73
|
-
"absoluteGitRoots": {
|
|
74
|
-
"description": "Absolute paths to git repo roots; use for sibling clones under a non-git parent.",
|
|
75
|
-
"maxItems": 256,
|
|
76
|
-
"type": "array",
|
|
77
|
-
"items": {
|
|
78
|
-
"type": "string"
|
|
79
|
-
}
|
|
48
|
+
"root": {
|
|
49
|
+
"description": "Repo path, array of paths, or \"*\" for all MCP roots.",
|
|
50
|
+
"anyOf": [
|
|
51
|
+
{
|
|
52
|
+
"type": "string"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"type": "array",
|
|
56
|
+
"items": {
|
|
57
|
+
"type": "string"
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
]
|
|
80
61
|
},
|
|
81
62
|
"format": {
|
|
82
63
|
"default": "markdown",
|
|
@@ -108,6 +89,25 @@
|
|
|
108
89
|
"description": "Pair with `remote`.",
|
|
109
90
|
"type": "string"
|
|
110
91
|
},
|
|
92
|
+
"compareRefs": {
|
|
93
|
+
"description": "Ahead/behind between two local refs (e.g. main vs a feature branch), independent of upstream tracking.",
|
|
94
|
+
"type": "object",
|
|
95
|
+
"properties": {
|
|
96
|
+
"left": {
|
|
97
|
+
"type": "string",
|
|
98
|
+
"description": "Base ref (ahead = commits in right not in left)."
|
|
99
|
+
},
|
|
100
|
+
"right": {
|
|
101
|
+
"type": "string",
|
|
102
|
+
"description": "Other ref (behind = commits in left not in right)."
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
"required": [
|
|
106
|
+
"left",
|
|
107
|
+
"right"
|
|
108
|
+
],
|
|
109
|
+
"additionalProperties": false
|
|
110
|
+
},
|
|
111
111
|
"maxRoots": {
|
|
112
112
|
"default": 64,
|
|
113
113
|
"type": "integer",
|
|
@@ -116,7 +116,6 @@
|
|
|
116
116
|
}
|
|
117
117
|
},
|
|
118
118
|
"required": [
|
|
119
|
-
"allWorkspaceRoots",
|
|
120
119
|
"format",
|
|
121
120
|
"presetMerge",
|
|
122
121
|
"maxRoots"
|
|
@@ -127,28 +126,19 @@
|
|
|
127
126
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
128
127
|
"type": "object",
|
|
129
128
|
"properties": {
|
|
130
|
-
"
|
|
131
|
-
"description": "
|
|
132
|
-
"
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
"type": "boolean"
|
|
144
|
-
},
|
|
145
|
-
"absoluteGitRoots": {
|
|
146
|
-
"description": "Absolute paths to git repo roots; use for sibling clones under a non-git parent.",
|
|
147
|
-
"maxItems": 256,
|
|
148
|
-
"type": "array",
|
|
149
|
-
"items": {
|
|
150
|
-
"type": "string"
|
|
151
|
-
}
|
|
129
|
+
"root": {
|
|
130
|
+
"description": "Repo path, array of paths, or \"*\" for all MCP roots.",
|
|
131
|
+
"anyOf": [
|
|
132
|
+
{
|
|
133
|
+
"type": "string"
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"type": "array",
|
|
137
|
+
"items": {
|
|
138
|
+
"type": "string"
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
]
|
|
152
142
|
},
|
|
153
143
|
"format": {
|
|
154
144
|
"default": "markdown",
|
|
@@ -189,7 +179,6 @@
|
|
|
189
179
|
}
|
|
190
180
|
},
|
|
191
181
|
"required": [
|
|
192
|
-
"allWorkspaceRoots",
|
|
193
182
|
"format",
|
|
194
183
|
"presetMerge"
|
|
195
184
|
],
|
|
@@ -199,28 +188,19 @@
|
|
|
199
188
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
200
189
|
"type": "object",
|
|
201
190
|
"properties": {
|
|
202
|
-
"
|
|
203
|
-
"description": "
|
|
204
|
-
"
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
"type": "boolean"
|
|
216
|
-
},
|
|
217
|
-
"absoluteGitRoots": {
|
|
218
|
-
"description": "Absolute paths to git repo roots; use for sibling clones under a non-git parent.",
|
|
219
|
-
"maxItems": 256,
|
|
220
|
-
"type": "array",
|
|
221
|
-
"items": {
|
|
222
|
-
"type": "string"
|
|
223
|
-
}
|
|
191
|
+
"root": {
|
|
192
|
+
"description": "Repo path, array of paths, or \"*\" for all MCP roots.",
|
|
193
|
+
"anyOf": [
|
|
194
|
+
{
|
|
195
|
+
"type": "string"
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
"type": "array",
|
|
199
|
+
"items": {
|
|
200
|
+
"type": "string"
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
]
|
|
224
204
|
},
|
|
225
205
|
"format": {
|
|
226
206
|
"default": "markdown",
|
|
@@ -232,7 +212,6 @@
|
|
|
232
212
|
}
|
|
233
213
|
},
|
|
234
214
|
"required": [
|
|
235
|
-
"allWorkspaceRoots",
|
|
236
215
|
"format"
|
|
237
216
|
],
|
|
238
217
|
"additionalProperties": false
|
|
@@ -241,28 +220,19 @@
|
|
|
241
220
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
242
221
|
"type": "object",
|
|
243
222
|
"properties": {
|
|
244
|
-
"
|
|
245
|
-
"description": "
|
|
246
|
-
"
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
"type": "boolean"
|
|
258
|
-
},
|
|
259
|
-
"absoluteGitRoots": {
|
|
260
|
-
"description": "Absolute paths to git repo roots; use for sibling clones under a non-git parent.",
|
|
261
|
-
"maxItems": 256,
|
|
262
|
-
"type": "array",
|
|
263
|
-
"items": {
|
|
264
|
-
"type": "string"
|
|
265
|
-
}
|
|
223
|
+
"root": {
|
|
224
|
+
"description": "Repo path, array of paths, or \"*\" for all MCP roots.",
|
|
225
|
+
"anyOf": [
|
|
226
|
+
{
|
|
227
|
+
"type": "string"
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
"type": "array",
|
|
231
|
+
"items": {
|
|
232
|
+
"type": "string"
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
]
|
|
266
236
|
},
|
|
267
237
|
"format": {
|
|
268
238
|
"default": "markdown",
|
|
@@ -303,37 +273,111 @@
|
|
|
303
273
|
"branch": {
|
|
304
274
|
"description": "Ref/branch to log from. Default: HEAD.",
|
|
305
275
|
"type": "string"
|
|
276
|
+
},
|
|
277
|
+
"follow": {
|
|
278
|
+
"default": false,
|
|
279
|
+
"description": "Pass `git log --follow` for rename-aware history. Requires exactly one entry in `paths`.",
|
|
280
|
+
"type": "boolean"
|
|
306
281
|
}
|
|
307
282
|
},
|
|
308
283
|
"required": [
|
|
309
|
-
"allWorkspaceRoots",
|
|
310
284
|
"format",
|
|
311
|
-
"maxCommits"
|
|
285
|
+
"maxCommits",
|
|
286
|
+
"follow"
|
|
312
287
|
],
|
|
313
288
|
"additionalProperties": false
|
|
314
289
|
},
|
|
315
|
-
"
|
|
290
|
+
"git_grep": {
|
|
316
291
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
317
292
|
"type": "object",
|
|
318
293
|
"properties": {
|
|
319
|
-
"
|
|
320
|
-
"description": "
|
|
321
|
-
"
|
|
294
|
+
"root": {
|
|
295
|
+
"description": "Repo path, array of paths, or \"*\" for all MCP roots.",
|
|
296
|
+
"anyOf": [
|
|
297
|
+
{
|
|
298
|
+
"type": "string"
|
|
299
|
+
},
|
|
300
|
+
{
|
|
301
|
+
"type": "array",
|
|
302
|
+
"items": {
|
|
303
|
+
"type": "string"
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
]
|
|
322
307
|
},
|
|
323
|
-
"
|
|
324
|
-
"
|
|
325
|
-
"type": "
|
|
326
|
-
"
|
|
327
|
-
|
|
308
|
+
"format": {
|
|
309
|
+
"default": "markdown",
|
|
310
|
+
"type": "string",
|
|
311
|
+
"enum": [
|
|
312
|
+
"markdown",
|
|
313
|
+
"json"
|
|
314
|
+
]
|
|
328
315
|
},
|
|
329
|
-
"
|
|
330
|
-
"
|
|
331
|
-
"
|
|
316
|
+
"pickaxe": {
|
|
317
|
+
"type": "object",
|
|
318
|
+
"properties": {
|
|
319
|
+
"mode": {
|
|
320
|
+
"type": "string",
|
|
321
|
+
"enum": [
|
|
322
|
+
"S",
|
|
323
|
+
"G"
|
|
324
|
+
],
|
|
325
|
+
"description": "`S` = pickaxe string (`git log -S`); `G` = pickaxe regex (`git log -G`)."
|
|
326
|
+
},
|
|
327
|
+
"term": {
|
|
328
|
+
"type": "string",
|
|
329
|
+
"minLength": 1,
|
|
330
|
+
"maxLength": 500,
|
|
331
|
+
"description": "Search term / regex for pickaxe history."
|
|
332
|
+
}
|
|
333
|
+
},
|
|
334
|
+
"required": [
|
|
335
|
+
"mode",
|
|
336
|
+
"term"
|
|
337
|
+
],
|
|
338
|
+
"additionalProperties": false,
|
|
339
|
+
"description": "Pickaxe history search. Returns `commits[]` (sha + subject) per root."
|
|
340
|
+
},
|
|
341
|
+
"ref": {
|
|
342
|
+
"description": "Commit/branch/tag to use as the history tip. Must be a safe ref token.",
|
|
343
|
+
"type": "string"
|
|
344
|
+
},
|
|
345
|
+
"paths": {
|
|
346
|
+
"description": "Limit history to these paths (must resolve within the repo root).",
|
|
332
347
|
"type": "array",
|
|
333
348
|
"items": {
|
|
334
349
|
"type": "string"
|
|
335
350
|
}
|
|
336
351
|
},
|
|
352
|
+
"ignoreCase": {
|
|
353
|
+
"default": false,
|
|
354
|
+
"description": "Case-insensitive match (`-i`; affects `G` mode regexes).",
|
|
355
|
+
"type": "boolean"
|
|
356
|
+
},
|
|
357
|
+
"maxMatches": {
|
|
358
|
+
"default": 200,
|
|
359
|
+
"description": "Max commits per root (hard cap 1000, default 200).",
|
|
360
|
+
"type": "integer",
|
|
361
|
+
"minimum": 1,
|
|
362
|
+
"maximum": 1000
|
|
363
|
+
}
|
|
364
|
+
},
|
|
365
|
+
"required": [
|
|
366
|
+
"format",
|
|
367
|
+
"pickaxe",
|
|
368
|
+
"ignoreCase",
|
|
369
|
+
"maxMatches"
|
|
370
|
+
],
|
|
371
|
+
"additionalProperties": false
|
|
372
|
+
},
|
|
373
|
+
"git_diff_summary": {
|
|
374
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
375
|
+
"type": "object",
|
|
376
|
+
"properties": {
|
|
377
|
+
"workspaceRoot": {
|
|
378
|
+
"description": "Repo path. Default: first MCP root / cwd.",
|
|
379
|
+
"type": "string"
|
|
380
|
+
},
|
|
337
381
|
"format": {
|
|
338
382
|
"default": "markdown",
|
|
339
383
|
"type": "string",
|
|
@@ -384,15 +428,9 @@
|
|
|
384
428
|
"type": "object",
|
|
385
429
|
"properties": {
|
|
386
430
|
"workspaceRoot": {
|
|
387
|
-
"description": "
|
|
431
|
+
"description": "Repo path. Default: first MCP root / cwd.",
|
|
388
432
|
"type": "string"
|
|
389
433
|
},
|
|
390
|
-
"rootIndex": {
|
|
391
|
-
"description": "0-based index into MCP roots; ignored if workspaceRoot set.",
|
|
392
|
-
"type": "integer",
|
|
393
|
-
"minimum": 0,
|
|
394
|
-
"maximum": 9007199254740991
|
|
395
|
-
},
|
|
396
434
|
"format": {
|
|
397
435
|
"default": "markdown",
|
|
398
436
|
"type": "string",
|
|
@@ -402,11 +440,11 @@
|
|
|
402
440
|
]
|
|
403
441
|
},
|
|
404
442
|
"base": {
|
|
405
|
-
"description": "Base ref (e.g. \"main\"
|
|
443
|
+
"description": "Base ref (e.g. \"main\"). Ancestor notation is accepted (e.g. \"HEAD~3\", \"main^2\"). Omit for unstaged changes.",
|
|
406
444
|
"type": "string"
|
|
407
445
|
},
|
|
408
446
|
"head": {
|
|
409
|
-
"description": "Head ref (e.g. \"feature-branch\"). Defaults to HEAD. Used only when `base` is set.",
|
|
447
|
+
"description": "Head ref (e.g. \"feature-branch\"). Ancestor notation is accepted (e.g. \"HEAD~3\", \"main^2\"). Defaults to HEAD. Used only when `base` is set.",
|
|
410
448
|
"type": "string"
|
|
411
449
|
},
|
|
412
450
|
"path": {
|
|
@@ -430,11 +468,19 @@
|
|
|
430
468
|
"type": "integer",
|
|
431
469
|
"minimum": 0,
|
|
432
470
|
"maximum": 100
|
|
471
|
+
},
|
|
472
|
+
"maxBytes": {
|
|
473
|
+
"default": 512000,
|
|
474
|
+
"description": "Max UTF-8 bytes of diff text to return (default 512000). Oversized output is truncated with truncated:true.",
|
|
475
|
+
"type": "integer",
|
|
476
|
+
"minimum": 1024,
|
|
477
|
+
"maximum": 10000000
|
|
433
478
|
}
|
|
434
479
|
},
|
|
435
480
|
"required": [
|
|
436
481
|
"format",
|
|
437
|
-
"staged"
|
|
482
|
+
"staged",
|
|
483
|
+
"maxBytes"
|
|
438
484
|
],
|
|
439
485
|
"additionalProperties": false
|
|
440
486
|
},
|
|
@@ -443,15 +489,9 @@
|
|
|
443
489
|
"type": "object",
|
|
444
490
|
"properties": {
|
|
445
491
|
"workspaceRoot": {
|
|
446
|
-
"description": "
|
|
492
|
+
"description": "Repo path. Default: first MCP root / cwd.",
|
|
447
493
|
"type": "string"
|
|
448
494
|
},
|
|
449
|
-
"rootIndex": {
|
|
450
|
-
"description": "0-based index into MCP roots; ignored if workspaceRoot set.",
|
|
451
|
-
"type": "integer",
|
|
452
|
-
"minimum": 0,
|
|
453
|
-
"maximum": 9007199254740991
|
|
454
|
-
},
|
|
455
495
|
"format": {
|
|
456
496
|
"default": "markdown",
|
|
457
497
|
"type": "string",
|
|
@@ -463,7 +503,7 @@
|
|
|
463
503
|
"ref": {
|
|
464
504
|
"type": "string",
|
|
465
505
|
"minLength": 1,
|
|
466
|
-
"description": "Commit reference (SHA, branch, tag, or
|
|
506
|
+
"description": "Commit reference (SHA, branch, tag, or ancestor notation like \"HEAD~3\", \"main^2\")."
|
|
467
507
|
},
|
|
468
508
|
"path": {
|
|
469
509
|
"description": "Optional single file path to inspect at the ref. Merged with `paths` when both are provided.",
|
|
@@ -487,76 +527,14 @@
|
|
|
487
527
|
],
|
|
488
528
|
"additionalProperties": false
|
|
489
529
|
},
|
|
490
|
-
"
|
|
491
|
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
492
|
-
"type": "object",
|
|
493
|
-
"properties": {
|
|
494
|
-
"workspaceRoot": {
|
|
495
|
-
"description": "Highest-priority root override.",
|
|
496
|
-
"type": "string"
|
|
497
|
-
},
|
|
498
|
-
"rootIndex": {
|
|
499
|
-
"description": "0-based index into MCP roots; ignored if workspaceRoot set.",
|
|
500
|
-
"type": "integer",
|
|
501
|
-
"minimum": 0,
|
|
502
|
-
"maximum": 9007199254740991
|
|
503
|
-
},
|
|
504
|
-
"format": {
|
|
505
|
-
"default": "markdown",
|
|
506
|
-
"type": "string",
|
|
507
|
-
"enum": [
|
|
508
|
-
"markdown",
|
|
509
|
-
"json"
|
|
510
|
-
]
|
|
511
|
-
}
|
|
512
|
-
},
|
|
513
|
-
"required": [
|
|
514
|
-
"format"
|
|
515
|
-
],
|
|
516
|
-
"additionalProperties": false
|
|
517
|
-
},
|
|
518
|
-
"git_stash_list": {
|
|
530
|
+
"git_conflicts": {
|
|
519
531
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
520
532
|
"type": "object",
|
|
521
533
|
"properties": {
|
|
522
534
|
"workspaceRoot": {
|
|
523
|
-
"description": "
|
|
535
|
+
"description": "Repo path. Default: first MCP root / cwd.",
|
|
524
536
|
"type": "string"
|
|
525
537
|
},
|
|
526
|
-
"rootIndex": {
|
|
527
|
-
"description": "0-based index into MCP roots; ignored if workspaceRoot set.",
|
|
528
|
-
"type": "integer",
|
|
529
|
-
"minimum": 0,
|
|
530
|
-
"maximum": 9007199254740991
|
|
531
|
-
},
|
|
532
|
-
"format": {
|
|
533
|
-
"default": "markdown",
|
|
534
|
-
"type": "string",
|
|
535
|
-
"enum": [
|
|
536
|
-
"markdown",
|
|
537
|
-
"json"
|
|
538
|
-
]
|
|
539
|
-
}
|
|
540
|
-
},
|
|
541
|
-
"required": [
|
|
542
|
-
"format"
|
|
543
|
-
],
|
|
544
|
-
"additionalProperties": false
|
|
545
|
-
},
|
|
546
|
-
"git_fetch": {
|
|
547
|
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
548
|
-
"type": "object",
|
|
549
|
-
"properties": {
|
|
550
|
-
"workspaceRoot": {
|
|
551
|
-
"description": "Highest-priority root override.",
|
|
552
|
-
"type": "string"
|
|
553
|
-
},
|
|
554
|
-
"rootIndex": {
|
|
555
|
-
"description": "0-based index into MCP roots; ignored if workspaceRoot set.",
|
|
556
|
-
"type": "integer",
|
|
557
|
-
"minimum": 0,
|
|
558
|
-
"maximum": 9007199254740991
|
|
559
|
-
},
|
|
560
538
|
"format": {
|
|
561
539
|
"default": "markdown",
|
|
562
540
|
"type": "string",
|
|
@@ -565,31 +543,23 @@
|
|
|
565
543
|
"json"
|
|
566
544
|
]
|
|
567
545
|
},
|
|
568
|
-
"
|
|
569
|
-
"default":
|
|
570
|
-
"description": "
|
|
571
|
-
"type": "string"
|
|
572
|
-
},
|
|
573
|
-
"branch": {
|
|
574
|
-
"description": "If specified: fetch only this branch (e.g. 'main').",
|
|
575
|
-
"type": "string"
|
|
576
|
-
},
|
|
577
|
-
"prune": {
|
|
578
|
-
"default": false,
|
|
579
|
-
"description": "Pass --prune to remove deleted remote branches (default: false).",
|
|
546
|
+
"withHunks": {
|
|
547
|
+
"default": true,
|
|
548
|
+
"description": "Parse conflict-marker hunks per file. Set false for just the path list.",
|
|
580
549
|
"type": "boolean"
|
|
581
550
|
},
|
|
582
|
-
"
|
|
583
|
-
"default":
|
|
584
|
-
"description": "
|
|
585
|
-
"type": "
|
|
551
|
+
"maxLinesPerFile": {
|
|
552
|
+
"default": 200,
|
|
553
|
+
"description": "Cap on lines scanned per file before marking `truncated: true`.",
|
|
554
|
+
"type": "integer",
|
|
555
|
+
"minimum": 1,
|
|
556
|
+
"maximum": 2000
|
|
586
557
|
}
|
|
587
558
|
},
|
|
588
559
|
"required": [
|
|
589
560
|
"format",
|
|
590
|
-
"
|
|
591
|
-
"
|
|
592
|
-
"tags"
|
|
561
|
+
"withHunks",
|
|
562
|
+
"maxLinesPerFile"
|
|
593
563
|
],
|
|
594
564
|
"additionalProperties": false
|
|
595
565
|
},
|
|
@@ -598,15 +568,9 @@
|
|
|
598
568
|
"type": "object",
|
|
599
569
|
"properties": {
|
|
600
570
|
"workspaceRoot": {
|
|
601
|
-
"description": "
|
|
571
|
+
"description": "Repo path. Default: first MCP root / cwd.",
|
|
602
572
|
"type": "string"
|
|
603
573
|
},
|
|
604
|
-
"rootIndex": {
|
|
605
|
-
"description": "0-based index into MCP roots; ignored if workspaceRoot set.",
|
|
606
|
-
"type": "integer",
|
|
607
|
-
"minimum": 0,
|
|
608
|
-
"maximum": 9007199254740991
|
|
609
|
-
},
|
|
610
574
|
"format": {
|
|
611
575
|
"default": "markdown",
|
|
612
576
|
"type": "string",
|
|
@@ -621,101 +585,33 @@
|
|
|
621
585
|
"description": "Repo-relative path to the file to blame."
|
|
622
586
|
},
|
|
623
587
|
"ref": {
|
|
624
|
-
"description": "Optional commit-ish (SHA, branch, tag) to blame at.",
|
|
588
|
+
"description": "Optional commit-ish (SHA, branch, tag) to blame at. Ancestor notation is accepted (e.g. \"HEAD~3\", \"main^2\").",
|
|
625
589
|
"type": "string"
|
|
626
590
|
},
|
|
627
591
|
"startLine": {
|
|
628
592
|
"description": "First line of the range to blame (1-based). Requires endLine.",
|
|
629
593
|
"type": "integer",
|
|
630
594
|
"minimum": 1,
|
|
631
|
-
"maximum":
|
|
595
|
+
"maximum": 1000000
|
|
632
596
|
},
|
|
633
597
|
"endLine": {
|
|
634
598
|
"description": "Last line of the range to blame (1-based, inclusive). Requires startLine.",
|
|
635
599
|
"type": "integer",
|
|
636
600
|
"minimum": 1,
|
|
637
|
-
"maximum":
|
|
638
|
-
}
|
|
639
|
-
},
|
|
640
|
-
"required": [
|
|
641
|
-
"format",
|
|
642
|
-
"path"
|
|
643
|
-
],
|
|
644
|
-
"additionalProperties": false
|
|
645
|
-
},
|
|
646
|
-
"git_branch_list": {
|
|
647
|
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
648
|
-
"type": "object",
|
|
649
|
-
"properties": {
|
|
650
|
-
"workspaceRoot": {
|
|
651
|
-
"description": "Highest-priority root override.",
|
|
652
|
-
"type": "string"
|
|
653
|
-
},
|
|
654
|
-
"rootIndex": {
|
|
655
|
-
"description": "0-based index into MCP roots; ignored if workspaceRoot set.",
|
|
656
|
-
"type": "integer",
|
|
657
|
-
"minimum": 0,
|
|
658
|
-
"maximum": 9007199254740991
|
|
659
|
-
},
|
|
660
|
-
"format": {
|
|
661
|
-
"default": "markdown",
|
|
662
|
-
"type": "string",
|
|
663
|
-
"enum": [
|
|
664
|
-
"markdown",
|
|
665
|
-
"json"
|
|
666
|
-
]
|
|
667
|
-
},
|
|
668
|
-
"includeRemotes": {
|
|
669
|
-
"default": false,
|
|
670
|
-
"description": "Include remote-tracking branches from refs/remotes (symbolic origin/HEAD excluded).",
|
|
671
|
-
"type": "boolean"
|
|
672
|
-
}
|
|
673
|
-
},
|
|
674
|
-
"required": [
|
|
675
|
-
"format",
|
|
676
|
-
"includeRemotes"
|
|
677
|
-
],
|
|
678
|
-
"additionalProperties": false
|
|
679
|
-
},
|
|
680
|
-
"git_reflog": {
|
|
681
|
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
682
|
-
"type": "object",
|
|
683
|
-
"properties": {
|
|
684
|
-
"workspaceRoot": {
|
|
685
|
-
"description": "Highest-priority root override.",
|
|
686
|
-
"type": "string"
|
|
601
|
+
"maximum": 1000000
|
|
687
602
|
},
|
|
688
|
-
"
|
|
689
|
-
"
|
|
690
|
-
"
|
|
691
|
-
"minimum": 0,
|
|
692
|
-
"maximum": 9007199254740991
|
|
693
|
-
},
|
|
694
|
-
"format": {
|
|
695
|
-
"default": "markdown",
|
|
696
|
-
"type": "string",
|
|
697
|
-
"enum": [
|
|
698
|
-
"markdown",
|
|
699
|
-
"json"
|
|
700
|
-
]
|
|
701
|
-
},
|
|
702
|
-
"ref": {
|
|
703
|
-
"default": "HEAD",
|
|
704
|
-
"description": "Ref whose reflog to show (branch name, HEAD, etc.). Default: HEAD.",
|
|
705
|
-
"type": "string"
|
|
706
|
-
},
|
|
707
|
-
"maxEntries": {
|
|
708
|
-
"default": 30,
|
|
709
|
-
"description": "Maximum reflog entries to return (hard cap 200). Default 30.",
|
|
603
|
+
"maxLines": {
|
|
604
|
+
"default": 2000,
|
|
605
|
+
"description": "Max blamed lines to return. Default: 2000.",
|
|
710
606
|
"type": "integer",
|
|
711
607
|
"minimum": 1,
|
|
712
|
-
"maximum":
|
|
608
|
+
"maximum": 10000
|
|
713
609
|
}
|
|
714
610
|
},
|
|
715
611
|
"required": [
|
|
716
612
|
"format",
|
|
717
|
-
"
|
|
718
|
-
"
|
|
613
|
+
"path",
|
|
614
|
+
"maxLines"
|
|
719
615
|
],
|
|
720
616
|
"additionalProperties": false
|
|
721
617
|
},
|
|
@@ -724,20 +620,9 @@
|
|
|
724
620
|
"type": "object",
|
|
725
621
|
"properties": {
|
|
726
622
|
"workspaceRoot": {
|
|
727
|
-
"description": "
|
|
623
|
+
"description": "Repo path. Default: first MCP root / cwd.",
|
|
728
624
|
"type": "string"
|
|
729
625
|
},
|
|
730
|
-
"rootIndex": {
|
|
731
|
-
"description": "0-based index into MCP roots; ignored if workspaceRoot set.",
|
|
732
|
-
"type": "integer",
|
|
733
|
-
"minimum": 0,
|
|
734
|
-
"maximum": 9007199254740991
|
|
735
|
-
},
|
|
736
|
-
"allWorkspaceRoots": {
|
|
737
|
-
"default": false,
|
|
738
|
-
"description": "Fan out across all MCP roots.",
|
|
739
|
-
"type": "boolean"
|
|
740
|
-
},
|
|
741
626
|
"format": {
|
|
742
627
|
"default": "markdown",
|
|
743
628
|
"type": "string",
|
|
@@ -781,13 +666,13 @@
|
|
|
781
666
|
"from": {
|
|
782
667
|
"type": "integer",
|
|
783
668
|
"minimum": 1,
|
|
784
|
-
"maximum":
|
|
669
|
+
"maximum": 1000000,
|
|
785
670
|
"description": "Start line number (1-indexed)."
|
|
786
671
|
},
|
|
787
672
|
"to": {
|
|
788
673
|
"type": "integer",
|
|
789
674
|
"minimum": 1,
|
|
790
|
-
"maximum":
|
|
675
|
+
"maximum": 1000000,
|
|
791
676
|
"description": "End line number (1-indexed, inclusive)."
|
|
792
677
|
}
|
|
793
678
|
},
|
|
@@ -807,7 +692,7 @@
|
|
|
807
692
|
}
|
|
808
693
|
]
|
|
809
694
|
},
|
|
810
|
-
"description": "Paths to stage, relative to git root. String or `{ path, lines }` for hunk-level staging. Deleted tracked files are staged via `git rm --cached`. Cannot combine `lines` with a deleted file."
|
|
695
|
+
"description": "Paths to stage, relative to git root. String or `{ path, lines }` for hunk-level staging. Each path is staged individually (`git add` / `git apply --cached` / `git rm --cached`); on mid-entry stage failure, already-staged paths for that entry are unstaged. Deleted tracked files are staged via `git rm --cached`. Cannot combine `lines` with a deleted file. Rejects `.`, the repo root, and directory pathspecs."
|
|
811
696
|
}
|
|
812
697
|
},
|
|
813
698
|
"required": [
|
|
@@ -829,12 +714,11 @@
|
|
|
829
714
|
},
|
|
830
715
|
"dryRun": {
|
|
831
716
|
"default": false,
|
|
832
|
-
"description": "Stage files and return a preview without writing commits;
|
|
717
|
+
"description": "Stage files and return a preview without writing commits; restores the index afterwards. Response is marked DRY RUN.",
|
|
833
718
|
"type": "boolean"
|
|
834
719
|
}
|
|
835
720
|
},
|
|
836
721
|
"required": [
|
|
837
|
-
"allWorkspaceRoots",
|
|
838
722
|
"format",
|
|
839
723
|
"commits",
|
|
840
724
|
"push",
|
|
@@ -847,20 +731,9 @@
|
|
|
847
731
|
"type": "object",
|
|
848
732
|
"properties": {
|
|
849
733
|
"workspaceRoot": {
|
|
850
|
-
"description": "
|
|
734
|
+
"description": "Repo path. Default: first MCP root / cwd.",
|
|
851
735
|
"type": "string"
|
|
852
736
|
},
|
|
853
|
-
"rootIndex": {
|
|
854
|
-
"description": "0-based index into MCP roots; ignored if workspaceRoot set.",
|
|
855
|
-
"type": "integer",
|
|
856
|
-
"minimum": 0,
|
|
857
|
-
"maximum": 9007199254740991
|
|
858
|
-
},
|
|
859
|
-
"allWorkspaceRoots": {
|
|
860
|
-
"default": false,
|
|
861
|
-
"description": "Fan out across all MCP roots.",
|
|
862
|
-
"type": "boolean"
|
|
863
|
-
},
|
|
864
737
|
"format": {
|
|
865
738
|
"default": "markdown",
|
|
866
739
|
"type": "string",
|
|
@@ -884,7 +757,6 @@
|
|
|
884
757
|
}
|
|
885
758
|
},
|
|
886
759
|
"required": [
|
|
887
|
-
"allWorkspaceRoots",
|
|
888
760
|
"format",
|
|
889
761
|
"setUpstream"
|
|
890
762
|
],
|
|
@@ -895,20 +767,9 @@
|
|
|
895
767
|
"type": "object",
|
|
896
768
|
"properties": {
|
|
897
769
|
"workspaceRoot": {
|
|
898
|
-
"description": "
|
|
770
|
+
"description": "Repo path. Default: first MCP root / cwd.",
|
|
899
771
|
"type": "string"
|
|
900
772
|
},
|
|
901
|
-
"rootIndex": {
|
|
902
|
-
"description": "0-based index into MCP roots; ignored if workspaceRoot set.",
|
|
903
|
-
"type": "integer",
|
|
904
|
-
"minimum": 0,
|
|
905
|
-
"maximum": 9007199254740991
|
|
906
|
-
},
|
|
907
|
-
"allWorkspaceRoots": {
|
|
908
|
-
"default": false,
|
|
909
|
-
"description": "Fan out across all MCP roots.",
|
|
910
|
-
"type": "boolean"
|
|
911
|
-
},
|
|
912
773
|
"format": {
|
|
913
774
|
"default": "markdown",
|
|
914
775
|
"type": "string",
|
|
@@ -933,7 +794,7 @@
|
|
|
933
794
|
},
|
|
934
795
|
"strategy": {
|
|
935
796
|
"default": "auto",
|
|
936
|
-
"description": "`auto` (default): cascade fast-forward → rebase → merge-commit per source. `ff-only`: only fast-forward, fail if diverged. `rebase`: rebase source onto destination, then fast-forward (no merge-commit fallback). `merge`: always create a merge commit (no fast-forward).",
|
|
797
|
+
"description": "`auto` (default): cascade fast-forward → rebase → merge-commit per source. `ff-only`: only fast-forward, fail if diverged. `rebase`: rebase source onto destination, then fast-forward (no merge-commit fallback). `merge`: always create a merge commit (no fast-forward). Note: `auto`/`rebase` rewrite the source branch tip in place when rebasing (new SHAs).",
|
|
937
798
|
"type": "string",
|
|
938
799
|
"enum": [
|
|
939
800
|
"auto",
|
|
@@ -953,12 +814,11 @@
|
|
|
953
814
|
},
|
|
954
815
|
"deleteMergedWorktrees": {
|
|
955
816
|
"default": false,
|
|
956
|
-
"description": "Remove local worktrees on source branches after clean merge (`git worktree remove`). Protected tails skipped.",
|
|
817
|
+
"description": "Remove local worktrees on source branches after clean merge (`git worktree remove`). Protected source names and path tails skipped.",
|
|
957
818
|
"type": "boolean"
|
|
958
819
|
}
|
|
959
820
|
},
|
|
960
821
|
"required": [
|
|
961
|
-
"allWorkspaceRoots",
|
|
962
822
|
"format",
|
|
963
823
|
"sources",
|
|
964
824
|
"strategy",
|
|
@@ -972,20 +832,9 @@
|
|
|
972
832
|
"type": "object",
|
|
973
833
|
"properties": {
|
|
974
834
|
"workspaceRoot": {
|
|
975
|
-
"description": "
|
|
835
|
+
"description": "Repo path. Default: first MCP root / cwd.",
|
|
976
836
|
"type": "string"
|
|
977
837
|
},
|
|
978
|
-
"rootIndex": {
|
|
979
|
-
"description": "0-based index into MCP roots; ignored if workspaceRoot set.",
|
|
980
|
-
"type": "integer",
|
|
981
|
-
"minimum": 0,
|
|
982
|
-
"maximum": 9007199254740991
|
|
983
|
-
},
|
|
984
|
-
"allWorkspaceRoots": {
|
|
985
|
-
"default": false,
|
|
986
|
-
"description": "Fan out across all MCP roots.",
|
|
987
|
-
"type": "boolean"
|
|
988
|
-
},
|
|
989
838
|
"format": {
|
|
990
839
|
"default": "markdown",
|
|
991
840
|
"type": "string",
|
|
@@ -1015,43 +864,73 @@
|
|
|
1015
864
|
},
|
|
1016
865
|
"deleteMergedWorktrees": {
|
|
1017
866
|
"default": false,
|
|
1018
|
-
"description": "Remove local worktrees on branch-kind sources after success. Protected tails skipped.",
|
|
867
|
+
"description": "Remove local worktrees on branch-kind sources after success. Protected names and path tails skipped.",
|
|
1019
868
|
"type": "boolean"
|
|
1020
869
|
},
|
|
1021
870
|
"strictMergedRefEquality": {
|
|
1022
871
|
"default": false,
|
|
1023
872
|
"description": "false (default): delete branch when every commit is content-equivalent on destination (patch-id, normal cherry-pick outcome). true: require strict ref ancestry (`git branch -d` semantics — will refuse after cherry-pick due to SHA mismatch).",
|
|
1024
873
|
"type": "boolean"
|
|
874
|
+
},
|
|
875
|
+
"onConflict": {
|
|
876
|
+
"default": "abort",
|
|
877
|
+
"description": "`abort` (default): on conflict, run `cherry-pick --abort` and roll back the whole range (unchanged behavior). `pause`: on conflict, leave the conflict and native cherry-pick sequencer state in place — commits already applied stay applied — so it can be resolved and resumed via `git_cherry_pick_continue`.",
|
|
878
|
+
"type": "string",
|
|
879
|
+
"enum": [
|
|
880
|
+
"abort",
|
|
881
|
+
"pause"
|
|
882
|
+
]
|
|
1025
883
|
}
|
|
1026
884
|
},
|
|
1027
885
|
"required": [
|
|
1028
|
-
"allWorkspaceRoots",
|
|
1029
886
|
"format",
|
|
1030
887
|
"sources",
|
|
1031
888
|
"deleteMergedBranches",
|
|
1032
889
|
"deleteMergedWorktrees",
|
|
1033
|
-
"strictMergedRefEquality"
|
|
890
|
+
"strictMergedRefEquality",
|
|
891
|
+
"onConflict"
|
|
1034
892
|
],
|
|
1035
893
|
"additionalProperties": false
|
|
1036
894
|
},
|
|
1037
|
-
"
|
|
895
|
+
"git_cherry_pick_continue": {
|
|
1038
896
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
1039
897
|
"type": "object",
|
|
1040
898
|
"properties": {
|
|
1041
899
|
"workspaceRoot": {
|
|
1042
|
-
"description": "
|
|
900
|
+
"description": "Repo path. Default: first MCP root / cwd.",
|
|
1043
901
|
"type": "string"
|
|
1044
902
|
},
|
|
1045
|
-
"
|
|
1046
|
-
"
|
|
1047
|
-
"type": "
|
|
1048
|
-
"
|
|
1049
|
-
|
|
903
|
+
"format": {
|
|
904
|
+
"default": "markdown",
|
|
905
|
+
"type": "string",
|
|
906
|
+
"enum": [
|
|
907
|
+
"markdown",
|
|
908
|
+
"json"
|
|
909
|
+
]
|
|
1050
910
|
},
|
|
1051
|
-
"
|
|
1052
|
-
"default":
|
|
1053
|
-
"description": "
|
|
1054
|
-
"type": "
|
|
911
|
+
"action": {
|
|
912
|
+
"default": "continue",
|
|
913
|
+
"description": "\"continue\" (default): resolve conflicts, stage them, then resume the sequencer. \"abort\": roll back to the pre-cherry-pick HEAD.",
|
|
914
|
+
"type": "string",
|
|
915
|
+
"enum": [
|
|
916
|
+
"continue",
|
|
917
|
+
"abort"
|
|
918
|
+
]
|
|
919
|
+
}
|
|
920
|
+
},
|
|
921
|
+
"required": [
|
|
922
|
+
"format",
|
|
923
|
+
"action"
|
|
924
|
+
],
|
|
925
|
+
"additionalProperties": false
|
|
926
|
+
},
|
|
927
|
+
"git_reset_soft": {
|
|
928
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
929
|
+
"type": "object",
|
|
930
|
+
"properties": {
|
|
931
|
+
"workspaceRoot": {
|
|
932
|
+
"description": "Repo path. Default: first MCP root / cwd.",
|
|
933
|
+
"type": "string"
|
|
1055
934
|
},
|
|
1056
935
|
"format": {
|
|
1057
936
|
"default": "markdown",
|
|
@@ -1068,25 +947,63 @@
|
|
|
1068
947
|
}
|
|
1069
948
|
},
|
|
1070
949
|
"required": [
|
|
1071
|
-
"allWorkspaceRoots",
|
|
1072
950
|
"format",
|
|
1073
951
|
"ref"
|
|
1074
952
|
],
|
|
1075
953
|
"additionalProperties": false
|
|
1076
954
|
},
|
|
1077
|
-
"
|
|
955
|
+
"git_revert": {
|
|
1078
956
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
1079
957
|
"type": "object",
|
|
1080
958
|
"properties": {
|
|
1081
959
|
"workspaceRoot": {
|
|
1082
|
-
"description": "
|
|
960
|
+
"description": "Repo path. Default: first MCP root / cwd.",
|
|
1083
961
|
"type": "string"
|
|
1084
962
|
},
|
|
1085
|
-
"
|
|
1086
|
-
"
|
|
963
|
+
"format": {
|
|
964
|
+
"default": "markdown",
|
|
965
|
+
"type": "string",
|
|
966
|
+
"enum": [
|
|
967
|
+
"markdown",
|
|
968
|
+
"json"
|
|
969
|
+
]
|
|
970
|
+
},
|
|
971
|
+
"sources": {
|
|
972
|
+
"minItems": 1,
|
|
973
|
+
"maxItems": 20,
|
|
974
|
+
"type": "array",
|
|
975
|
+
"items": {
|
|
976
|
+
"type": "string",
|
|
977
|
+
"minLength": 1
|
|
978
|
+
},
|
|
979
|
+
"description": "Commits to revert, applied in order: SHA, branch/tag name, or ancestor notation (`HEAD~1`)."
|
|
980
|
+
},
|
|
981
|
+
"noCommit": {
|
|
982
|
+
"default": false,
|
|
983
|
+
"description": "Pass `--no-commit`: apply the revert(s) to the index/working tree without committing (changes are left staged instead).",
|
|
984
|
+
"type": "boolean"
|
|
985
|
+
},
|
|
986
|
+
"mainline": {
|
|
987
|
+
"description": "Parent number (`-m N`) to diff against — required when reverting a merge commit.",
|
|
1087
988
|
"type": "integer",
|
|
1088
|
-
"minimum":
|
|
989
|
+
"minimum": 1,
|
|
1089
990
|
"maximum": 9007199254740991
|
|
991
|
+
}
|
|
992
|
+
},
|
|
993
|
+
"required": [
|
|
994
|
+
"format",
|
|
995
|
+
"sources",
|
|
996
|
+
"noCommit"
|
|
997
|
+
],
|
|
998
|
+
"additionalProperties": false
|
|
999
|
+
},
|
|
1000
|
+
"git_tag": {
|
|
1001
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
1002
|
+
"type": "object",
|
|
1003
|
+
"properties": {
|
|
1004
|
+
"workspaceRoot": {
|
|
1005
|
+
"description": "Repo path. Default: first MCP root / cwd.",
|
|
1006
|
+
"type": "string"
|
|
1090
1007
|
},
|
|
1091
1008
|
"format": {
|
|
1092
1009
|
"default": "markdown",
|
|
@@ -1122,24 +1039,65 @@
|
|
|
1122
1039
|
],
|
|
1123
1040
|
"additionalProperties": false
|
|
1124
1041
|
},
|
|
1125
|
-
"
|
|
1042
|
+
"git_branch": {
|
|
1126
1043
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
1127
1044
|
"type": "object",
|
|
1128
1045
|
"properties": {
|
|
1129
1046
|
"workspaceRoot": {
|
|
1130
|
-
"description": "
|
|
1047
|
+
"description": "Repo path. Default: first MCP root / cwd.",
|
|
1131
1048
|
"type": "string"
|
|
1132
1049
|
},
|
|
1133
|
-
"
|
|
1134
|
-
"
|
|
1135
|
-
"type": "
|
|
1136
|
-
"
|
|
1137
|
-
|
|
1050
|
+
"format": {
|
|
1051
|
+
"default": "markdown",
|
|
1052
|
+
"type": "string",
|
|
1053
|
+
"enum": [
|
|
1054
|
+
"markdown",
|
|
1055
|
+
"json"
|
|
1056
|
+
]
|
|
1057
|
+
},
|
|
1058
|
+
"action": {
|
|
1059
|
+
"type": "string",
|
|
1060
|
+
"enum": [
|
|
1061
|
+
"create",
|
|
1062
|
+
"delete",
|
|
1063
|
+
"rename"
|
|
1064
|
+
],
|
|
1065
|
+
"description": "Which branch operation to perform."
|
|
1066
|
+
},
|
|
1067
|
+
"name": {
|
|
1068
|
+
"type": "string",
|
|
1069
|
+
"minLength": 1,
|
|
1070
|
+
"description": "Branch name to create/delete, or the existing branch name for rename."
|
|
1071
|
+
},
|
|
1072
|
+
"from": {
|
|
1073
|
+
"description": "Commit-ish to base a new branch on (create only). Default: HEAD.",
|
|
1074
|
+
"type": "string"
|
|
1138
1075
|
},
|
|
1139
|
-
"
|
|
1076
|
+
"newName": {
|
|
1077
|
+
"description": "New branch name (required for rename).",
|
|
1078
|
+
"type": "string"
|
|
1079
|
+
},
|
|
1080
|
+
"force": {
|
|
1140
1081
|
"default": false,
|
|
1141
|
-
"description": "
|
|
1082
|
+
"description": "Force-delete an unmerged branch (`git branch -D`). Delete only; never overrides protected-branch rejection.",
|
|
1142
1083
|
"type": "boolean"
|
|
1084
|
+
}
|
|
1085
|
+
},
|
|
1086
|
+
"required": [
|
|
1087
|
+
"format",
|
|
1088
|
+
"action",
|
|
1089
|
+
"name",
|
|
1090
|
+
"force"
|
|
1091
|
+
],
|
|
1092
|
+
"additionalProperties": false
|
|
1093
|
+
},
|
|
1094
|
+
"git_worktree_add": {
|
|
1095
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
1096
|
+
"type": "object",
|
|
1097
|
+
"properties": {
|
|
1098
|
+
"workspaceRoot": {
|
|
1099
|
+
"description": "Repo path. Default: first MCP root / cwd.",
|
|
1100
|
+
"type": "string"
|
|
1143
1101
|
},
|
|
1144
1102
|
"format": {
|
|
1145
1103
|
"default": "markdown",
|
|
@@ -1152,7 +1110,7 @@
|
|
|
1152
1110
|
"path": {
|
|
1153
1111
|
"type": "string",
|
|
1154
1112
|
"minLength": 1,
|
|
1155
|
-
"description": "Filesystem path for the new worktree (relative paths resolved from git toplevel)."
|
|
1113
|
+
"description": "Filesystem path for the new worktree (relative paths resolved from git toplevel). Sibling directories outside the repo toplevel are allowed; leading `-` and NUL are rejected."
|
|
1156
1114
|
},
|
|
1157
1115
|
"branch": {
|
|
1158
1116
|
"type": "string",
|
|
@@ -1165,7 +1123,6 @@
|
|
|
1165
1123
|
}
|
|
1166
1124
|
},
|
|
1167
1125
|
"required": [
|
|
1168
|
-
"allWorkspaceRoots",
|
|
1169
1126
|
"format",
|
|
1170
1127
|
"path",
|
|
1171
1128
|
"branch"
|
|
@@ -1177,20 +1134,9 @@
|
|
|
1177
1134
|
"type": "object",
|
|
1178
1135
|
"properties": {
|
|
1179
1136
|
"workspaceRoot": {
|
|
1180
|
-
"description": "
|
|
1137
|
+
"description": "Repo path. Default: first MCP root / cwd.",
|
|
1181
1138
|
"type": "string"
|
|
1182
1139
|
},
|
|
1183
|
-
"rootIndex": {
|
|
1184
|
-
"description": "0-based index into MCP roots; ignored if workspaceRoot set.",
|
|
1185
|
-
"type": "integer",
|
|
1186
|
-
"minimum": 0,
|
|
1187
|
-
"maximum": 9007199254740991
|
|
1188
|
-
},
|
|
1189
|
-
"allWorkspaceRoots": {
|
|
1190
|
-
"default": false,
|
|
1191
|
-
"description": "Fan out across all MCP roots.",
|
|
1192
|
-
"type": "boolean"
|
|
1193
|
-
},
|
|
1194
1140
|
"format": {
|
|
1195
1141
|
"default": "markdown",
|
|
1196
1142
|
"type": "string",
|
|
@@ -1202,7 +1148,7 @@
|
|
|
1202
1148
|
"path": {
|
|
1203
1149
|
"type": "string",
|
|
1204
1150
|
"minLength": 1,
|
|
1205
|
-
"description": "Path of the worktree to remove. Must not be the main worktree."
|
|
1151
|
+
"description": "Path of the worktree to remove. Must not be the main worktree. Sibling paths outside the repo toplevel are allowed; leading `-` and NUL are rejected."
|
|
1206
1152
|
},
|
|
1207
1153
|
"force": {
|
|
1208
1154
|
"default": false,
|
|
@@ -1211,7 +1157,6 @@
|
|
|
1211
1157
|
}
|
|
1212
1158
|
},
|
|
1213
1159
|
"required": [
|
|
1214
|
-
"allWorkspaceRoots",
|
|
1215
1160
|
"format",
|
|
1216
1161
|
"path",
|
|
1217
1162
|
"force"
|
|
@@ -1223,15 +1168,9 @@
|
|
|
1223
1168
|
"type": "object",
|
|
1224
1169
|
"properties": {
|
|
1225
1170
|
"workspaceRoot": {
|
|
1226
|
-
"description": "
|
|
1171
|
+
"description": "Repo path. Default: first MCP root / cwd.",
|
|
1227
1172
|
"type": "string"
|
|
1228
1173
|
},
|
|
1229
|
-
"rootIndex": {
|
|
1230
|
-
"description": "0-based index into MCP roots; ignored if workspaceRoot set.",
|
|
1231
|
-
"type": "integer",
|
|
1232
|
-
"minimum": 0,
|
|
1233
|
-
"maximum": 9007199254740991
|
|
1234
|
-
},
|
|
1235
1174
|
"format": {
|
|
1236
1175
|
"default": "markdown",
|
|
1237
1176
|
"type": "string",
|
|
@@ -1245,7 +1184,7 @@
|
|
|
1245
1184
|
"description": "Stash index (defaults to 0 for stash@{0}).",
|
|
1246
1185
|
"type": "integer",
|
|
1247
1186
|
"minimum": 0,
|
|
1248
|
-
"maximum":
|
|
1187
|
+
"maximum": 10000
|
|
1249
1188
|
},
|
|
1250
1189
|
"pop": {
|
|
1251
1190
|
"default": false,
|
|
@@ -1259,6 +1198,51 @@
|
|
|
1259
1198
|
"pop"
|
|
1260
1199
|
],
|
|
1261
1200
|
"additionalProperties": false
|
|
1201
|
+
},
|
|
1202
|
+
"git_stash_push": {
|
|
1203
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
1204
|
+
"type": "object",
|
|
1205
|
+
"properties": {
|
|
1206
|
+
"workspaceRoot": {
|
|
1207
|
+
"description": "Repo path. Default: first MCP root / cwd.",
|
|
1208
|
+
"type": "string"
|
|
1209
|
+
},
|
|
1210
|
+
"format": {
|
|
1211
|
+
"default": "markdown",
|
|
1212
|
+
"type": "string",
|
|
1213
|
+
"enum": [
|
|
1214
|
+
"markdown",
|
|
1215
|
+
"json"
|
|
1216
|
+
]
|
|
1217
|
+
},
|
|
1218
|
+
"message": {
|
|
1219
|
+
"description": "Stash subject message (`git stash push -m <message>`).",
|
|
1220
|
+
"type": "string"
|
|
1221
|
+
},
|
|
1222
|
+
"includeUntracked": {
|
|
1223
|
+
"default": false,
|
|
1224
|
+
"description": "Include untracked files in the stash (`git stash push -u`).",
|
|
1225
|
+
"type": "boolean"
|
|
1226
|
+
},
|
|
1227
|
+
"keepIndex": {
|
|
1228
|
+
"default": false,
|
|
1229
|
+
"description": "Keep staged changes in the index after stashing (`git stash push --keep-index`).",
|
|
1230
|
+
"type": "boolean"
|
|
1231
|
+
},
|
|
1232
|
+
"paths": {
|
|
1233
|
+
"description": "Scope the stash to specific paths, relative to git root (must resolve within repo root).",
|
|
1234
|
+
"type": "array",
|
|
1235
|
+
"items": {
|
|
1236
|
+
"type": "string"
|
|
1237
|
+
}
|
|
1238
|
+
}
|
|
1239
|
+
},
|
|
1240
|
+
"required": [
|
|
1241
|
+
"format",
|
|
1242
|
+
"includeUntracked",
|
|
1243
|
+
"keepIndex"
|
|
1244
|
+
],
|
|
1245
|
+
"additionalProperties": false
|
|
1262
1246
|
}
|
|
1263
1247
|
}
|
|
1264
1248
|
}
|