ccdesk 0.0.0-stage → 0.2.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 (56) hide show
  1. package/CHANGELOG.md +90 -0
  2. package/LICENSE +21 -0
  3. package/README.md +131 -2
  4. package/dist/server/agent-edit.js +77 -0
  5. package/dist/server/backups.js +303 -0
  6. package/dist/server/cli.js +105 -0
  7. package/dist/server/mcp-edit.js +263 -0
  8. package/dist/server/mutations.js +193 -0
  9. package/dist/server/open.js +139 -0
  10. package/dist/server/scan/compare.js +34 -0
  11. package/dist/server/scan/context.js +140 -0
  12. package/dist/server/scan/env.js +28 -0
  13. package/dist/server/scan/files.js +478 -0
  14. package/dist/server/scan/index.js +280 -0
  15. package/dist/server/scan/instructions.js +289 -0
  16. package/dist/server/scan/inventory.js +452 -0
  17. package/dist/server/scan/mcp.js +313 -0
  18. package/dist/server/scan/memory.js +90 -0
  19. package/dist/server/scan/path-test.js +121 -0
  20. package/dist/server/scan/permissions.js +101 -0
  21. package/dist/server/scan/plugins.js +124 -0
  22. package/dist/server/scan/projects.js +101 -0
  23. package/dist/server/scan/sandbox.js +161 -0
  24. package/dist/server/scan/settings.js +330 -0
  25. package/dist/server/scan/tools.js +111 -0
  26. package/dist/server/scan/usage.js +514 -0
  27. package/dist/server/schema.js +15 -0
  28. package/dist/server/secrets.js +63 -0
  29. package/dist/server/server.js +352 -0
  30. package/dist/server/settings-edit.js +221 -0
  31. package/dist/server/watch.js +214 -0
  32. package/dist/server/write.js +233 -0
  33. package/dist/shared/builtin-tools.json +235 -0
  34. package/dist/shared/compare.js +1 -0
  35. package/dist/shared/hook-events.json +35 -0
  36. package/dist/shared/mcp-server.schema.json +25 -0
  37. package/dist/shared/memory.js +4 -0
  38. package/dist/shared/scopes.js +20 -0
  39. package/dist/shared/settings-scopes.json +208 -0
  40. package/dist/shared/settings.schema.json +4623 -0
  41. package/dist/shared/types.js +2 -0
  42. package/dist/ui/assets/hanken-grotesk-cyrillic-ext-wght-normal-D_UHSL_T.woff2 +0 -0
  43. package/dist/ui/assets/hanken-grotesk-latin-ext-wght-normal-Dg-wlmqe.woff2 +0 -0
  44. package/dist/ui/assets/hanken-grotesk-latin-wght-normal-CaVRRdDk.woff2 +0 -0
  45. package/dist/ui/assets/hanken-grotesk-vietnamese-wght-normal-CHiFlh_0.woff2 +0 -0
  46. package/dist/ui/assets/index-BQ3Lhx8z.js +60 -0
  47. package/dist/ui/assets/index-BRgGlpjd.css +1 -0
  48. package/dist/ui/assets/jetbrains-mono-cyrillic-ext-wght-normal-EocZY2iu.woff2 +0 -0
  49. package/dist/ui/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2 +0 -0
  50. package/dist/ui/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2 +0 -0
  51. package/dist/ui/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2 +0 -0
  52. package/dist/ui/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2 +0 -0
  53. package/dist/ui/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2 +0 -0
  54. package/dist/ui/index.html +15 -0
  55. package/dist/ui/logo.png +0 -0
  56. package/package.json +86 -4
