craftar 0.34.2 → 0.36.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.
Files changed (42) hide show
  1. package/README.md +31 -5
  2. package/dist/cli.js +133 -79
  3. package/dist/cli.js.map +1 -1
  4. package/dist/core/capabilities.js +2 -2
  5. package/dist/core/capabilities.js.map +1 -1
  6. package/dist/core/doctor.js +74 -1
  7. package/dist/core/doctor.js.map +1 -1
  8. package/dist/core/drift.js +10 -4
  9. package/dist/core/drift.js.map +1 -1
  10. package/dist/core/extract.js +2 -2
  11. package/dist/core/extract.js.map +1 -1
  12. package/dist/core/mcp-protocol.js +135 -18
  13. package/dist/core/mcp-protocol.js.map +1 -1
  14. package/dist/core/registry.js +61 -0
  15. package/dist/core/registry.js.map +1 -1
  16. package/dist/core/report.js +24 -1
  17. package/dist/core/report.js.map +1 -1
  18. package/dist/core/resolve.js +29 -0
  19. package/dist/core/resolve.js.map +1 -1
  20. package/dist/core/sync.js +157 -4
  21. package/dist/core/sync.js.map +1 -1
  22. package/dist/core/template-import.js +16 -3
  23. package/dist/core/template-import.js.map +1 -1
  24. package/dist/core/write-actions.js +197 -0
  25. package/dist/core/write-actions.js.map +1 -0
  26. package/dist/emitters/agents-md.js +26 -3
  27. package/dist/emitters/agents-md.js.map +1 -1
  28. package/dist/emitters/claude-code.js +175 -20
  29. package/dist/emitters/claude-code.js.map +1 -1
  30. package/dist/emitters/kiro.js +111 -26
  31. package/dist/emitters/kiro.js.map +1 -1
  32. package/dist/emitters/shared.js +135 -57
  33. package/dist/emitters/shared.js.map +1 -1
  34. package/dist/importers/claude-code.js +75 -7
  35. package/dist/importers/claude-code.js.map +1 -1
  36. package/dist/importers/decide.js +22 -4
  37. package/dist/importers/decide.js.map +1 -1
  38. package/dist/importers/drift-promote.js +9 -3
  39. package/dist/importers/drift-promote.js.map +1 -1
  40. package/dist/schema/index.js +24 -1
  41. package/dist/schema/index.js.map +1 -1
  42. package/package.json +1 -1
