@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.
Files changed (75) hide show
  1. package/AGENTS.md +23 -19
  2. package/CHANGELOG.md +145 -39
  3. package/HUMANS.md +23 -42
  4. package/README.md +30 -13
  5. package/dist/repo-paths.js +57 -13
  6. package/dist/server/batch-commit-tool.js +203 -53
  7. package/dist/server/error-codes.js +31 -16
  8. package/dist/server/git-blame-tool.js +66 -19
  9. package/dist/server/git-branch-tool.js +151 -0
  10. package/dist/server/git-cherry-pick-tool.js +221 -12
  11. package/dist/server/git-conflicts-tool.js +230 -0
  12. package/dist/server/git-diff-summary-tool.js +39 -28
  13. package/dist/server/git-diff-tool.js +56 -31
  14. package/dist/server/git-grep-tool.js +188 -0
  15. package/dist/server/git-inventory-tool.js +30 -10
  16. package/dist/server/git-log-tool.js +37 -6
  17. package/dist/server/git-merge-tool.js +71 -13
  18. package/dist/server/git-parity-tool.js +15 -6
  19. package/dist/server/git-push-tool.js +4 -2
  20. package/dist/server/git-refs.js +48 -17
  21. package/dist/server/git-reset-soft-tool.js +1 -1
  22. package/dist/server/git-revert-tool.js +160 -0
  23. package/dist/server/git-show-tool.js +5 -10
  24. package/dist/server/git-stash-tool.js +112 -78
  25. package/dist/server/git-status-tool.js +2 -2
  26. package/dist/server/git-tag-tool.js +8 -13
  27. package/dist/server/git-worktree-tool.js +67 -59
  28. package/dist/server/git.js +116 -24
  29. package/dist/server/inventory.js +90 -32
  30. package/dist/server/list-presets-tool.js +2 -8
  31. package/dist/server/presets-resource.js +37 -20
  32. package/dist/server/presets.js +87 -15
  33. package/dist/server/roots.js +52 -79
  34. package/dist/server/schemas.js +18 -19
  35. package/dist/server/test-harness.js +11 -4
  36. package/dist/server/tool-parameter-schemas.js +47 -58
  37. package/dist/server/tools.js +36 -17
  38. package/dist/server.js +1 -1
  39. package/docs/install.md +52 -5
  40. package/docs/mcp-tools.md +472 -284
  41. package/package.json +6 -6
  42. package/schemas/batch_commit.json +5 -17
  43. package/schemas/git_blame.json +13 -11
  44. package/schemas/git_branch.json +54 -0
  45. package/schemas/git_cherry_pick.json +13 -15
  46. package/schemas/git_cherry_pick_continue.json +34 -0
  47. package/schemas/git_conflicts.json +38 -0
  48. package/schemas/git_diff.json +12 -10
  49. package/schemas/git_diff_summary.json +1 -15
  50. package/schemas/git_grep.json +85 -0
  51. package/schemas/git_inventory.json +32 -23
  52. package/schemas/git_log.json +20 -24
  53. package/schemas/git_merge.json +3 -15
  54. package/schemas/git_parity.json +13 -23
  55. package/schemas/git_push.json +1 -13
  56. package/schemas/git_reset_soft.json +1 -13
  57. package/schemas/git_revert.json +47 -0
  58. package/schemas/git_show.json +2 -8
  59. package/schemas/git_stash_apply.json +2 -8
  60. package/schemas/git_stash_push.json +47 -0
  61. package/schemas/git_status.json +13 -23
  62. package/schemas/git_tag.json +1 -7
  63. package/schemas/git_worktree_add.json +2 -14
  64. package/schemas/git_worktree_remove.json +2 -14
  65. package/schemas/index.json +28 -23
  66. package/schemas/list_presets.json +13 -23
  67. package/tool-parameters.schema.json +407 -423
  68. package/dist/server/git-branch-list-tool.js +0 -138
  69. package/dist/server/git-fetch-tool.js +0 -266
  70. package/dist/server/git-reflog-tool.js +0 -126
  71. package/schemas/git_branch_list.json +0 -36
  72. package/schemas/git_fetch.json +0 -52
  73. package/schemas/git_reflog.json +0 -44
  74. package/schemas/git_stash_list.json +0 -30
  75. package/schemas/git_worktree_list.json +0 -30