@@ -0,0 +1,235 @@
1
+ {
2
+ "$comment": "From the tool table at https://code.claude.com/docs/en/tools-reference.md",
3
+ "tools": [
4
+ {
5
+ "name": "Agent",
6
+ "description": "Spawns a subagent with its own context window to handle a task. With agent teams enabled, a call that carries a `name` can launch a teammate instead.",
7
+ "asks": false
8
+ },
9
+ {
10
+ "name": "Artifact",
11
+ "description": "Publishes an HTML or Markdown file as an artifact: a private, interactive page on claude.ai. You can share it with a public link, or inside your organization on Team and Enterprise plans, where public sharing requires an Owner to enable it. Requires a Pro, Max, Team, or Enterprise plan and `/login` authentication",
12
+ "asks": true
13
+ },
14
+ {
15
+ "name": "AskUserQuestion",
16
+ "description": "Asks multiple-choice questions to gather requirements or clarify ambiguity. Questions stay open until you answer them by default.",
17
+ "asks": false
18
+ },
19
+ {
20
+ "name": "Bash",
21
+ "description": "Executes shell commands in your environment.",
22
+ "asks": true
23
+ },
24
+ {
25
+ "name": "CronCreate",
26
+ "description": "Schedules a recurring or one-shot prompt within the current session. Tasks are session-scoped and restored on `--resume` or `--continue` if unexpired.",
27
+ "asks": false
28
+ },
29
+ {
30
+ "name": "CronDelete",
31
+ "description": "Cancels a scheduled task by ID",
32
+ "asks": false
33
+ },
34
+ {
35
+ "name": "CronList",
36
+ "description": "Lists all scheduled tasks in the session",
37
+ "asks": false
38
+ },
39
+ {
40
+ "name": "Edit",
41
+ "description": "Makes targeted edits to specific files.",
42
+ "asks": true
43
+ },
44
+ {
45
+ "name": "EndConversation",
46
+ "description": "Ends the session, in rare cases of sustained abusive input or when you ask Claude to demonstrate the tool. Requires Claude Code v2.1.213 or later.",
47
+ "asks": false
48
+ },
49
+ {
50
+ "name": "EnterPlanMode",
51
+ "description": "Switches to plan mode to design an approach before coding",
52
+ "asks": false
53
+ },
54
+ {
55
+ "name": "EnterWorktree",
56
+ "description": "Creates an isolated git worktree and switches into it. Pass a `path` to switch into an existing worktree instead of creating a new one. On first entry the target may be a worktree of the current repository or, in a multi-repo workspace, of a repository nested inside it. Before v2.1.203, a nested repository's worktree was rejected. A `path` outside `.claude/worktrees/` prompts for your approval before entering, since it moves the session's working directory and write access to that location. New-worktree creation and paths under `.claude/worktrees/` don't prompt. Before v2.1.206, Claude entered paths outside `.claude/worktrees/` without a prompt. From within a worktree session, or from a subagent with a pinned working directory such as `isolation: worktree`, only the `path` form is available and the target must be under `.claude/worktrees/` of the session's repository",
57
+ "asks": true
58
+ },
59
+ {
60
+ "name": "ExitPlanMode",
61
+ "description": "Presents a plan for approval and exits plan mode",
62
+ "asks": true
63
+ },
64
+ {
65
+ "name": "ExitWorktree",
66
+ "description": "Exits a worktree session and returns to the original directory. Not available to subagents that already run in their own working directory, such as with `isolation: worktree`",
67
+ "asks": false
68
+ },
69
+ {
70
+ "name": "Glob",
71
+ "description": "Finds files based on pattern matching. Absent by default on macOS, Linux, and WSL.",
72
+ "asks": false
73
+ },
74
+ {
75
+ "name": "Grep",
76
+ "description": "Searches for patterns in file contents. Absent by default on macOS, Linux, and WSL.",
77
+ "asks": false
78
+ },
79
+ {
80
+ "name": "ListAgents",
81
+ "description": "Lists the agents Claude can message with `SendMessage`: subagents in the session, agent team teammates, your other local Claude Code sessions, and, while this session is connected to Remote Control, your cloud sessions and your Remote Control sessions on other machines. Backs the `/list-agents` command. Requires Claude Code v2.1.224 or later, and appears only in sessions where cross-session messaging is enabled. Teammate rows and the first line showing this session's own name require v2.1.239 or later",
82
+ "asks": false
83
+ },
84
+ {
85
+ "name": "ListMcpResourcesTool",
86
+ "description": "Lists resources exposed by connected MCP servers, leaving out MCP Apps UI resources, which are pages for a host application to render",
87
+ "asks": false
88
+ },
89
+ {
90
+ "name": "LSP",
91
+ "description": "Code intelligence via language servers: jump to definitions, find references, report type errors and warnings.",
92
+ "asks": false
93
+ },
94
+ {
95
+ "name": "Monitor",
96
+ "description": "Runs a command in the background and feeds each output line back to Claude, so it can react to log entries, file changes, or polled status mid-conversation. Can also open a WebSocket and treat each incoming message as an event.",
97
+ "asks": true
98
+ },
99
+ {
100
+ "name": "NotebookEdit",
101
+ "description": "Modifies Jupyter notebook cells.",
102
+ "asks": true
103
+ },
104
+ {
105
+ "name": "PowerShell",
106
+ "description": "Executes PowerShell commands natively.",
107
+ "asks": true
108
+ },
109
+ {
110
+ "name": "PushNotification",
111
+ "description": "Sends a desktop notification, and a phone push when Remote Control is connected, so a long-running task or scheduled task can reach you when you step away. Push delivery runs through Anthropic-hosted infrastructure, which is not accessible from Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform, or Microsoft Foundry",
112
+ "asks": false
113
+ },
114
+ {
115
+ "name": "Read",
116
+ "description": "Reads the contents of files.",
117
+ "asks": false
118
+ },
119
+ {
120
+ "name": "ReadMcpResourceTool",
121
+ "description": "Reads a specific MCP resource by URI",
122
+ "asks": false
123
+ },
124
+ {
125
+ "name": "RemoteTrigger",
126
+ "description": "Creates, updates, runs, and lists Routines on claude.ai. Backs the `/schedule` command. The `RemoteTrigger` input reference documents every action and the organization policies that remove the tool. Routines live on claude.ai and require a Pro, Max, Team, or Enterprise plan, so this tool is not accessible from Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform, or Microsoft Foundry",
127
+ "asks": false
128
+ },
129
+ {
130
+ "name": "ReportFindings",
131
+ "description": "Reports code-review findings as a structured list, with a file, summary, and failure scenario per finding, so Claude Code can render them instead of printing them as text. Claude calls it when active code-review instructions tell it to. A finding can also carry an optional `category` slug, such as `correctness` or `test-coverage`, shown next to the file location in the rendered list",
132
+ "asks": false
133
+ },
134
+ {
135
+ "name": "ScheduleWakeup",
136
+ "description": "Reschedules the next iteration of a self-paced `/loop`. Claude calls this at the end of each iteration to pick when the next one runs, between one minute and one hour out; you don't call it directly. To end the loop instead, Claude calls it with `stop: true`, which cancels the pending wakeup. The `stop` field requires Claude Code v2.1.202 or later. The pending wakeup appears in `session_crons` in Stop hook input",
137
+ "asks": false
138
+ },
139
+ {
140
+ "name": "SendFeedback",
141
+ "description": "Drafts a feedback report about Claude Code, covering a product problem or Claude's own behavior in the session, and queues it on your machine for you to review. Claude Code sends nothing until you choose to send the draft. Requires Claude Code v2.1.238 or later",
142
+ "asks": false
143
+ },
144
+ {
145
+ "name": "SendMessage",
146
+ "description": "Sends a message to another agent: an agent team teammate, a subagent it resumes by agent ID or name, or one of your other Claude Code sessions, on this machine or beyond it. Messaging other sessions requires Claude Code v2.1.224 or later. Cross-session messaging covers which sessions Claude can reach, what a message looks like when it arrives, and how Claude gets a notice when another session goes idle. Claude can include an optional `summary` input, typically 5-10 words, that Claude Code shows as a one-line preview. When Claude omits it on a plain-text message, Claude Code uses the first line of the message as the summary. Claude Code truncates a summary longer than 200 characters with an ellipsis",
147
+ "asks": false
148
+ },
149
+ {
150
+ "name": "SendUserFile",
151
+ "description": "Sends files from the session to you with an optional caption, so a generated report, diagram, screenshot, or built artifact reaches your device instead of only being mentioned in the transcript. The optional `display` input controls presentation: `render` opens the file inline in the client, `attach` shows a download card only, and when unset the client decides by file type. Available when a Remote Control client is connected or in a cloud session. Delivery runs through Anthropic-hosted infrastructure, so the tool is not available on Amazon Bedrock, Google Cloud's Agent Platform, or Microsoft Foundry",
152
+ "asks": false
153
+ },
154
+ {
155
+ "name": "ShareOnboardingGuide",
156
+ "description": "Uploads `ONBOARDING.md` and returns a share link teammates can open in Claude Code. Called from `/team-onboarding` after the guide is written. Available to claude.ai subscribers on Pro, Max, Team, and Enterprise plans",
157
+ "asks": true
158
+ },
159
+ {
160
+ "name": "Skill",
161
+ "description": "Executes a skill within the main conversation",
162
+ "asks": true
163
+ },
164
+ {
165
+ "name": "SubagentHandback",
166
+ "description": "Delivers a subagent's final report to whichever conversation receives that subagent's result. Provided only in auto mode, to subagents that the Agent tool runs locally other than forks, and available in the terminal CLI, IDE extensions, cloud sessions, and the Agent SDK; the classifier reviews the report before it's delivered. Requires Claude Code v2.1.271 or later",
167
+ "asks": false
168
+ },
169
+ {
170
+ "name": "TaskCreate",
171
+ "description": "Creates a new task in the task list. Provided by default only on the models listed under Task tool availability, and on other models when you opt in",
172
+ "asks": false
173
+ },
174
+ {
175
+ "name": "TaskGet",
176
+ "description": "Retrieves full details for a specific task. Provided by default only on the models listed under Task tool availability, and on other models when you opt in",
177
+ "asks": false
178
+ },
179
+ {
180
+ "name": "TaskList",
181
+ "description": "Lists all tasks with their current status. Provided by default only on the models listed under Task tool availability, and on other models when you opt in",
182
+ "asks": false
183
+ },
184
+ {
185
+ "name": "TaskOutput",
186
+ "description": "Retrieves output from a background task. Deprecated in favor of `Read` on the task's output file path. When no task matches the ID, the error lists the running background agents by ID and description. Before v2.1.203, the error named only the missing ID",
187
+ "asks": false
188
+ },
189
+ {
190
+ "name": "TaskStop",
191
+ "description": "Stops a running background task by ID. It also accepts an agent-team teammate or a named background agent by agent ID or name. When no task matches the ID, the error lists the running background agents by ID and description, including agents that another agent spawned. Before v2.1.203, the error listed running teammates and named agents but not background agents another agent spawned, so those couldn't be identified or stopped from the main conversation",
192
+ "asks": false
193
+ },
194
+ {
195
+ "name": "TaskUpdate",
196
+ "description": "Updates task status, dependencies, details, or deletes tasks. Provided by default only on the models listed under Task tool availability, and on other models when you opt in",
197
+ "asks": false
198
+ },
199
+ {
200
+ "name": "TodoWrite",
201
+ "description": "Manages the session task checklist. Disabled by default in favor of `TaskCreate`, `TaskGet`, `TaskList`, and `TaskUpdate`. Set `CLAUDE_CODE_ENABLE_TASKS=0` to re-enable it in sessions that have the task-tracking tools",
202
+ "asks": false
203
+ },
204
+ {
205
+ "name": "ToolSearch",
206
+ "description": "Searches for and loads deferred tools when tool search is enabled",
207
+ "asks": false
208
+ },
209
+ {
210
+ "name": "WaitForMcpServers",
211
+ "description": "Waits for one or more MCP servers that are still connecting in the background, so a request can use their tools without restarting the session. Claude calls it when a needed server isn't connected yet. Only appears when tool search is disabled, since `ToolSearch` handles the wait when it's enabled",
212
+ "asks": false
213
+ },
214
+ {
215
+ "name": "WebFetch",
216
+ "description": "Fetches content from a specified URL.",
217
+ "asks": true
218
+ },
219
+ {
220
+ "name": "WebSearch",
221
+ "description": "Performs web searches.",
222
+ "asks": true
223
+ },
224
+ {
225
+ "name": "Workflow",
226
+ "description": "Runs a dynamic workflow: a script that orchestrates many subagents in the background and returns one consolidated result",
227
+ "asks": true
228
+ },
229
+ {
230
+ "name": "Write",
231
+ "description": "Creates or overwrites files.",
232
+ "asks": true
233
+ }
234
+ ]
235
+ }
@@ -0,0 +1 @@
1
+ import {} from "./types.js";
@@ -0,0 +1,35 @@
1
+ [
2
+ "PreToolUse",
3
+ "PostToolUse",
4
+ "PostToolUseFailure",
5
+ "PostToolBatch",
6
+ "Notification",
7
+ "UserPromptSubmit",
8
+ "UserPromptExpansion",
9
+ "SessionStart",
10
+ "SessionEnd",
11
+ "Stop",
12
+ "StopFailure",
13
+ "SubagentStart",
14
+ "SubagentStop",
15
+ "PreCompact",
16
+ "PostCompact",
17
+ "PreModelSwitch",
18
+ "PostModelSwitch",
19
+ "PermissionRequest",
20
+ "PermissionDenied",
21
+ "Setup",
22
+ "TeammateIdle",
23
+ "TaskCreated",
24
+ "TaskCompleted",
25
+ "Elicitation",
26
+ "ElicitationResult",
27
+ "ConfigChange",
28
+ "WorktreeCreate",
29
+ "WorktreeRemove",
30
+ "InstructionsLoaded",
31
+ "CwdChanged",
32
+ "FileChanged",
33
+ "DirectoryAdded",
34
+ "MessageDisplay"
35
+ ]
@@ -0,0 +1,25 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$comment": "One server entry of .mcp.json, ~/.claude.json or claude mcp add-json, with the fields https://code.claude.com/docs/en/mcp defines. Fields it does not name are left alone.",
4
+ "type": "object",
5
+ "properties": {
6
+ "type": { "enum": ["stdio", "http", "streamable-http", "sse", "ws"] },
7
+ "command": { "type": "string" },
8
+ "args": { "type": "array", "items": { "type": "string" } },
9
+ "env": { "type": "object", "additionalProperties": { "type": "string" } },
10
+ "url": { "type": "string" },
11
+ "headers": { "type": "object", "additionalProperties": { "type": "string" } },
12
+ "headersHelper": { "type": "string" },
13
+ "oauth": {
14
+ "type": "object",
15
+ "properties": {
16
+ "clientId": { "type": "string" },
17
+ "callbackPort": { "type": "integer" },
18
+ "authServerMetadataUrl": { "type": "string" },
19
+ "scopes": { "type": "string" }
20
+ }
21
+ },
22
+ "timeout": { "type": "number" },
23
+ "alwaysLoad": { "type": "boolean" }
24
+ }
25
+ }
@@ -0,0 +1,4 @@
1
+ /** Claude Code names a project's store after its path with every non-alphanumeric character as "-". */
2
+ export function storeDirName(projectPath) {
3
+ return projectPath.replace(/[^a-zA-Z0-9]/g, "-");
4
+ }
@@ -0,0 +1,20 @@
1
+ import scopeTable from "./settings-scopes.json" with { type: "json" };
2
+ import {} from "./types.js";
3
+ export const EVERY_FILE = ["user", "project", "local", "managed"];
4
+ /** Settings files by precedence: managed beats local beats project beats user. */
5
+ export const HIGHEST_FIRST = ["managed", "local", "project", "user"];
6
+ /** The settings files ccdesk writes to; managed settings belong to your organisation. */
7
+ export const EDITABLE_SCOPES = ["user", "project", "local"];
8
+ /** The permission lists, in the order ccdesk shows them. */
9
+ export const PERMISSION_LISTS = ["allow", "ask", "deny"];
10
+ /** Keys Claude Code reads only from some files, from the settings index (`pnpm scopes`). */
11
+ const SCOPE_LIMITED_KEYS = scopeTable.limited;
12
+ export function allowedScopes(key) {
13
+ return Object.hasOwn(SCOPE_LIMITED_KEYS, key) ? SCOPE_LIMITED_KEYS[key] : EVERY_FILE;
14
+ }
15
+ export function ignoredReason(key) {
16
+ const allowed = allowedScopes(key);
17
+ if (allowed.length === 0)
18
+ return "Claude Code reads this key from ~/.claude.json, not from settings files";
19
+ return `Claude Code reads this key only from ${allowed.join(" or ")} settings`;
20
+ }
@@ -0,0 +1,208 @@
1
+ {
2
+ "$comment": "From the settings index at https://code.claude.com/docs/en/settings-reference.md",
3
+ "limited": {
4
+ "allowAllClaudeAiMcps": [
5
+ "managed"
6
+ ],
7
+ "allowClaudeInChromeWithManagedMcp": [
8
+ "managed"
9
+ ],
10
+ "allowedChannelPlugins": [
11
+ "managed"
12
+ ],
13
+ "allowedProviders": [
14
+ "managed"
15
+ ],
16
+ "allowManagedHooksOnly": [
17
+ "managed"
18
+ ],
19
+ "allowManagedMcpServersOnly": [
20
+ "managed"
21
+ ],
22
+ "allowManagedPermissionRulesOnly": [
23
+ "managed"
24
+ ],
25
+ "askUserQuestionTimeout": [
26
+ "managed",
27
+ "user"
28
+ ],
29
+ "appendPlugins": [
30
+ "managed",
31
+ "user"
32
+ ],
33
+ "autoConnectIde": [],
34
+ "autoContinueAtUsageLimit": [
35
+ "managed",
36
+ "user"
37
+ ],
38
+ "autoInstallIdeExtension": [],
39
+ "autoMode": [
40
+ "managed",
41
+ "user"
42
+ ],
43
+ "availableModelsMatch": [
44
+ "managed"
45
+ ],
46
+ "bashEditDiffEnabled": [
47
+ "managed",
48
+ "user"
49
+ ],
50
+ "blockedMarketplaces": [
51
+ "managed"
52
+ ],
53
+ "browserExternalPageTools": [
54
+ "managed"
55
+ ],
56
+ "channelsEnabled": [
57
+ "managed"
58
+ ],
59
+ "claudeInChromeDefaultEnabled": [],
60
+ "claudeMd": [
61
+ "managed"
62
+ ],
63
+ "copyFullResponse": [],
64
+ "copyOnSelect": [],
65
+ "defaultToAgentsView": [],
66
+ "deniedModels": [
67
+ "managed"
68
+ ],
69
+ "desktopSessionCleanupPeriodDays": [
70
+ "managed",
71
+ "user"
72
+ ],
73
+ "dialogExpiry": [
74
+ "managed",
75
+ "user"
76
+ ],
77
+ "diffTool": [],
78
+ "disableBrowserExternalNavigation": [
79
+ "managed"
80
+ ],
81
+ "disableCommandPluginSources": [
82
+ "managed"
83
+ ],
84
+ "disableDesktopLocalSessions": [
85
+ "managed"
86
+ ],
87
+ "disableMobileSimulatorTools": [
88
+ "managed"
89
+ ],
90
+ "disableSideloadFlags": [
91
+ "managed"
92
+ ],
93
+ "externalEditorContext": [],
94
+ "feedbackDrafts": [
95
+ "managed",
96
+ "user"
97
+ ],
98
+ "footerLinksRegexes": [
99
+ "managed",
100
+ "user"
101
+ ],
102
+ "forceLoginGatewayUrl": [
103
+ "managed",
104
+ "user"
105
+ ],
106
+ "forceRemoteSettingsRefresh": [
107
+ "managed"
108
+ ],
109
+ "gatewayInternalNetworks": [
110
+ "managed"
111
+ ],
112
+ "leftArrowOpensAgents": [],
113
+ "managedMcpServers": [
114
+ "managed"
115
+ ],
116
+ "managedSourcesBehavior": [
117
+ "managed"
118
+ ],
119
+ "modelPicker": [
120
+ "managed",
121
+ "user"
122
+ ],
123
+ "modelPricing": [
124
+ "managed"
125
+ ],
126
+ "parentSettingsBehavior": [
127
+ "managed"
128
+ ],
129
+ "permissionExplainerEnabled": [],
130
+ "pluginConfigs": [
131
+ "managed",
132
+ "user"
133
+ ],
134
+ "pluginSuggestionMarketplaces": [
135
+ "managed"
136
+ ],
137
+ "pluginTrustMessage": [
138
+ "managed"
139
+ ],
140
+ "policyHelper": [
141
+ "managed"
142
+ ],
143
+ "prependPlugins": [
144
+ "managed",
145
+ "user"
146
+ ],
147
+ "processWrapper": [
148
+ "managed",
149
+ "user"
150
+ ],
151
+ "prStatusFooterEnabled": [],
152
+ "requiredMaximumVersion": [
153
+ "managed"
154
+ ],
155
+ "requiredMinimumVersion": [
156
+ "managed"
157
+ ],
158
+ "skipAutoPermissionPrompt": [
159
+ "managed",
160
+ "user"
161
+ ],
162
+ "skipDangerousModePermissionPrompt": [
163
+ "managed",
164
+ "user",
165
+ "local"
166
+ ],
167
+ "spellcheck": [
168
+ "managed",
169
+ "user"
170
+ ],
171
+ "sshConfigs": [
172
+ "managed",
173
+ "user"
174
+ ],
175
+ "sshHostAllowlist": [
176
+ "managed"
177
+ ],
178
+ "strictKnownMarketplaces": [
179
+ "managed"
180
+ ],
181
+ "strictPluginOnlyCustomization": [
182
+ "managed"
183
+ ],
184
+ "syncClaudeAiPlugins": [
185
+ "managed",
186
+ "user",
187
+ "local"
188
+ ],
189
+ "syncClaudeAiSkills": [
190
+ "managed",
191
+ "user",
192
+ "local"
193
+ ],
194
+ "teammateDefaultModel": [],
195
+ "useAutoModeDuringPlan": [
196
+ "managed",
197
+ "user",
198
+ "local"
199
+ ],
200
+ "vimInsertModeRemaps": [
201
+ "managed",
202
+ "user"
203
+ ],
204
+ "wslInheritsWindowsSettings": [
205
+ "managed"
206
+ ]
207
+ }
208
+ }