@@ -4,6 +4,18 @@ import { rendersServers, renderServer, credentialIn, credentialMessage, entropyM
4
4
  export function appliesTo(targets, target) {
5
5
  return targets === "*" || targets.includes(target);
6
6
  }
7
+ /**
8
+ * The targets an ingredient is aimed at in this workspace (spec 41 §4.3): its declared `targets`, except, under
9
+ * agents-md.primary, an always-on rule with the default targets, which is aimed at agents-md alone. The one
10
+ * answer to "is this rule AGENTS.md-only"; returns `meta.targets` itself when the mode is off.
11
+ */
12
+ export function effectiveTargets(meta, resolution) {
13
+ return agentsMdOnly(meta, resolution) ? ["agents-md"] : meta.targets;
14
+ }
15
+ /** Under agents-md.primary, an always-on rule with the default targets: written to AGENTS.md alone (spec 41 §4.2). */
16
+ export function agentsMdOnly(meta, resolution) {
17
+ return resolution.primary && meta.type === "rule" && meta.inclusion === "always" && meta.targets === "*";
18
+ }
7
19
  /** The characters of a rule name in a `.claude/rules/<name>.md` reference (spec 15 §4.1). */
8
20
  export const RULE_NAME_CHARS = "A-Za-z0-9._-";
9
21
  /** Token pattern for rule references: `.claude/rules/<name>.md` with left boundary (spec 15 §4.1). */
@@ -21,82 +33,148 @@ export function ruleWriter(targets, ruleTargets) {
21
33
  }
22
34
  /** The kind string for an unknown name (no rule or steering with that name). */
23
35
  export const UNKNOWN_NAME_KIND = "";
36
+ /**
37
+ * Format the "dead references" part of a warning (spec 17 §4.5, spec 41 §4.4): references to rules
38
+ * that exist but reach no target. Used by both kiro.ts and claude-code.ts emitters.
39
+ */
40
+ export function formatDeadRefs(dead) {
41
+ const entries = dead.map((e) => `${e.ref} (in ${e.citing}; ${e.kind})`).join(", ");
42
+ return `${dead.length} reference(s) to rule files this workspace does not have — reworded: ${entries}`;
43
+ }
44
+ /**
45
+ * Format the "scanned files" part of a warning (spec 41 §4.4): references left as written in
46
+ * files craftar copies. Used by both claude-code.ts and kiro.ts emitters.
47
+ */
48
+ export function formatScannedRefs(hits) {
49
+ const entries = hits.map((h) => `${h.path}:${h.line} (${h.name})`).join(", ");
50
+ return `${hits.length} reference(s) left as written in files craftar copies: ${entries}`;
51
+ }
24
52
  /** Build the lookup maps for rule reference resolution, once per AGENTS.md. */
25
- export function buildRuleLookup(ingredients) {
53
+ export function buildRuleLookup(ingredients, resolution = { primary: false }) {
26
54
  const rulesByName = new Map();
27
55
  const steeringsByName = new Map();
56
+ const ruleTargets = new Map();
28
57
  for (const ing of ingredients) {
29
58
  const name = outName(ing.meta);
30
- if (ing.meta.type === "rule")
59
+ if (ing.meta.type === "rule") {
31
60
  rulesByName.set(name, ing);
32
- else if (ing.meta.type === "steering")
61
+ ruleTargets.set(name, effectiveTargets(ing.meta, resolution));
62
+ }
63
+ else if (ing.meta.type === "steering") {
33
64
  steeringsByName.set(name, ing);
65
+ }
34
66
  }
35
- return { rulesByName, steeringsByName };
67
+ return { rulesByName, steeringsByName, ruleTargets };
36
68
  }
37
69
  /**
38
- * Resolve `.claude/rules/<x>.md` references in a body (spec 15 §4.1–§4.3, spec 17 §4.2–§4.3, spec 20).
39
- * Mode "agents-md" (default) is for AGENTS.md; mode "kiro" is for kiro files.
40
- * Returns the transformed text and a report of what was reworded or found dead.
70
+ * Determine rule state for a single name (spec 15 §4.2 for agents-md, spec 17 §4.2 for kiro).
71
+ * agents-md: A (claude-code writes), B (kiro writes), C (agents-md), D (rule exists), unknown
72
+ * kiro: K1 (kiro writes), K2 (claude-code writes), K3 (agents-md has it), D, unknown
41
73
  */
42
- export function resolveRuleRefs(body, citing, lookup, targets, mode = "agents-md") {
43
- const report = { reworded: [], others: [] };
74
+ export function ruleRefState(name, lookup, targets, mode) {
75
+ const { rulesByName, steeringsByName, ruleTargets: effective } = lookup;
44
76
  const hasCc = targets.includes("claude-code");
45
77
  const hasKiro = targets.includes("kiro");
46
78
  const hasMd = targets.includes("agents-md");
47
- const { rulesByName, steeringsByName } = lookup;
48
- const ruleState = (name) => {
49
- const rule = rulesByName.get(name);
50
- if (mode === "kiro") {
51
- // K1: kiro writes it — a rule or steering that admits kiro (spec 17 §4.2)
52
- if (rule && hasKiro && appliesTo(rule.meta.targets, "kiro"))
53
- return "K1";
54
- const steering = steeringsByName.get(name);
55
- if (steering && hasKiro && appliesTo(steering.meta.targets, "kiro"))
56
- return "K1";
57
- // K2: a rule and claude-code writes it
58
- if (rule && hasCc && appliesTo(rule.meta.targets, "claude-code"))
59
- return "K2";
60
- // K3: a rule aimed at agents-md, and agents-md is a workspace target
61
- if (rule && hasMd && appliesTo(rule.meta.targets, "agents-md"))
62
- return "K3";
63
- // D: any other rule
64
- if (rule)
65
- return "D";
66
- // unknown: anything else
67
- return "unknown";
68
- }
69
- // agents-md mode (spec 15 §4.2)
70
- if (rule) {
71
- const writer = ruleWriter(targets, rule.meta.targets);
72
- if (writer === "claude-code")
73
- return "A";
74
- if (writer === "kiro")
75
- return "B";
76
- }
77
- // B (steering): kiro writes a steering with this name — checked before C/D (spec 15 §4.2)
79
+ const rule = rulesByName.get(name);
80
+ const ruleTargets = effective.get(name);
81
+ if (mode === "kiro") {
82
+ // K1: kiro writes it — a rule or steering that admits kiro (spec 17 §4.2)
83
+ if (rule && ruleTargets && hasKiro && appliesTo(ruleTargets, "kiro"))
84
+ return "K1";
78
85
  const steering = steeringsByName.get(name);
79
86
  if (steering && hasKiro && appliesTo(steering.meta.targets, "kiro"))
80
- return "B";
81
- if (rule) {
82
- if (appliesTo(rule.meta.targets, "agents-md"))
83
- return "C";
87
+ return "K1";
88
+ // K2: a rule and claude-code writes it
89
+ if (rule && ruleTargets && hasCc && appliesTo(ruleTargets, "claude-code"))
90
+ return "K2";
91
+ // K3: a rule aimed at agents-md, and agents-md is a workspace target
92
+ if (rule && ruleTargets && hasMd && appliesTo(ruleTargets, "agents-md"))
93
+ return "K3";
94
+ // D: any other rule
95
+ if (rule)
84
96
  return "D";
85
- }
97
+ // unknown: anything else
86
98
  return "unknown";
87
- };
88
- // Right boundary: not followed by letter, digit, `_`, `-`, or `.` followed by one of those (spec 15 §4.1)
89
- // NOTE: The right boundary class is NOT the same as RULE_NAME_CHARS (which includes `.` for names).
90
- const rightBoundary = (after) => {
91
- if (!after)
92
- return true;
93
- const c = after[0];
94
- if (/[A-Za-z0-9_-]/.test(c))
95
- return false;
96
- if (c === "." && after.length > 1 && /[A-Za-z0-9_-]/.test(after[1]))
97
- return false;
99
+ }
100
+ // agents-md mode (spec 15 §4.2)
101
+ if (rule && ruleTargets) {
102
+ const writer = ruleWriter(targets, ruleTargets);
103
+ if (writer === "claude-code")
104
+ return "A";
105
+ if (writer === "kiro")
106
+ return "B";
107
+ }
108
+ // B (steering): kiro writes a steering with this name — checked before C/D (spec 15 §4.2)
109
+ const steering = steeringsByName.get(name);
110
+ if (steering && hasKiro && appliesTo(steering.meta.targets, "kiro"))
111
+ return "B";
112
+ if (rule && ruleTargets) {
113
+ if (appliesTo(ruleTargets, "agents-md"))
114
+ return "C";
115
+ return "D";
116
+ }
117
+ return "unknown";
118
+ }
119
+ /**
120
+ * References in a text the emitter copies without resolving (spec 41 §4.4): each `.claude/rules/<x>.md` token whose rule
121
+ * this emitter's target does not write — in "agents-md" mode a state other than A or an unchanged unknown, in "kiro" mode a
122
+ * state other than K1 — with its 1-based line. The text is never changed.
123
+ */
124
+ export function unresolvedRuleRefs(text, lookup, targets, mode) {
125
+ const hasCc = targets.includes("claude-code");
126
+ const result = [];
127
+ const tokenPattern = new RegExp(TOKEN_PATTERN_SOURCE, "g");
128
+ let tokenMatch;
129
+ while ((tokenMatch = tokenPattern.exec(text)) !== null) {
130
+ const [match, before, _token, name] = tokenMatch;
131
+ const fullOffset = tokenMatch.index + match.length;
132
+ const after = text.slice(fullOffset);
133
+ if (!rightBoundary(after))
134
+ continue;
135
+ const state = ruleRefState(name, lookup, targets, mode);
136
+ // In agents-md mode: listed when state is B, C, D, or unknown when claude-code is not a target
137
+ // In kiro mode: listed when state is not K1
138
+ const listed = mode === "agents-md"
139
+ ? (state === "B" || state === "C" || state === "D" || (state === "unknown" && !hasCc))
140
+ : (state !== "K1");
141
+ if (listed) {
142
+ // Find line number (1-based)
143
+ const offset = tokenMatch.index + before.length;
144
+ const line = text.slice(0, offset).split("\n").length;
145
+ // Dedupe by (line, name)
146
+ if (!result.some((r) => r.line === line && r.name === name)) {
147
+ result.push({ line, name });
148
+ }
149
+ }
150
+ }
151
+ return result;
152
+ }
153
+ /**
154
+ * Right boundary: not followed by letter, digit, `_`, `-`, or `.` followed by one of those (spec 15 §4.1).
155
+ * NOTE: the right boundary's class is NOT RULE_NAME_CHARS (which includes `.` for names) — by design.
156
+ */
157
+ function rightBoundary(after) {
158
+ if (!after)
98
159
  return true;
99
- };
160
+ const c = after[0];
161
+ if (/[A-Za-z0-9_-]/.test(c))
162
+ return false;
163
+ if (c === "." && after.length > 1 && /[A-Za-z0-9_-]/.test(after[1]))
164
+ return false;
165
+ return true;
166
+ }
167
+ /**
168
+ * Resolve `.claude/rules/<x>.md` references in a body (spec 15 §4.1–§4.3, spec 17 §4.2–§4.3, spec 20).
169
+ * Mode "agents-md" (default) is for AGENTS.md; mode "kiro" is for kiro files.
170
+ * Returns the transformed text and a report of what was reworded or found dead.
171
+ */
172
+ export function resolveRuleRefs(body, citing, lookup, targets, mode = "agents-md") {
173
+ const report = { reworded: [], others: [] };
174
+ const hasCc = targets.includes("claude-code");
175
+ const { rulesByName } = lookup;
176
+ // Use module-level ruleRefState
177
+ const ruleState = (name) => ruleRefState(name, lookup, targets, mode);
100
178
  // Blanket rewrite for kiro mode: .claude/rules/ → .kiro/steering/
101
179
  const kiroRewrite = (s) => s.replace(/\.claude\/rules\//g, ".kiro/steering/");
102
180
  // Resolve a single token reference (spec 20 §4.1): used for tokens and link text references.
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/emitters/shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/emitters/shared.ts"],"names":[],"mappings":"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"}
@@ -6,18 +6,18 @@ import { exists, listFiles, parseYaml, typeFolder, FORGE_MANIFEST } from "../cor
6
6
  import { manifestWithSections } from "../core/manifest-edit.js";
7
7
  import { decodeForScan, findSecrets, hasUtf16Bom } from "../core/secrets.js";
8
8
  import { serverSecret } from "../core/mcp-server.js";
9
- import { schemaFault } from "../core/schema-fault.js";
9
+ import { errorText, schemaFault } from "../core/schema-fault.js";
10
10
  import { stripBom, toLf } from "../core/text.js";
11
11
  import { fingerprintDir, fingerprintOf } from "../core/fingerprint.js";
12
12
  import { FORGE_SCHEMA_SECTIONS, IngredientSchema, ProfileSchema, RecipeSchema, WorkspaceConfigSchema } from "../schema/index.js";
13
13
  import { isDeepStrictEqual } from "node:util";
14
- import { resolve } from "../core/resolve.js";
14
+ import { readsPrimary, resolve } from "../core/resolve.js";
15
15
  import { effectiveProfile } from "../core/integrations.js";
16
16
  import { classifyForge, credentialFault } from "../core/remote.js";
17
17
  import { parseWorkspaceYaml } from "../core/workspace-yaml.js";
18
18
  import { editYamlText } from "../core/yaml-edit.js";
19
19
  import { resolvedBy } from "../core/param-writes.js";
20
- import { decide, forgeBefore, pin, sourceKeys, workspaceParams, workspaceSections } from "./decide.js";
20
+ import { decide, forgeBefore, pin, sourceKeys, workspaceParams, workspaceSections, workspaceTargets } from "./decide.js";
21
21
  import { providedByBlock } from "./provided.js";
22
22
  import { renderMap } from "../core/template-import.js";
23
23
  import { firstMarkerLine } from "../core/sections.js";
@@ -25,7 +25,8 @@ import { bodyFile } from "../core/extract.js";
25
25
  import { GENERATED_BANNER, kiroReport, textLines } from "./kiro-report.js";
26
26
  import { preferKiro } from "./prefer-kiro.js";
27
27
  import { deepMerge } from "../core/merge.js";
28
- import { outName } from "../emitters/shared.js";
28
+ import { agentsMdOnly as isAgentsMdOnly, buildRuleLookup, outName, resolveRuleRefs } from "../emitters/shared.js";
29
+ import { AGENTS_MD_PRIMARY_KEY } from "../emitters/agents-md.js";
29
30
  import { parseYamlText } from "../core/yaml-read.js";
30
31
  import { note } from "../core/unify.js";
31
32
  /** Rules that every workspace shares by intent — they seed the `base` recipe. */
@@ -285,7 +286,10 @@ async function planImport(opts, stage) {
285
286
  pinned: new Map(),
286
287
  forge: loaded,
287
288
  markedBase: false,
289
+ primaryRefs: null,
288
290
  };
291
+ const primary = await primaryFor(loaded, opts.profileName, ctx, ws, readWs);
292
+ ctx.primaryRefs = primary?.refs ?? null;
289
293
  /* ---- what the block provides is left to its recipe (spec 33 §5.3) ---- */
290
294
  // Computed before --prefer-kiro so a named rule left to its recipe can be warned and skipped.
291
295
  let provided;
@@ -467,7 +471,7 @@ async function planImport(opts, stage) {
467
471
  /* ---- recipes ---- */
468
472
  const recipesDir = path.join(forge, "recipes");
469
473
  const isVariant = (ref) => report.variants.some((v) => v.name === ref);
470
- const recipeOpts = { stage, dir: recipesDir, profile: opts.profileName, forge: ctx.forge, report, currentRules: currentRuleOrder(ctx.forge, opts.profileName) };
474
+ const recipeOpts = { stage, dir: recipesDir, profile: opts.profileName, forge: ctx.forge, report, currentRules: currentRuleOrder(ctx.forge, opts.profileName), agentsMdOnly: primary?.agentsMdOnly ?? new Set() };
471
475
  const stackRecipes = [];
472
476
  for (const [ruleRef, pattern] of scopedRules) {
473
477
  const ruleName = ruleRef.split("/")[1].replace(/--.*$/, "");
@@ -1135,6 +1139,24 @@ export function validateImported(meta) {
1135
1139
  const source = meta.origin?.path ?? `${meta.type}/${meta.name}`;
1136
1140
  throw new Error(`${source} (${meta.type}/${meta.name}) does not fit the ingredient schema: ${schemaFault(r.error)}`);
1137
1141
  }
1142
+ /**
1143
+ * Under agents-md.primary a rule the workspace holds in AGENTS.md alone has no file import reads, yet the workspace has it
1144
+ * (spec 41 §4.10): a recipe that lists it keeps it, each such entry placed after the entry it follows in the recipe.
1145
+ */
1146
+ function keepAgentsMdOnly(existing, list, only) {
1147
+ if (!only.size)
1148
+ return list;
1149
+ const out = [...list];
1150
+ let prev = -1;
1151
+ for (const x of existing) {
1152
+ const at = out.indexOf(x);
1153
+ if (at >= 0)
1154
+ prev = at;
1155
+ else if (only.has(x))
1156
+ out.splice(++prev, 0, x);
1157
+ }
1158
+ return out;
1159
+ }
1138
1160
  function currentRuleOrder(forge, profile) {
1139
1161
  if (!forge?.profiles.has(profile))
1140
1162
  return null;
@@ -1167,15 +1189,25 @@ const recipeText = (name, description, ingredients) => YAML.stringify(JSON.parse
1167
1189
  */
1168
1190
  async function placeRecipe(o, name, list, description, holdsVariant) {
1169
1191
  const owned = `${name}--${o.profile}`;
1170
- if (holdsVariant)
1192
+ const read = async (file) => parseYaml(file, stripBom(await o.stage.readText(file)), RecipeSchema).ingredients;
1193
+ if (holdsVariant) {
1194
+ // Under agents-md.primary the shared recipe's rules held in AGENTS.md alone join the owned list (spec 41 §4.10); with the
1195
+ // mode off the shared file is not read here, as before.
1196
+ if (o.agentsMdOnly.size) {
1197
+ const file = await recipeFile(o, name);
1198
+ if (await o.stage.exists(file))
1199
+ list = keepAgentsMdOnly(await read(file), list, o.agentsMdOnly);
1200
+ }
1171
1201
  return writeOwnedRecipe(o, owned, list, description);
1202
+ }
1172
1203
  const file = await recipeFile(o, name);
1173
1204
  if (!(await o.stage.exists(file))) {
1174
1205
  o.stage.write(file, recipeText(name, description, list));
1175
1206
  o.report.recipes.push(name);
1176
1207
  return name;
1177
1208
  }
1178
- const existing = parseYaml(file, stripBom(await o.stage.readText(file)), RecipeSchema).ingredients;
1209
+ const existing = await read(file);
1210
+ list = keepAgentsMdOnly(existing, list, o.agentsMdOnly);
1179
1211
  const rules = (xs) => xs.filter((x) => x.startsWith("rule/"));
1180
1212
  const lacks = existing.find((x) => !list.includes(x));
1181
1213
  const extra = list.find((x) => !existing.includes(x));
@@ -1210,6 +1242,7 @@ async function writeOwnedRecipe(o, name, list, description) {
1210
1242
  }
1211
1243
  const raw = await o.stage.readText(file);
1212
1244
  const before = parseYaml(file, stripBom(raw), RecipeSchema);
1245
+ list = keepAgentsMdOnly(before.ingredients, list, o.agentsMdOnly);
1213
1246
  // Each existing entry in order: kept, swapped for its base in place, or dropped; then the rest of the list appended.
1214
1247
  const inPlace = (x) => {
1215
1248
  if (list.includes(x))
@@ -1505,4 +1538,39 @@ async function planConfig(ws, forge, profile, targets) {
1505
1538
  throw i9(`it no longer loads: ${schemaFault(loaded.error)}`);
1506
1539
  return { abs, content, action: content === raw ? "unchanged" : "edited", keptRemote };
1507
1540
  }
1541
+ /**
1542
+ * What agents-md.primary changed for the importing workspace (spec 41 §4.10): the rewording the claude-code emitter applied, so a
1543
+ * re-import compares each base as sync wrote it, and the rules the workspace holds in AGENTS.md alone, so a recipe that lists
1544
+ * them is not split for lacking them; null when the Forge is below schema 5 or the mode is off. Decided by `resolve()` over
1545
+ * the Forge as loaded, the importing profile, and the workspace's overrides and targets — every layer the mode reads, recipe
1546
+ * defaults included. When the key is set somewhere and the profile does not resolve on its own, fails closed: nothing has
1547
+ * been written yet.
1548
+ */
1549
+ async function primaryFor(loaded, profile, ctx, ws, read) {
1550
+ if (!loaded || !readsPrimary(loaded.manifest))
1551
+ return null;
1552
+ const own = loaded.profiles.get(profile)?.params ?? {};
1553
+ const setSomewhere = Object.hasOwn(own, AGENTS_MD_PRIMARY_KEY) ||
1554
+ Object.hasOwn(ctx.W, AGENTS_MD_PRIMARY_KEY) ||
1555
+ [...loaded.recipes.values()].some((r) => r.params[AGENTS_MD_PRIMARY_KEY]?.default !== undefined);
1556
+ let resolution;
1557
+ try {
1558
+ if (!loaded.profiles.has(profile))
1559
+ throw new Error(`profile ${profile} is not in the Forge`);
1560
+ const targets = await workspaceTargets(ws, read);
1561
+ const config = WorkspaceConfigSchema.parse({ forge: ".", profile, ...(targets ? { targets } : {}), overrides: { params: ctx.W, sections: ctx.WS } });
1562
+ resolution = resolve(loaded, config);
1563
+ }
1564
+ catch (e) {
1565
+ if (!setSomewhere)
1566
+ return null;
1567
+ const message = errorText(e);
1568
+ throw new Error(`import: profile ${profile} does not resolve on its own (${message}) — agents-md.primary needs it to compare the bases; fix the Forge and re-run`);
1569
+ }
1570
+ if (!resolution.primary)
1571
+ return null;
1572
+ const lookup = buildRuleLookup(resolution.ingredients, resolution);
1573
+ const agentsMdOnly = new Set(resolution.ingredients.filter((i) => isAgentsMdOnly(i.meta, resolution)).map((i) => i.ref));
1574
+ return { refs: (text, citing) => resolveRuleRefs(text, citing, lookup, resolution.targets).text, agentsMdOnly };
1575
+ }
1508
1576
  //# sourceMappingURL=claude-code.js.map