agentopology 0.8.0 → 0.9.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 (45) hide show
  1. package/README.md +5 -5
  2. package/dist/__tests__/e2e/import-project.test.d.ts +10 -0
  3. package/dist/__tests__/e2e/import-project.test.d.ts.map +1 -0
  4. package/dist/__tests__/e2e/import-project.test.js +260 -0
  5. package/dist/__tests__/e2e/import-project.test.js.map +1 -0
  6. package/dist/__tests__/e2e/unknown-names.test.d.ts +12 -0
  7. package/dist/__tests__/e2e/unknown-names.test.d.ts.map +1 -0
  8. package/dist/__tests__/e2e/unknown-names.test.js +268 -0
  9. package/dist/__tests__/e2e/unknown-names.test.js.map +1 -0
  10. package/dist/__tests__/open-findings.test.js +3 -0
  11. package/dist/__tests__/open-findings.test.js.map +1 -1
  12. package/dist/cli/index.js +42 -27
  13. package/dist/cli/index.js.map +1 -1
  14. package/dist/docs/content.js +19 -19
  15. package/dist/import/claude-code.d.ts +2 -1
  16. package/dist/import/claude-code.d.ts.map +1 -1
  17. package/dist/import/claude-code.js +15 -7
  18. package/dist/import/claude-code.js.map +1 -1
  19. package/dist/import/flow.d.ts +64 -0
  20. package/dist/import/flow.d.ts.map +1 -0
  21. package/dist/import/flow.js +176 -0
  22. package/dist/import/flow.js.map +1 -0
  23. package/dist/import/index.d.ts +11 -0
  24. package/dist/import/index.d.ts.map +1 -1
  25. package/dist/import/index.js +15 -4
  26. package/dist/import/index.js.map +1 -1
  27. package/dist/import/walk.d.ts +56 -0
  28. package/dist/import/walk.d.ts.map +1 -0
  29. package/dist/import/walk.js +163 -0
  30. package/dist/import/walk.js.map +1 -0
  31. package/dist/parser/index.d.ts.map +1 -1
  32. package/dist/parser/index.js +8 -0
  33. package/dist/parser/index.js.map +1 -1
  34. package/dist/parser/known-fields.d.ts +82 -0
  35. package/dist/parser/known-fields.d.ts.map +1 -0
  36. package/dist/parser/known-fields.js +263 -0
  37. package/dist/parser/known-fields.js.map +1 -0
  38. package/dist/parser/validator.d.ts.map +1 -1
  39. package/dist/parser/validator.js +33 -0
  40. package/dist/parser/validator.js.map +1 -1
  41. package/examples/matchmat-ship.at +2 -8
  42. package/examples/memory-system.at +0 -1
  43. package/package.json +1 -1
  44. package/spec/testing.md +9 -0
  45. package/spec/validation.md +4 -2
