MCPcopy Create free account
hub / github.com/garrytan/gstack / readOverlay

Function readOverlay

scripts/resolvers/model-overlay.ts:27–44  ·  view source on GitHub ↗
(model: string, seen: Set<string> = new Set())

Source from the content-addressed store, hash-verified

25const INHERIT_RE = /^\s*\{\{INHERIT:([a-z0-9-]+(?:\.[0-9]+)*)\}\}\s*\n/;
26
27export function readOverlay(model: string, seen: Set<string> = new Set()): string {
28 if (seen.has(model)) return ''; // cycle guard
29 seen.add(model);
30
31 const filePath = path.join(OVERLAY_DIR, `${model}.md`);
32 if (!fs.existsSync(filePath)) return '';
33
34 const raw = fs.readFileSync(filePath, 'utf-8');
35 const match = raw.match(INHERIT_RE);
36 if (!match) return raw.trim();
37
38 const baseModel = match[1];
39 const base = readOverlay(baseModel, seen);
40 const rest = raw.replace(INHERIT_RE, '').trim();
41
42 if (!base) return rest;
43 return `${base}\n\n${rest}`;
44}
45
46export function generateModelOverlay(ctx: TemplateContext): string {
47 if (!ctx.model) return '';

Callers 3

overlayContentForFunction · 0.90
mainFunction · 0.90
generateModelOverlayFunction · 0.85

Calls

no outgoing calls

Tested by 1

overlayContentForFunction · 0.72