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
package/dist/err.js CHANGED
@@ -5,10 +5,42 @@ exports.AontuError = void 0;
5
5
  exports.getHint = getHint;
6
6
  exports.makeNilErr = makeNilErr;
7
7
  exports.descErr = descErr;
8
+ exports.setColor = setColor;
9
+ exports.colorActive = colorActive;
10
+ const node_path_1 = require("node:path");
8
11
  const jsonic_1 = require("@tabnas/jsonic");
9
12
  const NilVal_1 = require("./val/NilVal");
10
13
  const hints_1 = require("./hints");
11
14
  const { errmsg, strinject } = jsonic_1.util;
15
+ // COLOUR IS A DECISION ABOUT THE DESTINATION, not about the message.
16
+ // Every error frame hardcoded the ANSI escapes, so a piped report and
17
+ // a `--jsonl` answer carried terminal control codes into whatever read
18
+ // them -- a log file, a CI annotation, an agent's parser (the review's
19
+ // finding F).
20
+ //
21
+ // NO_COLOR (no-color.org: set, to anything, means no colour) turns them
22
+ // off everywhere, library callers included. The CLI additionally turns
23
+ // them off when its stderr is not a terminal, through setColor: a
24
+ // library cannot see the destination, and a caller who has one is the
25
+ // only one who can say.
26
+ let COLOR;
27
+ function setColor(on) {
28
+ COLOR = on;
29
+ }
30
+ function colorActive() {
31
+ if (null != COLOR) {
32
+ return COLOR;
33
+ }
34
+ // `globalThis` always exists; `process` need not (this library runs
35
+ // in a browser too), so the optional chain starts at the part that
36
+ // can actually be missing -- and stays a CHAIN rather than becoming
37
+ // an `if`, because the browser arm is unreachable from any test this
38
+ // suite can run and ADR-002 does not accept an arm nothing takes.
39
+ // Set-but-EMPTY is the documented exception and does not disable
40
+ // colour (no-color.org).
41
+ const no = globalThis.process?.env?.NO_COLOR;
42
+ return null == no || '' === no;
43
+ }
12
44
  function getHint(why, details) {
13
45
  if (hints_1.hints[why]) {
14
46
  let txt = hints_1.hints[why];
@@ -40,8 +72,8 @@ function descErr(err, errctx) {
40
72
  if (null == err.msg || '' === err.msg) {
41
73
  let v1 = err.primary;
42
74
  let v2 = err.secondary;
43
- let v1src = resolveSrc(v1, errctx, 'primary');
44
- let v2src = resolveSrc(v2, errctx, 'secondary');
75
+ let v1src = resolveSrc(v1, errctx);
76
+ let v2src = resolveSrc(v2, errctx);
45
77
  // STRICT `!==` against the empty string. The loose `!=` here dropped
46
78
  // the list index 0, because `'' != 0` is FALSE in JavaScript ('' and
47
79
  // 0 are both coerced to 0): `a:[1]&[2]` reported its conflict at
@@ -58,7 +90,7 @@ function descErr(err, errctx) {
58
90
  const details = err.details;
59
91
  err.msg = [
60
92
  errmsg({
61
- color: { active: true },
93
+ color: { active: colorActive() },
62
94
  name: 'aontu',
63
95
  code: err.why,
64
96
  txts: {
@@ -72,7 +104,7 @@ function descErr(err, errctx) {
72
104
  '\n',
73
105
  (null != v1 && errmsg({
74
106
  // TODO: color should come from jsonic config
75
- color: { active: true, line: '\x1b[34m' },
107
+ color: { active: colorActive(), line: '\x1b[34m' },
76
108
  txts: {
77
109
  msg: 'Cannot ' + attempt + ' value: ' + v1.canon +
78
110
  (null == v2 ? '' : ' with value: ' + v2.canon), // + ' #' + err.id,
@@ -87,7 +119,7 @@ function descErr(err, errctx) {
87
119
  })),
88
120
  (null != v2 && errmsg({
89
121
  // TODO: color should come from jsonic config
90
- color: { active: true, line: '\x1b[34m' },
122
+ color: { active: colorActive(), line: '\x1b[34m' },
91
123
  txts: {
92
124
  msg: 'Cannot ' + attempt + ' value: ' + v2.canon +
93
125
  ' with value: ' + v1.canon, // + ' #' + err.id,
@@ -114,11 +146,16 @@ function descErr(err, errctx) {
114
146
  }
115
147
  function resolveFile(url) {
116
148
  const cwd = process.cwd();
117
- let out = url?.replace(cwd + '/', '') ?? '<no-file>';
149
+ // The PLATFORM'S separator, not '/': a hardcoded slash never matched
150
+ // a Windows cwd, so every Windows report named the absolute path
151
+ // where the POSIX report (and the Go CLI, which prints the entry as
152
+ // typed) named `clash.aon` -- caught by the docs transcript for
153
+ // reading a conflict error, which pins the relative spelling.
154
+ let out = url?.replace(cwd + node_path_1.sep, '') ?? '<no-file>';
118
155
  out = out === cwd || '' === out ? '<no-file>' : out;
119
156
  return out;
120
157
  }
121
- function resolveSrc(v, errctx, position) {
158
+ function resolveSrc(v, errctx) {
122
159
  let src = undefined;
123
160
  const url = v?.site.url;
124
161
  // Cache reads on errctx for the lifetime of the error-formatting pass.
@@ -165,6 +202,6 @@ class AontuError extends Error {
165
202
  .filter(line => !line.match(/aontu\/(src|dist)\//))
166
203
  .join('\n');
167
204
  }
168
- } /* node:coverage ignore next 9 */
205
+ } /* node:coverage ignore next 11 */
169
206
  exports.AontuError = AontuError;
170
207
  //# sourceMappingURL=err.js.map
package/dist/err.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"err.js","sourceRoot":"","sources":["../src/err.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"err.js","sourceRoot":"","sources":["../src/err.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { Val } from './type';
2
+ export type Edge = {
3
+ from: string;
4
+ key: string;
5
+ to: string;
6
+ at: string;
7
+ hidden?: true;
8
+ };
9
+ export type Graph = {
10
+ edges: Edge[];
11
+ disjunct?: string[];
12
+ };
13
+ export declare function graphOf(root: Val): Graph;
package/dist/graph.js ADDED
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ /* Copyright (c) 2025 Richard Rodger, MIT License */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.graphOf = graphOf;
5
+ const keyorder_1 = require("./keyorder");
6
+ const formatPath = (path) => 0 === path.length ? '$' : '$.' + path.join('.');
7
+ // Digits-only segments are list indices, which is exactly how the rest
8
+ // of the engine spells them.
9
+ const isIndex = (seg) => /^[0-9]+$/.test(seg);
10
+ // The node a link starts at and the relation it hangs under, derived
11
+ // from the link's own position.
12
+ //
13
+ // A DECLARED predicate (rel()-minted) is authoritative: the link is cut
14
+ // at the key the rel() sat on, wherever that is on the way down, which
15
+ // is what makes a MAP-valued relation report the relation rather than
16
+ // the inner label. Without one the relation is INFERRED: strip the list
17
+ // indices, and the first real key above the link is it.
18
+ const cut = (at, relkey) => {
19
+ if (undefined !== relkey) {
20
+ for (let i = at.length - 1; 0 <= i; i--) {
21
+ if (at[i] === relkey) {
22
+ return { from: formatPath(at.slice(0, i)), key: relkey };
23
+ }
24
+ }
25
+ }
26
+ let i = at.length - 1;
27
+ for (; 0 <= i && isIndex(at[i]); i--) { }
28
+ return 0 > i
29
+ ? { from: formatPath([]), key: relkey ?? '' }
30
+ : { from: formatPath(at.slice(0, i)), key: relkey ?? at[i] };
31
+ };
32
+ // The graph of an evaluated tree. Walks POSITIONS, not values: a
33
+ // reference or a spread can put one value object at several positions,
34
+ // and a walk guarded by object identity would find the first and miss
35
+ // every other place it is reached. The guard is therefore the ancestor
36
+ // chain — which is what a cycle actually is.
37
+ function graphOf(root) {
38
+ const edges = [];
39
+ const disjunct = [];
40
+ // ONE WALK, with `undecided` saying which side of ADR-007 it is on:
41
+ // below an unresolved disjunction every link is a position the
42
+ // document has not decided, and nothing there is an edge.
43
+ const visit = (node, path, ancestors, hidden, undecided) => {
44
+ if (null == node || true !== node.isVal || ancestors.has(node)) {
45
+ return;
46
+ }
47
+ hidden = hidden || true === node.mark?.hide;
48
+ const link = node.link;
49
+ if (null != link) {
50
+ if (undecided) {
51
+ disjunct.push(formatPath(path));
52
+ }
53
+ else {
54
+ const { from, key } = cut(path, node.relkey);
55
+ const edge = { from, key, to: link, at: formatPath(path) };
56
+ if (hidden) {
57
+ edge.hidden = true;
58
+ }
59
+ edges.push(edge);
60
+ }
61
+ }
62
+ // A graph atom is TRANSPARENT here (RELATIONS P2): it carries the
63
+ // field's value at the field's own position, and the graph is about
64
+ // the value.
65
+ if (true === node.isGraphAtom && undefined !== node.held) {
66
+ visit(node.held, path, ancestors, hidden, undecided);
67
+ }
68
+ // An unresolved conjunction (a link waiting on a peer that never
69
+ // came, a constraint still open) holds its terms at the SAME
70
+ // position; every link among them is written there, and is an
71
+ // edge. This is what a match-selected branch or a deferred refer()
72
+ // looks like after evaluation.
73
+ if (true === node.isConjunct && Array.isArray(node.peg)) {
74
+ ancestors.add(node);
75
+ for (const term of node.peg) {
76
+ visit(term, path, ancestors, hidden, undecided);
77
+ }
78
+ ancestors.delete(node);
79
+ }
80
+ // AN UNRESOLVED DISJUNCTION IS NOT A VALUE (ADR-007), so a link
81
+ // under one of its arms is not an edge. Its POSITION is collected
82
+ // instead, so a figure can report what the document leaves
83
+ // undecided rather than drawing it or dropping it in silence.
84
+ if (true === node.isDisjunct && Array.isArray(node.peg)) {
85
+ ancestors.add(node);
86
+ for (const arm of node.peg) {
87
+ visit(arm, path, ancestors, hidden, true);
88
+ }
89
+ ancestors.delete(node);
90
+ }
91
+ if ((true === node.isMap || true === node.isList) && null != node.peg) {
92
+ ancestors.add(node);
93
+ for (const k of Object.keys(node.peg)) {
94
+ visit(node.peg[k], [...path, k], ancestors, hidden, undecided);
95
+ }
96
+ ancestors.delete(node);
97
+ }
98
+ };
99
+ visit(root, [], new Set(), false, false);
100
+ // DETERMINISTIC by construction, not by luck: edges by the position
101
+ // they are written at, which is unique — one link, one place. That
102
+ // holds through a conjunction too: its terms share the position, and
103
+ // two links there would have had to unify into one.
104
+ edges.sort((a, b) => (0, keyorder_1.cmpCodePoint)(a.at, b.at));
105
+ if (0 < disjunct.length) {
106
+ return { edges, disjunct: [...new Set(disjunct)].sort(keyorder_1.cmpCodePoint) };
107
+ }
108
+ return { edges };
109
+ }
110
+ //# sourceMappingURL=graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph.js","sourceRoot":"","sources":["../src/graph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Val } from './val/Val';
2
+ export declare function hcanon(v: Val): string;
3
+ export declare function canonHash(v: Val): string;
package/dist/hcanon.js ADDED
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ /* Copyright (c) 2025 Richard Rodger, MIT License */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.hcanon = hcanon;
5
+ exports.canonHash = canonHash;
6
+ // The HASH FORM (G6 phase 0, docs/capability-review/g6-distribution.md):
7
+ // exactly the unify-level canon with the additions that close its
8
+ // semantic gaps, so that two documents with the same hash form have the
9
+ // same meaning:
10
+ //
11
+ // - a CLOSED map or list renders wrapped: close({...}), close([...])
12
+ // (canon drops closedness);
13
+ // - the type/hide MARKS render as their builtin wrappers: type(x),
14
+ // hide(x) (canon drops marks).
15
+ //
16
+ // Both additions reuse existing parseable syntax, so the hash form
17
+ // remains valid Aontu source and round-trips:
18
+ // hcanon(unify(parse(hcanon(v)))) == hcanon(v) is a spec-suite property
19
+ // (test/spec/hcanon.tsv). User-facing canon is UNCHANGED — hcanon is a
20
+ // separate rendering.
21
+ //
22
+ // The marks PROPAGATE to every descendant at unification (walkMark), so
23
+ // a wrapper is emitted only where a mark STARTS: the walk carries the
24
+ // inherited marks down and a child whose mark the parent already
25
+ // carries renders bare. Without that, hide({a:1}) would render every
26
+ // leaf re-wrapped — still correct, never minimal, and not what the
27
+ // source said.
28
+ //
29
+ // canonHash (G6 phase 1) is the pin built on it:
30
+ // "aon1-" + base64url( SHA-256( UTF-8( hcanon(v) ) ) )
31
+ // (unpadded base64url, RFC 4648 section 5). The "aon1-" scheme id
32
+ // exists so a future semantically-stronger normal form is an upgrade,
33
+ // not a breakage. This is a CANONICAL-TEXT hash, not a semantic
34
+ // equivalence class: the failure direction is the safe one — a false
35
+ // "changed" forces a needless re-review; a false "unchanged" would need
36
+ // two hash forms with the same bytes and different meanings, which is
37
+ // exactly the gap the close/mark wrappers exist to shut.
38
+ const node_crypto_1 = require("node:crypto");
39
+ const keyorder_1 = require("./keyorder");
40
+ // One node's rendering, carrying the marks the ANCESTORS already
41
+ // wrapped. Bags and junctions recurse structurally (their canon getters
42
+ // render children through plain canon, which would drop a nested
43
+ // close); everything else — scalars, kinds, funcs, refs, constraints —
44
+ // delegates to its own canon, whose text is already in cross-port
45
+ // parity. The non-Val arm mirrors MapVal.canon's raw-peg fallback and
46
+ // is unreachable through an evaluated tree (direct-tested, ADR-002).
47
+ function render(v, inh) {
48
+ if (true !== v?.isVal) {
49
+ return String(v);
50
+ }
51
+ const mtype = true === v.mark?.type;
52
+ const mhide = true === v.mark?.hide;
53
+ const inner = {
54
+ type: inh.type || mtype,
55
+ hide: inh.hide || mhide,
56
+ };
57
+ let s;
58
+ if (true === v.isMap) {
59
+ // Alias declarations are dropped here for the same reason
60
+ // MapVal.canon drops them, and this is the surface where it counts:
61
+ // `aon1-` pins MEANING, so a document written with aliases and the
62
+ // same document written longhand must hash to one string. Two
63
+ // renderers, one rule -- hcanon is not canon and does not inherit
64
+ // the filter (docs/design/ALIASES.0.md §4).
65
+ const keys = Object.keys(v.peg)
66
+ .filter((k) => !v.aliasKeys.includes(k))
67
+ .sort(keyorder_1.cmpCodePoint);
68
+ s = '{' +
69
+ (v.spread.cj ? '&:' + render(v.spread.cj, inner) +
70
+ (0 < keys.length ? ',' : '') : '') +
71
+ keys.map((k) => JSON.stringify(k) +
72
+ (v.optionalKeys.includes(k) ? '?' : '') +
73
+ ':' +
74
+ render(v.peg[k], inner)).join(',') +
75
+ '}';
76
+ if (true === v.closed) {
77
+ s = 'close(' + s + ')';
78
+ }
79
+ }
80
+ else if (true === v.isList) {
81
+ const keys = Object.keys(v.peg);
82
+ s = '[' +
83
+ (v.spread.cj ? '&:' + render(v.spread.cj, inner) +
84
+ (0 < keys.length ? ',' : '') : '') +
85
+ keys.map((k) => render(v.peg[k], inner)).join(',') +
86
+ ']';
87
+ if (true === v.closed) {
88
+ s = 'close(' + s + ')';
89
+ }
90
+ }
91
+ else if (true === v.isPref) {
92
+ s = '*' + render(v.peg, inner);
93
+ }
94
+ else if (true === v.isConjunct || true === v.isDisjunct) {
95
+ s = junctionText(v, true === v.isConjunct ? '&' : '|', inner);
96
+ }
97
+ else {
98
+ s = v.canon;
99
+ }
100
+ if (mtype && !inh.type) {
101
+ s = 'type(' + s + ')';
102
+ }
103
+ if (mhide && !inh.hide) {
104
+ s = 'hide(' + s + ')';
105
+ }
106
+ // The deprecation record rides outermost, as canonRiders
107
+ // renders it (the wrappers are all reparseable calls, so order only
108
+ // has to be FIXED, and this matches the canon the G3 rows pinned).
109
+ const d = v.deprecation;
110
+ if (null != d) {
111
+ const dkeys = Object.keys(d).sort();
112
+ const rec = dkeys.map((k) => JSON.stringify(k) + ':' + JSON.stringify(d[k])).join(',');
113
+ s = 'deprecate(' + s + ('' === rec ? '' : ',{' + rec + '}') + ')';
114
+ }
115
+ return s;
116
+ }
117
+ // The JunctionVal.canon parenthesisation rule, kept: a member that is
118
+ // itself a junction with more than one term keeps its parens so the
119
+ // text reparses with the same structure (`(1|2)&3`, not the
120
+ // differently-parsing `1|2&3`). Post-unification junctions are
121
+ // flattened by norm, so no SOURCE reaches the wrapping arm -- it is
122
+ // pinned by direct tests over constructed Vals in both ports, because
123
+ // a hash form that could render ambiguously would be a pin that
124
+ // silently agrees with a document it should not.
125
+ function junctionText(v, sym, inner) {
126
+ return v.peg.map((m) => true === m?.isJunction && 1 < m.peg.length
127
+ ? '(' + render(m, inner) + ')'
128
+ : render(m, inner))
129
+ .join(sym);
130
+ }
131
+ // The hash form of an EVALUATED Val (unify first; parse-level canon
132
+ // parenthesisation differs between the ports and is excluded by
133
+ // construction — AGENTS.md).
134
+ function hcanon(v) {
135
+ return render(v, { type: false, hide: false });
136
+ }
137
+ // The canon-hash pin. Scoped to the module evaluated STANDALONE: its
138
+ // own include closure resolved and unified at its own root, before any
139
+ // consumer context — which is what makes the pin transitive (an edit
140
+ // two includes deep changes the unified root, hence the hash).
141
+ function canonHash(v) {
142
+ return 'aon1-' +
143
+ (0, node_crypto_1.createHash)('sha256').update(hcanon(v), 'utf8').digest('base64url');
144
+ }
145
+ //# sourceMappingURL=hcanon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hcanon.js","sourceRoot":"","sources":["../src/hcanon.ts"],"names":[],"mappings":"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"}