@cairn-tool/cairn 3.5.0 → 4.0.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,24 @@
1
+ import type { AgentProfile, AgentTarget } from "./types.js";
2
+ import type { ReferenceKind } from "./targets/schema.js";
3
+ /** What a component is called in the rendered tree — its path and its `name:`. */
4
+ export declare function emittedName(kind: "skill" | "agent", name: string, target: AgentTarget, profile: AgentProfile, bundleName: string): string;
5
+ /**
6
+ * The exact inverse of {@link emittedName}.
7
+ *
8
+ * Removes **one** occurrence, never a repeated one: a skill legitimately named
9
+ * `cr-review` in a bundle named `cr` renders as `cr-cr-review`, and stripping
10
+ * greedily would import it as `review`. A remainder that is empty or is not a
11
+ * component name means the text was never this prefix, so it is left alone.
12
+ */
13
+ export declare function stripEmittedPrefix(kind: "skill" | "agent", name: string, target: AgentTarget, profile: AgentProfile, bundleName: string): string;
14
+ /**
15
+ * What another document writes to name this component on this host.
16
+ *
17
+ * `exact: false` says the host has no such surface and the bare name was used.
18
+ * The caller turns that into `AB303`; returning a boolean rather than pushing a
19
+ * diagnostic is what keeps this module free of the diagnostic vocabulary.
20
+ */
21
+ export declare function referenceIdentifier(kind: ReferenceKind, name: string, target: AgentTarget, profile: AgentProfile, bundleName: string): {
22
+ text: string;
23
+ exact: boolean;
24
+ };
@@ -0,0 +1,48 @@
1
+ import { profileFor } from "./targets/index.js";
2
+ const PLURAL = { skill: "skills", agent: "agents" };
3
+ function prefixFor(kind, target, profile, bundleName) {
4
+ const { namespace } = profileFor(target).naming;
5
+ if (!namespace.prefixed[PLURAL[kind]].includes(profile))
6
+ return "";
7
+ return `${bundleName}${namespace.separator}`;
8
+ }
9
+ /** What a component is called in the rendered tree — its path and its `name:`. */
10
+ export function emittedName(kind, name, target, profile, bundleName) {
11
+ return `${prefixFor(kind, target, profile, bundleName)}${name}`;
12
+ }
13
+ /**
14
+ * The exact inverse of {@link emittedName}.
15
+ *
16
+ * Removes **one** occurrence, never a repeated one: a skill legitimately named
17
+ * `cr-review` in a bundle named `cr` renders as `cr-cr-review`, and stripping
18
+ * greedily would import it as `review`. A remainder that is empty or is not a
19
+ * component name means the text was never this prefix, so it is left alone.
20
+ */
21
+ export function stripEmittedPrefix(kind, name, target, profile, bundleName) {
22
+ const prefix = prefixFor(kind, target, profile, bundleName);
23
+ if (!prefix || !name.startsWith(prefix))
24
+ return name;
25
+ const remainder = name.slice(prefix.length);
26
+ return remainder.length ? remainder : name;
27
+ }
28
+ /**
29
+ * What another document writes to name this component on this host.
30
+ *
31
+ * `exact: false` says the host has no such surface and the bare name was used.
32
+ * The caller turns that into `AB303`; returning a boolean rather than pushing a
33
+ * diagnostic is what keeps this module free of the diagnostic vocabulary.
34
+ */
35
+ export function referenceIdentifier(kind, name, target, profile, bundleName) {
36
+ const { namespace, references } = profileFor(target).naming;
37
+ const form = references.forms[kind]?.[profile];
38
+ if (!form)
39
+ return { text: name, exact: false };
40
+ return {
41
+ text: form
42
+ .replace(/\{bundle\}/g, bundleName)
43
+ .replace(/\{separator\}/g, namespace.separator)
44
+ .replace(/\{name\}/g, name),
45
+ exact: true,
46
+ };
47
+ }
48
+ //# sourceMappingURL=naming.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"naming.js","sourceRoot":"","sources":["../../src/agent/naming.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAqBhD,MAAM,MAAM,GAA8C,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAE/F,SAAS,SAAS,CAChB,IAAuB,EACvB,MAAmB,EACnB,OAAqB,EACrB,UAAkB;IAElB,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IAChD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IACnE,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;AAC/C,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,WAAW,CACzB,IAAuB,EACvB,IAAY,EACZ,MAAmB,EACnB,OAAqB,EACrB,UAAkB;IAElB,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,GAAG,IAAI,EAAE,CAAC;AAClE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAuB,EACvB,IAAY,EACZ,MAAmB,EACnB,OAAqB,EACrB,UAAkB;IAElB,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IAC5D,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACrD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5C,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CACjC,IAAmB,EACnB,IAAY,EACZ,MAAmB,EACnB,OAAqB,EACrB,UAAkB;IAElB,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IAC5D,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IAC/C,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC/C,OAAO;QACL,IAAI,EAAE,IAAI;aACP,OAAO,CAAC,aAAa,EAAE,UAAU,CAAC;aAClC,OAAO,CAAC,gBAAgB,EAAE,SAAS,CAAC,SAAS,CAAC;aAC9C,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC;QAC7B,KAAK,EAAE,IAAI;KACZ,CAAC;AACJ,CAAC"}
@@ -1,11 +1,11 @@
1
1
  import fs from "node:fs";
