@gaunt-sloth/core 2.0.0-alpha.0 → 2.0.0-alpha.10

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 (114) hide show
  1. package/.gsloth.code.md +10 -0
  2. package/LICENSE +7 -0
  3. package/README.md +3 -4
  4. package/dist/config/defaults.d.ts +85 -0
  5. package/dist/config/defaults.js +101 -0
  6. package/dist/config/defaults.js.map +1 -0
  7. package/dist/config/jsonc.d.ts +12 -0
  8. package/dist/config/jsonc.js +41 -0
  9. package/dist/config/jsonc.js.map +1 -0
  10. package/dist/config/loader.d.ts +109 -0
  11. package/dist/config/loader.js +663 -0
  12. package/dist/config/loader.js.map +1 -0
  13. package/dist/config/schema.d.ts +509 -0
  14. package/dist/config/schema.js +349 -0
  15. package/dist/config/schema.js.map +1 -0
  16. package/dist/config/shell-policy.d.ts +212 -0
  17. package/dist/config/shell-policy.js +142 -0
  18. package/dist/config/shell-policy.js.map +1 -0
  19. package/dist/config/types.d.ts +490 -0
  20. package/dist/config/types.js +12 -0
  21. package/dist/config/types.js.map +1 -0
  22. package/dist/config.d.ts +18 -647
  23. package/dist/config.js +15 -516
  24. package/dist/config.js.map +1 -1
  25. package/dist/constants.d.ts +24 -0
  26. package/dist/constants.js +24 -0
  27. package/dist/constants.js.map +1 -1
  28. package/dist/core/GthAbstractAgent.d.ts +57 -1
  29. package/dist/core/GthAbstractAgent.js +171 -4
  30. package/dist/core/GthAbstractAgent.js.map +1 -1
  31. package/dist/core/GthAgentRunner.d.ts +168 -1
  32. package/dist/core/GthAgentRunner.js +380 -4
  33. package/dist/core/GthAgentRunner.js.map +1 -1
  34. package/dist/core/GthLangChainAgent.js +94 -5
  35. package/dist/core/GthLangChainAgent.js.map +1 -1
  36. package/dist/core/debugCapture.d.ts +59 -0
  37. package/dist/core/debugCapture.js +101 -0
  38. package/dist/core/debugCapture.js.map +1 -0
  39. package/dist/core/gthLeanAgentFactory.d.ts +9 -0
  40. package/dist/core/gthLeanAgentFactory.js +10 -0
  41. package/dist/core/gthLeanAgentFactory.js.map +1 -0
  42. package/dist/core/runStats.d.ts +41 -0
  43. package/dist/core/runStats.js +73 -0
  44. package/dist/core/runStats.js.map +1 -0
  45. package/dist/core/shell/ShellCommandFailedError.d.ts +54 -0
  46. package/dist/core/shell/ShellCommandFailedError.js +68 -0
  47. package/dist/core/shell/ShellCommandFailedError.js.map +1 -0
  48. package/dist/core/shell/allowlist.d.ts +75 -0
  49. package/dist/core/shell/allowlist.js +187 -0
  50. package/dist/core/shell/allowlist.js.map +1 -0
  51. package/dist/core/shell/arity.d.ts +75 -0
  52. package/dist/core/shell/arity.js +313 -0
  53. package/dist/core/shell/arity.js.map +1 -0
  54. package/dist/core/shell/judge.d.ts +161 -0
  55. package/dist/core/shell/judge.js +261 -0
  56. package/dist/core/shell/judge.js.map +1 -0
  57. package/dist/core/shell/normalize.d.ts +27 -0
  58. package/dist/core/shell/normalize.js +53 -0
  59. package/dist/core/shell/normalize.js.map +1 -0
  60. package/dist/core/types.d.ts +104 -0
  61. package/dist/core/types.js.map +1 -1
  62. package/dist/history/historyFormat.d.ts +19 -0
  63. package/dist/history/historyFormat.js +85 -0
  64. package/dist/history/historyFormat.js.map +1 -0
  65. package/dist/history/historyStore.d.ts +121 -0
  66. package/dist/history/historyStore.js +315 -0
  67. package/dist/history/historyStore.js.map +1 -0
  68. package/dist/history/recordSession.d.ts +28 -0
  69. package/dist/history/recordSession.js +29 -0
  70. package/dist/history/recordSession.js.map +1 -0
  71. package/dist/index.d.ts +4 -0
  72. package/dist/index.js +4 -0
  73. package/dist/index.js.map +1 -1
  74. package/dist/providers/anthropic.d.ts +1 -1
  75. package/dist/providers/anthropic.js +5 -10
  76. package/dist/providers/anthropic.js.map +1 -1
  77. package/dist/providers/deepseek.d.ts +1 -1
  78. package/dist/providers/deepseek.js +5 -10
  79. package/dist/providers/deepseek.js.map +1 -1
  80. package/dist/providers/google-genai.d.ts +1 -1
  81. package/dist/providers/google-genai.js +5 -10
  82. package/dist/providers/google-genai.js.map +1 -1
  83. package/dist/providers/groq.d.ts +1 -1
  84. package/dist/providers/groq.js +5 -10
  85. package/dist/providers/groq.js.map +1 -1
  86. package/dist/providers/modelDiscovery.d.ts +54 -1
  87. package/dist/providers/modelDiscovery.js +106 -8
  88. package/dist/providers/modelDiscovery.js.map +1 -1
  89. package/dist/providers/ollama.d.ts +1 -1
  90. package/dist/providers/ollama.js +5 -15
  91. package/dist/providers/ollama.js.map +1 -1
  92. package/dist/providers/openai.d.ts +1 -1
  93. package/dist/providers/openai.js +5 -10
  94. package/dist/providers/openai.js.map +1 -1
  95. package/dist/providers/openrouter.d.ts +1 -1
  96. package/dist/providers/openrouter.js +7 -12
  97. package/dist/providers/openrouter.js.map +1 -1
  98. package/dist/providers/vertexai.d.ts +1 -1
  99. package/dist/providers/vertexai.js +5 -10
  100. package/dist/providers/vertexai.js.map +1 -1
  101. package/dist/providers/xai.d.ts +1 -1
  102. package/dist/providers/xai.js +5 -10
  103. package/dist/providers/xai.js.map +1 -1
  104. package/dist/runtime/singleShot.d.ts +5 -2
  105. package/dist/runtime/singleShot.js +36 -3
  106. package/dist/runtime/singleShot.js.map +1 -1
  107. package/dist/utils/fileUtils.d.ts +24 -2
  108. package/dist/utils/fileUtils.js +54 -12
  109. package/dist/utils/fileUtils.js.map +1 -1
  110. package/dist/utils/systemUtils.d.ts +31 -0
  111. package/dist/utils/systemUtils.js +38 -0
  112. package/dist/utils/systemUtils.js.map +1 -1
  113. package/package.json +16 -11
  114. package/schema/gsloth-config.schema.json +1579 -0
