aontu 0.52.0 → 0.53.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 (273) 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 +14 -3
  7. package/dist/aontu.js +145 -4
  8. package/dist/aontu.js.map +1 -1
  9. package/dist/cli.d.ts +44 -1
  10. package/dist/cli.js +2401 -44
  11. package/dist/cli.js.map +1 -1
  12. package/dist/ctx.d.ts +16 -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 +48 -8
  20. package/dist/err.js.map +1 -1
  21. package/dist/graph.d.ts +16 -0
  22. package/dist/graph.js +73 -0
  23. package/dist/graph.js.map +1 -0
  24. package/dist/hcanon.d.ts +3 -0
  25. package/dist/hcanon.js +146 -0
  26. package/dist/hcanon.js.map +1 -0
  27. package/dist/hints.js +223 -5
  28. package/dist/hints.js.map +1 -1
  29. package/dist/jsonschema.d.ts +20 -0
  30. package/dist/jsonschema.js +391 -0
  31. package/dist/jsonschema.js.map +1 -0
  32. package/dist/lang.js +698 -35
  33. package/dist/lang.js.map +1 -1
  34. package/dist/lsp.d.ts +9 -2
  35. package/dist/lsp.js +262 -46
  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 +814 -0
  42. package/dist/mcp.js.map +1 -0
  43. package/dist/mod-tool.d.ts +58 -0
  44. package/dist/mod-tool.js +498 -0
  45. package/dist/mod-tool.js.map +1 -0
  46. package/dist/mod.d.ts +31 -0
  47. package/dist/mod.js +250 -0
  48. package/dist/mod.js.map +1 -0
  49. package/dist/patch.d.ts +44 -0
  50. package/dist/patch.js +506 -0
  51. package/dist/patch.js.map +1 -0
  52. package/dist/provenance.d.ts +40 -0
  53. package/dist/provenance.js +335 -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 +14 -0
  59. package/dist/reach.js +140 -0
  60. package/dist/reach.js.map +1 -0
  61. package/dist/relation.d.ts +19 -0
  62. package/dist/relation.js +305 -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/site.d.ts +4 -0
  68. package/dist/site.js +31 -0
  69. package/dist/site.js.map +1 -1
  70. package/dist/std.d.ts +1 -0
  71. package/dist/std.js +73 -0
  72. package/dist/std.js.map +1 -0
  73. package/dist/subsume.d.ts +39 -0
  74. package/dist/subsume.js +526 -0
  75. package/dist/subsume.js.map +1 -0
  76. package/dist/trim.d.ts +19 -0
  77. package/dist/trim.js +155 -0
  78. package/dist/trim.js.map +1 -0
  79. package/dist/tsconfig.tsbuildinfo +1 -1
  80. package/dist/type.d.ts +17 -1
  81. package/dist/type.js.map +1 -1
  82. package/dist/unify.d.ts +3 -1
  83. package/dist/unify.js +287 -18
  84. package/dist/unify.js.map +1 -1
  85. package/dist/utility.d.ts +9 -1
  86. package/dist/utility.js +122 -1
  87. package/dist/utility.js.map +1 -1
  88. package/dist/val/AggFuncVal.d.ts +33 -0
  89. package/dist/val/AggFuncVal.js +202 -0
  90. package/dist/val/AggFuncVal.js.map +1 -0
  91. package/dist/val/ArithFuncVal.d.ts +31 -0
  92. package/dist/val/ArithFuncVal.js +62 -0
  93. package/dist/val/ArithFuncVal.js.map +1 -0
  94. package/dist/val/BagVal.d.ts +5 -0
  95. package/dist/val/BagVal.js +96 -5
  96. package/dist/val/BagVal.js.map +1 -1
  97. package/dist/val/CloseFuncVal.js +9 -1
  98. package/dist/val/CloseFuncVal.js.map +1 -1
  99. package/dist/val/ConjunctVal.d.ts +1 -1
  100. package/dist/val/ConjunctVal.js +19 -0
  101. package/dist/val/ConjunctVal.js.map +1 -1
  102. package/dist/val/ConstraintVal.d.ts +48 -1
  103. package/dist/val/ConstraintVal.js +1501 -110
  104. package/dist/val/ConstraintVal.js.map +1 -1
  105. package/dist/val/CopyFuncVal.d.ts +1 -2
  106. package/dist/val/CopyFuncVal.js +7 -0
  107. package/dist/val/CopyFuncVal.js.map +1 -1
  108. package/dist/val/Decimal.d.ts +1 -0
  109. package/dist/val/Decimal.js +13 -0
  110. package/dist/val/Decimal.js.map +1 -1
  111. package/dist/val/DeprecateFuncVal.d.ts +11 -0
  112. package/dist/val/DeprecateFuncVal.js +47 -0
  113. package/dist/val/DeprecateFuncVal.js.map +1 -0
  114. package/dist/val/DisjunctVal.js +130 -21
  115. package/dist/val/DisjunctVal.js.map +1 -1
  116. package/dist/val/EachFuncVal.d.ts +15 -0
  117. package/dist/val/EachFuncVal.js +75 -0
  118. package/dist/val/EachFuncVal.js.map +1 -0
  119. package/dist/val/ExpectVal.d.ts +1 -0
  120. package/dist/val/ExpectVal.js +41 -4
  121. package/dist/val/ExpectVal.js.map +1 -1
  122. package/dist/val/FeatureVal.js +1 -1
  123. package/dist/val/FeatureVal.js.map +1 -1
  124. package/dist/val/FilterFuncVal.d.ts +15 -0
  125. package/dist/val/FilterFuncVal.js +91 -0
  126. package/dist/val/FilterFuncVal.js.map +1 -0
  127. package/dist/val/FuncBaseVal.d.ts +6 -1
  128. package/dist/val/FuncBaseVal.js +178 -2
  129. package/dist/val/FuncBaseVal.js.map +1 -1
  130. package/dist/val/HideFuncVal.js.map +1 -1
  131. package/dist/val/IdFuncVal.d.ts +13 -0
  132. package/dist/val/IdFuncVal.js +54 -0
  133. package/dist/val/IdFuncVal.js.map +1 -0
  134. package/dist/val/JunctionVal.js +7 -1
  135. package/dist/val/JunctionVal.js.map +1 -1
  136. package/dist/val/KeyFuncVal.d.ts +1 -1
  137. package/dist/val/KeyFuncVal.js +38 -30
  138. package/dist/val/KeyFuncVal.js.map +1 -1
  139. package/dist/val/ListVal.js +117 -17
  140. package/dist/val/ListVal.js.map +1 -1
  141. package/dist/val/LowerFuncVal.js.map +1 -1
  142. package/dist/val/MapVal.js +102 -8
  143. package/dist/val/MapVal.js.map +1 -1
  144. package/dist/val/MatchFuncVal.d.ts +15 -0
  145. package/dist/val/MatchFuncVal.js +107 -0
  146. package/dist/val/MatchFuncVal.js.map +1 -0
  147. package/dist/val/MoveFuncVal.js.map +1 -1
  148. package/dist/val/NilVal.js +24 -0
  149. package/dist/val/NilVal.js.map +1 -1
  150. package/dist/val/OpBaseVal.d.ts +1 -1
  151. package/dist/val/OpBaseVal.js +24 -2
  152. package/dist/val/OpBaseVal.js.map +1 -1
  153. package/dist/val/OpenFuncVal.js +4 -1
  154. package/dist/val/OpenFuncVal.js.map +1 -1
  155. package/dist/val/PackFuncVal.d.ts +15 -0
  156. package/dist/val/PackFuncVal.js +108 -0
  157. package/dist/val/PackFuncVal.js.map +1 -0
  158. package/dist/val/PathFuncVal.js.map +1 -1
  159. package/dist/val/PlaceVal.d.ts +13 -0
  160. package/dist/val/PlaceVal.js +131 -0
  161. package/dist/val/PlaceVal.js.map +1 -0
  162. package/dist/val/PlusOpVal.js +11 -2
  163. package/dist/val/PlusOpVal.js.map +1 -1
  164. package/dist/val/PrefFuncVal.js.map +1 -1
  165. package/dist/val/PrefVal.d.ts +2 -2
  166. package/dist/val/PrefVal.js +78 -23
  167. package/dist/val/PrefVal.js.map +1 -1
  168. package/dist/val/RefVal.d.ts +1 -1
  169. package/dist/val/RefVal.js +158 -30
  170. package/dist/val/RefVal.js.map +1 -1
  171. package/dist/val/ReferFuncVal.d.ts +36 -0
  172. package/dist/val/ReferFuncVal.js +303 -0
  173. package/dist/val/ReferFuncVal.js.map +1 -0
  174. package/dist/val/ScalarKindVal.d.ts +1 -2
  175. package/dist/val/ScalarKindVal.js +0 -11
  176. package/dist/val/ScalarKindVal.js.map +1 -1
  177. package/dist/val/TopVal.js.map +1 -1
  178. package/dist/val/TypeFuncVal.js.map +1 -1
  179. package/dist/val/UpperFuncVal.js.map +1 -1
  180. package/dist/val/Val.d.ts +9 -2
  181. package/dist/val/Val.js +150 -4
  182. package/dist/val/Val.js.map +1 -1
  183. package/dist/val/VarVal.js.map +1 -1
  184. package/dist/val/arith.d.ts +6 -0
  185. package/dist/val/arith.js +170 -0
  186. package/dist/val/arith.js.map +1 -0
  187. package/dist/vet.d.ts +45 -0
  188. package/dist/vet.js +776 -0
  189. package/dist/vet.js.map +1 -0
  190. package/dist/walk.d.ts +2 -0
  191. package/dist/walk.js +91 -0
  192. package/dist/walk.js.map +1 -0
  193. package/grammar/aontu.gbnf +130 -0
  194. package/grammar/aontu.lark +113 -0
  195. package/package.json +30 -15
  196. package/skill/SKILL.md +37 -0
  197. package/skill/error-codes.md +62 -0
  198. package/skill/examples.md +99 -0
  199. package/skill/grammar-card.md +57 -0
  200. package/src/agentsmd.ts +135 -0
  201. package/src/aontu.ts +192 -4
  202. package/src/cli.ts +2858 -71
  203. package/src/ctx.ts +81 -0
  204. package/src/diff.ts +196 -0
  205. package/src/err.ts +52 -8
  206. package/src/graph.ts +135 -0
  207. package/src/hcanon.ts +169 -0
  208. package/src/hints.ts +271 -5
  209. package/src/jsonschema.ts +511 -0
  210. package/src/lang.ts +779 -37
  211. package/src/lsp.ts +281 -47
  212. package/src/mcp-server.ts +187 -0
  213. package/src/mcp.ts +993 -0
  214. package/src/mod-tool.ts +679 -0
  215. package/src/mod.ts +344 -0
  216. package/src/patch.ts +624 -0
  217. package/src/provenance.ts +430 -0
  218. package/src/query.ts +379 -0
  219. package/src/reach.ts +184 -0
  220. package/src/relation.ts +395 -0
  221. package/src/report-sarif.ts +137 -0
  222. package/src/site.ts +36 -1
  223. package/src/std.ts +73 -0
  224. package/src/subsume.ts +690 -0
  225. package/src/trim.ts +195 -0
  226. package/src/tsconfig.json +10 -4
  227. package/src/type.ts +51 -2
  228. package/src/unify.ts +311 -16
  229. package/src/utility.ts +139 -1
  230. package/src/val/AggFuncVal.ts +319 -0
  231. package/src/val/ArithFuncVal.ts +108 -0
  232. package/src/val/BagVal.ts +101 -4
  233. package/src/val/CloseFuncVal.ts +9 -1
  234. package/src/val/ConjunctVal.ts +20 -0
  235. package/src/val/ConstraintVal.ts +1699 -116
  236. package/src/val/CopyFuncVal.ts +7 -1
  237. package/src/val/Decimal.ts +15 -0
  238. package/src/val/DeprecateFuncVal.ts +84 -0
  239. package/src/val/DisjunctVal.ts +139 -28
  240. package/src/val/EachFuncVal.ts +133 -0
  241. package/src/val/ExpectVal.ts +43 -6
  242. package/src/val/FeatureVal.ts +1 -1
  243. package/src/val/FilterFuncVal.ts +154 -0
  244. package/src/val/FuncBaseVal.ts +200 -3
  245. package/src/val/HideFuncVal.ts +0 -2
  246. package/src/val/IdFuncVal.ts +91 -0
  247. package/src/val/JunctionVal.ts +7 -1
  248. package/src/val/KeyFuncVal.ts +39 -35
  249. package/src/val/ListVal.ts +125 -18
  250. package/src/val/LowerFuncVal.ts +0 -1
  251. package/src/val/MapVal.ts +110 -8
  252. package/src/val/MatchFuncVal.ts +176 -0
  253. package/src/val/MoveFuncVal.ts +0 -2
  254. package/src/val/NilVal.ts +25 -0
  255. package/src/val/OpBaseVal.ts +26 -3
  256. package/src/val/OpenFuncVal.ts +4 -2
  257. package/src/val/PackFuncVal.ts +175 -0
  258. package/src/val/PathFuncVal.ts +0 -1
  259. package/src/val/PlaceVal.ts +193 -0
  260. package/src/val/PlusOpVal.ts +11 -2
  261. package/src/val/PrefFuncVal.ts +0 -1
  262. package/src/val/PrefVal.ts +79 -36
  263. package/src/val/RefVal.ts +163 -30
  264. package/src/val/ReferFuncVal.ts +387 -0
  265. package/src/val/ScalarKindVal.ts +0 -13
  266. package/src/val/TopVal.ts +0 -1
  267. package/src/val/TypeFuncVal.ts +0 -2
  268. package/src/val/UpperFuncVal.ts +0 -1
  269. package/src/val/Val.ts +213 -3
  270. package/src/val/VarVal.ts +0 -1
  271. package/src/val/arith.ts +316 -0
  272. package/src/vet.ts +992 -0
  273. package/src/walk.ts +99 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vet.js","sourceRoot":"","sources":["../src/vet.ts"],"names":[],"mappings":"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"}
