caplets 0.12.0 → 0.12.2

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.
@@ -1,1149 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://raw.githubusercontent.com/spiritledsoftware/caplets/main/schemas/caplet.schema.json",
4
- "title": "Caplet file frontmatter",
5
- "description": "YAML frontmatter schema for a Markdown Caplet file.",
6
- "type": "object",
7
- "properties": {
8
- "$schema": {
9
- "description": "Optional JSON Schema URL for editor validation.",
10
- "type": "string",
11
- "format": "uri"
12
- },
13
- "name": {
14
- "type": "string",
15
- "minLength": 1,
16
- "maxLength": 80,
17
- "description": "Human-readable Caplet display name."
18
- },
19
- "description": {
20
- "type": "string",
21
- "description": "Compact capability description shown before the full Caplet card is disclosed."
22
- },
23
- "tags": {
24
- "description": "Optional tags for grouping or searching Caplets.",
25
- "type": "array",
26
- "items": {
27
- "type": "string",
28
- "minLength": 1,
29
- "maxLength": 80
30
- }
31
- },
32
- "mcpServer": {
33
- "type": "object",
34
- "properties": {
35
- "transport": {
36
- "description": "Downstream MCP transport. Defaults to stdio when command is present.",
37
- "type": "string",
38
- "enum": ["stdio", "http", "sse"]
39
- },
40
- "command": {
41
- "description": "Executable command for stdio servers.",
42
- "type": "string",
43
- "minLength": 1
44
- },
45
- "args": {
46
- "description": "Arguments passed to the stdio command.",
47
- "type": "array",
48
- "items": {
49
- "type": "string"
50
- }
51
- },
52
- "env": {
53
- "description": "Environment variables for stdio servers. Supports ${VAR} and $env:VAR.",
54
- "type": "object",
55
- "propertyNames": {
56
- "type": "string"
57
- },
58
- "additionalProperties": {
59
- "type": "string"
60
- }
61
- },
62
- "cwd": {
63
- "description": "Working directory for stdio servers.",
64
- "type": "string",
65
- "minLength": 1
66
- },
67
- "url": {
68
- "description": "Remote MCP server URL for http or sse transport.",
69
- "type": "string",
70
- "minLength": 1
71
- },
72
- "auth": {
73
- "oneOf": [
74
- {
75
- "type": "object",
76
- "properties": {
77
- "type": {
78
- "type": "string",
79
- "const": "none"
80
- }
81
- },
82
- "required": ["type"],
83
- "additionalProperties": false
84
- },
85
- {
86
- "type": "object",
87
- "properties": {
88
- "type": {
89
- "type": "string",
90
- "const": "bearer"
91
- },
92
- "token": {
93
- "type": "string",
94
- "minLength": 1
95
- }
96
- },
97
- "required": ["type", "token"],
98
- "additionalProperties": false
99
- },
100
- {
101
- "type": "object",
102
- "properties": {
103
- "type": {
104
- "type": "string",
105
- "const": "headers"
106
- },
107
- "headers": {
108
- "type": "object",
109
- "propertyNames": {
110
- "type": "string"
111
- },
112
- "additionalProperties": {
113
- "type": "string",
114
- "minLength": 1
115
- }
116
- }
117
- },
118
- "required": ["type", "headers"],
119
- "additionalProperties": false
120
- },
121
- {
122
- "type": "object",
123
- "properties": {
124
- "type": {
125
- "type": "string",
126
- "const": "oauth2"
127
- },
128
- "authorizationUrl": {
129
- "type": "string",
130
- "minLength": 1
131
- },
132
- "tokenUrl": {
133
- "type": "string",
134
- "minLength": 1
135
- },
136
- "issuer": {
137
- "type": "string",
138
- "minLength": 1
139
- },
140
- "resourceMetadataUrl": {
141
- "type": "string",
142
- "minLength": 1
143
- },
144
- "authorizationServerMetadataUrl": {
145
- "type": "string",
146
- "minLength": 1
147
- },
148
- "openidConfigurationUrl": {
149
- "type": "string",
150
- "minLength": 1
151
- },
152
- "clientMetadataUrl": {
153
- "type": "string",
154
- "minLength": 1
155
- },
156
- "clientId": {
157
- "type": "string",
158
- "minLength": 1
159
- },
160
- "clientSecret": {
161
- "type": "string",
162
- "minLength": 1
163
- },
164
- "scopes": {
165
- "type": "array",
166
- "items": {
167
- "type": "string",
168
- "minLength": 1
169
- }
170
- },
171
- "redirectUri": {
172
- "type": "string",
173
- "minLength": 1
174
- }
175
- },
176
- "required": ["type"],
177
- "additionalProperties": false
178
- },
179
- {
180
- "type": "object",
181
- "properties": {
182
- "type": {
183
- "type": "string",
184
- "const": "oidc"
185
- },
186
- "authorizationUrl": {
187
- "type": "string",
188
- "minLength": 1
189
- },
190
- "tokenUrl": {
191
- "type": "string",
192
- "minLength": 1
193
- },
194
- "issuer": {
195
- "type": "string",
196
- "minLength": 1
197
- },
198
- "resourceMetadataUrl": {
199
- "type": "string",
200
- "minLength": 1
201
- },
202
- "authorizationServerMetadataUrl": {
203
- "type": "string",
204
- "minLength": 1
205
- },
206
- "openidConfigurationUrl": {
207
- "type": "string",
208
- "minLength": 1
209
- },
210
- "clientMetadataUrl": {
211
- "type": "string",
212
- "minLength": 1
213
- },
214
- "clientId": {
215
- "type": "string",
216
- "minLength": 1
217
- },
218
- "clientSecret": {
219
- "type": "string",
220
- "minLength": 1
221
- },
222
- "scopes": {
223
- "type": "array",
224
- "items": {
225
- "type": "string",
226
- "minLength": 1
227
- }
228
- },
229
- "redirectUri": {
230
- "type": "string",
231
- "minLength": 1
232
- }
233
- },
234
- "required": ["type"],
235
- "additionalProperties": false
236
- }
237
- ],
238
- "description": "Authentication settings for a remote MCP server."
239
- },
240
- "startupTimeoutMs": {
241
- "description": "Timeout in milliseconds for starting or checking a downstream server.",
242
- "type": "integer",
243
- "exclusiveMinimum": 0,
244
- "maximum": 9007199254740991
245
- },
246
- "callTimeoutMs": {
247
- "description": "Timeout in milliseconds for downstream tool calls.",
248
- "type": "integer",
249
- "exclusiveMinimum": 0,
250
- "maximum": 9007199254740991
251
- },
252
- "toolCacheTtlMs": {
253
- "description": "Milliseconds downstream tool metadata stays fresh. Set 0 to refresh every time.",
254
- "type": "integer",
255
- "minimum": 0,
256
- "maximum": 9007199254740991
257
- },
258
- "disabled": {
259
- "description": "When true, omit this Caplet from discovery and do not start its MCP server.",
260
- "type": "boolean"
261
- }
262
- },
263
- "additionalProperties": false,
264
- "description": "MCP server backend configuration for this Caplet."
265
- },
266
- "openapiEndpoint": {
267
- "type": "object",
268
- "properties": {
269
- "specPath": {
270
- "description": "Local OpenAPI specification path.",
271
- "type": "string",
272
- "minLength": 1
273
- },
274
- "specUrl": {
275
- "description": "Remote OpenAPI specification URL.",
276
- "type": "string",
277
- "minLength": 1
278
- },
279
- "baseUrl": {
280
- "description": "Override base URL for OpenAPI requests.",
281
- "type": "string",
282
- "minLength": 1
283
- },
284
- "auth": {
285
- "oneOf": [
286
- {
287
- "type": "object",
288
- "properties": {
289
- "type": {
290
- "type": "string",
291
- "const": "none"
292
- }
293
- },
294
- "required": ["type"],
295
- "additionalProperties": false
296
- },
297
- {
298
- "type": "object",
299
- "properties": {
300
- "type": {
301
- "type": "string",
302
- "const": "bearer"
303
- },
304
- "token": {
305
- "type": "string",
306
- "minLength": 1
307
- }
308
- },
309
- "required": ["type", "token"],
310
- "additionalProperties": false
311
- },
312
- {
313
- "type": "object",
314
- "properties": {
315
- "type": {
316
- "type": "string",
317
- "const": "headers"
318
- },
319
- "headers": {
320
- "type": "object",
321
- "propertyNames": {
322
- "type": "string"
323
- },
324
- "additionalProperties": {
325
- "type": "string",
326
- "minLength": 1
327
- }
328
- }
329
- },
330
- "required": ["type", "headers"],
331
- "additionalProperties": false
332
- },
333
- {
334
- "type": "object",
335
- "properties": {
336
- "type": {
337
- "type": "string",
338
- "const": "oauth2"
339
- },
340
- "authorizationUrl": {
341
- "type": "string",
342
- "minLength": 1
343
- },
344
- "tokenUrl": {
345
- "type": "string",
346
- "minLength": 1
347
- },
348
- "issuer": {
349
- "type": "string",
350
- "minLength": 1
351
- },
352
- "resourceMetadataUrl": {
353
- "type": "string",
354
- "minLength": 1
355
- },
356
- "authorizationServerMetadataUrl": {
357
- "type": "string",
358
- "minLength": 1
359
- },
360
- "openidConfigurationUrl": {
361
- "type": "string",
362
- "minLength": 1
363
- },
364
- "clientMetadataUrl": {
365
- "type": "string",
366
- "minLength": 1
367
- },
368
- "clientId": {
369
- "type": "string",
370
- "minLength": 1
371
- },
372
- "clientSecret": {
373
- "type": "string",
374
- "minLength": 1
375
- },
376
- "scopes": {
377
- "type": "array",
378
- "items": {
379
- "type": "string",
380
- "minLength": 1
381
- }
382
- },
383
- "redirectUri": {
384
- "type": "string",
385
- "minLength": 1
386
- }
387
- },
388
- "required": ["type"],
389
- "additionalProperties": false
390
- },
391
- {
392
- "type": "object",
393
- "properties": {
394
- "type": {
395
- "type": "string",
396
- "const": "oidc"
397
- },
398
- "authorizationUrl": {
399
- "type": "string",
400
- "minLength": 1
401
- },
402
- "tokenUrl": {
403
- "type": "string",
404
- "minLength": 1
405
- },
406
- "issuer": {
407
- "type": "string",
408
- "minLength": 1
409
- },
410
- "resourceMetadataUrl": {
411
- "type": "string",
412
- "minLength": 1
413
- },
414
- "authorizationServerMetadataUrl": {
415
- "type": "string",
416
- "minLength": 1
417
- },
418
- "openidConfigurationUrl": {
419
- "type": "string",
420
- "minLength": 1
421
- },
422
- "clientMetadataUrl": {
423
- "type": "string",
424
- "minLength": 1
425
- },
426
- "clientId": {
427
- "type": "string",
428
- "minLength": 1
429
- },
430
- "clientSecret": {
431
- "type": "string",
432
- "minLength": 1
433
- },
434
- "scopes": {
435
- "type": "array",
436
- "items": {
437
- "type": "string",
438
- "minLength": 1
439
- }
440
- },
441
- "redirectUri": {
442
- "type": "string",
443
- "minLength": 1
444
- }
445
- },
446
- "required": ["type"],
447
- "additionalProperties": false
448
- }
449
- ],
450
- "description": "Explicit OpenAPI request auth config. Use {\"type\":\"none\"} for public APIs."
451
- },
452
- "requestTimeoutMs": {
453
- "description": "Timeout in milliseconds for OpenAPI HTTP requests.",
454
- "type": "integer",
455
- "exclusiveMinimum": 0,
456
- "maximum": 9007199254740991
457
- },
458
- "operationCacheTtlMs": {
459
- "description": "Milliseconds OpenAPI operation metadata stays fresh. Set 0 to refresh every time.",
460
- "type": "integer",
461
- "minimum": 0,
462
- "maximum": 9007199254740991
463
- },
464
- "disabled": {
465
- "description": "When true, omit this Caplet from discovery.",
466
- "type": "boolean"
467
- }
468
- },
469
- "required": ["auth"],
470
- "additionalProperties": false,
471
- "description": "OpenAPI endpoint backend configuration for this Caplet."
472
- },
473
- "graphqlEndpoint": {
474
- "type": "object",
475
- "properties": {
476
- "endpointUrl": {
477
- "type": "string",
478
- "minLength": 1,
479
- "description": "GraphQL HTTP endpoint URL."
480
- },
481
- "schemaPath": {
482
- "description": "Local GraphQL SDL or introspection path.",
483
- "type": "string",
484
- "minLength": 1
485
- },
486
- "schemaUrl": {
487
- "description": "Remote GraphQL SDL or introspection URL.",
488
- "type": "string",
489
- "minLength": 1
490
- },
491
- "introspection": {
492
- "description": "Load schema through endpoint introspection.",
493
- "type": "boolean",
494
- "const": true
495
- },
496
- "operations": {
497
- "description": "Configured GraphQL operations keyed by stable tool name.",
498
- "type": "object",
499
- "propertyNames": {
500
- "type": "string",
501
- "pattern": "^[a-zA-Z0-9_-]{1,64}$"
502
- },
503
- "additionalProperties": {
504
- "type": "object",
505
- "properties": {
506
- "document": {
507
- "description": "Inline GraphQL operation document.",
508
- "type": "string",
509
- "minLength": 1
510
- },
511
- "documentPath": {
512
- "description": "Path to a GraphQL operation document.",
513
- "type": "string",
514
- "minLength": 1
515
- },
516
- "operationName": {
517
- "description": "Operation name to execute.",
518
- "type": "string",
519
- "minLength": 1
520
- },
521
- "description": {
522
- "description": "Operation capability description.",
523
- "type": "string",
524
- "minLength": 1
525
- }
526
- },
527
- "additionalProperties": false
528
- }
529
- },
530
- "auth": {
531
- "oneOf": [
532
- {
533
- "type": "object",
534
- "properties": {
535
- "type": {
536
- "type": "string",
537
- "const": "none"
538
- }
539
- },
540
- "required": ["type"],
541
- "additionalProperties": false
542
- },
543
- {
544
- "type": "object",
545
- "properties": {
546
- "type": {
547
- "type": "string",
548
- "const": "bearer"
549
- },
550
- "token": {
551
- "type": "string",
552
- "minLength": 1
553
- }
554
- },
555
- "required": ["type", "token"],
556
- "additionalProperties": false
557
- },
558
- {
559
- "type": "object",
560
- "properties": {
561
- "type": {
562
- "type": "string",
563
- "const": "headers"
564
- },
565
- "headers": {
566
- "type": "object",
567
- "propertyNames": {
568
- "type": "string"
569
- },
570
- "additionalProperties": {
571
- "type": "string",
572
- "minLength": 1
573
- }
574
- }
575
- },
576
- "required": ["type", "headers"],
577
- "additionalProperties": false
578
- },
579
- {
580
- "type": "object",
581
- "properties": {
582
- "type": {
583
- "type": "string",
584
- "const": "oauth2"
585
- },
586
- "authorizationUrl": {
587
- "type": "string",
588
- "minLength": 1
589
- },
590
- "tokenUrl": {
591
- "type": "string",
592
- "minLength": 1
593
- },
594
- "issuer": {
595
- "type": "string",
596
- "minLength": 1
597
- },
598
- "resourceMetadataUrl": {
599
- "type": "string",
600
- "minLength": 1
601
- },
602
- "authorizationServerMetadataUrl": {
603
- "type": "string",
604
- "minLength": 1
605
- },
606
- "openidConfigurationUrl": {
607
- "type": "string",
608
- "minLength": 1
609
- },
610
- "clientMetadataUrl": {
611
- "type": "string",
612
- "minLength": 1
613
- },
614
- "clientId": {
615
- "type": "string",
616
- "minLength": 1
617
- },
618
- "clientSecret": {
619
- "type": "string",
620
- "minLength": 1
621
- },
622
- "scopes": {
623
- "type": "array",
624
- "items": {
625
- "type": "string",
626
- "minLength": 1
627
- }
628
- },
629
- "redirectUri": {
630
- "type": "string",
631
- "minLength": 1
632
- }
633
- },
634
- "required": ["type"],
635
- "additionalProperties": false
636
- },
637
- {
638
- "type": "object",
639
- "properties": {
640
- "type": {
641
- "type": "string",
642
- "const": "oidc"
643
- },
644
- "authorizationUrl": {
645
- "type": "string",
646
- "minLength": 1
647
- },
648
- "tokenUrl": {
649
- "type": "string",
650
- "minLength": 1
651
- },
652
- "issuer": {
653
- "type": "string",
654
- "minLength": 1
655
- },
656
- "resourceMetadataUrl": {
657
- "type": "string",
658
- "minLength": 1
659
- },
660
- "authorizationServerMetadataUrl": {
661
- "type": "string",
662
- "minLength": 1
663
- },
664
- "openidConfigurationUrl": {
665
- "type": "string",
666
- "minLength": 1
667
- },
668
- "clientMetadataUrl": {
669
- "type": "string",
670
- "minLength": 1
671
- },
672
- "clientId": {
673
- "type": "string",
674
- "minLength": 1
675
- },
676
- "clientSecret": {
677
- "type": "string",
678
- "minLength": 1
679
- },
680
- "scopes": {
681
- "type": "array",
682
- "items": {
683
- "type": "string",
684
- "minLength": 1
685
- }
686
- },
687
- "redirectUri": {
688
- "type": "string",
689
- "minLength": 1
690
- }
691
- },
692
- "required": ["type"],
693
- "additionalProperties": false
694
- }
695
- ],
696
- "description": "Explicit GraphQL request auth config. Use {\"type\":\"none\"} for public APIs."
697
- },
698
- "requestTimeoutMs": {
699
- "description": "Timeout in milliseconds for GraphQL HTTP requests.",
700
- "type": "integer",
701
- "exclusiveMinimum": 0,
702
- "maximum": 9007199254740991
703
- },
704
- "operationCacheTtlMs": {
705
- "description": "Milliseconds GraphQL operation metadata stays fresh. Set 0 to refresh every time.",
706
- "type": "integer",
707
- "minimum": 0,
708
- "maximum": 9007199254740991
709
- },
710
- "selectionDepth": {
711
- "description": "Maximum depth for auto-generated GraphQL selection sets.",
712
- "type": "integer",
713
- "exclusiveMinimum": 0,
714
- "maximum": 5
715
- },
716
- "disabled": {
717
- "description": "When true, omit this Caplet from discovery.",
718
- "type": "boolean"
719
- }
720
- },
721
- "required": ["endpointUrl", "auth"],
722
- "additionalProperties": false,
723
- "description": "GraphQL endpoint backend configuration for this Caplet."
724
- },
725
- "httpApi": {
726
- "type": "object",
727
- "properties": {
728
- "baseUrl": {
729
- "type": "string",
730
- "minLength": 1,
731
- "pattern": "^(?![a-zA-Z][a-zA-Z0-9+.-]*:\\/\\/[^/?#]*@)[^?#]*$",
732
- "description": "Base URL for HTTP action requests.",
733
- "format": "uri"
734
- },
735
- "auth": {
736
- "oneOf": [
737
- {
738
- "type": "object",
739
- "properties": {
740
- "type": {
741
- "type": "string",
742
- "const": "none"
743
- }
744
- },
745
- "required": ["type"],
746
- "additionalProperties": false
747
- },
748
- {
749
- "type": "object",
750
- "properties": {
751
- "type": {
752
- "type": "string",
753
- "const": "bearer"
754
- },
755
- "token": {
756
- "type": "string",
757
- "minLength": 1
758
- }
759
- },
760
- "required": ["type", "token"],
761
- "additionalProperties": false
762
- },
763
- {
764
- "type": "object",
765
- "properties": {
766
- "type": {
767
- "type": "string",
768
- "const": "headers"
769
- },
770
- "headers": {
771
- "type": "object",
772
- "propertyNames": {
773
- "type": "string"
774
- },
775
- "additionalProperties": {
776
- "type": "string",
777
- "minLength": 1
778
- }
779
- }
780
- },
781
- "required": ["type", "headers"],
782
- "additionalProperties": false
783
- },
784
- {
785
- "type": "object",
786
- "properties": {
787
- "type": {
788
- "type": "string",
789
- "const": "oauth2"
790
- },
791
- "authorizationUrl": {
792
- "type": "string",
793
- "minLength": 1
794
- },
795
- "tokenUrl": {
796
- "type": "string",
797
- "minLength": 1
798
- },
799
- "issuer": {
800
- "type": "string",
801
- "minLength": 1
802
- },
803
- "resourceMetadataUrl": {
804
- "type": "string",
805
- "minLength": 1
806
- },
807
- "authorizationServerMetadataUrl": {
808
- "type": "string",
809
- "minLength": 1
810
- },
811
- "openidConfigurationUrl": {
812
- "type": "string",
813
- "minLength": 1
814
- },
815
- "clientMetadataUrl": {
816
- "type": "string",
817
- "minLength": 1
818
- },
819
- "clientId": {
820
- "type": "string",
821
- "minLength": 1
822
- },
823
- "clientSecret": {
824
- "type": "string",
825
- "minLength": 1
826
- },
827
- "scopes": {
828
- "type": "array",
829
- "items": {
830
- "type": "string",
831
- "minLength": 1
832
- }
833
- },
834
- "redirectUri": {
835
- "type": "string",
836
- "minLength": 1
837
- }
838
- },
839
- "required": ["type"],
840
- "additionalProperties": false
841
- },
842
- {
843
- "type": "object",
844
- "properties": {
845
- "type": {
846
- "type": "string",
847
- "const": "oidc"
848
- },
849
- "authorizationUrl": {
850
- "type": "string",
851
- "minLength": 1
852
- },
853
- "tokenUrl": {
854
- "type": "string",
855
- "minLength": 1
856
- },
857
- "issuer": {
858
- "type": "string",
859
- "minLength": 1
860
- },
861
- "resourceMetadataUrl": {
862
- "type": "string",
863
- "minLength": 1
864
- },
865
- "authorizationServerMetadataUrl": {
866
- "type": "string",
867
- "minLength": 1
868
- },
869
- "openidConfigurationUrl": {
870
- "type": "string",
871
- "minLength": 1
872
- },
873
- "clientMetadataUrl": {
874
- "type": "string",
875
- "minLength": 1
876
- },
877
- "clientId": {
878
- "type": "string",
879
- "minLength": 1
880
- },
881
- "clientSecret": {
882
- "type": "string",
883
- "minLength": 1
884
- },
885
- "scopes": {
886
- "type": "array",
887
- "items": {
888
- "type": "string",
889
- "minLength": 1
890
- }
891
- },
892
- "redirectUri": {
893
- "type": "string",
894
- "minLength": 1
895
- }
896
- },
897
- "required": ["type"],
898
- "additionalProperties": false
899
- }
900
- ],
901
- "description": "Explicit HTTP API request auth config. Use {\"type\":\"none\"} for public APIs."
902
- },
903
- "actions": {
904
- "type": "object",
905
- "propertyNames": {
906
- "type": "string",
907
- "pattern": "^[a-zA-Z0-9_-]{1,64}$"
908
- },
909
- "additionalProperties": {
910
- "type": "object",
911
- "properties": {
912
- "method": {
913
- "type": "string",
914
- "enum": ["GET", "POST", "PUT", "PATCH", "DELETE"],
915
- "description": "HTTP method used for this action."
916
- },
917
- "path": {
918
- "type": "string",
919
- "minLength": 1,
920
- "pattern": "^\\/",
921
- "description": "URL path appended to the HTTP API baseUrl."
922
- },
923
- "description": {
924
- "description": "Action capability description.",
925
- "type": "string",
926
- "minLength": 1
927
- },
928
- "inputSchema": {
929
- "description": "JSON Schema for call_tool arguments.",
930
- "type": "object",
931
- "propertyNames": {
932
- "type": "string"
933
- },
934
- "additionalProperties": {}
935
- },
936
- "query": {
937
- "description": "Query parameter mapping.",
938
- "type": "object",
939
- "propertyNames": {
940
- "type": "string"
941
- },
942
- "additionalProperties": {
943
- "anyOf": [
944
- {
945
- "type": "string"
946
- },
947
- {
948
- "type": "number"
949
- },
950
- {
951
- "type": "boolean"
952
- }
953
- ]
954
- }
955
- },
956
- "headers": {
957
- "description": "Request header mapping.",
958
- "type": "object",
959
- "propertyNames": {
960
- "type": "string"
961
- },
962
- "additionalProperties": {
963
- "anyOf": [
964
- {
965
- "type": "string"
966
- },
967
- {
968
- "type": "number"
969
- },
970
- {
971
- "type": "boolean"
972
- }
973
- ]
974
- }
975
- },
976
- "jsonBody": {
977
- "description": "JSON request body mapping."
978
- }
979
- },
980
- "required": ["method", "path"],
981
- "additionalProperties": false
982
- },
983
- "description": "Configured HTTP actions keyed by stable tool name.",
984
- "minProperties": 1
985
- },
986
- "requestTimeoutMs": {
987
- "description": "Timeout in milliseconds for HTTP action requests.",
988
- "type": "integer",
989
- "exclusiveMinimum": 0,
990
- "maximum": 9007199254740991
991
- },
992
- "maxResponseBytes": {
993
- "description": "Maximum HTTP action response body bytes to read.",
994
- "type": "integer",
995
- "exclusiveMinimum": 0,
996
- "maximum": 9007199254740991
997
- },
998
- "disabled": {
999
- "description": "When true, omit this Caplet from discovery.",
1000
- "type": "boolean"
1001
- }
1002
- },
1003
- "required": ["baseUrl", "auth", "actions"],
1004
- "additionalProperties": false,
1005
- "description": "HTTP API backend configuration for this Caplet."
1006
- },
1007
- "cliTools": {
1008
- "type": "object",
1009
- "properties": {
1010
- "actions": {
1011
- "type": "object",
1012
- "propertyNames": {
1013
- "type": "string",
1014
- "pattern": "^[a-zA-Z0-9_-]{1,64}$"
1015
- },
1016
- "additionalProperties": {
1017
- "type": "object",
1018
- "properties": {
1019
- "description": {
1020
- "description": "Action capability description.",
1021
- "type": "string",
1022
- "minLength": 1
1023
- },
1024
- "inputSchema": {
1025
- "description": "JSON Schema for call_tool arguments.",
1026
- "type": "object",
1027
- "propertyNames": {
1028
- "type": "string"
1029
- },
1030
- "additionalProperties": {}
1031
- },
1032
- "outputSchema": {
1033
- "description": "JSON Schema for structuredContent returned by this action.",
1034
- "type": "object",
1035
- "propertyNames": {
1036
- "type": "string"
1037
- },
1038
- "additionalProperties": {}
1039
- },
1040
- "command": {
1041
- "type": "string",
1042
- "minLength": 1,
1043
- "description": "Executable command to spawn without a shell."
1044
- },
1045
- "args": {
1046
- "description": "Arguments passed to the command.",
1047
- "type": "array",
1048
- "items": {
1049
- "type": "string"
1050
- }
1051
- },
1052
- "env": {
1053
- "description": "Additional environment variables.",
1054
- "type": "object",
1055
- "propertyNames": {
1056
- "type": "string"
1057
- },
1058
- "additionalProperties": {
1059
- "type": "string"
1060
- }
1061
- },
1062
- "cwd": {
1063
- "description": "Working directory for this action.",
1064
- "type": "string",
1065
- "minLength": 1
1066
- },
1067
- "timeoutMs": {
1068
- "type": "integer",
1069
- "exclusiveMinimum": 0,
1070
- "maximum": 9007199254740991
1071
- },
1072
- "maxOutputBytes": {
1073
- "type": "integer",
1074
- "exclusiveMinimum": 0,
1075
- "maximum": 9007199254740991
1076
- },
1077
- "output": {
1078
- "type": "object",
1079
- "properties": {
1080
- "type": {
1081
- "type": "string",
1082
- "enum": ["text", "json"]
1083
- }
1084
- },
1085
- "additionalProperties": false
1086
- },
1087
- "annotations": {
1088
- "type": "object",
1089
- "properties": {
1090
- "readOnlyHint": {
1091
- "type": "boolean"
1092
- },
1093
- "destructiveHint": {
1094
- "type": "boolean"
1095
- },
1096
- "idempotentHint": {
1097
- "type": "boolean"
1098
- },
1099
- "openWorldHint": {
1100
- "type": "boolean"
1101
- }
1102
- },
1103
- "additionalProperties": false
1104
- }
1105
- },
1106
- "required": ["command"],
1107
- "additionalProperties": false
1108
- },
1109
- "description": "Configured CLI actions keyed by stable tool name.",
1110
- "minProperties": 1
1111
- },
1112
- "cwd": {
1113
- "description": "Default working directory for CLI actions.",
1114
- "type": "string",
1115
- "minLength": 1
1116
- },
1117
- "env": {
1118
- "description": "Default environment variables.",
1119
- "type": "object",
1120
- "propertyNames": {
1121
- "type": "string"
1122
- },
1123
- "additionalProperties": {
1124
- "type": "string"
1125
- }
1126
- },
1127
- "timeoutMs": {
1128
- "type": "integer",
1129
- "exclusiveMinimum": 0,
1130
- "maximum": 9007199254740991
1131
- },
1132
- "maxOutputBytes": {
1133
- "type": "integer",
1134
- "exclusiveMinimum": 0,
1135
- "maximum": 9007199254740991
1136
- },
1137
- "disabled": {
1138
- "description": "When true, omit this Caplet from discovery.",
1139
- "type": "boolean"
1140
- }
1141
- },
1142
- "required": ["actions"],
1143
- "additionalProperties": false,
1144
- "description": "CLI tools backend configuration for this Caplet."
1145
- }
1146
- },
1147
- "required": ["name", "description"],
1148
- "additionalProperties": false
1149
- }