@@ -0,0 +1,1579 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "$schema": {
6
+ "type": "string"
7
+ },
8
+ "llm": {
9
+ "type": "object",
10
+ "properties": {
11
+ "type": {
12
+ "type": "string"
13
+ },
14
+ "model": {
15
+ "type": "string"
16
+ },
17
+ "configuration": {
18
+ "type": "object",
19
+ "propertyNames": {
20
+ "type": "string"
21
+ },
22
+ "additionalProperties": {}
23
+ },
24
+ "apiKeyEnvironmentVariable": {
25
+ "type": "string"
26
+ }
27
+ },
28
+ "additionalProperties": {}
29
+ },
30
+ "agent": {
31
+ "type": "object",
32
+ "properties": {
33
+ "backend": {
34
+ "type": "string",
35
+ "enum": [
36
+ "deep",
37
+ "lean"
38
+ ]
39
+ }
40
+ }
41
+ },
42
+ "history": {
43
+ "type": "object",
44
+ "properties": {
45
+ "enabled": {
46
+ "type": "boolean"
47
+ },
48
+ "dbPath": {
49
+ "type": "string"
50
+ }
51
+ }
52
+ },
53
+ "memory": {
54
+ "type": "object",
55
+ "properties": {
56
+ "enabled": {
57
+ "type": "boolean"
58
+ }
59
+ }
60
+ },
61
+ "binaryFormats": {
62
+ "anyOf": [
63
+ {
64
+ "type": "boolean",
65
+ "const": false
66
+ },
67
+ {
68
+ "type": "array",
69
+ "items": {
70
+ "type": "object",
71
+ "properties": {
72
+ "type": {
73
+ "type": "string",
74
+ "enum": [
75
+ "image",
76
+ "file",
77
+ "audio",
78
+ "video",
79
+ "binary"
80
+ ]
81
+ },
82
+ "extensions": {
83
+ "type": "array",
84
+ "items": {
85
+ "type": "string"
86
+ }
87
+ },
88
+ "maxSize": {
89
+ "type": "number"
90
+ },
91
+ "mimeTypes": {
92
+ "type": "object",
93
+ "propertyNames": {
94
+ "type": "string"
95
+ },
96
+ "additionalProperties": {
97
+ "type": "string"
98
+ }
99
+ }
100
+ },
101
+ "required": [
102
+ "type",
103
+ "extensions"
104
+ ]
105
+ }
106
+ }
107
+ ]
108
+ },
109
+ "contentSource": {
110
+ "type": "string"
111
+ },
112
+ "requirementSource": {
113
+ "type": "string"
114
+ },
115
+ "contentSourceConfig": {
116
+ "type": "object",
117
+ "propertyNames": {
118
+ "type": "string"
119
+ },
120
+ "additionalProperties": {}
121
+ },
122
+ "requirementSourceConfig": {
123
+ "type": "object",
124
+ "propertyNames": {
125
+ "type": "string"
126
+ },
127
+ "additionalProperties": {}
128
+ },
129
+ "projectGuidelines": {
130
+ "type": "string"
131
+ },
132
+ "identityProfile": {
133
+ "type": "string"
134
+ },
135
+ "includeCurrentDateAfterGuidelines": {
136
+ "type": "boolean"
137
+ },
138
+ "organization": {
139
+ "type": "object",
140
+ "properties": {
141
+ "name": {
142
+ "type": "string"
143
+ },
144
+ "locale": {
145
+ "type": "string"
146
+ },
147
+ "timezone": {
148
+ "type": "string"
149
+ }
150
+ }
151
+ },
152
+ "projectReviewInstructions": {
153
+ "type": "string"
154
+ },
155
+ "noDefaultPrompts": {
156
+ "type": "boolean"
157
+ },
158
+ "filesystem": {
159
+ "anyOf": [
160
+ {
161
+ "type": "array",
162
+ "items": {
163
+ "type": "string"
164
+ }
165
+ },
166
+ {
167
+ "type": "string",
168
+ "enum": [
169
+ "all",
170
+ "read",
171
+ "none"
172
+ ]
173
+ }
174
+ ]
175
+ },
176
+ "builtInTools": {
177
+ "type": "array",
178
+ "items": {
179
+ "type": "string"
180
+ }
181
+ },
182
+ "tools": {
183
+ "type": "array",
184
+ "items": {}
185
+ },
186
+ "allowedTools": {
187
+ "type": "array",
188
+ "items": {
189
+ "type": "string"
190
+ }
191
+ },
192
+ "middleware": {
193
+ "type": "array",
194
+ "items": {}
195
+ },
196
+ "streamOutput": {
197
+ "type": "boolean"
198
+ },
199
+ "writeOutputToFile": {
200
+ "anyOf": [
201
+ {
202
+ "type": "boolean"
203
+ },
204
+ {
205
+ "type": "string"
206
+ }
207
+ ]
208
+ },
209
+ "writeBinaryOutputsToFile": {
210
+ "type": "boolean"
211
+ },
212
+ "useColour": {
213
+ "type": "boolean"
214
+ },
215
+ "streamSessionInferenceLog": {
216
+ "type": "boolean"
217
+ },
218
+ "canInterruptInferenceWithEsc": {
219
+ "type": "boolean"
220
+ },
221
+ "debugLog": {
222
+ "type": "boolean"
223
+ },
224
+ "recursionLimit": {
225
+ "type": "number"
226
+ },
227
+ "consoleLevel": {
228
+ "anyOf": [
229
+ {
230
+ "type": "string"
231
+ },
232
+ {
233
+ "type": "number"
234
+ }
235
+ ]
236
+ },
237
+ "customTools": {
238
+ "type": "object",
239
+ "propertyNames": {
240
+ "type": "string"
241
+ },
242
+ "additionalProperties": {
243
+ "type": "object",
244
+ "properties": {
245
+ "command": {
246
+ "type": "string"
247
+ },
248
+ "description": {
249
+ "type": "string"
250
+ },
251
+ "parameters": {
252
+ "type": "object",
253
+ "propertyNames": {
254
+ "type": "string"
255
+ },
256
+ "additionalProperties": {
257
+ "type": "object",
258
+ "properties": {
259
+ "description": {
260
+ "type": "string"
261
+ },
262
+ "allow": {
263
+ "type": "array",
264
+ "items": {
265
+ "type": "string",
266
+ "enum": [
267
+ "absolute-paths",
268
+ "directory-traversal",
269
+ "shell-injection",
270
+ "null-bytes"
271
+ ]
272
+ }
273
+ }
274
+ },
275
+ "required": [
276
+ "description"
277
+ ]
278
+ }
279
+ },
280
+ "timeout": {
281
+ "type": "number"
282
+ }
283
+ },
284
+ "required": [
285
+ "command",
286
+ "description"
287
+ ]
288
+ }
289
+ },
290
+ "mcpServers": {
291
+ "type": "object",
292
+ "propertyNames": {
293
+ "type": "string"
294
+ },
295
+ "additionalProperties": {}
296
+ },
297
+ "a2aAgents": {
298
+ "type": "object",
299
+ "propertyNames": {
300
+ "type": "string"
301
+ },
302
+ "additionalProperties": {}
303
+ },
304
+ "builtInToolsConfig": {
305
+ "type": "object",
306
+ "propertyNames": {
307
+ "type": "string"
308
+ },
309
+ "additionalProperties": {}
310
+ },
311
+ "aiignore": {
312
+ "type": "object",
313
+ "properties": {
314
+ "enabled": {
315
+ "type": "boolean"
316
+ },
317
+ "patterns": {
318
+ "type": "array",
319
+ "items": {
320
+ "type": "string"
321
+ }
322
+ }
323
+ }
324
+ },
325
+ "commands": {
326
+ "type": "object",
327
+ "properties": {
328
+ "pr": {
329
+ "type": "object",
330
+ "properties": {
331
+ "contentSource": {
332
+ "type": "string"
333
+ },
334
+ "requirementSource": {
335
+ "type": "string"
336
+ },
337
+ "filesystem": {
338
+ "anyOf": [
339
+ {
340
+ "type": "array",
341
+ "items": {
342
+ "type": "string"
343
+ }
344
+ },
345
+ {
346
+ "type": "string",
347
+ "enum": [
348
+ "all",
349
+ "read",
350
+ "none"
351
+ ]
352
+ }
353
+ ]
354
+ },
355
+ "builtInTools": {
356
+ "type": "array",
357
+ "items": {
358
+ "type": "string"
359
+ }
360
+ },
361
+ "customTools": {
362
+ "anyOf": [
363
+ {
364
+ "type": "boolean",
365
+ "const": false
366
+ },
367
+ {
368
+ "type": "object",
369
+ "propertyNames": {
370
+ "type": "string"
371
+ },
372
+ "additionalProperties": {
373
+ "type": "object",
374
+ "properties": {
375
+ "command": {
376
+ "type": "string"
377
+ },
378
+ "description": {
379
+ "type": "string"
380
+ },
381
+ "parameters": {
382
+ "type": "object",
383
+ "propertyNames": {
384
+ "type": "string"
385
+ },
386
+ "additionalProperties": {
387
+ "type": "object",
388
+ "properties": {
389
+ "description": {
390
+ "type": "string"
391
+ },
392
+ "allow": {
393
+ "type": "array",
394
+ "items": {
395
+ "type": "string",
396
+ "enum": [
397
+ "absolute-paths",
398
+ "directory-traversal",
399
+ "shell-injection",
400
+ "null-bytes"
401
+ ]
402
+ }
403
+ }
404
+ },
405
+ "required": [
406
+ "description"
407
+ ]
408
+ }
409
+ },
410
+ "timeout": {
411
+ "type": "number"
412
+ }
413
+ },
414
+ "required": [
415
+ "command",
416
+ "description"
417
+ ]
418
+ }
419
+ }
420
+ ]
421
+ },
422
+ "allowedTools": {
423
+ "type": "array",
424
+ "items": {
425
+ "type": "string"
426
+ }
427
+ },
428
+ "logWorkForReviewInSeconds": {
429
+ "type": "number"
430
+ },
431
+ "rating": {
432
+ "type": "object",
433
+ "properties": {
434
+ "enabled": {
435
+ "type": "boolean"
436
+ },
437
+ "passThreshold": {
438
+ "type": "number"
439
+ },
440
+ "maxRating": {
441
+ "type": "number"
442
+ },
443
+ "minRating": {
444
+ "type": "number"
445
+ },
446
+ "errorOnReviewFail": {
447
+ "type": "boolean"
448
+ }
449
+ }
450
+ },
451
+ "binaryFormats": {
452
+ "anyOf": [
453
+ {
454
+ "type": "boolean",
455
+ "const": false
456
+ },
457
+ {
458
+ "type": "array",
459
+ "items": {
460
+ "type": "object",
461
+ "properties": {
462
+ "type": {
463
+ "type": "string",
464
+ "enum": [
465
+ "image",
466
+ "file",
467
+ "audio",
468
+ "video",
469
+ "binary"
470
+ ]
471
+ },
472
+ "extensions": {
473
+ "type": "array",
474
+ "items": {
475
+ "type": "string"
476
+ }
477
+ },
478
+ "maxSize": {
479
+ "type": "number"
480
+ },
481
+ "mimeTypes": {
482
+ "type": "object",
483
+ "propertyNames": {
484
+ "type": "string"
485
+ },
486
+ "additionalProperties": {
487
+ "type": "string"
488
+ }
489
+ }
490
+ },
491
+ "required": [
492
+ "type",
493
+ "extensions"
494
+ ]
495
+ }
496
+ }
497
+ ]
498
+ }
499
+ }
500
+ },
501
+ "review": {
502
+ "type": "object",
503
+ "properties": {
504
+ "contentSource": {
505
+ "type": "string"
506
+ },
507
+ "requirementSource": {
508
+ "type": "string"
509
+ },
510
+ "filesystem": {
511
+ "anyOf": [
512
+ {
513
+ "type": "array",
514
+ "items": {
515
+ "type": "string"
516
+ }
517
+ },
518
+ {
519
+ "type": "string",
520
+ "enum": [
521
+ "all",
522
+ "read",
523
+ "none"
524
+ ]
525
+ }
526
+ ]
527
+ },
528
+ "builtInTools": {
529
+ "type": "array",
530
+ "items": {
531
+ "type": "string"
532
+ }
533
+ },
534
+ "customTools": {
535
+ "anyOf": [
536
+ {
537
+ "type": "boolean",
538
+ "const": false
539
+ },
540
+ {
541
+ "type": "object",
542
+ "propertyNames": {
543
+ "type": "string"
544
+ },
545
+ "additionalProperties": {
546
+ "type": "object",
547
+ "properties": {
548
+ "command": {
549
+ "type": "string"
550
+ },
551
+ "description": {
552
+ "type": "string"
553
+ },
554
+ "parameters": {
555
+ "type": "object",
556
+ "propertyNames": {
557
+ "type": "string"
558
+ },
559
+ "additionalProperties": {
560
+ "type": "object",
561
+ "properties": {
562
+ "description": {
563
+ "type": "string"
564
+ },
565
+ "allow": {
566
+ "type": "array",
567
+ "items": {
568
+ "type": "string",
569
+ "enum": [
570
+ "absolute-paths",
571
+ "directory-traversal",
572
+ "shell-injection",
573
+ "null-bytes"
574
+ ]
575
+ }
576
+ }
577
+ },
578
+ "required": [
579
+ "description"
580
+ ]
581
+ }
582
+ },
583
+ "timeout": {
584
+ "type": "number"
585
+ }
586
+ },
587
+ "required": [
588
+ "command",
589
+ "description"
590
+ ]
591
+ }
592
+ }
593
+ ]
594
+ },
595
+ "allowedTools": {
596
+ "type": "array",
597
+ "items": {
598
+ "type": "string"
599
+ }
600
+ },
601
+ "rating": {
602
+ "type": "object",
603
+ "properties": {
604
+ "enabled": {
605
+ "type": "boolean"
606
+ },
607
+ "passThreshold": {
608
+ "type": "number"
609
+ },
610
+ "maxRating": {
611
+ "type": "number"
612
+ },
613
+ "minRating": {
614
+ "type": "number"
615
+ },
616
+ "errorOnReviewFail": {
617
+ "type": "boolean"
618
+ }
619
+ }
620
+ },
621
+ "binaryFormats": {
622
+ "anyOf": [
623
+ {
624
+ "type": "boolean",
625
+ "const": false
626
+ },
627
+ {
628
+ "type": "array",
629
+ "items": {
630
+ "type": "object",
631
+ "properties": {
632
+ "type": {
633
+ "type": "string",
634
+ "enum": [
635
+ "image",
636
+ "file",
637
+ "audio",
638
+ "video",
639
+ "binary"
640
+ ]
641
+ },
642
+ "extensions": {
643
+ "type": "array",
644
+ "items": {
645
+ "type": "string"
646
+ }
647
+ },
648
+ "maxSize": {
649
+ "type": "number"
650
+ },
651
+ "mimeTypes": {
652
+ "type": "object",
653
+ "propertyNames": {
654
+ "type": "string"
655
+ },
656
+ "additionalProperties": {
657
+ "type": "string"
658
+ }
659
+ }
660
+ },
661
+ "required": [
662
+ "type",
663
+ "extensions"
664
+ ]
665
+ }
666
+ }
667
+ ]
668
+ }
669
+ }
670
+ },
671
+ "ask": {
672
+ "type": "object",
673
+ "properties": {
674
+ "filesystem": {
675
+ "anyOf": [
676
+ {
677
+ "type": "array",
678
+ "items": {
679
+ "type": "string"
680
+ }
681
+ },
682
+ {
683
+ "type": "string",
684
+ "enum": [
685
+ "all",
686
+ "read",
687
+ "none"
688
+ ]
689
+ }
690
+ ]
691
+ },
692
+ "builtInTools": {
693
+ "type": "array",
694
+ "items": {
695
+ "type": "string"
696
+ }
697
+ },
698
+ "customTools": {
699
+ "anyOf": [
700
+ {
701
+ "type": "boolean",
702
+ "const": false
703
+ },
704
+ {
705
+ "type": "object",
706
+ "propertyNames": {
707
+ "type": "string"
708
+ },
709
+ "additionalProperties": {
710
+ "type": "object",
711
+ "properties": {
712
+ "command": {
713
+ "type": "string"
714
+ },
715
+ "description": {
716
+ "type": "string"
717
+ },
718
+ "parameters": {
719
+ "type": "object",
720
+ "propertyNames": {
721
+ "type": "string"
722
+ },
723
+ "additionalProperties": {
724
+ "type": "object",
725
+ "properties": {
726
+ "description": {
727
+ "type": "string"
728
+ },
729
+ "allow": {
730
+ "type": "array",
731
+ "items": {
732
+ "type": "string",
733
+ "enum": [
734
+ "absolute-paths",
735
+ "directory-traversal",
736
+ "shell-injection",
737
+ "null-bytes"
738
+ ]
739
+ }
740
+ }
741
+ },
742
+ "required": [
743
+ "description"
744
+ ]
745
+ }
746
+ },
747
+ "timeout": {
748
+ "type": "number"
749
+ }
750
+ },
751
+ "required": [
752
+ "command",
753
+ "description"
754
+ ]
755
+ }
756
+ }
757
+ ]
758
+ },
759
+ "allowedTools": {
760
+ "type": "array",
761
+ "items": {
762
+ "type": "string"
763
+ }
764
+ },
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
+ "binaryFormats": {
856
+ "anyOf": [
857
+ {
858
+ "type": "boolean",
859
+ "const": false
860
+ },
861
+ {
862
+ "type": "array",
863
+ "items": {
864
+ "type": "object",
865
+ "properties": {
866
+ "type": {
867
+ "type": "string",
868
+ "enum": [
869
+ "image",
870
+ "file",
871
+ "audio",
872
+ "video",
873
+ "binary"
874
+ ]
875
+ },
876
+ "extensions": {
877
+ "type": "array",
878
+ "items": {
879
+ "type": "string"
880
+ }
881
+ },
882
+ "maxSize": {
883
+ "type": "number"
884
+ },
885
+ "mimeTypes": {
886
+ "type": "object",
887
+ "propertyNames": {
888
+ "type": "string"
889
+ },
890
+ "additionalProperties": {
891
+ "type": "string"
892
+ }
893
+ }
894
+ },
895
+ "required": [
896
+ "type",
897
+ "extensions"
898
+ ]
899
+ }
900
+ }
901
+ ]
902
+ }
903
+ }
904
+ },
905
+ "chat": {
906
+ "type": "object",
907
+ "properties": {
908
+ "filesystem": {
909
+ "anyOf": [
910
+ {
911
+ "type": "array",
912
+ "items": {
913
+ "type": "string"
914
+ }
915
+ },
916
+ {
917
+ "type": "string",
918
+ "enum": [
919
+ "all",
920
+ "read",
921
+ "none"
922
+ ]
923
+ }
924
+ ]
925
+ },
926
+ "builtInTools": {
927
+ "type": "array",
928
+ "items": {
929
+ "type": "string"
930
+ }
931
+ },
932
+ "customTools": {
933
+ "anyOf": [
934
+ {
935
+ "type": "boolean",
936
+ "const": false
937
+ },
938
+ {
939
+ "type": "object",
940
+ "propertyNames": {
941
+ "type": "string"
942
+ },
943
+ "additionalProperties": {
944
+ "type": "object",
945
+ "properties": {
946
+ "command": {
947
+ "type": "string"
948
+ },
949
+ "description": {
950
+ "type": "string"
951
+ },
952
+ "parameters": {
953
+ "type": "object",
954
+ "propertyNames": {
955
+ "type": "string"
956
+ },
957
+ "additionalProperties": {
958
+ "type": "object",
959
+ "properties": {
960
+ "description": {
961
+ "type": "string"
962
+ },
963
+ "allow": {
964
+ "type": "array",
965
+ "items": {
966
+ "type": "string",
967
+ "enum": [
968
+ "absolute-paths",
969
+ "directory-traversal",
970
+ "shell-injection",
971
+ "null-bytes"
972
+ ]
973
+ }
974
+ }
975
+ },
976
+ "required": [
977
+ "description"
978
+ ]
979
+ }
980
+ },
981
+ "timeout": {
982
+ "type": "number"
983
+ }
984
+ },
985
+ "required": [
986
+ "command",
987
+ "description"
988
+ ]
989
+ }
990
+ }
991
+ ]
992
+ },
993
+ "allowedTools": {
994
+ "type": "array",
995
+ "items": {
996
+ "type": "string"
997
+ }
998
+ },
999
+ "binaryFormats": {
1000
+ "anyOf": [
1001
+ {
1002
+ "type": "boolean",
1003
+ "const": false
1004
+ },
1005
+ {
1006
+ "type": "array",
1007
+ "items": {
1008
+ "type": "object",
1009
+ "properties": {
1010
+ "type": {
1011
+ "type": "string",
1012
+ "enum": [
1013
+ "image",
1014
+ "file",
1015
+ "audio",
1016
+ "video",
1017
+ "binary"
1018
+ ]
1019
+ },
1020
+ "extensions": {
1021
+ "type": "array",
1022
+ "items": {
1023
+ "type": "string"
1024
+ }
1025
+ },
1026
+ "maxSize": {
1027
+ "type": "number"
1028
+ },
1029
+ "mimeTypes": {
1030
+ "type": "object",
1031
+ "propertyNames": {
1032
+ "type": "string"
1033
+ },
1034
+ "additionalProperties": {
1035
+ "type": "string"
1036
+ }
1037
+ }
1038
+ },
1039
+ "required": [
1040
+ "type",
1041
+ "extensions"
1042
+ ]
1043
+ }
1044
+ }
1045
+ ]
1046
+ }
1047
+ }
1048
+ },
1049
+ "code": {
1050
+ "type": "object",
1051
+ "properties": {
1052
+ "filesystem": {
1053
+ "anyOf": [
1054
+ {
1055
+ "type": "array",
1056
+ "items": {
1057
+ "type": "string"
1058
+ }
1059
+ },
1060
+ {
1061
+ "type": "string",
1062
+ "enum": [
1063
+ "all",
1064
+ "read",
1065
+ "none"
1066
+ ]
1067
+ }
1068
+ ]
1069
+ },
1070
+ "builtInTools": {
1071
+ "type": "array",
1072
+ "items": {
1073
+ "type": "string"
1074
+ }
1075
+ },
1076
+ "customTools": {
1077
+ "anyOf": [
1078
+ {
1079
+ "type": "boolean",
1080
+ "const": false
1081
+ },
1082
+ {
1083
+ "type": "object",
1084
+ "propertyNames": {
1085
+ "type": "string"
1086
+ },
1087
+ "additionalProperties": {
1088
+ "type": "object",
1089
+ "properties": {
1090
+ "command": {
1091
+ "type": "string"
1092
+ },
1093
+ "description": {
1094
+ "type": "string"
1095
+ },
1096
+ "parameters": {
1097
+ "type": "object",
1098
+ "propertyNames": {
1099
+ "type": "string"
1100
+ },
1101
+ "additionalProperties": {
1102
+ "type": "object",
1103
+ "properties": {
1104
+ "description": {
1105
+ "type": "string"
1106
+ },
1107
+ "allow": {
1108
+ "type": "array",
1109
+ "items": {
1110
+ "type": "string",
1111
+ "enum": [
1112
+ "absolute-paths",
1113
+ "directory-traversal",
1114
+ "shell-injection",
1115
+ "null-bytes"
1116
+ ]
1117
+ }
1118
+ }
1119
+ },
1120
+ "required": [
1121
+ "description"
1122
+ ]
1123
+ }
1124
+ },
1125
+ "timeout": {
1126
+ "type": "number"
1127
+ }
1128
+ },
1129
+ "required": [
1130
+ "command",
1131
+ "description"
1132
+ ]
1133
+ }
1134
+ }
1135
+ ]
1136
+ },
1137
+ "allowedTools": {
1138
+ "type": "array",
1139
+ "items": {
1140
+ "type": "string"
1141
+ }
1142
+ },
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
+ "binaryFormats": {
1234
+ "anyOf": [
1235
+ {
1236
+ "type": "boolean",
1237
+ "const": false
1238
+ },
1239
+ {
1240
+ "type": "array",
1241
+ "items": {
1242
+ "type": "object",
1243
+ "properties": {
1244
+ "type": {
1245
+ "type": "string",
1246
+ "enum": [
1247
+ "image",
1248
+ "file",
1249
+ "audio",
1250
+ "video",
1251
+ "binary"
1252
+ ]
1253
+ },
1254
+ "extensions": {
1255
+ "type": "array",
1256
+ "items": {
1257
+ "type": "string"
1258
+ }
1259
+ },
1260
+ "maxSize": {
1261
+ "type": "number"
1262
+ },
1263
+ "mimeTypes": {
1264
+ "type": "object",
1265
+ "propertyNames": {
1266
+ "type": "string"
1267
+ },
1268
+ "additionalProperties": {
1269
+ "type": "string"
1270
+ }
1271
+ }
1272
+ },
1273
+ "required": [
1274
+ "type",
1275
+ "extensions"
1276
+ ]
1277
+ }
1278
+ }
1279
+ ]
1280
+ }
1281
+ }
1282
+ },
1283
+ "exec": {
1284
+ "type": "object",
1285
+ "properties": {
1286
+ "filesystem": {
1287
+ "anyOf": [
1288
+ {
1289
+ "type": "array",
1290
+ "items": {
1291
+ "type": "string"
1292
+ }
1293
+ },
1294
+ {
1295
+ "type": "string",
1296
+ "enum": [
1297
+ "all",
1298
+ "read",
1299
+ "none"
1300
+ ]
1301
+ }
1302
+ ]
1303
+ },
1304
+ "builtInTools": {
1305
+ "type": "array",
1306
+ "items": {
1307
+ "type": "string"
1308
+ }
1309
+ },
1310
+ "customTools": {
1311
+ "anyOf": [
1312
+ {
1313
+ "type": "boolean",
1314
+ "const": false
1315
+ },
1316
+ {
1317
+ "type": "object",
1318
+ "propertyNames": {
1319
+ "type": "string"
1320
+ },
1321
+ "additionalProperties": {
1322
+ "type": "object",
1323
+ "properties": {
1324
+ "command": {
1325
+ "type": "string"
1326
+ },
1327
+ "description": {
1328
+ "type": "string"
1329
+ },
1330
+ "parameters": {
1331
+ "type": "object",
1332
+ "propertyNames": {
1333
+ "type": "string"
1334
+ },
1335
+ "additionalProperties": {
1336
+ "type": "object",
1337
+ "properties": {
1338
+ "description": {
1339
+ "type": "string"
1340
+ },
1341
+ "allow": {
1342
+ "type": "array",
1343
+ "items": {
1344
+ "type": "string",
1345
+ "enum": [
1346
+ "absolute-paths",
1347
+ "directory-traversal",
1348
+ "shell-injection",
1349
+ "null-bytes"
1350
+ ]
1351
+ }
1352
+ }
1353
+ },
1354
+ "required": [
1355
+ "description"
1356
+ ]
1357
+ }
1358
+ },
1359
+ "timeout": {
1360
+ "type": "number"
1361
+ }
1362
+ },
1363
+ "required": [
1364
+ "command",
1365
+ "description"
1366
+ ]
1367
+ }
1368
+ }
1369
+ ]
1370
+ },
1371
+ "allowedTools": {
1372
+ "type": "array",
1373
+ "items": {
1374
+ "type": "string"
1375
+ }
1376
+ },
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
1472
+ },
1473
+ {
1474
+ "type": "array",
1475
+ "items": {
1476
+ "type": "object",
1477
+ "properties": {
1478
+ "type": {
1479
+ "type": "string",
1480
+ "enum": [
1481
+ "image",
1482
+ "file",
1483
+ "audio",
1484
+ "video",
1485
+ "binary"
1486
+ ]
1487
+ },
1488
+ "extensions": {
1489
+ "type": "array",
1490
+ "items": {
1491
+ "type": "string"
1492
+ }
1493
+ },
1494
+ "maxSize": {
1495
+ "type": "number"
1496
+ },
1497
+ "mimeTypes": {
1498
+ "type": "object",
1499
+ "propertyNames": {
1500
+ "type": "string"
1501
+ },
1502
+ "additionalProperties": {
1503
+ "type": "string"
1504
+ }
1505
+ }
1506
+ },
1507
+ "required": [
1508
+ "type",
1509
+ "extensions"
1510
+ ]
1511
+ }
1512
+ }
1513
+ ]
1514
+ }
1515
+ }
1516
+ },
1517
+ "api": {
1518
+ "type": "object",
1519
+ "properties": {
1520
+ "filesystem": {
1521
+ "anyOf": [
1522
+ {
1523
+ "type": "array",
1524
+ "items": {
1525
+ "type": "string"
1526
+ }
1527
+ },
1528
+ {
1529
+ "type": "string",
1530
+ "enum": [
1531
+ "all",
1532
+ "read",
1533
+ "none"
1534
+ ]
1535
+ }
1536
+ ]
1537
+ },
1538
+ "builtInTools": {
1539
+ "type": "array",
1540
+ "items": {
1541
+ "type": "string"
1542
+ }
1543
+ },
1544
+ "port": {
1545
+ "type": "number"
1546
+ },
1547
+ "cors": {
1548
+ "type": "object",
1549
+ "properties": {
1550
+ "allowOrigin": {
1551
+ "type": "string"
1552
+ },
1553
+ "allowMethods": {
1554
+ "type": "string"
1555
+ },
1556
+ "allowHeaders": {
1557
+ "type": "string"
1558
+ }
1559
+ }
1560
+ }
1561
+ }
1562
+ }
1563
+ }
1564
+ },
1565
+ "modelDisplayName": {
1566
+ "type": "string"
1567
+ },
1568
+ "allowDirs": {
1569
+ "type": "array",
1570
+ "items": {
1571
+ "type": "string"
1572
+ }
1573
+ },
1574
+ "askWriteMode": {
1575
+ "type": "boolean"
1576
+ }
1577
+ },
1578
+ "additionalProperties": {}
1579
+ }