@refrakt-md/runes 0.9.8 → 0.10.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,551 @@
1
+ /**
2
+ * Shared rune-reference infrastructure used by both the AI prompt builder
3
+ * and the editor/CLI for serializing rune metadata. Lives in @refrakt-md/runes
4
+ * so that callers (`refrakt write`, `refrakt edit`, `refrakt reference`) can
5
+ * use it without pulling in the AI or editor packages.
6
+ */
7
+ import { RUNE_EXAMPLES } from './examples.js';
8
+ import { UNIVERSAL_ATTRIBUTE_NAMES, lookupAttributePreset, schemaBasePresets } from './attribute-presets.js';
9
+ import { schemaContentModels } from './lib/index.js';
10
+ /** Runes that are internal or child-only — excluded from generated reference docs */
11
+ export const EXCLUDED_RUNES = new Set([
12
+ 'error',
13
+ 'tab',
14
+ 'accordion-item',
15
+ 'budget-category',
16
+ 'budget-line-item',
17
+ 'conversation-message',
18
+ 'reveal-step',
19
+ 'note',
20
+ 'form-field',
21
+ ]);
22
+ /** Attributes hidden from generated reference docs (rune.attribute format) */
23
+ export const HIDDEN_ATTRIBUTES = new Set([
24
+ 'feature.split',
25
+ ]);
26
+ // ---------------------------------------------------------------------------
27
+ // Rune markdown rendering
28
+ // ---------------------------------------------------------------------------
29
+ function attributeTypeName(type) {
30
+ if (type === String)
31
+ return 'string';
32
+ if (type === Number)
33
+ return 'number';
34
+ if (type === Boolean)
35
+ return 'boolean';
36
+ if (type === Array)
37
+ return 'array';
38
+ if (typeof type === 'function' && type.name) {
39
+ return type.name;
40
+ }
41
+ return 'unknown';
42
+ }
43
+ function describeAttribute(name, attr) {
44
+ const parts = [` - ${name}: `];
45
+ if (Array.isArray(attr.matches) && attr.matches.length > 0) {
46
+ const values = attr.matches
47
+ .filter((m) => typeof m === 'string')
48
+ .map((v) => `"${v}"`)
49
+ .join(' | ');
50
+ parts.push(values);
51
+ }
52
+ else {
53
+ parts.push(attributeTypeName(attr.type));
54
+ }
55
+ parts.push(attr.required ? ' (required)' : ' (optional)');
56
+ return parts.join('');
57
+ }
58
+ /**
59
+ * Render a single rune's reference as a markdown block. Used by both the
60
+ * AI prompt builder and the `refrakt reference` CLI.
61
+ */
62
+ export function describeRune(rune) {
63
+ const lines = [];
64
+ lines.push(`### ${rune.name}`);
65
+ if (rune.description) {
66
+ lines.push(rune.description);
67
+ }
68
+ if (rune.aliases.length > 0) {
69
+ lines.push(`Aliases: ${rune.aliases.join(', ')}`);
70
+ }
71
+ if (rune.authoringHints) {
72
+ lines.push('Authoring notes:');
73
+ lines.push(rune.authoringHints);
74
+ }
75
+ const attrs = rune.schema.attributes;
76
+ if (attrs && Object.keys(attrs).length > 0) {
77
+ const entries = Object.entries(attrs).filter(([name]) => !HIDDEN_ATTRIBUTES.has(`${rune.name}.${name}`));
78
+ if (entries.length > 0) {
79
+ const preset = rune.basePreset;
80
+ const presetSet = preset ? new Set(preset.attributes) : undefined;
81
+ const own = [];
82
+ const fromPreset = [];
83
+ const universal = [];
84
+ for (const entry of entries) {
85
+ const [attrName] = entry;
86
+ if (UNIVERSAL_ATTRIBUTE_NAMES.has(attrName)) {
87
+ universal.push(entry);
88
+ }
89
+ else if (presetSet?.has(attrName)) {
90
+ fromPreset.push(entry);
91
+ }
92
+ else {
93
+ own.push(entry);
94
+ }
95
+ }
96
+ if (own.length > 0) {
97
+ lines.push('Attributes:');
98
+ for (const [attrName, attrDef] of own) {
99
+ lines.push(describeAttribute(attrName, attrDef));
100
+ }
101
+ }
102
+ if (preset && fromPreset.length > 0) {
103
+ lines.push(`Inherited from the \`${preset.name}\` preset — ${preset.description}`);
104
+ for (const [attrName, attrDef] of fromPreset) {
105
+ lines.push(describeAttribute(attrName, attrDef));
106
+ }
107
+ }
108
+ if (universal.length > 0) {
109
+ const names = Array.from(UNIVERSAL_ATTRIBUTE_NAMES).join(', ');
110
+ lines.push(`Universal attributes (available on every rune): ${names}.`);
111
+ }
112
+ }
113
+ }
114
+ if (rune.contentModel) {
115
+ lines.push(renderContentModel(rune.contentModel));
116
+ }
117
+ const example = rune.example ?? RUNE_EXAMPLES[rune.name];
118
+ if (example) {
119
+ lines.push('Example:');
120
+ lines.push('```markdoc');
121
+ lines.push(example);
122
+ lines.push('```');
123
+ }
124
+ return lines.join('\n');
125
+ }
126
+ // ---------------------------------------------------------------------------
127
+ // Content model serialization
128
+ // ---------------------------------------------------------------------------
129
+ /**
130
+ * Serialize a content model for JSON transport.
131
+ * Strips non-serializable fields (functions in `custom` models, RegExp in headingExtract).
132
+ * For function-based conditional models, evaluates with empty attrs to get the default.
133
+ */
134
+ export function serializeContentModel(model) {
135
+ const resolved = typeof model === 'function' ? model({}) : model;
136
+ return stripContentModel(resolved);
137
+ }
138
+ export function stripContentModel(model) {
139
+ if ('when' in model) {
140
+ // Conditional model — serialize the default branch
141
+ return stripContentModel(model.default);
142
+ }
143
+ if (model.type === 'custom') {
144
+ return { type: 'custom', description: model.description };
145
+ }
146
+ if (model.type === 'sequence') {
147
+ return { type: 'sequence', fields: model.fields.map(stripField) };
148
+ }
149
+ if (model.type === 'delimited') {
150
+ return {
151
+ type: 'delimited',
152
+ delimiter: model.delimiter,
153
+ zones: model.zones?.map(z => ({
154
+ name: z.name,
155
+ type: 'sequence',
156
+ fields: z.fields.map(stripField),
157
+ })),
158
+ dynamicZones: model.dynamicZones,
159
+ zoneModel: model.zoneModel ? { type: 'sequence', fields: model.zoneModel.fields.map(stripField) } : undefined,
160
+ };
161
+ }
162
+ if (model.type === 'sections') {
163
+ const nestedSectionModel = stripContentModel(model.sectionModel);
164
+ return {
165
+ type: 'sections',
166
+ sectionHeading: model.sectionHeading,
167
+ fields: model.fields?.map(stripField),
168
+ sectionModel: nestedSectionModel,
169
+ emitTag: model.emitTag,
170
+ headingExtract: model.headingExtract
171
+ ? {
172
+ fields: model.headingExtract.fields.map(f => ({
173
+ name: f.name,
174
+ pattern: f.pattern === 'remainder' ? 'remainder' : f.pattern.source,
175
+ optional: f.optional,
176
+ })),
177
+ }
178
+ : undefined,
179
+ knownSections: model.knownSections
180
+ ? Object.fromEntries(Object.entries(model.knownSections).map(([name, def]) => [name, {
181
+ alias: def.alias,
182
+ hasModel: def.model != null,
183
+ }]))
184
+ : undefined,
185
+ implicitSection: model.implicitSection,
186
+ };
187
+ }
188
+ return undefined;
189
+ }
190
+ function stripField(f) {
191
+ return {
192
+ name: f.name,
193
+ match: f.match,
194
+ optional: f.optional,
195
+ greedy: f.greedy,
196
+ template: f.template,
197
+ description: f.description,
198
+ emitTag: f.emitTag,
199
+ };
200
+ }
201
+ // ---------------------------------------------------------------------------
202
+ // Content model rendering
203
+ // ---------------------------------------------------------------------------
204
+ /**
205
+ * Render a serialized content model to agent-readable markdown. The output
206
+ * describes the rune's input shape so a coding agent can author content
207
+ * with the right children in the right order.
208
+ *
209
+ * Output is stable: rerunning on the same serialized model produces
210
+ * byte-identical output.
211
+ */
212
+ export function renderContentModel(model) {
213
+ switch (model.type) {
214
+ case 'custom': return renderCustomModel(model);
215
+ case 'sequence': return renderSequenceModel(model);
216
+ case 'sections': return renderSectionsModel(model);
217
+ case 'delimited': return renderDelimitedModel(model);
218
+ }
219
+ }
220
+ function renderCustomModel(model) {
221
+ return `Content structure:\n${model.description}`;
222
+ }
223
+ function renderSequenceModel(model) {
224
+ const fieldLines = model.fields.map(f => ` - ${renderField(f)}`);
225
+ return ['Content:', ...fieldLines].join('\n');
226
+ }
227
+ function renderSectionsModel(model) {
228
+ const lines = [];
229
+ lines.push(`Content is split into sections by ${formatMatch(model.sectionHeading)} elements. Each section becomes one named block.`);
230
+ if (model.fields && model.fields.length > 0) {
231
+ lines.push('Preamble (before first section):');
232
+ for (const field of model.fields) {
233
+ lines.push(` - ${renderField(field)}`);
234
+ }
235
+ }
236
+ lines.push(`Section body: ${describeInner(model.sectionModel)}`);
237
+ if (model.headingExtract) {
238
+ const parts = model.headingExtract.fields.map(f => {
239
+ const shape = f.pattern === 'remainder' ? 'remaining text' : `pattern \`${f.pattern}\``;
240
+ const optional = f.optional ? ', optional' : '';
241
+ return `\`${f.name}\` (${shape}${optional})`;
242
+ });
243
+ lines.push(`Heading parsing: each section heading is parsed into ${parts.join(' and ')}.`);
244
+ }
245
+ if (model.knownSections && Object.keys(model.knownSections).length > 0) {
246
+ const parts = Object.entries(model.knownSections).map(([name, def]) => {
247
+ const aliases = def.alias && def.alias.length > 0 ? ` (aliases: ${def.alias.join(', ')})` : '';
248
+ return `\`${name}\`${aliases}`;
249
+ });
250
+ lines.push(`Known sections: ${parts.join(', ')}.`);
251
+ }
252
+ return lines.join('\n');
253
+ }
254
+ function renderDelimitedModel(model) {
255
+ const lines = [];
256
+ const delimiter = model.delimiter === 'hr' ? '`---`' : `\`${model.delimiter}\``;
257
+ lines.push(`Content is split by ${delimiter} into zones.`);
258
+ if (model.zones && model.zones.length > 0) {
259
+ for (const zone of model.zones) {
260
+ lines.push(`Zone "${zone.name}":`);
261
+ for (const field of zone.fields) {
262
+ lines.push(` - ${renderField(field)}`);
263
+ }
264
+ }
265
+ }
266
+ if (model.dynamicZones && model.zoneModel) {
267
+ lines.push('Each zone between delimiters contains:');
268
+ for (const field of model.zoneModel.fields) {
269
+ lines.push(` - ${renderField(field)}`);
270
+ }
271
+ }
272
+ return lines.join('\n');
273
+ }
274
+ function renderField(field) {
275
+ const required = field.optional ? 'optional' : 'required';
276
+ const repeat = field.greedy ? ', repeatable' : '';
277
+ const match = formatMatch(field.match);
278
+ const desc = field.description ? ` — ${field.description}` : '';
279
+ return `\`${field.name}\` (${required}${repeat} ${match})${desc}`;
280
+ }
281
+ function formatMatch(match) {
282
+ if (match === 'any')
283
+ return 'any block';
284
+ if (match.startsWith('tag:'))
285
+ return `\`${match.slice(4)}\` tag`;
286
+ if (match.startsWith('heading:'))
287
+ return `level-${match.slice(8)} heading`;
288
+ if (match.startsWith('list:'))
289
+ return `${match.slice(5)} list`;
290
+ if (match.includes('|')) {
291
+ return match.split('|').map(formatMatch).join(' or ');
292
+ }
293
+ return match;
294
+ }
295
+ function describeInner(model) {
296
+ if (!model)
297
+ return 'any content';
298
+ if (model.type === 'sequence') {
299
+ if (model.fields.length === 1 && model.fields[0].match === 'any' && model.fields[0].greedy) {
300
+ return 'any blocks';
301
+ }
302
+ const parts = model.fields.map(f => formatMatch(f.match));
303
+ return parts.join(', ');
304
+ }
305
+ if (model.type === 'sections')
306
+ return `nested sections split by ${formatMatch(model.sectionHeading)}`;
307
+ if (model.type === 'delimited')
308
+ return `zones split by \`${model.delimiter}\``;
309
+ if (model.type === 'custom')
310
+ return model.description;
311
+ return 'any content';
312
+ }
313
+ /**
314
+ * Hydrate a `Rune`-like object into a fully-populated `RuneInfo` for the
315
+ * reference surface. Resolves the content model via the shared
316
+ * `schemaContentModels` WeakMap and the base preset via
317
+ * `schemaBasePresets` + `lookupAttributePreset`.
318
+ */
319
+ export function hydrateRuneInfo(rune, options = {}) {
320
+ const rawModel = schemaContentModels.get(rune.schema);
321
+ const contentModel = rawModel ? serializeContentModel(rawModel) : undefined;
322
+ const baseRecord = schemaBasePresets.get(rune.schema);
323
+ const presetMeta = baseRecord ? lookupAttributePreset(baseRecord) : undefined;
324
+ const basePreset = presetMeta
325
+ ? {
326
+ name: presetMeta.name,
327
+ description: presetMeta.description,
328
+ attributes: Object.keys(baseRecord),
329
+ }
330
+ : undefined;
331
+ return {
332
+ name: rune.name,
333
+ aliases: rune.aliases,
334
+ description: rune.description,
335
+ schema: rune.schema,
336
+ authoringHints: rune.authoringHints,
337
+ contentModel,
338
+ basePreset,
339
+ example: options.example,
340
+ package: options.packageName,
341
+ };
342
+ }
343
+ /** Hydrate every non-excluded rune in a context, sorted alphabetically by name. */
344
+ export function hydrateAllRuneInfos(ctx) {
345
+ return Object.values(ctx.runes)
346
+ .filter(rune => !EXCLUDED_RUNES.has(rune.name))
347
+ .map(rune => hydrateRuneInfo(rune, {
348
+ packageName: ctx.source[rune.name] ?? 'core',
349
+ example: ctx.fixtures[rune.name] ?? RUNE_EXAMPLES[rune.name],
350
+ }))
351
+ .sort((a, b) => a.name.localeCompare(b.name));
352
+ }
353
+ /** Hydrate a single rune by primary name or alias. Returns `undefined` if absent. */
354
+ export function hydrateRuneByName(ctx, name) {
355
+ const direct = ctx.runes[name];
356
+ if (direct) {
357
+ return hydrateRuneInfo(direct, {
358
+ packageName: ctx.source[name] ?? 'core',
359
+ example: ctx.fixtures[name] ?? RUNE_EXAMPLES[name],
360
+ });
361
+ }
362
+ for (const rune of Object.values(ctx.runes)) {
363
+ if (rune.aliases.includes(name)) {
364
+ return hydrateRuneInfo(rune, {
365
+ packageName: ctx.source[rune.name] ?? 'core',
366
+ example: ctx.fixtures[rune.name] ?? RUNE_EXAMPLES[rune.name],
367
+ });
368
+ }
369
+ }
370
+ return undefined;
371
+ }
372
+ function toSerializedAttribute(attr) {
373
+ const matches = Array.isArray(attr.matches)
374
+ ? attr.matches.filter((m) => typeof m === 'string')
375
+ : undefined;
376
+ return {
377
+ type: attributeTypeName(attr.type),
378
+ required: attr.required ?? false,
379
+ ...(matches && matches.length > 0 ? { matches } : {}),
380
+ ...(attr.description ? { description: attr.description } : {}),
381
+ };
382
+ }
383
+ /** Serialize a hydrated RuneInfo into the stable JSON shape used by the reference command. */
384
+ export function serializeRune(info, packageName) {
385
+ const attrs = info.schema.attributes ?? {};
386
+ const presetAttrs = info.basePreset ? new Set(info.basePreset.attributes) : undefined;
387
+ const own = {};
388
+ const baseAttrs = {};
389
+ const universal = [];
390
+ for (const [attrName, attrDef] of Object.entries(attrs)) {
391
+ if (HIDDEN_ATTRIBUTES.has(`${info.name}.${attrName}`))
392
+ continue;
393
+ if (UNIVERSAL_ATTRIBUTE_NAMES.has(attrName)) {
394
+ universal.push(attrName);
395
+ }
396
+ else if (presetAttrs?.has(attrName)) {
397
+ baseAttrs[attrName] = toSerializedAttribute(attrDef);
398
+ }
399
+ else {
400
+ own[attrName] = toSerializedAttribute(attrDef);
401
+ }
402
+ }
403
+ return {
404
+ name: info.name,
405
+ package: packageName ?? info.package ?? 'core',
406
+ aliases: info.aliases,
407
+ description: info.description,
408
+ ...(info.authoringHints ? { authoringHints: info.authoringHints } : {}),
409
+ attributes: {
410
+ own,
411
+ ...(info.basePreset && Object.keys(baseAttrs).length > 0
412
+ ? {
413
+ base: {
414
+ name: info.basePreset.name,
415
+ description: info.basePreset.description,
416
+ attributes: baseAttrs,
417
+ },
418
+ }
419
+ : {}),
420
+ universal,
421
+ },
422
+ ...(info.contentModel ? { contentModel: info.contentModel } : {}),
423
+ ...(info.example ? { example: info.example } : {}),
424
+ };
425
+ }
426
+ /** Group hydrated rune infos by source package, core first then alphabetical. */
427
+ export function groupReferenceInfos(infos) {
428
+ const labelOf = (pkg) => pkg === 'core' ? '@refrakt-md/runes (core)' : pkg;
429
+ const groups = new Map();
430
+ for (const info of infos) {
431
+ const pkg = info.package ?? 'core';
432
+ let group = groups.get(pkg);
433
+ if (!group) {
434
+ group = { packageName: pkg, label: labelOf(pkg), runes: [] };
435
+ groups.set(pkg, group);
436
+ }
437
+ group.runes.push({ name: info.name, description: info.description, aliases: info.aliases });
438
+ }
439
+ const sorted = Array.from(groups.values()).sort((a, b) => {
440
+ if (a.packageName === 'core')
441
+ return -1;
442
+ if (b.packageName === 'core')
443
+ return 1;
444
+ return a.packageName.localeCompare(b.packageName);
445
+ });
446
+ for (const group of sorted) {
447
+ group.runes.sort((a, b) => a.name.localeCompare(b.name));
448
+ }
449
+ return sorted;
450
+ }
451
+ function sectionSlug(name) {
452
+ return name
453
+ .toLowerCase()
454
+ .replace(/[^a-z0-9]+/g, '-')
455
+ .replace(/^-+|-+$/g, '');
456
+ }
457
+ /**
458
+ * Render the full reference document as markdown. Pure — rerunning on the same
459
+ * context produces byte-identical output, so callers can diff it against a
460
+ * checked-in AGENTS.md to detect drift.
461
+ */
462
+ export function renderReferenceMarkdown(ctx, options = {}) {
463
+ const infos = hydrateAllRuneInfos(ctx);
464
+ const groups = groupReferenceInfos(infos);
465
+ const lines = [];
466
+ lines.push('<!-- Generated by `refrakt reference dump` — do not edit by hand. -->');
467
+ lines.push('<!-- Re-run when refrakt.config.json changes or packages upgrade. -->');
468
+ lines.push('');
469
+ lines.push('# Available Runes');
470
+ lines.push('');
471
+ if (options.preamble) {
472
+ lines.push(options.preamble.trimEnd());
473
+ lines.push('');
474
+ }
475
+ else {
476
+ lines.push('This site has the following runes available. Authors and AI agents can use any of these tags inside `.md` content files.');
477
+ lines.push('');
478
+ }
479
+ lines.push('## Table of Contents');
480
+ lines.push('');
481
+ lines.push('- [Universal Attributes](#universal-attributes)');
482
+ lines.push('- [Attribute Presets](#attribute-presets)');
483
+ for (const group of groups) {
484
+ lines.push(`- [${group.label}](#${sectionSlug(group.label)})`);
485
+ for (const rune of group.runes) {
486
+ lines.push(` - [${rune.name}](#${sectionSlug(rune.name)})`);
487
+ }
488
+ }
489
+ lines.push('');
490
+ lines.push('## Universal Attributes');
491
+ lines.push('');
492
+ lines.push('These attributes are available on every rune:');
493
+ lines.push('');
494
+ for (const attr of UNIVERSAL_ATTRIBUTE_NAMES) {
495
+ lines.push(`- \`${attr}\``);
496
+ }
497
+ lines.push('');
498
+ const presetUsage = new Map();
499
+ for (const info of infos) {
500
+ if (!info.basePreset)
501
+ continue;
502
+ const existing = presetUsage.get(info.basePreset.name);
503
+ if (existing) {
504
+ existing.users.push(info.name);
505
+ }
506
+ else {
507
+ presetUsage.set(info.basePreset.name, {
508
+ description: info.basePreset.description,
509
+ attributes: info.basePreset.attributes,
510
+ users: [info.name],
511
+ });
512
+ }
513
+ }
514
+ lines.push('## Attribute Presets');
515
+ lines.push('');
516
+ if (presetUsage.size === 0) {
517
+ lines.push('_No attribute presets are used by the runes in this project._');
518
+ lines.push('');
519
+ }
520
+ else {
521
+ lines.push('Runes opt into shared attribute sets via `base:`. Each preset is listed here once; per-rune sections below note which preset they inherit.');
522
+ lines.push('');
523
+ const sortedPresets = Array.from(presetUsage.entries()).sort(([a], [b]) => a.localeCompare(b));
524
+ for (const [name, usage] of sortedPresets) {
525
+ lines.push(`### ${name}`);
526
+ lines.push('');
527
+ lines.push(usage.description);
528
+ lines.push('');
529
+ lines.push(`Used by: ${usage.users.slice().sort().join(', ')}`);
530
+ lines.push('');
531
+ lines.push('Attributes:');
532
+ for (const attr of usage.attributes) {
533
+ lines.push(` - ${attr}`);
534
+ }
535
+ lines.push('');
536
+ }
537
+ }
538
+ for (const group of groups) {
539
+ lines.push(`## ${group.label}`);
540
+ lines.push('');
541
+ for (const rune of group.runes) {
542
+ const info = infos.find(i => i.name === rune.name);
543
+ if (!info)
544
+ continue;
545
+ lines.push(describeRune(info));
546
+ lines.push('');
547
+ }
548
+ }
549
+ return lines.join('\n').trimEnd() + '\n';
550
+ }
551
+ //# sourceMappingURL=reference.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reference.js","sourceRoot":"","sources":["../src/reference.ts"],"names":[],"mappings":"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"}
package/dist/rune.d.ts CHANGED
@@ -8,16 +8,18 @@ export interface RuneDescriptor {
8
8
  schema: Schema;
9
9
  /** Human-readable description for docs and AI theme generation */
10
10
  description?: string;
11
- /** How this rune reinterprets standard Markdown primitives */
12
- reinterprets?: Record<string, string>;
13
11
  /** Schema.org type for SEO JSON-LD generation */
14
12
  seoType?: string;
15
13
  /** Rune type name (e.g. 'Hint', 'Accordion') */
16
14
  typeName?: string;
17
15
  /** Schema.org type for typeof attribute (e.g. 'FAQPage') */
18
16
  schemaOrgType?: string;
19
- /** AI prompt extension — additional context appended to the rune description in AI prompts */
20
- prompt?: string;
17
+ /**
18
+ * Authoring hints — a short note that reads naturally to both humans browsing
19
+ * the reference and LLMs generating content. Rendered as an "Authoring notes"
20
+ * block by `refrakt reference` and included in `refrakt write` prompts.
21
+ */
22
+ authoringHints?: string;
21
23
  /** Editor UI category (e.g., 'Content', 'Layout', 'Section') */
22
24
  category?: string;
23
25
  /** VSCode snippet body lines (array of strings with VSCode placeholder syntax).
@@ -29,11 +31,10 @@ export declare class Rune {
29
31
  readonly aliases: string[];
30
32
  readonly schema: Schema;
31
33
  readonly description: string;
32
- readonly reinterprets: Record<string, string>;
33
34
  readonly seoType: string | undefined;
34
35
  readonly typeName: string | undefined;
35
36
  readonly schemaOrgType: string | undefined;
36
- readonly prompt: string | undefined;
37
+ readonly authoringHints: string | undefined;
37
38
  readonly category: string | undefined;
38
39
  readonly snippet: string[] | undefined;
39
40
  constructor(descriptor: RuneDescriptor);
@@ -1 +1 @@
1
- {"version":3,"file":"rune.d.ts","sourceRoot":"","sources":["../src/rune.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,WAAW,cAAc;IAC7B,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IAEb,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC;IAEf,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEtC,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,4DAA4D;IAC5D,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,8FAA8F;IAC9F,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;iEAC6D;IAC7D,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,qBAAa,IAAI;IACf,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;gBAE3B,UAAU,EAAE,cAAc;IActC,mEAAmE;IACnE,IAAI,KAAK,IAAI,MAAM,EAAE,CAEpB;CACF;AAED,wBAAgB,UAAU,CAAC,UAAU,EAAE,cAAc,GAAG,IAAI,CAE3D;AAED,wEAAwE;AACxE,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQ9E"}
1
+ {"version":3,"file":"rune.d.ts","sourceRoot":"","sources":["../src/rune.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,WAAW,cAAc;IAC7B,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IAEb,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC;IAEf,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,4DAA4D;IAC5D,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;iEAC6D;IAC7D,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,qBAAa,IAAI;IACf,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;gBAE3B,UAAU,EAAE,cAAc;IAatC,mEAAmE;IACnE,IAAI,KAAK,IAAI,MAAM,EAAE,CAEpB;CACF;AAED,wBAAgB,UAAU,CAAC,UAAU,EAAE,cAAc,GAAG,IAAI,CAE3D;AAED,wEAAwE;AACxE,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQ9E"}
package/dist/rune.js CHANGED
@@ -4,11 +4,10 @@ export class Rune {
4
4
  this.aliases = descriptor.aliases ?? [];
5
5
  this.schema = descriptor.schema;
6
6
  this.description = descriptor.description ?? '';
7
- this.reinterprets = descriptor.reinterprets ?? {};
8
7
  this.seoType = descriptor.seoType;
9
8
  this.typeName = descriptor.typeName;
10
9
  this.schemaOrgType = descriptor.schemaOrgType;
11
- this.prompt = descriptor.prompt;
10
+ this.authoringHints = descriptor.authoringHints;
12
11
  this.category = descriptor.category;
13
12
  this.snippet = descriptor.snippet;
14
13
  }
package/dist/rune.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"rune.js","sourceRoot":"","sources":["../src/rune.ts"],"names":[],"mappings":"AAsCA,MAAM,OAAO,IAAI;IAaf,YAAY,UAA0B;QACpC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QAChC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,IAAI,EAAE,CAAC;QAChD,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,IAAI,EAAE,CAAC;QAClD,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;QACpC,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC;QAC9C,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;QACpC,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;IACpC,CAAC;IAED,mEAAmE;IACnE,IAAI,KAAK;QACP,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;CACF;AAED,MAAM,UAAU,UAAU,CAAC,UAA0B;IACnD,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;AAC9B,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,UAAU,CAAC,KAA2B;IACpD,MAAM,IAAI,GAA2B,EAAE,CAAC;IACxC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACxC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"rune.js","sourceRoot":"","sources":["../src/rune.ts"],"names":[],"mappings":"AAuCA,MAAM,OAAO,IAAI;IAYf,YAAY,UAA0B;QACpC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QAChC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,IAAI,EAAE,CAAC;QAChD,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;QACpC,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC;QAC9C,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,cAAc,CAAC;QAChD,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;QACpC,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;IACpC,CAAC;IAED,mEAAmE;IACnE,IAAI,KAAK;QACP,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;CACF;AAED,MAAM,UAAU,UAAU,CAAC,UAA0B;IACnD,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;AAC9B,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,UAAU,CAAC,KAA2B;IACpD,MAAM,IAAI,GAA2B,EAAE,CAAC;IACxC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACxC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"budget.d.ts","sourceRoot":"","sources":["../../src/tags/budget.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AA8DvC,eAAO,MAAM,cAAc,gBAsBzB,CAAC;AAmDH,eAAO,MAAM,cAAc,gBAuCzB,CAAC;AAwCH,eAAO,MAAM,MAAM,gBA8EjB,CAAC"}
1
+ {"version":3,"file":"budget.d.ts","sourceRoot":"","sources":["../../src/tags/budget.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AA8DvC,eAAO,MAAM,cAAc,gBAsBzB,CAAC;AAmDH,eAAO,MAAM,cAAc,gBAuCzB,CAAC;AAwCH,eAAO,MAAM,MAAM,gBAwEjB,CAAC"}