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/unify.js CHANGED
@@ -2,32 +2,36 @@
2
2
  /* Copyright (c) 2021-2023 Richard Rodger, MIT License */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.withDepth = exports.unite = exports.Unify = void 0;
5
+ exports.applyFlows = applyFlows;
5
6
  const ctx_1 = require("./ctx");
6
7
  const type_1 = require("./type");
7
8
  const err_1 = require("./err");
9
+ const ReferFuncVal_1 = require("./val/ReferFuncVal");
10
+ const PlaceVal_1 = require("./val/PlaceVal");
8
11
  const lang_1 = require("./lang");
9
12
  const utility_1 = require("./utility");
10
13
  const top_1 = require("./val/top");
11
- // Per-pass revisit bound: how many times one (Val, path) pair may be
12
- // re-unified within a single fixpoint pass before the evaluator calls it
13
- // non-convergence (`unify_cycle`). The old false positive here -- a
14
- // legal model with more than MAXCYCLE sibling conjunct terms at one
15
- // path, each re-running the TOP self-unify -- is fixed by the per-pass
16
- // memo below (_tcc/_tpi); test/spec/budget.tsv drives 1200 sibling
17
- // terms through both engines as the regression guard.
18
- const MAXCYCLE = 999;
19
- // Structural recursion budget: how deep `unite` may nest before the
20
- // evaluator reports `unify_cycle`. SHARED LANGUAGE SURFACE -- Go's
21
- // maxUniteDepth (go/unify.go) carries the same number, and
22
- // test/spec/budget.tsv pins the boundary in both, so changing it is a
23
- // spec-visible change in both ports at once.
14
+ // The evaluation budgets live on the context (ctx.budget: passes,
15
+ // revisits, depth), defaulted there to the shared spec-visible
16
+ // constants test/spec/budget.tsv pins in both ports (9 / 999 / 1000)
17
+ // and configurable through the trust profile (G5, docs/trust.md) —
18
+ // deterministically: a budget is an integer count of engine events,
19
+ // never wall-clock.
24
20
  //
25
- // Why 1000: the whole shared suite peaks at 603 (the deliberately
26
- // extreme 1200-sibling-term fixture; ordinary documents are two orders
27
- // below), and V8 exhausts its call stack somewhere past depth ~1500 in
28
- // this evaluator. 1000 sits above every real document and below the
29
- // host limit, so the budget -- not the host -- decides the verdict.
30
- const MAXDEPTH = 1000;
21
+ // Why the revisit default is 999: how many times one (Val, path) pair
22
+ // may be re-unified within a single fixpoint pass before the evaluator
23
+ // calls it non-convergence (`unify_cycle`). The old false positive here
24
+ // -- a legal model with many sibling conjunct terms at one path, each
25
+ // re-running the TOP self-unify -- is fixed by the per-pass memo below
26
+ // (_tcc/_tpi); test/spec/budget.tsv drives 1200 sibling terms through
27
+ // both engines as the regression guard.
28
+ //
29
+ // Why the depth default is 1000: the whole shared suite peaks at 603
30
+ // (the deliberately extreme 1200-sibling-term fixture; ordinary
31
+ // documents are two orders below), and V8 exhausts its call stack
32
+ // somewhere past depth ~1500 in this evaluator. 1000 sits above every
33
+ // real document and below the host limit, so the budget -- not the
34
+ // host -- decides the verdict.
31
35
  // Charge a DIRECT `Val.unify` recursion to the same depth budget that
32
36
  // `unite` enforces. Function and operator arguments evaluate through
33
37
  // `arg.unify(top(), ...)` rather than through the dispatcher, so without
@@ -37,7 +41,7 @@ const MAXDEPTH = 1000;
37
41
  // `unify_cycle`. Returns the budget nil instead of running when the
38
42
  // budget is spent.
