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.
- package/README.md +88 -0
- package/bin/aontu-mcp.js +4 -0
- package/dist/agentsmd.d.ts +16 -0
- package/dist/agentsmd.js +107 -0
- package/dist/agentsmd.js.map +1 -0
- package/dist/aontu.d.ts +14 -3
- package/dist/aontu.js +145 -4
- package/dist/aontu.js.map +1 -1
- package/dist/cli.d.ts +44 -1
- package/dist/cli.js +2401 -44
- package/dist/cli.js.map +1 -1
- package/dist/ctx.d.ts +16 -0
- package/dist/ctx.js +44 -0
- package/dist/ctx.js.map +1 -1
- package/dist/diff.d.ts +22 -0
- package/dist/diff.js +141 -0
- package/dist/diff.js.map +1 -0
- package/dist/err.d.ts +3 -1
- package/dist/err.js +48 -8
- package/dist/err.js.map +1 -1
- package/dist/graph.d.ts +16 -0
- package/dist/graph.js +73 -0
- package/dist/graph.js.map +1 -0
- package/dist/hcanon.d.ts +3 -0
- package/dist/hcanon.js +146 -0
- package/dist/hcanon.js.map +1 -0
- package/dist/hints.js +223 -5
- package/dist/hints.js.map +1 -1
- package/dist/jsonschema.d.ts +20 -0
- package/dist/jsonschema.js +391 -0
- package/dist/jsonschema.js.map +1 -0
- package/dist/lang.js +698 -35
- package/dist/lang.js.map +1 -1
- package/dist/lsp.d.ts +9 -2
- package/dist/lsp.js +262 -46
- package/dist/lsp.js.map +1 -1
- package/dist/mcp-server.d.ts +20 -0
- package/dist/mcp-server.js +147 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/mcp.d.ts +42 -0
- package/dist/mcp.js +814 -0
- package/dist/mcp.js.map +1 -0
- package/dist/mod-tool.d.ts +58 -0
- package/dist/mod-tool.js +498 -0
- package/dist/mod-tool.js.map +1 -0
- package/dist/mod.d.ts +31 -0
- package/dist/mod.js +250 -0
- package/dist/mod.js.map +1 -0
- package/dist/patch.d.ts +44 -0
- package/dist/patch.js +506 -0
- package/dist/patch.js.map +1 -0
- package/dist/provenance.d.ts +40 -0
- package/dist/provenance.js +335 -0
- package/dist/provenance.js.map +1 -0
- package/dist/query.d.ts +27 -0
- package/dist/query.js +294 -0
- package/dist/query.js.map +1 -0
- package/dist/reach.d.ts +14 -0
- package/dist/reach.js +140 -0
- package/dist/reach.js.map +1 -0
- package/dist/relation.d.ts +19 -0
- package/dist/relation.js +305 -0
- package/dist/relation.js.map +1 -0
- package/dist/report-sarif.d.ts +14 -0
- package/dist/report-sarif.js +102 -0
- package/dist/report-sarif.js.map +1 -0
- package/dist/site.d.ts +4 -0
- package/dist/site.js +31 -0
- package/dist/site.js.map +1 -1
- package/dist/std.d.ts +1 -0
- package/dist/std.js +73 -0
- package/dist/std.js.map +1 -0
- package/dist/subsume.d.ts +39 -0
- package/dist/subsume.js +526 -0
- package/dist/subsume.js.map +1 -0
- package/dist/trim.d.ts +19 -0
- package/dist/trim.js +155 -0
- package/dist/trim.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/type.d.ts +17 -1
- package/dist/type.js.map +1 -1
- package/dist/unify.d.ts +3 -1
- package/dist/unify.js +287 -18
- package/dist/unify.js.map +1 -1
- package/dist/utility.d.ts +9 -1
- package/dist/utility.js +122 -1
- package/dist/utility.js.map +1 -1
- package/dist/val/AggFuncVal.d.ts +33 -0
- package/dist/val/AggFuncVal.js +202 -0
- package/dist/val/AggFuncVal.js.map +1 -0
- package/dist/val/ArithFuncVal.d.ts +31 -0
- package/dist/val/ArithFuncVal.js +62 -0
- package/dist/val/ArithFuncVal.js.map +1 -0
- package/dist/val/BagVal.d.ts +5 -0
- package/dist/val/BagVal.js +96 -5
- package/dist/val/BagVal.js.map +1 -1
- package/dist/val/CloseFuncVal.js +9 -1
- package/dist/val/CloseFuncVal.js.map +1 -1
- package/dist/val/ConjunctVal.d.ts +1 -1
- package/dist/val/ConjunctVal.js +19 -0
- package/dist/val/ConjunctVal.js.map +1 -1
- package/dist/val/ConstraintVal.d.ts +48 -1
- package/dist/val/ConstraintVal.js +1501 -110
- package/dist/val/ConstraintVal.js.map +1 -1
- package/dist/val/CopyFuncVal.d.ts +1 -2
- package/dist/val/CopyFuncVal.js +7 -0
- package/dist/val/CopyFuncVal.js.map +1 -1
- package/dist/val/Decimal.d.ts +1 -0
- package/dist/val/Decimal.js +13 -0
- package/dist/val/Decimal.js.map +1 -1
- package/dist/val/DeprecateFuncVal.d.ts +11 -0
- package/dist/val/DeprecateFuncVal.js +47 -0
- package/dist/val/DeprecateFuncVal.js.map +1 -0
- package/dist/val/DisjunctVal.js +130 -21
- package/dist/val/DisjunctVal.js.map +1 -1
- package/dist/val/EachFuncVal.d.ts +15 -0
- package/dist/val/EachFuncVal.js +75 -0
- package/dist/val/EachFuncVal.js.map +1 -0
- package/dist/val/ExpectVal.d.ts +1 -0
- package/dist/val/ExpectVal.js +41 -4
- package/dist/val/ExpectVal.js.map +1 -1
- package/dist/val/FeatureVal.js +1 -1
- package/dist/val/FeatureVal.js.map +1 -1
- package/dist/val/FilterFuncVal.d.ts +15 -0
- package/dist/val/FilterFuncVal.js +91 -0
- package/dist/val/FilterFuncVal.js.map +1 -0
- package/dist/val/FuncBaseVal.d.ts +6 -1
- package/dist/val/FuncBaseVal.js +178 -2
- package/dist/val/FuncBaseVal.js.map +1 -1
- package/dist/val/HideFuncVal.js.map +1 -1
- package/dist/val/IdFuncVal.d.ts +13 -0
- package/dist/val/IdFuncVal.js +54 -0
- package/dist/val/IdFuncVal.js.map +1 -0
- package/dist/val/JunctionVal.js +7 -1
- package/dist/val/JunctionVal.js.map +1 -1
- package/dist/val/KeyFuncVal.d.ts +1 -1
- package/dist/val/KeyFuncVal.js +38 -30
- package/dist/val/KeyFuncVal.js.map +1 -1
- package/dist/val/ListVal.js +117 -17
- package/dist/val/ListVal.js.map +1 -1
- package/dist/val/LowerFuncVal.js.map +1 -1
- package/dist/val/MapVal.js +102 -8
- package/dist/val/MapVal.js.map +1 -1
- package/dist/val/MatchFuncVal.d.ts +15 -0
- package/dist/val/MatchFuncVal.js +107 -0
- package/dist/val/MatchFuncVal.js.map +1 -0
- package/dist/val/MoveFuncVal.js.map +1 -1
- package/dist/val/NilVal.js +24 -0
- package/dist/val/NilVal.js.map +1 -1
- package/dist/val/OpBaseVal.d.ts +1 -1
- package/dist/val/OpBaseVal.js +24 -2
- package/dist/val/OpBaseVal.js.map +1 -1
- package/dist/val/OpenFuncVal.js +4 -1
- package/dist/val/OpenFuncVal.js.map +1 -1
- package/dist/val/PackFuncVal.d.ts +15 -0
- package/dist/val/PackFuncVal.js +108 -0
- package/dist/val/PackFuncVal.js.map +1 -0
- package/dist/val/PathFuncVal.js.map +1 -1
- package/dist/val/PlaceVal.d.ts +13 -0
- package/dist/val/PlaceVal.js +131 -0
- package/dist/val/PlaceVal.js.map +1 -0
- package/dist/val/PlusOpVal.js +11 -2
- package/dist/val/PlusOpVal.js.map +1 -1
- package/dist/val/PrefFuncVal.js.map +1 -1
- package/dist/val/PrefVal.d.ts +2 -2
- package/dist/val/PrefVal.js +78 -23
- package/dist/val/PrefVal.js.map +1 -1
- package/dist/val/RefVal.d.ts +1 -1
- package/dist/val/RefVal.js +158 -30
- package/dist/val/RefVal.js.map +1 -1
- package/dist/val/ReferFuncVal.d.ts +36 -0
- package/dist/val/ReferFuncVal.js +303 -0
- package/dist/val/ReferFuncVal.js.map +1 -0
- package/dist/val/ScalarKindVal.d.ts +1 -2
- package/dist/val/ScalarKindVal.js +0 -11
- package/dist/val/ScalarKindVal.js.map +1 -1
- package/dist/val/TopVal.js.map +1 -1
- package/dist/val/TypeFuncVal.js.map +1 -1
- package/dist/val/UpperFuncVal.js.map +1 -1
- package/dist/val/Val.d.ts +9 -2
- package/dist/val/Val.js +150 -4
- package/dist/val/Val.js.map +1 -1
- package/dist/val/VarVal.js.map +1 -1
- package/dist/val/arith.d.ts +6 -0
- package/dist/val/arith.js +170 -0
- package/dist/val/arith.js.map +1 -0
- package/dist/vet.d.ts +45 -0
- package/dist/vet.js +776 -0
- package/dist/vet.js.map +1 -0
- package/dist/walk.d.ts +2 -0
- package/dist/walk.js +91 -0
- package/dist/walk.js.map +1 -0
- package/grammar/aontu.gbnf +130 -0
- package/grammar/aontu.lark +113 -0
- package/package.json +30 -15
- package/skill/SKILL.md +37 -0
- package/skill/error-codes.md +62 -0
- package/skill/examples.md +99 -0
- package/skill/grammar-card.md +57 -0
- package/src/agentsmd.ts +135 -0
- package/src/aontu.ts +192 -4
- package/src/cli.ts +2858 -71
- package/src/ctx.ts +81 -0
- package/src/diff.ts +196 -0
- package/src/err.ts +52 -8
- package/src/graph.ts +135 -0
- package/src/hcanon.ts +169 -0
- package/src/hints.ts +271 -5
- package/src/jsonschema.ts +511 -0
- package/src/lang.ts +779 -37
- package/src/lsp.ts +281 -47
- package/src/mcp-server.ts +187 -0
- package/src/mcp.ts +993 -0
- package/src/mod-tool.ts +679 -0
- package/src/mod.ts +344 -0
- package/src/patch.ts +624 -0
- package/src/provenance.ts +430 -0
- package/src/query.ts +379 -0
- package/src/reach.ts +184 -0
- package/src/relation.ts +395 -0
- package/src/report-sarif.ts +137 -0
- package/src/site.ts +36 -1
- package/src/std.ts +73 -0
- package/src/subsume.ts +690 -0
- package/src/trim.ts +195 -0
- package/src/tsconfig.json +10 -4
- package/src/type.ts +51 -2
- package/src/unify.ts +311 -16
- package/src/utility.ts +139 -1
- package/src/val/AggFuncVal.ts +319 -0
- package/src/val/ArithFuncVal.ts +108 -0
- package/src/val/BagVal.ts +101 -4
- package/src/val/CloseFuncVal.ts +9 -1
- package/src/val/ConjunctVal.ts +20 -0
- package/src/val/ConstraintVal.ts +1699 -116
- package/src/val/CopyFuncVal.ts +7 -1
- package/src/val/Decimal.ts +15 -0
- package/src/val/DeprecateFuncVal.ts +84 -0
- package/src/val/DisjunctVal.ts +139 -28
- package/src/val/EachFuncVal.ts +133 -0
- package/src/val/ExpectVal.ts +43 -6
- package/src/val/FeatureVal.ts +1 -1
- package/src/val/FilterFuncVal.ts +154 -0
- package/src/val/FuncBaseVal.ts +200 -3
- package/src/val/HideFuncVal.ts +0 -2
- package/src/val/IdFuncVal.ts +91 -0
- package/src/val/JunctionVal.ts +7 -1
- package/src/val/KeyFuncVal.ts +39 -35
- package/src/val/ListVal.ts +125 -18
- package/src/val/LowerFuncVal.ts +0 -1
- package/src/val/MapVal.ts +110 -8
- package/src/val/MatchFuncVal.ts +176 -0
- package/src/val/MoveFuncVal.ts +0 -2
- package/src/val/NilVal.ts +25 -0
- package/src/val/OpBaseVal.ts +26 -3
- package/src/val/OpenFuncVal.ts +4 -2
- package/src/val/PackFuncVal.ts +175 -0
- package/src/val/PathFuncVal.ts +0 -1
- package/src/val/PlaceVal.ts +193 -0
- package/src/val/PlusOpVal.ts +11 -2
- package/src/val/PrefFuncVal.ts +0 -1
- package/src/val/PrefVal.ts +79 -36
- package/src/val/RefVal.ts +163 -30
- package/src/val/ReferFuncVal.ts +387 -0
- package/src/val/ScalarKindVal.ts +0 -13
- package/src/val/TopVal.ts +0 -1
- package/src/val/TypeFuncVal.ts +0 -2
- package/src/val/UpperFuncVal.ts +0 -1
- package/src/val/Val.ts +213 -3
- package/src/val/VarVal.ts +0 -1
- package/src/val/arith.ts +316 -0
- package/src/vet.ts +992 -0
- package/src/walk.ts +99 -0
package/dist/vet.js.map
ADDED
|
@@ -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
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
|
package/dist/walk.js.map
ADDED
|
@@ -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.
|
|
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": "
|
|
12
|
-
"homepage": "https://github.com/
|
|
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/
|
|
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.
|
|
53
|
-
"@tabnas/directive": "0.5.
|
|
54
|
-
"@tabnas/expr": "0.5.
|
|
55
|
-
"@tabnas/jsonic": "0.6.
|
|
56
|
-
"@tabnas/multisource": "0.5.
|
|
57
|
-
"@tabnas/parser": "0.8.
|
|
58
|
-
"@tabnas/path": "0.3.
|
|
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.
|
|
62
|
-
"memfs": "4.
|
|
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.
|