@@ -0,0 +1,163 @@
1
+ /**
2
+ * Reading a project for import or sync.
3
+ *
4
+ * Import used to read every file under --dir except node_modules and .git. On
5
+ * a large repo that meant every worktree and build folder: over two minutes,
6
+ * and any `agents/x.md` in the source tree became an agent. A folder name
7
+ * alone cannot decide: `.claude/skills/build/` is a real skill. So the
8
+ * generated-folder list applies outside the platform's own folders only.
9
+ *
10
+ * A read must also end, and say why if it cannot finish. On that repo 0.8.0
11
+ * tried to hold 1,061,701 files (16.4 GB) as strings, ran 656 seconds and was
12
+ * terminated with no output and no .at. So a file that is too big or unreadable
13
+ * is skipped and named, and past a total budget the read stops with a message.
14
+ *
15
+ * @module
16
+ */
17
+ import * as fs from "node:fs";
18
+ import * as path from "node:path";
19
+ /** Never holds anything a project's agent setup is made of. */
20
+ const NEVER_READ = new Set(["node_modules", ".git"]);
21
+ /** Generated or checked-out copies of the repo; skipped outside platform folders. */
22
+ export const GENERATED_FOLDERS = new Set([
23
+ ".worktrees", "worktrees", "dist", "build", "out", "coverage", ".next", ".nuxt", ".turbo",
24
+ ".cache", ".venv", "venv", "__pycache__", "target", ".pytest_cache", ".mypy_cache",
25
+ ]);
26
+ /** Folders whose children are named by the author (a skill may be called `build`). */
27
+ const NAMED_BY_AUTHOR = new Set(["agents", "skills", "commands"]);
28
+ /** Larger than any agent, skill or settings file; a log or a media file. */
29
+ export const MAX_FILE_BYTES = 5 * 1024 * 1024;
30
+ /** What one read may hold in memory. */
31
+ export const MAX_TOTAL_BYTES = 256 * 1024 * 1024;
32
+ /**
33
+ * Every file under `root`. `follow` decides which symlinked folders are entered
34
+ * (each real folder once, so a link cycle ends); `skip` decides each folder. A
35
+ * folder that cannot be listed or a broken link is recorded, not fatal.
36
+ */
37
+ function walkFiles(root, prefix, skip, follow, unread) {
38
+ const out = [];
39
+ const seen = new Set();
40
+ const walk = (dir, rel) => {
41
+ let entries;
42
+ try {
43
+ const real = fs.realpathSync(dir);
44
+ if (seen.has(real))
45
+ return;
46
+ seen.add(real);
47
+ entries = fs.readdirSync(dir, { withFileTypes: true });
48
+ }
49
+ catch (err) {
50
+ unread.push({ path: rel || ".", reason: err.message.split(":")[0] });
51
+ return;
52
+ }
53
+ for (const entry of entries) {
54
+ const childRel = path.join(rel, entry.name);
55
+ const full = path.join(dir, entry.name);
56
+ if (entry.isDirectory()) {
57
+ if (!skip(entry.name, path.basename(dir), childRel))
58
+ walk(full, childRel);
59
+ }
60
+ else if (entry.isSymbolicLink()) {
61
+ const target = fs.statSync(full, { throwIfNoEntry: false });
62
+ if (target?.isDirectory()) {
63
+ if (follow(childRel) && !skip(entry.name, path.basename(dir), childRel))
64
+ walk(full, childRel);
65
+ }
66
+ else if (target?.isFile()) {
67
+ out.push({ rel: childRel, full });
68
+ }
69
+ // A broken link, or a link to a socket or a pipe: nothing to read.
70
+ }
71
+ else if (entry.isFile()) {
72
+ out.push({ rel: childRel, full });
73
+ }
74
+ }
75
+ };
76
+ walk(root, prefix);
77
+ return out;
78
+ }
79
+ /** Read the walked files within the limits; refuse past the total budget. */
80
+ function readEntries(entries, unread) {
81
+ const files = [];
82
+ let total = 0;
83
+ for (const e of entries) {
84
+ try {
85
+ const size = fs.statSync(e.full).size;
86
+ if (size > MAX_FILE_BYTES) {
87
+ unread.push({ path: e.rel, reason: `${Math.round(size / 1048576)} MB, over the ${MAX_FILE_BYTES / 1048576} MB limit` });
88
+ continue;
89
+ }
90
+ total += size;
91
+ if (total > MAX_TOTAL_BYTES) {
92
+ throw new ReadBudgetError(`Stopped reading after ${MAX_TOTAL_BYTES / 1048576} MB (${files.length} files, at ${e.rel}). ` +
93
+ `This is more than an agent setup: point --dir at the project root or its .claude folder.`);
94
+ }
95
+ files.push({ path: e.rel, content: fs.readFileSync(e.full, "utf-8") });
96
+ }
97
+ catch (err) {
98
+ if (err instanceof ReadBudgetError)
99
+ throw err;
100
+ unread.push({ path: e.rel, reason: err.message.split(":")[0] });
101
+ }
102
+ }
103
+ return files;
104
+ }
105
+ /** The read would not fit; the CLI prints this and exits non-zero. */
106
+ export class ReadBudgetError extends Error {
107
+ }
108
+ /**
109
+ * Every file under `dir` that is not generated. Paths are project-relative
110
+ * (what `file:` records), so a walk started at the .claude folder itself keeps
111
+ * that prefix.
112
+ */
113
+ export function readProject(dir) {
114
+ const prefix = path.basename(dir) === ".claude" ? ".claude" : "";
115
+ const skip = (name, parent, rel) => NEVER_READ.has(name) ||
116
+ (GENERATED_FOLDERS.has(name) && !NAMED_BY_AUTHOR.has(parent) && !insideClaude(rel, name));
117
+ const unread = [];
118
+ const entries = walkFiles(dir, prefix, skip, () => true, unread);
119
+ return { files: readEntries(entries, unread), unread };
120
+ }
121
+ /** Inside .claude every folder is the author's, except Claude Code's own worktrees. */
122
+ function insideClaude(rel, name) {
123
+ return rel.split(path.sep).includes(".claude") && !(name === "worktrees" && rel === path.join(".claude", "worktrees"));
124
+ }
125
+ /**
126
+ * Only what a Claude Code import uses: the root .claude folder's Markdown,
127
+ * JSON and shell files, .mcp.json, and every .at file in the project (a flow
128
+ * source). The rest of the tree is walked by name and never read, and a link
129
+ * outside .claude is not followed: it can lead anywhere on the disk. Null when
130
+ * `dir` has no .claude folder: it is then a config folder given directly.
131
+ */
132
+ export function readClaudeProject(dir) {
133
+ const config = path.join(dir, ".claude");
134
+ const atConfig = path.basename(dir) === ".claude";
135
+ if (!atConfig && !fs.statSync(config, { throwIfNoEntry: false })?.isDirectory())
136
+ return null;
137
+ const nestedConfigs = [];
138
+ const inConfig = (rel) => rel === ".claude" || rel.startsWith(`.claude${path.sep}`);
139
+ const skip = (name, parent, rel) => {
140
+ if (NEVER_READ.has(name))
141
+ return true;
142
+ if (inConfig(rel))
143
+ return rel === path.join(".claude", "worktrees");
144
+ if (GENERATED_FOLDERS.has(name))
145
+ return true;
146
+ if (name === ".claude") {
147
+ nestedConfigs.push(rel);
148
+ return true;
149
+ }
150
+ return false;
151
+ };
152
+ const wanted = (rel) => {
153
+ if (rel.endsWith(".at"))
154
+ return true;
155
+ if (rel === ".mcp.json")
156
+ return true;
157
+ return inConfig(rel) && /\.(?:md|json|sh)$/.test(rel);
158
+ };
159
+ const unread = [];
160
+ const entries = walkFiles(dir, atConfig ? ".claude" : "", skip, inConfig, unread).filter((e) => wanted(e.rel));
161
+ return { files: readEntries(entries, unread), unread, nestedConfigs };
162
+ }
163
+ //# sourceMappingURL=walk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walk.js","sourceRoot":"","sources":["../../src/import/walk.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EAET,OAAO,EACP,QAAQ,EAER,UAAU,EACV,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,WAAW,EAEX,WAAW,EACX,cAAc,EACd,YAAY,EAGZ,WAAW,EACX,UAAU,EACV,cAAc,EACd,SAAS,EACT,cAAc,EAEd,gBAAgB,EAGhB,QAAQ,EACR,kBAAkB,EAClB,SAAS,EACT,UAAU,EACV,aAAa,EAEb,WAAW,EAGX,SAAS,EACT,aAAa,EAOd,MAAM,UAAU,CAAC;AAgBlB,mBAAmB,UAAU,CAAC;AAgE9B;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO;IAClB,wEAAwE;;IAExE,2DAA2D;;CAEnD,CAAC;AAkFX;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAsB3D;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,EAAE,CAwBhE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,CAgBzD;AAMD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAYA;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAkB7D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,yBAAyB,CAAC,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAC9G,gBAAgB,CA6BlB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAO/D;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,yBAAyB,CAAC,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAC9G,UAAU,CAoBZ;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CACxB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,yBAAyB,CAAC,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAC9G,SAAS,CAuQX;AAED;;GAEG;AACH,wBAAgB,SAAS,CACvB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,yBAAyB,CAAC,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAC9G,QAAQ,CAkCV;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,yBAAyB,CAAC,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAC9G,SAAS,CAkBX;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,yBAAyB,CAAC,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAC9G,SAAS,CAsBX;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,oBAAoB,CAAC,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,OAAO,EAAE,CAiN7J;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAgBjD;AAuED;;GAEG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAwF9D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CA0BtE;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,wBAAwB,CAAC,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,MAAM,EAAE,SAAS,EAAE,CAAC;IAAC,UAAU,EAAE,aAAa,EAAE,CAAA;CAAE,CA+F/O;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoBhE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,GACX,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA4BzC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE,CAexD;AAyBD;;GAEG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,yBAAyB,CAAC,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAC9G,OAAO,EAAE,CAoBX;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAqBnE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAc9D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,GACX,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA6CzC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,EAAE,CAkD5D;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAOjF;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAAC,CAmD9E;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAqE1D;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,EAAE,CAkB5D;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE,CAoC5D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,EAAE,CAoB/D;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAoD9D;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CA8CjE;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAsC3D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE,CAsB7D;AA0CD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,CAkCpD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAM/E;AA+BD;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,CA+DtD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE,CAUxD;AAED,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAiXjD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EAET,OAAO,EACP,QAAQ,EAER,UAAU,EACV,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,WAAW,EAEX,WAAW,EACX,cAAc,EACd,YAAY,EAGZ,WAAW,EACX,UAAU,EACV,cAAc,EACd,SAAS,EACT,cAAc,EAEd,gBAAgB,EAGhB,QAAQ,EACR,kBAAkB,EAClB,SAAS,EACT,UAAU,EACV,aAAa,EAEb,WAAW,EAGX,SAAS,EACT,aAAa,EAOd,MAAM,UAAU,CAAC;AAiBlB,mBAAmB,UAAU,CAAC;AAgE9B;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO;IAClB,wEAAwE;;IAExE,2DAA2D;;CAEnD,CAAC;AAkFX;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAsB3D;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,EAAE,CAwBhE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,CAgBzD;AAMD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAYA;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAkB7D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,yBAAyB,CAAC,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAC9G,gBAAgB,CA6BlB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAO/D;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,yBAAyB,CAAC,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAC9G,UAAU,CAoBZ;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CACxB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,yBAAyB,CAAC,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAC9G,SAAS,CAuQX;AAED;;GAEG;AACH,wBAAgB,SAAS,CACvB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,yBAAyB,CAAC,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAC9G,QAAQ,CAkCV;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,yBAAyB,CAAC,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAC9G,SAAS,CAkBX;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,yBAAyB,CAAC,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAC9G,SAAS,CAsBX;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,oBAAoB,CAAC,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,OAAO,EAAE,CAiN7J;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAgBjD;AAuED;;GAEG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAwF9D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CA0BtE;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,wBAAwB,CAAC,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,MAAM,EAAE,SAAS,EAAE,CAAC;IAAC,UAAU,EAAE,aAAa,EAAE,CAAA;CAAE,CA+F/O;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoBhE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,GACX,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA4BzC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE,CAexD;AAyBD;;GAEG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,yBAAyB,CAAC,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAC9G,OAAO,EAAE,CAoBX;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAqBnE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAc9D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,GACX,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA6CzC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,EAAE,CAkD5D;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAOjF;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAAC,CAmD9E;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAqE1D;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,EAAE,CAkB5D;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE,CAoC5D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,EAAE,CAoB/D;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAoD9D;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CA8CjE;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAsC3D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE,CAsB7D;AA0CD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,CAkCpD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAM/E;AA+BD;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,CA+DtD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE,CAUxD;AAED,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CA0XjD"}
@@ -13,6 +13,7 @@
13
13
  * @module