@@ -5,20 +5,9 @@
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "workspaceRoot": {
8
- "description": "Highest-priority root override.",
8
+ "description": "Repo path. Default: first MCP root / cwd.",
9
9
  "type": "string"
10
10
  },
11
- "rootIndex": {
12
- "description": "0-based index into MCP roots; ignored if workspaceRoot set.",
13
- "type": "integer",
14
- "minimum": 0,
15
- "maximum": 9007199254740991
16
- },
17
- "allWorkspaceRoots": {
18
- "default": false,
19
- "description": "Fan out across all MCP roots.",
20
- "type": "boolean"
21
- },
22
11
  "format": {
23
12
  "default": "markdown",
24
13
  "type": "string",
@@ -43,7 +32,7 @@
43
32
  },
44
33
  "strategy": {
45
34
  "default": "auto",
46
- "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).",
35
+ "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).",
47
36
  "type": "string",
48
37
  "enum": [
49
38
  "auto",
@@ -63,12 +52,11 @@
63
52
  },
64
53
  "deleteMergedWorktrees": {
65
54
  "default": false,
66
- "description": "Remove local worktrees on source branches after clean merge (`git worktree remove`). Protected tails skipped.",
55
+ "description": "Remove local worktrees on source branches after clean merge (`git worktree remove`). Protected source names and path tails skipped.",
67
56
  "type": "boolean"
68
57
  }
69
58
  },
70
59
  "required": [
71
- "allWorkspaceRoots",
72
60
  "format",
73
61
  "sources",
74
62
  "strategy",
@@ -4,28 +4,19 @@
4
4
  "description": "Parameter schema for the 'git_parity' MCP tool.",
5
5
  "type": "object",
6
6
  "properties": {
7
- "workspaceRoot": {
8
- "description": "Highest-priority root override.",
9
- "type": "string"
10
- },
11
- "rootIndex": {
12
- "description": "0-based index into MCP roots; ignored if workspaceRoot set.",
13
- "type": "integer",
14
- "minimum": 0,
15
- "maximum": 9007199254740991
16
- },
17
- "allWorkspaceRoots": {
18
- "default": false,
19
- "description": "Fan out across all MCP roots.",
20
- "type": "boolean"
21
- },
22
- "absoluteGitRoots": {
23
- "description": "Absolute paths to git repo roots; use for sibling clones under a non-git parent.",
24
- "maxItems": 256,
25
- "type": "array",
26
- "items": {
27
- "type": "string"
28
- }
7
+ "root": {
8
+ "description": "Repo path, array of paths, or \"*\" for all MCP roots.",
9
+ "anyOf": [
10
+ {
11
+ "type": "string"
12
+ },
13
+ {
14
+ "type": "array",
15
+ "items": {
16
+ "type": "string"
17
+ }
18
+ }
19
+ ]
29
20
  },
30
21
  "format": {
31
22
  "default": "markdown",
@@ -66,7 +57,6 @@
66
57
  }
67
58
  },
68
59
  "required": [
69
- "allWorkspaceRoots",
70
60
  "format",
71
61
  "presetMerge"
72
62
  ],
@@ -5,20 +5,9 @@
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "workspaceRoot": {
8
- "description": "Highest-priority root override.",
8
+ "description": "Repo path. Default: first MCP root / cwd.",
9
9
  "type": "string"
10
10
  },
11
- "rootIndex": {
12
- "description": "0-based index into MCP roots; ignored if workspaceRoot set.",
13
- "type": "integer",
14
- "minimum": 0,
15
- "maximum": 9007199254740991
16
- },
17
- "allWorkspaceRoots": {
18
- "default": false,
19
- "description": "Fan out across all MCP roots.",
20
- "type": "boolean"
21
- },
22
11
  "format": {
23
12
  "default": "markdown",
24
13
  "type": "string",
@@ -42,7 +31,6 @@
42
31
  }
43
32
  },
44
33
  "required": [
45
- "allWorkspaceRoots",
46
34
  "format",
47
35
  "setUpstream"
48
36
  ],
@@ -5,20 +5,9 @@
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "workspaceRoot": {
8
- "description": "Highest-priority root override.",
8
+ "description": "Repo path. Default: first MCP root / cwd.",
9
9
  "type": "string"
10
10
  },
11
- "rootIndex": {
12
- "description": "0-based index into MCP roots; ignored if workspaceRoot set.",
13
- "type": "integer",
14
- "minimum": 0,
15
- "maximum": 9007199254740991
16
- },
17
- "allWorkspaceRoots": {
18
- "default": false,
19
- "description": "Fan out across all MCP roots.",
20
- "type": "boolean"
21
- },
22
11
  "format": {
23
12
  "default": "markdown",
24
13
  "type": "string",
@@ -34,7 +23,6 @@
34
23
  }
35
24
  },