2
2
  import path from "node:path";
3
3
  import { parse as parseYaml } from "yaml";
4
- import { diagnostic, TARGETS } from "./types.js";
4
+ import { COMPONENT_NAME, diagnostic, TARGETS } from "./types.js";
5
5
  import { CONDITIONAL_TEXT, validateConditionals } from "./conditionals.js";
6
6
  import { configuredPath, normalizeManifest } from "./manifest.js";
7
7
  import { loadOverlays } from "./overlays.js";
8
- const NAME = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
8
+ const NAME = COMPONENT_NAME;
9
9
  function record(value, label) {
10
10
  if (!value || typeof value !== "object" || Array.isArray(value))
11
11
  throw new Error(`${label} must be an object`);
@@ -51,6 +51,88 @@ function relativeSafe(root, candidate, label) {
51
51
  throw new Error(`${label} resolves through a symlink outside the bundle: ${candidate}`);
52
52
  return resolved;
53
53
  }
54
+ /**
55
+ * Whether `resolved` sits inside `root`, both lexically and after resolving
56
+ * symlinks. Same two checks as `relativeSafe`, reported rather than thrown,
57
+ * because a resource may legitimately sit outside its component and the caller
58
+ * has several roots to try before it knows anything is wrong.
59
+ */
60
+ function within(root, resolved) {
61
+ const relative = path.relative(root, resolved);
62
+ if (relative.startsWith("..") || path.isAbsolute(relative))
63
+ return "outside";
64
+ if (!fs.existsSync(root))
65
+ return "outside";
66
+ let existing = resolved;
67
+ while (!fs.existsSync(existing) && existing !== path.dirname(existing))
68
+ existing = path.dirname(existing);
69
+ const real = path.resolve(fs.realpathSync(existing), path.relative(existing, resolved));
70
+ const realRelative = path.relative(fs.realpathSync(root), real);
71
+ return realRelative.startsWith("..") || path.isAbsolute(realRelative)
72
+ ? "symlink-escape"
73
+ : "inside";
74
+ }
75
+ /**
76
+ * Absolute paths of the extra resource roots a bundle declared, dropping any
77
+ * that does not exist. A declared root that is missing is an error rather than
78
+ * a silent no-op: it means every resource meant to live under it will be
79
+ * reported as escaping, and the root is the actual mistake.
80
+ */
81
+ function resolveResourceRoots(bundleRoot, declared, manifestPath, diagnostics) {
82
+ const roots = [];
83
+ for (const entry of declared) {
84
+ const resolved = path.resolve(bundleRoot, entry);
85
+ if (!fs.existsSync(resolved)) {
86
+ diagnostics.push({
87
+ ...diagnostic("AB155", `Declared resourceRoot '${entry}' does not exist`, "unsupported", {
88
+ path: manifestPath,
89
+ remediation: "Create the directory or remove it from resourceRoots.",
90
+ }),
91
+ severity: "error",
92
+ });
93
+ continue;
94
+ }
95
+ if (!fs.statSync(resolved).isDirectory()) {
96
+ diagnostics.push({
97
+ ...diagnostic("AB155", `Declared resourceRoot '${entry}' is not a directory`, "unsupported", {
98
+ path: manifestPath,
99
+ }),
100
+ severity: "error",
101
+ });
102
+ continue;
103
+ }
104
+ roots.push(resolved);
105
+ }
106
+ return roots;
107
+ }
108
+ /**
109
+ * A resource's landing path inside its component, normalized to POSIX, or null
110
+ * if it could escape. Enforced at the output boundary rather than inferred from
111
+ * the filesystem, the same rule native overlay paths follow.
112
+ */
113
+ function safeLanding(candidate) {
114
+ const normalized = candidate.split(path.sep).join("/");
115
+ if (!normalized || normalized.startsWith("/") || /^[A-Za-z]:/.test(normalized))
116
+ return null;
117
+ if (normalized.includes("\\"))
118
+ return null;
119
+ if (normalized.split("/").some((segment) => segment === ".." || segment === "." || !segment))
120
+ return null;
121
+ return normalized;
122
+ }
123
+ function parseResourceEntry(raw) {
124
+ if (typeof raw === "string") {
125
+ const declared = raw.trim();
126
+ return declared ? { declared, as: "" } : undefined;
127
+ }
128
+ if (!raw || typeof raw !== "object" || Array.isArray(raw))
129
+ return undefined;
130
+ const entry = raw;
131
+ if (typeof entry.path !== "string" || !entry.path.trim())
132
+ return undefined;
133
+ const as = typeof entry.as === "string" ? entry.as.trim() : "";
134
+ return { declared: entry.path.trim(), as };
135
+ }
54
136
  /**
55
137
  * Every file under `directory`, with root-relative paths in the platform's
56
138
  * separator. Refuses a symlink that resolves outside `directory`, which is why
@@ -91,7 +173,7 @@ export function allFiles(directory) {
91
173
  visit(root);
92
174
  return result;
93
175
  }
94
- function loadMarkdownComponents(root, relative, kind, diagnostics) {
176
+ function loadMarkdownComponents(root, relative, kind, diagnostics, resourceRoots = [], refs = []) {
95
177
  const directory = relativeSafe(root, relative, `${kind} path`);
96
178
  if (!fs.existsSync(directory))
97
179
  return [];
@@ -138,7 +220,12 @@ function loadMarkdownComponents(root, relative, kind, diagnostics) {
138
220
  }),
139
221
  severity: "error",
140
222
  });
141
- validateConditionals(body, full, diagnostics);
223
+ refs.push(...validateConditionals(body, full, diagnostics));
224
+ // `description` and `argumentHint` are resolved by the renderer too, so a
225
+ // reference in one has to be validated like a reference in the body.
226
+ for (const key of ["description", "argumentHint", "argument-hint"])
227
+ if (typeof metadata[key] === "string")
228
+ refs.push(...validateConditionals(metadata[key], full, diagnostics, { markdown: false }));
142
229
  const componentRoot = kind === "skill" ? path.dirname(full) : directory;
143
230
  if (metadata.targets &&
144
231
  typeof metadata.targets === "object" &&
@@ -193,14 +280,17 @@ function loadMarkdownComponents(root, relative, kind, diagnostics) {
193
280
  }),
194
281
  severity: "error",
195
282
  });
196
- for (const field of ["resources", "scripts"]) {
197
- const references = Array.isArray(metadata[field]) ? metadata[field] : [];
283
+ // `scripts:` stays strictly component-local. Widening it would let a bundle
284
+ // declare an executable from outside its own tree, which is a supply-chain
285
+ // question rather than a documentation-sharing one.
286
+ {
287
+ const references = Array.isArray(metadata.scripts) ? metadata.scripts : [];
198
288
  for (const reference of references.map(String)) {
199
289
  try {
200
- const resolved = relativeSafe(componentRoot, reference, `${kind} ${field} reference`);
290
+ const resolved = relativeSafe(componentRoot, reference, `${kind} scripts reference`);
201
291
  if (!fs.existsSync(resolved))
202
292
  diagnostics.push({
203
- ...diagnostic("AB151", `Missing ${field} reference '${reference}'`, "unsupported", {
293
+ ...diagnostic("AB151", `Missing scripts reference '${reference}'`, "unsupported", {
204
294
  component: name,
205
295
  path: full,
206
296
  }),
@@ -218,7 +308,120 @@ function loadMarkdownComponents(root, relative, kind, diagnostics) {
218
308
  }
219
309
  }
220
310
  }
221
- return { name, description, path: full, metadata, body, files: allFiles(componentRoot) };
311
+ // A `resources:` entry may sit outside its own component -- elsewhere in the
312
+ // bundle, or under a declared resourceRoot -- so that one reference document
313
+ // can serve several skills, or several bundles. Anything resolving outside
314
+ // the component is *copied into* it under its landing path, because
315
+ // `${SKILL_DIR}` is the only per-skill placeholder and it collapses to a
316
+ // bare relative path off Claude Code: there is no way to point at a sibling
317
+ // skill's rendered directory. Materializing keeps the rendered plugin
318
+ // self-contained.
319
+ const materialized = [];
320
+ const landings = new Map();
321
+ if (metadata.resources !== undefined && !Array.isArray(metadata.resources))
322
+ diagnostics.push({
323
+ ...diagnostic("AB110", "resources must be an array", "unsupported", {
324
+ component: name,
325
+ path: full,
326
+ }),
327
+ severity: "error",
328
+ });
329
+ for (const raw of Array.isArray(metadata.resources) ? metadata.resources : []) {
330
+ const entry = parseResourceEntry(raw);
331
+ if (!entry) {
332
+ diagnostics.push({
333
+ ...diagnostic("AB152", "Each resources entry must be a path or { path, as }", "unsupported", { component: name, path: full }),
334
+ severity: "error",
335
+ });
336
+ continue;
337
+ }
338
+ const resolved = path.resolve(componentRoot, entry.declared);
339
+ const componentPlacement = within(componentRoot, resolved);
340
+ if (componentPlacement === "symlink-escape") {
341
+ diagnostics.push({
342
+ ...diagnostic("AB152", `${kind} resources reference resolves through a symlink outside the component: ${entry.declared}`, "unsupported", { component: name, path: full }),
343
+ severity: "error",
344
+ });
345
+ continue;
346
+ }
347
+ if (componentPlacement === "inside") {
348
+ // Already travels with the component directory; nothing to materialize.
349
+ if (!fs.existsSync(resolved))
350
+ diagnostics.push({
351
+ ...diagnostic("AB151", `Missing resources reference '${entry.declared}'`, "unsupported", { component: name, path: full }),
352
+ severity: "error",
353
+ });
354
+ continue;
355
+ }
356
+ const roots = [root, ...resourceRoots];
357
+ const host = roots.find((candidate) => within(candidate, resolved) === "inside");
358
+ if (!host) {
359
+ const escaped = roots.some((candidate) => within(candidate, resolved) === "symlink-escape");
360
+ diagnostics.push({
361
+ ...diagnostic(escaped ? "AB152" : "AB153", escaped
362
+ ? `${kind} resources reference resolves through a symlink outside the bundle: ${entry.declared}`
363
+ : `Resource '${entry.declared}' resolves outside the bundle and no declared resourceRoot covers it`, "unsupported", {
364
+ component: name,
365
+ path: full,
366
+ remediation: escaped
367
+ ? undefined
368
+ : "Add its directory to resourceRoots in agent-bundle.yaml.",
369
+ }),
370
+ severity: "error",
371
+ });
372
+ continue;
373
+ }
374
+ if (!fs.existsSync(resolved) || !fs.statSync(resolved).isFile()) {
375
+ diagnostics.push({
376
+ ...diagnostic("AB151", `Missing resources reference '${entry.declared}'`, "unsupported", {
377
+ component: name,
378
+ path: full,
379
+ }),
380
+ severity: "error",
381
+ });
382
+ continue;
383
+ }
384
+ const landing = entry.as || path.basename(resolved);
385
+ const safe = safeLanding(landing);
386
+ if (!safe) {
387
+ diagnostics.push({
388
+ ...diagnostic("AB152", `Resource landing path '${landing}' must be a relative path inside the component`, "unsupported", { component: name, path: full }),
389
+ severity: "error",
390
+ });
391
+ continue;
392
+ }
393
+ const prior = landings.get(safe);
394
+ if (prior !== undefined) {
395
+ diagnostics.push({
396
+ ...diagnostic("AB154", `Resources '${prior}' and '${entry.declared}' both land at '${safe}'`, "unsupported", { component: name, path: full, remediation: "Give one of them a distinct 'as' path." }),
397
+ severity: "error",
398
+ });
399
+ continue;
400
+ }
401
+ landings.set(safe, entry.declared);
402
+ materialized.push({
403
+ path: safe.split("/").join(path.sep),
404
+ content: fs.readFileSync(resolved),
405
+ mode: fs.statSync(resolved).mode & 0o777,
406
+ });
407
+ }
408
+ const own = allFiles(componentRoot);
409
+ for (const file of materialized) {
410
+ const clash = own.find((candidate) => candidate.path === file.path);
411
+ if (clash)
412
+ diagnostics.push({
413
+ ...diagnostic("AB154", `Resource lands at '${file.path.split(path.sep).join("/")}', which the component already contains`, "unsupported", { component: name, path: full, remediation: "Give it a distinct 'as' path." }),
414
+ severity: "error",
415
+ });
416
+ }
417
+ return {
418
+ name,
419
+ description,
420
+ path: full,
421
+ metadata,
422
+ body,
423
+ files: [...own, ...materialized.filter((file) => !own.some((o) => o.path === file.path))],
424
+ };
222
425
  });
223
426
  }
224
427
  function findStructured(root, relative) {
@@ -390,8 +593,10 @@ export function loadBundle(source) {
390
593
  }),
391
594
  severity: "error",
392
595
  });
393
- const skills = loadMarkdownComponents(root, configuredPath(manifest, "skills", "skills"), "skill", diagnostics);
394
- const agents = loadMarkdownComponents(root, configuredPath(manifest, "agents", "agents"), "agent", diagnostics);
596
+ const extraResourceRoots = resolveResourceRoots(root, normalized.resourceRoots, legacy ? legacyPath : neutralPath, diagnostics);
597
+ const refs = [];
598
+ const skills = loadMarkdownComponents(root, configuredPath(manifest, "skills", "skills"), "skill", diagnostics, extraResourceRoots, refs);
599
+ const agents = loadMarkdownComponents(root, configuredPath(manifest, "agents", "agents"), "agent", diagnostics, extraResourceRoots, refs);
395
600
  if (!legacy)
396
601
  for (const component of [...skills, ...agents])
397
602
  if (component.metadata.name === undefined)
@@ -402,7 +607,7 @@ export function loadBundle(source) {
402
607
  }),
403
608
  severity: "error",
404
609
  });
405
- const rawRules = loadMarkdownComponents(root, configuredPath(manifest, "rules", "rules"), "rule", diagnostics);
610
+ const rawRules = loadMarkdownComponents(root, configuredPath(manifest, "rules", "rules"), "rule", diagnostics, extraResourceRoots, refs);
406
611
  const rules = rawRules.map((rule) => ({
407
612
  ...rule,
408
613
  activation: String(rule.metadata.activation ?? "always"),
@@ -421,9 +626,9 @@ export function loadBundle(source) {
421
626
  const content = file.content;
422
627
  if (content.includes(0))
423
628
  continue;
424
- validateConditionals(content.toString("utf8"), full, diagnostics, {
629
+ refs.push(...validateConditionals(content.toString("utf8"), full, diagnostics, {
425
630
  markdown: file.path.endsWith(".md"),
426
- });
631
+ }));
427
632
  }
428
633
  for (const rule of rules)
429
634
  if (!["always", "files", "model", "manual"].includes(rule.activation))
@@ -455,11 +660,17 @@ export function loadBundle(source) {
455
660
  const skillNames = new Set(skills.map((skill) => skill.name));
456
661
  const graph = {};
457
662
  for (const component of [...skills, ...agents]) {
458
- const refs = Array.isArray(component.metadata.skills)
663
+ const declared = Array.isArray(component.metadata.skills)
459
664
  ? component.metadata.skills.map(String)
460
665
  : [];
461
- graph[component.name] = refs;
462
- for (const ref of refs)
666
+ // Only the frontmatter list feeds the cycle check. An inline reference is
667
+ // prose -- "for more, see X" -- and two documents pointing at each other for
668
+ // further reading is normal rather than a cycle: this project's own
669
+ // `portability-triage` and `target-portability` skills do exactly that.
670
+ // `skills:` is different because it composes content, which is the thing a
671
+ // cycle actually breaks.
672
+ graph[component.name] = declared;
673
+ for (const ref of declared)
463
674
  if (!skillNames.has(ref))
464
675
  diagnostics.push({
465
676
  ...diagnostic("AB150", `Missing referenced skill '${ref}'`, "unsupported", {
@@ -480,6 +691,70 @@ export function loadBundle(source) {
480
691
  const hookFiles = !legacy && hooks && fs.existsSync(hookDirectory)
481
692
  ? allFiles(hookDirectory).filter((file) => path.join(hookDirectory, file.path) !== hooks.path)
482
693
  : [];
694
+ // Inline references, resolved against the components that now exist. This is
695
+ // the `AB150` job for the reference family, and it has to happen here rather
696
+ // than in `validateConditionals`, which runs before any component list does.
697
+ const agentNames = new Set(agents.map((agent) => agent.name));
698
+ const explicitSkills = new Set(skills
699
+ .filter((skill) => ["explicit", "manual"].includes(String(skill.metadata.invocationPolicy ?? skill.metadata.invocation ?? "auto")))
700
+ .map((skill) => skill.name));
701
+ const componentRoots = [
702
+ ...skills.map((skill) => path.dirname(skill.path)),
703
+ ...agents.map((agent) => path.dirname(agent.path)),
704
+ ...rules.map((rule) => path.dirname(rule.path)),
705
+ ];
706
+ const under = (file, directory) => file === directory || file.startsWith(`${directory}${path.sep}`);
707
+ /**
708
+ * Whether the renderer actually expands references in this file.
709
+ *
710
+ * Validation is deliberately wider than expansion — a broken marker in a hook
711
+ * script used to be mangled silently — so a reference somewhere the renderer
712
+ * copies verbatim would otherwise ship as a literal comment. Widening what the
713
+ * renderer transforms instead would change rendered bytes for every existing
714
+ * bundle, so it is reported rather than fixed.
715
+ */
716
+ const expanded = (file) => {
717
+ if (primaryMarkdown.has(file))
718
+ return true;
719
+ if (hooks && file === hooks.path)
720
+ return false;
721
+ if (hookFiles.length && under(file, hookDirectory))
722
+ return false;
723
+ if (under(file, assetsDir))
724
+ return true;
725
+ return file.endsWith(".md") && componentRoots.some((directory) => under(file, directory));
726
+ };
727
+ for (const use of refs) {
728
+ const pool = use.kind === "agent" ? agentNames : skillNames;
729
+ if (!pool.has(use.name)) {
730
+ diagnostics.push({
731
+ ...diagnostic("AB156", `Missing referenced ${use.kind === "agent" ? "agent" : "skill"} '${use.name}' on line ${use.line}`, "unsupported", {
732
+ path: use.file,
733
+ remediation: use.kind === "command"
734
+ ? "A command reference names a skill. Add the skill or correct the reference."
735
+ : "Add the component or correct the reference.",
736
+ }),
737
+ severity: "error",
738
+ });
739
+ continue;
740
+ }
741
+ if (use.kind === "command" && !explicitSkills.has(use.name))
742
+ diagnostics.push({
743
+ ...diagnostic("AB161", `Command reference '${use.name}' on line ${use.line} names a skill the model may invoke on its own`, "approximate", {
744
+ path: use.file,
745
+ remediation: `Set invocationPolicy: explicit on '${use.name}', or reference it with ref:skill instead.`,
746
+ }),
747
+ severity: "warning",
748
+ });
749
+ if (!expanded(use.file))
750
+ diagnostics.push({
751
+ ...diagnostic("AB157", `Reference to '${use.name}' on line ${use.line} is in a file the renderer does not expand`, "unsupported", {
752
+ path: use.file,
753
+ remediation: "Move the reference into a component body, a Markdown resource, or an asset; elsewhere it ships as a literal comment.",
754
+ }),
755
+ severity: "warning",
756
+ });
757
+ }
483
758
  const legacyAssets = legacy
484
759
  ? allFiles(root).filter((file) => {
485
760
  const normalized = file.path.split(path.sep).join("/");
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/agent/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/agent/parser.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,17 @@
1
1
  import type { AgentBundle, AgentDiagnostic, AgentProfile, AgentTarget, Artifact, MarkdownComponent } from "./types.js";
2
+ import type { RefResolver } from "./conditionals.js";
2
3
  /**
3
- * Resolves target-conditional regions. Kept as a named export because it is the
4
- * seam the unit tests and `agent inspect` reach for; the grammar itself lives in
5
- * `./conditionals.js`, shared with the parser's validator so the two cannot
6
- * disagree about what a document means.
4
+ * Resolves target-conditional regions and inline component references. Kept as a
5
+ * named export because it is the seam the unit tests reach for; the grammar
6
+ * itself lives in `./conditionals.js`, shared with the parser's validator so the
7
+ * two cannot disagree about what a document means.
8
+ *
9
+ * Omitting `resolve` leaves reference markers verbatim, which is what a caller
10
+ * that only wants conditional regions resolved should get.
7
11
  */
8
12
  export declare function processTargetBlocks(content: string, target: AgentTarget, options?: {
9
13
  markdown?: boolean;
14
+ resolve?: RefResolver;
10
15
  }): string;
11
16
  /**
12
17
  * Whether a component reaches a target at all.