@rethunk/mcp-multi-root-git 2.3.3 → 2.4.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 (42) hide show
  1. package/AGENTS.md +30 -3
  2. package/CHANGELOG.md +61 -0
  3. package/HUMANS.md +106 -2
  4. package/README.md +15 -1
  5. package/dist/server/batch-commit-tool.js +244 -19
  6. package/dist/server/coverage.js +22 -0
  7. package/dist/server/git-diff-tool.js +132 -0
  8. package/dist/server/git-fetch-tool.js +131 -0
  9. package/dist/server/git-push-tool.js +8 -1
  10. package/dist/server/git-show-tool.js +148 -0
  11. package/dist/server/git-stash-tool.js +131 -0
  12. package/dist/server/git-tag-tool.js +162 -0
  13. package/dist/server/git.js +18 -2
  14. package/dist/server/roots.js +8 -4
  15. package/dist/server/test-harness.js +77 -6
  16. package/dist/server/tool-parameter-schemas.js +94 -0
  17. package/dist/server/tools.js +11 -0
  18. package/docs/install.md +19 -2
  19. package/docs/mcp-tools.md +235 -5
  20. package/package.json +15 -8
  21. package/schemas/batch_commit.json +125 -0
  22. package/schemas/git_cherry_pick.json +63 -0
  23. package/schemas/git_diff.json +62 -0
  24. package/schemas/git_diff_summary.json +75 -0
  25. package/schemas/git_fetch.json +52 -0
  26. package/schemas/git_inventory.json +74 -0
  27. package/schemas/git_log.json +75 -0
  28. package/schemas/git_merge.json +79 -0
  29. package/schemas/git_parity.json +74 -0
  30. package/schemas/git_push.json +50 -0
  31. package/schemas/git_reset_soft.json +42 -0
  32. package/schemas/git_show.json +39 -0
  33. package/schemas/git_stash_apply.json +44 -0
  34. package/schemas/git_stash_list.json +30 -0
  35. package/schemas/git_status.json +49 -0
  36. package/schemas/git_tag.json +50 -0
  37. package/schemas/git_worktree_add.json +52 -0
  38. package/schemas/git_worktree_list.json +30 -0
  39. package/schemas/git_worktree_remove.json +48 -0
  40. package/schemas/index.json +108 -0
  41. package/schemas/list_presets.json +44 -0
  42. package/tool-parameters.schema.json +1125 -0
