@gaunt-sloth/core 2.0.0-alpha.4 → 2.0.0-alpha.40

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 (289) hide show
  1. package/README.md +71 -20
  2. package/dist/config/colour.d.ts +38 -0
  3. package/dist/config/colour.js +36 -0
  4. package/dist/config/colour.js.map +1 -0
  5. package/dist/config/configDiscovery.d.ts +79 -0
  6. package/dist/config/configDiscovery.js +80 -0
  7. package/dist/config/configDiscovery.js.map +1 -0
  8. package/dist/config/defaults.d.ts +21 -21
  9. package/dist/config/defaults.js +11 -9
  10. package/dist/config/defaults.js.map +1 -1
  11. package/dist/config/filesystem-tools.d.ts +41 -0
  12. package/dist/config/filesystem-tools.js +56 -0
  13. package/dist/config/filesystem-tools.js.map +1 -0
  14. package/dist/config/jsonc.d.ts +12 -0
  15. package/dist/config/jsonc.js +41 -0
  16. package/dist/config/jsonc.js.map +1 -0
  17. package/dist/config/loader.d.ts +165 -6
  18. package/dist/config/loader.js +963 -109
  19. package/dist/config/loader.js.map +1 -1
  20. package/dist/config/mouse.d.ts +50 -0
  21. package/dist/config/mouse.js +44 -0
  22. package/dist/config/mouse.js.map +1 -0
  23. package/dist/config/profiles.d.ts +68 -0
  24. package/dist/config/profiles.js +93 -0
  25. package/dist/config/profiles.js.map +1 -0
  26. package/dist/config/providerKeys.d.ts +69 -0
  27. package/dist/config/providerKeys.js +69 -0
  28. package/dist/config/providerKeys.js.map +1 -0
  29. package/dist/config/schema.d.ts +2695 -130
  30. package/dist/config/schema.js +1385 -68
  31. package/dist/config/schema.js.map +1 -1
  32. package/dist/config/shell-policy.d.ts +899 -111
  33. package/dist/config/shell-policy.js +800 -70
  34. package/dist/config/shell-policy.js.map +1 -1
  35. package/dist/config/tool-descriptions.d.ts +211 -0
  36. package/dist/config/tool-descriptions.js +272 -0
  37. package/dist/config/tool-descriptions.js.map +1 -0
  38. package/dist/config/types.d.ts +372 -34
  39. package/dist/config/types.js +1 -0
  40. package/dist/config/types.js.map +1 -1
  41. package/dist/config.d.ts +35 -1
  42. package/dist/config.js +16 -1
  43. package/dist/config.js.map +1 -1
  44. package/dist/constants.d.ts +45 -0
  45. package/dist/constants.js +45 -0
  46. package/dist/constants.js.map +1 -1
  47. package/dist/core/GthAbstractAgent.d.ts +190 -11
  48. package/dist/core/GthAbstractAgent.js +551 -35
  49. package/dist/core/GthAbstractAgent.js.map +1 -1
  50. package/dist/core/GthAgentRunner.d.ts +565 -57
  51. package/dist/core/GthAgentRunner.js +1546 -140
  52. package/dist/core/GthAgentRunner.js.map +1 -1
  53. package/dist/core/GthLangChainAgent.d.ts +117 -2
  54. package/dist/core/GthLangChainAgent.js +644 -18
  55. package/dist/core/GthLangChainAgent.js.map +1 -1
  56. package/dist/core/approvals/annotations.d.ts +122 -0
  57. package/dist/core/approvals/annotations.js +137 -0
  58. package/dist/core/approvals/annotations.js.map +1 -0
  59. package/dist/core/approvals/grants.d.ts +216 -0
  60. package/dist/core/approvals/grants.js +469 -0
  61. package/dist/core/approvals/grants.js.map +1 -0
  62. package/dist/core/approvals/matcher.d.ts +202 -0
  63. package/dist/core/approvals/matcher.js +267 -0
  64. package/dist/core/approvals/matcher.js.map +1 -0
  65. package/dist/core/approvals/mcpSubjects.d.ts +40 -0
  66. package/dist/core/approvals/mcpSubjects.js +99 -0
  67. package/dist/core/approvals/mcpSubjects.js.map +1 -0
  68. package/dist/core/approvals/promptHeader.d.ts +28 -0
  69. package/dist/core/approvals/promptHeader.js +62 -0
  70. package/dist/core/approvals/promptHeader.js.map +1 -0
  71. package/dist/core/approvals/toolAnnotationSources.d.ts +105 -0
  72. package/dist/core/approvals/toolAnnotationSources.js +277 -0
  73. package/dist/core/approvals/toolAnnotationSources.js.map +1 -0
  74. package/dist/core/approvals/toolHost.d.ts +46 -0
  75. package/dist/core/approvals/toolHost.js +108 -0
  76. package/dist/core/approvals/toolHost.js.map +1 -0
  77. package/dist/core/debugCapture.d.ts +74 -0
  78. package/dist/core/debugCapture.js +100 -0
  79. package/dist/core/debugCapture.js.map +1 -0
  80. package/dist/core/gthLeanAgentFactory.d.ts +9 -0
  81. package/dist/core/gthLeanAgentFactory.js +10 -0
  82. package/dist/core/gthLeanAgentFactory.js.map +1 -0
  83. package/dist/core/launchBanner.d.ts +127 -0
  84. package/dist/core/launchBanner.js +414 -0
  85. package/dist/core/launchBanner.js.map +1 -0
  86. package/dist/core/modelLabel.d.ts +19 -0
  87. package/dist/core/modelLabel.js +26 -0
  88. package/dist/core/modelLabel.js.map +1 -0
  89. package/dist/core/plainToolIndication.d.ts +15 -0
  90. package/dist/core/plainToolIndication.js +174 -0
  91. package/dist/core/plainToolIndication.js.map +1 -0
  92. package/dist/core/reasoningBlocks.d.ts +65 -0
  93. package/dist/core/reasoningBlocks.js +103 -0
  94. package/dist/core/reasoningBlocks.js.map +1 -0
  95. package/dist/core/refusal.d.ts +53 -0
  96. package/dist/core/refusal.js +133 -0
  97. package/dist/core/refusal.js.map +1 -0
  98. package/dist/core/runHeader.d.ts +38 -0
  99. package/dist/core/runHeader.js +42 -0
  100. package/dist/core/runHeader.js.map +1 -0
  101. package/dist/core/runStats.d.ts +52 -0
  102. package/dist/core/runStats.js +118 -0
  103. package/dist/core/runStats.js.map +1 -0
  104. package/dist/core/shell/ShellCommandFailedError.d.ts +53 -0
  105. package/dist/core/shell/ShellCommandFailedError.js +67 -0
  106. package/dist/core/shell/ShellCommandFailedError.js.map +1 -0
  107. package/dist/core/shell/abstention.d.ts +88 -0
  108. package/dist/core/shell/abstention.js +184 -0
  109. package/dist/core/shell/abstention.js.map +1 -0
  110. package/dist/core/shell/approvalCapture.d.ts +271 -0
  111. package/dist/core/shell/approvalCapture.js +108 -0
  112. package/dist/core/shell/approvalCapture.js.map +1 -0
  113. package/dist/core/shell/approvalStop.d.ts +123 -0
  114. package/dist/core/shell/approvalStop.js +269 -0
  115. package/dist/core/shell/approvalStop.js.map +1 -0
  116. package/dist/core/shell/arity.d.ts +6 -0
  117. package/dist/core/shell/arity.js +20 -6
  118. package/dist/core/shell/arity.js.map +1 -1
  119. package/dist/core/shell/denylist.d.ts +11 -0
  120. package/dist/core/shell/denylist.js +37 -0
  121. package/dist/core/shell/denylist.js.map +1 -0
  122. package/dist/core/shell/escalationSeverity.d.ts +141 -0
  123. package/dist/core/shell/escalationSeverity.js +89 -0
  124. package/dist/core/shell/escalationSeverity.js.map +1 -0
  125. package/dist/core/shell/framing.d.ts +190 -0
  126. package/dist/core/shell/framing.js +633 -0
  127. package/dist/core/shell/framing.js.map +1 -0
  128. package/dist/core/shell/hardline.d.ts +103 -0
  129. package/dist/core/shell/hardline.js +780 -0
  130. package/dist/core/shell/hardline.js.map +1 -0
  131. package/dist/core/shell/negotiation.d.ts +328 -0
  132. package/dist/core/shell/negotiation.js +488 -0
  133. package/dist/core/shell/negotiation.js.map +1 -0
  134. package/dist/core/shell/normalize.d.ts +44 -4
  135. package/dist/core/shell/normalize.js +61 -7
  136. package/dist/core/shell/normalize.js.map +1 -1
  137. package/dist/core/shell/openWorld.d.ts +263 -0
  138. package/dist/core/shell/openWorld.js +1188 -0
  139. package/dist/core/shell/openWorld.js.map +1 -0
  140. package/dist/core/shell/rater.d.ts +873 -0
  141. package/dist/core/shell/rater.js +1454 -0
  142. package/dist/core/shell/rater.js.map +1 -0
  143. package/dist/core/shell/raterModel.d.ts +41 -0
  144. package/dist/core/shell/raterModel.js +51 -0
  145. package/dist/core/shell/raterModel.js.map +1 -0
  146. package/dist/core/shell/raterVocabulary.d.ts +121 -0
  147. package/dist/core/shell/raterVocabulary.js +116 -0
  148. package/dist/core/shell/raterVocabulary.js.map +1 -0
  149. package/dist/core/shell/rejection.d.ts +69 -0
  150. package/dist/core/shell/rejection.js +38 -0
  151. package/dist/core/shell/rejection.js.map +1 -0
  152. package/dist/core/toolCallRepair/grammar.d.ts +41 -0
  153. package/dist/core/toolCallRepair/grammar.js +116 -0
  154. package/dist/core/toolCallRepair/grammar.js.map +1 -0
  155. package/dist/core/toolCallRepair/index.d.ts +2 -0
  156. package/dist/core/toolCallRepair/index.js +7 -0
  157. package/dist/core/toolCallRepair/index.js.map +1 -0
  158. package/dist/core/toolCallRepair/payload.d.ts +36 -0
  159. package/dist/core/toolCallRepair/payload.js +341 -0
  160. package/dist/core/toolCallRepair/payload.js.map +1 -0
  161. package/dist/core/toolCallRepair/promote.d.ts +45 -0
  162. package/dist/core/toolCallRepair/promote.js +90 -0
  163. package/dist/core/toolCallRepair/promote.js.map +1 -0
  164. package/dist/core/toolDisplay.d.ts +123 -0
  165. package/dist/core/toolDisplay.js +451 -0
  166. package/dist/core/toolDisplay.js.map +1 -0
  167. package/dist/core/toolOutputChannel.d.ts +95 -0
  168. package/dist/core/toolOutputChannel.js +165 -0
  169. package/dist/core/toolOutputChannel.js.map +1 -0
  170. package/dist/core/types.d.ts +378 -16
  171. package/dist/core/types.js.map +1 -1
  172. package/dist/history/historyFormat.d.ts +28 -0
  173. package/dist/history/historyFormat.js +127 -0
  174. package/dist/history/historyFormat.js.map +1 -0
  175. package/dist/history/historyStore.d.ts +198 -0
  176. package/dist/history/historyStore.js +482 -0
  177. package/dist/history/historyStore.js.map +1 -0
  178. package/dist/history/recordSession.d.ts +37 -0
  179. package/dist/history/recordSession.js +56 -0
  180. package/dist/history/recordSession.js.map +1 -0
  181. package/dist/index.d.ts +4 -0
  182. package/dist/index.js +4 -0
  183. package/dist/index.js.map +1 -1
  184. package/dist/providers/anthropic.d.ts +1 -1
  185. package/dist/providers/anthropic.js +17 -10
  186. package/dist/providers/anthropic.js.map +1 -1
  187. package/dist/providers/configurationPassthrough.d.ts +107 -0
  188. package/dist/providers/configurationPassthrough.js +148 -0
  189. package/dist/providers/configurationPassthrough.js.map +1 -0
  190. package/dist/providers/deepseek.d.ts +1 -1
  191. package/dist/providers/deepseek.js +5 -10
  192. package/dist/providers/deepseek.js.map +1 -1
  193. package/dist/providers/geminiSchemaSanitizer.d.ts +55 -0
  194. package/dist/providers/geminiSchemaSanitizer.js +347 -0
  195. package/dist/providers/geminiSchemaSanitizer.js.map +1 -0
  196. package/dist/providers/geminiThinking.d.ts +60 -0
  197. package/dist/providers/geminiThinking.js +92 -0
  198. package/dist/providers/geminiThinking.js.map +1 -0
  199. package/dist/providers/google-genai.d.ts +1 -1
  200. package/dist/providers/google-genai.js +23 -11
  201. package/dist/providers/google-genai.js.map +1 -1
  202. package/dist/providers/groq.d.ts +1 -1
  203. package/dist/providers/groq.js +17 -10
  204. package/dist/providers/groq.js.map +1 -1
  205. package/dist/providers/huggingface.d.ts +25 -0
  206. package/dist/providers/huggingface.js +69 -0
  207. package/dist/providers/huggingface.js.map +1 -0
  208. package/dist/providers/modelCatalog.d.ts +109 -0
  209. package/dist/providers/modelCatalog.js +245 -0
  210. package/dist/providers/modelCatalog.js.map +1 -0
  211. package/dist/providers/modelDiscovery.d.ts +153 -6
  212. package/dist/providers/modelDiscovery.js +295 -41
  213. package/dist/providers/modelDiscovery.js.map +1 -1
  214. package/dist/providers/ollama.d.ts +19 -5
  215. package/dist/providers/ollama.js +72 -52
  216. package/dist/providers/ollama.js.map +1 -1
  217. package/dist/providers/openai.d.ts +1 -1
  218. package/dist/providers/openai.js +39 -10
  219. package/dist/providers/openai.js.map +1 -1
  220. package/dist/providers/openrouter.d.ts +27 -5
  221. package/dist/providers/openrouter.js +88 -36
  222. package/dist/providers/openrouter.js.map +1 -1
  223. package/dist/providers/vertexai.d.ts +1 -1
  224. package/dist/providers/vertexai.js +24 -11
  225. package/dist/providers/vertexai.js.map +1 -1
  226. package/dist/providers/xai.d.ts +1 -1
  227. package/dist/providers/xai.js +25 -10
  228. package/dist/providers/xai.js.map +1 -1
  229. package/dist/runtime/askStructured.d.ts +105 -0
  230. package/dist/runtime/askStructured.js +120 -0
  231. package/dist/runtime/askStructured.js.map +1 -0
  232. package/dist/runtime/conversation.d.ts +64 -0
  233. package/dist/runtime/conversation.js +171 -0
  234. package/dist/runtime/conversation.js.map +1 -0
  235. package/dist/runtime/singleShot.d.ts +39 -5
  236. package/dist/runtime/singleShot.js +115 -36
  237. package/dist/runtime/singleShot.js.map +1 -1
  238. package/dist/runtime/structuredOutput.d.ts +104 -0
  239. package/dist/runtime/structuredOutput.js +393 -0
  240. package/dist/runtime/structuredOutput.js.map +1 -0
  241. package/dist/utils/ProgressIndicator.d.ts +21 -0
  242. package/dist/utils/ProgressIndicator.js +30 -3
  243. package/dist/utils/ProgressIndicator.js.map +1 -1
  244. package/dist/utils/aiignoreUtils.js.map +1 -1
  245. package/dist/utils/binaryOutputUtils.js.map +1 -1
  246. package/dist/utils/consoleUtils.d.ts +95 -0
  247. package/dist/utils/consoleUtils.js +112 -2
  248. package/dist/utils/consoleUtils.js.map +1 -1
  249. package/dist/utils/crashHandler.d.ts +87 -0
  250. package/dist/utils/crashHandler.js +128 -0
  251. package/dist/utils/crashHandler.js.map +1 -0
  252. package/dist/utils/debugDump.d.ts +134 -0
  253. package/dist/utils/debugDump.js +381 -0
  254. package/dist/utils/debugDump.js.map +1 -0
  255. package/dist/utils/debugUtils.d.ts +13 -4
  256. package/dist/utils/debugUtils.js +36 -13
  257. package/dist/utils/debugUtils.js.map +1 -1
  258. package/dist/utils/displayWidth.d.ts +53 -0
  259. package/dist/utils/displayWidth.js +195 -0
  260. package/dist/utils/displayWidth.js.map +1 -0
  261. package/dist/utils/fileUtils.d.ts +20 -1
  262. package/dist/utils/fileUtils.js +35 -2
  263. package/dist/utils/fileUtils.js.map +1 -1
  264. package/dist/utils/llmUtils.d.ts +39 -8
  265. package/dist/utils/llmUtils.js +76 -8
  266. package/dist/utils/llmUtils.js.map +1 -1
  267. package/dist/utils/redactSecrets.d.ts +63 -0
  268. package/dist/utils/redactSecrets.js +286 -0
  269. package/dist/utils/redactSecrets.js.map +1 -0
  270. package/dist/utils/systemPromptNotes.d.ts +222 -0
  271. package/dist/utils/systemPromptNotes.js +338 -0
  272. package/dist/utils/systemPromptNotes.js.map +1 -0
  273. package/dist/utils/systemUtils.d.ts +18 -1
  274. package/dist/utils/systemUtils.js +38 -3
  275. package/dist/utils/systemUtils.js.map +1 -1
  276. package/dist/utils/toolMatching.d.ts +30 -0
  277. package/dist/utils/toolMatching.js +44 -0
  278. package/dist/utils/toolMatching.js.map +1 -0
  279. package/dist/utils/untrustedText.d.ts +86 -0
  280. package/dist/utils/untrustedText.js +101 -0
  281. package/dist/utils/untrustedText.js.map +1 -0
  282. package/package.json +21 -6
  283. package/schema/gsloth-config.schema.json +1979 -353
  284. package/dist/core/shell/allowlist.d.ts +0 -75
  285. package/dist/core/shell/allowlist.js +0 -187
  286. package/dist/core/shell/allowlist.js.map +0 -1
  287. package/dist/core/shell/judge.d.ts +0 -161
  288. package/dist/core/shell/judge.js +0 -261
  289. package/dist/core/shell/judge.js.map +0 -1
