@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 @@
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAsCA,6FAA6F;AAC7F,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0Pd,CAAC;AAYX,eAAO,MAAM,eAAe,sMAelB,CAAC;AAEX,oFAAoF;AACpF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkDd,CAAC;AAEX,wEAAwE;AACxE,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsEd,CAAC;AAEX,oEAAoE;AACpE,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAId,CAAC"}
@@ -0,0 +1,415 @@
1
+ import { ARG_TYPES, AUTHORSHIPS, CALVER_PATTERN, DATE_PATTERN, EFFORTS, GITHUB_LOGIN_PATTERN, ID_PATTERN, INTERACTIONS, INVOCATIONS, FACET_LIMITS, KINDS, LANG_PATTERN, LAYOUTS, LEVELS, MODEL_TIERS, OUTPUT_FORMATS, PERSONA_COLORS, PERSONA_TOOLS, REASONING, RISKS, SEMVER_PATTERN, SLUG_PATTERN, STATUSES, STEP_GATES, } from './constants.js';
2
+ const SCHEMA_BASE = 'https://hermes-ide.com/prompts/schema/v1';
3
+ const slugList = (description) => ({
4
+ type: 'array',
5
+ description,
6
+ items: { type: 'string', pattern: SLUG_PATTERN },
7
+ uniqueItems: true,
8
+ });
9
+ const idRef = { type: 'string', pattern: ID_PATTERN };
10
+ /** JSON Schema (2020-12) for the YAML frontmatter of `library/<category>/<id>/<kind>.md`. */
11
+ export const entrySchema = {
12
+ $schema: 'https://json-schema.org/draft/2020-12/schema',
13
+ $id: `${SCHEMA_BASE}/entry.schema.json`,
14
+ title: 'Hodios entry',
15
+ description: 'Frontmatter of a Hodios library entry (prompt, persona, workflow, rule or style). A superset of Agent Skills SKILL.md frontmatter.',
16
+ type: 'object',
17
+ required: ['schema', 'id', 'kind', 'title', 'description', 'category', 'version', 'status'],
18
+ additionalProperties: false,
19
+ properties: {
20
+ schema: { const: 1, description: 'Entry format version. Always 1.' },
21
+ id: {
22
+ ...idRef,
23
+ description: 'Globally unique, immutable id. Equals the entry folder name.',
24
+ },
25
+ kind: { enum: [...KINDS], description: 'Entry kind. Equals the entry file name.' },
26
+ title: { type: 'string', minLength: 3, maxLength: 80 },
27
+ description: {
28
+ type: 'string',
29
+ minLength: 1,
30
+ maxLength: 1024,
31
+ description: 'Third person; says what it does and when to use it (lint PS023: 40-200 chars).',
32
+ },
33
+ category: {
34
+ type: 'string',
35
+ pattern: SLUG_PATTERN,
36
+ description: 'Primary category from vocab/category.yml. Path: library/<domain>/<category>/<id>/; the domain comes from the vocab.',
37
+ },
38
+ subcategory: {
39
+ type: 'string',
40
+ pattern: SLUG_PATTERN,
41
+ description: 'Optional value from vocab/subcategory.yml whose parent is the category (TAXONOMY.md §2.4).',
42
+ },
43
+ proposed_category: {
44
+ type: 'string',
45
+ pattern: SLUG_PATTERN,
46
+ description: 'Only for category "unsorted": the category this entry should graduate into (TAXONOMY.md §2.5).',
47
+ },
48
+ version: { type: 'string', pattern: SEMVER_PATTERN, description: 'Entry semver.' },
49
+ status: { enum: [...STATUSES] },
50
+ aliases: {
51
+ type: 'array',
52
+ items: idRef,
53
+ uniqueItems: true,
54
+ description: 'Old ids that resolve to this entry. Never the entry’s own id.',
55
+ },
56
+ replaced_by: { ...idRef, description: 'Successor id when status is deprecated.' },
57
+ sunset: {
58
+ type: 'string',
59
+ pattern: CALVER_PATTERN,
60
+ description: 'Catalog version after which a deprecated entry may be removed.',
61
+ },
62
+ stage: slugList('Lifecycle stages from vocab/stage.yml.'),
63
+ stack: slugList('Technologies from vocab/stack.yml. Empty means stack-agnostic.'),
64
+ requires: {
65
+ type: 'array',
66
+ description: 'Capabilities from vocab/requires.yml, or mcp:<server>.',
67
+ items: { type: 'string', pattern: '^[a-z0-9]+(-[a-z0-9]+)*(:[a-z0-9][a-z0-9._-]*)?$' },
68
+ uniqueItems: true,
69
+ },
70
+ role: {
71
+ ...slugList('Audience roles from vocab/role.yml. Empty means anyone.'),
72
+ maxItems: FACET_LIMITS.role,
73
+ },
74
+ subject: {
75
+ ...slugList('Subjects, fields or human languages from vocab/subject.yml. Empty means any.'),
76
+ maxItems: FACET_LIMITS.subject,
77
+ },
78
+ advice_risk: {
79
+ ...slugList('Professional-advice areas from vocab/advice-risk.yml (TAXONOMY.md §3.9).'),
80
+ maxItems: FACET_LIMITS.advice_risk,
81
+ },
82
+ lang: {
83
+ type: 'string',
84
+ pattern: LANG_PATTERN,
85
+ description: 'BCP 47 language of the entry text. Defaults to en.',
86
+ },
87
+ inputs: slugList('Input types from vocab/inputs.yml.'),
88
+ output: slugList('Output types from vocab/output.yml.'),
89
+ tags: slugList('Free tags, normalized by vocab/tags.yml (lint PS007: at most 8).'),
90
+ risk: { enum: [...RISKS] },
91
+ invocation: { enum: [...INVOCATIONS] },
92
+ effort: { enum: [...EFFORTS] },
93
+ interaction: { enum: [...INTERACTIONS] },
94
+ model_tier: { enum: [...MODEL_TIERS] },
95
+ reasoning: { enum: [...REASONING] },
96
+ level: { enum: [...LEVELS] },
97
+ pairs_with: {
98
+ type: 'object',
99
+ description: 'UI hint only; never a runtime dependency.',
100
+ additionalProperties: false,
101
+ properties: {
102
+ prompts: { type: 'array', items: idRef, uniqueItems: true },
103
+ personas: { type: 'array', items: idRef, uniqueItems: true },
104
+ workflows: { type: 'array', items: idRef, uniqueItems: true },
105
+ rules: { type: 'array', items: idRef, uniqueItems: true },
106
+ styles: {
107
+ type: 'array',
108
+ items: {
109
+ type: 'object',
110
+ required: ['id'],
111
+ additionalProperties: false,
112
+ properties: { id: idRef, level: { type: 'integer', minimum: 1, maximum: 5 } },
113
+ },
114
+ },
115
+ },
116
+ },
117
+ args: {
118
+ type: 'array',
119
+ description: 'Typed arguments, referenced in the body as {{name}}.',
120
+ items: {
121
+ type: 'object',
122
+ required: ['name', 'description', 'type'],
123
+ additionalProperties: false,
124
+ properties: {
125
+ name: { type: 'string', pattern: '^[a-z][a-z0-9_]*$' },
126
+ description: { type: 'string', minLength: 1, maxLength: 300 },
127
+ type: { enum: [...ARG_TYPES] },
128
+ required: { type: 'boolean' },
129
+ default: { type: ['string', 'number', 'boolean'] },
130
+ enum: { type: 'array', items: { type: 'string' }, minItems: 2, uniqueItems: true },
131
+ },
132
+ if: { properties: { type: { const: 'enum' } } },
133
+ then: { required: ['enum'] },
134
+ else: { not: { required: ['enum'] } },
135
+ },
136
+ },
137
+ output_contract: {
138
+ type: 'object',
139
+ required: ['format'],
140
+ additionalProperties: false,
141
+ properties: {
142
+ format: { enum: [...OUTPUT_FORMATS] },
143
+ sections: { type: 'array', items: { type: 'string', minLength: 1 }, uniqueItems: true },
144
+ strict: { type: 'boolean' },
145
+ },
146
+ },
147
+ authorship: { enum: [...AUTHORSHIPS] },
148
+ authors: {
149
+ type: 'array',
150
+ items: { type: 'string', pattern: GITHUB_LOGIN_PATTERN },
151
+ minItems: 1,
152
+ uniqueItems: true,
153
+ description: 'GitHub logins of the accountable humans.',
154
+ },
155
+ last_reviewed: { type: 'string', pattern: DATE_PATTERN },
156
+ changelog: {
157
+ type: 'array',
158
+ items: {
159
+ type: 'object',
160
+ required: ['version', 'note'],
161
+ additionalProperties: false,
162
+ properties: {
163
+ version: { type: 'string', pattern: SEMVER_PATTERN },
164
+ note: { type: 'string', minLength: 1, maxLength: 300 },
165
+ },
166
+ },
167
+ },
168
+ targets: {
169
+ type: 'object',
170
+ description: 'Per-target escape hatch. Every use prints a compiler warning.',
171
+ propertyNames: { pattern: SLUG_PATTERN },
172
+ additionalProperties: { type: 'object' },
173
+ },
174
+ voice: { type: 'string', minLength: 1, maxLength: 200, description: 'Persona only.' },
175
+ tools: {
176
+ type: 'array',
177
+ items: { enum: [...PERSONA_TOOLS] },
178
+ uniqueItems: true,
179
+ description: 'Persona only. Abstract tools, mapped per target.',
180
+ },
181
+ color: { enum: [...PERSONA_COLORS], description: 'Persona only.' },
182
+ keep_coding_instructions: { type: 'boolean', description: 'Persona only.' },
183
+ steps: {
184
+ type: 'array',
185
+ minItems: 1,
186
+ description: 'Workflow only. Ordered, gated steps; each file lives in steps/.',
187
+ items: {
188
+ type: 'object',
189
+ required: ['id', 'file', 'stage', 'gate'],
190
+ additionalProperties: false,
191
+ properties: {
192
+ id: { type: 'string', pattern: SLUG_PATTERN },
193
+ file: { type: 'string', pattern: '^steps/\\d{2}-[a-z0-9]+(-[a-z0-9]+)*\\.md$' },
194
+ stage: { type: 'string', pattern: SLUG_PATTERN },
195
+ gate: { enum: [...STEP_GATES] },
196
+ artifact: { type: 'string', minLength: 1 },
197
+ },
198
+ },
199
+ },
200
+ applies_to: {
201
+ type: 'array',
202
+ items: { type: 'string', minLength: 1 },
203
+ uniqueItems: true,
204
+ description: 'Rule only. Glob patterns; omit for an always-on rule.',
205
+ },
206
+ levels: {
207
+ type: 'array',
208
+ minItems: 5,
209
+ maxItems: 5,
210
+ description: 'Style only. Exactly 5 levels, from lightest (1) to strongest (5).',
211
+ items: {
212
+ type: 'object',
213
+ required: ['label', 'instruction'],
214
+ additionalProperties: false,
215
+ properties: {
216
+ label: { type: 'string', minLength: 1, maxLength: 40 },
217
+ instruction: { type: 'string', minLength: 1, maxLength: 600 },
218
+ },
219
+ },
220
+ },
221
+ },
222
+ allOf: [
223
+ {
224
+ if: { properties: { kind: { const: 'workflow' } } },
225
+ then: { required: ['steps'] },
226
+ else: { not: { required: ['steps'] } },
227
+ },
228
+ {
229
+ if: { properties: { kind: { const: 'style' } } },
230
+ then: { required: ['levels'] },
231
+ else: { not: { required: ['levels'] } },
232
+ },
233
+ {
234
+ if: { properties: { kind: { const: 'rule' } } },
235
+ else: { not: { required: ['applies_to'] } },
236
+ },
237
+ {
238
+ if: { properties: { kind: { const: 'persona' } } },
239
+ else: {
240
+ not: {
241
+ anyOf: [
242
+ { required: ['voice'] },
243
+ { required: ['tools'] },
244
+ { required: ['color'] },
245
+ { required: ['keep_coding_instructions'] },
246
+ ],
247
+ },
248
+ },
249
+ },
250
+ {
251
+ if: { properties: { status: { const: 'deprecated' } }, required: ['status'] },
252
+ then: { required: ['replaced_by'] },
253
+ },
254
+ {
255
+ if: { properties: { authorship: { enum: ['ai-assisted', 'ai-generated'] } }, required: ['authorship'] },
256
+ then: { required: ['authors'] },
257
+ },
258
+ ],
259
+ };
260
+ const modelRef = {
261
+ type: 'object',
262
+ required: ['family', 'tier'],
263
+ additionalProperties: false,
264
+ properties: {
265
+ family: { type: 'string', pattern: SLUG_PATTERN },
266
+ tier: { enum: [...MODEL_TIERS] },
267
+ },
268
+ };
269
+ export const ASSERTION_TYPES = [
270
+ 'contains',
271
+ 'icontains',
272
+ 'not-contains',
273
+ 'not-icontains',
274
+ 'contains-any',
275
+ 'contains-all',
276
+ 'equals',
277
+ 'starts-with',
278
+ 'regex',
279
+ 'not-regex',
280
+ 'is-json',
281
+ 'javascript',
282
+ 'llm-rubric',
283
+ 'similar',
284
+ ];
285
+ /** JSON Schema (2020-12) for `evals.yaml`, compiled to promptfoo by tools/evals. */
286
+ export const evalsSchema = {
287
+ $schema: 'https://json-schema.org/draft/2020-12/schema',
288
+ $id: `${SCHEMA_BASE}/evals.schema.json`,
289
+ title: 'Hodios entry evals',
290
+ type: 'object',
291
+ required: ['schema', 'baseline', 'cases'],
292
+ additionalProperties: false,
293
+ properties: {
294
+ schema: { const: 1 },
295
+ baseline: {
296
+ type: 'string',
297
+ minLength: 1,
298
+ description: 'The naive prompt the entry must beat.',
299
+ },
300
+ providers: { type: 'array', items: modelRef, minItems: 1 },
301
+ judge: modelRef,
302
+ pass_threshold: { type: 'number', minimum: 0, maximum: 1 },
303
+ min_lift_over_baseline: { type: 'number', minimum: 0, maximum: 1 },
304
+ cases: {
305
+ type: 'array',
306
+ minItems: 1,
307
+ items: {
308
+ type: 'object',
309
+ required: ['name', 'vars', 'assert'],
310
+ additionalProperties: false,
311
+ properties: {
312
+ name: { type: 'string', pattern: SLUG_PATTERN },
313
+ description: { type: 'string' },
314
+ vars: {
315
+ type: 'object',
316
+ additionalProperties: { type: ['string', 'number', 'boolean'] },
317
+ },
318
+ assert: {
319
+ type: 'array',
320
+ minItems: 1,
321
+ items: {
322
+ type: 'object',
323
+ required: ['type'],
324
+ additionalProperties: false,
325
+ properties: {
326
+ type: { enum: [...ASSERTION_TYPES] },
327
+ value: {},
328
+ threshold: { type: 'number' },
329
+ },
330
+ },
331
+ },
332
+ },
333
+ },
334
+ },
335
+ },
336
+ };
337
+ /** JSON Schema (2020-12) for a controlled vocabulary file in vocab/. */
338
+ export const vocabSchema = {
339
+ $schema: 'https://json-schema.org/draft/2020-12/schema',
340
+ $id: `${SCHEMA_BASE}/vocab.schema.json`,
341
+ title: 'Hodios controlled vocabulary',
342
+ type: 'object',
343
+ required: ['schema', 'facet', 'values'],
344
+ additionalProperties: false,
345
+ properties: {
346
+ schema: { const: 1 },
347
+ facet: { type: 'string', pattern: SLUG_PATTERN },
348
+ description: { type: 'string' },
349
+ values: {
350
+ type: 'array',
351
+ items: {
352
+ type: 'object',
353
+ required: ['value', 'label'],
354
+ additionalProperties: false,
355
+ properties: {
356
+ value: { type: 'string', pattern: SLUG_PATTERN },
357
+ label: { type: 'string', minLength: 1 },
358
+ description: { type: 'string' },
359
+ synonyms: {
360
+ type: 'array',
361
+ items: { type: 'string', pattern: SLUG_PATTERN },
362
+ uniqueItems: true,
363
+ },
364
+ deprecated_by: { type: ['string', 'null'], pattern: SLUG_PATTERN },
365
+ domain: { type: 'string', pattern: SLUG_PATTERN, description: 'category: the owning domain.' },
366
+ scope_note: { type: 'string', description: 'category: the boundary with neighbouring values.' },
367
+ examples: { type: 'array', items: { type: 'string', pattern: SLUG_PATTERN }, uniqueItems: true },
368
+ advice_risk: {
369
+ type: 'array',
370
+ items: { type: 'string', pattern: SLUG_PATTERN },
371
+ uniqueItems: true,
372
+ description: 'category: advice-risk values every entry in it must declare.',
373
+ },
374
+ layout: { enum: [...LAYOUTS], description: 'category: flat (default) or nested.' },
375
+ parent: { type: 'string', pattern: SLUG_PATTERN, description: 'subcategory: the parent category.' },
376
+ implies: {
377
+ type: 'array',
378
+ items: { type: 'string', pattern: SLUG_PATTERN },
379
+ uniqueItems: true,
380
+ description: 'stack, subject: broader values this one implies.',
381
+ },
382
+ type: { type: 'string', pattern: SLUG_PATTERN, description: 'stack, subject: kind of value.' },
383
+ detect: {
384
+ type: 'object',
385
+ additionalProperties: false,
386
+ description: 'stack: on-device project detection hints for Hermes.',
387
+ properties: {
388
+ files: { type: 'array', items: { type: 'string', minLength: 1 }, uniqueItems: true },
389
+ deps: {
390
+ type: 'array',
391
+ items: { type: 'string', pattern: '^[a-z]+:[^\\s]+$' },
392
+ uniqueItems: true,
393
+ },
394
+ },
395
+ },
396
+ group: { type: 'string', pattern: SLUG_PATTERN, description: 'role: picker group.' },
397
+ onet: { type: 'string', pattern: '^\\d{2}-\\d{4}(\\.\\d{2})?$', description: 'role: O*NET-SOC code.' },
398
+ partials: {
399
+ type: 'array',
400
+ items: { type: 'string', pattern: '^[a-z0-9]+(-[a-z0-9]+)*(/[a-z0-9]+(-[a-z0-9]+)*)*$' },
401
+ uniqueItems: true,
402
+ description: 'advice-risk: guardrail partials an entry with this value must include.',
403
+ },
404
+ },
405
+ },
406
+ },
407
+ },
408
+ };
409
+ /** Every published schema, keyed by its file name under schema/. */
410
+ export const schemaFiles = {
411
+ 'entry.schema.json': entrySchema,
412
+ 'evals.schema.json': evalsSchema,
413
+ 'vocab.schema.json': vocabSchema,
414
+ };
415
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,155 @@
1
+ import type { ArgType, Authorship, Effort, Interaction, Invocation, Kind, Layout, Level, ModelTier, OutputFormat, PersonaColor, PersonaTool, Reasoning, Risk, Status, StepGate } from './constants.js';
2
+ export interface EntryArg {
3
+ name: string;
4
+ description: string;
5
+ type: ArgType;
6
+ required?: boolean;
7
+ default?: string | number | boolean;
8
+ enum?: string[];
9
+ }
10
+ export interface StyleRef {
11
+ id: string;
12
+ level?: number;
13
+ }
14
+ export interface PairsWith {
15
+ prompts?: string[];
16
+ personas?: string[];
17
+ workflows?: string[];
18
+ rules?: string[];
19
+ styles?: StyleRef[];
20
+ }
21
+ export interface OutputContract {
22
+ format: OutputFormat;
23
+ sections?: string[];
24
+ strict?: boolean;
25
+ }
26
+ export interface ChangelogItem {
27
+ version: string;
28
+ note: string;
29
+ }
30
+ export interface WorkflowStep {
31
+ id: string;
32
+ file: string;
33
+ stage: string;
34
+ gate: StepGate;
35
+ artifact?: string;
36
+ }
37
+ export interface StyleLevel {
38
+ label: string;
39
+ instruction: string;
40
+ }
41
+ /** Frontmatter of a library entry. Mirrors entry.schema.json. */
42
+ export interface EntryFrontmatter {
43
+ schema: 1;
44
+ id: string;
45
+ kind: Kind;
46
+ title: string;
47
+ description: string;
48
+ category: string;
49
+ subcategory?: string;
50
+ proposed_category?: string;
51
+ version: string;
52
+ status: Status;
53
+ aliases?: string[];
54
+ replaced_by?: string;
55
+ sunset?: string;
56
+ stage?: string[];
57
+ stack?: string[];
58
+ role?: string[];
59
+ subject?: string[];
60
+ advice_risk?: string[];
61
+ lang?: string;
62
+ requires?: string[];
63
+ inputs?: string[];
64
+ output?: string[];
65
+ tags?: string[];
66
+ risk?: Risk;
67
+ invocation?: Invocation;
68
+ effort?: Effort;
69
+ interaction?: Interaction;
70
+ model_tier?: ModelTier;
71
+ reasoning?: Reasoning;
72
+ level?: Level;
73
+ pairs_with?: PairsWith;
74
+ args?: EntryArg[];
75
+ output_contract?: OutputContract;
76
+ authorship?: Authorship;
77
+ authors?: string[];
78
+ last_reviewed?: string;
79
+ changelog?: ChangelogItem[];
80
+ targets?: Record<string, Record<string, unknown>>;
81
+ /** persona */
82
+ voice?: string;
83
+ tools?: PersonaTool[];
84
+ color?: PersonaColor;
85
+ keep_coding_instructions?: boolean;
86
+ /** workflow */
87
+ steps?: WorkflowStep[];
88
+ /** rule */
89
+ applies_to?: string[];
90
+ /** style */
91
+ levels?: StyleLevel[];
92
+ }
93
+ export interface EvalModelRef {
94
+ family: string;
95
+ tier: ModelTier;
96
+ }
97
+ export interface EvalAssertion {
98
+ type: string;
99
+ value?: unknown;
100
+ threshold?: number;
101
+ }
102
+ export interface EvalCase {
103
+ name: string;
104
+ description?: string;
105
+ vars: Record<string, string | number | boolean>;
106
+ assert: EvalAssertion[];
107
+ }
108
+ /** Contents of an entry's evals.yaml. Mirrors evals.schema.json. */
109
+ export interface EvalsFile {
110
+ schema: 1;
111
+ baseline: string;
112
+ providers?: EvalModelRef[];
113
+ judge?: EvalModelRef;
114
+ pass_threshold?: number;
115
+ min_lift_over_baseline?: number;
116
+ cases: EvalCase[];
117
+ }
118
+ export interface VocabValue {
119
+ value: string;
120
+ label: string;
121
+ description?: string;
122
+ synonyms?: string[];
123
+ deprecated_by?: string | null;
124
+ /** category: owning domain. */
125
+ domain?: string;
126
+ scope_note?: string;
127
+ examples?: string[];
128
+ /** category: advice-risk values every entry in it must declare. */
129
+ advice_risk?: string[];
130
+ /** category: path layout. */
131
+ layout?: Layout;
132
+ /** subcategory: parent category. */
133
+ parent?: string;
134
+ /** stack, subject: broader values this one implies. */
135
+ implies?: string[];
136
+ type?: string;
137
+ /** stack: on-device detection hints. */
138
+ detect?: {
139
+ files?: string[];
140
+ deps?: string[];
141
+ };
142
+ /** role: picker group. */
143
+ group?: string;
144
+ onet?: string;
145
+ /** advice-risk: guardrail partials an entry with this value must include. */
146
+ partials?: string[];
147
+ }
148
+ /** Contents of a vocab/<facet>.yml file. Mirrors vocab.schema.json. */
149
+ export interface VocabFile {
150
+ schema: 1;
151
+ facet: string;
152
+ description?: string;
153
+ values: VocabValue[];
154
+ }
155
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ import type { EntryFrontmatter, EvalsFile, VocabFile } from './types.js';
2
+ export interface SchemaIssue {
3
+ /** JSON pointer into the validated document, e.g. `/args/0/type`. Empty for the root. */
4
+ path: string;
5
+ message: string;
6
+ }
7
+ export interface SchemaResult<T> {
8
+ valid: boolean;
9
+ value?: T;
10
+ issues: SchemaIssue[];
11
+ }
12
+ /** Validates entry frontmatter against entry.schema.json. */
13
+ export declare const validateEntry: (data: unknown) => SchemaResult<EntryFrontmatter>;
14
+ /** Validates the contents of an evals.yaml against evals.schema.json. */
15
+ export declare const validateEvals: (data: unknown) => SchemaResult<EvalsFile>;
16
+ /** Validates a vocab/<facet>.yml against vocab.schema.json. */
17
+ export declare const validateVocab: (data: unknown) => SchemaResult<VocabFile>;
18
+ //# sourceMappingURL=validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAOzE,MAAM,WAAW,WAAW;IAC1B,yFAAyF;IACzF,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAkCD,6DAA6D;AAC7D,eAAO,MAAM,aAAa,SATV,OAAO,mCAS+D,CAAC;AAEvF,yEAAyE;AACzE,eAAO,MAAM,aAAa,SAZV,OAAO,4BAYwD,CAAC;AAEhF,+DAA+D;AAC/D,eAAO,MAAM,aAAa,SAfV,OAAO,4BAewD,CAAC"}