36
25
  "required": [
37
- "allWorkspaceRoots",
38
26
  "format",
39
27
  "ref"
40
28
  ],
@@ -0,0 +1,47 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "@rethunk/mcp-multi-root-git: git_revert",
4
+ "description": "Parameter schema for the 'git_revert' MCP tool.",
5
+ "type": "object",
6
+ "properties": {
7
+ "workspaceRoot": {
8
+ "description": "Repo path. Default: first MCP root / cwd.",
9
+ "type": "string"
10
+ },
11
+ "format": {
12
+ "default": "markdown",
13
+ "type": "string",
14
+ "enum": [
15
+ "markdown",
16
+ "json"
17
+ ]
18
+ },
19
+ "sources": {
20
+ "minItems": 1,
21
+ "maxItems": 20,
22
+ "type": "array",
23
+ "items": {
24
+ "type": "string",
25
+ "minLength": 1
26
+ },
27
+ "description": "Commits to revert, applied in order: SHA, branch/tag name, or ancestor notation (`HEAD~1`)."
28
+ },
29
+ "noCommit": {
30
+ "default": false,
31
+ "description": "Pass `--no-commit`: apply the revert(s) to the index/working tree without committing (changes are left staged instead).",
32
+ "type": "boolean"
33
+ },
34
+ "mainline": {
35
+ "description": "Parent number (`-m N`) to diff against — required when reverting a merge commit.",
36
+ "type": "integer",
37
+ "minimum": 1,
38
+ "maximum": 9007199254740991
39
+ }
40
+ },
41
+ "required": [
42
+ "format",
43
+ "sources",
44
+ "noCommit"
45
+ ],
46
+ "additionalProperties": false
47
+ }
@@ -5,15 +5,9 @@
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "workspaceRoot": {
8
- "description": "Highest-priority root override.",
8
+ "description": "Repo path. Default: first MCP root / cwd.",
9
9
  "type": "string"
10
10
  },