@@ -27,6 +27,39 @@
27
27
  },
28
28
  "additionalProperties": {}
29
29
  },
30
+ "extends": {
31
+ "type": "string"
32
+ },
33
+ "agent": {
34
+ "type": "object",
35
+ "properties": {
36
+ "backend": {
37
+ "type": "string",
38
+ "enum": [
39
+ "lean"
40
+ ]
41
+ }
42
+ }
43
+ },
44
+ "history": {
45
+ "type": "object",
46
+ "properties": {
47
+ "enabled": {
48
+ "type": "boolean"
49
+ },
50
+ "dbPath": {
51
+ "type": "string"
52
+ }
53
+ }
54
+ },
55
+ "memory": {
56
+ "type": "object",
57
+ "properties": {
58
+ "enabled": {
59
+ "type": "boolean"
60
+ }
61
+ }
62
+ },
30
63
  "binaryFormats": {
31
64
  "anyOf": [
32
65
  {
@@ -95,8 +128,185 @@
95
128
  },
96
129
  "additionalProperties": {}
97
130
  },
98
- "projectGuidelines": {
99
- "type": "string"
131
+ "prompts": {
132
+ "type": "object",
133
+ "properties": {
134
+ "backstory": {
135
+ "anyOf": [
136
+ {
137
+ "type": "string"
138
+ },
139
+ {
140
+ "type": "object",
141
+ "properties": {
142
+ "path": {
143
+ "type": "string"
144
+ },
145
+ "enabled": {
146
+ "type": "boolean"
147
+ },
148
+ "mode": {
149
+ "type": "string",
150
+ "enum": [
151
+ "replace",
152
+ "append"
153
+ ]
154
+ }
155
+ }
156
+ }
157
+ ]
158
+ },
159
+ "guidelines": {
160
+ "anyOf": [
161
+ {
162
+ "type": "string"
163
+ },
164
+ {
165
+ "type": "object",
166
+ "properties": {
167
+ "path": {
168
+ "type": "string"
169
+ },
170
+ "enabled": {
171
+ "type": "boolean"
172
+ },
173
+ "mode": {
174
+ "type": "string",
175
+ "enum": [
176
+ "replace",
177
+ "append"
178
+ ]
179
+ }
180
+ }
181
+ }
182
+ ]
183
+ },
184
+ "system": {
185
+ "anyOf": [
186
+ {
187
+ "type": "string"
188
+ },
189
+ {
190
+ "type": "object",
191
+ "properties": {
192
+ "path": {
193
+ "type": "string"
194
+ },
195
+ "enabled": {
196
+ "type": "boolean"
197
+ },
198
+ "mode": {
199
+ "type": "string",
200
+ "enum": [
201
+ "replace",
202
+ "append"
203
+ ]
204
+ }
205
+ }
206
+ }
207
+ ]
208
+ },
209
+ "chat": {
210
+ "anyOf": [
211
+ {
212
+ "type": "string"
213
+ },
214
+ {
215
+ "type": "object",
216
+ "properties": {
217
+ "path": {
218
+ "type": "string"
219
+ },
220
+ "enabled": {
221
+ "type": "boolean"
222
+ },
223
+ "mode": {
224
+ "type": "string",
225
+ "enum": [
226
+ "replace",
227
+ "append"
228
+ ]
229
+ }
230
+ }
231
+ }
232
+ ]
233
+ },
234
+ "code": {
235
+ "anyOf": [
236
+ {
237
+ "type": "string"
238
+ },
239
+ {
240
+ "type": "object",
241
+ "properties": {
242
+ "path": {
243
+ "type": "string"
244
+ },
245
+ "enabled": {
246
+ "type": "boolean"
247
+ },
248
+ "mode": {
249
+ "type": "string",
250
+ "enum": [
251
+ "replace",
252
+ "append"
253
+ ]
254
+ }
255
+ }
256
+ }
257
+ ]
258
+ },
259
+ "exec": {
260
+ "anyOf": [
261
+ {
262
+ "type": "string"
263
+ },
264
+ {
265
+ "type": "object",
266
+ "properties": {
267
+ "path": {
268
+ "type": "string"
269
+ },
270
+ "enabled": {
271
+ "type": "boolean"
272
+ },
273
+ "mode": {
274
+ "type": "string",
275
+ "enum": [
276
+ "replace",
277
+ "append"
278
+ ]
279
+ }
280
+ }
281
+ }
282
+ ]
283
+ },
284
+ "review": {
285
+ "anyOf": [
286
+ {
287
+ "type": "string"
288
+ },
289
+ {
290
+ "type": "object",
291
+ "properties": {
292
+ "path": {
293
+ "type": "string"
294
+ },
295
+ "enabled": {
296
+ "type": "boolean"
297
+ },
298
+ "mode": {
299
+ "type": "string",
300
+ "enum": [
301
+ "replace",
302
+ "append"
303
+ ]
304
+ }
305
+ }
306
+ }
307
+ ]
308
+ }
309
+ }
100
310
  },
101
311
  "identityProfile": {
102
312
  "type": "string"
@@ -118,9 +328,6 @@
118
328
  }
119
329
  }
120
330
  },
