@cairn-tool/cairn 3.6.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.
- package/dist/agent/conditionals.d.ts +39 -4
- package/dist/agent/conditionals.js +107 -18
- package/dist/agent/conditionals.js.map +1 -1
- package/dist/agent/import/normalize.js +34 -10
- package/dist/agent/import/normalize.js.map +1 -1
- package/dist/agent/naming.d.ts +24 -0
- package/dist/agent/naming.js +48 -0
- package/dist/agent/naming.js.map +1 -0
- package/dist/agent/parser.js +88 -12
- package/dist/agent/parser.js.map +1 -1
- package/dist/agent/render.d.ts +9 -4
- package/dist/agent/render.js +90 -29
- package/dist/agent/render.js.map +1 -1
- package/dist/agent/targets/antigravity.js +14 -2
- package/dist/agent/targets/antigravity.js.map +1 -1
- package/dist/agent/targets/claude-code.js +15 -2
- package/dist/agent/targets/claude-code.js.map +1 -1
- package/dist/agent/targets/codex.js +14 -2
- package/dist/agent/targets/codex.js.map +1 -1
- package/dist/agent/targets/cursor.js +14 -2
- package/dist/agent/targets/cursor.js.map +1 -1
- package/dist/agent/targets/opencode.js +14 -2
- package/dist/agent/targets/opencode.js.map +1 -1
- package/dist/agent/targets/schema.d.ts +37 -3
- package/dist/agent/targets/schema.js +40 -1
- package/dist/agent/targets/schema.js.map +1 -1
- package/dist/agent/types.d.ts +9 -0
- package/dist/agent/types.js +9 -0
- package/dist/agent/types.js.map +1 -1
- package/package.json +1 -1
package/dist/agent/parser.js
CHANGED
|
@@ -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 =
|
|
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`);
|
|
@@ -173,7 +173,7 @@ export function allFiles(directory) {
|
|
|
173
173
|
visit(root);
|
|
174
174
|
return result;
|
|
175
175
|
}
|
|
176
|
-
function loadMarkdownComponents(root, relative, kind, diagnostics, resourceRoots = []) {
|
|
176
|
+
function loadMarkdownComponents(root, relative, kind, diagnostics, resourceRoots = [], refs = []) {
|
|
177
177
|
const directory = relativeSafe(root, relative, `${kind} path`);
|
|
178
178
|
if (!fs.existsSync(directory))
|
|
179
179
|
return [];
|
|
@@ -220,7 +220,12 @@ function loadMarkdownComponents(root, relative, kind, diagnostics, resourceRoots
|
|
|
220
220
|
}),
|
|
221
221
|
severity: "error",
|
|
222
222
|
});
|
|
223
|
-
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 }));
|
|
224
229
|
const componentRoot = kind === "skill" ? path.dirname(full) : directory;
|
|
225
230
|
if (metadata.targets &&
|
|
226
231
|
typeof metadata.targets === "object" &&
|
|
@@ -589,8 +594,9 @@ export function loadBundle(source) {
|
|
|
589
594
|
severity: "error",
|
|
590
595
|
});
|
|
591
596
|
const extraResourceRoots = resolveResourceRoots(root, normalized.resourceRoots, legacy ? legacyPath : neutralPath, diagnostics);
|
|
592
|
-
const
|
|
593
|
-
const
|
|
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);
|
|
594
600
|
if (!legacy)
|
|
595
601
|
for (const component of [...skills, ...agents])
|
|
596
602
|
if (component.metadata.name === undefined)
|
|
@@ -601,7 +607,7 @@ export function loadBundle(source) {
|
|
|
601
607
|
}),
|
|
602
608
|
severity: "error",
|
|
603
609
|
});
|
|
604
|
-
const rawRules = loadMarkdownComponents(root, configuredPath(manifest, "rules", "rules"), "rule", diagnostics, extraResourceRoots);
|
|
610
|
+
const rawRules = loadMarkdownComponents(root, configuredPath(manifest, "rules", "rules"), "rule", diagnostics, extraResourceRoots, refs);
|
|
605
611
|
const rules = rawRules.map((rule) => ({
|
|
606
612
|
...rule,
|
|
607
613
|
activation: String(rule.metadata.activation ?? "always"),
|
|
@@ -620,9 +626,9 @@ export function loadBundle(source) {
|
|
|
620
626
|
const content = file.content;
|
|
621
627
|
if (content.includes(0))
|
|
622
628
|
continue;
|
|
623
|
-
validateConditionals(content.toString("utf8"), full, diagnostics, {
|
|
629
|
+
refs.push(...validateConditionals(content.toString("utf8"), full, diagnostics, {
|
|
624
630
|
markdown: file.path.endsWith(".md"),
|
|
625
|
-
});
|
|
631
|
+
}));
|
|
626
632
|
}
|
|
627
633
|
for (const rule of rules)
|
|
628
634
|
if (!["always", "files", "model", "manual"].includes(rule.activation))
|
|
@@ -654,11 +660,17 @@ export function loadBundle(source) {
|
|
|
654
660
|
const skillNames = new Set(skills.map((skill) => skill.name));
|
|
655
661
|
const graph = {};
|
|
656
662
|
for (const component of [...skills, ...agents]) {
|
|
657
|
-
const
|
|
663
|
+
const declared = Array.isArray(component.metadata.skills)
|
|
658
664
|
? component.metadata.skills.map(String)
|
|
659
665
|
: [];
|
|
660
|
-
|
|
661
|
-
for
|
|
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)
|
|
662
674
|
if (!skillNames.has(ref))
|
|
663
675
|
diagnostics.push({
|
|
664
676
|
...diagnostic("AB150", `Missing referenced skill '${ref}'`, "unsupported", {
|
|
@@ -679,6 +691,70 @@ export function loadBundle(source) {
|
|
|
679
691
|
const hookFiles = !legacy && hooks && fs.existsSync(hookDirectory)
|
|
680
692
|
? allFiles(hookDirectory).filter((file) => path.join(hookDirectory, file.path) !== hooks.path)
|
|
681
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
|
+
}
|
|
682
758
|
const legacyAssets = legacy
|
|
683
759
|
? allFiles(root).filter((file) => {
|
|
684
760
|
const normalized = file.path.split(path.sep).join("/");
|
package/dist/agent/parser.js.map
CHANGED
|
@@ -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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"}
|
package/dist/agent/render.d.ts
CHANGED
|
@@ -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
|
|
4
|
-
* seam the unit tests
|
|
5
|
-
* `./conditionals.js`, shared with the parser's validator so the
|
|
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.
|
package/dist/agent/render.js
CHANGED
|
@@ -2,6 +2,7 @@ import path from "node:path";
|
|
|
2
2
|
import { stringify as stringifyYaml } from "yaml";
|
|
3
3
|
import { diagnostic } from "./types.js";
|
|
4
4
|
import { applyConditionals } from "./conditionals.js";
|
|
5
|
+
import { emittedName, referenceIdentifier } from "./naming.js";
|
|
5
6
|
import { HOOK_EVENT_ALIASES, nativeHookEvent, profileFor } from "./targets/index.js";
|
|
6
7
|
import { applyOverlayManifest, mergeOverlay, overlayArtifacts } from "./overlays.js";
|
|
7
8
|
import { configuredPath } from "./manifest.js";
|
|
@@ -15,10 +16,13 @@ function yamlFrontmatter(metadata, body) {
|
|
|
15
16
|
: body;
|
|
16
17
|
}
|
|
17
18
|
/**
|
|
18
|
-
* Resolves target-conditional regions. Kept as a
|
|
19
|
-
* seam the unit tests
|
|
20
|
-
* `./conditionals.js`, shared with the parser's validator so the
|
|
21
|
-
* disagree about what a document means.
|
|
19
|
+
* Resolves target-conditional regions and inline component references. Kept as a
|
|
20
|
+
* named export because it is the seam the unit tests reach for; the grammar
|
|
21
|
+
* itself lives in `./conditionals.js`, shared with the parser's validator so the
|
|
22
|
+
* two cannot disagree about what a document means.
|
|
23
|
+
*
|
|
24
|
+
* Omitting `resolve` leaves reference markers verbatim, which is what a caller
|
|
25
|
+
* that only wants conditional regions resolved should get.
|
|
22
26
|
*/
|
|
23
27
|
export function processTargetBlocks(content, target, options = {}) {
|
|
24
28
|
return applyConditionals(content, target, options);
|
|
@@ -121,7 +125,7 @@ function rewritePlaceholders(content, target, kind, diagnostics, component, prof
|
|
|
121
125
|
}
|
|
122
126
|
return content;
|
|
123
127
|
}
|
|
124
|
-
function metadataFor(component, target) {
|
|
128
|
+
function metadataFor(component, target, kind = "other", context) {
|
|
125
129
|
const result = { ...component.metadata, ...targetOverride(component, target) };
|
|
126
130
|
for (const key of [
|
|
127
131
|
"targets",
|
|
@@ -154,20 +158,40 @@ function metadataFor(component, target) {
|
|
|
154
158
|
return mapping.path.split("/").pop() ?? mapping.path;
|
|
155
159
|
return entry;
|
|
156
160
|
});
|
|
161
|
+
if (context && kind !== "other" && typeof result.name === "string")
|
|
162
|
+
result.name = emittedName(kind, result.name, target, context.profile, context.bundleName);
|
|
163
|
+
// `description` and `argumentHint` are prose a host shows a person, so a
|
|
164
|
+
// reference in one has to resolve like a reference in the body. `name` never
|
|
165
|
+
// does -- it *is* the identity, so a reference there would be circular -- and
|
|
166
|
+
// neither does `skills`, which is the portable resolution mechanism `AB150`
|
|
167
|
+
// validates and Cursor's agent inlining consumes.
|
|
168
|
+
if (context?.resolve)
|
|
169
|
+
for (const key of ["description", "argumentHint", "argument-hint"]) {
|
|
170
|
+
const value = result[key];
|
|
171
|
+
if (typeof value === "string")
|
|
172
|
+
result[key] = applyConditionals(value, target, {
|
|
173
|
+
markdown: false,
|
|
174
|
+
resolve: context.resolve,
|
|
175
|
+
});
|
|
176
|
+
}
|
|
157
177
|
return result;
|
|
158
178
|
}
|
|
159
|
-
function transformMarkdown(component, target, diagnostics, kind = "other", profile = "plugin") {
|
|
179
|
+
function transformMarkdown(component, target, diagnostics, kind = "other", profile = "plugin", bundleName = "", resolve) {
|
|
160
180
|
const override = targetOverride(component, target);
|
|
161
181
|
const body = typeof override.instructions === "string" ? override.instructions : component.body;
|
|
162
|
-
return yamlFrontmatter(metadataFor(component, target
|
|
182
|
+
return yamlFrontmatter(metadataFor(component, target, kind === "skill" ? "skill" : "other", {
|
|
183
|
+
profile,
|
|
184
|
+
bundleName,
|
|
185
|
+
resolve,
|
|
186
|
+
}), rewritePlaceholders(processTargetBlocks(body, target, { resolve }), target, kind, diagnostics, component, profile));
|
|
163
187
|
}
|
|
164
|
-
function copyComponentFiles(component, base, target, diagnostics, artifacts, profile) {
|
|
188
|
+
function copyComponentFiles(component, base, target, diagnostics, artifacts, profile, resolve) {
|
|
165
189
|
for (const file of component.files) {
|
|
166
190
|
if (file.path === "SKILL.md")
|
|
167
191
|
continue;
|
|
168
192
|
const markdown = file.path.endsWith(".md");
|
|
169
193
|
const content = markdown
|
|
170
|
-
? Buffer.from(rewritePlaceholders(processTargetBlocks(file.content.toString("utf8"), target), target, "other", diagnostics, component, profile))
|
|
194
|
+
? Buffer.from(rewritePlaceholders(processTargetBlocks(file.content.toString("utf8"), target, { resolve }), target, "other", diagnostics, component, profile))
|
|
171
195
|
: file.content;
|
|
172
196
|
artifacts.push({
|
|
173
197
|
path: path.posix.join(base, file.path.split(path.sep).join("/")),
|
|
@@ -360,13 +384,11 @@ function mapTools(metadata, target, component, diagnostics, legacy) {
|
|
|
360
384
|
remediation: `Provide targets.${target}.tools; restrictions were not broadened silently.`,
|
|
361
385
|
}));
|
|
362
386
|
}
|
|
363
|
-
function renderSkill(bundle, component, target, profile, diagnostics, artifacts) {
|
|
387
|
+
function renderSkill(bundle, component, target, profile, diagnostics, artifacts, resolve) {
|
|
364
388
|
if (!selected(component, target))
|
|
365
389
|
return;
|
|
366
390
|
const targetProfile = profileFor(target);
|
|
367
|
-
const directory =
|
|
368
|
-
? `${bundle.name}-${component.name}`
|
|
369
|
-
: component.name;
|
|
391
|
+
const directory = emittedName("skill", component.name, target, profile, bundle.name);
|
|
370
392
|
const skillRoot = profile === "project" ? targetProfile.paths.project.skills : targetProfile.paths.plugin.skills;
|
|
371
393
|
const base = `${skillRoot}/${directory}`;
|
|
372
394
|
const invocation = String(component.metadata.invocationPolicy ?? component.metadata.invocation ?? "auto");
|
|
@@ -408,15 +430,19 @@ function renderSkill(bundle, component, target, profile, diagnostics, artifacts)
|
|
|
408
430
|
};
|
|
409
431
|
artifacts.push({
|
|
410
432
|
path: `${base}/SKILL.md`,
|
|
411
|
-
content: Buffer.from(transformMarkdown(renderedComponent, target, diagnostics, "skill", profile)),
|
|
433
|
+
content: Buffer.from(transformMarkdown(renderedComponent, target, diagnostics, "skill", profile, bundle.name, resolve)),
|
|
412
434
|
mode: 0o644,
|
|
413
435
|
});
|
|
414
|
-
copyComponentFiles(component, base, target, diagnostics, artifacts, profile);
|
|
436
|
+
copyComponentFiles(component, base, target, diagnostics, artifacts, profile, resolve);
|
|
415
437
|
}
|
|
416
|
-
function renderAgent(component, target, profile, bundle, diagnostics, artifacts) {
|
|
438
|
+
function renderAgent(component, target, profile, bundle, diagnostics, artifacts, resolve) {
|
|
417
439
|
if (!selected(component, target))
|
|
418
440
|
return;
|
|
419
|
-
const metadata = metadataFor(component, target
|
|
441
|
+
const metadata = metadataFor(component, target, "agent", {
|
|
442
|
+
profile,
|
|
443
|
+
bundleName: bundle.name,
|
|
444
|
+
resolve,
|
|
445
|
+
});
|
|
420
446
|
mapTools(metadata, target, component, diagnostics, bundle.legacy);
|
|
421
447
|
const model = mapModel(metadata.model ?? targetOverride(component, target).modelClass ?? component.metadata.modelClass, target, component, diagnostics);
|
|
422
448
|
const targetProfile = profileFor(target);
|
|
@@ -434,14 +460,14 @@ function renderAgent(component, target, profile, bundle, diagnostics, artifacts)
|
|
|
434
460
|
}
|
|
435
461
|
if (target === "codex") {
|
|
436
462
|
const lines = [
|
|
437
|
-
`name = ${JSON.stringify(component.name)}`,
|
|
463
|
+
`name = ${JSON.stringify(emittedName("agent", component.name, target, profile, bundle.name))}`,
|
|
438
464
|
`description = ${JSON.stringify(component.description)}`,
|
|
439
465
|
];
|
|
440
466
|
if (metadata.reasoning)
|
|
441
467
|
lines.push(`model_reasoning_effort = ${JSON.stringify(String(metadata.reasoning))}`);
|
|
442
|
-
lines.push(`developer_instructions = ${JSON.stringify(rewritePlaceholders(processTargetBlocks(component.body, target), target, "other", diagnostics, component, profile))}`);
|
|
468
|
+
lines.push(`developer_instructions = ${JSON.stringify(rewritePlaceholders(processTargetBlocks(component.body, target, { resolve }), target, "other", diagnostics, component, profile))}`);
|
|
443
469
|
artifacts.push({
|
|
444
|
-
path: `.codex/agents/${component.name}.toml`,
|
|
470
|
+
path: `.codex/agents/${emittedName("agent", component.name, target, profile, bundle.name)}.toml`,
|
|
445
471
|
content: Buffer.from(lines.join("\n") + "\n"),
|
|
446
472
|
mode: 0o644,
|
|
447
473
|
});
|
|
@@ -460,7 +486,7 @@ function renderAgent(component, target, profile, bundle, diagnostics, artifacts)
|
|
|
460
486
|
.map(String)
|
|
461
487
|
.map((name) => bundle.skills.find((skill) => skill.name === name))
|
|
462
488
|
.filter(Boolean)
|
|
463
|
-
.map((skill) => rewritePlaceholders(processTargetBlocks(skill.body, target), target, "skill", diagnostics, skill, profile).trim());
|
|
489
|
+
.map((skill) => rewritePlaceholders(processTargetBlocks(skill.body, target, { resolve }), target, "skill", diagnostics, skill, profile).trim());
|
|
464
490
|
delete outMetadata.skills;
|
|
465
491
|
component = {
|
|
466
492
|
...component,
|
|
@@ -469,12 +495,12 @@ function renderAgent(component, target, profile, bundle, diagnostics, artifacts)
|
|
|
469
495
|
}
|
|
470
496
|
const agentRoot = profile === "project" ? targetProfile.paths.project.agents : targetProfile.paths.plugin.agents;
|
|
471
497
|
artifacts.push({
|
|
472
|
-
path: `${agentRoot}/${component.name}.md`,
|
|
473
|
-
content: Buffer.from(yamlFrontmatter(outMetadata, rewritePlaceholders(processTargetBlocks(component.body, target), target, "other", diagnostics, component, profile))),
|
|
498
|
+
path: `${agentRoot}/${emittedName("agent", component.name, target, profile, bundle.name)}.md`,
|
|
499
|
+
content: Buffer.from(yamlFrontmatter(outMetadata, rewritePlaceholders(processTargetBlocks(component.body, target, { resolve }), target, "other", diagnostics, component, profile))),
|
|
474
500
|
mode: 0o644,
|
|
475
501
|
});
|
|
476
502
|
}
|
|
477
|
-
function renderRules(bundle, target, profile, diagnostics, artifacts) {
|
|
503
|
+
function renderRules(bundle, target, profile, diagnostics, artifacts, resolve) {
|
|
478
504
|
const targetProfile = profileFor(target);
|
|
479
505
|
for (const rule of bundle.rules) {
|
|
480
506
|
if (!selected(rule, target))
|
|
@@ -489,7 +515,7 @@ function renderRules(bundle, target, profile, diagnostics, artifacts) {
|
|
|
489
515
|
}));
|
|
490
516
|
continue;
|
|
491
517
|
}
|
|
492
|
-
const body = rewritePlaceholders(processTargetBlocks(rule.body, target), target, "other", diagnostics, rule, profile);
|
|
518
|
+
const body = rewritePlaceholders(processTargetBlocks(rule.body, target, { resolve }), target, "other", diagnostics, rule, profile);
|
|
493
519
|
if (!targetProfile.rules.exactActivation.includes(rule.activation))
|
|
494
520
|
diagnostics.push(diagnostic("AB351", `Rule activation '${rule.activation}' is not exact on ${target}`, targetProfile.rules.approximateActivation.includes(rule.activation)
|
|
495
521
|
? "approximate"
|
|
@@ -543,7 +569,7 @@ function renderRules(bundle, target, profile, diagnostics, artifacts) {
|
|
|
543
569
|
bundle.rules.length) {
|
|
544
570
|
const content = bundle.rules
|
|
545
571
|
.filter((rule) => selected(rule, target))
|
|
546
|
-
.map((rule) => `## ${rule.name}\n\n${rewritePlaceholders(processTargetBlocks(rule.body, target), target, "other", diagnostics, rule, profile).trim()}`)
|
|
572
|
+
.map((rule) => `## ${rule.name}\n\n${rewritePlaceholders(processTargetBlocks(rule.body, target, { resolve }), target, "other", diagnostics, rule, profile).trim()}`)
|
|
547
573
|
.join("\n\n");
|
|
548
574
|
artifacts.push({
|
|
549
575
|
path: String(targetProfile.paths.project.rules),
|
|
@@ -672,6 +698,39 @@ function renderPolicies(bundle, target, profile, diagnostics, artifacts) {
|
|
|
672
698
|
});
|
|
673
699
|
}
|
|
674
700
|
}
|
|
701
|
+
/**
|
|
702
|
+
* The reference resolver for one target and output profile.
|
|
703
|
+
*
|
|
704
|
+
* Lives here rather than in `naming.ts` because it reports `AB303`, and because
|
|
705
|
+
* `agent-targets` asserts that every code a profile declares appears in one of
|
|
706
|
+
* the three files that emit diagnostics.
|
|
707
|
+
*
|
|
708
|
+
* An unknown name returns the marker **verbatim** rather than a guess or an
|
|
709
|
+
* empty string: `AB156` has already failed the parse, so nothing is written, and
|
|
710
|
+
* if someone suppresses that error the leftover marker is visible instead of a
|
|
711
|
+
* silently missing name. A `command` reference resolves against the skills --
|
|
712
|
+
* there is no `commands` component kind; a command is a skill the model does not
|
|
713
|
+
* reach for.
|
|
714
|
+
*/
|
|
715
|
+
function refResolver(bundle, target, profile, diagnostics) {
|
|
716
|
+
const reported = new Set();
|
|
717
|
+
return (kind, name) => {
|
|
718
|
+
const pool = kind === "agent" ? bundle.agents : bundle.skills;
|
|
719
|
+
if (!pool.some((component) => component.name === name))
|
|
720
|
+
return `<!-- ref:${kind}:${name} -->`;
|
|
721
|
+
const { text, exact } = referenceIdentifier(kind, name, target, profile, bundle.name);
|
|
722
|
+
if (!exact && !reported.has(`${kind}:${name}`)) {
|
|
723
|
+
reported.add(`${kind}:${name}`);
|
|
724
|
+
diagnostics.push(diagnostic("AB303", `${target} has no ${kind} identifier; emitted the bare name`, "approximate", {
|
|
725
|
+
component: name,
|
|
726
|
+
target,
|
|
727
|
+
profile,
|
|
728
|
+
remediation: `Reference it in prose, or provide targets.${target} instructions, if the exact identifier matters.`,
|
|
729
|
+
}));
|
|
730
|
+
}
|
|
731
|
+
return text;
|
|
732
|
+
};
|
|
733
|
+
}
|
|
675
734
|
export function renderBundle(bundle, targets, profiles) {
|
|
676
735
|
const diagnostics = [...bundle.diagnostics];
|
|
677
736
|
const artifacts = [];
|
|
@@ -679,6 +738,7 @@ export function renderBundle(bundle, targets, profiles) {
|
|
|
679
738
|
for (const profile of profiles) {
|
|
680
739
|
const prefix = `${target}/${profile}`;
|
|
681
740
|
const local = [];
|
|
741
|
+
const resolve = refResolver(bundle, target, profile, diagnostics);
|
|
682
742
|
const overlay = bundle.overlays.find((item) => item.target === target);
|
|
683
743
|
if (profile === "plugin") {
|
|
684
744
|
const { directory: manifestDir, file: manifestFile } = profileFor(target).manifest;
|
|
@@ -691,10 +751,10 @@ export function renderBundle(bundle, targets, profiles) {
|
|
|
691
751
|
});
|
|
692
752
|
}
|
|
693
753
|
for (const skill of bundle.skills)
|
|
694
|
-
renderSkill(bundle, skill, target, profile, diagnostics, local);
|
|
754
|
+
renderSkill(bundle, skill, target, profile, diagnostics, local, resolve);
|
|
695
755
|
for (const agent of bundle.agents)
|
|
696
|
-
renderAgent(agent, target, profile, bundle, diagnostics, local);
|
|
697
|
-
renderRules(bundle, target, profile, diagnostics, local);
|
|
756
|
+
renderAgent(agent, target, profile, bundle, diagnostics, local, resolve);
|
|
757
|
+
renderRules(bundle, target, profile, diagnostics, local, resolve);
|
|
698
758
|
renderPolicies(bundle, target, profile, diagnostics, local);
|
|
699
759
|
if (bundle.hooks && profileFor(target).features.hooks.profiles.includes(profile)) {
|
|
700
760
|
const hookRoots = profileFor(target).paths.plugin;
|
|
@@ -754,6 +814,7 @@ export function renderBundle(bundle, targets, profiles) {
|
|
|
754
814
|
content: textual
|
|
755
815
|
? Buffer.from(rewritePlaceholders(processTargetBlocks(asset.content.toString("utf8"), target, {
|
|
756
816
|
markdown: /\.md$/i.test(asset.path),
|
|
817
|
+
resolve,
|
|
757
818
|
}), target, "other", diagnostics, undefined, profile))
|
|
758
819
|
: asset.content,
|
|
759
820
|
path: bundle.legacy ? posix(asset.path) : `assets/${posix(asset.path)}`,
|