package/dist/walk.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export declare function walkVals(v: any, visit: (v: any) => boolean, seen: Set<any>): void;
2
+ export declare function collectNils(root: any, seen: Set<any>): any[];
package/dist/walk.js ADDED
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ /* Copyright (c) 2025 Richard Rodger, MIT License */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.walkVals = walkVals;
5
+ exports.collectNils = collectNils;
6
+ // One tree walk, two consumers: the language server collects NilVals
7
+ // for diagnostics (ts/src/lsp.ts) and the validation verb both stamps
8
+ // provenance and collects NilVals for findings (ts/src/vet.ts). They had
9
+ // the same traversal written out twice, which is one copy too many for
10
+ // something with three easy ways to be subtly wrong:
11
+ //
12
+ // - a Val's children live under `peg`, which is an ARRAY for lists,
13
+ // conjuncts and disjuncts, and an OBJECT for maps;
14
+ // - a spread constraint lives OFF-peg (`spread.cj`), so a value inside
15
+ // a `&:` template is reachable only by following it deliberately;
16
+ // - the `seen` set is a termination guard, not an optimisation, and
17
+ // the non-Val guard is load-bearing too: a peg object can hold
18
+ // entries that are not Vals.
19
+ //
20
+ // The visitor returns false to prune the subtree below a node, which is
21
+ // how a nil collector stops at the nil rather than walking into the
22
+ // operands it carries.
23
+ function walkVals(v, visit, seen) {
24
+ if (null == v || 'object' !== typeof v || true !== v.isVal) {
25
+ return;
26
+ }
27
+ if (seen.has(v)) {
28
+ return;
29
+ }
30
+ seen.add(v);
31
+ if (!visit(v)) {
32
+ return;
33
+ }
34
+ const peg = v.peg;
35
+ if (Array.isArray(peg)) {
36
+ for (const c of peg) {
37
+ walkVals(c, visit, seen);
38
+ }
39
+ }
40
+ else if (null != peg && 'object' === typeof peg) {
41
+ for (const k in peg) {
42
+ walkVals(peg[k], visit, seen);
43
+ }
44
+ }
45
+ const spread = v.spread?.cj;
46
+ if (spread) {
47
+ walkVals(spread, visit, seen);
48
+ }
49
+ // OFF-PEG VALUES THAT CAN BE REPORTED. A preference carries the type
50
+ // yardstick it derived from its own value, and a `must` carries the
51
+ // value it checks against; neither is a peg entry, and both can end
52
+ // up as an operand of a failure — the preference's yardstick is what
53
+ // `*1 & {}` conflicts with. A caller
54
+ // that stamps provenance (ts/src/vet.ts) has to reach them, or a
55
+ // report names the document such a value came from as "unknown",
56
+ // and the two ports disagree about it (go/walk.go does the same).
57
+ walkVals(v.superpeg, visit, seen);
58
+ for (const must of (v.musts ?? [])) {
59
+ walkVals(must?.v, visit, seen);
60
+ }
61
+ // A FAILURE'S OPERANDS, for the same reason and with the same
62
+ // safety. They are not peg entries, and they are exactly what a
63
+ // report names: a finding's sites are the nil's primary and
64
+ // secondary (ts/src/vet.ts, siteOf). A visitor that PRUNES at a nil
65
+ // never gets here -- collectNils returns false and this line is
66
+ // behind that gate -- so a nil collector is unaffected. A visitor
67
+ // that does not prune, and stamping provenance is the one that does
68
+ // not, must reach them or a broken schema's finding names no file at
69
+ // all (go/walk.go does the same).
70
+ walkVals(v.primary, visit, seen);
71
+ walkVals(v.secondary, visit, seen);
72
+ }
73
+ // Every NilVal in the tree, in walk order. Callers that need a stable
74
+ // order across the two ports must sort — the walk follows raw key
75
+ // order, and the hosts disagree about that (ts/src/keyorder.ts).
76
+ //
77
+ // The `seen` set is the caller's, not an internal detail: both callers
78
+ // go on to dedup context-only errors against the nils already found,
79
+ // which is only possible if they hold the set.
80
+ function collectNils(root, seen) {
81
+ const out = [];
82
+ walkVals(root, (v) => {
83
+ if (true === v.isNil) {
84
+ out.push(v);
85
+ return false;
86
+ }
87
+ return true;
88
+ }, seen);
89
+ return out;
90
+ }
91
+ //# sourceMappingURL=walk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walk.js","sourceRoot":"","sources":["../src/walk.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,130 @@
1
+ # Aontu — published grammar (GBNF), for constrained decoding.
2
+ #
3
+ # G7 phase 6, docs/capability-review/g7-machine-access.md. This
4
+ # grammar covers the DOCUMENTED EMISSION SURFACE: what a model should
5
+ # be allowed to write, which is a superset of JSON plus the operators,
6
+ # constraints and marks the language's own canonical form emits.
7
+ #
8
+ # It is CONSERVATIVE BY CONSTRUCTION: it may accept less than the
9
+ # parser does, never more. Two deliberate exclusions:
10
+ #
11
+ # - `@"..."` includes. Constrained decoding must not emit a
12
+ # source-loading directive: a generated document should describe
13
+ # values, not reach for files.
14
+ # - Unquoted keys and the other spellings the parser tolerates. Canon
15
+ # quotes every key, and one spelling is what a grammar is for.
16
+ #
17
+ # The parity discipline (ts/test/grammar.test.ts): every canonical-form
18
+ # output in the shared spec suite must parse under THIS FILE, which is
19
+ # read and interpreted by the test rather than transcribed into it. The
20
+ # same rules, in lark form, are in grammar/aontu.lark.
21
+
22
+ root ::= ws value ws
23
+
24
+ value ::= piped
25
+
26
+ # The pipe is SUGAR: `x |> f(a)` is `f(x, a)`, resolved while reading
27
+ # the source (G8 phase 4). It never reaches a value, so canon never
28
+ # emits it — every canon in the shared suite shows the call.
29
+ piped ::= disjunct ( ws "|>" ws disjunct )*
30
+
31
+ disjunct ::= conjunct ( ws "|" ws conjunct )*
32
+
33
+ conjunct ::= prefixed ( ws "&" ws prefixed )*
34
+
35
+ # A preference marks the alternative a generation picks.
36
+ prefixed ::= "*" ws prefixed | sum
37
+
38
+ sum ::= atom ( ws "+" ws atom )*
39
+
40
+ atom ::=
41
+ map
42
+ | list
43
+ | func
44
+ | ref
45
+ | kind
46
+ | place
47
+ | scalar
48
+ | "(" ws value ws ")"
49
+
50
+ map ::= "{" ws ( entry ( ws "," ws entry )* ws )? "}"
51
+
52
+ entry ::= spread | pair
53
+
54
+ # The template every key of the bag must also satisfy.
55
+ spread ::= "&" ws ":" ws value
56
+
57
+ pair ::= string ws "?"? ws ":" ws value
58
+
59
+ # A list ELEMENT is a value, not a pair — only the template is keyed.
60
+ list ::= "[" ws ( element ( ws "," ws element )* ws )? "]"
61
+
62
+ element ::= spread | value
63
+
64
+ # The builtins, applied. The name set is closed on purpose: an unknown
65
+ # function is a parse-time error in the engine, so a grammar that
66
+ # allowed any name would over-approximate.
67
+ #
68
+ # ORDER MATTERS where one name is a prefix of another: this is an
69
+ # ordered choice, so `refer` is listed before `re` or `re` would match
70
+ # the prefix and the `(` check would then fail on `refer(...)`. The
71
+ # arithmetic family added a second such pair: `rem` must also precede
72
+ # `re`.
73
+ func ::= name "(" ws ( value ( ws "," ws value )* ws )? ")"
74
+
75
+ name ::=
76
+ "above" | "add" | "below" | "close" | "copy" | "deprecate" | "div"
77
+ | "each" | "filter" | "greatest"
78
+ | "hide"
79
+ | "id" | "key" | "least"
80
+ | "length" | "lower" | "match" | "max" | "min" | "mod" | "move"
81
+ | "mul" | "must"
82
+ | "neq"
83
+ | "open" | "pack" | "path" | "pick" | "pref" | "refer" | "rem" | "re" | "super"
84
+ | "sub" | "sum"
85
+ | "type"
86
+ | "unique" | "upper"
87
+
88
+ # A path reference, absolute from the document root.
89
+ # At least one segment: a bare `$` is an incomplete expression, not a
90
+ # reference, so `*` here admitted a form the engine refuses.
91
+ # A RELATIVE reference has no "$": `.n` names a sibling, resolved
92
+ # against the enclosing map rather than the document root. Canon emits
93
+ # one wherever a spread template survives unresolved, so a grammar
94
+ # without it cannot parse this engine's own output. No conflict with
95
+ # `number`: a numeric literal here always starts with a digit or "-".
96
+ ref ::= "$" ( "." segment )+ | ( "." segment )+
97
+
98
+ # No `-`: it is not a bare-text character (test/spec/op-chars.tsv pins
99
+ # `a:6-2` as a parse error), so admitting it over-approximated.
100
+ segment ::= ( [a-zA-Z0-9_] )+
101
+
102
+ # The placeholder: a hole a call is filled through (G8 phase 3). BARE
103
+ # only -- `"_"` is an ordinary string, and a longer bare word
104
+ # containing it is ordinary text.
105
+ place ::= "_"
106
+
107
+ kind ::=
108
+ "biginteger" | "bigdecimal" | "boolean" | "float" | "integer"
109
+ | "number" | "string" | "top" | "nil"
110
+
111
+ scalar ::= string | exact | number | "true" | "false" | "null"
112
+
113
+ string ::= "\"" char* "\""
114
+
115
+ char ::= [^"\\] | "\\" escape
116
+
117
+ escape ::= ["\\/bfnrt] | "u" hex hex hex hex
118
+
119
+ hex ::= [0-9a-fA-F]
120
+
121
+ # The exact leaves: arbitrary precision, spelled with the 0d marker.
122
+ exact ::= "-"? "0d" digits ( "." digits )? exponent?
123
+
124
+ number ::= "-"? digits ( "." digits )? exponent?
125
+
126
+ exponent ::= [eE] [-+]? digits
127
+
128
+ digits ::= [0-9]+
129
+
130
+ ws ::= [ \t\n\r]*
@@ -0,0 +1,113 @@
1
+ // Aontu — published grammar (lark), for constrained decoding.
2
+ //
3
+ // G7 phase 6, docs/capability-review/g7-machine-access.md. The same
4
+ // rules as grammar/aontu.gbnf, for the other consumer: keep the two in
5
+ // step, and note that ts/test/grammar.test.ts checks that every rule
6
+ // named there is named here.
7
+ //
8
+ // The gbnf file is the one the parity test INTERPRETS against the
9
+ // shared suite's canonical output; this file is its transcription, so
10
+ // a change to the surface starts there.
11
+ //
12
+ // Conservative by construction: it accepts less than the parser does,
13
+ // never more. `@"..."` includes are deliberately absent — constrained
14
+ // decoding must not emit a source-loading directive.
15
+
16
+ root: value
17
+
18
+ value: piped
19
+
20
+ // The pipe is SUGAR: `x |> f(a)` is `f(x, a)`, resolved while reading
21
+ // the source (G8 phase 4). It never reaches a value, so canon never
22
+ // emits it — every canon in the shared suite shows the call.
23
+ piped: disjunct ("|>" disjunct)*
24
+
25
+ disjunct: conjunct ("|" conjunct)*
26
+
27
+ conjunct: prefixed ("&" prefixed)*
28
+
29
+ prefixed: "*" prefixed
30
+ | sum
31
+
32
+ sum: atom ("+" atom)*
33
+
34
+ atom: map
35
+ | list
36
+ | func
37
+ | ref
38
+ | kind
39
+ | place
40
+ | scalar
41
+ | "(" value ")"
42
+
43
+ map: "{" [entry ("," entry)*] "}"
44
+
45
+ entry: spread
46
+ | pair
47
+
48
+ spread: "&" ":" value
49
+
50
+ pair: string ["?"] ":" value
51
+
52
+ // A list ELEMENT is a value, not a pair — only the template is keyed.
53
+ list: "[" [element ("," element)*] "]"
54
+
55
+ element: spread
56
+ | value
57
+
58
+ func: name "(" [value ("," value)*] ")"
59
+
60
+ name: "above" | "add" | "below" | "close" | "copy" | "deprecate" | "div"
61
+ | "each" | "filter" | "greatest"
62
+ | "hide"
63
+ | "id" | "key" | "least"
64
+ | "length" | "lower" | "match" | "max" | "min" | "mod" | "move"
65
+ | "mul" | "must"
66
+ | "neq"
67
+ | "open" | "pack" | "path" | "pick" | "pref" | "refer" | "rem" | "re" | "super"
68
+ | "sub" | "sum"
69
+ | "type"
70
+ | "unique" | "upper"
71
+
72
+ // At least one segment: a bare `$` is an incomplete expression.
73
+ //
74
+ // A RELATIVE reference has no `$`: `.n` names a sibling, resolved
75
+ // against the enclosing map rather than the document root. Canon EMITS
76
+ // one wherever a spread template survives unresolved
77
+ // (`{&:{v:add(.n,1)}}`), so a grammar without it cannot parse this
78
+ // engine's own output -- which is what `every-canon-output-parses`
79
+ // exists to catch, and did. No conflict with `number`: a numeric
80
+ // literal here always starts with a digit or `-`.
81
+ ref: "$" ("." segment)+
82
+ | ("." segment)+
83
+
84
+ // No `-`: not a bare-text character (test/spec/op-chars.tsv).
85
+ segment: /[a-zA-Z0-9_]+/
86
+
87
+ // placeholder
88
+ place: "_"
89
+
90
+ kind: "biginteger" | "bigdecimal" | "boolean" | "float" | "integer"
91
+ | "number" | "string" | "top" | "nil"
92
+
93
+ scalar: string | exact | number | "true" | "false" | "null"
94
+
95
+ string: /"([^"\\]|\\(["\\\/bfnrt]|u[0-9a-fA-F]{4}))*"/
96
+
97
+ char: /[^"\\]/ | "\\" escape
98
+
99
+ escape: /["\\\/bfnrt]/ | "u" hex hex hex hex
100
+
101
+ hex: /[0-9a-fA-F]/
102
+
103
+ exact: /-?0d[0-9]+(\.[0-9]+)?([eE][-+]?[0-9]+)?/
104
+
105
+ number: /-?[0-9]+(\.[0-9]+)?([eE][-+]?[0-9]+)?/
106
+
107
+ exponent: /[eE][-+]?[0-9]+/
108
+
109
+ digits: /[0-9]+/
110
+
111
+ ws: /[ \t\n\r]*/
112
+
113
+ %ignore /[ \t\n\r]+/
package/package.json CHANGED
@@ -1,22 +1,34 @@
1
1
  {
2
2
  "name": "aontu",
3
- "version": "0.52.0",
3
+ "version": "0.53.0",
4
4
  "main": "dist/aontu.js",
5
5
  "type": "commonjs",
6
6
  "types": "dist/aontu.d.ts",
7
7
  "bin": {
8
8
  "aontu": "bin/aontu.js",
9
- "aontu-lsp": "bin/aontu-lsp.js"
9
+ "aontu-lsp": "bin/aontu-lsp.js",
10
+ "aontu-mcp": "bin/aontu-mcp.js"
10
11
  },
11
- "description": "Unifier.",
12
- "homepage": "https://github.com/rjrodger/aontu",
12
+ "description": "JSON-superset unification language and validation gate for AI-agent ground truth - evaluate, vet, diff, query, and evolution-check structured models.",
13
+ "homepage": "https://github.com/aontu-lang/aontu",
13
14
  "keywords": [
14
- "unify"
15
+ "unify",
16
+ "unification",
17
+ "json",
18
+ "schema",
19
+ "validation",
20
+ "vet",
21
+ "lattice",
22
+ "config",
23
+ "cue",
24
+ "agent",
25
+ "mcp",
26
+ "ground-truth"
15
27
  ],
16
28
  "author": "Richard Rodger (http://richardrodger.com)",
17
29
  "repository": {
18
30
  "type": "git",
19
- "url": "git://github.com/rjrodger/aontu.git"
31
+ "url": "git+https://github.com/aontu-lang/aontu.git"
20
32
  },
21
33
  "scripts": {
22
34
  "test": "node --enable-source-maps --test \"dist-test/**/*.test.js\"",
@@ -25,6 +37,7 @@
25
37
  "test-some": "node --enable-source-maps --test-name-pattern=\"$TEST_PATTERN\" --test \"dist-test/**/*.test.js\"",
26
38
  "watch": "tsc --build src test -w",
27
39
  "build": "tsc --build src test",
40
+ "prepack": "node scripts/prepack.js",
28
41
  "clean": "rm -rf dist dist-test node_modules yarn.lock package-lock.json",
29
42
  "reset": "npm run clean && npm i && npm run build && npm test",
30
43
  "version": "node -e \"const fs=require('fs');const v=require('./package.json').version;const f='./src/aontu.ts';const s=fs.readFileSync(f,'utf8');const re=/^const VERSION = '.*?'/m;if(!re.test(s)){console.error('version: no VERSION constant in '+f);process.exit(1)}const n=s.replace(re,'const VERSION = \\''+v+'\\'');if(n!==s){fs.writeFileSync(f,n);console.log('version: src/aontu.ts VERSION -> '+v)}\"",
@@ -46,20 +59,22 @@
46
59
  "bin",
47
60
  "src",
48
61
  "dist",
62
+ "grammar",
63
+ "skill",
49
64
  "LICENSE"
50
65
  ],
51
66
  "dependencies": {
52
- "@tabnas/debug": "0.3.1",
53
- "@tabnas/directive": "0.5.1",
54
- "@tabnas/expr": "0.5.1",
55
- "@tabnas/jsonic": "0.6.0",
56
- "@tabnas/multisource": "0.5.1",
57
- "@tabnas/parser": "0.8.4",
58
- "@tabnas/path": "0.3.1"
67
+ "@tabnas/debug": "0.3.2",
68
+ "@tabnas/directive": "0.5.2",
69
+ "@tabnas/expr": "0.5.5",
70
+ "@tabnas/jsonic": "0.6.2",
71
+ "@tabnas/multisource": "0.5.2",
72
+ "@tabnas/parser": "0.8.7",
73
+ "@tabnas/path": "0.3.2"
59
74
  },
60
75
  "devDependencies": {
61
- "@types/node": "26.1.1",
62
- "memfs": "4.64.0",
76
+ "@types/node": "26.2.0",
77
+ "memfs": "4.68.1",
63
78
  "typescript": "7.0.2"
64
79
  },
65
80
  "aliasify": {
package/skill/SKILL.md ADDED
@@ -0,0 +1,37 @@
1
+ ---
2
+ name: aontu
3
+ description: >-
4
+ Write, check and query Aontu definitions — a JSON superset where
5
+ documents UNIFY instead of overwriting. Use when a repository holds
6
+ `.aon` files, when configuration must satisfy a schema rather than
7
+ merely parse, or when you need to ask what a configuration says at a
8
+ path and why it says it.
9
+ ---
10
+
11
+ # Aontu
12
+
13
+ Aontu is JSON plus a lattice. Two documents do not override each
14
+ other, they **unify**: the result is the most specific value that
15
+ satisfies both, or an error naming the contradiction. That makes a
16
+ definition checkable, queryable and safe to change.
17
+
18
+ Start here:
19
+
20
+ - Every JSON document is an Aontu document. Write JSON, then add
21
+ what JSON cannot say.
22
+ - [`grammar-card.md`](grammar-card.md) — the whole surface on one
23
+ page.
24
+ - [`examples.md`](examples.md) — the JSON-superset ladder: plain
25
+ JSON, then kinds, defaults, templates, constraints.
26
+ - [`error-codes.md`](error-codes.md) — what a refusal means and what
27
+ to do about it.
28
+
29
+ The verbs, all of which answer as JSON with `--format json`:
30
+
31
+ ```
32
+ aontu vet schema.aon data.aon # does this data satisfy that truth?
33
+ aontu get $.a.b file.aon # what does it say at a path?
34
+ aontu why $.a.b file.aon # why does that value hold?
35
+ aontu set $.a.b=1 --entry file.aon --overlay over.aon
36
+ aontu hash file.aon # a pin that survives reformatting
37
+ ```
@@ -0,0 +1,62 @@
1
+ # What a refusal means
2
+
3
+ Every Aontu error carries a **code**, and every code has a **class**.
4
+ The class says what kind of thing went wrong, which is what decides
5
+ your next move. The full registry — every code, its class, and the
6
+ version it appeared in — is
7
+ [`test/spec/errcodes.tsv`](https://github.com/aontu-lang/aontu/blob/main/test/spec/errcodes.tsv), which the
8
+ test suite holds to the engine in both implementations.
9
+
10
+ | Class | Meaning | What to do |
11
+ |-------|---------|------------|
12
+ | `parse` | the text is not a document | fix the syntax at the site the frame points at |
13
+ | `conflict` | two values cannot both hold | one of them is wrong: `aontu why <path>` names both and where they were written |
14
+ | `incomplete` | nothing contradicts, but the value is not concrete | supply what is missing, or accept it with `--partial` |
15
+ | `reference` | a path names nothing | check the spelling; `aontu get $ --keys` lists what is there |
16
+ | `compat` | a change breaks an earlier version | that is `aontu subsume` / `aontu breaking` talking: widen the change or version it |
17
+ | `budget` | evaluation hit a deterministic limit | usually a cycle; simplify, or raise the budget deliberately |
18
+ | `internal` | the engine surprised itself | a bug worth reporting |
19
+
20
+ ## The repair loop
21
+
22
+ ```
23
+ aontu vet schema.aon mine.aon --format json
24
+ ```
25
+
26
+ The exit code branches for you: `0` valid, `1` invalid (fix the
27
+ data), `3` incomplete (supply more), `4` the schema itself is
28
+ unusable (fix the truth, not the data). Every finding carries
29
+ `path`, `code`, and the sites on both sides — the data site first,
30
+ because that is the one to edit. A site names **the file whose text
31
+ it excerpts**, so its row and column are safe to edit at even when
32
+ the document loads others.
33
+
34
+ Read `hint` before guessing. `message` is the one-line headline;
35
+ `hint` is the engine's own explanation of the failure class with the
36
+ offending values filled in, and for several codes it names the fix
37
+ outright — `lossy_integer_literal` tells you to write the literal as
38
+ `0d…`. It is absent for codes that have no hint text.
39
+
40
+ For a conflict, `aontu why <path> mine.aon` lists every contribution
41
+ to that path with its role and source line, which turns "these
42
+ disagree" into "these two lines disagree".
43
+
44
+ Then fix it:
45
+
46
+ ```
47
+ aontu set '$.replicas=5' --entry schema.aon --overlay mine.aon --in-place
48
+ ```
49
+
50
+ `--in-place` rewrites the pinned literal **where it was written**, so
51
+ comments and layout survive. Without it, `set` APPENDS — which is the
52
+ right thing when the document left a hole, and cannot work when it
53
+ pinned the wrong value, because unification only narrows.
54
+
55
+ The edit is verified before a byte is written: a site carries the
56
+ source text it covers, and the text at the span must match it. Where
57
+ that cannot be established — the value comes from a `&:` template or a
58
+ `$ref`, two statements pin the path, the site names the opening token
59
+ of a compound like `min(1)`, or the overlay `@"includes"` another
60
+ document — the assignment is appended as usual and a **warning** says
61
+ which case it hit. A warning never changes the verdict, so asking for
62
+ `--in-place` cannot make a run fail that would have succeeded.