11
- "rootIndex": {
12
- "description": "0-based index into MCP roots; ignored if workspaceRoot set.",
13
- "type": "integer",
14
- "minimum": 0,
15
- "maximum": 9007199254740991
16
- },
17
11
  "format": {
18
12
  "default": "markdown",
19
13
  "type": "string",
@@ -25,7 +19,7 @@
25
19
  "ref": {
26
20
  "type": "string",
27
21
  "minLength": 1,
28
- "description": "Commit reference (SHA, branch, tag, or any git rev-spec)."
22
+ "description": "Commit reference (SHA, branch, tag, or ancestor notation like \"HEAD~3\", \"main^2\")."
29
23
  },
30
24
  "path": {
31
25
  "description": "Optional single file path to inspect at the ref. Merged with `paths` when both are provided.",
@@ -5,15 +5,9 @@
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "workspaceRoot": {
8
- "description": "Highest-priority root override.",
8
+ "description": "Repo path. Default: first MCP root / cwd.",
9
9
  "type": "string"
10
10
  },
11
- "rootIndex": {
12
- "description": "0-based index into MCP roots; ignored if workspaceRoot set.",
13
- "type": "integer",
14
- "minimum": 0,
15
- "maximum": 9007199254740991
16
- },
17
11
  "format": {
18
12
  "default": "markdown",
19
13
  "type": "string",
@@ -27,7 +21,7 @@
27
21
  "description": "Stash index (defaults to 0 for stash@{0}).",
28
22
  "type": "integer",
29
23
  "minimum": 0,
30
- "maximum": 9007199254740991
24
+ "maximum": 10000
31
25
  },
32
26
  "pop": {
33
27
  "default": false,
@@ -0,0 +1,47 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "@rethunk/mcp-multi-root-git: git_stash_push",
4
+ "description": "Parameter schema for the 'git_stash_push' MCP tool.",
5
+ "type": "object",
6
+ "properties": {
7
+ "workspaceRoot": {
8
+ "description": "Repo path. Default: first MCP root / cwd.",
9
+ "type": "string"
10
+ },
11
+ "format": {
12
+ "default": "markdown",
13
+ "type": "string",
14
+ "enum": [
15
+ "markdown",
16
+ "json"
17
+ ]
18
+ },
19
+ "message": {
20
+ "description": "Stash subject message (`git stash push -m <message>`).",
21
+ "type": "string"
22
+ },
23
+ "includeUntracked": {
24
+ "default": false,
25
+ "description": "Include untracked files in the stash (`git stash push -u`).",
26
+ "type": "boolean"
27
+ },
28
+ "keepIndex": {
29
+ "default": false,
30
+ "description": "Keep staged changes in the index after stashing (`git stash push --keep-index`).",
31
+ "type": "boolean"
32
+ },
33
+ "paths": {
34
+ "description": "Scope the stash to specific paths, relative to git root (must resolve within repo root).",
35
+ "type": "array",
36
+ "items": {
37
+ "type": "string"
38
+ }
39
+ }
40
+ },
41
+ "required": [
42
+ "format",
43
+ "includeUntracked",
44
+ "keepIndex"
45
+ ],
46
+ "additionalProperties": false
47
+ }
@@ -4,28 +4,19 @@
4
4
  "description": "Parameter schema for the 'git_status' MCP tool.",
5
5
  "type": "object",
6
6
  "properties": {
7
- "workspaceRoot": {
8
- "description": "Highest-priority root override.",
9
- "type": "string"
10
- },
11
- "rootIndex": {
12
- "description": "0-based index into MCP roots; ignored if workspaceRoot set.",
13
- "type": "integer",
14
- "minimum": 0,
15
- "maximum": 9007199254740991
16
- },
17
- "allWorkspaceRoots": {
18
- "default": false,
19
- "description": "Fan out across all MCP roots.",
20
- "type": "boolean"
21
- },
22
- "absoluteGitRoots": {
23
- "description": "Absolute paths to git repo roots; use for sibling clones under a non-git parent.",
24
- "maxItems": 256,
25
- "type": "array",
26
- "items": {
27
- "type": "string"
28
- }
7
+ "root": {
8
+ "description": "Repo path, array of paths, or \"*\" for all MCP roots.",
9
+ "anyOf": [
10
+ {
11
+ "type": "string"
12
+ },
13
+ {
14
+ "type": "array",
15
+ "items": {
16
+ "type": "string"
17
+ }
18
+ }
19
+ ]
29
20
  },
30
21
  "format": {
31
22
  "default": "markdown",
@@ -41,7 +32,6 @@
41
32
  }
42
33
  },
43
34
  "required": [
44
- "allWorkspaceRoots",
45
35
  "format",
46
36
  "includeSubmodules"
47
37
  ],
@@ -5,15 +5,9 @@
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "workspaceRoot": {
8
- "description": "Highest-priority root override.",
8
+ "description": "Repo path. Default: first MCP root / cwd.",
9
9
  "type": "string"
10
10
  },
11
- "rootIndex": {
12
- "description": "0-based index into MCP roots; ignored if workspaceRoot set.",
13
- "type": "integer",
14
- "minimum": 0,
15
- "maximum": 9007199254740991
16
- },
17
11
  "format": {
18
12
  "default": "markdown",
19
13
  "type": "string",
@@ -5,20 +5,9 @@
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "workspaceRoot": {
8
- "description": "Highest-priority root override.",
8
+ "description": "Repo path. Default: first MCP root / cwd.",
9
9
  "type": "string"
10
10
  },
11
- "rootIndex": {
12
- "description": "0-based index into MCP roots; ignored if workspaceRoot set.",
13
- "type": "integer",
14
- "minimum": 0,
15
- "maximum": 9007199254740991
16
- },
17
- "allWorkspaceRoots": {
18
- "default": false,
19
- "description": "Fan out across all MCP roots.",
20
- "type": "boolean"
21
- },
22
11
  "format": {
23
12
  "default": "markdown",
24
13
  "type": "string",
@@ -30,7 +19,7 @@
30
19
  "path": {
31
20
  "type": "string",
32
21
  "minLength": 1,
33
- "description": "Filesystem path for the new worktree (relative paths resolved from git toplevel)."
22
+ "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."
34
23
  },
35
24
  "branch": {
36
25
  "type": "string",
@@ -43,7 +32,6 @@
43
32
  }
44
33
  },
45
34
  "required": [
46
- "allWorkspaceRoots",
47
35
  "format",
48
36
  "path",
49
37
  "branch"
@@ -5,20 +5,9 @@
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "workspaceRoot": {
8
- "description": "Highest-priority root override.",
8
+ "description": "Repo path. Default: first MCP root / cwd.",
9
9
  "type": "string"
10
10
  },
11
- "rootIndex": {
12
- "description": "0-based index into MCP roots; ignored if workspaceRoot set.",
13
- "type": "integer",
14
- "minimum": 0,
15
- "maximum": 9007199254740991
16
- },
17
- "allWorkspaceRoots": {
18
- "default": false,
19
- "description": "Fan out across all MCP roots.",
20
- "type": "boolean"
21
- },
22
11
  "format": {
23
12
  "default": "markdown",
24
13
  "type": "string",
@@ -30,7 +19,7 @@
30
19
  "path": {
31
20
  "type": "string",
32
21
  "minLength": 1,
33
- "description": "Path of the worktree to remove. Must not be the main worktree."
22
+ "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."
34
23
  },
35
24
  "force": {
36
25
  "default": false,
@@ -39,7 +28,6 @@
39
28
  }
40
29
  },
41
30
  "required": [
42
- "allWorkspaceRoots",
43
31
  "format",
44
32
  "path",
45
33
  "force"
@@ -29,6 +29,11 @@
29
29
  "file": "git_log.json",
30
30
  "description": "Parameter schema for the 'git_log' MCP tool."
31
31
  },
32
+ {
33
+ "name": "git_grep",
34
+ "file": "git_grep.json",
35
+ "description": "Parameter schema for the 'git_grep' MCP tool."
36
+ },
32
37
  {
33
38
  "name": "git_diff_summary",
34
39
  "file": "git_diff_summary.json",
@@ -45,35 +50,15 @@
45
50
  "description": "Parameter schema for the 'git_show' MCP tool."
46
51
  },
47
52
  {
48
- "name": "git_worktree_list",
49
- "file": "git_worktree_list.json",
50
- "description": "Parameter schema for the 'git_worktree_list' MCP tool."
51
- },
52
- {
53
- "name": "git_stash_list",
54
- "file": "git_stash_list.json",
55
- "description": "Parameter schema for the 'git_stash_list' MCP tool."
53
+ "name": "git_conflicts",
54
+ "file": "git_conflicts.json",
55
+ "description": "Parameter schema for the 'git_conflicts' MCP tool."
56
56
  },
57
57
  {
58
58
  "name": "git_blame",
59
59
  "file": "git_blame.json",
60
60
  "description": "Parameter schema for the 'git_blame' MCP tool."
61
61
  },
62
- {
63
- "name": "git_branch_list",
64
- "file": "git_branch_list.json",
65
- "description": "Parameter schema for the 'git_branch_list' MCP tool."
66
- },
67
- {
68
- "name": "git_reflog",
69
- "file": "git_reflog.json",
70
- "description": "Parameter schema for the 'git_reflog' MCP tool."
71
- },
72
- {
73
- "name": "git_fetch",
74
- "file": "git_fetch.json",
75
- "description": "Parameter schema for the 'git_fetch' MCP tool."
76
- },
77
62
  {
78
63
  "name": "batch_commit",
79
64
  "file": "batch_commit.json",
@@ -94,16 +79,31 @@
94
79
  "file": "git_cherry_pick.json",
95
80
  "description": "Parameter schema for the 'git_cherry_pick' MCP tool."
96
81
  },
82
+ {
83
+ "name": "git_cherry_pick_continue",
84
+ "file": "git_cherry_pick_continue.json",
85
+ "description": "Parameter schema for the 'git_cherry_pick_continue' MCP tool."
86
+ },
97
87
  {
98
88
  "name": "git_reset_soft",
99
89
  "file": "git_reset_soft.json",
100
90
  "description": "Parameter schema for the 'git_reset_soft' MCP tool."
101
91
  },
92
+ {
93
+ "name": "git_revert",
94
+ "file": "git_revert.json",
95
+ "description": "Parameter schema for the 'git_revert' MCP tool."
96
+ },
102
97
  {
103
98
  "name": "git_tag",
104
99
  "file": "git_tag.json",
105
100
  "description": "Parameter schema for the 'git_tag' MCP tool."
106
101
  },
102
+ {
103
+ "name": "git_branch",
104
+ "file": "git_branch.json",
105
+ "description": "Parameter schema for the 'git_branch' MCP tool."
106
+ },
107
107
  {
108
108
  "name": "git_worktree_add",
109
109
  "file": "git_worktree_add.json",
@@ -118,6 +118,11 @@
118
118
  "name": "git_stash_apply",
119
119
  "file": "git_stash_apply.json",
120
120
  "description": "Parameter schema for the 'git_stash_apply' MCP tool."
121
+ },
122
+ {
123
+ "name": "git_stash_push",
124
+ "file": "git_stash_push.json",
125
+ "description": "Parameter schema for the 'git_stash_push' MCP tool."
121
126
  }
122
127
  ]
123
128
  }
@@ -4,28 +4,19 @@
4
4
  "description": "Parameter schema for the 'list_presets' MCP tool.",
5
5
  "type": "object",
6
6
  "properties": {
7
- "workspaceRoot": {
8
- "description": "Highest-priority root override.",
9
- "type": "string"
10
- },
11
- "rootIndex": {
12
- "description": "0-based index into MCP roots; ignored if workspaceRoot set.",
13
- "type": "integer",
14
- "minimum": 0,
15
- "maximum": 9007199254740991
16
- },
17
- "allWorkspaceRoots": {
18
- "default": false,
19
- "description": "Fan out across all MCP roots.",
20
- "type": "boolean"
21
- },
22
- "absoluteGitRoots": {
23
- "description": "Absolute paths to git repo roots; use for sibling clones under a non-git parent.",
24
- "maxItems": 256,
25
- "type": "array",
26
- "items": {
27
- "type": "string"
28
- }
7
+ "root": {
8
+ "description": "Repo path, array of paths, or \"*\" for all MCP roots.",
9
+ "anyOf": [
10
+ {
11
+ "type": "string"
12
+ },
13
+ {
14
+ "type": "array",
15
+ "items": {
16
+ "type": "string"
17
+ }
18
+ }
19
+ ]
29
20
  },
30
21
  "format": {
31
22
  "default": "markdown",
@@ -37,7 +28,6 @@
37
28
  }
38
29
  },
39
30
  "required": [
40
- "allWorkspaceRoots",
41
31
  "format"
42
32
  ],
43
33
  "additionalProperties": false