@gaunt-sloth/core 2.0.0-alpha.8 → 2.0.0-beta.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 (275) hide show
  1. package/.gsloth.review.md +2 -0
  2. package/README.md +71 -20
  3. package/dist/config/colour.d.ts +38 -0
  4. package/dist/config/colour.js +36 -0
  5. package/dist/config/colour.js.map +1 -0
  6. package/dist/config/configDiscovery.d.ts +79 -0
  7. package/dist/config/configDiscovery.js +80 -0
  8. package/dist/config/configDiscovery.js.map +1 -0
  9. package/dist/config/defaults.d.ts +20 -20
  10. package/dist/config/defaults.js +10 -8
  11. package/dist/config/defaults.js.map +1 -1
  12. package/dist/config/filesystem-tools.d.ts +41 -0
  13. package/dist/config/filesystem-tools.js +56 -0
  14. package/dist/config/filesystem-tools.js.map +1 -0
  15. package/dist/config/loader.d.ts +171 -19
  16. package/dist/config/loader.js +1054 -144
  17. package/dist/config/loader.js.map +1 -1
  18. package/dist/config/mouse.d.ts +50 -0
  19. package/dist/config/mouse.js +44 -0
  20. package/dist/config/mouse.js.map +1 -0
  21. package/dist/config/profiles.d.ts +68 -0
  22. package/dist/config/profiles.js +93 -0
  23. package/dist/config/profiles.js.map +1 -0
  24. package/dist/config/providerKeys.d.ts +69 -0
  25. package/dist/config/providerKeys.js +69 -0
  26. package/dist/config/providerKeys.js.map +1 -0
  27. package/dist/config/schema.d.ts +2671 -138
  28. package/dist/config/schema.js +1361 -85
  29. package/dist/config/schema.js.map +1 -1
  30. package/dist/config/shell-policy.d.ts +899 -111
  31. package/dist/config/shell-policy.js +800 -70
  32. package/dist/config/shell-policy.js.map +1 -1
  33. package/dist/config/tool-descriptions.d.ts +211 -0
  34. package/dist/config/tool-descriptions.js +272 -0
  35. package/dist/config/tool-descriptions.js.map +1 -0
  36. package/dist/config/types.d.ts +352 -41
  37. package/dist/config/types.js +1 -0
  38. package/dist/config/types.js.map +1 -1
  39. package/dist/config.d.ts +35 -1
  40. package/dist/config.js +16 -1
  41. package/dist/config.js.map +1 -1
  42. package/dist/constants.d.ts +28 -1
  43. package/dist/constants.js +28 -1
  44. package/dist/constants.js.map +1 -1
  45. package/dist/core/GthAbstractAgent.d.ts +166 -11
  46. package/dist/core/GthAbstractAgent.js +484 -45
  47. package/dist/core/GthAbstractAgent.js.map +1 -1
  48. package/dist/core/GthAgentRunner.d.ts +543 -57
  49. package/dist/core/GthAgentRunner.js +1494 -140
  50. package/dist/core/GthAgentRunner.js.map +1 -1
  51. package/dist/core/GthLangChainAgent.d.ts +117 -2
  52. package/dist/core/GthLangChainAgent.js +602 -29
  53. package/dist/core/GthLangChainAgent.js.map +1 -1
  54. package/dist/core/approvals/annotations.d.ts +122 -0
  55. package/dist/core/approvals/annotations.js +137 -0
  56. package/dist/core/approvals/annotations.js.map +1 -0
  57. package/dist/core/approvals/grants.d.ts +216 -0
  58. package/dist/core/approvals/grants.js +469 -0
  59. package/dist/core/approvals/grants.js.map +1 -0
  60. package/dist/core/approvals/matcher.d.ts +202 -0
  61. package/dist/core/approvals/matcher.js +267 -0
  62. package/dist/core/approvals/matcher.js.map +1 -0
  63. package/dist/core/approvals/mcpSubjects.d.ts +40 -0
  64. package/dist/core/approvals/mcpSubjects.js +99 -0
  65. package/dist/core/approvals/mcpSubjects.js.map +1 -0
  66. package/dist/core/approvals/promptHeader.d.ts +28 -0
  67. package/dist/core/approvals/promptHeader.js +62 -0
  68. package/dist/core/approvals/promptHeader.js.map +1 -0
  69. package/dist/core/approvals/toolAnnotationSources.d.ts +105 -0
  70. package/dist/core/approvals/toolAnnotationSources.js +277 -0
  71. package/dist/core/approvals/toolAnnotationSources.js.map +1 -0
  72. package/dist/core/approvals/toolHost.d.ts +46 -0
  73. package/dist/core/approvals/toolHost.js +108 -0
  74. package/dist/core/approvals/toolHost.js.map +1 -0
  75. package/dist/core/debugCapture.d.ts +74 -0
  76. package/dist/core/debugCapture.js +100 -0
  77. package/dist/core/debugCapture.js.map +1 -0
  78. package/dist/core/gthLeanAgentFactory.d.ts +4 -4
  79. package/dist/core/gthLeanAgentFactory.js +4 -4
  80. package/dist/core/launchBanner.d.ts +127 -0
  81. package/dist/core/launchBanner.js +414 -0
  82. package/dist/core/launchBanner.js.map +1 -0
  83. package/dist/core/modelLabel.d.ts +19 -0
  84. package/dist/core/modelLabel.js +26 -0
  85. package/dist/core/modelLabel.js.map +1 -0
  86. package/dist/core/plainToolIndication.d.ts +15 -0
  87. package/dist/core/plainToolIndication.js +174 -0
  88. package/dist/core/plainToolIndication.js.map +1 -0
  89. package/dist/core/reasoningBlocks.d.ts +65 -0
  90. package/dist/core/reasoningBlocks.js +103 -0
  91. package/dist/core/reasoningBlocks.js.map +1 -0
  92. package/dist/core/refusal.d.ts +53 -0
  93. package/dist/core/refusal.js +133 -0
  94. package/dist/core/refusal.js.map +1 -0
  95. package/dist/core/runHeader.d.ts +38 -0
  96. package/dist/core/runHeader.js +42 -0
  97. package/dist/core/runHeader.js.map +1 -0
  98. package/dist/core/runStats.d.ts +14 -3
  99. package/dist/core/runStats.js +48 -3
  100. package/dist/core/runStats.js.map +1 -1
  101. package/dist/core/shell/ShellCommandFailedError.d.ts +3 -4
  102. package/dist/core/shell/ShellCommandFailedError.js +3 -4
  103. package/dist/core/shell/ShellCommandFailedError.js.map +1 -1
  104. package/dist/core/shell/abstention.d.ts +88 -0
  105. package/dist/core/shell/abstention.js +184 -0
  106. package/dist/core/shell/abstention.js.map +1 -0
  107. package/dist/core/shell/approvalCapture.d.ts +271 -0
  108. package/dist/core/shell/approvalCapture.js +108 -0
  109. package/dist/core/shell/approvalCapture.js.map +1 -0
  110. package/dist/core/shell/approvalStop.d.ts +123 -0
  111. package/dist/core/shell/approvalStop.js +269 -0
  112. package/dist/core/shell/approvalStop.js.map +1 -0
  113. package/dist/core/shell/arity.d.ts +6 -0
  114. package/dist/core/shell/arity.js +20 -6
  115. package/dist/core/shell/arity.js.map +1 -1
  116. package/dist/core/shell/denylist.d.ts +11 -0
  117. package/dist/core/shell/denylist.js +37 -0
  118. package/dist/core/shell/denylist.js.map +1 -0
  119. package/dist/core/shell/escalationSeverity.d.ts +141 -0
  120. package/dist/core/shell/escalationSeverity.js +89 -0
  121. package/dist/core/shell/escalationSeverity.js.map +1 -0
  122. package/dist/core/shell/framing.d.ts +190 -0
  123. package/dist/core/shell/framing.js +633 -0
  124. package/dist/core/shell/framing.js.map +1 -0
  125. package/dist/core/shell/hardline.d.ts +103 -0
  126. package/dist/core/shell/hardline.js +780 -0
  127. package/dist/core/shell/hardline.js.map +1 -0
  128. package/dist/core/shell/negotiation.d.ts +328 -0
  129. package/dist/core/shell/negotiation.js +488 -0
  130. package/dist/core/shell/negotiation.js.map +1 -0
  131. package/dist/core/shell/normalize.d.ts +44 -4
  132. package/dist/core/shell/normalize.js +61 -7
  133. package/dist/core/shell/normalize.js.map +1 -1
  134. package/dist/core/shell/openWorld.d.ts +263 -0
  135. package/dist/core/shell/openWorld.js +1188 -0
  136. package/dist/core/shell/openWorld.js.map +1 -0
  137. package/dist/core/shell/rater.d.ts +873 -0
  138. package/dist/core/shell/rater.js +1454 -0
  139. package/dist/core/shell/rater.js.map +1 -0
  140. package/dist/core/shell/raterModel.d.ts +41 -0
  141. package/dist/core/shell/raterModel.js +51 -0
  142. package/dist/core/shell/raterModel.js.map +1 -0
  143. package/dist/core/shell/raterVocabulary.d.ts +121 -0
  144. package/dist/core/shell/raterVocabulary.js +116 -0
  145. package/dist/core/shell/raterVocabulary.js.map +1 -0
  146. package/dist/core/shell/rejection.d.ts +69 -0
  147. package/dist/core/shell/rejection.js +38 -0
  148. package/dist/core/shell/rejection.js.map +1 -0
  149. package/dist/core/toolCallRepair/grammar.d.ts +41 -0
  150. package/dist/core/toolCallRepair/grammar.js +116 -0
  151. package/dist/core/toolCallRepair/grammar.js.map +1 -0
  152. package/dist/core/toolCallRepair/index.d.ts +2 -0
  153. package/dist/core/toolCallRepair/index.js +7 -0
  154. package/dist/core/toolCallRepair/index.js.map +1 -0
  155. package/dist/core/toolCallRepair/payload.d.ts +36 -0
  156. package/dist/core/toolCallRepair/payload.js +341 -0
  157. package/dist/core/toolCallRepair/payload.js.map +1 -0
  158. package/dist/core/toolCallRepair/promote.d.ts +45 -0
  159. package/dist/core/toolCallRepair/promote.js +90 -0
  160. package/dist/core/toolCallRepair/promote.js.map +1 -0
  161. package/dist/core/toolDisplay.d.ts +123 -0
  162. package/dist/core/toolDisplay.js +451 -0
  163. package/dist/core/toolDisplay.js.map +1 -0
  164. package/dist/core/toolOutputChannel.d.ts +95 -0
  165. package/dist/core/toolOutputChannel.js +165 -0
  166. package/dist/core/toolOutputChannel.js.map +1 -0
  167. package/dist/core/types.d.ts +349 -16
  168. package/dist/core/types.js.map +1 -1
  169. package/dist/history/historyFormat.d.ts +12 -3
  170. package/dist/history/historyFormat.js +50 -8
  171. package/dist/history/historyFormat.js.map +1 -1
  172. package/dist/history/historyStore.d.ts +77 -0
  173. package/dist/history/historyStore.js +173 -6
  174. package/dist/history/historyStore.js.map +1 -1
  175. package/dist/history/recordSession.d.ts +10 -1
  176. package/dist/history/recordSession.js +27 -0
  177. package/dist/history/recordSession.js.map +1 -1
  178. package/dist/providers/anthropic.js +12 -0
  179. package/dist/providers/anthropic.js.map +1 -1
  180. package/dist/providers/configurationPassthrough.d.ts +107 -0
  181. package/dist/providers/configurationPassthrough.js +148 -0
  182. package/dist/providers/configurationPassthrough.js.map +1 -0
  183. package/dist/providers/geminiSchemaSanitizer.d.ts +55 -0
  184. package/dist/providers/geminiSchemaSanitizer.js +347 -0
  185. package/dist/providers/geminiSchemaSanitizer.js.map +1 -0
  186. package/dist/providers/geminiThinking.d.ts +60 -0
  187. package/dist/providers/geminiThinking.js +92 -0
  188. package/dist/providers/geminiThinking.js.map +1 -0
  189. package/dist/providers/google-genai.js +18 -1
  190. package/dist/providers/google-genai.js.map +1 -1
  191. package/dist/providers/groq.js +12 -0
  192. package/dist/providers/groq.js.map +1 -1
  193. package/dist/providers/huggingface.d.ts +25 -0
  194. package/dist/providers/huggingface.js +69 -0
  195. package/dist/providers/huggingface.js.map +1 -0
  196. package/dist/providers/modelCatalog.d.ts +109 -0
  197. package/dist/providers/modelCatalog.js +245 -0
  198. package/dist/providers/modelCatalog.js.map +1 -0
  199. package/dist/providers/modelDiscovery.d.ts +99 -5
  200. package/dist/providers/modelDiscovery.js +191 -35
  201. package/dist/providers/modelDiscovery.js.map +1 -1
  202. package/dist/providers/ollama.d.ts +18 -4
  203. package/dist/providers/ollama.js +67 -37
  204. package/dist/providers/ollama.js.map +1 -1
  205. package/dist/providers/openai.js +34 -0
  206. package/dist/providers/openai.js.map +1 -1
  207. package/dist/providers/openrouter.d.ts +26 -4
  208. package/dist/providers/openrouter.js +83 -26
  209. package/dist/providers/openrouter.js.map +1 -1
  210. package/dist/providers/vertexai.js +19 -1
  211. package/dist/providers/vertexai.js.map +1 -1
  212. package/dist/providers/xai.js +20 -0
  213. package/dist/providers/xai.js.map +1 -1
  214. package/dist/runtime/askStructured.d.ts +105 -0
  215. package/dist/runtime/askStructured.js +120 -0
  216. package/dist/runtime/askStructured.js.map +1 -0
  217. package/dist/runtime/conversation.d.ts +64 -0
  218. package/dist/runtime/conversation.js +171 -0
  219. package/dist/runtime/conversation.js.map +1 -0
  220. package/dist/runtime/singleShot.d.ts +37 -6
  221. package/dist/runtime/singleShot.js +113 -67
  222. package/dist/runtime/singleShot.js.map +1 -1
  223. package/dist/runtime/structuredOutput.d.ts +104 -0
  224. package/dist/runtime/structuredOutput.js +393 -0
  225. package/dist/runtime/structuredOutput.js.map +1 -0
  226. package/dist/utils/ProgressIndicator.d.ts +21 -0
  227. package/dist/utils/ProgressIndicator.js +30 -3
  228. package/dist/utils/ProgressIndicator.js.map +1 -1
  229. package/dist/utils/aiignoreUtils.js.map +1 -1
  230. package/dist/utils/binaryOutputUtils.js.map +1 -1
  231. package/dist/utils/consoleUtils.d.ts +95 -0
  232. package/dist/utils/consoleUtils.js +112 -2
  233. package/dist/utils/consoleUtils.js.map +1 -1
  234. package/dist/utils/crashHandler.d.ts +87 -0
  235. package/dist/utils/crashHandler.js +128 -0
  236. package/dist/utils/crashHandler.js.map +1 -0
  237. package/dist/utils/debugDump.d.ts +134 -0
  238. package/dist/utils/debugDump.js +381 -0
  239. package/dist/utils/debugDump.js.map +1 -0
  240. package/dist/utils/debugUtils.d.ts +13 -4
  241. package/dist/utils/debugUtils.js +36 -13
  242. package/dist/utils/debugUtils.js.map +1 -1
  243. package/dist/utils/displayWidth.d.ts +53 -0
  244. package/dist/utils/displayWidth.js +195 -0
  245. package/dist/utils/displayWidth.js.map +1 -0
  246. package/dist/utils/fileUtils.js.map +1 -1
  247. package/dist/utils/globalConfigUtils.d.ts +14 -2
  248. package/dist/utils/globalConfigUtils.js +22 -4
  249. package/dist/utils/globalConfigUtils.js.map +1 -1
  250. package/dist/utils/llmUtils.d.ts +39 -8
  251. package/dist/utils/llmUtils.js +76 -8
  252. package/dist/utils/llmUtils.js.map +1 -1
  253. package/dist/utils/redactSecrets.d.ts +63 -0
  254. package/dist/utils/redactSecrets.js +286 -0
  255. package/dist/utils/redactSecrets.js.map +1 -0
  256. package/dist/utils/systemPromptNotes.d.ts +222 -0
  257. package/dist/utils/systemPromptNotes.js +338 -0
  258. package/dist/utils/systemPromptNotes.js.map +1 -0
  259. package/dist/utils/systemUtils.d.ts +18 -1
  260. package/dist/utils/systemUtils.js +38 -3
  261. package/dist/utils/systemUtils.js.map +1 -1
  262. package/dist/utils/toolMatching.d.ts +30 -0
  263. package/dist/utils/toolMatching.js +44 -0
  264. package/dist/utils/toolMatching.js.map +1 -0
  265. package/dist/utils/untrustedText.d.ts +86 -0
  266. package/dist/utils/untrustedText.js +101 -0
  267. package/dist/utils/untrustedText.js.map +1 -0
  268. package/package.json +21 -7
  269. package/schema/gsloth-config.schema.json +1921 -326
  270. package/dist/core/shell/allowlist.d.ts +0 -75
  271. package/dist/core/shell/allowlist.js +0 -187
  272. package/dist/core/shell/allowlist.js.map +0 -1
  273. package/dist/core/shell/judge.d.ts +0 -161
  274. package/dist/core/shell/judge.js +0 -261
  275. package/dist/core/shell/judge.js.map +0 -1
