aontu 0.52.1 → 0.54.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 (310) hide show
  1. package/README.md +88 -0
  2. package/bin/aontu-mcp.js +4 -0
  3. package/dist/agentsmd.d.ts +16 -0
  4. package/dist/agentsmd.js +107 -0
  5. package/dist/agentsmd.js.map +1 -0
  6. package/dist/aontu.d.ts +15 -3
  7. package/dist/aontu.js +126 -5
  8. package/dist/aontu.js.map +1 -1
  9. package/dist/cli.d.ts +45 -1
  10. package/dist/cli.js +2845 -69
  11. package/dist/cli.js.map +1 -1
  12. package/dist/ctx.d.ts +18 -0
  13. package/dist/ctx.js +44 -0
  14. package/dist/ctx.js.map +1 -1
  15. package/dist/diff.d.ts +22 -0
  16. package/dist/diff.js +141 -0
  17. package/dist/diff.js.map +1 -0
  18. package/dist/err.d.ts +3 -1
  19. package/dist/err.js +45 -8
  20. package/dist/err.js.map +1 -1
  21. package/dist/graph.d.ts +13 -0
  22. package/dist/graph.js +110 -0
  23. package/dist/graph.js.map +1 -0
  24. package/dist/hcanon.d.ts +3 -0
  25. package/dist/hcanon.js +145 -0
  26. package/dist/hcanon.js.map +1 -0
  27. package/dist/hints.js +235 -8
  28. package/dist/hints.js.map +1 -1
  29. package/dist/jsonschema.d.ts +20 -0
  30. package/dist/jsonschema.js +425 -0
  31. package/dist/jsonschema.js.map +1 -0
  32. package/dist/lang.js +955 -110
  33. package/dist/lang.js.map +1 -1
  34. package/dist/lsp.d.ts +9 -2
  35. package/dist/lsp.js +343 -48
  36. package/dist/lsp.js.map +1 -1
  37. package/dist/mcp-server.d.ts +20 -0
  38. package/dist/mcp-server.js +147 -0
  39. package/dist/mcp-server.js.map +1 -0
  40. package/dist/mcp.d.ts +42 -0
  41. package/dist/mcp.js +941 -0
  42. package/dist/mcp.js.map +1 -0
  43. package/dist/mod-tool.d.ts +58 -0
  44. package/dist/mod-tool.js +532 -0
  45. package/dist/mod-tool.js.map +1 -0
  46. package/dist/mod.d.ts +35 -0
  47. package/dist/mod.js +345 -0
  48. package/dist/mod.js.map +1 -0
  49. package/dist/patch.d.ts +49 -0
  50. package/dist/patch.js +506 -0
  51. package/dist/patch.js.map +1 -0
  52. package/dist/provenance.d.ts +41 -0
  53. package/dist/provenance.js +336 -0
  54. package/dist/provenance.js.map +1 -0
  55. package/dist/query.d.ts +27 -0
  56. package/dist/query.js +294 -0
  57. package/dist/query.js.map +1 -0
  58. package/dist/reach.d.ts +15 -0
  59. package/dist/reach.js +168 -0
  60. package/dist/reach.js.map +1 -0
  61. package/dist/relation.d.ts +23 -0
  62. package/dist/relation.js +230 -0
  63. package/dist/relation.js.map +1 -0
  64. package/dist/report-sarif.d.ts +14 -0
  65. package/dist/report-sarif.js +102 -0
  66. package/dist/report-sarif.js.map +1 -0
  67. package/dist/sig.d.ts +25 -0
  68. package/dist/sig.js +277 -0
  69. package/dist/sig.js.map +1 -0
  70. package/dist/sigdecl.d.ts +2 -0
  71. package/dist/sigdecl.js +11 -0
  72. package/dist/sigdecl.js.map +1 -0
  73. package/dist/siggate.d.ts +4 -0
  74. package/dist/siggate.js +90 -0
  75. package/dist/siggate.js.map +1 -0
  76. package/dist/site.d.ts +4 -0
  77. package/dist/site.js +31 -0
  78. package/dist/site.js.map +1 -1
  79. package/dist/std.d.ts +1 -0
  80. package/dist/std.js +129 -0
  81. package/dist/std.js.map +1 -0
  82. package/dist/subsume.d.ts +39 -0
  83. package/dist/subsume.js +573 -0
  84. package/dist/subsume.js.map +1 -0
  85. package/dist/trim.d.ts +19 -0
  86. package/dist/trim.js +155 -0
  87. package/dist/trim.js.map +1 -0
  88. package/dist/tsconfig.tsbuildinfo +1 -1
  89. package/dist/type.d.ts +17 -1
  90. package/dist/type.js.map +1 -1
  91. package/dist/unify.d.ts +2 -1
  92. package/dist/unify.js +234 -38
  93. package/dist/unify.js.map +1 -1
  94. package/dist/utility.d.ts +8 -1
  95. package/dist/utility.js +68 -1
  96. package/dist/utility.js.map +1 -1
  97. package/dist/val/AggFuncVal.d.ts +44 -0
  98. package/dist/val/AggFuncVal.js +364 -0
  99. package/dist/val/AggFuncVal.js.map +1 -0
  100. package/dist/val/ArithFuncVal.d.ts +31 -0
  101. package/dist/val/ArithFuncVal.js +62 -0
  102. package/dist/val/ArithFuncVal.js.map +1 -0
  103. package/dist/val/BagVal.d.ts +7 -0
  104. package/dist/val/BagVal.js +150 -11
  105. package/dist/val/BagVal.js.map +1 -1
  106. package/dist/val/CloseFuncVal.js +9 -1
  107. package/dist/val/CloseFuncVal.js.map +1 -1
  108. package/dist/val/ConjunctVal.d.ts +1 -1
  109. package/dist/val/ConjunctVal.js +19 -0
  110. package/dist/val/ConjunctVal.js.map +1 -1
  111. package/dist/val/ConstraintVal.d.ts +7 -1
  112. package/dist/val/ConstraintVal.js +523 -45
  113. package/dist/val/ConstraintVal.js.map +1 -1
  114. package/dist/val/ContainerKindVal.d.ts +35 -0
  115. package/dist/val/ContainerKindVal.js +99 -0
  116. package/dist/val/ContainerKindVal.js.map +1 -0
  117. package/dist/val/CopyFuncVal.d.ts +1 -2
  118. package/dist/val/CopyFuncVal.js.map +1 -1
  119. package/dist/val/Decimal.d.ts +1 -0
  120. package/dist/val/Decimal.js +13 -0
  121. package/dist/val/Decimal.js.map +1 -1
  122. package/dist/val/DeprecateFuncVal.d.ts +11 -0
  123. package/dist/val/DeprecateFuncVal.js +47 -0
  124. package/dist/val/DeprecateFuncVal.js.map +1 -0
  125. package/dist/val/DisjunctVal.d.ts +1 -2
  126. package/dist/val/DisjunctVal.js +269 -53
  127. package/dist/val/DisjunctVal.js.map +1 -1
  128. package/dist/val/EachFuncVal.d.ts +15 -0
  129. package/dist/val/EachFuncVal.js +75 -0
  130. package/dist/val/EachFuncVal.js.map +1 -0
  131. package/dist/val/ExpectVal.js +62 -4
  132. package/dist/val/ExpectVal.js.map +1 -1
  133. package/dist/val/FeatureVal.js +1 -1
  134. package/dist/val/FeatureVal.js.map +1 -1
  135. package/dist/val/FilterFuncVal.d.ts +15 -0
  136. package/dist/val/FilterFuncVal.js +91 -0
  137. package/dist/val/FilterFuncVal.js.map +1 -0
  138. package/dist/val/FuncBaseVal.d.ts +7 -1
  139. package/dist/val/FuncBaseVal.js +183 -2
  140. package/dist/val/FuncBaseVal.js.map +1 -1
  141. package/dist/val/GraphAtomVal.d.ts +39 -0
  142. package/dist/val/GraphAtomVal.js +184 -0
  143. package/dist/val/GraphAtomVal.js.map +1 -0
  144. package/dist/val/HideFuncVal.js.map +1 -1
  145. package/dist/val/JunctionVal.js +24 -1
  146. package/dist/val/JunctionVal.js.map +1 -1
  147. package/dist/val/KeyFuncVal.d.ts +1 -1
  148. package/dist/val/KeyFuncVal.js +38 -30
  149. package/dist/val/KeyFuncVal.js.map +1 -1
  150. package/dist/val/ListVal.js +94 -14
  151. package/dist/val/ListVal.js.map +1 -1
  152. package/dist/val/LowerFuncVal.js.map +1 -1
  153. package/dist/val/MapVal.d.ts +1 -0
  154. package/dist/val/MapVal.js +146 -14
  155. package/dist/val/MapVal.js.map +1 -1
  156. package/dist/val/MatchFuncVal.d.ts +15 -0
  157. package/dist/val/MatchFuncVal.js +107 -0
  158. package/dist/val/MatchFuncVal.js.map +1 -0
  159. package/dist/val/MoveFuncVal.js.map +1 -1
  160. package/dist/val/NilVal.js +24 -0
  161. package/dist/val/NilVal.js.map +1 -1
  162. package/dist/val/OpBaseVal.d.ts +1 -1
  163. package/dist/val/OpBaseVal.js +19 -1
  164. package/dist/val/OpBaseVal.js.map +1 -1
  165. package/dist/val/OpenFuncVal.js +4 -1
  166. package/dist/val/OpenFuncVal.js.map +1 -1
  167. package/dist/val/PackFuncVal.d.ts +15 -0
  168. package/dist/val/PackFuncVal.js +108 -0
  169. package/dist/val/PackFuncVal.js.map +1 -0
  170. package/dist/val/PathFuncVal.d.ts +2 -2
  171. package/dist/val/PathFuncVal.js +75 -16
  172. package/dist/val/PathFuncVal.js.map +1 -1
  173. package/dist/val/PathVal.d.ts +25 -0
  174. package/dist/val/PathVal.js +150 -0
  175. package/dist/val/PathVal.js.map +1 -0
  176. package/dist/val/PlaceVal.d.ts +13 -0
  177. package/dist/val/PlaceVal.js +131 -0
  178. package/dist/val/PlaceVal.js.map +1 -0
  179. package/dist/val/PlusOpVal.d.ts +2 -1
  180. package/dist/val/PlusOpVal.js +61 -37
  181. package/dist/val/PlusOpVal.js.map +1 -1
  182. package/dist/val/PrefFuncVal.js.map +1 -1
  183. package/dist/val/PrefVal.d.ts +4 -2
  184. package/dist/val/PrefVal.js +223 -41
  185. package/dist/val/PrefVal.js.map +1 -1
  186. package/dist/val/RecurseVal.d.ts +19 -0
  187. package/dist/val/RecurseVal.js +217 -0
  188. package/dist/val/RecurseVal.js.map +1 -0
  189. package/dist/val/RefVal.d.ts +3 -2
  190. package/dist/val/RefVal.js +181 -66
  191. package/dist/val/RefVal.js.map +1 -1
  192. package/dist/val/ReferFuncVal.d.ts +59 -0
  193. package/dist/val/ReferFuncVal.js +604 -0
  194. package/dist/val/ReferFuncVal.js.map +1 -0
  195. package/dist/val/ScalarKindVal.d.ts +4 -3
  196. package/dist/val/ScalarKindVal.js +12 -12
  197. package/dist/val/ScalarKindVal.js.map +1 -1
  198. package/dist/val/SuperFuncVal.d.ts +4 -2
  199. package/dist/val/SuperFuncVal.js +118 -14
  200. package/dist/val/SuperFuncVal.js.map +1 -1
  201. package/dist/val/TopVal.d.ts +1 -1
  202. package/dist/val/TopVal.js.map +1 -1
  203. package/dist/val/TypeFuncVal.js.map +1 -1
  204. package/dist/val/UpperFuncVal.js.map +1 -1
  205. package/dist/val/Val.d.ts +7 -1
  206. package/dist/val/Val.js +170 -2
  207. package/dist/val/Val.js.map +1 -1
  208. package/dist/val/VarVal.js.map +1 -1
  209. package/dist/val/arith.d.ts +6 -0
  210. package/dist/val/arith.js +173 -0
  211. package/dist/val/arith.js.map +1 -0
  212. package/dist/vet.d.ts +45 -0
  213. package/dist/vet.js +802 -0
  214. package/dist/vet.js.map +1 -0
  215. package/dist/view.d.ts +85 -0
  216. package/dist/view.js +1948 -0
  217. package/dist/view.js.map +1 -0
  218. package/dist/walk.d.ts +2 -0
  219. package/dist/walk.js +91 -0
  220. package/dist/walk.js.map +1 -0
  221. package/grammar/aontu.gbnf +138 -0
  222. package/grammar/aontu.lark +118 -0
  223. package/grammar/aontu.tmLanguage.json +184 -0
  224. package/package.json +30 -8
  225. package/skill/SKILL.md +37 -0
  226. package/skill/error-codes.md +62 -0
  227. package/skill/examples.md +99 -0
  228. package/skill/grammar-card.md +56 -0
  229. package/src/agentsmd.ts +135 -0
  230. package/src/aontu.ts +166 -5
  231. package/src/cli.ts +3324 -72
  232. package/src/ctx.ts +93 -1
  233. package/src/diff.ts +198 -0
  234. package/src/err.ts +50 -8
  235. package/src/graph.ts +185 -0
  236. package/src/hcanon.ts +167 -0
  237. package/src/hints.ts +291 -8
  238. package/src/jsonschema.ts +552 -0
  239. package/src/lang.ts +1049 -110
  240. package/src/lsp.ts +351 -49
  241. package/src/mcp-server.ts +187 -0
  242. package/src/mcp.ts +1130 -0
  243. package/src/mod-tool.ts +718 -0
  244. package/src/mod.ts +453 -0
  245. package/src/patch.ts +628 -0
  246. package/src/provenance.ts +437 -0
  247. package/src/query.ts +381 -0
  248. package/src/reach.ts +213 -0
  249. package/src/relation.ts +298 -0
  250. package/src/report-sarif.ts +137 -0
  251. package/src/sig.ts +345 -0
  252. package/src/sigdecl.ts +11 -0
  253. package/src/siggate.ts +144 -0
  254. package/src/site.ts +36 -1
  255. package/src/std.ts +131 -0
  256. package/src/subsume.ts +739 -0
  257. package/src/trim.ts +195 -0
  258. package/src/tsconfig.json +10 -4
  259. package/src/type.ts +51 -2
  260. package/src/unify.ts +253 -38
  261. package/src/utility.ts +79 -1
  262. package/src/val/AggFuncVal.ts +546 -0
  263. package/src/val/ArithFuncVal.ts +108 -0
  264. package/src/val/BagVal.ts +158 -12
  265. package/src/val/CloseFuncVal.ts +9 -1
  266. package/src/val/ConjunctVal.ts +20 -0
  267. package/src/val/ConstraintVal.ts +576 -48
  268. package/src/val/ContainerKindVal.ts +158 -0
  269. package/src/val/CopyFuncVal.ts +0 -1
  270. package/src/val/Decimal.ts +15 -0
  271. package/src/val/DeprecateFuncVal.ts +84 -0
  272. package/src/val/DisjunctVal.ts +282 -59
  273. package/src/val/EachFuncVal.ts +133 -0
  274. package/src/val/ExpectVal.ts +65 -8
  275. package/src/val/FeatureVal.ts +1 -1
  276. package/src/val/FilterFuncVal.ts +154 -0
  277. package/src/val/FuncBaseVal.ts +206 -2
  278. package/src/val/GraphAtomVal.ts +264 -0
  279. package/src/val/HideFuncVal.ts +0 -2
  280. package/src/val/JunctionVal.ts +24 -1
  281. package/src/val/KeyFuncVal.ts +39 -35
  282. package/src/val/ListVal.ts +101 -15
  283. package/src/val/LowerFuncVal.ts +0 -1
  284. package/src/val/MapVal.ts +153 -14
  285. package/src/val/MatchFuncVal.ts +176 -0
  286. package/src/val/MoveFuncVal.ts +0 -2
  287. package/src/val/NilVal.ts +25 -0
  288. package/src/val/OpBaseVal.ts +20 -1
  289. package/src/val/OpenFuncVal.ts +4 -2
  290. package/src/val/PackFuncVal.ts +175 -0
  291. package/src/val/PathFuncVal.ts +107 -20
  292. package/src/val/PathVal.ts +221 -0
  293. package/src/val/PlaceVal.ts +193 -0
  294. package/src/val/PlusOpVal.ts +67 -39
  295. package/src/val/PrefFuncVal.ts +0 -1
  296. package/src/val/PrefVal.ts +251 -60
  297. package/src/val/RecurseVal.ts +285 -0
  298. package/src/val/RefVal.ts +183 -78
  299. package/src/val/ReferFuncVal.ts +732 -0
  300. package/src/val/ScalarKindVal.ts +12 -13
  301. package/src/val/SuperFuncVal.ts +137 -13
  302. package/src/val/TopVal.ts +1 -2
  303. package/src/val/TypeFuncVal.ts +0 -2
  304. package/src/val/UpperFuncVal.ts +0 -1
  305. package/src/val/Val.ts +216 -4
  306. package/src/val/VarVal.ts +0 -1
  307. package/src/val/arith.ts +319 -0
  308. package/src/vet.ts +1025 -0
  309. package/src/view.ts +2563 -0
  310. package/src/walk.ts +99 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ export type ModLock = {
2
+ mod: string;
3
+ v: string;
4
+ canon: string;
5
+ oci: string;
6
+ };
7
+ export type ModTidyReport = {
8
+ verdict: 'ok' | 'missing' | 'error';
9
+ lock: ModLock[];
10
+ missing: string[];
11
+ unevaluable: string[];
12
+ };
13
+ export type ModVerifyReport = {
14
+ verdict: 'ok' | 'mismatch' | 'unlocked' | 'missing';
15
+ verified: string[];
16
+ mismatched: {
17
+ mod: string;
18
+ want: string;
19
+ got: string;
20
+ }[];
21
+ unlocked: string[];
22
+ missing: string[];
23
+ };
24
+ export type ModVendorReport = {
25
+ verdict: 'ok' | 'missing';
26
+ vendored: string[];
27
+ missing: string[];
28
+ };
29
+ export type ModToolEval = (src: string, path: string) => {
30
+ gen: any;
31
+ hash: string;
32
+ canon: string;
33
+ ok: boolean;
34
+ };
35
+ export type ModToolOptions = {
36
+ cache?: string;
37
+ eval: ModToolEval;
38
+ };
39
+ export declare function versionCompare(a: string, b: string): number;
40
+ export declare function lockText(entries: ModLock[], options: ModToolOptions): string;
41
+ export declare function modTidy(root: string, options: ModToolOptions): ModTidyReport;
42
+ export declare function modVerify(root: string, options: ModToolOptions): ModVerifyReport;
43
+ export declare function modVendor(root: string, options: ModToolOptions): ModVendorReport;
44
+ export declare const MODULE_CONFIG_MEDIA_TYPE = "application/vnd.aontu.module.v1+json";
45
+ export declare const MODULE_ANNOTATION_CANON = "com.github.rjrodger.aontu.canon";
46
+ export declare const MODULE_ANNOTATION_MAJOR = "com.github.rjrodger.aontu.major";
47
+ export type ModManifestReport = {
48
+ verdict: 'ok' | 'breaking' | 'undecided' | 'error';
49
+ mod: string;
50
+ version: string;
51
+ canon: string;
52
+ config: string;
53
+ files: string[];
54
+ annotations: Record<string, string>;
55
+ missing: string[];
56
+ findings: any[];
57
+ };
58
+ export declare function modManifest(root: string, options: ModToolOptions, against?: string): ModManifestReport;
@@ -0,0 +1,532 @@
1
+ "use strict";
2
+ /* Copyright (c) 2025 Richard Rodger, MIT License */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.MODULE_ANNOTATION_MAJOR = exports.MODULE_ANNOTATION_CANON = exports.MODULE_CONFIG_MEDIA_TYPE = void 0;
5
+ exports.versionCompare = versionCompare;
6
+ exports.lockText = lockText;
7
+ exports.modTidy = modTidy;
8
+ exports.modVerify = modVerify;
9
+ exports.modVendor = modVendor;
10
+ exports.modManifest = modManifest;
11
+ // MODULE TOOLING (G6 phase 3, docs/capability-review/g6-distribution.md):
12
+ // the LOCAL half — `aontu mod tidy`, `verify`, `vendor` and
13
+ // `manifest`.
14
+ //
15
+ // Evaluation never touches the network, and neither does this: `tidy`
16
+ // resolves versions and rewrites the lockfile from what is already in
17
+ // the local stores, `verify` asks whether the stores still MEAN what
18
+ // the lockfile pins and changes nothing, and `vendor` materialises the
19
+ // locked closure into the project. Fetching and publishing are the
20
+ // network half, and are not in this build (see the register).
21
+ //
22
+ // MINIMUM VERSION SELECTION, not a solver: each module declares the
23
+ // MINIMUM version of each dependency it needs, and the selected version
24
+ // is the maximum of those minima over the closure. Deterministic, and
25
+ // deterministic without backtracking — the lockfile CONFIRMS the
26
+ // resolution rather than determining it, which is why a tidy run can be
27
+ // re-run to the same bytes.
28
+ const node_fs_1 = require("node:fs");
29
+ const node_path_1 = require("node:path");
30
+ const mod_1 = require("./mod");
31
+ const subsume_1 = require("./subsume");
32
+ // The `dep` block a module file declares: import string -> version.
33
+ function declaredDeps(file, options) {
34
+ if (!(0, node_fs_1.existsSync)(file)) {
35
+ return {};
36
+ }
37
+ const gen = options.eval((0, node_fs_1.readFileSync)(file, 'utf8'), file).gen;
38
+ const dep = gen?.dep;
39
+ if (null == dep || 'object' !== typeof dep) {
40
+ return {};
41
+ }
42
+ const out = {};
43
+ for (const key of Object.keys(dep)) {
44
+ const v = dep[key]?.v;
45
+ if ('string' === typeof v && '' !== v) {
46
+ out[key] = v;
47
+ }
48
+ }
49
+ return out;
50
+ }
51
+ // Numeric-dotted version order: `1.10.0` is above `1.9.0`, which
52
+ // STRING order gets wrong, and that is the whole reason this is not a
53
+ // `<` on the text. A part that is not a number compares as text, after
54
+ // every number — a pre-release tag is below no version and above none.
55
+ function versionCompare(a, b) {
56
+ const ap = a.split('.');
57
+ const bp = b.split('.');
58
+ for (let i = 0; i < Math.max(ap.length, bp.length); i++) {
59
+ // A part the shorter version does not have is ZERO, so `1.2` and
60
+ // `1.2.0` are the same version -- which is what everyone means by
61
+ // them, and what a lockfile rewritten from either must agree on.
62
+ const x = ap[i] ?? '0';
63
+ const y = bp[i] ?? '0';
64
+ if (x === y) {
65
+ continue;
66
+ }
67
+ const xn = /^\d+$/.test(x);
68
+ const yn = /^\d+$/.test(y);
69
+ if (xn && yn) {
70
+ return +x < +y ? -1 : 1;
71
+ }
72
+ if (xn !== yn) {
73
+ return xn ? -1 : 1;
74
+ }
75
+ return x < y ? -1 : 1;
76
+ }
77
+ return 0;
78
+ }
79
+ // A dependency or lockfile key as a module ref this tooling may ACT
80
+ // on, or undefined.
81
+ //
82
+ // Two ways to be unusable, one answer. A key that is not module-shaped
83
+ // names nothing the resolver can find; a key that is shaped but whose
84
+ // path cannot legally be a directory (`..` in it, a reserved device
85
+ // name) must not be turned into one, which is the whole of the
86
+ // traversal fix on this side. Both land in the caller's `missing`
87
+ // bucket, because from the report's point of view they are the same
88
+ // fact: the lockfile names something that cannot be resolved here.
89
+ //
90
+ // A STALE LOCKFILE IS THE REASON THIS EXISTS AT ALL. `resolveModule`
91
+ // gates the evaluator, but `tidy`, `verify` and `vendor` read a
92
+ // lockfile straight off disk -- one that may have been committed
93
+ // before the gate existed -- so the gate has to be here too.
94
+ function usableRef(mod) {
95
+ const ref = (0, mod_1.parseModuleRef)(mod);
96
+ if (undefined === ref || undefined !== (0, mod_1.validateModulePath)(ref.path)) {
97
+ return undefined;
98
+ }
99
+ return ref;
100
+ }
101
+ // The directory a module is in, in the local stores: the project's
102
+ // vendor tree first, then the cache under the hash the lockfile pins.
103
+ function storeDir(root, ref, hash, options) {
104
+ const stores = [(0, mod_1.moduleDir)((0, node_path_1.join)(root, 'aon_vendor'), ref)];
105
+ if (null != options.cache && '' !== hash) {
106
+ stores.push((0, node_path_1.join)(options.cache, hash));
107
+ }
108
+ return stores.find((d) => (0, node_fs_1.existsSync)((0, node_path_1.join)(d, 'mod.aon')));
109
+ }
110
+ // The lockfile's entries, as written.
111
+ function readLock(root) {
112
+ const file = (0, node_path_1.join)(root, 'mod-lock.aon');
113
+ if (!(0, node_fs_1.existsSync)(file)) {
114
+ return {};
115
+ }
116
+ let lock;
117
+ try {
118
+ lock = JSON.parse((0, mod_1.lockJson)((0, node_fs_1.readFileSync)(file, 'utf8')));
119
+ }
120
+ catch {
121
+ return {};
122
+ }
123
+ const out = {};
124
+ for (const mod of Object.keys(lock?.lock ?? {})) {
125
+ const e = lock.lock[mod];
126
+ out[mod] = {
127
+ mod,
128
+ v: 'string' === typeof e?.v ? e.v : '',
129
+ canon: 'string' === typeof e?.canon ? e.canon : '',
130
+ oci: 'string' === typeof e?.oci ? e.oci : '',
131
+ };
132
+ }
133
+ return out;
134
+ }
135
+ // The lockfile TEXT: canonical Aontu, one line, keys sorted. Built as
136
+ // source and canonicalised by the engine rather than printed by hand,
137
+ // so "canonical form" means what the language means by it and cannot
138
+ // drift from it.
139
+ function lockText(entries, options) {
140
+ const parts = entries.map((e) => JSON.stringify(e.mod) + ':{' +
141
+ '"canon":' + JSON.stringify(e.canon) + ',' +
142
+ '"oci":' + JSON.stringify(e.oci) + ',' +
143
+ '"v":' + JSON.stringify(e.v) + '}');
144
+ // Canonicalised by the ENGINE rather than printed by hand, so
145
+ // "canonical form" means what the language means by it and cannot
146
+ // drift from it. For a map of scalars that canon is also JSON, which
147
+ // is what lets the resolver read a pin back without an evaluator
148
+ // (ts/src/mod.ts lockHash).
149
+ return options.eval('{"lock":{' + parts.join(',') + '}}', 'mod-lock.aon').canon;
150
+ }
151
+ // `aontu mod tidy`: resolve the closure by MVS and rewrite the lockfile.
152
+ function modTidy(root, options) {
153
+ const previous = readLock(root);
154
+ const selected = {};
155
+ const missing = [];
156
+ // The closure, breadth-first from the project's own declarations. A
157
+ // module already selected at a version at least as high contributes
158
+ // nothing new, which is what makes this terminate without a cycle
159
+ // check: the selected version only ever rises.
160
+ let frontier = declaredDeps((0, node_path_1.join)(root, 'mod.aon'), options);
161
+ for (; 0 < Object.keys(frontier).length;) {
162
+ const next = {};
163
+ for (const mod of Object.keys(frontier)) {
164
+ const want = frontier[mod];
165
+ const have = selected[mod];
166
+ if (null != have && 0 <= versionCompare(have, want)) {
167
+ continue;
168
+ }
169
+ selected[mod] = want;
170
+ const ref = usableRef(mod);
171
+ if (undefined === ref) {
172
+ // A dependency key this tooling cannot act on names nothing
173
+ // this resolver can find, which is the same answer as a module
174
+ // that is not there (see usableRef).
175
+ missing.push(mod);
176
+ continue;
177
+ }
178
+ const dir = storeDir(root, ref, previous[mod]?.canon ?? '', options);
179
+ if (undefined === dir) {
180
+ missing.push(mod);
181
+ continue;
182
+ }
183
+ const deps = declaredDeps((0, node_path_1.join)(dir, 'mod.aon'), options);
184
+ for (const key of Object.keys(deps)) {
185
+ const bid = next[key];
186
+ if (null == bid || 0 > versionCompare(bid, deps[key])) {
187
+ next[key] = deps[key];
188
+ }
189
+ }
190
+ }
191
+ frontier = next;
192
+ }
193
+ const lock = [];
194
+ const unevaluable = [];
195
+ for (const mod of Object.keys(selected).sort()) {
196
+ if (missing.includes(mod)) {
197
+ continue;
198
+ }
199
+ const ref = usableRef(mod);
200
+ const dir = storeDir(root, ref, previous[mod]?.canon ?? '', options);
201
+ const main = (0, node_path_1.join)(dir, mainOf(dir, options));
202
+ // RECOMPUTED, never carried over: the pin is what the module in
203
+ // this store MEANS, and a tidy that copied the old hash forward
204
+ // would pin what it used to mean.
205
+ const got = (0, node_fs_1.existsSync)(main) ?
206
+ options.eval((0, node_fs_1.readFileSync)(main, 'utf8'), main) : undefined;
207
+ // A NIL PIN IS WORSE THAN NO PIN. A module that does not stand up
208
+ // hashes to canonHash(nil) -- the same string for every broken
209
+ // module -- so writing it would put a plausible, uninformative
210
+ // pin in the lockfile and silently void the "breaks on any
211
+ // semantic change in the closure" contract (BUGS.md §31).
212
+ if (null != got && !got.ok) {
213
+ unevaluable.push(mod);
214
+ continue;
215
+ }
216
+ lock.push({
217
+ mod,
218
+ v: selected[mod],
219
+ canon: null == got ? '' : got.hash,
220
+ // Carried over: the OCI digest is the registry's word about the
221
+ // bytes it served, and nothing local can hear it.
222
+ oci: previous[mod]?.oci ?? '',
223
+ });
224
+ }
225
+ const uniqueMissing = [...new Set(missing)].sort();
226
+ const uniqueUnevaluable = [...new Set(unevaluable)].sort();
227
+ const held = 0 === uniqueMissing.length && 0 === uniqueUnevaluable.length;
228
+ if (held) {
229
+ (0, node_fs_1.writeFileSync)((0, node_path_1.join)(root, 'mod-lock.aon'), LOCK_HEADER + lockText(lock, options) + '\n');
230
+ }
231
+ return {
232
+ verdict: held ? 'ok' :
233
+ 0 < uniqueUnevaluable.length ? 'error' : 'missing',
234
+ lock,
235
+ missing: uniqueMissing,
236
+ unevaluable: uniqueUnevaluable,
237
+ };
238
+ }
239
+ // The generated-file header. A lockfile is machine-written, and the
240
+ // file says so where an editor will see it.
241
+ const LOCK_HEADER = '# mod-lock.aon (generated by `aontu mod tidy`; do not edit)\n';
242
+ // The entry file a module declares, or the default. `dir` is always a
243
+ // STORE directory, and `storeDir` only answers one that holds a
244
+ // `mod.aon` -- so there is no missing-file arm to take here.
245
+ function mainOf(dir, options) {
246
+ const file = (0, node_path_1.join)(dir, 'mod.aon');
247
+ const gen = options.eval((0, node_fs_1.readFileSync)(file, 'utf8'), file).gen;
248
+ const main = gen?.mod?.main;
249
+ return 'string' === typeof main && '' !== main ? main : 'main.aon';
250
+ }
251
+ // `aontu mod verify`: does every locked module still MEAN what the
252
+ // lockfile pins? Recompute and compare, and CHANGE NOTHING.
253
+ //
254
+ // The verb exists because `tidy` cannot answer this question. Tidy
255
+ // recomputes and REWRITES by design -- a pin is what a module means
256
+ // now -- so tampering with a vendored module and running tidy makes
257
+ // the lockfile agree with the tampering, `verdict: ok`, and the next
258
+ // evaluation passes. That is correct for the job tidy does and useless
259
+ // as a gate, which left a CI job that tidies before evaluating with no
260
+ // integrity protection at all (use-cases/BUGS.md §32). Verification is
261
+ // a question; answering it must not be an edit.
262
+ function modVerify(root, options) {
263
+ const locked = readLock(root);
264
+ const verified = [];
265
+ const mismatched = [];
266
+ const missing = [];
267
+ // NOTHING TO CHECK IS NOT A PASS. A project with no lockfile at all
268
+ // -- or one whose lockfile predates a dependency someone added --
269
+ // would otherwise verify clean, because the loop below walks what is
270
+ // LOCKED and there is nothing locked to walk. That is the same shape
271
+ // as the defect this verb exists to close: absence reading as
272
+ // agreement. Every dependency the project itself declares must be in
273
+ // the lockfile before the pins mean anything, and the repair is a
274
+ // tidy rather than a fetch. Transitive dependencies need no separate
275
+ // check: a locked module's own imports are resolved when its pin is
276
+ // recomputed, so one that is unreachable makes its DEPENDANT fail to
277
+ // evaluate and lands in `mismatched` below.
278
+ const declared = declaredDeps((0, node_path_1.join)(root, 'mod.aon'), options);
279
+ const unlocked = Object.keys(declared)
280
+ .filter((mod) => null == locked[mod]).sort();
281
+ for (const mod of Object.keys(locked).sort()) {
282
+ const ref = usableRef(mod);
283
+ if (undefined === ref) {
284
+ missing.push(mod);
285
+ continue;
286
+ }
287
+ const dir = storeDir(root, ref, locked[mod].canon, options);
288
+ if (undefined === dir) {
289
+ missing.push(mod);
290
+ continue;
291
+ }
292
+ const main = (0, node_path_1.join)(dir, mainOf(dir, options));
293
+ if (!(0, node_fs_1.existsSync)(main)) {
294
+ missing.push(mod);
295
+ continue;
296
+ }
297
+ // A module that no longer stands up is not a match: it has no
298
+ // meaning to compare, and reporting `got: <hash of nil>` would
299
+ // print the same string for every broken module. The empty `got`
300
+ // says the store holds something that does not evaluate.
301
+ const got = options.eval((0, node_fs_1.readFileSync)(main, 'utf8'), main);
302
+ const want = locked[mod].canon;
303
+ if (got.ok && want === got.hash) {
304
+ verified.push(mod);
305
+ continue;
306
+ }
307
+ mismatched.push({ mod, want, got: got.ok ? got.hash : '' });
308
+ }
309
+ return {
310
+ verdict: 0 < mismatched.length ? 'mismatch' :
311
+ 0 < unlocked.length ? 'unlocked' :
312
+ 0 < missing.length ? 'missing' : 'ok',
313
+ verified,
314
+ mismatched,
315
+ unlocked,
316
+ missing: missing.sort(),
317
+ };
318
+ }
319
+ // `aontu mod vendor`: materialise the locked closure into `aon_vendor/`.
320
+ function modVendor(root, options) {
321
+ const locked = readLock(root);
322
+ const vendored = [];
323
+ const missing = [];
324
+ const vendorRoot = (0, node_path_1.join)(root, 'aon_vendor');
325
+ for (const mod of Object.keys(locked).sort()) {
326
+ const ref = usableRef(mod);
327
+ if (undefined === ref) {
328
+ missing.push(mod);
329
+ continue;
330
+ }
331
+ const from = storeDir(root, ref, locked[mod].canon, options);
332
+ if (undefined === from) {
333
+ missing.push(mod);
334
+ continue;
335
+ }
336
+ // WHY THERE IS NO CONTAINMENT CHECK ON `to`, at the one write site
337
+ // that copied a tree outside the project: `usableRef` above is the
338
+ // gate, and after it a store path CANNOT escape. Every element is
339
+ // non-empty and neither begins nor ends with `.`, so none is `.`
340
+ // or `..`; MODULE_RE's element class admits no `/`, no `\` and no
341
+ // leading slash, so no element can re-root the join. A second
342
+ // lexical check here would be unreachable code, which ADR-002 asks
343
+ // to be deleted rather than excluded -- so the invariant is pinned
344
+ // by a test that drives the escape through this verb instead.
345
+ // ANY NEW CALLER of moduleDir must go through usableRef too;
346
+ // `mod get` is the next one.
347
+ const to = (0, mod_1.moduleDir)(vendorRoot, ref);
348
+ if (from !== to) {
349
+ copyTree(from, to);
350
+ }
351
+ vendored.push(mod);
352
+ }
353
+ return {
354
+ verdict: 0 === missing.length ? 'ok' : 'missing',
355
+ vendored,
356
+ missing: missing.sort(),
357
+ };
358
+ }
359
+ // A whole module directory, copied. Modules are source trees — that is
360
+ // what an OCI layer holds — so this walks rather than reading one file.
361
+ function copyTree(from, to) {
362
+ (0, node_fs_1.mkdirSync)(to, { recursive: true });
363
+ for (const name of (0, node_fs_1.readdirSync)(from).sort()) {
364
+ const src = (0, node_path_1.join)(from, name);
365
+ const dst = (0, node_path_1.join)(to, name);
366
+ if ((0, node_fs_1.statSync)(src).isDirectory()) {
367
+ copyTree(src, dst);
368
+ }
369
+ else {
370
+ (0, node_fs_1.mkdirSync)((0, node_path_1.dirname)(dst), { recursive: true });
371
+ (0, node_fs_1.copyFileSync)(src, dst);
372
+ }
373
+ }
374
+ }
375
+ // THE PUBLISH BOUNDARY (G6 phase 4,
376
+ // docs/capability-review/g6-distribution.md). A module is an OCI
377
+ // artifact, and what a publish PUSHES is a manifest: a config media
378
+ // type, one layer holding the module's source tree, and annotations
379
+ // carrying the module path, its version and its canon-hash.
380
+ //
381
+ // The push needs a registry, which this build does not have. Everything
382
+ // the push would ASSERT is local, and that is what `aontu mod manifest`
383
+ // answers: the exact artifact description, computed the way the
384
+ // registry would be told it, plus the gate that decides whether it may
385
+ // be minted at all.
386
+ //
387
+ // WHY THE ANNOTATION MATTERS MORE THAN THE BYTES. "Has the truth
388
+ // changed?" is one annotation read and a string compare -- no download,
389
+ // no parse -- because the canon-hash pins MEANING rather than text. A
390
+ // consumer holding `aon1-oQs6…` can ask a registry index whether the
391
+ // module still hashes to it, and a reformat, a comment or a file split
392
+ // will not move it.
393
+ // The config media type the design fixes: an Aontu module is not an
394
+ // image, and the type is what tells a registry so.
395
+ exports.MODULE_CONFIG_MEDIA_TYPE = 'application/vnd.aontu.module.v1+json';
396
+ // The canon-hash annotation. OCI asks a custom key to be the reverse
397
+ // DNS of a domain its author controls, and the project's own home is
398
+ // the only domain it has -- inventing an `aontu.dev` would be a claim
399
+ // it cannot back. The two facts OCI already has keys for use those.
400
+ exports.MODULE_ANNOTATION_CANON = 'com.github.rjrodger.aontu.canon';
401
+ exports.MODULE_ANNOTATION_MAJOR = 'com.github.rjrodger.aontu.major';
402
+ function modSelf(dir, options) {
403
+ const file = (0, node_path_1.join)(dir, 'mod.aon');
404
+ if (!(0, node_fs_1.existsSync)(file)) {
405
+ return { path: '', version: '', main: 'main.aon' };
406
+ }
407
+ const gen = options.eval((0, node_fs_1.readFileSync)(file, 'utf8'), file).gen;
408
+ const mod = gen?.mod;
409
+ const str = (k) => 'string' === typeof mod?.[k] ? mod[k] : '';
410
+ return {
411
+ path: str('path'),
412
+ version: str('version'),
413
+ main: '' === str('main') ? 'main.aon' : str('main'),
414
+ };
415
+ }
416
+ // The leading numeric component of a version, which is the major an
417
+ // import spells. Empty when the version does not start with one: a
418
+ // version whose major cannot be read cannot be published under a
419
+ // module path, because the path is where the major lives.
420
+ function majorOf(version) {
421
+ const m = /^(\d+)/.exec(version);
422
+ return null == m ? '' : m[1];
423
+ }
424
+ // Every file of a module's source tree, relative and forward-slashed.
425
+ // `aon_vendor/` is excluded: a published module carries its own
426
+ // sources, not a copy of everyone else's -- a consumer resolves the
427
+ // closure itself, and a nested vendor tree would publish the world.
428
+ function layerFiles(dir, prefix = '') {
429
+ const out = [];
430
+ for (const name of (0, node_fs_1.readdirSync)(dir).sort()) {
431
+ if ('aon_vendor' === name) {
432
+ continue;
433
+ }
434
+ const full = (0, node_path_1.join)(dir, name);
435
+ const rel = '' === prefix ? name : prefix + '/' + name;
436
+ if ((0, node_fs_1.statSync)(full).isDirectory()) {
437
+ out.push(...layerFiles(full, rel));
438
+ }
439
+ else {
440
+ out.push(rel);
441
+ }
442
+ }
443
+ return out;
444
+ }
445
+ // `aontu mod manifest`: the OCI artifact description a publish would
446
+ // push, and the gate that decides whether it may be.
447
+ function modManifest(root, options, against) {
448
+ const self = modSelf(root, options);
449
+ const major = majorOf(self.version);
450
+ const missing = [];
451
+ if ('' === self.path) {
452
+ missing.push('mod.path');
453
+ }
454
+ if ('' === major) {
455
+ missing.push('mod.version');
456
+ }
457
+ const main = (0, node_path_1.join)(root, self.main);
458
+ if (!(0, node_fs_1.existsSync)(main)) {
459
+ missing.push(self.main);
460
+ }
461
+ const mod = '' === self.path || '' === major ?
462
+ '' : self.path + '@' + major;
463
+ if (0 < missing.length) {
464
+ return {
465
+ verdict: 'error',
466
+ mod,
467
+ version: self.version,
468
+ canon: '',
469
+ config: exports.MODULE_CONFIG_MEDIA_TYPE,
470
+ files: [],
471
+ annotations: {},
472
+ missing: missing.sort(),
473
+ findings: [],
474
+ };
475
+ }
476
+ const newSrc = (0, node_fs_1.readFileSync)(main, 'utf8');
477
+ const canon = options.eval(newSrc, main).hash;
478
+ const report = {
479
+ verdict: 'ok',
480
+ mod,
481
+ version: self.version,
482
+ canon,
483
+ config: exports.MODULE_CONFIG_MEDIA_TYPE,
484
+ files: layerFiles(root),
485
+ annotations: {
486
+ [exports.MODULE_ANNOTATION_CANON]: canon,
487
+ [exports.MODULE_ANNOTATION_MAJOR]: major,
488
+ 'org.opencontainers.image.title': self.path,
489
+ 'org.opencontainers.image.version': self.version,
490
+ },
491
+ missing: [],
492
+ findings: [],
493
+ };
494
+ if (null == against) {
495
+ return report;
496
+ }
497
+ // THE PUBLISH-TIME BREAKING GATE. The semantics of "breaking" belong
498
+ // wholly to G3 (ts/src/subsume.ts); this is the wiring, at the one
499
+ // place versions are minted.
500
+ const prior = modSelf(against, options);
501
+ const priorMain = (0, node_path_1.join)(against, prior.main);
502
+ if (!(0, node_fs_1.existsSync)(priorMain)) {
503
+ report.verdict = 'error';
504
+ report.missing = [prior.main];
505
+ return report;
506
+ }
507
+ // A MAJOR BUMP IS WHERE BREAKING IS ALLOWED. The major lives in the
508
+ // module path, so a consumer of `@1` never sees `@2` unless it asks:
509
+ // checking compatibility across majors would forbid the one change
510
+ // the version scheme exists to express.
511
+ if (majorOf(prior.version) !== major) {
512
+ return report;
513
+ }
514
+ // Backward compatibility: the NEW version is the general side, so
515
+ // every instance the old one admitted must still be admitted.
516
+ const gate = (0, subsume_1.subsume)(newSrc, (0, node_fs_1.readFileSync)(priorMain, 'utf8'), {
517
+ generalUrl: main,
518
+ specificUrl: priorMain,
519
+ generalPath: main,
520
+ specificPath: priorMain,
521
+ });
522
+ report.findings = gate.findings;
523
+ report.verdict = MANIFEST_VERDICT[gate.verdict];
524
+ return report;
525
+ }
526
+ const MANIFEST_VERDICT = {
527
+ subsumes: 'ok',
528
+ does_not_subsume: 'breaking',
529
+ undecided: 'undecided',
530
+ error: 'error',
531
+ };
532
+ //# sourceMappingURL=mod-tool.js.map