craftar 0.8.4 → 0.8.6
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 +21 -3
- package/dist/cli.js +1 -1
- package/dist/emitters/kiro.js +79 -12
- package/dist/emitters/kiro.js.map +1 -1
- package/dist/emitters/shared.js +230 -64
- package/dist/emitters/shared.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -187,9 +187,9 @@ Sections layer the same way, weakest → strongest: the body's default → the p
|
|
|
187
187
|
**claude-code** — emits `.claude/rules|agents|commands|skills|scripts|hooks` and `.mcp.json` verbatim from the Forge (frontmatter kept byte-for-byte). Each MCP server is written exactly as the Forge holds it, undeclared keys included, in its own key order. Existing files keep their line endings and BOM; new files are LF without a BOM. Steering is Kiro-only (its `targets` default to `[kiro]`); one aimed at `claude-code` explicitly (`targets: "*"` or a list naming it) is skipped with a warning.
|
|
188
188
|
|
|
189
189
|
**kiro** — reproduces, then extends, the hand-written `sync-steering.ps1` script it replaces:
|
|
190
|
-
steering = `inclusion` frontmatter + `GENERATED` banner + rule body, with `.claude/rules/` rewritten to `.kiro/steering
|
|
190
|
+
steering = `inclusion` frontmatter + `GENERATED` banner + rule body, with `.claude/rules/` rewritten to `.kiro/steering/` — except a reference to a rule kiro does not write, which follows that rule: kept as `.claude/rules/<x>.md` when `claude-code` writes it, `AGENTS.md (rule: <x>)` when only `AGENTS.md` holds it, otherwise `<x> (rule not in this workspace)` with a warning; an unknown name is still rewritten and is reported. A reference inside a link's text follows the same rules (in a link kept for `claude-code`, only those references move), and a link whose target reads "rule not in this workspace" and whose text is exactly its own path becomes `<x> (rule not in this workspace)` (backticks kept); an unknown name keeps its link. Files are UTF-8 without BOM, CRLF. The same applies to agent prompts and descriptions, command bodies and descriptions, and skill text files; a `steering` ingredient is emitted as written. On top of what the script did, it also generates `.kiro/agents/*.json` (tools mapped to Kiro names, `resources` bound to the agent's stack rule + `repo-discovery`, or `**/*.md` for generic agents), `.kiro/steering/commands/*.md`, `.kiro/skills/*/SKILL.md` and `.kiro/settings/mcp.json`. `.kiro/settings/mcp.json` receives each MCP server exactly as the Forge holds it, in its own key order — including keys Kiro may not use (`type` always went through). The banner text is a parameter (`kiro.banner`) so existing workspaces can adopt without a rewrite. Scripts and hooks have no Kiro equivalent: they are skipped with a warning.
|
|
191
191
|
|
|
192
|
-
**agents-md** — one `AGENTS.md` with the always-on rules concatenated and the scoped rules after them — each listed at the file a target of the workspace writes for it (`.claude/rules/<name>.md` when `claude-code` writes it, else `.kiro/steering/<name>.md` when `kiro` does), or, when no target writes it, embedded in full under a `> Scoped rule — <scope>` line, for tools that read the open standard (Codex, Cursor, Warp, Copilot, Kimi…). A `.claude/rules/<x>.md` reference inside a body follows the rule it names: it is kept when `claude-code` writes that rule, becomes `.kiro/steering/<x>.md` when only `kiro` writes that file (from the rule or from a `steering` ingredient of that name), becomes `AGENTS.md (rule: <x>)` when the rule's text is in this file, and otherwise becomes `<x> (rule not in this workspace)` with a warning (an unknown name is left as written when `claude-code` is a target); without `claude-code`, the warning also names references to other `.claude/` files, which are left as written. Every other ingredient type aimed at `agents-md` — including through the default `targets: "*"` — has no `AGENTS.md` equivalent: it is skipped with a warning — one line per type, naming every skipped ingredient. The file keeps the line endings and BOM of the one it replaces; a new one is LF without a BOM.
|
|
192
|
+
**agents-md** — one `AGENTS.md` with the always-on rules concatenated and the scoped rules after them — each listed at the file a target of the workspace writes for it (`.claude/rules/<name>.md` when `claude-code` writes it, else `.kiro/steering/<name>.md` when `kiro` does), or, when no target writes it, embedded in full under a `> Scoped rule — <scope>` line, for tools that read the open standard (Codex, Cursor, Warp, Copilot, Kimi…). A `.claude/rules/<x>.md` reference inside a body follows the rule it names: it is kept when `claude-code` writes that rule, becomes `.kiro/steering/<x>.md` when only `kiro` writes that file (from the rule or from a `steering` ingredient of that name), becomes `AGENTS.md (rule: <x>)` when the rule's text is in this file, and otherwise becomes `<x> (rule not in this workspace)` with a warning (an unknown name is left as written when `claude-code` is a target); a reference inside a link's text is resolved the same way, and a link whose target reads "rule not in this workspace" and whose text is exactly its own path becomes `<x> (rule not in this workspace)` (backticks kept); without `claude-code`, the warning also names references to other `.claude/` files, which are left as written. Every other ingredient type aimed at `agents-md` — including through the default `targets: "*"` — has no `AGENTS.md` equivalent: it is skipped with a warning — one line per type, naming every skipped ingredient. The file keeps the line endings and BOM of the one it replaces; a new one is LF without a BOM.
|
|
193
193
|
|
|
194
194
|
Conversion of hooks/subagents to other tools is out of scope here: the plan is to delegate that to [rulesync](https://github.com/dyoshikawa/rulesync) rather than reimplement it.
|
|
195
195
|
|
|
@@ -241,6 +241,24 @@ Next: `craftar init` from a profile; profile-driven integrations (PM tool → MC
|
|
|
241
241
|
|
|
242
242
|
## Upgrading
|
|
243
243
|
|
|
244
|
+
### to 0.8.6
|
|
245
|
+
|
|
246
|
+
- **A rule reference inside the text of a Markdown link is now resolved like any other**, in `AGENTS.md` and in the kiro files. Before, the text of a link that `AGENTS.md` or kiro rewrote was copied as the Forge held it, or blanket-rewritten to `.kiro/steering/`.
|
|
247
|
+
- A link whose target reads "rule not in this workspace" and whose text is exactly its own path — `[.claude/rules/x.md](.claude/rules/x.md)`, backticks or not — becomes `x (rule not in this workspace)`, backticks kept. Any other text keeps the link's usual wording, with its references resolved.
|
|
248
|
+
- In a link kiro keeps for `claude-code`, only the references in the text move; the rest of the text stays as written.
|
|
249
|
+
- **No byte change** for the `.kiro/` files of a workspace whose kiro texts cite only rules kiro writes or names that are no rule, nor for an `AGENTS.md` written with `claude-code` whose links cite only rules `claude-code` writes or names that are neither a rule nor a `steering` file kiro writes — a workspace `craftar import` produced keeps its `.kiro/` bytes, and its `AGENTS.md` bytes unless a link's text names one of its hand-written steering files. An `AGENTS.md` written without `claude-code` updates wherever a link's text holds a `.claude/rules/<x>.md` reference, known rule or not. In a kiro file, a link's text that cites an unknown name now adds an entry to the `kiro:` warning; its bytes do not change, except in a link kept for `claude-code`, where that name moves to `.kiro/steering/`.
|
|
250
|
+
- An affected workspace shows `AGENTS.md` or the `.kiro/` files as `update`, and `craftar sync --check` exits 1 until it syncs.
|
|
251
|
+
|
|
252
|
+
### to 0.8.5
|
|
253
|
+
|
|
254
|
+
- **The kiro target stops turning a reference to a rule it does not write into a `.kiro/steering/` path that does not exist.** Only files under `.kiro/` change; no other generated file and no lock field.
|
|
255
|
+
- **No byte change:** a workspace in which every rule a kiro text cites is one kiro writes, and whose hand-written commands cite no `.claude/rules/` path in their `description`. Every workspace `craftar import` produced is in this case. A cited unknown name now adds a warning.
|
|
256
|
+
- **A cited rule kiro does not write:** the reference goes back to `.claude/rules/<x>.md` when `claude-code` writes the rule, becomes `AGENTS.md (rule: <x>)` when only `AGENTS.md` holds it, or else `<x> (rule not in this workspace)`.
|
|
257
|
+
- **A command written by hand in the Forge (no raw frontmatter):** its `description` is now resolved like its body, and that includes the directory rewrite.
|
|
258
|
+
- **At most one `kiro:` warning about rule references per plan.** It names every reference reworded to "rule not in this workspace", and every unknown name, which is still rewritten to `.kiro/steering/`. It never changes an exit code.
|
|
259
|
+
- An affected workspace shows those `.kiro/` files as `update`, and `craftar sync --check` exits 1 until it syncs.
|
|
260
|
+
- An agent's `resources` do not change.
|
|
261
|
+
|
|
244
262
|
### to 0.8.4
|
|
245
263
|
|
|
246
264
|
- **A `.claude/rules/<x>.md` reference inside a rule body that goes into `AGENTS.md` is resolved by the rule it names.** Only `AGENTS.md` changes; no other generated file and no lock field.
|
|
@@ -249,7 +267,7 @@ Next: `craftar init` from a profile; profile-driven integrations (PM tool → MC
|
|
|
249
267
|
- **With `claude-code`:** only a reference to a rule `claude-code` does not write, or to a `steering` ingredient `kiro` writes, moves. An unknown name is left as written.
|
|
250
268
|
- **At most one warning per `AGENTS.md`** names every reference turned into `<x> (rule not in this workspace)` (a reference made to point at `.kiro/steering/` or into `AGENTS.md` is not reported). Without `claude-code`, it also names references to other `.claude/` files (agents, commands, skills, scripts, hooks), which are left as written. It repeats on every run until the body, the cited rule's `targets` or the workspace's targets change, and it never changes an exit code.
|
|
251
269
|
- An affected workspace shows `AGENTS.md` as `update`, and `craftar sync --check` exits 1 until it syncs.
|
|
252
|
-
- The kiro emitter still rewrites every `.claude/rules/` to `.kiro/steering/`;
|
|
270
|
+
- The kiro emitter still rewrites every `.claude/rules/` to `.kiro/steering/`; 0.8.5 addresses it in part — see *to 0.8.5*.
|
|
253
271
|
|
|
254
272
|
### to 0.8.3
|
|
255
273
|
|
package/dist/cli.js
CHANGED
|
@@ -18,7 +18,7 @@ import { HUNK_CLASSES, UnifyPlanSchema } from "./schema/index.js";
|
|
|
18
18
|
process.stdout.on("error", (e) => { if (e.code === "EPIPE")
|
|
19
19
|
process.exit(0); });
|
|
20
20
|
const program = new Command();
|
|
21
|
-
program.name("craftar").description("Craft, sync and convert AI-coding workspace harnesses.").version("0.8.
|
|
21
|
+
program.name("craftar").description("Craft, sync and convert AI-coding workspace harnesses.").version("0.8.6");
|
|
22
22
|
/* ---------------------------------------------------------------- import */
|
|
23
23
|
program
|
|
24
24
|
.command("import")
|
package/dist/emitters/kiro.js
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { toCrlf } from "../core/text.js";
|
|
2
2
|
import { serializeFrontmatter } from "../core/frontmatter.js";
|
|
3
3
|
import { listFiles } from "../core/forge.js";
|
|
4
|
-
import { appliesTo, mcpServers, outName, ruleFile, RULE_NAME_CHARS } from "./shared.js";
|
|
4
|
+
import { appliesTo, buildRuleLookup, mcpServers, outName, resolveRuleRefs, ruleFile, RULE_NAME_CHARS, UNKNOWN_NAME_KIND } from "./shared.js";
|
|
5
5
|
/** Files kiro copies as text, through `ctx.text` (substituted); anything else is copied as raw bytes. */
|
|
6
6
|
export const KIRO_TEXT_EXT = /\.(md|txt|json|ya?ml)$/i;
|
|
7
7
|
/**
|
|
8
8
|
* Kiro target. Reproduces, then extends, the behaviour of the hand-written
|
|
9
9
|
* `.claude/scripts/sync-steering.ps1` this target was extracted from:
|
|
10
10
|
* - steering = frontmatter(inclusion) + GENERATED banner + rule body
|
|
11
|
-
* - `.claude/rules/` references are
|
|
11
|
+
* - `.claude/rules/` references are resolved: kiro-written rules → `.kiro/steering/`,
|
|
12
|
+
* claude-code-written rules → unchanged, agents-md-only rules → `AGENTS.md`,
|
|
13
|
+
* dead rules → `<x> (rule not in this workspace)`, unknown → `.kiro/steering/` with a warning (spec 17)
|
|
12
14
|
* - UTF-8 without BOM, CRLF (the exact shape Kiro already consumes)
|
|
13
15
|
* and additionally generates what the script never did: agents JSON, commands and skills.
|
|
14
16
|
*/
|
|
@@ -20,13 +22,22 @@ export const kiro = {
|
|
|
20
22
|
const banner = String(ctx.resolution.params["kiro.banner"] ?? "<!-- GENERATED from {{source}} by craftar -- do not edit. -->");
|
|
21
23
|
const ruleNames = new Set(ctx.resolution.ingredients.filter((i) => i.meta.type === "rule").map((i) => outName(i.meta)));
|
|
22
24
|
const scopedRules = ctx.resolution.ingredients.filter((i) => i.meta.type === "rule" && i.meta.inclusion === "fileMatch").map((i) => outName(i.meta));
|
|
25
|
+
const targets = ctx.resolution.targets;
|
|
26
|
+
const lookup = buildRuleLookup(ctx.resolution.ingredients);
|
|
27
|
+
// Collect reports for the warning (spec 17 §4.5)
|
|
28
|
+
const reports = [];
|
|
29
|
+
const resolve = (text, citing) => {
|
|
30
|
+
const { text: resolved, report } = resolveRuleRefs(text, citing, lookup, targets, "kiro");
|
|
31
|
+
reports.push(report);
|
|
32
|
+
return resolved;
|
|
33
|
+
};
|
|
23
34
|
for (const ing of ctx.resolution.ingredients) {
|
|
24
35
|
if (!appliesTo(ing.meta.targets, t))
|
|
25
36
|
continue;
|
|
26
37
|
const m = ing.meta;
|
|
27
38
|
switch (m.type) {
|
|
28
39
|
case "rule": {
|
|
29
|
-
const body =
|
|
40
|
+
const body = resolve(await ctx.text(ing, m.file), ing.ref);
|
|
30
41
|
const fm = m.inclusion === "fileMatch"
|
|
31
42
|
? `---\ninclusion: fileMatch\nfileMatchPattern: ${JSON.stringify(Array.isArray(m.fileMatchPattern) ? m.fileMatchPattern.join(",") : m.fileMatchPattern ?? "**")}\n---\n\n`
|
|
32
43
|
: `---\ninclusion: ${m.inclusion}\n---\n\n`;
|
|
@@ -35,32 +46,42 @@ export const kiro = {
|
|
|
35
46
|
break;
|
|
36
47
|
}
|
|
37
48
|
case "steering":
|
|
49
|
+
// Steering bodies are emitted as written (spec 17 §2)
|
|
38
50
|
out.push(crlf(`.kiro/steering/${outName(m)}.md`, await ctx.text(ing, m.file), ing.ref));
|
|
39
51
|
break;
|
|
40
52
|
case "agent": {
|
|
41
|
-
|
|
42
|
-
const description =
|
|
53
|
+
// Resolve description first, then body (spec 17 §4.5 order: description before prompt)
|
|
54
|
+
const description = resolve(m.description ?? "", ing.ref);
|
|
55
|
+
// Read the body once and derive both versions from it
|
|
56
|
+
const rawBody = await ctx.text(ing, m.file);
|
|
57
|
+
const body = resolve(rawBody, ing.ref);
|
|
43
58
|
const tools = mapTools(m.tools, ctx);
|
|
44
|
-
|
|
59
|
+
// agentResources reads the blanket-rewritten text, not the resolved text (spec 17 §4.6)
|
|
60
|
+
const resources = m.resources ?? agentResources(outName(m), rewrite(m.description ?? "") + "\n" + rewrite(rawBody), ruleNames, scopedRules);
|
|
45
61
|
const json = JSON.stringify({ name: outName(m), description, prompt: body.replace(/^\n+/, "").replace(/\n+$/, ""), tools, allowedTools: tools, resources }, null, 2) + "\n";
|
|
46
62
|
out.push(crlf(`.kiro/agents/${outName(m)}.json`, json, ing.ref));
|
|
47
63
|
break;
|
|
48
64
|
}
|
|
49
65
|
case "command": {
|
|
50
|
-
|
|
51
|
-
|
|
66
|
+
// Resolve description and raw frontmatter first, then body (spec 17 §4.5 order: frontmatter before body)
|
|
67
|
+
// When frontmatterRaw is set, the description field is unused (serializeFrontmatter ignores it),
|
|
68
|
+
// so we skip resolving it to avoid spurious reports.
|
|
69
|
+
const resolvedDescription = !m.frontmatterRaw && m.description !== undefined ? resolve(m.description, ing.ref) : undefined;
|
|
70
|
+
const resolvedFm = m.frontmatterRaw ? resolve(m.frontmatterRaw, ing.ref) : null;
|
|
71
|
+
const body = resolve(await ctx.text(ing, m.file), ing.ref);
|
|
72
|
+
const doc = serializeFrontmatter({ description: resolvedDescription, "argument-hint": m.argumentHint, "allowed-tools": m.allowedTools }, body, { raw: resolvedFm });
|
|
52
73
|
out.push(crlf(`.kiro/steering/commands/${outName(m)}.md`, `---\ninclusion: manual\n---\n\n` + doc, ing.ref));
|
|
53
74
|
break;
|
|
54
75
|
}
|
|
55
76
|
case "skill": {
|
|
56
77
|
if (m.layout === "file") {
|
|
57
|
-
out.push(crlf(`.kiro/skills/${outName(m)}/SKILL.md`,
|
|
78
|
+
out.push(crlf(`.kiro/skills/${outName(m)}/SKILL.md`, resolve(await ctx.text(ing, "SKILL.md"), ing.ref), ing.ref));
|
|
58
79
|
}
|
|
59
80
|
else {
|
|
60
81
|
for (const f of await listFiles(ing.dir)) {
|
|
61
82
|
if (f === "ingredient.yaml")
|
|
62
83
|
continue;
|
|
63
|
-
out.push(await copy(ctx, ing, f, `.kiro/skills/${outName(m)}/${f}
|
|
84
|
+
out.push(await copy(ctx, ing, f, `.kiro/skills/${outName(m)}/${f}`, resolve));
|
|
64
85
|
}
|
|
65
86
|
}
|
|
66
87
|
break;
|
|
@@ -74,6 +95,8 @@ export const kiro = {
|
|
|
74
95
|
break;
|
|
75
96
|
}
|
|
76
97
|
}
|
|
98
|
+
// Emit one warning for all dead and unknown references (spec 17 §4.5)
|
|
99
|
+
emitKiroWarning(ctx, reports);
|
|
77
100
|
const servers = mcpServers(ctx, t, ".kiro/settings/mcp.json");
|
|
78
101
|
if (Object.keys(servers).length) {
|
|
79
102
|
out.push(crlf(".kiro/settings/mcp.json", JSON.stringify({ mcpServers: servers }, null, 2) + "\n", "mcp/*"));
|
|
@@ -81,15 +104,59 @@ export const kiro = {
|
|
|
81
104
|
return out;
|
|
82
105
|
},
|
|
83
106
|
};
|
|
107
|
+
/** Emit the kiro warning for dead and unknown references (spec 17 §4.5). */
|
|
108
|
+
function emitKiroWarning(ctx, reports) {
|
|
109
|
+
// Collect entries: D (has kind with "reaches no target") and unknown (empty kind)
|
|
110
|
+
const dead = [];
|
|
111
|
+
const unknown = [];
|
|
112
|
+
const seenDead = new Set();
|
|
113
|
+
const seenUnknown = new Set();
|
|
114
|
+
for (const report of reports) {
|
|
115
|
+
for (const e of report.reworded) {
|
|
116
|
+
const key = `${e.ref}|${e.citing}`;
|
|
117
|
+
if (e.kind !== UNKNOWN_NAME_KIND) {
|
|
118
|
+
// D: has a kind string (e.g. "rule/x reaches no target here")
|
|
119
|
+
if (!seenDead.has(key)) {
|
|
120
|
+
seenDead.add(key);
|
|
121
|
+
dead.push(e);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
// unknown: empty kind string (UNKNOWN_NAME_KIND)
|
|
126
|
+
if (!seenUnknown.has(key)) {
|
|
127
|
+
seenUnknown.add(key);
|
|
128
|
+
unknown.push({ ref: e.ref, citing: e.citing });
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
if (dead.length === 0 && unknown.length === 0)
|
|
134
|
+
return;
|
|
135
|
+
const parts = [];
|
|
136
|
+
if (dead.length > 0) {
|
|
137
|
+
const entries = dead.map((e) => `${e.ref} (in ${e.citing}; ${e.kind})`).join(", ");
|
|
138
|
+
parts.push(`${dead.length} reference(s) to rule files this workspace does not have — reworded: ${entries}`);
|
|
139
|
+
}
|
|
140
|
+
if (unknown.length > 0) {
|
|
141
|
+
const entries = unknown.map((e) => `${e.ref} (in ${e.citing})`).join(", ");
|
|
142
|
+
if (dead.length > 0) {
|
|
143
|
+
parts.push(`${unknown.length} reference(s) to names that are no rule or steering here — rewritten to .kiro/steering/ as before: ${entries}`);
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
parts.push(`${unknown.length} reference(s) to names that are no rule or steering of this workspace — rewritten to .kiro/steering/ as before: ${entries}`);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
ctx.warn(`kiro: ${parts.join("; ")}`);
|
|
150
|
+
}
|
|
84
151
|
export function rewrite(text) {
|
|
85
152
|
return text.replace(/\.claude\/rules\//g, ".kiro/steering/");
|
|
86
153
|
}
|
|
87
154
|
function crlf(path, text, ingredient) {
|
|
88
155
|
return { path, content: Buffer.from(toCrlf(text), "utf8"), target: "kiro", ingredient };
|
|
89
156
|
}
|
|
90
|
-
async function copy(ctx, ing, file, relPath) {
|
|
157
|
+
async function copy(ctx, ing, file, relPath, resolve) {
|
|
91
158
|
if (KIRO_TEXT_EXT.test(file))
|
|
92
|
-
return crlf(relPath,
|
|
159
|
+
return crlf(relPath, resolve(await ctx.text(ing, file), ing.ref), ing.ref);
|
|
93
160
|
return { path: relPath, content: await ctx.bytes(ing, file), target: "kiro", ingredient: ing.ref };
|
|
94
161
|
}
|
|
95
162
|
const TOOL_MAP = {
|
|
@@ -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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"}
|
package/dist/emitters/shared.js
CHANGED
|
@@ -4,6 +4,8 @@ export function appliesTo(targets, target) {
|
|
|
4
4
|
}
|
|
5
5
|
/** The characters of a rule name in a `.claude/rules/<name>.md` reference (spec 15 §4.1). */
|
|
6
6
|
export const RULE_NAME_CHARS = "A-Za-z0-9._-";
|
|
7
|
+
/** Token pattern for rule references: `.claude/rules/<name>.md` with left boundary (spec 15 §4.1). */
|
|
8
|
+
const TOKEN_PATTERN_SOURCE = `(^|[^/${RULE_NAME_CHARS}])(\\.claude\\/rules\\/([${RULE_NAME_CHARS}]+)\\.md)`;
|
|
7
9
|
/**
|
|
8
10
|
* The target that writes a rule's own file in this workspace, `claude-code` first, else `kiro`, else none
|
|
9
11
|
* (spec 14 §4.1): a workspace target the rule's `targets` admit.
|
|
@@ -15,6 +17,8 @@ export function ruleWriter(targets, ruleTargets) {
|
|
|
15
17
|
return "kiro";
|
|
16
18
|
return null;
|
|
17
19
|
}
|
|
20
|
+
/** The kind string for an unknown name (no rule or steering with that name). */
|
|
21
|
+
export const UNKNOWN_NAME_KIND = "";
|
|
18
22
|
/** Build the lookup maps for rule reference resolution, once per AGENTS.md. */
|
|
19
23
|
export function buildRuleLookup(ingredients) {
|
|
20
24
|
const rulesByName = new Map();
|
|
@@ -29,19 +33,39 @@ export function buildRuleLookup(ingredients) {
|
|
|
29
33
|
return { rulesByName, steeringsByName };
|
|
30
34
|
}
|
|
31
35
|
/**
|
|
32
|
-
* Resolve `.claude/rules/<x>.md` references in a body
|
|
36
|
+
* Resolve `.claude/rules/<x>.md` references in a body (spec 15 §4.1–§4.3, spec 17 §4.2–§4.3, spec 20).
|
|
37
|
+
* Mode "agents-md" (default) is for AGENTS.md; mode "kiro" is for kiro files.
|
|
33
38
|
* Returns the transformed text and a report of what was reworded or found dead.
|
|
34
39
|
*/
|
|
35
|
-
export function resolveRuleRefs(body, citing, lookup, targets) {
|
|
40
|
+
export function resolveRuleRefs(body, citing, lookup, targets, mode = "agents-md") {
|
|
36
41
|
const report = { reworded: [], others: [] };
|
|
37
42
|
const hasCc = targets.includes("claude-code");
|
|
38
43
|
const hasKiro = targets.includes("kiro");
|
|
44
|
+
const hasMd = targets.includes("agents-md");
|
|
39
45
|
const { rulesByName, steeringsByName } = lookup;
|
|
40
|
-
// Determine rule state: A, B, C, D, or unknown (spec 15 §4.2)
|
|
41
46
|
const ruleState = (name) => {
|
|
42
47
|
const rule = rulesByName.get(name);
|
|
48
|
+
if (mode === "kiro") {
|
|
49
|
+
// K1: kiro writes it — a rule or steering that admits kiro (spec 17 §4.2)
|
|
50
|
+
if (rule && hasKiro && appliesTo(rule.meta.targets, "kiro"))
|
|
51
|
+
return "K1";
|
|
52
|
+
const steering = steeringsByName.get(name);
|
|
53
|
+
if (steering && hasKiro && appliesTo(steering.meta.targets, "kiro"))
|
|
54
|
+
return "K1";
|
|
55
|
+
// K2: a rule and claude-code writes it
|
|
56
|
+
if (rule && hasCc && appliesTo(rule.meta.targets, "claude-code"))
|
|
57
|
+
return "K2";
|
|
58
|
+
// K3: a rule aimed at agents-md, and agents-md is a workspace target
|
|
59
|
+
if (rule && hasMd && appliesTo(rule.meta.targets, "agents-md"))
|
|
60
|
+
return "K3";
|
|
61
|
+
// D: any other rule
|
|
62
|
+
if (rule)
|
|
63
|
+
return "D";
|
|
64
|
+
// unknown: anything else
|
|
65
|
+
return "unknown";
|
|
66
|
+
}
|
|
67
|
+
// agents-md mode (spec 15 §4.2)
|
|
43
68
|
if (rule) {
|
|
44
|
-
// A or B (rule): use ruleWriter to decide
|
|
45
69
|
const writer = ruleWriter(targets, rule.meta.targets);
|
|
46
70
|
if (writer === "claude-code")
|
|
47
71
|
return "A";
|
|
@@ -52,15 +76,11 @@ export function resolveRuleRefs(body, citing, lookup, targets) {
|
|
|
52
76
|
const steering = steeringsByName.get(name);
|
|
53
77
|
if (steering && hasKiro && appliesTo(steering.meta.targets, "kiro"))
|
|
54
78
|
return "B";
|
|
55
|
-
// C or D only when a rule exists
|
|
56
79
|
if (rule) {
|
|
57
|
-
// C: rule aimed at agents-md (text is in AGENTS.md)
|
|
58
80
|
if (appliesTo(rule.meta.targets, "agents-md"))
|
|
59
81
|
return "C";
|
|
60
|
-
// D: rule exists but not written by any target here
|
|
61
82
|
return "D";
|
|
62
83
|
}
|
|
63
|
-
// No rule with this name
|
|
64
84
|
return "unknown";
|
|
65
85
|
};
|
|
66
86
|
// Right boundary: not followed by letter, digit, `_`, `-`, or `.` followed by one of those (spec 15 §4.1)
|
|
@@ -75,6 +95,80 @@ export function resolveRuleRefs(body, citing, lookup, targets) {
|
|
|
75
95
|
return false;
|
|
76
96
|
return true;
|
|
77
97
|
};
|
|
98
|
+
// Blanket rewrite for kiro mode: .claude/rules/ → .kiro/steering/
|
|
99
|
+
const kiroRewrite = (s) => s.replace(/\.claude\/rules\//g, ".kiro/steering/");
|
|
100
|
+
// Resolve a single token reference (spec 20 §4.1): used for tokens and link text references.
|
|
101
|
+
// Returns the replacement text and, if it rewords to "not in this workspace", the reworded entry.
|
|
102
|
+
const resolveToken = (name) => {
|
|
103
|
+
const state = ruleState(name);
|
|
104
|
+
const rule = rulesByName.get(name);
|
|
105
|
+
if (mode === "kiro") {
|
|
106
|
+
switch (state) {
|
|
107
|
+
case "K1": return { text: ruleFile("kiro", { name }) };
|
|
108
|
+
case "K2": return { text: `.claude/rules/${name}.md` }; // unchanged
|
|
109
|
+
case "K3": return { text: `AGENTS.md (rule: ${name})` };
|
|
110
|
+
case "D": return { text: `${name} (rule not in this workspace)`, reworded: { ref: `.claude/rules/${name}.md`, kind: `${rule.ref} reaches no target here` } };
|
|
111
|
+
case "unknown": return { text: ruleFile("kiro", { name }), reworded: { ref: `.claude/rules/${name}.md`, kind: UNKNOWN_NAME_KIND } };
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
switch (state) {
|
|
116
|
+
case "A": return { text: `.claude/rules/${name}.md` }; // unchanged
|
|
117
|
+
case "B": return { text: ruleFile("kiro", { name }) };
|
|
118
|
+
case "C": return { text: `AGENTS.md (rule: ${name})` };
|
|
119
|
+
case "D": return { text: `${name} (rule not in this workspace)`, reworded: { ref: `.claude/rules/${name}.md`, kind: `${rule.ref} reaches no target here` } };
|
|
120
|
+
case "unknown":
|
|
121
|
+
if (hasCc)
|
|
122
|
+
return { text: `.claude/rules/${name}.md` }; // unchanged
|
|
123
|
+
return { text: `${name} (rule not in this workspace)`, reworded: { ref: `.claude/rules/${name}.md`, kind: "no such rule" } };
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return { text: `.claude/rules/${name}.md` }; // fallback
|
|
127
|
+
};
|
|
128
|
+
// Collapse: a link whose text is exactly its path becomes the token form (spec 20 §4.2).
|
|
129
|
+
// Returns the token form if collapsible, null otherwise.
|
|
130
|
+
const collapse = (text, name) => {
|
|
131
|
+
const exactPath = `.claude/rules/${name}.md`;
|
|
132
|
+
const backtickedPath = `\`${exactPath}\``;
|
|
133
|
+
if (text !== exactPath && text !== backtickedPath)
|
|
134
|
+
return null;
|
|
135
|
+
const hasBackticks = text === backtickedPath;
|
|
136
|
+
const tokenText = `${name} (rule not in this workspace)`;
|
|
137
|
+
return hasBackticks ? `\`${tokenText}\`` : tokenText;
|
|
138
|
+
};
|
|
139
|
+
// Resolve references inside link text (spec 20 §4.1). Returns the resolved text and any reworded
|
|
140
|
+
// entries from the text's references. In kiro mode, non-references get the directory rewrite
|
|
141
|
+
// except for K2 links (Ruling 4: non-references stay as written).
|
|
142
|
+
const resolveTextRefs = (text, isK2) => {
|
|
143
|
+
const textPattern = new RegExp(TOKEN_PATTERN_SOURCE, "g");
|
|
144
|
+
const textMatches = [];
|
|
145
|
+
let textMatch;
|
|
146
|
+
while ((textMatch = textPattern.exec(text)) !== null) {
|
|
147
|
+
const [match, before, token, name] = textMatch;
|
|
148
|
+
const offset = textMatch.index + before.length;
|
|
149
|
+
const fullOffset = textMatch.index + match.length;
|
|
150
|
+
const after = text.slice(fullOffset);
|
|
151
|
+
if (!rightBoundary(after))
|
|
152
|
+
continue;
|
|
153
|
+
const { text: replacement, reworded } = resolveToken(name);
|
|
154
|
+
textMatches.push({ offset, length: token.length, replacement, reworded });
|
|
155
|
+
}
|
|
156
|
+
// Build the result: gaps get the blanket rewrite in kiro mode, unless this is a K2 link (Ruling 4)
|
|
157
|
+
let resolved = "";
|
|
158
|
+
let lastEnd = 0;
|
|
159
|
+
const rewordedEntries = [];
|
|
160
|
+
for (const m of textMatches) {
|
|
161
|
+
const gap = text.slice(lastEnd, m.offset);
|
|
162
|
+
resolved += (mode === "kiro" && !isK2) ? kiroRewrite(gap) : gap;
|
|
163
|
+
resolved += m.replacement;
|
|
164
|
+
lastEnd = m.offset + m.length;
|
|
165
|
+
if (m.reworded)
|
|
166
|
+
rewordedEntries.push({ offset: m.offset, ref: m.reworded.ref, kind: m.reworded.kind });
|
|
167
|
+
}
|
|
168
|
+
const tail = text.slice(lastEnd);
|
|
169
|
+
resolved += (mode === "kiro" && !isK2) ? kiroRewrite(tail) : tail;
|
|
170
|
+
return { resolved, reworded: rewordedEntries };
|
|
171
|
+
};
|
|
78
172
|
const matches = [];
|
|
79
173
|
// Link pattern: [text](.claude/rules/<name>.md) or [text](.claude/rules/<name>.md#frag)
|
|
80
174
|
const linkPattern = new RegExp(`\\[([^\\]]+)\\]\\(\\.claude\\/rules\\/([${RULE_NAME_CHARS}]+)\\.md(#[^)]*)?\\)`, "g");
|
|
@@ -82,34 +176,119 @@ export function resolveRuleRefs(body, citing, lookup, targets) {
|
|
|
82
176
|
while ((linkMatch = linkPattern.exec(body)) !== null) {
|
|
83
177
|
const [match, text, name, frag] = linkMatch;
|
|
84
178
|
const offset = linkMatch.index;
|
|
179
|
+
// Warning offset is at the target's start, not at `[` (spec 20 §4.3)
|
|
180
|
+
const targetOffset = offset + 1 + text.length + 2; // `[` + text + `](`
|
|
85
181
|
const state = ruleState(name);
|
|
86
182
|
const rule = rulesByName.get(name);
|
|
87
183
|
let replacement;
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
184
|
+
const reworded = [];
|
|
185
|
+
// Resolve references in the link's text (spec 20 §4.1)
|
|
186
|
+
const isK2 = mode === "kiro" && state === "K2";
|
|
187
|
+
const { resolved: resolvedText, reworded: textReworded } = resolveTextRefs(text, isK2);
|
|
188
|
+
// Add text reworded entries, positioned before the link's target (spec 20 §4.3)
|
|
189
|
+
for (const tw of textReworded)
|
|
190
|
+
reworded.push({ offset: offset + 1 + tw.offset, ref: tw.ref, kind: tw.kind });
|
|
191
|
+
if (mode === "kiro") {
|
|
192
|
+
// Kiro mode (spec 17 §4.3)
|
|
193
|
+
switch (state) {
|
|
194
|
+
case "K1":
|
|
195
|
+
// Fragment gets the blanket rewrite too (spec 17 §4.3)
|
|
196
|
+
replacement = `[${resolvedText}](${ruleFile("kiro", { name })}${kiroRewrite(frag ?? "")})`;
|
|
197
|
+
break;
|
|
198
|
+
case "K2":
|
|
199
|
+
// unchanged target — but text references are resolved (spec 20 §4.1, Ruling 4)
|
|
200
|
+
replacement = `[${resolvedText}](${`.claude/rules/${name}.md`}${frag ?? ""})`;
|
|
201
|
+
break;
|
|
202
|
+
case "K3":
|
|
203
|
+
replacement = `[${resolvedText}](AGENTS.md)`; // fragment dropped
|
|
204
|
+
break;
|
|
205
|
+
case "D": {
|
|
206
|
+
// Check for collapse (spec 20 §4.2)
|
|
207
|
+
const collapsed = collapse(text, name);
|
|
208
|
+
if (collapsed) {
|
|
209
|
+
replacement = collapsed;
|
|
210
|
+
reworded.length = 0; // Collapsed: only one entry, from the token form
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
replacement = `${resolvedText} (${name}, rule not in this workspace)`;
|
|
214
|
+
}
|
|
215
|
+
reworded.push({ offset: targetOffset, ref: `.claude/rules/${name}.md`, kind: `${rule.ref} reaches no target here` });
|
|
216
|
+
break;
|
|
217
|
+
}
|
|
218
|
+
case "unknown": {
|
|
219
|
+
// Unknown name gets blanket rewrite and is reported (no kind string)
|
|
220
|
+
// Fragment gets the blanket rewrite too (spec 17 §4.3)
|
|
221
|
+
reworded.push({ offset: targetOffset, ref: `.claude/rules/${name}.md`, kind: UNKNOWN_NAME_KIND });
|
|
222
|
+
replacement = `[${resolvedText}](${ruleFile("kiro", { name })}${kiroRewrite(frag ?? "")})`;
|
|
223
|
+
break;
|
|
224
|
+
}
|
|
225
|
+
default:
|
|
226
|
+
continue;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
else {
|
|
230
|
+
// agents-md mode (spec 15 §4.3)
|
|
231
|
+
switch (state) {
|
|
232
|
+
case "A":
|
|
233
|
+
// State A: link unchanged, but text is now resolved like a token (spec 20 §4.1)
|
|
234
|
+
// The text resolution already happened; we only emit a match if the text changed
|
|
235
|
+
if (resolvedText !== text) {
|
|
236
|
+
replacement = `[${resolvedText}](${`.claude/rules/${name}.md`}${frag ?? ""})`;
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
continue; // No change needed
|
|
240
|
+
}
|
|
241
|
+
break;
|
|
242
|
+
case "B":
|
|
243
|
+
replacement = `[${resolvedText}](${ruleFile("kiro", { name })}${frag ?? ""})`;
|
|
244
|
+
break;
|
|
245
|
+
case "C":
|
|
246
|
+
replacement = `[${resolvedText}](AGENTS.md)`;
|
|
247
|
+
break;
|
|
248
|
+
case "D": {
|
|
249
|
+
// Check for collapse (spec 20 §4.2)
|
|
250
|
+
const collapsed = collapse(text, name);
|
|
251
|
+
if (collapsed) {
|
|
252
|
+
replacement = collapsed;
|
|
253
|
+
reworded.length = 0; // Collapsed: only one entry, from the token form
|
|
254
|
+
}
|
|
255
|
+
else {
|
|
256
|
+
replacement = `${resolvedText} (${name}, rule not in this workspace)`;
|
|
257
|
+
}
|
|
258
|
+
reworded.push({ offset: targetOffset, ref: `.claude/rules/${name}.md`, kind: `${rule.ref} reaches no target here` });
|
|
259
|
+
break;
|
|
260
|
+
}
|
|
261
|
+
case "unknown":
|
|
262
|
+
if (hasCc) {
|
|
263
|
+
// With claude-code, unknown links are not consumed — but text is resolved (spec 20 §4.1)
|
|
264
|
+
if (resolvedText !== text) {
|
|
265
|
+
replacement = `[${resolvedText}](${`.claude/rules/${name}.md`}${frag ?? ""})`;
|
|
266
|
+
}
|
|
267
|
+
else {
|
|
268
|
+
continue; // No change needed
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
else {
|
|
272
|
+
// Without claude-code: collapse or reword (spec 20 §4.2)
|
|
273
|
+
const collapsed = collapse(text, name);
|
|
274
|
+
if (collapsed) {
|
|
275
|
+
replacement = collapsed;
|
|
276
|
+
reworded.length = 0; // Collapsed: clear text entries
|
|
277
|
+
}
|
|
278
|
+
else {
|
|
279
|
+
replacement = `${resolvedText} (${name}, rule not in this workspace)`;
|
|
280
|
+
}
|
|
281
|
+
reworded.push({ offset: targetOffset, ref: `.claude/rules/${name}.md`, kind: "no such rule" });
|
|
282
|
+
}
|
|
283
|
+
break;
|
|
284
|
+
default:
|
|
104
285
|
continue;
|
|
105
|
-
|
|
106
|
-
replacement = `${text} (${name}, rule not in this workspace)`;
|
|
107
|
-
break;
|
|
286
|
+
}
|
|
108
287
|
}
|
|
109
288
|
matches.push({ offset, length: match.length, replacement, reworded });
|
|
110
289
|
}
|
|
111
290
|
// Token pattern: .claude/rules/<name>.md (not in a link) with left boundary
|
|
112
|
-
const tokenPattern = new RegExp(
|
|
291
|
+
const tokenPattern = new RegExp(TOKEN_PATTERN_SOURCE, "g");
|
|
113
292
|
let tokenMatch;
|
|
114
293
|
while ((tokenMatch = tokenPattern.exec(body)) !== null) {
|
|
115
294
|
const [match, before, token, name] = tokenMatch;
|
|
@@ -122,47 +301,34 @@ export function resolveRuleRefs(body, citing, lookup, targets) {
|
|
|
122
301
|
// Skip if this offset overlaps with a link match (link pattern already captured it)
|
|
123
302
|
if (matches.some((m) => offset >= m.offset && offset < m.offset + m.length))
|
|
124
303
|
continue;
|
|
125
|
-
const
|
|
126
|
-
const
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
case "B":
|
|
133
|
-
replacement = ruleFile("kiro", { name });
|
|
134
|
-
break;
|
|
135
|
-
case "C":
|
|
136
|
-
replacement = `AGENTS.md (rule: ${name})`;
|
|
137
|
-
break;
|
|
138
|
-
case "D":
|
|
139
|
-
reworded = { ref: `.claude/rules/${name}.md`, kind: `${rule.ref} reaches no target here` };
|
|
140
|
-
replacement = `${name} (rule not in this workspace)`;
|
|
141
|
-
break;
|
|
142
|
-
case "unknown":
|
|
143
|
-
if (hasCc)
|
|
144
|
-
continue;
|
|
145
|
-
reworded = { ref: `.claude/rules/${name}.md`, kind: "no such rule" };
|
|
146
|
-
replacement = `${name} (rule not in this workspace)`;
|
|
147
|
-
break;
|
|
148
|
-
}
|
|
149
|
-
matches.push({ offset, length: token.length, replacement, reworded });
|
|
304
|
+
const { text: replacement, reworded } = resolveToken(name);
|
|
305
|
+
const rewordedEntries = [];
|
|
306
|
+
if (reworded)
|
|
307
|
+
rewordedEntries.push({ offset, ref: reworded.ref, kind: reworded.kind });
|
|
308
|
+
// Always add the match even if unchanged (K2, state A, unknown with claude-code) so the token
|
|
309
|
+
// is excluded from gap rewriting in kiro mode
|
|
310
|
+
matches.push({ offset, length: token.length, replacement, reworded: rewordedEntries });
|
|
150
311
|
}
|
|
151
|
-
// Sort by offset for correct warning order
|
|
312
|
+
// Sort by offset for correct warning order
|
|
152
313
|
matches.sort((a, b) => a.offset - b.offset);
|
|
153
|
-
// Collect reworded entries with their original offsets for sorting (spec 15 §4.5)
|
|
314
|
+
// Collect reworded entries with their original offsets for sorting (spec 15 §4.5, spec 20 §4.3)
|
|
154
315
|
const rewordedWithOffset = [];
|
|
155
316
|
for (const m of matches) {
|
|
156
|
-
|
|
157
|
-
rewordedWithOffset.push({ offset:
|
|
317
|
+
for (const rw of m.reworded) {
|
|
318
|
+
rewordedWithOffset.push({ offset: rw.offset, ref: rw.ref, citing, kind: rw.kind });
|
|
158
319
|
}
|
|
159
320
|
}
|
|
160
|
-
//
|
|
161
|
-
let result =
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
321
|
+
// Build the result segment by segment: gaps get the blanket rewrite in kiro mode
|
|
322
|
+
let result = "";
|
|
323
|
+
let lastEnd = 0;
|
|
324
|
+
for (const m of matches) {
|
|
325
|
+
const gap = body.slice(lastEnd, m.offset);
|
|
326
|
+
result += mode === "kiro" ? kiroRewrite(gap) : gap;
|
|
327
|
+
result += m.replacement;
|
|
328
|
+
lastEnd = m.offset + m.length;
|
|
165
329
|
}
|
|
330
|
+
const tail = body.slice(lastEnd);
|
|
331
|
+
result += mode === "kiro" ? kiroRewrite(tail) : tail;
|
|
166
332
|
// Sort by offset and deduplicate by (ref, citing), keeping first occurrence (spec 15 §4.5)
|
|
167
333
|
rewordedWithOffset.sort((a, b) => a.offset - b.offset);
|
|
168
334
|
const seen = new Set();
|
|
@@ -173,8 +339,8 @@ export function resolveRuleRefs(body, citing, lookup, targets) {
|
|
|
173
339
|
report.reworded.push({ ref: e.ref, citing: e.citing, kind: e.kind });
|
|
174
340
|
}
|
|
175
341
|
}
|
|
176
|
-
// Collect other .claude/ paths
|
|
177
|
-
if (!hasCc) {
|
|
342
|
+
// Collect other .claude/ paths only in agents-md mode (spec 15 §4.5) — not in kiro mode (spec 17 §2)
|
|
343
|
+
if (mode === "agents-md" && !hasCc) {
|
|
178
344
|
const otherDirs = ["agents", "commands", "skills", "scripts", "hooks"];
|
|
179
345
|
// The path class adds `/` for subdirectories; in `[.../-]` the `/` goes before `-` to avoid a range error.
|
|
180
346
|
const otherPattern = new RegExp(`(^|[^/${RULE_NAME_CHARS}])\\.claude\\/(${otherDirs.join("|")})\\/([A-Za-z0-9._/-]+)`, "g");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/emitters/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAY,MAAM,iBAAiB,CAAC;AAIvE,MAAM,UAAU,SAAS,CAAC,OAAuB,EAAE,MAAc;IAC/D,OAAO,OAAO,KAAK,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACrD,CAAC;AAED,6FAA6F;AAC7F,MAAM,CAAC,MAAM,eAAe,GAAG,cAAc,CAAC;AAE9C;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,OAA0B,EAAE,WAA2B;IAChF,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC,WAAW,EAAE,aAAa,CAAC;QAAE,OAAO,aAAa,CAAC;IACnG,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAC9E,OAAO,IAAI,CAAC;AACd,CAAC;AAcD,+EAA+E;AAC/E,MAAM,UAAU,eAAe,CAAC,WAAiC;IAC/D,MAAM,WAAW,GAAG,IAAI,GAAG,EAA8B,CAAC;IAC1D,MAAM,eAAe,GAAG,IAAI,GAAG,EAA8B,CAAC;IAC9D,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM;YAAE,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;aACpD,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU;YAAE,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;AAC1C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,IAAY,EACZ,MAAc,EACd,MAAkB,EAClB,OAA0B;IAE1B,MAAM,MAAM,GAAc,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACvD,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC;IAEhD,8DAA8D;IAC9D,MAAM,SAAS,GAAG,CAAC,IAAY,EAAqC,EAAE;QACpE,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,IAAI,EAAE,CAAC;YACT,0CAA0C;YAC1C,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtD,IAAI,MAAM,KAAK,aAAa;gBAAE,OAAO,GAAG,CAAC;YACzC,IAAI,MAAM,KAAK,MAAM;gBAAE,OAAO,GAAG,CAAC;QACpC,CAAC;QACD,0FAA0F;QAC1F,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,QAAQ,IAAI,OAAO,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC;YAAE,OAAO,GAAG,CAAC;QAChF,iCAAiC;QACjC,IAAI,IAAI,EAAE,CAAC;YACT,oDAAoD;YACpD,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC;gBAAE,OAAO,GAAG,CAAC;YAC1D,oDAAoD;YACpD,OAAO,GAAG,CAAC;QACb,CAAC;QACD,yBAAyB;QACzB,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;IAEF,0GAA0G;IAC1G,oGAAoG;IACpG,MAAM,aAAa,GAAG,CAAC,KAAa,EAAW,EAAE;QAC/C,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAC1C,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAClF,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAUF,MAAM,OAAO,GAAY,EAAE,CAAC;IAE5B,wFAAwF;IACxF,MAAM,WAAW,GAAG,IAAI,MAAM,CAC5B,2CAA2C,eAAe,sBAAsB,EAChF,GAAG,CACJ,CAAC;IACF,IAAI,SAAS,CAAC;IACd,OAAO,CAAC,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACrD,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,SAA2E,CAAC;QAC9G,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC;QAC/B,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,WAAmB,CAAC;QACxB,IAAI,QAAmD,CAAC;QACxD,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,GAAG;gBACN,SAAS,CAAC,kBAAkB;YAC9B,KAAK,GAAG;gBACN,WAAW,GAAG,IAAI,IAAI,KAAK,QAAQ,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,IAAI,EAAE,GAAG,CAAC;gBACtE,MAAM;YACR,KAAK,GAAG;gBACN,WAAW,GAAG,IAAI,IAAI,cAAc,CAAC,CAAC,mBAAmB;gBACzD,MAAM;YACR,KAAK,GAAG;gBACN,QAAQ,GAAG,EAAE,GAAG,EAAE,iBAAiB,IAAI,KAAK,EAAE,IAAI,EAAE,GAAG,IAAK,CAAC,GAAG,yBAAyB,EAAE,CAAC;gBAC5F,WAAW,GAAG,GAAG,IAAI,KAAK,IAAI,+BAA+B,CAAC;gBAC9D,MAAM;YACR,KAAK,SAAS;gBACZ,IAAI,KAAK;oBAAE,SAAS;gBACpB,QAAQ,GAAG,EAAE,GAAG,EAAE,iBAAiB,IAAI,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;gBACrE,WAAW,GAAG,GAAG,IAAI,KAAK,IAAI,+BAA+B,CAAC;gBAC9D,MAAM;QACV,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,4EAA4E;IAC5E,MAAM,YAAY,GAAG,IAAI,MAAM,CAC7B,SAAS,eAAe,4BAA4B,eAAe,WAAW,EAC9E,GAAG,CACJ,CAAC;IACF,IAAI,UAAU,CAAC;IACf,OAAO,CAAC,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACvD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,UAAgE,CAAC;QACtG,8FAA8F;QAC9F,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;QAChD,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;QACnD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACrC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;YAAE,SAAS;QACpC,oFAAoF;QACpF,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;YAAE,SAAS;QACtF,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,WAAmB,CAAC;QACxB,IAAI,QAAmD,CAAC;QACxD,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,GAAG;gBACN,SAAS,CAAC,kBAAkB;YAC9B,KAAK,GAAG;gBACN,WAAW,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;gBACzC,MAAM;YACR,KAAK,GAAG;gBACN,WAAW,GAAG,oBAAoB,IAAI,GAAG,CAAC;gBAC1C,MAAM;YACR,KAAK,GAAG;gBACN,QAAQ,GAAG,EAAE,GAAG,EAAE,iBAAiB,IAAI,KAAK,EAAE,IAAI,EAAE,GAAG,IAAK,CAAC,GAAG,yBAAyB,EAAE,CAAC;gBAC5F,WAAW,GAAG,GAAG,IAAI,+BAA+B,CAAC;gBACrD,MAAM;YACR,KAAK,SAAS;gBACZ,IAAI,KAAK;oBAAE,SAAS;gBACpB,QAAQ,GAAG,EAAE,GAAG,EAAE,iBAAiB,IAAI,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;gBACrE,WAAW,GAAG,GAAG,IAAI,+BAA+B,CAAC;gBACrD,MAAM;QACV,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,qFAAqF;IACrF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;IAE5C,kFAAkF;IAClF,MAAM,kBAAkB,GAAyE,EAAE,CAAC;IACpG,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;YACf,kBAAkB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QACpG,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;IACzF,CAAC;IAED,2FAA2F;IAC3F,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,CAAC,IAAI,kBAAkB,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,kHAAkH;IAClH,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,SAAS,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACvE,2GAA2G;QAC3G,MAAM,YAAY,GAAG,IAAI,MAAM,CAC7B,SAAS,eAAe,kBAAkB,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,wBAAwB,EACrF,GAAG,CACJ,CAAC;QACF,IAAI,UAAU,CAAC;QACf,OAAO,CAAC,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACzD,2EAA2E;YAC3E,IAAI,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC/C,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,MAAM,QAAQ,GAAG,WAAW,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;YACpD,gCAAgC;YAChC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,CAAC;gBAC3E,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAEjD,8FAA8F;AAC9F,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,GAAgB,EAAE,OAAe,EAAE,IAAY,EAAE,MAA6B,EAAE,UAAkB;IAC/H,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,GAAG,GAAQ,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACtF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AACxD,CAAC;AAED,uGAAuG;AACvG,MAAM,UAAU,OAAO,CAAC,CAAgC;IACtD,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC;AACxB,CAAC;AAED,0GAA0G;AAC1G,MAAM,UAAU,QAAQ,CAAC,MAA8B,EAAE,CAAgC;IACvF,OAAO,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,iBAAiB,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAkB,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AACzG,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,GAAgB,EAAE,MAAc,EAAE,IAAY;IACvE,8FAA8F;IAC9F,MAAM,OAAO,GAA4B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7D,gGAAgG;IAChG,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QAC7C,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC;YAAE,SAAS;QAC9E,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,2CAA2C,GAAG,UAAU,IAAI,KAAK,IAAI,QAAQ,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC;QAChI,6FAA6F;QAC7F,6FAA6F;QAC7F,6FAA6F;QAC7F,gDAAgD;QAChD,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;QAC/B,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/emitters/shared.ts"],"names":[],"mappings":"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"}
|