39
43
  const withDepth = (ctx, a, b, run) => {
40
- if (MAXDEPTH <= ctx._depth.n) {
44
+ if (ctx.budget.depth <= ctx._depth.n) {
41
45
  return (0, err_1.makeNilErr)(ctx, 'unify_cycle', a, b);
42
46
  }
43
47
  ctx._depth.n++;
@@ -67,15 +71,46 @@ const unite = (ctx, a, b, whence) => {
67
71
  if (a.done)
68
72
  return a;
69
73
  }
70
- else if (b !== undefined && b !== null) {
74
+ // ... and NOT on an instrumented run (G7 provenance). Both arms
75
+ // below answer with one operand and never reach the recorder at
76
+ // the tail, so an equal pair — two positions of one entity that
77
+ // agree, a clone meeting its source — contributed silently and
78
+ // `why` named one site where the Go port, whose recorder wraps the
79
+ // whole dispatcher, named both. Instrumented runs pay the slow
80
+ // path knowingly; uninstrumented ones pay one undefined check.
81
+ else if (b !== undefined && b !== null && undefined === ctx.prov) {
71
82
  if (a.done && b.done) {
72
- if (a.id === b.id)
83
+ if (a.id === b.id) {
84
+ // The deprecation record survives the fast path (G3).
85
+ if (null == a.deprecation && null != b.deprecation) {
86
+ a.deprecation = b.deprecation;
87
+ }
73
88
  return a;
89
+ }
74
90
  if (a.constructor === b.constructor && a.peg === b.peg
75
91
  && !a.isNil && !b.isNil
76
92
  && !a.isMap && !a.isList
77
93
  && !a.isConjunct && !a.isDisjunct
78
- && !a.isRef && !a.isPref && !a.isFunc && !a.isExpect) {
94
+ && !a.isRef && !a.isPref && !a.isFunc && !a.isExpect
95
+ // NOT two TOPs: every top has the same (absent) peg, so
96
+ // this path would treat any two as the same value and
97
+ // return one of them whole — dropping a rider the other
98
+ // carries. The slow path answers the same thing for two
99
+ // plain tops, so nothing is lost by declining the shortcut.
100
+ && !a.isTop && !b.isTop
101
+ // NOT two rel residuals (RELATIONS P1) for the same
102
+ // reason: a settled rel is DONE with an absent peg, so
103
+ // any two matched here — dropping one side's type and
104
+ // held constraints. RelVal.unify merges them instead.
105
+ // NOT two graph atoms (P2) either: acyclic() and
106
+ // inverse(x) share a constructor and an absent peg
107
+ // without being the same declaration.
108
+ && !a.isRel && !a.isGraphAtom && !a.isRecurse) {
109
+ // The deprecation record survives the fast path too (G3):
110
+ // `deprecate(5) & 5` short-circuits here.
111
+ if (null == a.deprecation && null != b.deprecation) {
112
+ a.deprecation = b.deprecation;
113
+ }
79
114
  return a;
80
115
  }
81
116
  }
@@ -94,7 +129,7 @@ const unite = (ctx, a, b, whence) => {
94
129
  // NOTE: if this error occurs "unreasonably", attemp to avoid unnecesary unification
95
130
  // See for example PrefVal peg.id equality inspection.
96
131
  const sawCount = ctx.seen[saw] ?? 0;
97
- if (MAXDEPTH <= ctx._depth.n) {
132
+ if (ctx.budget.depth <= ctx._depth.n) {
98
133
  // Structural recursion budget. Without it, deep nesting exhausts the
99
134
  // V8 call stack and the catch-all below reports a RangeError as
100
135
  // `internal` — a verdict that depends on the host's stack size
@@ -103,7 +138,7 @@ const unite = (ctx, a, b, whence) => {
103
138
  // makes it a stated budget error, like the pass budget.
104
139
  out = (0, err_1.makeNilErr)(ctx, 'unify_cycle', a, b);
105
140
  }
106
- else if (MAXCYCLE < sawCount) {
141
+ else if (ctx.budget.revisits < sawCount) {
107
142
  // console.log('SAW', sawCount, saw, a?.id, a?.canon, b?.id, b?.canon, ctx.cc)
108
143
  out = (0, err_1.makeNilErr)(ctx, 'unify_cycle', a, b);
109
144
  }
@@ -155,14 +190,36 @@ const unite = (ctx, a, b, whence) => {
155
190
  || b.isPref
156
191
  || b.isVar
157
192
  || b.isFunc
158
- || b.isExpect) {
193
+ || b.isExpect
194
+ // The refer residual (G4 phase 2) DRIVES, like the other
195
+ // residuals here: its peer is a plain string, which knows
196
+ // nothing about entity addresses, so letting the string drive
197
+ // dropped the address and left the constraint standing.
198
+ || b.isRefer
199
+ // An operator holding a HOLE (G8 phase 3) drives for the same
200
+ // reason: its peer is what FILLS it, and a scalar asked to
201
+ // unify with `_ + 2` sees an operator rather than a hole and
202
+ // refuses it on kind. Narrow to placeheld operators on
203
+ // purpose -- every other operator meets its peer the way it
204
+ // always has, through the conjunct fold that drives it.
205
+ || (b.isOp && (0, PlaceVal_1.hasPlace)(b))
206
+ // A graph atom DRIVES (RELATIONS P2): its peer is the value
207
+ // it rides beside -- a container, a rel, a scalar -- and none
208
+ // of them know the atom; the atom knows to residuate.
209
+ || b.isGraphAtom
210
+ // The recursive residual DRIVES for the same reason: its peer
211
+ // is the concrete structure it expands against.
212
+ || b.isRecurse) {
159
213
  out = b.unify(a, te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'BW') }) : ctx);
160
214
  unified = true;
161
215
  why = 'bv';
162
216
  }
163
217
  // Exactly equal scalars (not caught by early fast-path — e.g.
164
- // because a or b isn't .done yet).
165
- else if (a.constructor === b.constructor && a.peg === b.peg) {
218
+ // because a or b isn't .done yet). Rel residuals are excluded
219
+ // exactly as in the fast path: their pegs are equally absent
220
+ // without the values being the same relation.
221
+ else if (a.constructor === b.constructor && a.peg === b.peg
222
+ && !a.isRel && !a.isGraphAtom && !a.isRecurse) {
166
223
  out = update(a, b);
167
224
  why = 'up';
168
225
  }
@@ -219,6 +276,27 @@ const unite = (ctx, a, b, whence) => {
219
276
  }
220
277
  }
221
278
  ctx.explain && (0, utility_1.explainClose)(te, out);
279
+ // The provenance record (G7 phase 3), at the one place every meet
280
+ // passes through — the same reason the deprecation rider below lives
281
+ // here. Off by default: an uninstrumented run pays this one property
282
+ // load, and an instrumented one pays site materialisation knowingly.
283
+ if (undefined !== ctx.prov) {
284
+ ctx.prov.record(ctx.path, a, b, out);
285
+ }
286
+ // The deprecation record survives EVERY meet (G3 phase 4): the
287
+ // boolean marks have their own sweeps (ConjunctVal, the bag walks),
288
+ // but a record lost in one meet shape is a use the tooling never
289
+ // warns about, so it rides here, at the one place all meets pass
290
+ // through. First record wins; TOP and nil stay clean (TOP is the
291
+ // unit, and an error needs no deprecation).
292
+ if (null != out && true === out.isVal &&
293
+ !out.isTop && !out.isNil && null == out.deprecation) {
294
+ const dep = (null != a ? a.deprecation : undefined) ??
295
+ (null != b ? b.deprecation : undefined);
296
+ if (null != dep) {
297
+ out.deprecation = dep;
298
+ }
299
+ }
222
300
  return out;
223
301
  };
224
302
  exports.unite = unite;
@@ -248,6 +326,69 @@ function residuePaths(v, max) {
248
326
  visit(v, true);
249
327
  return out;
250
328
  }
329
+ // THE TYPE FLOW, APPLIED (G4 phase 2). `refer(t)` unifies `t` INTO the
330
+ // node it addresses, which is a write at a position the meet is not
331
+ // currently at -- the one non-local effect in the evaluator.
332
+ //
333
+ // It cannot be only a write made during the pass. A pass BUILDS a new
334
+ // tree from the old one, and `ctx.root` during pass N is pass N-1's
335
+ // result; a subtree rebuilt by pass N (which is exactly what happens
336
+ // when the link sits inside its own target, or when two nodes link at
337
+ // each other) drops a write made into the previous one. So each flow is
338
+ // also RECORDED, keyed by the target's path, and re-applied to the
339
+ // pass's own result here.
340
+ //
341
+ // Keyed by PATH, so there is no registry of names to collide in
342
+ // (ADR-014) -- the key is the position the address resolved to, and
343
+ // re-uniting the same type at the same position is idempotent, which is
344
+ // what makes replaying every recorded flow every pass correct rather
345
+ // than merely cheap.
346
+ //
347
+ // The pass loop is its only caller; it is EXPORTED for the test that
348
+ // pins the unresolved-path guard below (see there).
349
+ function applyFlows(ctx, root) {
350
+ const flows = ctx.referflows;
351
+ // NOTHING TO APPLY is the common case -- a document with no links
352
+ // pays one property load per pass, and the walk never runs.
353
+ if (null == flows || 0 === flows.size) {
354
+ return root;
355
+ }
356
+ // Sorted, so two flows landing at overlapping positions arrive in the
357
+ // same order in both ports.
358
+ for (const key of [...flows.keys()].sort()) {
359
+ const path = key.split('\x00');
360
+ // The SHARED resolver, the one `refer` itself uses: a second
361
+ // descent written here would be a second answer to "what does this
362
+ // path name", and the two would drift (the Go twin calls the same
363
+ // findAt, arm for arm -- ADR-001).
364
+ //
365
+ // A RECORDED PATH THAT NO LONGER RESOLVES is skipped rather than
366
+ // refused: the record outliving its position is a question about
367
+ // the tree, and the link that named it answers it
368
+ // (test/spec/refer.tsv, `flow-target-moved-away`).
369
+ //
370
+ // NO DOCUMENT REACHES IT: a record is written only for a path that
371
+ // HAD resolved, and unification never takes a node back out of the
372
+ // tree — `move` copies and hides its source rather than removing
373
+ // it, which is the one rearrangement that looked like it would
374
+ // (probed in both ports: the flow still resolves on every pass,
375
+ // `flow-lands-then-its-parent-moves`). The guard is the contract
376
+ // for a rearrangement that does, and it is pinned by a direct call
377
+ // (`apply-flows-skips-a-record-that-stops-resolving` in
378
+ // ts/test/coverage3.test.ts) rather than by an ignore marker: node's
379
+ // `coverage ignore` drops LINES, and the gate reads BRANCH records,
380
+ // which survive it. The Go twin in go/unify.go can use the marker
381
+ // because that gate counts statements.
382
+ const found = (0, ReferFuncVal_1.findAt)(root, path);
383
+ if (undefined === found) {
384
+ continue;
385
+ }
386
+ const { parent, key: pkey, val: node } = found;
387
+ const merged = unite(ctx.descend(pkey), node, flows.get(key), 'refer-flow');
388
+ parent.peg[pkey] = merged;
389
+ }
390
+ return root;
391
+ }
251
392
  class Unify {
252
393
  constructor(root, lang, ctx, src) {
253
394
  this.lang = lang || new lang_1.Lang();
@@ -285,24 +426,79 @@ class Unify {
285
426
  uctx.err = this.err;
286
427
  uctx.explain = this.explain;
287
428
  uctx.snapmap = new Map();
429
+ uctx.referflows = new Map();
430
+ uctx._referflow = new Set();
288
431
  const explain = null == ctx?.explain ? undefined : ctx?.explain;
289
432
  const te = explain && (0, utility_1.explainOpen)(uctx, explain, 'root', res);
290
433
  // NOTE: if true === res.done already, then this loop never needs to run.
291
- let maxcc = 9; // 99
434
+ let maxcc = uctx.budget.passes;
292
435
  let prevCanon = undefined;
436
+ let lastCanon = undefined;
437
+ let settle = false;
293
438
  for (; this.cc < maxcc && type_1.DONE !== res.dc; this.cc++) {
294
439
  // console.log('CC', this.cc, res.canon)
295
440
  uctx.cc = this.cc;
296
441
  uctx.seen = {};
297
- res = unite(te ? uctx.clone({ explain: (0, utility_1.ec)(te, 'run') }) : uctx, res, (0, top_1.top)(), 'unify');
298
- if (0 < uctx.err.length) {
299
- break;
442
+ // THE STAGING RULE (G8 phase 0,
443
+ // docs/capability-review/g8-generation.md), stated once, here,
444
+ // for every value whose answer depends on WHERE IT IS. Such a
445
+ // value residuates while the model is still moving and fires on
446
+ // the first pass whose input is IDENTICAL to the previous
447
+ // pass's input: nothing moved, so nothing will move it again,
448
+ // and the position it reports is the position it ends at.
449
+ //
450
+ // Why the whole model and not the value's own path. A spread, a
451
+ // reference or a `move` can place a value under a path it has
452
+ // already been driven at and THEN change what encloses it --
453
+ // `move` hides its source one pass AFTER it copies it, and a
454
+ // `key()` that answered on the strength of its path alone would
455
+ // answer for the ghost. Stability of the model is the only
456
+ // signal that says every such rearrangement is finished.
457
+ uctx.settle = settle;
458
+ // Snapshot BEFORE the final pass (the loop condition has
459
+ // already established the tree is not done), so exhaustion can
460
+ // tell "still refining" from "stable residue" below. Taken at
461
+ // the final pass's ENTRY rather than the previous pass's exit
462
+ // — the same value when the budget allows two passes, and the
463
+ // only possible value when the trust profile sets passes to 1,
464
+ // where the old placement (cc === maxcc - 2, never true) made
465
+ // exhaustion silent, exactly the truncation docs/trust.md
466
+ // forbids. `lastCanon` IS that entry canon whenever a previous
467
+ // pass rendered one, so this costs nothing extra.
468
+ if (this.cc === maxcc - 1) {
469
+ prevCanon = lastCanon ?? res.canon;
300
470
  }
301
- // Snapshot the second-to-last pass's result, so exhaustion can
302
- // tell "still refining" from "stable residue" below. Only paid
303
- // by models still unresolved this late.
304
- if (this.cc === maxcc - 2 && type_1.DONE !== res.dc) {
305
- prevCanon = res.canon;
471
+ res = unite(te ? uctx.clone({ explain: (0, utility_1.ec)(te, 'run') }) : uctx, res, (0, top_1.top)(), 'unify');
472
+ // MULTI-ERROR COLLECTION (G2 phase 6): the pass loop CONTINUES
473
+ // past an erroring pass, so independent failures a later pass
474
+ // would reach are collected in the same run — the break that
475
+ // stood here made every multi-error report truncated at the
476
+ // first erroring pass.
477
+ //
478
+ // What controls the cascade the design feared: a nil is
479
+ // ABSORBING (unite's isNil arms return the existing nil, no new
480
+ // error), so one failure stays ONE NilVal however many later
481
+ // meets touch it — a reference resolving to a failed target
482
+ // takes the same nil identity, which is exactly what lets the
483
+ // report layer dedup by identity. The probes that established
484
+ // this (fan-in refs, spread templates, disjunct trials, nested
485
+ // conjuncts) are pinned as vet.tsv's multi-* rows in both
486
+ // ports.
487
+ // The recorded type flows, re-applied to the tree THIS pass
488
+ // built: a pass rebuilds subtrees, and a flow written into the
489
+ // previous pass's tree does not survive that.
490
+ res = applyFlows(uctx, res);
491
+ // The staging signal for the NEXT pass, rendered here rather
492
+ // than at the top of the loop so a model that is FINISHED is
493
+ // never rendered at all: canon walks references, and the only
494
+ // trees that close a cycle are hand-built ones (the pass loop
495
+ // is what a test drives them through), which converge in one
496
+ // pass and must not be walked to decide a question that no
497
+ // longer arises.
498
+ if (type_1.DONE !== res.dc) {
499
+ const nowCanon = res.canon;
500
+ settle = undefined !== lastCanon && lastCanon === nowCanon;
501
+ lastCanon = nowCanon;
306
502
  }
307
503
  uctx = uctx.clone({ root: res });
308
504
  }
@@ -328,6 +524,6 @@ class Unify {
328
524
  }
329
525
  this.res = res;
330
526
  }
331
- } /* node:coverage ignore next 9 */
527
+ } /* node:coverage ignore next 10 */
332
528
  exports.Unify = Unify;
333
529
  //# sourceMappingURL=unify.js.map
package/dist/unify.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"unify.js","sourceRoot":"","sources":["../src/unify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"unify.js","sourceRoot":"","sources":["../src/unify.ts"],"names":[],"mappings":"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"}
package/dist/utility.d.ts CHANGED
@@ -1,5 +1,12 @@
1
1
  import type { Val } from './type';
2
2
  declare function propagateMarks(source: Val, target: Val): void;
3
+ declare function collectDeprecations(root: Val): Array<{
4
+ val: Val;
5
+ path: string[];
6
+ }>;
7
+ declare function walkBagVals(root: Val, fn: (v: Val, path: string[]) => void): void;
8
+ declare function deprecationMessage(d: Record<string, string>): string;
9
+ declare function canonRiders(v: Val): string;
3
10
  declare function formatPath(path: Val | string[], absolute?: boolean): string;
4
11
  type WalkApply = (key: string | number | undefined, val: Val, parent: Val | undefined, path: (string | number)[]) => Val;
5
12
  /**
@@ -12,4 +19,4 @@ declare function ec(t: any[] | undefined | null, why: string): (string | null)[]
12
19
  declare function explainClose(t: any[] | undefined | null, out?: Val): void;
13
20
  declare function formatExplain(t: any[], d?: number): string;
14
21
  declare function items(o: any): any[][];
15
- export { items, propagateMarks, formatPath, walk, WalkApply, explainOpen, ec, explainClose, formatExplain, };
22
+ export { items, propagateMarks, canonRiders, collectDeprecations, walkBagVals, deprecationMessage, formatPath, walk, WalkApply, explainOpen, ec, explainClose, formatExplain, };
package/dist/utility.js CHANGED
@@ -3,6 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.items = items;
5
5
  exports.propagateMarks = propagateMarks;
6
+ exports.canonRiders = canonRiders;
7
+ exports.collectDeprecations = collectDeprecations;
8
+ exports.walkBagVals = walkBagVals;
9
+ exports.deprecationMessage = deprecationMessage;
6
10
  exports.formatPath = formatPath;
7
11
  exports.walk = walk;
8
12
  exports.explainOpen = explainOpen;
@@ -25,6 +29,69 @@ function propagateMarks(source, target) {
25
29
  target.mark[name] = target.mark[name] || source.mark[name];
26
30
  }
27
31
  }
32
+ // Collect every value in the tree carrying the deprecation record (G3
33
+ // phase 4), with its path — the one walk behind vet's `deprecated`
34
+ // warnings and the LSP's Deprecated tags. The record travels on meets
35
+ // (the unite rider) and clones, so this sees the declaration and every
36
+ // use resolving through it. The non-Val guard is for a bag's raw peg
37
+ // entries, which degenerate parses can leave behind.
38
+ function collectDeprecations(root) {
39
+ const out = [];
40
+ walkBagVals(root, (v, path) => {
41
+ if (null != v.deprecation) {
42
+ out.push({ val: v, path });
43
+ }
44
+ });
45
+ return out;
46
+ }
47
+ // Visit every Val reachable through bag children, with its path — the
48
+ // walk under collectDeprecations and vet's default-validity lint. The
49
+ // non-Val guard is for a bag's raw peg entries, which degenerate
50
+ // parses can leave behind (pinned by the collect-deprecations direct
51
+ // test, ts/test/coverage3.test.ts).
52
+ function walkBagVals(root, fn) {
53
+ const walk = (v, path) => {
54
+ if (null == v || true !== v.isVal) {
55
+ return;
56
+ }
57
+ fn(v, path);
58
+ if ((true === v.isMap || true === v.isList) && null != v.peg) {
59
+ for (const k of Object.keys(v.peg)) {
60
+ walk(v.peg[k], [...path, k]);
61
+ }
62
+ }
63
+ };
64
+ walk(root, []);
65
+ }
66
+ // The one-line prose for a deprecation record, shared by vet's warning
67
+ // findings and the LSP's tagged diagnostics.
68
+ function deprecationMessage(d) {
69
+ const msg = 'string' === typeof d.msg ? d.msg : '';
70
+ return 'deprecated' + ('' === msg ? '' : ': ' + msg) +
71
+ ('string' === typeof d.use ? ' (use ' + d.use + ')' : '') +
72
+ ('string' === typeof d.since ? ' (since ' + d.since + ')' : '');
73
+ }
74
+ // The canonical form of a value, wrapped in the RIDER it carries —
75
+ // the deprecation record (G3 phase 4) — reparseably, so
76
+ // `deprecate(x, m)` survives canon. Bags render their children through
77
+ // this (MapVal/ListVal canon), which is where a marked FIELD — the
78
+ // realistic case — lives.
79
+ //
80
+ // The rider renders HERE and not in the value's own `canon` for the
81
+ // same reason the guard at the MapVal call site tests the isVal flag:
82
+ // a bag's canon recursion visits each child once, and a child that
83
+ // wrapped itself as well would render its subtree twice per level —
84
+ // 2^depth on a nested document.
85
+ function canonRiders(v) {
86
+ const c = v.canon;
87
+ const d = v.deprecation;
88
+ if (null == d) {
89
+ return c;
90
+ }
91
+ const keys = Object.keys(d).sort();
92
+ const rec = keys.map((k) => JSON.stringify(k) + ':' + JSON.stringify(d[k])).join(',');
93
+ return 'deprecate(' + c + ('' === rec ? '' : ',{' + rec + '}') + ')';
94
+ }
28
95
  function formatPath(path, absolute) {
29
96
  let parts;
30
97
  if (Array.isArray(path)) {
@@ -142,5 +209,5 @@ function items(o) {
142
209
  else {
143
210
  return [];
144
211
  }
145
- } /* node:coverage ignore next 15 */
212
+ } /* node:coverage ignore next 18 */
146
213
  //# sourceMappingURL=utility.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utility.js","sourceRoot":"","sources":["../src/utility.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utility.js","sourceRoot":"","sources":["../src/utility.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import type { Val, ValSpec } from '../type';
2
+ import { AontuContext } from '../ctx';
3
+ import { FuncBaseVal } from './FuncBaseVal';
4
+ type AggOp = 'sum' | 'least' | 'greatest';
5
+ declare class AggFuncVal extends FuncBaseVal {
6
+ isAggFunc: boolean;
7
+ staged: boolean;
8
+ op: AggOp;
9
+ constructor(spec: ValSpec, ctx: AontuContext | undefined, op: AggOp);
10
+ funcname(): AggOp;
11
+ prepare(_ctx: AontuContext, _args: Val[]): null;
12
+ unify(peer: Val, ctx: AontuContext): Val;
13
+ resolve(ctx: AontuContext, args: Val[]): Val;
14
+ }
15
+ declare class PickFuncVal extends FuncBaseVal {
16
+ isPickFunc: boolean;
17
+ staged: boolean;
18
+ constructor(spec: ValSpec, ctx?: AontuContext);
19
+ funcname(): string;
20
+ prepare(_ctx: AontuContext, _args: Val[]): null;
21
+ unify(peer: Val, ctx: AontuContext): Val;
22
+ resolve(ctx: AontuContext, args: Val[]): Val;
23
+ }
24
+ declare class JoinFuncVal extends FuncBaseVal {
25
+ isJoinFunc: boolean;
26
+ staged: boolean;
27
+ constructor(spec: ValSpec, ctx?: AontuContext);
28
+ make(_ctx: AontuContext, spec: ValSpec): Val;
29
+ funcname(): string;
30
+ prepare(_ctx: AontuContext, _args: Val[]): null;
31
+ unify(peer: Val, ctx: AontuContext): Val;
32
+ deferResolve(_ctx: AontuContext, args?: Val[]): boolean;
33
+ resolve(ctx: AontuContext, args: Val[]): Val;
34
+ }
35
+ declare class SumFuncVal extends AggFuncVal {
36
+ constructor(spec: ValSpec, ctx?: AontuContext);
37
+ }
38
+ declare class LeastFuncVal extends AggFuncVal {
39
+ constructor(spec: ValSpec, ctx?: AontuContext);
40
+ }
41
+ declare class GreatestFuncVal extends AggFuncVal {
42
+ constructor(spec: ValSpec, ctx?: AontuContext);
43
+ }
44
+ export { AggFuncVal, JoinFuncVal, PickFuncVal, SumFuncVal, LeastFuncVal, GreatestFuncVal, };