@hermes-hq/hodios-schema 0.1.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.
@@ -0,0 +1,1580 @@
1
+ /** JSON Schema (2020-12) for the YAML frontmatter of `library/<category>/<id>/<kind>.md`. */
2
+ export declare const entrySchema: {
3
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
4
+ readonly $id: "https://hermes-ide.com/prompts/schema/v1/entry.schema.json";
5
+ readonly title: "Hodios entry";
6
+ readonly description: "Frontmatter of a Hodios library entry (prompt, persona, workflow, rule or style). A superset of Agent Skills SKILL.md frontmatter.";
7
+ readonly type: "object";
8
+ readonly required: readonly ["schema", "id", "kind", "title", "description", "category", "version", "status"];
9
+ readonly additionalProperties: false;
10
+ readonly properties: {
11
+ readonly schema: {
12
+ readonly const: 1;
13
+ readonly description: "Entry format version. Always 1.";
14
+ };
15
+ readonly id: {
16
+ readonly description: "Globally unique, immutable id. Equals the entry folder name.";
17
+ readonly type: string;
18
+ readonly pattern: string;
19
+ };
20
+ readonly kind: {
21
+ readonly enum: readonly ["prompt", "persona", "workflow", "rule", "style"];
22
+ readonly description: "Entry kind. Equals the entry file name.";
23
+ };
24
+ readonly title: {
25
+ readonly type: "string";
26
+ readonly minLength: 3;
27
+ readonly maxLength: 80;
28
+ };
29
+ readonly description: {
30
+ readonly type: "string";
31
+ readonly minLength: 1;
32
+ readonly maxLength: 1024;
33
+ readonly description: "Third person; says what it does and when to use it (lint PS023: 40-200 chars).";
34
+ };
35
+ readonly category: {
36
+ readonly type: "string";
37
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*$";
38
+ readonly description: "Primary category from vocab/category.yml. Path: library/<domain>/<category>/<id>/; the domain comes from the vocab.";
39
+ };
40
+ readonly subcategory: {
41
+ readonly type: "string";
42
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*$";
43
+ readonly description: "Optional value from vocab/subcategory.yml whose parent is the category (TAXONOMY.md §2.4).";
44
+ };
45
+ readonly proposed_category: {
46
+ readonly type: "string";
47
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*$";
48
+ readonly description: "Only for category \"unsorted\": the category this entry should graduate into (TAXONOMY.md §2.5).";
49
+ };
50
+ readonly version: {
51
+ readonly type: "string";
52
+ readonly pattern: "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)$";
53
+ readonly description: "Entry semver.";
54
+ };
55
+ readonly status: {
56
+ readonly enum: readonly ["incubating", "experimental", "stable", "deprecated"];
57
+ };
58
+ readonly aliases: {
59
+ readonly type: "array";
60
+ readonly items: {
61
+ type: string;
62
+ pattern: string;
63
+ };
64
+ readonly uniqueItems: true;
65
+ readonly description: "Old ids that resolve to this entry. Never the entry’s own id.";
66
+ };
67
+ readonly replaced_by: {
68
+ readonly description: "Successor id when status is deprecated.";
69
+ readonly type: string;
70
+ readonly pattern: string;
71
+ };
72
+ readonly sunset: {
73
+ readonly type: "string";
74
+ readonly pattern: "^20\\d{2}\\.([1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])\\.(0|[1-9]\\d*)$";
75
+ readonly description: "Catalog version after which a deprecated entry may be removed.";
76
+ };
77
+ readonly stage: {
78
+ type: string;
79
+ description: string;
80
+ items: {
81
+ type: string;
82
+ pattern: string;
83
+ };
84
+ uniqueItems: boolean;
85
+ };
86
+ readonly stack: {
87
+ type: string;
88
+ description: string;
89
+ items: {
90
+ type: string;
91
+ pattern: string;
92
+ };
93
+ uniqueItems: boolean;
94
+ };
95
+ readonly requires: {
96
+ readonly type: "array";
97
+ readonly description: "Capabilities from vocab/requires.yml, or mcp:<server>.";
98
+ readonly items: {
99
+ readonly type: "string";
100
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*(:[a-z0-9][a-z0-9._-]*)?$";
101
+ };
102
+ readonly uniqueItems: true;
103
+ };
104
+ readonly role: {
105
+ readonly maxItems: 4;
106
+ readonly type: string;
107
+ readonly description: string;
108
+ readonly items: {
109
+ type: string;
110
+ pattern: string;
111
+ };
112
+ readonly uniqueItems: boolean;
113
+ };
114
+ readonly subject: {
115
+ readonly maxItems: 4;
116
+ readonly type: string;
117
+ readonly description: string;
118
+ readonly items: {
119
+ type: string;
120
+ pattern: string;
121
+ };
122
+ readonly uniqueItems: boolean;
123
+ };
124
+ readonly advice_risk: {
125
+ readonly maxItems: 4;
126
+ readonly type: string;
127
+ readonly description: string;
128
+ readonly items: {
129
+ type: string;
130
+ pattern: string;
131
+ };
132
+ readonly uniqueItems: boolean;
133
+ };
134
+ readonly lang: {
135
+ readonly type: "string";
136
+ readonly pattern: "^[a-z]{2,3}(-[A-Z][a-z]{3})?(-([A-Z]{2}|\\d{3}))?$";
137
+ readonly description: "BCP 47 language of the entry text. Defaults to en.";
138
+ };
139
+ readonly inputs: {
140
+ type: string;
141
+ description: string;
142
+ items: {
143
+ type: string;
144
+ pattern: string;
145
+ };
146
+ uniqueItems: boolean;
147
+ };
148
+ readonly output: {
149
+ type: string;
150
+ description: string;
151
+ items: {
152
+ type: string;
153
+ pattern: string;
154
+ };
155
+ uniqueItems: boolean;
156
+ };
157
+ readonly tags: {
158
+ type: string;
159
+ description: string;
160
+ items: {
161
+ type: string;
162
+ pattern: string;
163
+ };
164
+ uniqueItems: boolean;
165
+ };
166
+ readonly risk: {
167
+ readonly enum: readonly ["read-only", "edits-files", "runs-commands", "network", "external"];
168
+ };
169
+ readonly invocation: {
170
+ readonly enum: readonly ["user", "model", "both"];
171
+ };
172
+ readonly effort: {
173
+ readonly enum: readonly ["quick", "standard", "deep"];
174
+ };
175
+ readonly interaction: {
176
+ readonly enum: readonly ["one-shot", "interactive", "autonomous"];
177
+ };
178
+ readonly model_tier: {
179
+ readonly enum: readonly ["small", "mid", "frontier"];
180
+ };
181
+ readonly reasoning: {
182
+ readonly enum: readonly ["off", "optional", "recommended"];
183
+ };
184
+ readonly level: {
185
+ readonly enum: readonly ["beginner", "intermediate", "expert"];
186
+ };
187
+ readonly pairs_with: {
188
+ readonly type: "object";
189
+ readonly description: "UI hint only; never a runtime dependency.";
190
+ readonly additionalProperties: false;
191
+ readonly properties: {
192
+ readonly prompts: {
193
+ readonly type: "array";
194
+ readonly items: {
195
+ type: string;
196
+ pattern: string;
197
+ };
198
+ readonly uniqueItems: true;
199
+ };
200
+ readonly personas: {
201
+ readonly type: "array";
202
+ readonly items: {
203
+ type: string;
204
+ pattern: string;
205
+ };
206
+ readonly uniqueItems: true;
207
+ };
208
+ readonly workflows: {
209
+ readonly type: "array";
210
+ readonly items: {
211
+ type: string;
212
+ pattern: string;
213
+ };
214
+ readonly uniqueItems: true;
215
+ };
216
+ readonly rules: {
217
+ readonly type: "array";
218
+ readonly items: {
219
+ type: string;
220
+ pattern: string;
221
+ };
222
+ readonly uniqueItems: true;
223
+ };
224
+ readonly styles: {
225
+ readonly type: "array";
226
+ readonly items: {
227
+ readonly type: "object";
228
+ readonly required: readonly ["id"];
229
+ readonly additionalProperties: false;
230
+ readonly properties: {
231
+ readonly id: {
232
+ type: string;
233
+ pattern: string;
234
+ };
235
+ readonly level: {
236
+ readonly type: "integer";
237
+ readonly minimum: 1;
238
+ readonly maximum: 5;
239
+ };
240
+ };
241
+ };
242
+ };
243
+ };
244
+ };
245
+ readonly args: {
246
+ readonly type: "array";
247
+ readonly description: "Typed arguments, referenced in the body as {{name}}.";
248
+ readonly items: {
249
+ readonly type: "object";
250
+ readonly required: readonly ["name", "description", "type"];
251
+ readonly additionalProperties: false;
252
+ readonly properties: {
253
+ readonly name: {
254
+ readonly type: "string";
255
+ readonly pattern: "^[a-z][a-z0-9_]*$";
256
+ };
257
+ readonly description: {
258
+ readonly type: "string";
259
+ readonly minLength: 1;
260
+ readonly maxLength: 300;
261
+ };
262
+ readonly type: {
263
+ readonly enum: readonly ["string", "text", "enum", "number", "boolean"];
264
+ };
265
+ readonly required: {
266
+ readonly type: "boolean";
267
+ };
268
+ readonly default: {
269
+ readonly type: readonly ["string", "number", "boolean"];
270
+ };
271
+ readonly enum: {
272
+ readonly type: "array";
273
+ readonly items: {
274
+ readonly type: "string";
275
+ };
276
+ readonly minItems: 2;
277
+ readonly uniqueItems: true;
278
+ };
279
+ };
280
+ readonly if: {
281
+ readonly properties: {
282
+ readonly type: {
283
+ readonly const: "enum";
284
+ };
285
+ };
286
+ };
287
+ readonly then: {
288
+ readonly required: readonly ["enum"];
289
+ };
290
+ readonly else: {
291
+ readonly not: {
292
+ readonly required: readonly ["enum"];
293
+ };
294
+ };
295
+ };
296
+ };
297
+ readonly output_contract: {
298
+ readonly type: "object";
299
+ readonly required: readonly ["format"];
300
+ readonly additionalProperties: false;
301
+ readonly properties: {
302
+ readonly format: {
303
+ readonly enum: readonly ["markdown", "json", "yaml", "text", "diff"];
304
+ };
305
+ readonly sections: {
306
+ readonly type: "array";
307
+ readonly items: {
308
+ readonly type: "string";
309
+ readonly minLength: 1;
310
+ };
311
+ readonly uniqueItems: true;
312
+ };
313
+ readonly strict: {
314
+ readonly type: "boolean";
315
+ };
316
+ };
317
+ };
318
+ readonly authorship: {
319
+ readonly enum: readonly ["human", "ai-assisted", "ai-generated"];
320
+ };
321
+ readonly authors: {
322
+ readonly type: "array";
323
+ readonly items: {
324
+ readonly type: "string";
325
+ readonly pattern: "^[A-Za-z0-9](-?[A-Za-z0-9]){0,38}$";
326
+ };
327
+ readonly minItems: 1;
328
+ readonly uniqueItems: true;
329
+ readonly description: "GitHub logins of the accountable humans.";
330
+ };
331
+ readonly last_reviewed: {
332
+ readonly type: "string";
333
+ readonly pattern: "^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$";
334
+ };
335
+ readonly changelog: {
336
+ readonly type: "array";
337
+ readonly items: {
338
+ readonly type: "object";
339
+ readonly required: readonly ["version", "note"];
340
+ readonly additionalProperties: false;
341
+ readonly properties: {
342
+ readonly version: {
343
+ readonly type: "string";
344
+ readonly pattern: "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)$";
345
+ };
346
+ readonly note: {
347
+ readonly type: "string";
348
+ readonly minLength: 1;
349
+ readonly maxLength: 300;
350
+ };
351
+ };
352
+ };
353
+ };
354
+ readonly targets: {
355
+ readonly type: "object";
356
+ readonly description: "Per-target escape hatch. Every use prints a compiler warning.";
357
+ readonly propertyNames: {
358
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*$";
359
+ };
360
+ readonly additionalProperties: {
361
+ readonly type: "object";
362
+ };
363
+ };
364
+ readonly voice: {
365
+ readonly type: "string";
366
+ readonly minLength: 1;
367
+ readonly maxLength: 200;
368
+ readonly description: "Persona only.";
369
+ };
370
+ readonly tools: {
371
+ readonly type: "array";
372
+ readonly items: {
373
+ readonly enum: readonly ["read", "search", "edit", "write", "shell", "web", "git"];
374
+ };
375
+ readonly uniqueItems: true;
376
+ readonly description: "Persona only. Abstract tools, mapped per target.";
377
+ };
378
+ readonly color: {
379
+ readonly enum: readonly ["red", "orange", "yellow", "green", "cyan", "blue", "purple", "pink"];
380
+ readonly description: "Persona only.";
381
+ };
382
+ readonly keep_coding_instructions: {
383
+ readonly type: "boolean";
384
+ readonly description: "Persona only.";
385
+ };
386
+ readonly steps: {
387
+ readonly type: "array";
388
+ readonly minItems: 1;
389
+ readonly description: "Workflow only. Ordered, gated steps; each file lives in steps/.";
390
+ readonly items: {
391
+ readonly type: "object";
392
+ readonly required: readonly ["id", "file", "stage", "gate"];
393
+ readonly additionalProperties: false;
394
+ readonly properties: {
395
+ readonly id: {
396
+ readonly type: "string";
397
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*$";
398
+ };
399
+ readonly file: {
400
+ readonly type: "string";
401
+ readonly pattern: "^steps/\\d{2}-[a-z0-9]+(-[a-z0-9]+)*\\.md$";
402
+ };
403
+ readonly stage: {
404
+ readonly type: "string";
405
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*$";
406
+ };
407
+ readonly gate: {
408
+ readonly enum: readonly ["approve", "none"];
409
+ };
410
+ readonly artifact: {
411
+ readonly type: "string";
412
+ readonly minLength: 1;
413
+ };
414
+ };
415
+ };
416
+ };
417
+ readonly applies_to: {
418
+ readonly type: "array";
419
+ readonly items: {
420
+ readonly type: "string";
421
+ readonly minLength: 1;
422
+ };
423
+ readonly uniqueItems: true;
424
+ readonly description: "Rule only. Glob patterns; omit for an always-on rule.";
425
+ };
426
+ readonly levels: {
427
+ readonly type: "array";
428
+ readonly minItems: 5;
429
+ readonly maxItems: 5;
430
+ readonly description: "Style only. Exactly 5 levels, from lightest (1) to strongest (5).";
431
+ readonly items: {
432
+ readonly type: "object";
433
+ readonly required: readonly ["label", "instruction"];
434
+ readonly additionalProperties: false;
435
+ readonly properties: {
436
+ readonly label: {
437
+ readonly type: "string";
438
+ readonly minLength: 1;
439
+ readonly maxLength: 40;
440
+ };
441
+ readonly instruction: {
442
+ readonly type: "string";
443
+ readonly minLength: 1;
444
+ readonly maxLength: 600;
445
+ };
446
+ };
447
+ };
448
+ };
449
+ };
450
+ readonly allOf: readonly [{
451
+ readonly if: {
452
+ readonly properties: {
453
+ readonly kind: {
454
+ readonly const: "workflow";
455
+ };
456
+ };
457
+ };
458
+ readonly then: {
459
+ readonly required: readonly ["steps"];
460
+ };
461
+ readonly else: {
462
+ readonly not: {
463
+ readonly required: readonly ["steps"];
464
+ };
465
+ };
466
+ }, {
467
+ readonly if: {
468
+ readonly properties: {
469
+ readonly kind: {
470
+ readonly const: "style";
471
+ };
472
+ };
473
+ };
474
+ readonly then: {
475
+ readonly required: readonly ["levels"];
476
+ };
477
+ readonly else: {
478
+ readonly not: {
479
+ readonly required: readonly ["levels"];
480
+ };
481
+ };
482
+ }, {
483
+ readonly if: {
484
+ readonly properties: {
485
+ readonly kind: {
486
+ readonly const: "rule";
487
+ };
488
+ };
489
+ };
490
+ readonly else: {
491
+ readonly not: {
492
+ readonly required: readonly ["applies_to"];
493
+ };
494
+ };
495
+ }, {
496
+ readonly if: {
497
+ readonly properties: {
498
+ readonly kind: {
499
+ readonly const: "persona";
500
+ };
501
+ };
502
+ };
503
+ readonly else: {
504
+ readonly not: {
505
+ readonly anyOf: readonly [{
506
+ readonly required: readonly ["voice"];
507
+ }, {
508
+ readonly required: readonly ["tools"];
509
+ }, {
510
+ readonly required: readonly ["color"];
511
+ }, {
512
+ readonly required: readonly ["keep_coding_instructions"];
513
+ }];
514
+ };
515
+ };
516
+ }, {
517
+ readonly if: {
518
+ readonly properties: {
519
+ readonly status: {
520
+ readonly const: "deprecated";
521
+ };
522
+ };
523
+ readonly required: readonly ["status"];
524
+ };
525
+ readonly then: {
526
+ readonly required: readonly ["replaced_by"];
527
+ };
528
+ }, {
529
+ readonly if: {
530
+ readonly properties: {
531
+ readonly authorship: {
532
+ readonly enum: readonly ["ai-assisted", "ai-generated"];
533
+ };
534
+ };
535
+ readonly required: readonly ["authorship"];
536
+ };
537
+ readonly then: {
538
+ readonly required: readonly ["authors"];
539
+ };
540
+ }];
541
+ };
542
+ export declare const ASSERTION_TYPES: readonly ["contains", "icontains", "not-contains", "not-icontains", "contains-any", "contains-all", "equals", "starts-with", "regex", "not-regex", "is-json", "javascript", "llm-rubric", "similar"];
543
+ /** JSON Schema (2020-12) for `evals.yaml`, compiled to promptfoo by tools/evals. */
544
+ export declare const evalsSchema: {
545
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
546
+ readonly $id: "https://hermes-ide.com/prompts/schema/v1/evals.schema.json";
547
+ readonly title: "Hodios entry evals";
548
+ readonly type: "object";
549
+ readonly required: readonly ["schema", "baseline", "cases"];
550
+ readonly additionalProperties: false;
551
+ readonly properties: {
552
+ readonly schema: {
553
+ readonly const: 1;
554
+ };
555
+ readonly baseline: {
556
+ readonly type: "string";
557
+ readonly minLength: 1;
558
+ readonly description: "The naive prompt the entry must beat.";
559
+ };
560
+ readonly providers: {
561
+ readonly type: "array";
562
+ readonly items: {
563
+ readonly type: "object";
564
+ readonly required: readonly ["family", "tier"];
565
+ readonly additionalProperties: false;
566
+ readonly properties: {
567
+ readonly family: {
568
+ readonly type: "string";
569
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*$";
570
+ };
571
+ readonly tier: {
572
+ readonly enum: readonly ["small", "mid", "frontier"];
573
+ };
574
+ };
575
+ };
576
+ readonly minItems: 1;
577
+ };
578
+ readonly judge: {
579
+ readonly type: "object";
580
+ readonly required: readonly ["family", "tier"];
581
+ readonly additionalProperties: false;
582
+ readonly properties: {
583
+ readonly family: {
584
+ readonly type: "string";
585
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*$";
586
+ };
587
+ readonly tier: {
588
+ readonly enum: readonly ["small", "mid", "frontier"];
589
+ };
590
+ };
591
+ };
592
+ readonly pass_threshold: {
593
+ readonly type: "number";
594
+ readonly minimum: 0;
595
+ readonly maximum: 1;
596
+ };
597
+ readonly min_lift_over_baseline: {
598
+ readonly type: "number";
599
+ readonly minimum: 0;
600
+ readonly maximum: 1;
601
+ };
602
+ readonly cases: {
603
+ readonly type: "array";
604
+ readonly minItems: 1;
605
+ readonly items: {
606
+ readonly type: "object";
607
+ readonly required: readonly ["name", "vars", "assert"];
608
+ readonly additionalProperties: false;
609
+ readonly properties: {
610
+ readonly name: {
611
+ readonly type: "string";
612
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*$";
613
+ };
614
+ readonly description: {
615
+ readonly type: "string";
616
+ };
617
+ readonly vars: {
618
+ readonly type: "object";
619
+ readonly additionalProperties: {
620
+ readonly type: readonly ["string", "number", "boolean"];
621
+ };
622
+ };
623
+ readonly assert: {
624
+ readonly type: "array";
625
+ readonly minItems: 1;
626
+ readonly items: {
627
+ readonly type: "object";
628
+ readonly required: readonly ["type"];
629
+ readonly additionalProperties: false;
630
+ readonly properties: {
631
+ readonly type: {
632
+ readonly enum: readonly ["contains", "icontains", "not-contains", "not-icontains", "contains-any", "contains-all", "equals", "starts-with", "regex", "not-regex", "is-json", "javascript", "llm-rubric", "similar"];
633
+ };
634
+ readonly value: {};
635
+ readonly threshold: {
636
+ readonly type: "number";
637
+ };
638
+ };
639
+ };
640
+ };
641
+ };
642
+ };
643
+ };
644
+ };
645
+ };
646
+ /** JSON Schema (2020-12) for a controlled vocabulary file in vocab/. */
647
+ export declare const vocabSchema: {
648
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
649
+ readonly $id: "https://hermes-ide.com/prompts/schema/v1/vocab.schema.json";
650
+ readonly title: "Hodios controlled vocabulary";
651
+ readonly type: "object";
652
+ readonly required: readonly ["schema", "facet", "values"];
653
+ readonly additionalProperties: false;
654
+ readonly properties: {
655
+ readonly schema: {
656
+ readonly const: 1;
657
+ };
658
+ readonly facet: {
659
+ readonly type: "string";
660
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*$";
661
+ };
662
+ readonly description: {
663
+ readonly type: "string";
664
+ };
665
+ readonly values: {
666
+ readonly type: "array";
667
+ readonly items: {
668
+ readonly type: "object";
669
+ readonly required: readonly ["value", "label"];
670
+ readonly additionalProperties: false;
671
+ readonly properties: {
672
+ readonly value: {
673
+ readonly type: "string";
674
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*$";
675
+ };
676
+ readonly label: {
677
+ readonly type: "string";
678
+ readonly minLength: 1;
679
+ };
680
+ readonly description: {
681
+ readonly type: "string";
682
+ };
683
+ readonly synonyms: {
684
+ readonly type: "array";
685
+ readonly items: {
686
+ readonly type: "string";
687
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*$";
688
+ };
689
+ readonly uniqueItems: true;
690
+ };
691
+ readonly deprecated_by: {
692
+ readonly type: readonly ["string", "null"];
693
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*$";
694
+ };
695
+ readonly domain: {
696
+ readonly type: "string";
697
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*$";
698
+ readonly description: "category: the owning domain.";
699
+ };
700
+ readonly scope_note: {
701
+ readonly type: "string";
702
+ readonly description: "category: the boundary with neighbouring values.";
703
+ };
704
+ readonly examples: {
705
+ readonly type: "array";
706
+ readonly items: {
707
+ readonly type: "string";
708
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*$";
709
+ };
710
+ readonly uniqueItems: true;
711
+ };
712
+ readonly advice_risk: {
713
+ readonly type: "array";
714
+ readonly items: {
715
+ readonly type: "string";
716
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*$";
717
+ };
718
+ readonly uniqueItems: true;
719
+ readonly description: "category: advice-risk values every entry in it must declare.";
720
+ };
721
+ readonly layout: {
722
+ readonly enum: readonly ["flat", "nested"];
723
+ readonly description: "category: flat (default) or nested.";
724
+ };
725
+ readonly parent: {
726
+ readonly type: "string";
727
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*$";
728
+ readonly description: "subcategory: the parent category.";
729
+ };
730
+ readonly implies: {
731
+ readonly type: "array";
732
+ readonly items: {
733
+ readonly type: "string";
734
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*$";
735
+ };
736
+ readonly uniqueItems: true;
737
+ readonly description: "stack, subject: broader values this one implies.";
738
+ };
739
+ readonly type: {
740
+ readonly type: "string";
741
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*$";
742
+ readonly description: "stack, subject: kind of value.";
743
+ };
744
+ readonly detect: {
745
+ readonly type: "object";
746
+ readonly additionalProperties: false;
747
+ readonly description: "stack: on-device project detection hints for Hermes.";
748
+ readonly properties: {
749
+ readonly files: {
750
+ readonly type: "array";
751
+ readonly items: {
752
+ readonly type: "string";
753
+ readonly minLength: 1;
754
+ };
755
+ readonly uniqueItems: true;
756
+ };
757
+ readonly deps: {
758
+ readonly type: "array";
759
+ readonly items: {
760
+ readonly type: "string";
761
+ readonly pattern: "^[a-z]+:[^\\s]+$";
762
+ };
763
+ readonly uniqueItems: true;
764
+ };
765
+ };
766
+ };
767
+ readonly group: {
768
+ readonly type: "string";
769
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*$";
770
+ readonly description: "role: picker group.";
771
+ };
772
+ readonly onet: {
773
+ readonly type: "string";
774
+ readonly pattern: "^\\d{2}-\\d{4}(\\.\\d{2})?$";
775
+ readonly description: "role: O*NET-SOC code.";
776
+ };
777
+ readonly partials: {
778
+ readonly type: "array";
779
+ readonly items: {
780
+ readonly type: "string";
781
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*(/[a-z0-9]+(-[a-z0-9]+)*)*$";
782
+ };
783
+ readonly uniqueItems: true;
784
+ readonly description: "advice-risk: guardrail partials an entry with this value must include.";
785
+ };
786
+ };
787
+ };
788
+ };
789
+ };
790
+ };
791
+ /** Every published schema, keyed by its file name under schema/. */
792
+ export declare const schemaFiles: {
793
+ readonly 'entry.schema.json': {
794
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
795
+ readonly $id: "https://hermes-ide.com/prompts/schema/v1/entry.schema.json";
796
+ readonly title: "Hodios entry";
797
+ readonly description: "Frontmatter of a Hodios library entry (prompt, persona, workflow, rule or style). A superset of Agent Skills SKILL.md frontmatter.";
798
+ readonly type: "object";
799
+ readonly required: readonly ["schema", "id", "kind", "title", "description", "category", "version", "status"];
800
+ readonly additionalProperties: false;
801
+ readonly properties: {
802
+ readonly schema: {
803
+ readonly const: 1;
804
+ readonly description: "Entry format version. Always 1.";
805
+ };
806
+ readonly id: {
807
+ readonly description: "Globally unique, immutable id. Equals the entry folder name.";
808
+ readonly type: string;
809
+ readonly pattern: string;
810
+ };
811
+ readonly kind: {
812
+ readonly enum: readonly ["prompt", "persona", "workflow", "rule", "style"];
813
+ readonly description: "Entry kind. Equals the entry file name.";
814
+ };
815
+ readonly title: {
816
+ readonly type: "string";
817
+ readonly minLength: 3;
818
+ readonly maxLength: 80;
819
+ };
820
+ readonly description: {
821
+ readonly type: "string";
822
+ readonly minLength: 1;
823
+ readonly maxLength: 1024;
824
+ readonly description: "Third person; says what it does and when to use it (lint PS023: 40-200 chars).";
825
+ };
826
+ readonly category: {
827
+ readonly type: "string";
828
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*$";
829
+ readonly description: "Primary category from vocab/category.yml. Path: library/<domain>/<category>/<id>/; the domain comes from the vocab.";
830
+ };
831
+ readonly subcategory: {
832
+ readonly type: "string";
833
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*$";
834
+ readonly description: "Optional value from vocab/subcategory.yml whose parent is the category (TAXONOMY.md §2.4).";
835
+ };
836
+ readonly proposed_category: {
837
+ readonly type: "string";
838
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*$";
839
+ readonly description: "Only for category \"unsorted\": the category this entry should graduate into (TAXONOMY.md §2.5).";
840
+ };
841
+ readonly version: {
842
+ readonly type: "string";
843
+ readonly pattern: "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)$";
844
+ readonly description: "Entry semver.";
845
+ };
846
+ readonly status: {
847
+ readonly enum: readonly ["incubating", "experimental", "stable", "deprecated"];
848
+ };
849
+ readonly aliases: {
850
+ readonly type: "array";
851
+ readonly items: {
852
+ type: string;
853
+ pattern: string;
854
+ };
855
+ readonly uniqueItems: true;
856
+ readonly description: "Old ids that resolve to this entry. Never the entry’s own id.";
857
+ };
858
+ readonly replaced_by: {
859
+ readonly description: "Successor id when status is deprecated.";
860
+ readonly type: string;
861
+ readonly pattern: string;
862
+ };
863
+ readonly sunset: {
864
+ readonly type: "string";
865
+ readonly pattern: "^20\\d{2}\\.([1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])\\.(0|[1-9]\\d*)$";
866
+ readonly description: "Catalog version after which a deprecated entry may be removed.";
867
+ };
868
+ readonly stage: {
869
+ type: string;
870
+ description: string;
871
+ items: {
872
+ type: string;
873
+ pattern: string;
874
+ };
875
+ uniqueItems: boolean;
876
+ };
877
+ readonly stack: {
878
+ type: string;
879
+ description: string;
880
+ items: {
881
+ type: string;
882
+ pattern: string;
883
+ };
884
+ uniqueItems: boolean;
885
+ };
886
+ readonly requires: {
887
+ readonly type: "array";
888
+ readonly description: "Capabilities from vocab/requires.yml, or mcp:<server>.";
889
+ readonly items: {
890
+ readonly type: "string";
891
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*(:[a-z0-9][a-z0-9._-]*)?$";
892
+ };
893
+ readonly uniqueItems: true;
894
+ };
895
+ readonly role: {
896
+ readonly maxItems: 4;
897
+ readonly type: string;
898
+ readonly description: string;
899
+ readonly items: {
900
+ type: string;
901
+ pattern: string;
902
+ };
903
+ readonly uniqueItems: boolean;
904
+ };
905
+ readonly subject: {
906
+ readonly maxItems: 4;
907
+ readonly type: string;
908
+ readonly description: string;
909
+ readonly items: {
910
+ type: string;
911
+ pattern: string;
912
+ };
913
+ readonly uniqueItems: boolean;
914
+ };
915
+ readonly advice_risk: {
916
+ readonly maxItems: 4;
917
+ readonly type: string;
918
+ readonly description: string;
919
+ readonly items: {
920
+ type: string;
921
+ pattern: string;
922
+ };
923
+ readonly uniqueItems: boolean;
924
+ };
925
+ readonly lang: {
926
+ readonly type: "string";
927
+ readonly pattern: "^[a-z]{2,3}(-[A-Z][a-z]{3})?(-([A-Z]{2}|\\d{3}))?$";
928
+ readonly description: "BCP 47 language of the entry text. Defaults to en.";
929
+ };
930
+ readonly inputs: {
931
+ type: string;
932
+ description: string;
933
+ items: {
934
+ type: string;
935
+ pattern: string;
936
+ };
937
+ uniqueItems: boolean;
938
+ };
939
+ readonly output: {
940
+ type: string;
941
+ description: string;
942
+ items: {
943
+ type: string;
944
+ pattern: string;
945
+ };
946
+ uniqueItems: boolean;
947
+ };
948
+ readonly tags: {
949
+ type: string;
950
+ description: string;
951
+ items: {
952
+ type: string;
953
+ pattern: string;
954
+ };
955
+ uniqueItems: boolean;
956
+ };
957
+ readonly risk: {
958
+ readonly enum: readonly ["read-only", "edits-files", "runs-commands", "network", "external"];
959
+ };
960
+ readonly invocation: {
961
+ readonly enum: readonly ["user", "model", "both"];
962
+ };
963
+ readonly effort: {
964
+ readonly enum: readonly ["quick", "standard", "deep"];
965
+ };
966
+ readonly interaction: {
967
+ readonly enum: readonly ["one-shot", "interactive", "autonomous"];
968
+ };
969
+ readonly model_tier: {
970
+ readonly enum: readonly ["small", "mid", "frontier"];
971
+ };
972
+ readonly reasoning: {
973
+ readonly enum: readonly ["off", "optional", "recommended"];
974
+ };
975
+ readonly level: {
976
+ readonly enum: readonly ["beginner", "intermediate", "expert"];
977
+ };
978
+ readonly pairs_with: {
979
+ readonly type: "object";
980
+ readonly description: "UI hint only; never a runtime dependency.";
981
+ readonly additionalProperties: false;
982
+ readonly properties: {
983
+ readonly prompts: {
984
+ readonly type: "array";
985
+ readonly items: {
986
+ type: string;
987
+ pattern: string;
988
+ };
989
+ readonly uniqueItems: true;
990
+ };
991
+ readonly personas: {
992
+ readonly type: "array";
993
+ readonly items: {
994
+ type: string;
995
+ pattern: string;
996
+ };
997
+ readonly uniqueItems: true;
998
+ };
999
+ readonly workflows: {
1000
+ readonly type: "array";
1001
+ readonly items: {
1002
+ type: string;
1003
+ pattern: string;
1004
+ };
1005
+ readonly uniqueItems: true;
1006
+ };
1007
+ readonly rules: {
1008
+ readonly type: "array";
1009
+ readonly items: {
1010
+ type: string;
1011
+ pattern: string;
1012
+ };
1013
+ readonly uniqueItems: true;
1014
+ };
1015
+ readonly styles: {
1016
+ readonly type: "array";
1017
+ readonly items: {
1018
+ readonly type: "object";
1019
+ readonly required: readonly ["id"];
1020
+ readonly additionalProperties: false;
1021
+ readonly properties: {
1022
+ readonly id: {
1023
+ type: string;
1024
+ pattern: string;
1025
+ };
1026
+ readonly level: {
1027
+ readonly type: "integer";
1028
+ readonly minimum: 1;
1029
+ readonly maximum: 5;
1030
+ };
1031
+ };
1032
+ };
1033
+ };
1034
+ };
1035
+ };
1036
+ readonly args: {
1037
+ readonly type: "array";
1038
+ readonly description: "Typed arguments, referenced in the body as {{name}}.";
1039
+ readonly items: {
1040
+ readonly type: "object";
1041
+ readonly required: readonly ["name", "description", "type"];
1042
+ readonly additionalProperties: false;
1043
+ readonly properties: {
1044
+ readonly name: {
1045
+ readonly type: "string";
1046
+ readonly pattern: "^[a-z][a-z0-9_]*$";
1047
+ };
1048
+ readonly description: {
1049
+ readonly type: "string";
1050
+ readonly minLength: 1;
1051
+ readonly maxLength: 300;
1052
+ };
1053
+ readonly type: {
1054
+ readonly enum: readonly ["string", "text", "enum", "number", "boolean"];
1055
+ };
1056
+ readonly required: {
1057
+ readonly type: "boolean";
1058
+ };
1059
+ readonly default: {
1060
+ readonly type: readonly ["string", "number", "boolean"];
1061
+ };
1062
+ readonly enum: {
1063
+ readonly type: "array";
1064
+ readonly items: {
1065
+ readonly type: "string";
1066
+ };
1067
+ readonly minItems: 2;
1068
+ readonly uniqueItems: true;
1069
+ };
1070
+ };
1071
+ readonly if: {
1072
+ readonly properties: {
1073
+ readonly type: {
1074
+ readonly const: "enum";
1075
+ };
1076
+ };
1077
+ };
1078
+ readonly then: {
1079
+ readonly required: readonly ["enum"];
1080
+ };
1081
+ readonly else: {
1082
+ readonly not: {
1083
+ readonly required: readonly ["enum"];
1084
+ };
1085
+ };
1086
+ };
1087
+ };
1088
+ readonly output_contract: {
1089
+ readonly type: "object";
1090
+ readonly required: readonly ["format"];
1091
+ readonly additionalProperties: false;
1092
+ readonly properties: {
1093
+ readonly format: {
1094
+ readonly enum: readonly ["markdown", "json", "yaml", "text", "diff"];
1095
+ };
1096
+ readonly sections: {
1097
+ readonly type: "array";
1098
+ readonly items: {
1099
+ readonly type: "string";
1100
+ readonly minLength: 1;
1101
+ };
1102
+ readonly uniqueItems: true;
1103
+ };
1104
+ readonly strict: {
1105
+ readonly type: "boolean";
1106
+ };
1107
+ };
1108
+ };
1109
+ readonly authorship: {
1110
+ readonly enum: readonly ["human", "ai-assisted", "ai-generated"];
1111
+ };
1112
+ readonly authors: {
1113
+ readonly type: "array";
1114
+ readonly items: {
1115
+ readonly type: "string";
1116
+ readonly pattern: "^[A-Za-z0-9](-?[A-Za-z0-9]){0,38}$";
1117
+ };
1118
+ readonly minItems: 1;
1119
+ readonly uniqueItems: true;
1120
+ readonly description: "GitHub logins of the accountable humans.";
1121
+ };
1122
+ readonly last_reviewed: {
1123
+ readonly type: "string";
1124
+ readonly pattern: "^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$";
1125
+ };
1126
+ readonly changelog: {
1127
+ readonly type: "array";
1128
+ readonly items: {
1129
+ readonly type: "object";
1130
+ readonly required: readonly ["version", "note"];
1131
+ readonly additionalProperties: false;
1132
+ readonly properties: {
1133
+ readonly version: {
1134
+ readonly type: "string";
1135
+ readonly pattern: "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)$";
1136
+ };
1137
+ readonly note: {
1138
+ readonly type: "string";
1139
+ readonly minLength: 1;
1140
+ readonly maxLength: 300;
1141
+ };
1142
+ };
1143
+ };
1144
+ };
1145
+ readonly targets: {
1146
+ readonly type: "object";
1147
+ readonly description: "Per-target escape hatch. Every use prints a compiler warning.";
1148
+ readonly propertyNames: {
1149
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*$";
1150
+ };
1151
+ readonly additionalProperties: {
1152
+ readonly type: "object";
1153
+ };
1154
+ };
1155
+ readonly voice: {
1156
+ readonly type: "string";
1157
+ readonly minLength: 1;
1158
+ readonly maxLength: 200;
1159
+ readonly description: "Persona only.";
1160
+ };
1161
+ readonly tools: {
1162
+ readonly type: "array";
1163
+ readonly items: {
1164
+ readonly enum: readonly ["read", "search", "edit", "write", "shell", "web", "git"];
1165
+ };
1166
+ readonly uniqueItems: true;
1167
+ readonly description: "Persona only. Abstract tools, mapped per target.";
1168
+ };
1169
+ readonly color: {
1170
+ readonly enum: readonly ["red", "orange", "yellow", "green", "cyan", "blue", "purple", "pink"];
1171
+ readonly description: "Persona only.";
1172
+ };
1173
+ readonly keep_coding_instructions: {
1174
+ readonly type: "boolean";
1175
+ readonly description: "Persona only.";
1176
+ };
1177
+ readonly steps: {
1178
+ readonly type: "array";
1179
+ readonly minItems: 1;
1180
+ readonly description: "Workflow only. Ordered, gated steps; each file lives in steps/.";
1181
+ readonly items: {
1182
+ readonly type: "object";
1183
+ readonly required: readonly ["id", "file", "stage", "gate"];
1184
+ readonly additionalProperties: false;
1185
+ readonly properties: {
1186
+ readonly id: {
1187
+ readonly type: "string";
1188
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*$";
1189
+ };
1190
+ readonly file: {
1191
+ readonly type: "string";
1192
+ readonly pattern: "^steps/\\d{2}-[a-z0-9]+(-[a-z0-9]+)*\\.md$";
1193
+ };
1194
+ readonly stage: {
1195
+ readonly type: "string";
1196
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*$";
1197
+ };
1198
+ readonly gate: {
1199
+ readonly enum: readonly ["approve", "none"];
1200
+ };
1201
+ readonly artifact: {
1202
+ readonly type: "string";
1203
+ readonly minLength: 1;
1204
+ };
1205
+ };
1206
+ };
1207
+ };
1208
+ readonly applies_to: {
1209
+ readonly type: "array";
1210
+ readonly items: {
1211
+ readonly type: "string";
1212
+ readonly minLength: 1;
1213
+ };
1214
+ readonly uniqueItems: true;
1215
+ readonly description: "Rule only. Glob patterns; omit for an always-on rule.";
1216
+ };
1217
+ readonly levels: {
1218
+ readonly type: "array";
1219
+ readonly minItems: 5;
1220
+ readonly maxItems: 5;
1221
+ readonly description: "Style only. Exactly 5 levels, from lightest (1) to strongest (5).";
1222
+ readonly items: {
1223
+ readonly type: "object";
1224
+ readonly required: readonly ["label", "instruction"];
1225
+ readonly additionalProperties: false;
1226
+ readonly properties: {
1227
+ readonly label: {
1228
+ readonly type: "string";
1229
+ readonly minLength: 1;
1230
+ readonly maxLength: 40;
1231
+ };
1232
+ readonly instruction: {
1233
+ readonly type: "string";
1234
+ readonly minLength: 1;
1235
+ readonly maxLength: 600;
1236
+ };
1237
+ };
1238
+ };
1239
+ };
1240
+ };
1241
+ readonly allOf: readonly [{
1242
+ readonly if: {
1243
+ readonly properties: {
1244
+ readonly kind: {
1245
+ readonly const: "workflow";
1246
+ };
1247
+ };
1248
+ };
1249
+ readonly then: {
1250
+ readonly required: readonly ["steps"];
1251
+ };
1252
+ readonly else: {
1253
+ readonly not: {
1254
+ readonly required: readonly ["steps"];
1255
+ };
1256
+ };
1257
+ }, {
1258
+ readonly if: {
1259
+ readonly properties: {
1260
+ readonly kind: {
1261
+ readonly const: "style";
1262
+ };
1263
+ };
1264
+ };
1265
+ readonly then: {
1266
+ readonly required: readonly ["levels"];
1267
+ };
1268
+ readonly else: {
1269
+ readonly not: {
1270
+ readonly required: readonly ["levels"];
1271
+ };
1272
+ };
1273
+ }, {
1274
+ readonly if: {
1275
+ readonly properties: {
1276
+ readonly kind: {
1277
+ readonly const: "rule";
1278
+ };
1279
+ };
1280
+ };
1281
+ readonly else: {
1282
+ readonly not: {
1283
+ readonly required: readonly ["applies_to"];
1284
+ };
1285
+ };
1286
+ }, {
1287
+ readonly if: {
1288
+ readonly properties: {
1289
+ readonly kind: {
1290
+ readonly const: "persona";
1291
+ };
1292
+ };
1293
+ };
1294
+ readonly else: {
1295
+ readonly not: {
1296
+ readonly anyOf: readonly [{
1297
+ readonly required: readonly ["voice"];
1298
+ }, {
1299
+ readonly required: readonly ["tools"];
1300
+ }, {
1301
+ readonly required: readonly ["color"];
1302
+ }, {
1303
+ readonly required: readonly ["keep_coding_instructions"];
1304
+ }];
1305
+ };
1306
+ };
1307
+ }, {
1308
+ readonly if: {
1309
+ readonly properties: {
1310
+ readonly status: {
1311
+ readonly const: "deprecated";
1312
+ };
1313
+ };
1314
+ readonly required: readonly ["status"];
1315
+ };
1316
+ readonly then: {
1317
+ readonly required: readonly ["replaced_by"];
1318
+ };
1319
+ }, {
1320
+ readonly if: {
1321
+ readonly properties: {
1322
+ readonly authorship: {
1323
+ readonly enum: readonly ["ai-assisted", "ai-generated"];
1324
+ };
1325
+ };
1326
+ readonly required: readonly ["authorship"];
1327
+ };
1328
+ readonly then: {
1329
+ readonly required: readonly ["authors"];
1330
+ };
1331
+ }];
1332
+ };
1333
+ readonly 'evals.schema.json': {
1334
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
1335
+ readonly $id: "https://hermes-ide.com/prompts/schema/v1/evals.schema.json";
1336
+ readonly title: "Hodios entry evals";
1337
+ readonly type: "object";
1338
+ readonly required: readonly ["schema", "baseline", "cases"];
1339
+ readonly additionalProperties: false;
1340
+ readonly properties: {
1341
+ readonly schema: {
1342
+ readonly const: 1;
1343
+ };
1344
+ readonly baseline: {
1345
+ readonly type: "string";
1346
+ readonly minLength: 1;
1347
+ readonly description: "The naive prompt the entry must beat.";
1348
+ };
1349
+ readonly providers: {
1350
+ readonly type: "array";
1351
+ readonly items: {
1352
+ readonly type: "object";
1353
+ readonly required: readonly ["family", "tier"];
1354
+ readonly additionalProperties: false;
1355
+ readonly properties: {
1356
+ readonly family: {
1357
+ readonly type: "string";
1358
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*$";
1359
+ };
1360
+ readonly tier: {
1361
+ readonly enum: readonly ["small", "mid", "frontier"];
1362
+ };
1363
+ };
1364
+ };
1365
+ readonly minItems: 1;
1366
+ };
1367
+ readonly judge: {
1368
+ readonly type: "object";
1369
+ readonly required: readonly ["family", "tier"];
1370
+ readonly additionalProperties: false;
1371
+ readonly properties: {
1372
+ readonly family: {
1373
+ readonly type: "string";
1374
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*$";
1375
+ };
1376
+ readonly tier: {
1377
+ readonly enum: readonly ["small", "mid", "frontier"];
1378
+ };
1379
+ };
1380
+ };
1381
+ readonly pass_threshold: {
1382
+ readonly type: "number";
1383
+ readonly minimum: 0;
1384
+ readonly maximum: 1;
1385
+ };
1386
+ readonly min_lift_over_baseline: {
1387
+ readonly type: "number";
1388
+ readonly minimum: 0;
1389
+ readonly maximum: 1;
1390
+ };
1391
+ readonly cases: {
1392
+ readonly type: "array";
1393
+ readonly minItems: 1;
1394
+ readonly items: {
1395
+ readonly type: "object";
1396
+ readonly required: readonly ["name", "vars", "assert"];
1397
+ readonly additionalProperties: false;
1398
+ readonly properties: {
1399
+ readonly name: {
1400
+ readonly type: "string";
1401
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*$";
1402
+ };
1403
+ readonly description: {
1404
+ readonly type: "string";
1405
+ };
1406
+ readonly vars: {
1407
+ readonly type: "object";
1408
+ readonly additionalProperties: {
1409
+ readonly type: readonly ["string", "number", "boolean"];
1410
+ };
1411
+ };
1412
+ readonly assert: {
1413
+ readonly type: "array";
1414
+ readonly minItems: 1;
1415
+ readonly items: {
1416
+ readonly type: "object";
1417
+ readonly required: readonly ["type"];
1418
+ readonly additionalProperties: false;
1419
+ readonly properties: {
1420
+ readonly type: {
1421
+ readonly enum: readonly ["contains", "icontains", "not-contains", "not-icontains", "contains-any", "contains-all", "equals", "starts-with", "regex", "not-regex", "is-json", "javascript", "llm-rubric", "similar"];
1422
+ };
1423
+ readonly value: {};
1424
+ readonly threshold: {
1425
+ readonly type: "number";
1426
+ };
1427
+ };
1428
+ };
1429
+ };
1430
+ };
1431
+ };
1432
+ };
1433
+ };
1434
+ };
1435
+ readonly 'vocab.schema.json': {
1436
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
1437
+ readonly $id: "https://hermes-ide.com/prompts/schema/v1/vocab.schema.json";
1438
+ readonly title: "Hodios controlled vocabulary";
1439
+ readonly type: "object";
1440
+ readonly required: readonly ["schema", "facet", "values"];
1441
+ readonly additionalProperties: false;
1442
+ readonly properties: {
1443
+ readonly schema: {
1444
+ readonly const: 1;
1445
+ };
1446
+ readonly facet: {
1447
+ readonly type: "string";
1448
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*$";
1449
+ };
1450
+ readonly description: {
1451
+ readonly type: "string";
1452
+ };
1453
+ readonly values: {
1454
+ readonly type: "array";
1455
+ readonly items: {
1456
+ readonly type: "object";
1457
+ readonly required: readonly ["value", "label"];
1458
+ readonly additionalProperties: false;
1459
+ readonly properties: {
1460
+ readonly value: {
1461
+ readonly type: "string";
1462
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*$";
1463
+ };
1464
+ readonly label: {
1465
+ readonly type: "string";
1466
+ readonly minLength: 1;
1467
+ };
1468
+ readonly description: {
1469
+ readonly type: "string";
1470
+ };
1471
+ readonly synonyms: {
1472
+ readonly type: "array";
1473
+ readonly items: {
1474
+ readonly type: "string";
1475
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*$";
1476
+ };
1477
+ readonly uniqueItems: true;
1478
+ };
1479
+ readonly deprecated_by: {
1480
+ readonly type: readonly ["string", "null"];
1481
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*$";
1482
+ };
1483
+ readonly domain: {
1484
+ readonly type: "string";
1485
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*$";
1486
+ readonly description: "category: the owning domain.";
1487
+ };
1488
+ readonly scope_note: {
1489
+ readonly type: "string";
1490
+ readonly description: "category: the boundary with neighbouring values.";
1491
+ };
1492
+ readonly examples: {
1493
+ readonly type: "array";
1494
+ readonly items: {
1495
+ readonly type: "string";
1496
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*$";
1497
+ };
1498
+ readonly uniqueItems: true;
1499
+ };
1500
+ readonly advice_risk: {
1501
+ readonly type: "array";
1502
+ readonly items: {
1503
+ readonly type: "string";
1504
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*$";
1505
+ };
1506
+ readonly uniqueItems: true;
1507
+ readonly description: "category: advice-risk values every entry in it must declare.";
1508
+ };
1509
+ readonly layout: {
1510
+ readonly enum: readonly ["flat", "nested"];
1511
+ readonly description: "category: flat (default) or nested.";
1512
+ };
1513
+ readonly parent: {
1514
+ readonly type: "string";
1515
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*$";
1516
+ readonly description: "subcategory: the parent category.";
1517
+ };
1518
+ readonly implies: {
1519
+ readonly type: "array";
1520
+ readonly items: {
1521
+ readonly type: "string";
1522
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*$";
1523
+ };
1524
+ readonly uniqueItems: true;
1525
+ readonly description: "stack, subject: broader values this one implies.";
1526
+ };
1527
+ readonly type: {
1528
+ readonly type: "string";
1529
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*$";
1530
+ readonly description: "stack, subject: kind of value.";
1531
+ };
1532
+ readonly detect: {
1533
+ readonly type: "object";
1534
+ readonly additionalProperties: false;
1535
+ readonly description: "stack: on-device project detection hints for Hermes.";
1536
+ readonly properties: {
1537
+ readonly files: {
1538
+ readonly type: "array";
1539
+ readonly items: {
1540
+ readonly type: "string";
1541
+ readonly minLength: 1;
1542
+ };
1543
+ readonly uniqueItems: true;
1544
+ };
1545
+ readonly deps: {
1546
+ readonly type: "array";
1547
+ readonly items: {
1548
+ readonly type: "string";
1549
+ readonly pattern: "^[a-z]+:[^\\s]+$";
1550
+ };
1551
+ readonly uniqueItems: true;
1552
+ };
1553
+ };
1554
+ };
1555
+ readonly group: {
1556
+ readonly type: "string";
1557
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*$";
1558
+ readonly description: "role: picker group.";
1559
+ };
1560
+ readonly onet: {
1561
+ readonly type: "string";
1562
+ readonly pattern: "^\\d{2}-\\d{4}(\\.\\d{2})?$";
1563
+ readonly description: "role: O*NET-SOC code.";
1564
+ };
1565
+ readonly partials: {
1566
+ readonly type: "array";
1567
+ readonly items: {
1568
+ readonly type: "string";
1569
+ readonly pattern: "^[a-z0-9]+(-[a-z0-9]+)*(/[a-z0-9]+(-[a-z0-9]+)*)*$";
1570
+ };
1571
+ readonly uniqueItems: true;
1572
+ readonly description: "advice-risk: guardrail partials an entry with this value must include.";
1573
+ };
1574
+ };
1575
+ };
1576
+ };
1577
+ };
1578
+ };
1579
+ };
1580
+ //# sourceMappingURL=schemas.d.ts.map