craftar 0.35.0 → 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.
- package/README.md +17 -2
- package/dist/cli.js +14 -9
- package/dist/cli.js.map +1 -1
- package/dist/core/capabilities.js +2 -2
- package/dist/core/capabilities.js.map +1 -1
- package/dist/core/doctor.js +74 -1
- package/dist/core/doctor.js.map +1 -1
- package/dist/core/drift.js +10 -4
- package/dist/core/drift.js.map +1 -1
- package/dist/core/extract.js +2 -2
- package/dist/core/extract.js.map +1 -1
- package/dist/core/resolve.js +29 -0
- package/dist/core/resolve.js.map +1 -1
- package/dist/core/sync.js +154 -3
- package/dist/core/sync.js.map +1 -1
- package/dist/core/template-import.js +16 -3
- package/dist/core/template-import.js.map +1 -1
- package/dist/core/write-actions.js +2 -2
- package/dist/core/write-actions.js.map +1 -1
- package/dist/emitters/agents-md.js +26 -3
- package/dist/emitters/agents-md.js.map +1 -1
- package/dist/emitters/claude-code.js +175 -20
- package/dist/emitters/claude-code.js.map +1 -1
- package/dist/emitters/kiro.js +111 -26
- package/dist/emitters/kiro.js.map +1 -1
- package/dist/emitters/shared.js +135 -57
- package/dist/emitters/shared.js.map +1 -1
- package/dist/importers/claude-code.js +75 -7
- package/dist/importers/claude-code.js.map +1 -1
- package/dist/importers/decide.js +22 -4
- package/dist/importers/decide.js.map +1 -1
- package/dist/importers/drift-promote.js +9 -3
- package/dist/importers/drift-promote.js.map +1 -1
- package/dist/schema/index.js +11 -1
- package/dist/schema/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents-md.js","sourceRoot":"","sources":["../../src/emitters/agents-md.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAkB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"agents-md.js","sourceRoot":"","sources":["../../src/emitters/agents-md.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
+
import path from "node:path";
|
|
1
2
|
import { serializeFrontmatter } from "../core/frontmatter.js";
|
|
2
3
|
import { listFiles } from "../core/forge.js";
|
|
3
|
-
import {
|
|
4
|
+
import { decodeForScan } from "../core/secrets.js";
|
|
5
|
+
import { authEnvNames, buildRuleLookup, EXAMPLE_SETTINGS, formatDeadRefs, formatScannedRefs, mcpServers, outName, resolveRuleRefs, ruleFile, textFile, unresolvedRuleRefs, UNKNOWN_NAME_KIND, } from "./shared.js";
|
|
4
6
|
/**
|
|
5
7
|
* Claude Code target: `.claude/{rules,agents,commands,skills,scripts,hooks}` + `.mcp.json`.
|
|
6
8
|
* Files are emitted verbatim from the Forge so that `import` → `sync` on the source workspace is a no-op.
|
|
9
|
+
*
|
|
10
|
+
* Under agents-md.primary (spec 41 §4.4), references to rules in bodies are resolved through
|
|
11
|
+
* resolveRuleRefs, and copied files are scanned and warned about but not rewritten.
|
|
7
12
|
*/
|
|
8
13
|
export const claudeCode = {
|
|
9
14
|
target: "claude-code",
|
|
@@ -11,50 +16,128 @@ export const claudeCode = {
|
|
|
11
16
|
const out = [];
|
|
12
17
|
const t = "claude-code";
|
|
13
18
|
const mcp = [];
|
|
19
|
+
const primary = ctx.resolution.primary;
|
|
20
|
+
// Under the mode, build the lookup once
|
|
21
|
+
const lookup = primary ? buildRuleLookup(ctx.resolution.ingredients, ctx.resolution) : null;
|
|
22
|
+
const targets = ctx.resolution.targets;
|
|
23
|
+
// Collect reports for the warning (spec 41 §4.4)
|
|
24
|
+
const reports = [];
|
|
25
|
+
const scannedHits = [];
|
|
26
|
+
// Resolve function under primary mode, returns original text when mode is off
|
|
27
|
+
const resolve = (text, citing) => {
|
|
28
|
+
if (!primary || !lookup)
|
|
29
|
+
return text;
|
|
30
|
+
const { text: resolved, report } = resolveRuleRefs(text, citing, lookup, targets, "agents-md");
|
|
31
|
+
reports.push(report);
|
|
32
|
+
return resolved;
|
|
33
|
+
};
|
|
34
|
+
// Track whether a file was reworded
|
|
35
|
+
// Each [original, resolved] pair is one text of the file, compared on its own (spec 41 §4.4)
|
|
36
|
+
const checkReworded = (path, ...pairs) => {
|
|
37
|
+
if (primary && pairs.some(([original, resolved]) => original !== resolved))
|
|
38
|
+
ctx.reportReworded(path);
|
|
39
|
+
};
|
|
40
|
+
// Scan a file for unresolved references (spec 41 §4.4): files copied as bytes or other TEXT_EXT
|
|
41
|
+
const scanFile = (path, content) => {
|
|
42
|
+
if (!primary || !lookup)
|
|
43
|
+
return;
|
|
44
|
+
const text = decodeForScan(content);
|
|
45
|
+
if (text === null)
|
|
46
|
+
return; // Binary file
|
|
47
|
+
const hits = unresolvedRuleRefs(text, lookup, targets, "agents-md");
|
|
48
|
+
for (const h of hits) {
|
|
49
|
+
scannedHits.push({ path, line: h.line, name: h.name });
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
// An agent's or a command's metadata, then its body (spec 41 §4.4, kiro's order): its frontmatterRaw when it has
|
|
53
|
+
// one, else its description. With the mode off `resolve` returns each text as given.
|
|
54
|
+
const resolveDoc = (path, citing, m, rawBody) => {
|
|
55
|
+
const raw = m.frontmatterRaw != null ? resolve(m.frontmatterRaw, citing) : null;
|
|
56
|
+
const description = m.frontmatterRaw == null && m.description !== undefined ? resolve(m.description, citing) : m.description;
|
|
57
|
+
const body = resolve(rawBody, citing);
|
|
58
|
+
checkReworded(path, [m.frontmatterRaw ?? m.description, raw ?? description], [rawBody, body]);
|
|
59
|
+
return { raw, description, body };
|
|
60
|
+
};
|
|
14
61
|
// What this target writes comes from its walk; the matrix decides the rest and warns (spec 18).
|
|
15
62
|
for (const ing of ctx.aimed) {
|
|
16
63
|
const m = ing.meta;
|
|
17
64
|
switch (m.type) {
|
|
18
65
|
case "rule": {
|
|
19
|
-
const
|
|
66
|
+
const rawBody = await ctx.text(ing, m.file);
|
|
67
|
+
const body = resolve(rawBody, ing.ref);
|
|
68
|
+
const path = ruleFile("claude-code", m);
|
|
20
69
|
// If frontmatterRaw is set, serialize with it; otherwise emit body only (no generated paths:)
|
|
70
|
+
// frontmatterRaw is NOT resolved (spec 41 §4.4)
|
|
21
71
|
const doc = m.frontmatterRaw != null ? serializeFrontmatter({}, body, { raw: m.frontmatterRaw }) : body;
|
|
22
|
-
|
|
72
|
+
checkReworded(path, [rawBody, body]);
|
|
73
|
+
out.push(await textFile(ctx, path, doc, t, ing.ref));
|
|
23
74
|
break;
|
|
24
75
|
}
|
|
25
76
|
case "agent": {
|
|
26
|
-
const
|
|
27
|
-
const
|
|
28
|
-
const doc = serializeFrontmatter({ name: outName(m), description
|
|
29
|
-
out.push(await textFile(ctx,
|
|
77
|
+
const path = `.claude/agents/${outName(m)}.md`;
|
|
78
|
+
const { raw, description, body } = resolveDoc(path, ing.ref, m, await ctx.text(ing, m.file));
|
|
79
|
+
const doc = serializeFrontmatter({ name: outName(m), description, tools: m.tools, model: m.model }, body, { raw });
|
|
80
|
+
out.push(await textFile(ctx, path, doc, t, ing.ref));
|
|
30
81
|
break;
|
|
31
82
|
}
|
|
32
83
|
case "command": {
|
|
33
|
-
const
|
|
34
|
-
const
|
|
35
|
-
|
|
84
|
+
const path = `.claude/commands/${outName(m)}.md`;
|
|
85
|
+
const { raw, description, body } = resolveDoc(path, ing.ref, m, await ctx.text(ing, m.file));
|
|
86
|
+
const doc = serializeFrontmatter({ description, "argument-hint": m.argumentHint, "allowed-tools": m.allowedTools }, body, { raw });
|
|
87
|
+
out.push(await textFile(ctx, path, doc, t, ing.ref));
|
|
36
88
|
break;
|
|
37
89
|
}
|
|
38
90
|
case "skill": {
|
|
39
91
|
if (m.layout === "file") {
|
|
40
|
-
|
|
92
|
+
const path = `.claude/skills/${outName(m)}.md`;
|
|
93
|
+
const rawText = await ctx.text(ing, "SKILL.md");
|
|
94
|
+
const text = resolve(rawText, ing.ref);
|
|
95
|
+
checkReworded(path, [rawText, text]);
|
|
96
|
+
out.push(await textFile(ctx, path, text, t, ing.ref));
|
|
41
97
|
}
|
|
42
98
|
else {
|
|
99
|
+
// Directory skill: resolve .md files, scan others
|
|
43
100
|
for (const f of await listFiles(ing.dir)) {
|
|
44
101
|
if (f === "ingredient.yaml")
|
|
45
102
|
continue;
|
|
46
|
-
|
|
103
|
+
const path = `.claude/skills/${outName(m)}/${f}`;
|
|
104
|
+
if (claudeResolves(m, f)) {
|
|
105
|
+
const rawText = await ctx.text(ing, f);
|
|
106
|
+
const text = resolve(rawText, ing.ref);
|
|
107
|
+
checkReworded(path, [rawText, text]);
|
|
108
|
+
out.push(await textFile(ctx, path, text, t, ing.ref));
|
|
109
|
+
}
|
|
110
|
+
else if (TEXT_EXT.test(f)) {
|
|
111
|
+
// Other text files: not resolved, but scanned
|
|
112
|
+
const rawText = await ctx.text(ing, f);
|
|
113
|
+
if (primary && lookup) {
|
|
114
|
+
scanFile(path, Buffer.from(rawText, "utf8"));
|
|
115
|
+
}
|
|
116
|
+
out.push(await textFile(ctx, path, rawText, t, ing.ref));
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
// Binary files: copied as bytes, scanned
|
|
120
|
+
const content = await ctx.bytes(ing, f);
|
|
121
|
+
scanFile(path, content);
|
|
122
|
+
out.push({ path, content, target: t, ingredient: ing.ref });
|
|
123
|
+
}
|
|
47
124
|
}
|
|
48
125
|
}
|
|
49
126
|
break;
|
|
50
127
|
}
|
|
51
128
|
case "script":
|
|
52
|
-
for (const f of m.files)
|
|
53
|
-
|
|
129
|
+
for (const f of m.files) {
|
|
130
|
+
const path = `.claude/scripts/${f}`;
|
|
131
|
+
const file = await anyFileWithScan(ctx, ing, f, path, t, lookup, targets, primary, scanFile);
|
|
132
|
+
out.push(file);
|
|
133
|
+
}
|
|
54
134
|
break;
|
|
55
135
|
case "hook":
|
|
56
|
-
for (const f of m.files)
|
|
57
|
-
|
|
136
|
+
for (const f of m.files) {
|
|
137
|
+
const path = `.claude/hooks/${f}`;
|
|
138
|
+
const file = await anyFileWithScan(ctx, ing, f, path, t, lookup, targets, primary, scanFile);
|
|
139
|
+
out.push(file);
|
|
140
|
+
}
|
|
58
141
|
break;
|
|
59
142
|
case "mcp":
|
|
60
143
|
mcp.push(ing); // collected into .mcp.json below
|
|
@@ -65,6 +148,10 @@ export const claudeCode = {
|
|
|
65
148
|
}
|
|
66
149
|
}
|
|
67
150
|
}
|
|
151
|
+
// Emit the claude-code warning (spec 41 §4.4)
|
|
152
|
+
if (primary) {
|
|
153
|
+
emitClaudeCodeWarning(ctx, reports, scannedHits);
|
|
154
|
+
}
|
|
68
155
|
const servers = mcpServers(ctx, t, ".mcp.json", mcp);
|
|
69
156
|
if (Object.keys(servers).length) {
|
|
70
157
|
const json = JSON.stringify({ mcpServers: servers }, null, 2) + "\n";
|
|
@@ -83,11 +170,79 @@ export const claudeCode = {
|
|
|
83
170
|
return out;
|
|
84
171
|
},
|
|
85
172
|
};
|
|
173
|
+
/**
|
|
174
|
+
* Whether the claude-code emitter resolves rule references in this file of an ingredient under agents-md.primary
|
|
175
|
+
* (spec 41 §4.4): a rule's, an agent's or a command's body file, a file-layout skill's SKILL.md and every `.md` file of a
|
|
176
|
+
* directory skill. Every other file is copied as written and scanned. An agent's and a command's metadata are resolved
|
|
177
|
+
* too (`frontmatterRaw` when present, else `description`). The one answer, read by the emitter and by import (§4.10).
|
|
178
|
+
*/
|
|
179
|
+
export function claudeResolves(meta, file) {
|
|
180
|
+
// Compared as the emitters read them (`emittedFile`): `./rule.md` and `/rule.md` name the file listed as `rule.md`.
|
|
181
|
+
const eq = (a, b) => path.posix.join(".", a) === path.posix.join(".", b);
|
|
182
|
+
switch (meta.type) {
|
|
183
|
+
case "rule":
|
|
184
|
+
case "agent":
|
|
185
|
+
case "command":
|
|
186
|
+
return eq(file, meta.file);
|
|
187
|
+
case "skill":
|
|
188
|
+
return meta.layout === "file" ? eq(file, "SKILL.md") : /\.md$/i.test(file);
|
|
189
|
+
default:
|
|
190
|
+
return false;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
86
193
|
/** Files claude-code emits as text, through `ctx.text` (substituted); anything else is copied as raw bytes. */
|
|
87
194
|
export const TEXT_EXT = /\.(md|txt|json|ya?ml|ps1|py|sh|js|ts|cjs|mjs|toml|xml|csv)$/i;
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
195
|
+
/** Emit a file for scripts/hooks: scan but do not rewrite (spec 41 §4.4). */
|
|
196
|
+
async function anyFileWithScan(ctx, ing, file, relPath, target, lookup, targets, primary, scanFile) {
|
|
197
|
+
if (TEXT_EXT.test(file)) {
|
|
198
|
+
const text = await ctx.text(ing, file);
|
|
199
|
+
if (primary && lookup) {
|
|
200
|
+
scanFile(relPath, Buffer.from(text, "utf8"));
|
|
201
|
+
}
|
|
202
|
+
return textFile(ctx, relPath, text, target, ing.ref);
|
|
203
|
+
}
|
|
204
|
+
const content = await ctx.bytes(ing, file);
|
|
205
|
+
scanFile(relPath, content);
|
|
206
|
+
return { path: relPath, content, target, ingredient: ing.ref };
|
|
207
|
+
}
|
|
208
|
+
/** Emit the claude-code warning for dead references and scanned files (spec 41 §4.4). */
|
|
209
|
+
function emitClaudeCodeWarning(ctx, reports, scannedHits) {
|
|
210
|
+
// Collect D entries: dead references (kind not empty, not UNKNOWN_NAME_KIND)
|
|
211
|
+
// Unknown names produce nothing in claude-code (claude-code is a target, so they are unchanged — state A-like)
|
|
212
|
+
const dead = [];
|
|
213
|
+
const seenDead = new Set();
|
|
214
|
+
for (const report of reports) {
|
|
215
|
+
for (const e of report.reworded) {
|
|
216
|
+
if (e.kind === UNKNOWN_NAME_KIND)
|
|
217
|
+
continue; // Unknown names are unchanged with claude-code
|
|
218
|
+
const key = `${e.ref}|${e.citing}`;
|
|
219
|
+
if (!seenDead.has(key)) {
|
|
220
|
+
seenDead.add(key);
|
|
221
|
+
dead.push(e);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
// Dedupe scanned hits by path+line+name
|
|
226
|
+
const seenScanned = new Set();
|
|
227
|
+
const dedupedHits = [];
|
|
228
|
+
// Sort by path then line
|
|
229
|
+
const sortedHits = [...scannedHits].sort((a, b) => a.path.localeCompare(b.path) || a.line - b.line);
|
|
230
|
+
for (const h of sortedHits) {
|
|
231
|
+
const key = `${h.path}:${h.line}:${h.name}`;
|
|
232
|
+
if (!seenScanned.has(key)) {
|
|
233
|
+
seenScanned.add(key);
|
|
234
|
+
dedupedHits.push(h);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
if (dead.length === 0 && dedupedHits.length === 0)
|
|
238
|
+
return;
|
|
239
|
+
const parts = [];
|
|
240
|
+
if (dead.length > 0) {
|
|
241
|
+
parts.push(formatDeadRefs(dead));
|
|
242
|
+
}
|
|
243
|
+
if (dedupedHits.length > 0) {
|
|
244
|
+
parts.push(formatScannedRefs(dedupedHits));
|
|
245
|
+
}
|
|
246
|
+
ctx.warn(`claude-code: ${parts.join("; ")}`);
|
|
92
247
|
}
|
|
93
248
|
//# sourceMappingURL=claude-code.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../src/emitters/claude-code.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../src/emitters/claude-code.ts"],"names":[],"mappings":"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"}
|
package/dist/emitters/kiro.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { posix } from "node:path";
|
|
2
|
+
import { climbsOut, toCrlf } from "../core/text.js";
|
|
2
3
|
import { serializeFrontmatter } from "../core/frontmatter.js";
|
|
3
4
|
import { listFiles } from "../core/forge.js";
|
|
4
|
-
import {
|
|
5
|
+
import { decodeForScan } from "../core/secrets.js";
|
|
6
|
+
import { appliesTo, buildRuleLookup, effectiveTargets, formatDeadRefs, formatScannedRefs, mcpServers, outName, resolveRuleRefs, ruleFile, RULE_NAME_CHARS, UNKNOWN_NAME_KIND, unresolvedRuleRefs, } from "./shared.js";
|
|
5
7
|
/** Files kiro copies as text, through `ctx.text` (substituted); anything else is copied as raw bytes. */
|
|
6
8
|
export const KIRO_TEXT_EXT = /\.(md|txt|json|ya?ml)$/i;
|
|
7
9
|
/**
|
|
@@ -20,17 +22,47 @@ export const kiro = {
|
|
|
20
22
|
const out = [];
|
|
21
23
|
const t = "kiro";
|
|
22
24
|
const banner = String(ctx.resolution.params["kiro.banner"] ?? "<!-- GENERATED from {{source}} by craftar -- do not edit. -->");
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
+
const primary = ctx.resolution.primary;
|
|
26
|
+
// Under the mode, filter ruleNames and scopedRules to rules kiro WRITES (spec 41 §4.5)
|
|
27
|
+
// Mode off: unchanged (every rule)
|
|
28
|
+
const rulesKiroWrites = primary
|
|
29
|
+
? ctx.resolution.ingredients.filter((i) => i.meta.type === "rule" && appliesTo(effectiveTargets(i.meta, ctx.resolution), "kiro"))
|
|
30
|
+
: ctx.resolution.ingredients.filter((i) => i.meta.type === "rule");
|
|
31
|
+
const ruleNames = new Set(rulesKiroWrites.map((i) => outName(i.meta)));
|
|
32
|
+
const scopedRules = rulesKiroWrites.filter((i) => i.meta.type === "rule" && i.meta.inclusion === "fileMatch").map((i) => outName(i.meta));
|
|
25
33
|
const targets = ctx.resolution.targets;
|
|
26
|
-
const lookup = buildRuleLookup(ctx.resolution.ingredients);
|
|
34
|
+
const lookup = buildRuleLookup(ctx.resolution.ingredients, ctx.resolution);
|
|
35
|
+
// For mode-off comparison (spec 41 §4.4), build lookup without primary
|
|
36
|
+
const lookupOff = primary ? buildRuleLookup(ctx.resolution.ingredients, { primary: false }) : null;
|
|
27
37
|
// Collect reports for the warning (spec 17 §4.5)
|
|
28
38
|
const reports = [];
|
|
39
|
+
// Scanned file hits (spec 41 §4.4)
|
|
40
|
+
const scannedHits = [];
|
|
29
41
|
const resolve = (text, citing) => {
|
|
30
42
|
const { text: resolved, report } = resolveRuleRefs(text, citing, lookup, targets, "kiro");
|
|
31
43
|
reports.push(report);
|
|
32
44
|
return resolved;
|
|
33
45
|
};
|
|
46
|
+
// Track reworded: each text of the file, resolved with the mode and without it (spec 41 §4.4)
|
|
47
|
+
const checkReworded = (path, texts, citing) => {
|
|
48
|
+
if (!primary || !lookupOff)
|
|
49
|
+
return;
|
|
50
|
+
const differs = (text) => resolveRuleRefs(text, citing, lookupOff, targets, "kiro").text !== resolveRuleRefs(text, citing, lookup, targets, "kiro").text;
|
|
51
|
+
if (texts.some(differs))
|
|
52
|
+
ctx.reportReworded(path);
|
|
53
|
+
};
|
|
54
|
+
// Scan a file for unresolved references (spec 41 §4.4)
|
|
55
|
+
const scanFile = (path, content) => {
|
|
56
|
+
if (!primary)
|
|
57
|
+
return;
|
|
58
|
+
const text = decodeForScan(content);
|
|
59
|
+
if (text === null)
|
|
60
|
+
return; // Binary
|
|
61
|
+
const hits = unresolvedRuleRefs(text, lookup, targets, "kiro");
|
|
62
|
+
for (const h of hits) {
|
|
63
|
+
scannedHits.push({ path, line: h.line, name: h.name });
|
|
64
|
+
}
|
|
65
|
+
};
|
|
34
66
|
const mcp = [];
|
|
35
67
|
// What this target writes comes from its walk; the matrix decides the rest and warns (spec 18).
|
|
36
68
|
// `ctx.resolution.ingredients` above is for lookups only.
|
|
@@ -38,12 +70,15 @@ export const kiro = {
|
|
|
38
70
|
const m = ing.meta;
|
|
39
71
|
switch (m.type) {
|
|
40
72
|
case "rule": {
|
|
41
|
-
const
|
|
73
|
+
const rawBody = await ctx.text(ing, m.file);
|
|
74
|
+
const body = resolve(rawBody, ing.ref);
|
|
75
|
+
const path = ruleFile("kiro", m);
|
|
76
|
+
checkReworded(path, [rawBody], ing.ref);
|
|
42
77
|
const fm = m.inclusion === "fileMatch"
|
|
43
78
|
? `---\ninclusion: fileMatch\nfileMatchPattern: ${JSON.stringify(Array.isArray(m.fileMatchPattern) ? m.fileMatchPattern.join(",") : m.fileMatchPattern ?? "**")}\n---\n\n`
|
|
44
79
|
: `---\ninclusion: ${m.inclusion}\n---\n\n`;
|
|
45
80
|
const head = banner.replace("{{source}}", `.claude/rules/${outName(m)}.md`) + "\n\n";
|
|
46
|
-
out.push(crlf(
|
|
81
|
+
out.push(crlf(path, fm + head + body, ing.ref));
|
|
47
82
|
break;
|
|
48
83
|
}
|
|
49
84
|
case "steering":
|
|
@@ -51,38 +86,80 @@ export const kiro = {
|
|
|
51
86
|
out.push(crlf(`.kiro/steering/${outName(m)}.md`, await ctx.text(ing, m.file), ing.ref));
|
|
52
87
|
break;
|
|
53
88
|
case "agent": {
|
|
89
|
+
const path = `.kiro/agents/${outName(m)}.json`;
|
|
54
90
|
// Resolve description first, then body (spec 17 §4.5 order: description before prompt)
|
|
55
|
-
const
|
|
91
|
+
const rawDesc = m.description ?? "";
|
|
92
|
+
const description = resolve(rawDesc, ing.ref);
|
|
56
93
|
// Read the body once and derive both versions from it
|
|
57
94
|
const rawBody = await ctx.text(ing, m.file);
|
|
58
95
|
const body = resolve(rawBody, ing.ref);
|
|
96
|
+
checkReworded(path, [rawDesc, rawBody], ing.ref);
|
|
59
97
|
const tools = mapTools(m.tools, ctx);
|
|
60
98
|
// agentResources reads the blanket-rewritten text, not the resolved text (spec 17 §4.6)
|
|
61
|
-
const resources = m.resources ?? agentResources(outName(m), rewrite(
|
|
99
|
+
const resources = m.resources ?? agentResources(outName(m), rewrite(rawDesc) + "\n" + rewrite(rawBody), ruleNames, scopedRules);
|
|
100
|
+
// Under the mode, record hand-written resources for the check (spec 41 §4.5)
|
|
101
|
+
if (primary && m.resources) {
|
|
102
|
+
for (const entry of m.resources) {
|
|
103
|
+
if (!entry.startsWith("file://"))
|
|
104
|
+
continue;
|
|
105
|
+
const raw = entry.slice("file://".length);
|
|
106
|
+
// Skip globs
|
|
107
|
+
if (/[*?[{]/.test(raw))
|
|
108
|
+
continue;
|
|
109
|
+
// Compared as a path (`.kiro/steering/./x.md` is `.kiro/steering/x.md`); one that climbs out of the workspace
|
|
110
|
+
// names nothing the plan can write and is never looked up on disk.
|
|
111
|
+
if (climbsOut(raw))
|
|
112
|
+
continue;
|
|
113
|
+
const rel = posix.normalize(raw);
|
|
114
|
+
// Only check .kiro/steering/, .claude/rules/, or AGENTS.md
|
|
115
|
+
if (rel.startsWith(".kiro/steering/") || rel.startsWith(".claude/rules/") || rel === "AGENTS.md") {
|
|
116
|
+
ctx.reportKiroResource(outName(m), rel);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
62
120
|
const json = JSON.stringify({ name: outName(m), description, prompt: body.replace(/^\n+/, "").replace(/\n+$/, ""), tools, allowedTools: tools, resources }, null, 2) + "\n";
|
|
63
|
-
out.push(crlf(
|
|
121
|
+
out.push(crlf(path, json, ing.ref));
|
|
64
122
|
break;
|
|
65
123
|
}
|
|
66
124
|
case "command": {
|
|
125
|
+
const path = `.kiro/steering/commands/${outName(m)}.md`;
|
|
126
|
+
const rawBody = await ctx.text(ing, m.file);
|
|
67
127
|
// Resolve description and raw frontmatter first, then body (spec 17 §4.5 order: frontmatter before body)
|
|
68
128
|
// When frontmatterRaw is set, the description field is unused (serializeFrontmatter ignores it),
|
|
69
129
|
// so we skip resolving it to avoid spurious reports.
|
|
70
130
|
const resolvedDescription = !m.frontmatterRaw && m.description !== undefined ? resolve(m.description, ing.ref) : undefined;
|
|
71
131
|
const resolvedFm = m.frontmatterRaw ? resolve(m.frontmatterRaw, ing.ref) : null;
|
|
72
|
-
const body = resolve(
|
|
132
|
+
const body = resolve(rawBody, ing.ref);
|
|
133
|
+
checkReworded(path, [m.frontmatterRaw ? m.frontmatterRaw : (m.description ?? ""), rawBody], ing.ref);
|
|
73
134
|
const doc = serializeFrontmatter({ description: resolvedDescription, "argument-hint": m.argumentHint, "allowed-tools": m.allowedTools }, body, { raw: resolvedFm });
|
|
74
|
-
out.push(crlf(
|
|
135
|
+
out.push(crlf(path, `---\ninclusion: manual\n---\n\n` + doc, ing.ref));
|
|
75
136
|
break;
|
|
76
137
|
}
|
|
77
138
|
case "skill": {
|
|
78
139
|
if (m.layout === "file") {
|
|
79
|
-
|
|
140
|
+
const path = `.kiro/skills/${outName(m)}/SKILL.md`;
|
|
141
|
+
const rawText = await ctx.text(ing, "SKILL.md");
|
|
142
|
+
const text = resolve(rawText, ing.ref);
|
|
143
|
+
checkReworded(path, [rawText], ing.ref);
|
|
144
|
+
out.push(crlf(path, text, ing.ref));
|
|
80
145
|
}
|
|
81
146
|
else {
|
|
82
147
|
for (const f of await listFiles(ing.dir)) {
|
|
83
148
|
if (f === "ingredient.yaml")
|
|
84
149
|
continue;
|
|
85
|
-
|
|
150
|
+
const path = `.kiro/skills/${outName(m)}/${f}`;
|
|
151
|
+
if (KIRO_TEXT_EXT.test(f)) {
|
|
152
|
+
const rawText = await ctx.text(ing, f);
|
|
153
|
+
const text = resolve(rawText, ing.ref);
|
|
154
|
+
checkReworded(path, [rawText], ing.ref);
|
|
155
|
+
out.push(crlf(path, text, ing.ref));
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
// Binary file: scan but don't rewrite (spec 41 §4.4)
|
|
159
|
+
const content = await ctx.bytes(ing, f);
|
|
160
|
+
scanFile(path, content);
|
|
161
|
+
out.push({ path, content, target: t, ingredient: ing.ref });
|
|
162
|
+
}
|
|
86
163
|
}
|
|
87
164
|
}
|
|
88
165
|
break;
|
|
@@ -97,8 +174,8 @@ export const kiro = {
|
|
|
97
174
|
}
|
|
98
175
|
}
|
|
99
176
|
}
|
|
100
|
-
// Emit one warning for all dead and unknown references (spec 17 §4.5)
|
|
101
|
-
emitKiroWarning(ctx, reports);
|
|
177
|
+
// Emit one warning for all dead and unknown references (spec 17 §4.5) and scanned files (spec 41 §4.4)
|
|
178
|
+
emitKiroWarning(ctx, reports, scannedHits);
|
|
102
179
|
const servers = mcpServers(ctx, t, ".kiro/settings/mcp.json", mcp);
|
|
103
180
|
if (Object.keys(servers).length) {
|
|
104
181
|
out.push(crlf(".kiro/settings/mcp.json", JSON.stringify({ mcpServers: servers }, null, 2) + "\n", "mcp/*"));
|
|
@@ -106,8 +183,8 @@ export const kiro = {
|
|
|
106
183
|
return out;
|
|
107
184
|
},
|
|
108
185
|
};
|
|
109
|
-
/** Emit the kiro warning for dead
|
|
110
|
-
function emitKiroWarning(ctx, reports) {
|
|
186
|
+
/** Emit the kiro warning for dead, unknown references, and scanned files (spec 17 §4.5, spec 41 §4.4). */
|
|
187
|
+
function emitKiroWarning(ctx, reports, scannedHits = []) {
|
|
111
188
|
// Collect entries: D (has kind with "reaches no target") and unknown (empty kind)
|
|
112
189
|
const dead = [];
|
|
113
190
|
const unknown = [];
|
|
@@ -132,12 +209,22 @@ function emitKiroWarning(ctx, reports) {
|
|
|
132
209
|
}
|
|
133
210
|
}
|
|
134
211
|
}
|
|
135
|
-
|
|
212
|
+
// Dedupe scanned hits by path+line+name, sort by path then line
|
|
213
|
+
const seenScanned = new Set();
|
|
214
|
+
const dedupedHits = [];
|
|
215
|
+
const sortedHits = [...scannedHits].sort((a, b) => a.path.localeCompare(b.path) || a.line - b.line);
|
|
216
|
+
for (const h of sortedHits) {
|
|
217
|
+
const key = `${h.path}:${h.line}:${h.name}`;
|
|
218
|
+
if (!seenScanned.has(key)) {
|
|
219
|
+
seenScanned.add(key);
|
|
220
|
+
dedupedHits.push(h);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
if (dead.length === 0 && unknown.length === 0 && dedupedHits.length === 0)
|
|
136
224
|
return;
|
|
137
225
|
const parts = [];
|
|
138
226
|
if (dead.length > 0) {
|
|
139
|
-
|
|
140
|
-
parts.push(`${dead.length} reference(s) to rule files this workspace does not have — reworded: ${entries}`);
|
|
227
|
+
parts.push(formatDeadRefs(dead));
|
|
141
228
|
}
|
|
142
229
|
if (unknown.length > 0) {
|
|
143
230
|
const entries = unknown.map((e) => `${e.ref} (in ${e.citing})`).join(", ");
|
|
@@ -148,6 +235,9 @@ function emitKiroWarning(ctx, reports) {
|
|
|
148
235
|
parts.push(`${unknown.length} reference(s) to names that are no rule or steering of this workspace — rewritten to .kiro/steering/ as before: ${entries}`);
|
|
149
236
|
}
|
|
150
237
|
}
|
|
238
|
+
if (dedupedHits.length > 0) {
|
|
239
|
+
parts.push(formatScannedRefs(dedupedHits));
|
|
240
|
+
}
|
|
151
241
|
ctx.warn(`kiro: ${parts.join("; ")}`);
|
|
152
242
|
}
|
|
153
243
|
export function rewrite(text) {
|
|
@@ -156,11 +246,6 @@ export function rewrite(text) {
|
|
|
156
246
|
function crlf(path, text, ingredient) {
|
|
157
247
|
return { path, content: Buffer.from(toCrlf(text), "utf8"), target: "kiro", ingredient };
|
|
158
248
|
}
|
|
159
|
-
async function copy(ctx, ing, file, relPath, resolve) {
|
|
160
|
-
if (KIRO_TEXT_EXT.test(file))
|
|
161
|
-
return crlf(relPath, resolve(await ctx.text(ing, file), ing.ref), ing.ref);
|
|
162
|
-
return { path: relPath, content: await ctx.bytes(ing, file), target: "kiro", ingredient: ing.ref };
|
|
163
|
-
}
|
|
164
249
|
const TOOL_MAP = {
|
|
165
250
|
read: "read",
|
|
166
251
|
grep: "grep",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kiro.js","sourceRoot":"","sources":["../../src/emitters/kiro.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"kiro.js","sourceRoot":"","sources":["../../src/emitters/kiro.ts"],"names":[],"mappings":"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"}
|