@@ -0,0 +1,125 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "@rethunk/mcp-multi-root-git: batch_commit",
4
+ "description": "Parameter schema for the 'batch_commit' MCP tool.",
5
+ "type": "object",
6
+ "properties": {
7
+ "workspaceRoot": {
8
+ "description": "Highest-priority override.",
9
+ "type": "string"
10
+ },
11
+ "rootIndex": {
12
+ "description": "0-based index into the MCP file roots list; ignored when workspaceRoot is set.",
13
+ "type": "integer",
14
+ "minimum": 0,
15
+ "maximum": 9007199254740991
16
+ },
17
+ "allWorkspaceRoots": {
18
+ "default": false,
19
+ "description": "Fan out across all MCP file roots.",
20
+ "type": "boolean"
21
+ },
22
+ "format": {
23
+ "default": "markdown",
24
+ "type": "string",
25
+ "enum": [
26
+ "markdown",
27
+ "json"
28
+ ]
29
+ },
30
+ "commits": {
31
+ "minItems": 1,
32
+ "maxItems": 50,
33
+ "type": "array",
34
+ "items": {
35
+ "type": "object",
36
+ "properties": {
37
+ "message": {
38
+ "type": "string",
39
+ "minLength": 1,
40
+ "description": "Commit message."
41
+ },
42
+ "files": {
43
+ "minItems": 1,
44
+ "type": "array",
45
+ "items": {
46
+ "anyOf": [
47
+ {
48
+ "type": "string",
49
+ "minLength": 1
50
+ },
51
+ {
52
+ "type": "object",
53
+ "properties": {
54
+ "path": {
55
+ "type": "string",
56
+ "minLength": 1,
57
+ "description": "File path relative to git root."
58
+ },
59
+ "lines": {
60
+ "type": "object",
61
+ "properties": {
62
+ "from": {
63
+ "type": "integer",
64
+ "minimum": 1,
65
+ "maximum": 9007199254740991,
66
+ "description": "Start line number (1-indexed)."
67
+ },
68
+ "to": {
69
+ "type": "integer",
70
+ "minimum": 1,
71
+ "maximum": 9007199254740991,
72
+ "description": "End line number (1-indexed, inclusive)."
73
+ }
74
+ },
75
+ "required": [
76
+ "from",
77
+ "to"
78
+ ],
79
+ "additionalProperties": false,
80
+ "description": "Line range to stage. Only hunks overlapping [from, to] are staged."
81
+ }
82
+ },
83
+ "required": [
84
+ "path",
85
+ "lines"
86
+ ],
87
+ "additionalProperties": false
88
+ }
89
+ ]
90
+ },
91
+ "description": "Paths to stage, relative to the git root. Each can be a string path or { path, lines } for hunk-level staging."
92
+ }
93
+ },
94
+ "required": [
95
+ "message",
96
+ "files"
97
+ ],
98
+ "additionalProperties": false
99
+ },
100
+ "description": "Commits to create, applied in order."
101
+ },
102
+ "push": {
103
+ "default": "never",
104
+ "description": "`never` (default): no push. `after`: push the current branch to its upstream once all commits succeed; fails with `push_no_upstream` if the branch has no upstream (commits are NOT rolled back). Enum reserved for future modes such as `force-with-lease`.",
105
+ "type": "string",
106
+ "enum": [
107
+ "never",
108
+ "after"
109
+ ]
110
+ },
111
+ "dryRun": {
112
+ "default": false,
113
+ "description": "When true, stage files, collect preview (files staged, commit messages), return preview response without writing commits. Unstages any files that were staged for the preview. Response indicates DRY RUN mode.",
114
+ "type": "boolean"
115
+ }
116
+ },
117
+ "required": [
118
+ "allWorkspaceRoots",
119
+ "format",
120
+ "commits",
121
+ "push",
122
+ "dryRun"
123
+ ],
124
+ "additionalProperties": false
125
+ }
@@ -0,0 +1,63 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "@rethunk/mcp-multi-root-git: git_cherry_pick",
4
+ "description": "Parameter schema for the 'git_cherry_pick' MCP tool.",
5
+ "type": "object",
6
+ "properties": {
7
+ "workspaceRoot": {
8
+ "description": "Highest-priority override.",
9
+ "type": "string"
10
+ },
11
+ "rootIndex": {
12
+ "description": "0-based index into the MCP file roots list; ignored when workspaceRoot is set.",
13
+ "type": "integer",
14
+ "minimum": 0,
15
+ "maximum": 9007199254740991
16
+ },
17
+ "allWorkspaceRoots": {
18
+ "default": false,
19
+ "description": "Fan out across all MCP file roots.",
20
+ "type": "boolean"
21
+ },
22
+ "format": {
23
+ "default": "markdown",
24
+ "type": "string",
25
+ "enum": [
26
+ "markdown",
27
+ "json"
28
+ ]
29
+ },
30
+ "sources": {
31
+ "minItems": 1,
32
+ "maxItems": 50,
33
+ "type": "array",
34
+ "items": {
35
+ "type": "string",
36
+ "minLength": 1
37
+ },
38
+ "description": "Sources to cherry-pick: SHA, `A..B` range, or branch name. Branch sources resolve to `onto..<branch>` (only commits missing from destination)."
39
+ },
40
+ "onto": {
41
+ "description": "Destination branch. Defaults to the currently checked-out branch.",
42
+ "type": "string"
43
+ },
44
+ "deleteMergedBranches": {
45
+ "default": false,
46
+ "description": "After all commits apply, delete each branch-kind source locally (`git branch -d`) when it is fully merged into the destination. Protected names always skipped; never touches remote refs.",
47
+ "type": "boolean"
48
+ },
49
+ "deleteMergedWorktrees": {
50
+ "default": false,
51
+ "description": "After success, remove any local worktree attached to a branch-kind source (`git worktree remove`). Protected tails always skipped.",
52
+ "type": "boolean"
53
+ }
54
+ },
55
+ "required": [
56
+ "allWorkspaceRoots",
57
+ "format",
58
+ "sources",
59
+ "deleteMergedBranches",
60
+ "deleteMergedWorktrees"
61
+ ],
62
+ "additionalProperties": false
63
+ }
@@ -0,0 +1,62 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "@rethunk/mcp-multi-root-git: git_diff",
4
+ "description": "Parameter schema for the 'git_diff' MCP tool.",
5
+ "type": "object",
6
+ "properties": {
7
+ "workspaceRoot": {
8
+ "description": "Highest-priority override.",
9
+ "type": "string"
10
+ },
11
+ "rootIndex": {
12
+ "description": "0-based index into the MCP file roots list; ignored when workspaceRoot is set.",
13
+ "type": "integer",
14
+ "minimum": 0,
15
+ "maximum": 9007199254740991
16
+ },
17
+ "allWorkspaceRoots": {
18
+ "default": false,
19
+ "description": "Fan out across all MCP file roots.",
20
+ "type": "boolean"
21
+ },
22
+ "absoluteGitRoots": {
23
+ "description": "Absolute paths to git repo roots. Use for many sibling clones under a non-git parent directory.",
24
+ "maxItems": 256,
25
+ "type": "array",
26
+ "items": {
27
+ "type": "string"
28
+ }
29
+ },
30
+ "format": {
31
+ "default": "markdown",
32
+ "type": "string",
33
+ "enum": [
34
+ "markdown",
35
+ "json"
36
+ ]
37
+ },
38
+ "base": {
39
+ "description": "Base ref (e.g. \"main\", \"HEAD~3\"). Required for range diffs. If omitted and `staged: false`, shows unstaged changes.",
40
+ "type": "string"
41
+ },
42
+ "head": {
43
+ "description": "Head ref (e.g. \"feature-branch\"). If omitted, defaults to HEAD. Only used if `base` is provided.",
44
+ "type": "string"
45
+ },
46
+ "path": {
47
+ "description": "Scope diff to a single file path (e.g. \"src/main.ts\").",
48
+ "type": "string"
49
+ },
50
+ "staged": {
51
+ "default": false,
52
+ "description": "If true, show staged changes (git diff --staged). Ignored if `base` is provided.",
53
+ "type": "boolean"
54
+ }
55
+ },
56
+ "required": [
57
+ "allWorkspaceRoots",
58
+ "format",
59
+ "staged"
60
+ ],
61
+ "additionalProperties": false
62
+ }
@@ -0,0 +1,75 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "@rethunk/mcp-multi-root-git: git_diff_summary",
4
+ "description": "Parameter schema for the 'git_diff_summary' MCP tool.",
5
+ "type": "object",
6
+ "properties": {
7
+ "workspaceRoot": {
8
+ "description": "Highest-priority override.",
9
+ "type": "string"
10
+ },
11
+ "rootIndex": {
12
+ "description": "0-based index into the MCP file roots list; ignored when workspaceRoot is set.",
13
+ "type": "integer",
14
+ "minimum": 0,
15
+ "maximum": 9007199254740991
16
+ },
17
+ "allWorkspaceRoots": {
18
+ "default": false,
19
+ "description": "Fan out across all MCP file roots.",
20
+ "type": "boolean"
21
+ },
22
+ "absoluteGitRoots": {
23
+ "description": "Absolute paths to git repo roots. Use for many sibling clones under a non-git parent directory.",
24
+ "maxItems": 256,
25
+ "type": "array",
26
+ "items": {
27
+ "type": "string"
28
+ }
29
+ },
30
+ "format": {
31
+ "default": "markdown",
32
+ "type": "string",
33
+ "enum": [
34
+ "markdown",
35
+ "json"
36
+ ]
37
+ },
38
+ "range": {
39
+ "description": "Diff range. Examples: \"staged\", \"HEAD~3..HEAD\", \"main...feature\". Default: unstaged changes.",
40
+ "type": "string"
41
+ },
42
+ "fileFilter": {
43
+ "description": "Glob pattern to restrict output to matching files, e.g. \"*.ts\", \"src/**\".",
44
+ "type": "string"
45
+ },
46
+ "maxLinesPerFile": {
47
+ "default": 50,
48
+ "description": "Max diff lines to include per file. Default: 50.",
49
+ "type": "integer",
50
+ "minimum": 1,
51
+ "maximum": 2000
52
+ },
53
+ "maxFiles": {
54
+ "default": 30,
55
+ "description": "Max files to include in output. Default: 30.",
56
+ "type": "integer",
57
+ "minimum": 1,
58
+ "maximum": 500
59
+ },
60
+ "excludePatterns": {
61
+ "description": "Glob patterns to exclude. Defaults to common noise: lock files, dist, vendor, etc.",
62
+ "type": "array",
63
+ "items": {
64
+ "type": "string"
65
+ }
66
+ }
67
+ },
68
+ "required": [
69
+ "allWorkspaceRoots",
70
+ "format",
71
+ "maxLinesPerFile",
72
+ "maxFiles"
73
+ ],
74
+ "additionalProperties": false
75
+ }
@@ -0,0 +1,52 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "@rethunk/mcp-multi-root-git: git_fetch",
4
+ "description": "Parameter schema for the 'git_fetch' MCP tool.",
5
+ "type": "object",
6
+ "properties": {
7
+ "workspaceRoot": {
8
+ "description": "Highest-priority override.",
9
+ "type": "string"
10
+ },
11
+ "rootIndex": {
12
+ "description": "0-based index into the MCP file roots list; ignored when workspaceRoot is set.",
13
+ "type": "integer",
14
+ "minimum": 0,
15
+ "maximum": 9007199254740991
16
+ },
17
+ "format": {
18
+ "default": "markdown",
19
+ "type": "string",
20
+ "enum": [
21
+ "markdown",
22
+ "json"
23
+ ]
24
+ },
25
+ "remote": {
26
+ "default": "origin",
27
+ "description": "Remote to fetch from (default: origin).",
28
+ "type": "string"
29
+ },
30
+ "branch": {
31
+ "description": "If specified: fetch only this branch (e.g. 'main').",
32
+ "type": "string"
33
+ },
34
+ "prune": {
35
+ "default": false,
36
+ "description": "Pass --prune to remove deleted remote branches (default: false).",
37
+ "type": "boolean"
38
+ },
39
+ "tags": {
40
+ "default": false,
41
+ "description": "Pass --tags to also fetch all tags (default: false).",
42
+ "type": "boolean"
43
+ }
44
+ },
45
+ "required": [
46
+ "format",
47
+ "remote",
48
+ "prune",
49
+ "tags"
50
+ ],
51
+ "additionalProperties": false
52
+ }
@@ -0,0 +1,74 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "@rethunk/mcp-multi-root-git: git_inventory",
4
+ "description": "Parameter schema for the 'git_inventory' MCP tool.",
5
+ "type": "object",
6
+ "properties": {
7
+ "workspaceRoot": {
8
+ "description": "Highest-priority override.",
9
+ "type": "string"
10
+ },
11
+ "rootIndex": {
12
+ "description": "0-based index into the MCP file roots list; ignored when workspaceRoot is set.",
13
+ "type": "integer",
14
+ "minimum": 0,
15
+ "maximum": 9007199254740991
16
+ },
17
+ "allWorkspaceRoots": {
18
+ "default": false,
19
+ "description": "Fan out across all MCP file roots.",
20
+ "type": "boolean"
21
+ },
22
+ "absoluteGitRoots": {
23
+ "description": "Absolute paths to git repo roots. Use for many sibling clones under a non-git parent directory.",
24
+ "maxItems": 256,
25
+ "type": "array",
26
+ "items": {
27
+ "type": "string"
28
+ }
29
+ },
30
+ "format": {
31
+ "default": "markdown",
32
+ "type": "string",
33
+ "enum": [
34
+ "markdown",
35
+ "json"
36
+ ]
37
+ },
38
+ "nestedRoots": {
39
+ "type": "array",
40
+ "items": {
41
+ "type": "string"
42
+ }
43
+ },
44
+ "preset": {
45
+ "type": "string"
46
+ },
47
+ "presetMerge": {
48
+ "default": false,
49
+ "description": "Merge with preset instead of replacing.",
50
+ "type": "boolean"
51
+ },
52
+ "remote": {
53
+ "description": "Pair with `branch`.",
54
+ "type": "string"
55
+ },
56
+ "branch": {
57
+ "description": "Pair with `remote`.",
58
+ "type": "string"
59
+ },
60
+ "maxRoots": {
61
+ "default": 64,
62
+ "type": "integer",
63
+ "minimum": 1,
64
+ "maximum": 256
65
+ }
66
+ },
67
+ "required": [
68
+ "allWorkspaceRoots",
69
+ "format",
70
+ "presetMerge",
71
+ "maxRoots"
72
+ ],
73
+ "additionalProperties": false
74
+ }
@@ -0,0 +1,75 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "@rethunk/mcp-multi-root-git: git_log",
4
+ "description": "Parameter schema for the 'git_log' MCP tool.",
5
+ "type": "object",
6
+ "properties": {
7
+ "workspaceRoot": {
8
+ "description": "Highest-priority override.",
9
+ "type": "string"
10
+ },
11
+ "rootIndex": {
12
+ "description": "0-based index into the MCP file roots list; ignored when workspaceRoot is set.",
13
+ "type": "integer",
14
+ "minimum": 0,
15
+ "maximum": 9007199254740991
16
+ },
17
+ "allWorkspaceRoots": {
18
+ "default": false,
19
+ "description": "Fan out across all MCP file roots.",
20
+ "type": "boolean"
21
+ },
22
+ "absoluteGitRoots": {
23
+ "description": "Absolute paths to git repo roots. Use for many sibling clones under a non-git parent directory.",
24
+ "maxItems": 256,
25
+ "type": "array",
26
+ "items": {
27
+ "type": "string"
28
+ }
29
+ },
30
+ "format": {
31
+ "default": "markdown",
32
+ "type": "string",
33
+ "enum": [
34
+ "markdown",
35
+ "json"
36
+ ]
37
+ },
38
+ "since": {
39
+ "description": "Passed to `git log --since=`. Accepts ISO timestamps or git relative forms like `48.hours` or `2.weeks.ago`. Default: `7.days`.",
40
+ "type": "string"
41
+ },
42
+ "paths": {
43
+ "description": "Limit to commits touching these paths (passed as `-- <paths>`).",
44
+ "type": "array",
45
+ "items": {
46
+ "type": "string"
47
+ }
48
+ },
49
+ "grep": {
50
+ "description": "Filter commits whose message matches this regex (git `--grep`, case-insensitive).",
51
+ "type": "string"
52
+ },
53
+ "author": {
54
+ "description": "Filter by author name or email (passed as `--author=`).",
55
+ "type": "string"
56
+ },
57
+ "maxCommits": {
58
+ "default": 50,
59
+ "description": "Maximum commits to return per root (hard cap 500). Default 50.",
60
+ "type": "integer",
61
+ "minimum": 1,
62
+ "maximum": 500
63
+ },
64
+ "branch": {
65
+ "description": "Ref/branch to log from. Default: HEAD.",
66
+ "type": "string"
67
+ }
68
+ },
69
+ "required": [
70
+ "allWorkspaceRoots",
71
+ "format",
72
+ "maxCommits"
73
+ ],
74
+ "additionalProperties": false
75
+ }
@@ -0,0 +1,79 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "@rethunk/mcp-multi-root-git: git_merge",
4
+ "description": "Parameter schema for the 'git_merge' MCP tool.",
5
+ "type": "object",
6
+ "properties": {
7
+ "workspaceRoot": {
8
+ "description": "Highest-priority override.",
9
+ "type": "string"
10
+ },
11
+ "rootIndex": {
12
+ "description": "0-based index into the MCP file roots list; ignored when workspaceRoot is set.",
13
+ "type": "integer",
14
+ "minimum": 0,
15
+ "maximum": 9007199254740991
16
+ },
17
+ "allWorkspaceRoots": {
18
+ "default": false,
19
+ "description": "Fan out across all MCP file roots.",
20
+ "type": "boolean"
21
+ },
22
+ "format": {
23
+ "default": "markdown",
24
+ "type": "string",
25
+ "enum": [
26
+ "markdown",
27
+ "json"
28
+ ]
29
+ },
30
+ "sources": {
31
+ "minItems": 1,
32
+ "maxItems": 20,
33
+ "type": "array",
34
+ "items": {
35
+ "type": "string",
36
+ "minLength": 1
37
+ },
38
+ "description": "Branches to merge into the destination, in order."
39
+ },
40
+ "into": {
41
+ "description": "Destination branch. Defaults to the currently checked-out branch.",
42
+ "type": "string"
43
+ },
44
+ "strategy": {
45
+ "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).",
47
+ "type": "string",
48
+ "enum": [
49
+ "auto",
50
+ "ff-only",
51
+ "rebase",
52
+ "merge"
53
+ ]
54
+ },
55
+ "message": {
56
+ "description": "Merge commit message (used only when a merge commit is created).",
57
+ "type": "string"
58
+ },
59
+ "deleteMergedBranches": {
60
+ "default": false,
61
+ "description": "After all sources merge cleanly, delete each source branch locally (`git branch -d`). Protected names always skipped. Never affects remote branches.",
62
+ "type": "boolean"
63
+ },
64
+ "deleteMergedWorktrees": {
65
+ "default": false,
66
+ "description": "After all sources merge cleanly, remove any local worktree currently checked out on a source branch (`git worktree remove`). Protected tails always skipped.",
67
+ "type": "boolean"
68
+ }
69
+ },
70
+ "required": [
71
+ "allWorkspaceRoots",
72
+ "format",
73
+ "sources",
74
+ "strategy",
75
+ "deleteMergedBranches",
76
+ "deleteMergedWorktrees"
77
+ ],
78
+ "additionalProperties": false
79
+ }
@@ -0,0 +1,74 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "@rethunk/mcp-multi-root-git: git_parity",
4
+ "description": "Parameter schema for the 'git_parity' MCP tool.",
5
+ "type": "object",
6
+ "properties": {
7
+ "workspaceRoot": {
8
+ "description": "Highest-priority override.",
9
+ "type": "string"
10
+ },
11
+ "rootIndex": {
12
+ "description": "0-based index into the MCP file roots list; ignored when workspaceRoot is set.",
13
+ "type": "integer",
14
+ "minimum": 0,
15
+ "maximum": 9007199254740991
16
+ },
17
+ "allWorkspaceRoots": {
18
+ "default": false,
19
+ "description": "Fan out across all MCP file roots.",
20
+ "type": "boolean"
21
+ },
22
+ "absoluteGitRoots": {
23
+ "description": "Absolute paths to git repo roots. Use for many sibling clones under a non-git parent directory.",
24
+ "maxItems": 256,
25
+ "type": "array",
26
+ "items": {
27
+ "type": "string"
28
+ }
29
+ },
30
+ "format": {
31
+ "default": "markdown",
32
+ "type": "string",
33
+ "enum": [
34
+ "markdown",
35
+ "json"
36
+ ]
37
+ },
38
+ "pairs": {
39
+ "type": "array",
40
+ "items": {
41
+ "type": "object",
42
+ "properties": {
43
+ "left": {
44
+ "type": "string"
45
+ },
46
+ "right": {
47
+ "type": "string"
48
+ },
49
+ "label": {
50
+ "type": "string"
51
+ }
52
+ },
53
+ "required": [
54
+ "left",
55
+ "right"
56
+ ],
57
+ "additionalProperties": false
58
+ }
59
+ },
60
+ "preset": {
61
+ "type": "string"
62
+ },
63
+ "presetMerge": {
64
+ "default": false,
65
+ "type": "boolean"
66
+ }
67
+ },
68
+ "required": [
69
+ "allWorkspaceRoots",
70
+ "format",
71
+ "presetMerge"
72
+ ],
73
+ "additionalProperties": false
74
+ }