121
- "projectReviewInstructions": {
122
- "type": "string"
123
- },
124
331
  "noDefaultPrompts": {
125
332
  "type": "boolean"
126
333
  },
@@ -143,10 +350,158 @@
143
350
  ]
144
351
  },
145
352
  "builtInTools": {
146
- "type": "array",
147
- "items": {
148
- "type": "string"
149
- }
353
+ "anyOf": [
354
+ {
355
+ "type": "array",
356
+ "items": {
357
+ "type": "string"
358
+ }
359
+ },
360
+ {
361
+ "type": "object",
362
+ "propertyNames": {
363
+ "type": "string"
364
+ },
365
+ "additionalProperties": {
366
+ "anyOf": [
367
+ {
368
+ "type": "boolean"
369
+ },
370
+ {
371
+ "type": "object",
372
+ "properties": {
373
+ "enabled": {
374
+ "type": "boolean"
375
+ },
376
+ "command": {
377
+ "type": "string"
378
+ },
379
+ "timeout": {
380
+ "type": "number"
381
+ },
382
+ "maxOutputBytes": {
383
+ "type": "number"
384
+ },
385
+ "maxBytes": {
386
+ "type": "number"
387
+ },
388
+ "fileSet": {
389
+ "type": "string",
390
+ "enum": [
391
+ "gitignore",
392
+ "all"
393
+ ]
394
+ }
395
+ }
396
+ }
397
+ ]
398
+ }
399
+ }
400
+ ]
401
+ },
402
+ "approvals": {
403
+ "anyOf": [
404
+ {
405
+ "type": "string",
406
+ "enum": [
407
+ "manual",
408
+ "write",
409
+ "assisted",
410
+ "auto",
411
+ "bypass"
412
+ ]
413
+ },
414
+ {
415
+ "type": "object",
416
+ "properties": {
417
+ "mode": {
418
+ "type": "string",
419
+ "enum": [
420
+ "manual",
421
+ "write",
422
+ "assisted",
423
+ "auto",
424
+ "bypass"
425
+ ]
426
+ },
427
+ "rater": {
428
+ "type": "string"
429
+ },
430
+ "allow": {
431
+ "type": "array",
432
+ "items": {
433
+ "$ref": "#/$defs/ApprovalEntry"
434
+ }
435
+ },
436
+ "deny": {
437
+ "type": "array",
438
+ "items": {
439
+ "$ref": "#/$defs/ApprovalEntry"
440
+ }
441
+ },
442
+ "escalate": {
443
+ "type": "array",
444
+ "items": {
445
+ "$ref": "#/$defs/ApprovalEntry"
446
+ }
447
+ },
448
+ "raterTimeoutMs": {
449
+ "type": "integer",
450
+ "minimum": 1,
451
+ "maximum": 9007199254740991
452
+ },
453
+ "mcp": {
454
+ "type": "object",
455
+ "properties": {
456
+ "defaults": {
457
+ "type": "object",
458
+ "properties": {
459
+ "trustAnnotations": {
460
+ "type": "array",
461
+ "items": {
462
+ "type": "string",
463
+ "enum": [
464
+ "readOnlyHint",
465
+ "destructiveHint",
466
+ "idempotentHint",
467
+ "openWorldHint"
468
+ ]
469
+ }
470
+ }
471
+ },
472
+ "additionalProperties": false
473
+ },
474
+ "servers": {
475
+ "type": "object",
476
+ "propertyNames": {
477
+ "type": "string",
478
+ "minLength": 1
479
+ },
480
+ "additionalProperties": {
481
+ "type": "object",
482
+ "properties": {
483
+ "trustAnnotations": {
484
+ "type": "array",
485
+ "items": {
486
+ "type": "string",
487
+ "enum": [
488
+ "readOnlyHint",
489
+ "destructiveHint",
490
+ "idempotentHint",
491
+ "openWorldHint"
492
+ ]
493
+ }
494
+ }
495
+ },
496
+ "additionalProperties": false
497
+ }
498
+ }
499
+ },
500
+ "additionalProperties": false
501
+ }
502
+ }
503
+ }
504
+ ]
150
505
  },