14
14
  */
15
15
  import { stripComments, extractBlock, extractAllBlocks, parseKV, parseList, parseMultilineList, unquote, parseFields, parseOutputsBlock, dedentBlock, } from "./lexer.js";
16
+ import { findUnknownNames } from "./known-fields.js";
16
17
  // ---------------------------------------------------------------------------
17
18
  // Helpers
18
19
  // ---------------------------------------------------------------------------
@@ -2485,6 +2486,10 @@ export function parse(source) {
2485
2486
  message: `"${m[1]} ${m[2]}" is outside a "${container} { }" block, so it is ignored — move it inside "${container} { ... }"`,
2486
2487
  });
2487
2488
  }
2489
+ // --- Names the parser does not read ---
2490
+ // A field or block the grammar does not have was dropped with no message,
2491
+ // and validate passed (N23). V102 names each one with its block.
2492
+ const unknownNameErrors = findUnknownNames(topBody);
2488
2493
  // --- Assemble AST ---
2489
2494
  const ast = {
2490
2495
  topology,
@@ -2540,6 +2545,9 @@ export function parse(source) {
2540
2545
  if (blockFieldMisuseWarnings.length > 0) {
2541
2546
  ast._blockFieldMisuseWarnings = blockFieldMisuseWarnings;
2542
2547
  }
2548
+ if (unknownNameErrors.length > 0) {
2549
+ ast._unknownNameErrors = unknownNameErrors;
2550
+ }
2543
2551
  // Attach source map for line number tracking in validation results.
2544
2552
  if (Object.keys(sourceMap).length > 0) {
2545
2553
  ast._sourceMap = sourceMap;