@@ -27,13 +27,15 @@
27
27
  },
28
28
  "additionalProperties": {}
29
29
  },
30
+ "extends": {
31
+ "type": "string"
32
+ },
30
33
  "agent": {
31
34
  "type": "object",
32
35
  "properties": {
33
36
  "backend": {
34
37
  "type": "string",
35
38
  "enum": [
36
- "deep",
37
39
  "lean"
38
40
  ]
39
41
  }
@@ -126,8 +128,185 @@
126
128
  },
127
129
  "additionalProperties": {}
128
130
  },
129
- "projectGuidelines": {
130
- "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
+ }
131
310
  },
132
311
  "identityProfile": {
133
312
  "type": "string"
@@ -149,9 +328,6 @@
149
328
  }
150
329
  }
151
330
  },
152
- "projectReviewInstructions": {
153
- "type": "string"
154
- },
155
331
  "noDefaultPrompts": {
156
332
  "type": "boolean"
157
333
  },
@@ -174,10 +350,158 @@
174
350
  ]
175
351
  },
176
352
  "builtInTools": {
177
- "type": "array",
178
- "items": {
179
- "type": "string"
180
- }
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
+ ]
181
505
  },
182
506
  "tools": {
183
507
  "type": "array",
@@ -212,6 +536,12 @@
212
536
  "useColour": {
213
537
  "type": "boolean"
214
538
  },
539
+ "useMouse": {
540
+ "type": "boolean"
541
+ },
542
+ "tui": {
543
+ "type": "boolean"
544
+ },
215
545
  "streamSessionInferenceLog": {
216
546
  "type": "boolean"
217
547
  },
@@ -290,10 +620,26 @@
290
620
  "mcpServers": {
291
621
  "type": "object",
292
622
  "propertyNames": {
293
- "type": "string"
623
+ "type": "string",
624
+ "minLength": 1,
625
+ "pattern": "^([^*]|[\\s\\S]{2,})$"
294
626
  },
295
627
  "additionalProperties": {}
296
628
  },
629
+ "tls": {
630
+ "type": "object",
631
+ "properties": {
632
+ "extraCaCerts": {
633
+ "type": "array",
634
+ "items": {
635
+ "type": "string"
636
+ }
637
+ },
638
+ "rejectUnauthorized": {
639
+ "type": "boolean"
640
+ }
641
+ }
642
+ },
297
643
  "a2aAgents": {
298
644
  "type": "object",
299
645
  "propertyNames": {
@@ -353,16 +699,12 @@
353
699
  ]
354
700
  },
355
701
  "builtInTools": {
356
- "type": "array",
357
- "items": {
358
- "type": "string"
359
- }
360
- },
361
- "customTools": {
362
702
  "anyOf": [
363
703
  {
364
- "type": "boolean",
365
- "const": false
704
+ "type": "array",
705
+ "items": {
706
+ "type": "string"
707
+ }
366
708
  },
367
709
  {
368
710
  "type": "object",
@@ -370,13 +712,165 @@
370
712
  "type": "string"
371
713
  },
372
714
  "additionalProperties": {
373
- "type": "object",
374
- "properties": {
375
- "command": {
376
- "type": "string"
715
+ "anyOf": [
716
+ {
717
+ "type": "boolean"
377
718
  },
378
- "description": {
379
- "type": "string"
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
+ ]
854
+ },
855
+ "customTools": {
856
+ "anyOf": [
857
+ {
858
+ "type": "boolean",
859
+ "const": false
860
+ },
861
+ {
862
+ "type": "object",
863
+ "propertyNames": {
864
+ "type": "string"
865
+ },
866
+ "additionalProperties": {
867
+ "type": "object",
868
+ "properties": {
869
+ "command": {
870
+ "type": "string"
871
+ },
872
+ "description": {
873
+ "type": "string"
380
874
  },
381
875
  "parameters": {
382
876
  "type": "object",
@@ -526,10 +1020,158 @@
526
1020
  ]
527
1021
  },
528
1022
  "builtInTools": {
529
- "type": "array",
530
- "items": {
531
- "type": "string"
532
- }
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
+ ]
533
1175
  },
534
1176
  "customTools": {
535
1177
  "anyOf": [
@@ -690,10 +1332,158 @@
690
1332
  ]
691
1333
  },
692
1334
  "builtInTools": {
693
- "type": "array",
694
- "items": {
695
- "type": "string"
696
- }
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
+ ]
697
1487
  },
698
1488
  "customTools": {
699
1489
  "anyOf": [
@@ -762,96 +1552,6 @@
762
1552
  "type": "string"
763
1553
  }
764
1554
  },
765
- "devTools": {
766
- "type": "object",
767
- "properties": {
768
- "run_tests": {
769
- "type": "string"
770
- },
771
- "run_lint": {
772
- "type": "string"
773
- },
774
- "run_build": {
775
- "type": "string"
776
- },
777
- "run_single_test": {
778
- "type": "string"
779
- },
780
- "shell": {
781
- "anyOf": [
782
- {
783
- "type": "boolean"
784
- },
785
- {
786
- "type": "object",
787
- "properties": {
788
- "enabled": {
789
- "type": "boolean"
790
- },
791
- "timeout": {
792
- "type": "number"
793
- },
794
- "maxOutputBytes": {
795
- "type": "number"
796
- },
797
- "allowlist": {
798
- "type": "boolean"
799
- },
800
- "persistAllowlist": {
801
- "type": "boolean"
802
- },
803
- "judge": {
804
- "anyOf": [
805
- {
806
- "type": "boolean"
807
- },
808
- {
809
- "type": "object",
810
- "properties": {
811
- "enabled": {
812
- "type": "boolean"
813
- },
814
- "autoApproveLow": {
815
- "type": "boolean"
816
- },
817
- "blockHigh": {
818
- "type": "boolean"
819
- },
820
- "model": {
821
- "type": "object",
822
- "properties": {
823
- "type": {
824
- "type": "string"
825
- },
826
- "model": {
827
- "type": "string"
828
- },
829
- "configuration": {
830
- "type": "object",
831
- "propertyNames": {
832
- "type": "string"
833
- },
834
- "additionalProperties": {}
835
- },
836
- "apiKeyEnvironmentVariable": {
837
- "type": "string"
838
- }
839
- },
840
- "additionalProperties": {}
841
- }
842
- }
843
- }
844
- ]
845
- }
846
- }
847
- }
848
- ]
849
- },
850
- "shellYolo": {
851
- "type": "boolean"
852
- }
853
- }
854
- },
855
1555
  "binaryFormats": {
856
1556
  "anyOf": [
857
1557
  {
@@ -924,11 +1624,159 @@
924
1624
  ]
925
1625
  },
926
1626
  "builtInTools": {
927
- "type": "array",
928
- "items": {
929
- "type": "string"
930
- }
931
- },
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
+ ]
1779
+ },
932
1780
  "customTools": {
933
1781
  "anyOf": [
934
1782
  {
@@ -1068,10 +1916,158 @@
1068
1916
  ]
1069
1917
  },
1070
1918
  "builtInTools": {
1071
- "type": "array",
1072
- "items": {
1073
- "type": "string"
1074
- }
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
+ ]
1075
2071
  },
1076
2072
  "customTools": {
1077
2073
  "anyOf": [
@@ -1140,96 +2136,6 @@
1140
2136
  "type": "string"
1141
2137
  }
1142
2138
  },
1143
- "devTools": {
1144
- "type": "object",
1145
- "properties": {
1146
- "run_tests": {
1147
- "type": "string"
1148
- },
1149
- "run_lint": {
1150
- "type": "string"
1151
- },
1152
- "run_build": {
1153
- "type": "string"
1154
- },
1155
- "run_single_test": {
1156
- "type": "string"
1157
- },
1158
- "shell": {
1159
- "anyOf": [
1160
- {
1161
- "type": "boolean"
1162
- },
1163
- {
1164
- "type": "object",
1165
- "properties": {
1166
- "enabled": {
1167
- "type": "boolean"
1168
- },
1169
- "timeout": {
1170
- "type": "number"
1171
- },
1172
- "maxOutputBytes": {
1173
- "type": "number"
1174
- },
1175
- "allowlist": {
1176
- "type": "boolean"
1177
- },
1178
- "persistAllowlist": {
1179
- "type": "boolean"
1180
- },
1181
- "judge": {
1182
- "anyOf": [
1183
- {
1184
- "type": "boolean"
1185
- },
1186
- {
1187
- "type": "object",
1188
- "properties": {
1189
- "enabled": {
1190
- "type": "boolean"
1191
- },
1192
- "autoApproveLow": {
1193
- "type": "boolean"
1194
- },
1195
- "blockHigh": {
1196
- "type": "boolean"
1197
- },
1198
- "model": {
1199
- "type": "object",
1200
- "properties": {
1201
- "type": {
1202
- "type": "string"
1203
- },
1204
- "model": {
1205
- "type": "string"
1206
- },
1207
- "configuration": {
1208
- "type": "object",
1209
- "propertyNames": {
1210
- "type": "string"
1211
- },
1212
- "additionalProperties": {}
1213
- },
1214
- "apiKeyEnvironmentVariable": {
1215
- "type": "string"
1216
- }
1217
- },
1218
- "additionalProperties": {}
1219
- }
1220
- }
1221
- }
1222
- ]
1223
- }
1224
- }
1225
- }
1226
- ]
1227
- },
1228
- "shellYolo": {
1229
- "type": "boolean"
1230
- }
1231
- }
1232
- },
1233
2139
  "binaryFormats": {
1234
2140
  "anyOf": [
1235
2141
  {
@@ -1302,10 +2208,158 @@
1302
2208
  ]
1303
2209
  },
1304
2210
  "builtInTools": {
1305
- "type": "array",
1306
- "items": {
1307
- "type": "string"
1308
- }
2211
+ "anyOf": [
2212
+ {
2213
+ "type": "array",
2214
+ "items": {
2215
+ "type": "string"
2216
+ }
2217
+ },
2218
+ {
2219
+ "type": "object",
2220
+ "propertyNames": {
2221
+ "type": "string"
2222
+ },
2223
+ "additionalProperties": {
2224
+ "anyOf": [
2225
+ {
2226
+ "type": "boolean"
2227
+ },
2228
+ {
2229
+ "type": "object",
2230
+ "properties": {
2231
+ "enabled": {
2232
+ "type": "boolean"
2233
+ },
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
+ }
2253
+ }
2254
+ }
2255
+ ]
2256
+ }
2257
+ }
2258
+ ]
2259
+ },
2260
+ "approvals": {
2261
+ "anyOf": [
2262
+ {
2263
+ "type": "string",
2264
+ "enum": [
2265
+ "manual",
2266
+ "write",
2267
+ "assisted",
2268
+ "auto",
2269
+ "bypass"
2270
+ ]
2271
+ },
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
2310
+ },
2311
+ "mcp": {
2312
+ "type": "object",
2313
+ "properties": {
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
2331
+ },
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
+ ]
1309
2363
  },
1310
2364
  "customTools": {
1311
2365
  "anyOf": [
@@ -1374,101 +2428,11 @@
1374
2428
  "type": "string"
1375
2429
  }
1376
2430
  },
1377
- "devTools": {
1378
- "type": "object",
1379
- "properties": {
1380
- "run_tests": {
1381
- "type": "string"
1382
- },
1383
- "run_lint": {
1384
- "type": "string"
1385
- },
1386
- "run_build": {
1387
- "type": "string"
1388
- },
1389
- "run_single_test": {
1390
- "type": "string"
1391
- },
1392
- "shell": {
1393
- "anyOf": [
1394
- {
1395
- "type": "boolean"
1396
- },
1397
- {
1398
- "type": "object",
1399
- "properties": {
1400
- "enabled": {
1401
- "type": "boolean"
1402
- },
1403
- "timeout": {
1404
- "type": "number"
1405
- },
1406
- "maxOutputBytes": {
1407
- "type": "number"
1408
- },
1409
- "allowlist": {
1410
- "type": "boolean"
1411
- },
1412
- "persistAllowlist": {
1413
- "type": "boolean"
1414
- },
1415
- "judge": {
1416
- "anyOf": [
1417
- {
1418
- "type": "boolean"
1419
- },
1420
- {
1421
- "type": "object",
1422
- "properties": {
1423
- "enabled": {
1424
- "type": "boolean"
1425
- },
1426
- "autoApproveLow": {
1427
- "type": "boolean"
1428
- },
1429
- "blockHigh": {
1430
- "type": "boolean"
1431
- },
1432
- "model": {
1433
- "type": "object",
1434
- "properties": {
1435
- "type": {
1436
- "type": "string"
1437
- },
1438
- "model": {
1439
- "type": "string"
1440
- },
1441
- "configuration": {
1442
- "type": "object",
1443
- "propertyNames": {
1444
- "type": "string"
1445
- },
1446
- "additionalProperties": {}
1447
- },
1448
- "apiKeyEnvironmentVariable": {
1449
- "type": "string"
1450
- }
1451
- },
1452
- "additionalProperties": {}
1453
- }
1454
- }
1455
- }
1456
- ]
1457
- }
1458
- }
1459
- }
1460
- ]
1461
- },
1462
- "shellYolo": {
1463
- "type": "boolean"
1464
- }
1465
- }
1466
- },
1467
- "binaryFormats": {
1468
- "anyOf": [
1469
- {
1470
- "type": "boolean",
1471
- "const": false
2431
+ "binaryFormats": {
2432
+ "anyOf": [
2433
+ {
2434
+ "type": "boolean",
2435
+ "const": false
1472
2436
  },
1473
2437
  {
1474
2438
  "type": "array",
@@ -1536,10 +2500,158 @@
1536
2500
  ]
1537
2501
  },
1538
2502
  "builtInTools": {
1539
- "type": "array",
1540
- "items": {
1541
- "type": "string"
1542
- }
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
+ ]
1543
2655
  },
1544
2656
  "port": {
1545
2657
  "type": "number"
@@ -1562,9 +2674,48 @@
1562
2674
  }
1563
2675
  }
1564
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
+ },
1565
2705
  "modelDisplayName": {
1566
2706
  "type": "string"
1567
2707
  },
2708
+ "injectModelContext": {
2709
+ "type": "boolean"
2710
+ },
2711
+ "debugDump": {
2712
+ "type": "object",
2713
+ "properties": {
2714
+ "redact": {
2715
+ "type": "boolean"
2716
+ }
2717
+ }
2718
+ },
1568
2719
  "allowDirs": {
1569
2720
  "type": "array",
1570
2721
  "items": {
@@ -1573,7 +2724,451 @@
1573
2724
  },
1574
2725
  "askWriteMode": {
1575
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
+ }
1576
2791
  }
1577
2792
  },
1578
- "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
+ }
1579
3174
  }