151
506
  "tools": {
152
507
  "type": "array",
@@ -181,6 +536,12 @@
181
536
  "useColour": {
182
537
  "type": "boolean"
183
538
  },
539
+ "useMouse": {
540
+ "type": "boolean"
541
+ },
542
+ "tui": {
543
+ "type": "boolean"
544
+ },
184
545
  "streamSessionInferenceLog": {
185
546
  "type": "boolean"
186
547
  },
@@ -259,16 +620,32 @@
259
620
  "mcpServers": {
260
621
  "type": "object",
261
622
  "propertyNames": {
262
- "type": "string"
623
+ "type": "string",
624
+ "minLength": 1,
625
+ "pattern": "^([^*]|[\\s\\S]{2,})$"
263
626
  },
264
627
  "additionalProperties": {}
265
628
  },
266
- "a2aAgents": {
629
+ "tls": {
267
630
  "type": "object",
268
- "propertyNames": {
269
- "type": "string"
270
- },
271
- "additionalProperties": {}
631
+ "properties": {
632
+ "extraCaCerts": {
633
+ "type": "array",
634
+ "items": {
635
+ "type": "string"
636
+ }
637
+ },
638
+ "rejectUnauthorized": {
639
+ "type": "boolean"
640
+ }
641
+ }
642
+ },
643
+ "a2aAgents": {
644
+ "type": "object",
645
+ "propertyNames": {
646
+ "type": "string"
647
+ },
648
+ "additionalProperties": {}
272
649
  },
273
650
  "builtInToolsConfig": {
274
651
  "type": "object",
@@ -322,10 +699,158 @@
322
699
  ]
323
700
  },
324
701
  "builtInTools": {
325
- "type": "array",
326
- "items": {
327
- "type": "string"
328
- }
702
+ "anyOf": [
703
+ {
704
+ "type": "array",
705
+ "items": {
706
+ "type": "string"
707
+ }
708
+ },
709
+ {
710
+ "type": "object",
711
+ "propertyNames": {
712
+ "type": "string"
713
+ },
714
+ "additionalProperties": {
715
+ "anyOf": [
716
+ {
717
+ "type": "boolean"
718
+ },
719
+ {
720
+ "type": "object",
721
+ "properties": {
722
+ "enabled": {
723
+ "type": "boolean"
724
+ },
725
+ "command": {
726
+ "type": "string"
727
+ },
728
+ "timeout": {
729
+ "type": "number"
730
+ },
731
+ "maxOutputBytes": {
732
+ "type": "number"
733
+ },
734
+ "maxBytes": {
735
+ "type": "number"
736
+ },
737
+ "fileSet": {
738
+ "type": "string",
739
+ "enum": [
740
+ "gitignore",
741
+ "all"
742
+ ]
743
+ }
744
+ }
745
+ }
746
+ ]
747
+ }
748
+ }
749
+ ]
750
+ },
751
+ "approvals": {
752
+ "anyOf": [
753
+ {
754
+ "type": "string",
755
+ "enum": [
756
+ "manual",
757
+ "write",
758
+ "assisted",
759
+ "auto",
760
+ "bypass"
761
+ ]
762
+ },
763
+ {
764
+ "type": "object",
765
+ "properties": {
766
+ "mode": {
767
+ "type": "string",
768
+ "enum": [
769
+ "manual",
770
+ "write",
771
+ "assisted",
772
+ "auto",
773
+ "bypass"
774
+ ]
775
+ },
776
+ "rater": {
777
+ "type": "string"
778
+ },
779
+ "allow": {
780
+ "type": "array",
781
+ "items": {
782
+ "$ref": "#/$defs/ApprovalEntry"
783
+ }
784
+ },
785
+ "deny": {
786
+ "type": "array",
787
+ "items": {
788
+ "$ref": "#/$defs/ApprovalEntry"
789
+ }
790
+ },
791
+ "escalate": {
792
+ "type": "array",
793
+ "items": {
794
+ "$ref": "#/$defs/ApprovalEntry"
795
+ }
796
+ },
797
+ "raterTimeoutMs": {
798
+ "type": "integer",
799
+ "minimum": 1,
800
+ "maximum": 9007199254740991
801
+ },
802
+ "mcp": {
803
+ "type": "object",
804
+ "properties": {
805
+ "defaults": {
806
+ "type": "object",
807
+ "properties": {
808
+ "trustAnnotations": {
809
+ "type": "array",
810
+ "items": {
811
+ "type": "string",
812
+ "enum": [
813
+ "readOnlyHint",
814
+ "destructiveHint",
815
+ "idempotentHint",
816
+ "openWorldHint"
817
+ ]
818
+ }
819
+ }
820
+ },
821
+ "additionalProperties": false
822
+ },
823
+ "servers": {
824
+ "type": "object",
825
+ "propertyNames": {
826
+ "type": "string",
827
+ "minLength": 1
828
+ },
829
+ "additionalProperties": {
830
+ "type": "object",
831
+ "properties": {
832
+ "trustAnnotations": {
833
+ "type": "array",
834
+ "items": {
835
+ "type": "string",
836
+ "enum": [
837
+ "readOnlyHint",
838
+ "destructiveHint",
839
+ "idempotentHint",
840
+ "openWorldHint"
841
+ ]
842
+ }
843
+ }
844
+ },
845
+ "additionalProperties": false
846
+ }
847
+ }
848
+ },
849
+ "additionalProperties": false
850
+ }
851
+ }
852
+ }
853
+ ]
329
854
  },
330
855
  "customTools": {
331
856
  "anyOf": [
@@ -495,10 +1020,158 @@
495
1020
  ]
496
1021
  },
497
1022
  "builtInTools": {
498
- "type": "array",
499
- "items": {
500
- "type": "string"
501
- }
1023
+ "anyOf": [
1024
+ {
1025
+ "type": "array",
1026
+ "items": {
1027
+ "type": "string"
1028
+ }
1029
+ },
1030
+ {
1031
+ "type": "object",
1032
+ "propertyNames": {
1033
+ "type": "string"
1034
+ },
1035
+ "additionalProperties": {
1036
+ "anyOf": [
1037
+ {
1038
+ "type": "boolean"
1039
+ },
1040
+ {
1041
+ "type": "object",
1042
+ "properties": {
1043
+ "enabled": {
1044
+ "type": "boolean"
1045
+ },
1046
+ "command": {
1047
+ "type": "string"
1048
+ },
1049
+ "timeout": {
1050
+ "type": "number"
1051
+ },
1052
+ "maxOutputBytes": {
1053
+ "type": "number"
1054
+ },
1055
+ "maxBytes": {
1056
+ "type": "number"
1057
+ },
1058
+ "fileSet": {
1059
+ "type": "string",
1060
+ "enum": [
1061
+ "gitignore",
1062
+ "all"
1063
+ ]
1064
+ }
1065
+ }
1066
+ }
1067
+ ]
1068
+ }
1069
+ }
1070
+ ]
1071
+ },
1072
+ "approvals": {
1073
+ "anyOf": [
1074
+ {
1075
+ "type": "string",
1076
+ "enum": [
1077
+ "manual",
1078
+ "write",
1079
+ "assisted",
1080
+ "auto",
1081
+ "bypass"
1082
+ ]
1083
+ },
1084
+ {
1085
+ "type": "object",
1086
+ "properties": {
1087
+ "mode": {
1088
+ "type": "string",
1089
+ "enum": [
1090
+ "manual",
1091
+ "write",
1092
+ "assisted",
1093
+ "auto",
1094
+ "bypass"
1095
+ ]
1096
+ },
1097
+ "rater": {
1098
+ "type": "string"
1099
+ },
1100
+ "allow": {
1101
+ "type": "array",
1102
+ "items": {
1103
+ "$ref": "#/$defs/ApprovalEntry"
1104
+ }
1105
+ },
1106
+ "deny": {
1107
+ "type": "array",
1108
+ "items": {
1109
+ "$ref": "#/$defs/ApprovalEntry"
1110
+ }
1111
+ },
1112
+ "escalate": {
1113
+ "type": "array",
1114
+ "items": {
1115
+ "$ref": "#/$defs/ApprovalEntry"
1116
+ }
1117
+ },
1118
+ "raterTimeoutMs": {
1119
+ "type": "integer",
1120
+ "minimum": 1,
1121
+ "maximum": 9007199254740991
1122
+ },
1123
+ "mcp": {
1124
+ "type": "object",
1125
+ "properties": {
1126
+ "defaults": {
1127
+ "type": "object",
1128
+ "properties": {
1129
+ "trustAnnotations": {
1130
+ "type": "array",
1131
+ "items": {
1132
+ "type": "string",
1133
+ "enum": [
1134
+ "readOnlyHint",
1135
+ "destructiveHint",
1136
+ "idempotentHint",
1137
+ "openWorldHint"
1138
+ ]
1139
+ }
1140
+ }
1141
+ },
1142
+ "additionalProperties": false
1143
+ },
1144
+ "servers": {
1145
+ "type": "object",
1146
+ "propertyNames": {
1147
+ "type": "string",
1148
+ "minLength": 1
1149
+ },
1150
+ "additionalProperties": {
1151
+ "type": "object",
1152
+ "properties": {
1153
+ "trustAnnotations": {
1154
+ "type": "array",
1155
+ "items": {
1156
+ "type": "string",
1157
+ "enum": [
1158
+ "readOnlyHint",
1159
+ "destructiveHint",
1160
+ "idempotentHint",
1161
+ "openWorldHint"
1162
+ ]
1163
+ }
1164
+ }
1165
+ },
1166
+ "additionalProperties": false
1167
+ }
1168
+ }
1169
+ },
1170
+ "additionalProperties": false
1171
+ }
1172
+ }
1173
+ }
1174
+ ]
502
1175
  },
503
1176
  "customTools": {
504
1177
  "anyOf": [
@@ -659,10 +1332,158 @@
659
1332
  ]
660
1333
  },
661
1334
  "builtInTools": {
662
- "type": "array",
663
- "items": {
664
- "type": "string"
665
- }
1335
+ "anyOf": [
1336
+ {
1337
+ "type": "array",
1338
+ "items": {
1339
+ "type": "string"
1340
+ }
1341
+ },
1342
+ {
1343
+ "type": "object",
1344
+ "propertyNames": {
1345
+ "type": "string"
1346
+ },
1347
+ "additionalProperties": {
1348
+ "anyOf": [
1349
+ {
1350
+ "type": "boolean"
1351
+ },
1352
+ {
1353
+ "type": "object",
1354
+ "properties": {
1355
+ "enabled": {
1356
+ "type": "boolean"
1357
+ },
1358
+ "command": {
1359
+ "type": "string"
1360
+ },
1361
+ "timeout": {
1362
+ "type": "number"
1363
+ },
1364
+ "maxOutputBytes": {
1365
+ "type": "number"
1366
+ },
1367
+ "maxBytes": {
1368
+ "type": "number"
1369
+ },
1370
+ "fileSet": {
1371
+ "type": "string",
1372
+ "enum": [
1373
+ "gitignore",
1374
+ "all"
1375
+ ]
1376
+ }
1377
+ }
1378
+ }
1379
+ ]
1380
+ }
1381
+ }
1382
+ ]
1383
+ },
1384
+ "approvals": {
1385
+ "anyOf": [
1386
+ {
1387
+ "type": "string",
1388
+ "enum": [
1389
+ "manual",
1390
+ "write",
1391
+ "assisted",
1392
+ "auto",
1393
+ "bypass"
1394
+ ]
1395
+ },
1396
+ {
1397
+ "type": "object",
1398
+ "properties": {
1399
+ "mode": {
1400
+ "type": "string",
1401
+ "enum": [
1402
+ "manual",
1403
+ "write",
1404
+ "assisted",
1405
+ "auto",
1406
+ "bypass"
1407
+ ]
1408
+ },
1409
+ "rater": {
1410
+ "type": "string"
1411
+ },
1412
+ "allow": {
1413
+ "type": "array",
1414
+ "items": {
1415
+ "$ref": "#/$defs/ApprovalEntry"
1416
+ }
1417
+ },
1418
+ "deny": {
1419
+ "type": "array",
1420
+ "items": {
1421
+ "$ref": "#/$defs/ApprovalEntry"
1422
+ }
1423
+ },
1424
+ "escalate": {
1425
+ "type": "array",
1426
+ "items": {
1427
+ "$ref": "#/$defs/ApprovalEntry"
1428
+ }
1429
+ },
1430
+ "raterTimeoutMs": {
1431
+ "type": "integer",
1432
+ "minimum": 1,
1433
+ "maximum": 9007199254740991
1434
+ },
1435
+ "mcp": {
1436
+ "type": "object",
1437
+ "properties": {
1438
+ "defaults": {
1439
+ "type": "object",
1440
+ "properties": {
1441
+ "trustAnnotations": {
1442
+ "type": "array",
1443
+ "items": {
1444
+ "type": "string",
1445
+ "enum": [
1446
+ "readOnlyHint",
1447
+ "destructiveHint",
1448
+ "idempotentHint",
1449
+ "openWorldHint"
1450
+ ]
1451
+ }
1452
+ }
1453
+ },
1454
+ "additionalProperties": false
1455
+ },
1456
+ "servers": {
1457
+ "type": "object",
1458
+ "propertyNames": {
1459
+ "type": "string",
1460
+ "minLength": 1
1461
+ },
1462
+ "additionalProperties": {
1463
+ "type": "object",
1464
+ "properties": {
1465
+ "trustAnnotations": {
1466
+ "type": "array",
1467
+ "items": {
1468
+ "type": "string",
1469
+ "enum": [
1470
+ "readOnlyHint",
1471
+ "destructiveHint",
1472
+ "idempotentHint",
1473
+ "openWorldHint"
1474
+ ]
1475
+ }
1476
+ }
1477
+ },
1478
+ "additionalProperties": false
1479
+ }
1480
+ }
1481
+ },
1482
+ "additionalProperties": false
1483
+ }
1484
+ }
1485
+ }
1486
+ ]
666
1487
  },
667
1488
  "customTools": {
668
1489
  "anyOf": [
@@ -731,101 +1552,11 @@
731
1552
  "type": "string"
732
1553
  }
733
1554
  },
734
- "devTools": {
735
- "type": "object",
736
- "properties": {
737
- "run_tests": {
738
- "type": "string"
739
- },
740
- "run_lint": {
741
- "type": "string"
742
- },
743
- "run_build": {
744
- "type": "string"
745
- },
746
- "run_single_test": {
747
- "type": "string"
748
- },
749
- "shell": {
750
- "anyOf": [
751
- {
752
- "type": "boolean"
753
- },
754
- {
755
- "type": "object",
756
- "properties": {
757
- "enabled": {
758
- "type": "boolean"
759
- },
760
- "timeout": {
761
- "type": "number"
762
- },
763
- "maxOutputBytes": {
764
- "type": "number"
765
- },
766
- "allowlist": {
767
- "type": "boolean"
768
- },
769
- "persistAllowlist": {
770
- "type": "boolean"
771
- },
772
- "judge": {
773
- "anyOf": [
774
- {
775
- "type": "boolean"
776
- },
777
- {
778
- "type": "object",
779
- "properties": {
780
- "enabled": {
781
- "type": "boolean"
782
- },
783
- "autoApproveLow": {
784
- "type": "boolean"
785
- },
786
- "blockHigh": {
787
- "type": "boolean"
788
- },
789
- "model": {
790
- "type": "object",
791
- "properties": {
792
- "type": {
793
- "type": "string"
794
- },
795
- "model": {
796
- "type": "string"
797
- },
798
- "configuration": {
799
- "type": "object",
800
- "propertyNames": {
801
- "type": "string"
802
- },
803
- "additionalProperties": {}
804
- },
805
- "apiKeyEnvironmentVariable": {
806
- "type": "string"
807
- }
808
- },
809
- "additionalProperties": {}
810
- }
811
- }
812
- }
813
- ]
814
- }
815
- }
816
- }
817
- ]
818
- },
819
- "shellYolo": {
820
- "type": "boolean"
821
- }
822
- }
823
- },
824
- "binaryFormats": {
825
- "anyOf": [
826
- {
827
- "type": "boolean",
828
- "const": false
1555
+ "binaryFormats": {
1556
+ "anyOf": [
1557
+ {
1558
+ "type": "boolean",
1559
+ "const": false
829
1560
  },
830
1561
  {
831
1562
  "type": "array",
@@ -893,10 +1624,158 @@
893
1624
  ]
894
1625
  },
895
1626
  "builtInTools": {
896
- "type": "array",
897
- "items": {
898
- "type": "string"
899
- }
1627
+ "anyOf": [
1628
+ {
1629
+ "type": "array",
1630
+ "items": {
1631
+ "type": "string"
1632
+ }
1633
+ },
1634
+ {
1635
+ "type": "object",
1636
+ "propertyNames": {
1637
+ "type": "string"
1638
+ },
1639
+ "additionalProperties": {
1640
+ "anyOf": [
1641
+ {
1642
+ "type": "boolean"
1643
+ },
1644
+ {
1645
+ "type": "object",
1646
+ "properties": {
1647
+ "enabled": {
1648
+ "type": "boolean"
1649
+ },
1650
+ "command": {
1651
+ "type": "string"
1652
+ },
1653
+ "timeout": {
1654
+ "type": "number"
1655
+ },
1656
+ "maxOutputBytes": {
1657
+ "type": "number"
1658
+ },
1659
+ "maxBytes": {
1660
+ "type": "number"
1661
+ },
1662
+ "fileSet": {
1663
+ "type": "string",
1664
+ "enum": [
1665
+ "gitignore",
1666
+ "all"
1667
+ ]
1668
+ }
1669
+ }
1670
+ }
1671
+ ]
1672
+ }
1673
+ }
1674
+ ]
1675
+ },
1676
+ "approvals": {
1677
+ "anyOf": [
1678
+ {
1679
+ "type": "string",
1680
+ "enum": [
1681
+ "manual",
1682
+ "write",
1683
+ "assisted",
1684
+ "auto",
1685
+ "bypass"
1686
+ ]
1687
+ },
1688
+ {
1689
+ "type": "object",
1690
+ "properties": {
1691
+ "mode": {
1692
+ "type": "string",
1693
+ "enum": [
1694
+ "manual",
1695
+ "write",
1696
+ "assisted",
1697
+ "auto",
1698
+ "bypass"
1699
+ ]
1700
+ },
1701
+ "rater": {
1702
+ "type": "string"
1703
+ },
1704
+ "allow": {
1705
+ "type": "array",
1706
+ "items": {
1707
+ "$ref": "#/$defs/ApprovalEntry"
1708
+ }
1709
+ },
1710
+ "deny": {
1711
+ "type": "array",
1712
+ "items": {
1713
+ "$ref": "#/$defs/ApprovalEntry"
1714
+ }
1715
+ },
1716
+ "escalate": {
1717
+ "type": "array",
1718
+ "items": {
1719
+ "$ref": "#/$defs/ApprovalEntry"
1720
+ }
1721
+ },
1722
+ "raterTimeoutMs": {
1723
+ "type": "integer",
1724
+ "minimum": 1,
1725
+ "maximum": 9007199254740991
1726
+ },
1727
+ "mcp": {
1728
+ "type": "object",
1729
+ "properties": {
1730
+ "defaults": {
1731
+ "type": "object",
1732
+ "properties": {
1733
+ "trustAnnotations": {
1734
+ "type": "array",
1735
+ "items": {
1736
+ "type": "string",
1737
+ "enum": [
1738
+ "readOnlyHint",
1739
+ "destructiveHint",
1740
+ "idempotentHint",
1741
+ "openWorldHint"
1742
+ ]
1743
+ }
1744
+ }
1745
+ },
1746
+ "additionalProperties": false
1747
+ },
1748
+ "servers": {
1749
+ "type": "object",
1750
+ "propertyNames": {
1751
+ "type": "string",
1752
+ "minLength": 1
1753
+ },
1754
+ "additionalProperties": {
1755
+ "type": "object",
1756
+ "properties": {
1757
+ "trustAnnotations": {
1758
+ "type": "array",
1759
+ "items": {
1760
+ "type": "string",
1761
+ "enum": [
1762
+ "readOnlyHint",
1763
+ "destructiveHint",
1764
+ "idempotentHint",
1765
+ "openWorldHint"
1766
+ ]
1767
+ }
1768
+ }
1769
+ },
1770
+ "additionalProperties": false
1771
+ }
1772
+ }
1773
+ },
1774
+ "additionalProperties": false
1775
+ }
1776
+ }
1777
+ }
1778
+ ]
900
1779
  },
901
1780
  "customTools": {
902
1781
  "anyOf": [
@@ -1037,10 +1916,158 @@
1037
1916
  ]
1038
1917
  },
1039
1918
  "builtInTools": {
1040
- "type": "array",
1041
- "items": {
1042
- "type": "string"
1043
- }
1919
+ "anyOf": [
1920
+ {
1921
+ "type": "array",
1922
+ "items": {
1923
+ "type": "string"
1924
+ }
1925
+ },
1926
+ {
1927
+ "type": "object",
1928
+ "propertyNames": {
1929
+ "type": "string"
1930
+ },
1931
+ "additionalProperties": {
1932
+ "anyOf": [
1933
+ {
1934
+ "type": "boolean"
1935
+ },
1936
+ {
1937
+ "type": "object",
1938
+ "properties": {
1939
+ "enabled": {
1940
+ "type": "boolean"
1941
+ },
1942
+ "command": {
1943
+ "type": "string"
1944
+ },
1945
+ "timeout": {
1946
+ "type": "number"
1947
+ },
1948
+ "maxOutputBytes": {
1949
+ "type": "number"
1950
+ },
1951
+ "maxBytes": {
1952
+ "type": "number"
1953
+ },
1954
+ "fileSet": {
1955
+ "type": "string",
1956
+ "enum": [
1957
+ "gitignore",
1958
+ "all"
1959
+ ]
1960
+ }
1961
+ }
1962
+ }
1963
+ ]
1964
+ }
1965
+ }
1966
+ ]
1967
+ },
1968
+ "approvals": {
1969
+ "anyOf": [
1970
+ {
1971
+ "type": "string",
1972
+ "enum": [
1973
+ "manual",
1974
+ "write",
1975
+ "assisted",
1976
+ "auto",
1977
+ "bypass"
1978
+ ]
1979
+ },
1980
+ {
1981
+ "type": "object",
1982
+ "properties": {
1983
+ "mode": {
1984
+ "type": "string",
1985
+ "enum": [
1986
+ "manual",
1987
+ "write",
1988
+ "assisted",
1989
+ "auto",
1990
+ "bypass"
1991
+ ]
1992
+ },
1993
+ "rater": {
1994
+ "type": "string"
1995
+ },
1996
+ "allow": {
1997
+ "type": "array",
1998
+ "items": {
1999
+ "$ref": "#/$defs/ApprovalEntry"
2000
+ }
2001
+ },
2002
+ "deny": {
2003
+ "type": "array",
2004
+ "items": {
2005
+ "$ref": "#/$defs/ApprovalEntry"
2006
+ }
2007
+ },
2008
+ "escalate": {
2009
+ "type": "array",
2010
+ "items": {
2011
+ "$ref": "#/$defs/ApprovalEntry"
2012
+ }
2013
+ },
2014
+ "raterTimeoutMs": {
2015
+ "type": "integer",
2016
+ "minimum": 1,
2017
+ "maximum": 9007199254740991
2018
+ },
2019
+ "mcp": {
2020
+ "type": "object",
2021
+ "properties": {
2022
+ "defaults": {
2023
+ "type": "object",
2024
+ "properties": {
2025
+ "trustAnnotations": {
2026
+ "type": "array",
2027
+ "items": {
2028
+ "type": "string",
2029
+ "enum": [
2030
+ "readOnlyHint",
2031
+ "destructiveHint",
2032
+ "idempotentHint",
2033
+ "openWorldHint"
2034
+ ]
2035
+ }
2036
+ }
2037
+ },
2038
+ "additionalProperties": false
2039
+ },
2040
+ "servers": {
2041
+ "type": "object",
2042
+ "propertyNames": {
2043
+ "type": "string",
2044
+ "minLength": 1
2045
+ },
2046
+ "additionalProperties": {
2047
+ "type": "object",
2048
+ "properties": {
2049
+ "trustAnnotations": {
2050
+ "type": "array",
2051
+ "items": {
2052
+ "type": "string",
2053
+ "enum": [
2054
+ "readOnlyHint",
2055
+ "destructiveHint",
2056
+ "idempotentHint",
2057
+ "openWorldHint"
2058
+ ]
2059
+ }
2060
+ }
2061
+ },
2062
+ "additionalProperties": false
2063
+ }
2064
+ }
2065
+ },
2066
+ "additionalProperties": false
2067
+ }
2068
+ }
2069
+ }
2070
+ ]
1044
2071
  },
1045
2072
  "customTools": {
1046
2073
  "anyOf": [
@@ -1109,96 +2136,6 @@
1109
2136
  "type": "string"
1110
2137
  }
1111
2138
  },
1112
- "devTools": {
1113
- "type": "object",
1114
- "properties": {
1115
- "run_tests": {
1116
- "type": "string"
1117
- },
1118
- "run_lint": {
1119
- "type": "string"
1120
- },
1121
- "run_build": {
1122
- "type": "string"
1123
- },
1124
- "run_single_test": {
1125
- "type": "string"
1126
- },
1127
- "shell": {
1128
- "anyOf": [
1129
- {
1130
- "type": "boolean"
1131
- },
1132
- {
1133
- "type": "object",
1134
- "properties": {
1135
- "enabled": {
1136
- "type": "boolean"
1137
- },
1138
- "timeout": {
1139
- "type": "number"
1140
- },
1141
- "maxOutputBytes": {
1142
- "type": "number"
1143
- },
1144
- "allowlist": {
1145
- "type": "boolean"
1146
- },
1147
- "persistAllowlist": {
1148
- "type": "boolean"
1149
- },
1150
- "judge": {
1151
- "anyOf": [
1152
- {
1153
- "type": "boolean"
1154
- },
1155
- {
1156
- "type": "object",
1157
- "properties": {
1158
- "enabled": {
1159
- "type": "boolean"
1160
- },
1161
- "autoApproveLow": {
1162
- "type": "boolean"
1163
- },
1164
- "blockHigh": {
1165
- "type": "boolean"
1166
- },
1167
- "model": {
1168
- "type": "object",
1169
- "properties": {
1170
- "type": {
1171
- "type": "string"
1172
- },
1173
- "model": {
1174
- "type": "string"
1175
- },
1176
- "configuration": {
1177
- "type": "object",
1178
- "propertyNames": {
1179
- "type": "string"
1180
- },
1181
- "additionalProperties": {}
1182
- },
1183
- "apiKeyEnvironmentVariable": {
1184
- "type": "string"
1185
- }
1186
- },
1187
- "additionalProperties": {}
1188
- }
1189
- }
1190
- }
1191
- ]
1192
- }
1193
- }
1194
- }
1195
- ]
1196
- },
1197
- "shellYolo": {
1198
- "type": "boolean"
1199
- }
1200
- }
1201
- },
1202
2139
  "binaryFormats": {
1203
2140
  "anyOf": [
1204
2141
  {
@@ -1271,16 +2208,12 @@
1271
2208
  ]
1272
2209
  },
1273
2210
  "builtInTools": {
1274
- "type": "array",
1275
- "items": {
1276
- "type": "string"
1277
- }
1278
- },
1279
- "customTools": {
1280
2211
  "anyOf": [
1281
2212
  {
1282
- "type": "boolean",
1283
- "const": false
2213
+ "type": "array",
2214
+ "items": {
2215
+ "type": "string"
2216
+ }
1284
2217
  },
1285
2218
  {
1286
2219
  "type": "object",
@@ -1288,149 +2221,211 @@
1288
2221
  "type": "string"
1289
2222
  },
1290
2223
  "additionalProperties": {
1291
- "type": "object",
1292
- "properties": {
1293
- "command": {
1294
- "type": "string"
2224
+ "anyOf": [
2225
+ {
2226
+ "type": "boolean"
1295
2227
  },
1296
- "description": {
1297
- "type": "string"
1298
- },
1299
- "parameters": {
2228
+ {
1300
2229
  "type": "object",
1301
- "propertyNames": {
1302
- "type": "string"
1303
- },
1304
- "additionalProperties": {
1305
- "type": "object",
1306
- "properties": {
1307
- "description": {
1308
- "type": "string"
1309
- },
1310
- "allow": {
1311
- "type": "array",
1312
- "items": {
1313
- "type": "string",
1314
- "enum": [
1315
- "absolute-paths",
1316
- "directory-traversal",
1317
- "shell-injection",
1318
- "null-bytes"
1319
- ]
1320
- }
1321
- }
2230
+ "properties": {
2231
+ "enabled": {
2232
+ "type": "boolean"
1322
2233
  },
1323
- "required": [
1324
- "description"
1325
- ]
2234
+ "command": {
2235
+ "type": "string"
2236
+ },
2237
+ "timeout": {
2238
+ "type": "number"
2239
+ },
2240
+ "maxOutputBytes": {
2241
+ "type": "number"
2242
+ },
2243
+ "maxBytes": {
2244
+ "type": "number"
2245
+ },
2246
+ "fileSet": {
2247
+ "type": "string",
2248
+ "enum": [
2249
+ "gitignore",
2250
+ "all"
2251
+ ]
2252
+ }
1326
2253
  }
1327
- },
1328
- "timeout": {
1329
- "type": "number"
1330
2254
  }
1331
- },
1332
- "required": [
1333
- "command",
1334
- "description"
1335
2255
  ]
1336
2256
  }
1337
2257
  }
1338
2258
  ]
1339
2259
  },
1340
- "allowedTools": {
1341
- "type": "array",
1342
- "items": {
1343
- "type": "string"
1344
- }
1345
- },
1346
- "devTools": {
1347
- "type": "object",
1348
- "properties": {
1349
- "run_tests": {
1350
- "type": "string"
1351
- },
1352
- "run_lint": {
1353
- "type": "string"
1354
- },
1355
- "run_build": {
1356
- "type": "string"
1357
- },
1358
- "run_single_test": {
1359
- "type": "string"
2260
+ "approvals": {
2261
+ "anyOf": [
2262
+ {
2263
+ "type": "string",
2264
+ "enum": [
2265
+ "manual",
2266
+ "write",
2267
+ "assisted",
2268
+ "auto",
2269
+ "bypass"
2270
+ ]
1360
2271
  },
1361
- "shell": {
1362
- "anyOf": [
1363
- {
1364
- "type": "boolean"
2272
+ {
2273
+ "type": "object",
2274
+ "properties": {
2275
+ "mode": {
2276
+ "type": "string",
2277
+ "enum": [
2278
+ "manual",
2279
+ "write",
2280
+ "assisted",
2281
+ "auto",
2282
+ "bypass"
2283
+ ]
2284
+ },
2285
+ "rater": {
2286
+ "type": "string"
2287
+ },
2288
+ "allow": {
2289
+ "type": "array",
2290
+ "items": {
2291
+ "$ref": "#/$defs/ApprovalEntry"
2292
+ }
2293
+ },
2294
+ "deny": {
2295
+ "type": "array",
2296
+ "items": {
2297
+ "$ref": "#/$defs/ApprovalEntry"
2298
+ }
2299
+ },
2300
+ "escalate": {
2301
+ "type": "array",
2302
+ "items": {
2303
+ "$ref": "#/$defs/ApprovalEntry"
2304
+ }
2305
+ },
2306
+ "raterTimeoutMs": {
2307
+ "type": "integer",
2308
+ "minimum": 1,
2309
+ "maximum": 9007199254740991
1365
2310
  },
1366
- {
2311
+ "mcp": {
1367
2312
  "type": "object",
1368
2313
  "properties": {
1369
- "enabled": {
1370
- "type": "boolean"
1371
- },
1372
- "timeout": {
1373
- "type": "number"
1374
- },
1375
- "maxOutputBytes": {
1376
- "type": "number"
1377
- },
1378
- "allowlist": {
1379
- "type": "boolean"
2314
+ "defaults": {
2315
+ "type": "object",
2316
+ "properties": {
2317
+ "trustAnnotations": {
2318
+ "type": "array",
2319
+ "items": {
2320
+ "type": "string",
2321
+ "enum": [
2322
+ "readOnlyHint",
2323
+ "destructiveHint",
2324
+ "idempotentHint",
2325
+ "openWorldHint"
2326
+ ]
2327
+ }
2328
+ }
2329
+ },
2330
+ "additionalProperties": false
1380
2331
  },
1381
- "persistAllowlist": {
1382
- "type": "boolean"
2332
+ "servers": {
2333
+ "type": "object",
2334
+ "propertyNames": {
2335
+ "type": "string",
2336
+ "minLength": 1
2337
+ },
2338
+ "additionalProperties": {
2339
+ "type": "object",
2340
+ "properties": {
2341
+ "trustAnnotations": {
2342
+ "type": "array",
2343
+ "items": {
2344
+ "type": "string",
2345
+ "enum": [
2346
+ "readOnlyHint",
2347
+ "destructiveHint",
2348
+ "idempotentHint",
2349
+ "openWorldHint"
2350
+ ]
2351
+ }
2352
+ }
2353
+ },
2354
+ "additionalProperties": false
2355
+ }
2356
+ }
2357
+ },
2358
+ "additionalProperties": false
2359
+ }
2360
+ }
2361
+ }
2362
+ ]
2363
+ },
2364
+ "customTools": {
2365
+ "anyOf": [
2366
+ {
2367
+ "type": "boolean",
2368
+ "const": false
2369
+ },
2370
+ {
2371
+ "type": "object",
2372
+ "propertyNames": {
2373
+ "type": "string"
2374
+ },
2375
+ "additionalProperties": {
2376
+ "type": "object",
2377
+ "properties": {
2378
+ "command": {
2379
+ "type": "string"
2380
+ },
2381
+ "description": {
2382
+ "type": "string"
2383
+ },
2384
+ "parameters": {
2385
+ "type": "object",
2386
+ "propertyNames": {
2387
+ "type": "string"
1383
2388
  },
1384
- "judge": {
1385
- "anyOf": [
1386
- {
1387
- "type": "boolean"
2389
+ "additionalProperties": {
2390
+ "type": "object",
2391
+ "properties": {
2392
+ "description": {
2393
+ "type": "string"
1388
2394
  },
1389
- {
1390
- "type": "object",
1391
- "properties": {
1392
- "enabled": {
1393
- "type": "boolean"
1394
- },
1395
- "autoApproveLow": {
1396
- "type": "boolean"
1397
- },
1398
- "blockHigh": {
1399
- "type": "boolean"
1400
- },
1401
- "model": {
1402
- "type": "object",
1403
- "properties": {
1404
- "type": {
1405
- "type": "string"
1406
- },
1407
- "model": {
1408
- "type": "string"
1409
- },
1410
- "configuration": {
1411
- "type": "object",
1412
- "propertyNames": {
1413
- "type": "string"
1414
- },
1415
- "additionalProperties": {}
1416
- },
1417
- "apiKeyEnvironmentVariable": {
1418
- "type": "string"
1419
- }
1420
- },
1421
- "additionalProperties": {}
1422
- }
2395
+ "allow": {
2396
+ "type": "array",
2397
+ "items": {
2398
+ "type": "string",
2399
+ "enum": [
2400
+ "absolute-paths",
2401
+ "directory-traversal",
2402
+ "shell-injection",
2403
+ "null-bytes"
2404
+ ]
1423
2405
  }
1424
2406
  }
2407
+ },
2408
+ "required": [
2409
+ "description"
1425
2410
  ]
1426
2411
  }
2412
+ },
2413
+ "timeout": {
2414
+ "type": "number"
1427
2415
  }
1428
- }
1429
- ]
1430
- },
1431
- "shellYolo": {
1432
- "type": "boolean"
2416
+ },
2417
+ "required": [
2418
+ "command",
2419
+ "description"
2420
+ ]
2421
+ }
1433
2422
  }
2423
+ ]
2424
+ },
2425
+ "allowedTools": {
2426
+ "type": "array",
2427
+ "items": {
2428
+ "type": "string"
1434
2429
  }
1435
2430
  },
1436
2431
  "binaryFormats": {
@@ -1505,10 +2500,158 @@
1505
2500
  ]
1506
2501
  },
1507
2502
  "builtInTools": {
1508
- "type": "array",
1509
- "items": {
1510
- "type": "string"
1511
- }
2503
+ "anyOf": [
2504
+ {
2505
+ "type": "array",
2506
+ "items": {
2507
+ "type": "string"
2508
+ }
2509
+ },
2510
+ {
2511
+ "type": "object",
2512
+ "propertyNames": {
2513
+ "type": "string"
2514
+ },
2515
+ "additionalProperties": {
2516
+ "anyOf": [
2517
+ {
2518
+ "type": "boolean"
2519
+ },
2520
+ {
2521
+ "type": "object",
2522
+ "properties": {
2523
+ "enabled": {
2524
+ "type": "boolean"
2525
+ },
2526
+ "command": {
2527
+ "type": "string"
2528
+ },
2529
+ "timeout": {
2530
+ "type": "number"
2531
+ },
2532
+ "maxOutputBytes": {
2533
+ "type": "number"
2534
+ },
2535
+ "maxBytes": {
2536
+ "type": "number"
2537
+ },
2538
+ "fileSet": {
2539
+ "type": "string",
2540
+ "enum": [
2541
+ "gitignore",
2542
+ "all"
2543
+ ]
2544
+ }
2545
+ }
2546
+ }
2547
+ ]
2548
+ }
2549
+ }
2550
+ ]
2551
+ },
2552
+ "approvals": {
2553
+ "anyOf": [
2554
+ {
2555
+ "type": "string",
2556
+ "enum": [
2557
+ "manual",
2558
+ "write",
2559
+ "assisted",
2560
+ "auto",
2561
+ "bypass"
2562
+ ]
2563
+ },
2564
+ {
2565
+ "type": "object",
2566
+ "properties": {
2567
+ "mode": {
2568
+ "type": "string",
2569
+ "enum": [
2570
+ "manual",
2571
+ "write",
2572
+ "assisted",
2573
+ "auto",
2574
+ "bypass"
2575
+ ]
2576
+ },
2577
+ "rater": {
2578
+ "type": "string"
2579
+ },
2580
+ "allow": {
2581
+ "type": "array",
2582
+ "items": {
2583
+ "$ref": "#/$defs/ApprovalEntry"
2584
+ }
2585
+ },
2586
+ "deny": {
2587
+ "type": "array",
2588
+ "items": {
2589
+ "$ref": "#/$defs/ApprovalEntry"
2590
+ }
2591
+ },
2592
+ "escalate": {
2593
+ "type": "array",
2594
+ "items": {
2595
+ "$ref": "#/$defs/ApprovalEntry"
2596
+ }
2597
+ },
2598
+ "raterTimeoutMs": {
2599
+ "type": "integer",
2600
+ "minimum": 1,
2601
+ "maximum": 9007199254740991
2602
+ },
2603
+ "mcp": {
2604
+ "type": "object",
2605
+ "properties": {
2606
+ "defaults": {
2607
+ "type": "object",
2608
+ "properties": {
2609
+ "trustAnnotations": {
2610
+ "type": "array",
2611
+ "items": {
2612
+ "type": "string",
2613
+ "enum": [
2614
+ "readOnlyHint",
2615
+ "destructiveHint",
2616
+ "idempotentHint",
2617
+ "openWorldHint"
2618
+ ]
2619
+ }
2620
+ }
2621
+ },
2622
+ "additionalProperties": false
2623
+ },
2624
+ "servers": {
2625
+ "type": "object",
2626
+ "propertyNames": {
2627
+ "type": "string",
2628
+ "minLength": 1
2629
+ },
2630
+ "additionalProperties": {
2631
+ "type": "object",
2632
+ "properties": {
2633
+ "trustAnnotations": {
2634
+ "type": "array",
2635
+ "items": {
2636
+ "type": "string",
2637
+ "enum": [
2638
+ "readOnlyHint",
2639
+ "destructiveHint",
2640
+ "idempotentHint",
2641
+ "openWorldHint"
2642
+ ]
2643
+ }
2644
+ }
2645
+ },
2646
+ "additionalProperties": false
2647
+ }
2648
+ }
2649
+ },
2650
+ "additionalProperties": false
2651
+ }
2652
+ }
2653
+ }
2654
+ ]
1512
2655
  },
1513
2656
  "port": {
1514
2657
  "type": "number"
@@ -1531,9 +2674,48 @@
1531
2674
  }
1532
2675
  }
1533
2676
  },
2677
+ "acp": {
2678
+ "type": "object",
2679
+ "properties": {
2680
+ "mode": {
2681
+ "type": "string",
2682
+ "enum": [
2683
+ "chat",
2684
+ "code"
2685
+ ]
2686
+ }
2687
+ }
2688
+ },
2689
+ "commit": {
2690
+ "type": "object",
2691
+ "properties": {
2692
+ "coAuthor": {
2693
+ "type": "object",
2694
+ "properties": {
2695
+ "name": {
2696
+ "type": "string"
2697
+ },
2698
+ "email": {
2699
+ "type": "string"
2700
+ }
2701
+ }
2702
+ }
2703
+ }
2704
+ },
1534
2705
  "modelDisplayName": {
1535
2706
  "type": "string"
1536
2707
  },
2708
+ "injectModelContext": {
2709
+ "type": "boolean"
2710
+ },
2711
+ "debugDump": {
2712
+ "type": "object",
2713
+ "properties": {
2714
+ "redact": {
2715
+ "type": "boolean"
2716
+ }
2717
+ }
2718
+ },
1537
2719
  "allowDirs": {
1538
2720
  "type": "array",
1539
2721
  "items": {
@@ -1542,7 +2724,451 @@
1542
2724
  },
1543
2725
  "askWriteMode": {
1544
2726
  "type": "boolean"
2727
+ },
2728
+ "output": {
2729
+ "type": "object",
2730
+ "properties": {
2731
+ "header": {
2732
+ "type": "string",
2733
+ "enum": [
2734
+ "none",
2735
+ "compact",
2736
+ "debug"
2737
+ ]
2738
+ }
2739
+ }
2740
+ },
2741
+ "toolLoopGuard": {
2742
+ "anyOf": [
2743
+ {
2744
+ "type": "boolean"
2745
+ },
2746
+ {
2747
+ "type": "object",
2748
+ "properties": {
2749
+ "warn": {
2750
+ "type": "boolean"
2751
+ },
2752
+ "halt": {
2753
+ "type": "boolean"
2754
+ },
2755
+ "threshold": {
2756
+ "type": "number"
2757
+ }
2758
+ }
2759
+ }
2760
+ ]
2761
+ },
2762
+ "reporters": {
2763
+ "type": "object",
2764
+ "propertyNames": {
2765
+ "type": "string"
2766
+ },
2767
+ "additionalProperties": {
2768
+ "type": "string"
2769
+ }
2770
+ },
2771
+ "subagents": {
2772
+ "type": "array",
2773
+ "items": {
2774
+ "type": "object",
2775
+ "properties": {
2776
+ "name": {
2777
+ "type": "string"
2778
+ },
2779
+ "description": {
2780
+ "type": "string"
2781
+ },
2782
+ "profile": {
2783
+ "type": "string"
2784
+ }
2785
+ },
2786
+ "required": [
2787
+ "name",
2788
+ "profile"
2789
+ ]
2790
+ }
1545
2791
  }
1546
2792
  },
1547
- "additionalProperties": {}
2793
+ "additionalProperties": {},
2794
+ "$defs": {
2795
+ "ApprovalEntry": {
2796
+ "oneOf": [
2797
+ {
2798
+ "oneOf": [
2799
+ {
2800
+ "type": "object",
2801
+ "properties": {
2802
+ "type": {
2803
+ "type": "string",
2804
+ "const": "shell"
2805
+ },
2806
+ "matcher": {
2807
+ "type": "string",
2808
+ "const": "exact"
2809
+ },
2810
+ "pattern": {
2811
+ "type": "string"
2812
+ },
2813
+ "rate": {
2814
+ "type": "boolean"
2815
+ }
2816
+ },
2817
+ "required": [
2818
+ "type",
2819
+ "matcher",
2820
+ "pattern"
2821
+ ],
2822
+ "additionalProperties": false
2823
+ },
2824
+ {
2825
+ "type": "object",
2826
+ "properties": {
2827
+ "type": {
2828
+ "type": "string",
2829
+ "const": "shell"
2830
+ },
2831
+ "matcher": {
2832
+ "type": "string",
2833
+ "const": "glob"
2834
+ },
2835
+ "pattern": {
2836
+ "type": "string"
2837
+ },
2838
+ "rate": {
2839
+ "type": "boolean"
2840
+ }
2841
+ },
2842
+ "required": [
2843
+ "type",
2844
+ "matcher",
2845
+ "pattern"
2846
+ ],
2847
+ "additionalProperties": false
2848
+ },
2849
+ {
2850
+ "type": "object",
2851
+ "properties": {
2852
+ "type": {
2853
+ "type": "string",
2854
+ "const": "shell"
2855
+ },
2856
+ "matcher": {
2857
+ "type": "string",
2858
+ "const": "regexp"
2859
+ },
2860
+ "pattern": {
2861
+ "type": "string",
2862
+ "maxLength": 200
2863
+ },
2864
+ "rate": {
2865
+ "type": "boolean"
2866
+ }
2867
+ },
2868
+ "required": [
2869
+ "type",
2870
+ "matcher",
2871
+ "pattern"
2872
+ ],
2873
+ "additionalProperties": false
2874
+ }
2875
+ ]
2876
+ },
2877
+ {
2878
+ "oneOf": [
2879
+ {
2880
+ "type": "object",
2881
+ "properties": {
2882
+ "type": {
2883
+ "type": "string",
2884
+ "const": "tool"
2885
+ },
2886
+ "matcher": {
2887
+ "type": "string",
2888
+ "const": "exact"
2889
+ },
2890
+ "pattern": {
2891
+ "type": "string"
2892
+ },
2893
+ "host": {
2894
+ "type": "string",
2895
+ "minLength": 1
2896
+ },
2897
+ "rate": {
2898
+ "type": "boolean"
2899
+ }
2900
+ },
2901
+ "required": [
2902
+ "type",
2903
+ "matcher",
2904
+ "pattern"
2905
+ ],
2906
+ "additionalProperties": false
2907
+ },
2908
+ {
2909
+ "type": "object",
2910
+ "properties": {
2911
+ "type": {
2912
+ "type": "string",
2913
+ "const": "tool"
2914
+ },
2915
+ "matcher": {
2916
+ "type": "string",
2917
+ "const": "glob"
2918
+ },
2919
+ "pattern": {
2920
+ "type": "string"
2921
+ },
2922
+ "host": {
2923
+ "type": "string",
2924
+ "minLength": 1
2925
+ },
2926
+ "rate": {
2927
+ "type": "boolean"
2928
+ }
2929
+ },
2930
+ "required": [
2931
+ "type",
2932
+ "matcher",
2933
+ "pattern"
2934
+ ],
2935
+ "additionalProperties": false
2936
+ },
2937
+ {
2938
+ "type": "object",
2939
+ "properties": {
2940
+ "type": {
2941
+ "type": "string",
2942
+ "const": "tool"
2943
+ },
2944
+ "matcher": {
2945
+ "type": "string",
2946
+ "const": "regexp"
2947
+ },
2948
+ "pattern": {
2949
+ "type": "string",
2950
+ "maxLength": 200
2951
+ },
2952
+ "host": {
2953
+ "type": "string",
2954
+ "minLength": 1
2955
+ },
2956
+ "rate": {
2957
+ "type": "boolean"
2958
+ }
2959
+ },
2960
+ "required": [
2961
+ "type",
2962
+ "matcher",
2963
+ "pattern"
2964
+ ],
2965
+ "additionalProperties": false
2966
+ },
2967
+ {
2968
+ "type": "object",
2969
+ "properties": {
2970
+ "type": {
2971
+ "type": "string",
2972
+ "const": "tool"
2973
+ },
2974
+ "matcher": {
2975
+ "type": "string",
2976
+ "const": "hint"
2977
+ },
2978
+ "pattern": {
2979
+ "type": "object",
2980
+ "properties": {
2981
+ "readOnlyHint": {
2982
+ "type": "boolean"
2983
+ },
2984
+ "destructiveHint": {
2985
+ "type": "boolean"
2986
+ },
2987
+ "idempotentHint": {
2988
+ "type": "boolean"
2989
+ },
2990
+ "openWorldHint": {
2991
+ "type": "boolean"
2992
+ }
2993
+ },
2994
+ "additionalProperties": false,
2995
+ "minProperties": 1
2996
+ },
2997
+ "host": {
2998
+ "type": "string",
2999
+ "minLength": 1
3000
+ },
3001
+ "rate": {
3002
+ "type": "boolean"
3003
+ }
3004
+ },
3005
+ "required": [
3006
+ "type",
3007
+ "matcher",
3008
+ "pattern"
3009
+ ],
3010
+ "additionalProperties": false
3011
+ }
3012
+ ]
3013
+ },
3014
+ {
3015
+ "oneOf": [
3016
+ {
3017
+ "type": "object",
3018
+ "properties": {
3019
+ "type": {
3020
+ "type": "string",
3021
+ "const": "mcpTool"
3022
+ },
3023
+ "matcher": {
3024
+ "type": "string",
3025
+ "const": "exact"
3026
+ },
3027
+ "server": {
3028
+ "type": "string",
3029
+ "minLength": 1
3030
+ },
3031
+ "pattern": {
3032
+ "type": "string"
3033
+ },
3034
+ "host": {
3035
+ "type": "string",
3036
+ "minLength": 1
3037
+ },
3038
+ "rate": {
3039
+ "type": "boolean"
3040
+ }
3041
+ },
3042
+ "required": [
3043
+ "type",
3044
+ "matcher",
3045
+ "server",
3046
+ "pattern"
3047
+ ],
3048
+ "additionalProperties": false
3049
+ },
3050
+ {
3051
+ "type": "object",
3052
+ "properties": {
3053
+ "type": {
3054
+ "type": "string",
3055
+ "const": "mcpTool"
3056
+ },
3057
+ "matcher": {
3058
+ "type": "string",
3059
+ "const": "glob"
3060
+ },
3061
+ "server": {
3062
+ "type": "string",
3063
+ "minLength": 1
3064
+ },
3065
+ "pattern": {
3066
+ "type": "string"
3067
+ },
3068
+ "host": {
3069
+ "type": "string",
3070
+ "minLength": 1
3071
+ },
3072
+ "rate": {
3073
+ "type": "boolean"
3074
+ }
3075
+ },
3076
+ "required": [
3077
+ "type",
3078
+ "matcher",
3079
+ "server",
3080
+ "pattern"
3081
+ ],
3082
+ "additionalProperties": false
3083
+ },
3084
+ {
3085
+ "type": "object",
3086
+ "properties": {
3087
+ "type": {
3088
+ "type": "string",
3089
+ "const": "mcpTool"
3090
+ },
3091
+ "matcher": {
3092
+ "type": "string",
3093
+ "const": "regexp"
3094
+ },
3095
+ "server": {
3096
+ "type": "string",
3097
+ "minLength": 1
3098
+ },
3099
+ "pattern": {
3100
+ "type": "string",
3101
+ "maxLength": 200
3102
+ },
3103
+ "host": {
3104
+ "type": "string",
3105
+ "minLength": 1
3106
+ },
3107
+ "rate": {
3108
+ "type": "boolean"
3109
+ }
3110
+ },
3111
+ "required": [
3112
+ "type",
3113
+ "matcher",
3114
+ "server",
3115
+ "pattern"
3116
+ ],
3117
+ "additionalProperties": false
3118
+ },
3119
+ {
3120
+ "type": "object",
3121
+ "properties": {
3122
+ "type": {
3123
+ "type": "string",
3124
+ "const": "mcpTool"
3125
+ },
3126
+ "matcher": {
3127
+ "type": "string",
3128
+ "const": "hint"
3129
+ },
3130
+ "server": {
3131
+ "type": "string",
3132
+ "minLength": 1
3133
+ },
3134
+ "pattern": {
3135
+ "type": "object",
3136
+ "properties": {
3137
+ "readOnlyHint": {
3138
+ "type": "boolean"
3139
+ },
3140
+ "destructiveHint": {
3141
+ "type": "boolean"
3142
+ },
3143
+ "idempotentHint": {
3144
+ "type": "boolean"
3145
+ },
3146
+ "openWorldHint": {
3147
+ "type": "boolean"
3148
+ }
3149
+ },
3150
+ "additionalProperties": false,
3151
+ "minProperties": 1
3152
+ },
3153
+ "host": {
3154
+ "type": "string",
3155
+ "minLength": 1
3156
+ },
3157
+ "rate": {
3158
+ "type": "boolean"
3159
+ }
3160
+ },
3161
+ "required": [
3162
+ "type",
3163
+ "matcher",
3164
+ "server",
3165
+ "pattern"
3166
+ ],
3167
+ "additionalProperties": false
3168
+ }
3169
+ ]
3170
+ }
3171
+ ]
3172
+ }
3173
+ }
1548
3174
  }