aontu 0.52.1 → 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 (272) 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 +96 -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 +13 -0
  13. package/dist/ctx.js +43 -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 +38 -7
  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 +167 -4
  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 +512 -69
  33. package/dist/lang.js.map +1 -1
  34. package/dist/lsp.d.ts +9 -2
  35. package/dist/lsp.js +262 -47
  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 +2 -1
  83. package/dist/unify.js +253 -36
  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 +7 -1
  103. package/dist/val/ConstraintVal.js +490 -40
  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.js +27 -4
  120. package/dist/val/ExpectVal.js.map +1 -1
  121. package/dist/val/FeatureVal.js +1 -1
  122. package/dist/val/FeatureVal.js.map +1 -1
  123. package/dist/val/FilterFuncVal.d.ts +15 -0
  124. package/dist/val/FilterFuncVal.js +91 -0
  125. package/dist/val/FilterFuncVal.js.map +1 -0
  126. package/dist/val/FuncBaseVal.d.ts +6 -1
  127. package/dist/val/FuncBaseVal.js +171 -1
  128. package/dist/val/FuncBaseVal.js.map +1 -1
  129. package/dist/val/HideFuncVal.js.map +1 -1
  130. package/dist/val/IdFuncVal.d.ts +13 -0
  131. package/dist/val/IdFuncVal.js +54 -0
  132. package/dist/val/IdFuncVal.js.map +1 -0
  133. package/dist/val/JunctionVal.js +7 -1
  134. package/dist/val/JunctionVal.js.map +1 -1
  135. package/dist/val/KeyFuncVal.d.ts +1 -1
  136. package/dist/val/KeyFuncVal.js +38 -30
  137. package/dist/val/KeyFuncVal.js.map +1 -1
  138. package/dist/val/ListVal.js +101 -14
  139. package/dist/val/ListVal.js.map +1 -1
  140. package/dist/val/LowerFuncVal.js.map +1 -1
  141. package/dist/val/MapVal.js +93 -8
  142. package/dist/val/MapVal.js.map +1 -1
  143. package/dist/val/MatchFuncVal.d.ts +15 -0
  144. package/dist/val/MatchFuncVal.js +107 -0
  145. package/dist/val/MatchFuncVal.js.map +1 -0
  146. package/dist/val/MoveFuncVal.js.map +1 -1
  147. package/dist/val/NilVal.js +24 -0
  148. package/dist/val/NilVal.js.map +1 -1
  149. package/dist/val/OpBaseVal.d.ts +1 -1
  150. package/dist/val/OpBaseVal.js +19 -1
  151. package/dist/val/OpBaseVal.js.map +1 -1
  152. package/dist/val/OpenFuncVal.js +4 -1
  153. package/dist/val/OpenFuncVal.js.map +1 -1
  154. package/dist/val/PackFuncVal.d.ts +15 -0
  155. package/dist/val/PackFuncVal.js +108 -0
  156. package/dist/val/PackFuncVal.js.map +1 -0
  157. package/dist/val/PathFuncVal.js.map +1 -1
  158. package/dist/val/PlaceVal.d.ts +13 -0
  159. package/dist/val/PlaceVal.js +131 -0
  160. package/dist/val/PlaceVal.js.map +1 -0
  161. package/dist/val/PlusOpVal.js +11 -2
  162. package/dist/val/PlusOpVal.js.map +1 -1
  163. package/dist/val/PrefFuncVal.js.map +1 -1
  164. package/dist/val/PrefVal.d.ts +2 -2
  165. package/dist/val/PrefVal.js +78 -23
  166. package/dist/val/PrefVal.js.map +1 -1
  167. package/dist/val/RefVal.d.ts +1 -1
  168. package/dist/val/RefVal.js +89 -7
  169. package/dist/val/RefVal.js.map +1 -1
  170. package/dist/val/ReferFuncVal.d.ts +36 -0
  171. package/dist/val/ReferFuncVal.js +303 -0
  172. package/dist/val/ReferFuncVal.js.map +1 -0
  173. package/dist/val/ScalarKindVal.d.ts +1 -2
  174. package/dist/val/ScalarKindVal.js +0 -11
  175. package/dist/val/ScalarKindVal.js.map +1 -1
  176. package/dist/val/TopVal.js.map +1 -1
  177. package/dist/val/TypeFuncVal.js.map +1 -1
  178. package/dist/val/UpperFuncVal.js.map +1 -1
  179. package/dist/val/Val.d.ts +8 -1
  180. package/dist/val/Val.js +150 -1
  181. package/dist/val/Val.js.map +1 -1
  182. package/dist/val/VarVal.js.map +1 -1
  183. package/dist/val/arith.d.ts +6 -0
  184. package/dist/val/arith.js +170 -0
  185. package/dist/val/arith.js.map +1 -0
  186. package/dist/vet.d.ts +45 -0
  187. package/dist/vet.js +776 -0
  188. package/dist/vet.js.map +1 -0
  189. package/dist/walk.d.ts +2 -0
  190. package/dist/walk.js +91 -0
  191. package/dist/walk.js.map +1 -0
  192. package/grammar/aontu.gbnf +130 -0
  193. package/grammar/aontu.lark +113 -0
  194. package/package.json +21 -6
  195. package/skill/SKILL.md +37 -0
  196. package/skill/error-codes.md +62 -0
  197. package/skill/examples.md +99 -0
  198. package/skill/grammar-card.md +57 -0
  199. package/src/agentsmd.ts +135 -0
  200. package/src/aontu.ts +135 -4
  201. package/src/cli.ts +2858 -71
  202. package/src/ctx.ts +73 -1
  203. package/src/diff.ts +196 -0
  204. package/src/err.ts +42 -7
  205. package/src/graph.ts +135 -0
  206. package/src/hcanon.ts +169 -0
  207. package/src/hints.ts +208 -4
  208. package/src/jsonschema.ts +511 -0
  209. package/src/lang.ts +570 -70
  210. package/src/lsp.ts +281 -48
  211. package/src/mcp-server.ts +187 -0
  212. package/src/mcp.ts +993 -0
  213. package/src/mod-tool.ts +679 -0
  214. package/src/mod.ts +344 -0
  215. package/src/patch.ts +624 -0
  216. package/src/provenance.ts +430 -0
  217. package/src/query.ts +379 -0
  218. package/src/reach.ts +184 -0
  219. package/src/relation.ts +395 -0
  220. package/src/report-sarif.ts +137 -0
  221. package/src/site.ts +36 -1
  222. package/src/std.ts +73 -0
  223. package/src/subsume.ts +690 -0
  224. package/src/trim.ts +195 -0
  225. package/src/tsconfig.json +10 -4
  226. package/src/type.ts +51 -2
  227. package/src/unify.ts +274 -36
  228. package/src/utility.ts +139 -1
  229. package/src/val/AggFuncVal.ts +319 -0
  230. package/src/val/ArithFuncVal.ts +108 -0
  231. package/src/val/BagVal.ts +101 -4
  232. package/src/val/CloseFuncVal.ts +9 -1
  233. package/src/val/ConjunctVal.ts +20 -0
  234. package/src/val/ConstraintVal.ts +542 -43
  235. package/src/val/CopyFuncVal.ts +7 -1
  236. package/src/val/Decimal.ts +15 -0
  237. package/src/val/DeprecateFuncVal.ts +84 -0
  238. package/src/val/DisjunctVal.ts +139 -28
  239. package/src/val/EachFuncVal.ts +133 -0
  240. package/src/val/ExpectVal.ts +28 -6
  241. package/src/val/FeatureVal.ts +1 -1
  242. package/src/val/FilterFuncVal.ts +154 -0
  243. package/src/val/FuncBaseVal.ts +192 -1
  244. package/src/val/HideFuncVal.ts +0 -2
  245. package/src/val/IdFuncVal.ts +91 -0
  246. package/src/val/JunctionVal.ts +7 -1
  247. package/src/val/KeyFuncVal.ts +39 -35
  248. package/src/val/ListVal.ts +108 -15
  249. package/src/val/LowerFuncVal.ts +0 -1
  250. package/src/val/MapVal.ts +99 -8
  251. package/src/val/MatchFuncVal.ts +176 -0
  252. package/src/val/MoveFuncVal.ts +0 -2
  253. package/src/val/NilVal.ts +25 -0
  254. package/src/val/OpBaseVal.ts +20 -1
  255. package/src/val/OpenFuncVal.ts +4 -2
  256. package/src/val/PackFuncVal.ts +175 -0
  257. package/src/val/PathFuncVal.ts +0 -1
  258. package/src/val/PlaceVal.ts +193 -0
  259. package/src/val/PlusOpVal.ts +11 -2
  260. package/src/val/PrefFuncVal.ts +0 -1
  261. package/src/val/PrefVal.ts +79 -36
  262. package/src/val/RefVal.ts +91 -8
  263. package/src/val/ReferFuncVal.ts +387 -0
  264. package/src/val/ScalarKindVal.ts +0 -13
  265. package/src/val/TopVal.ts +0 -1
  266. package/src/val/TypeFuncVal.ts +0 -2
  267. package/src/val/UpperFuncVal.ts +0 -1
  268. package/src/val/Val.ts +205 -2
  269. package/src/val/VarVal.ts +0 -1
  270. package/src/val/arith.ts +316 -0
  271. package/src/vet.ts +992 -0
  272. package/src/walk.ts +99 -0
package/dist/unify.js CHANGED
@@ -2,32 +2,35 @@
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.mergeEntities = mergeEntities;
5
6
  const ctx_1 = require("./ctx");
6
7
  const type_1 = require("./type");
7
8
  const err_1 = require("./err");
9
+ const PlaceVal_1 = require("./val/PlaceVal");
8
10
  const lang_1 = require("./lang");
9
11
  const utility_1 = require("./utility");
10
12
  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.
13
+ // The evaluation budgets live on the context (ctx.budget: passes,
14
+ // revisits, depth), defaulted there to the shared spec-visible
15
+ // constants test/spec/budget.tsv pins in both ports (9 / 999 / 1000)
16
+ // and configurable through the trust profile (G5, docs/trust.md) —
17
+ // deterministically: a budget is an integer count of engine events,
18
+ // never wall-clock.
24
19
  //
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;
20
+ // Why the revisit default is 999: how many times one (Val, path) pair
21
+ // may be re-unified within a single fixpoint pass before the evaluator
22
+ // calls it non-convergence (`unify_cycle`). The old false positive here
23
+ // -- a legal model with many sibling conjunct terms at one path, each
24
+ // re-running the TOP self-unify -- is fixed by the per-pass memo below
25
+ // (_tcc/_tpi); test/spec/budget.tsv drives 1200 sibling terms through
26
+ // both engines as the regression guard.
27
+ //
28
+ // Why the depth default is 1000: the whole shared suite peaks at 603
29
+ // (the deliberately extreme 1200-sibling-term fixture; ordinary
30
+ // documents are two orders below), and V8 exhausts its call stack
31
+ // somewhere past depth ~1500 in this evaluator. 1000 sits above every
32
+ // real document and below the host limit, so the budget -- not the
33
+ // host -- decides the verdict.
31
34
  // Charge a DIRECT `Val.unify` recursion to the same depth budget that
32
35
  // `unite` enforces. Function and operator arguments evaluate through
33
36
  // `arg.unify(top(), ...)` rather than through the dispatcher, so without
@@ -37,7 +40,7 @@ const MAXDEPTH = 1000;
37
40
  // `unify_cycle`. Returns the budget nil instead of running when the
38
41
  // budget is spent.
39
42
  const withDepth = (ctx, a, b, run) => {
40
- if (MAXDEPTH <= ctx._depth.n) {
43
+ if (ctx.budget.depth <= ctx._depth.n) {
41
44
  return (0, err_1.makeNilErr)(ctx, 'unify_cycle', a, b);
42
45
  }
43
46
  ctx._depth.n++;
@@ -67,15 +70,39 @@ const unite = (ctx, a, b, whence) => {
67
70
  if (a.done)
68
71
  return a;
69
72
  }
70
- else if (b !== undefined && b !== null) {
73
+ // ... and NOT on an instrumented run (G7 provenance). Both arms
74
+ // below answer with one operand and never reach the recorder at
75
+ // the tail, so an equal pair — two positions of one entity that
76
+ // agree, a clone meeting its source — contributed silently and
77
+ // `why` named one site where the Go port, whose recorder wraps the
78
+ // whole dispatcher, named both. Instrumented runs pay the slow
79
+ // path knowingly; uninstrumented ones pay one undefined check.
80
+ else if (b !== undefined && b !== null && undefined === ctx.prov) {
71
81
  if (a.done && b.done) {
72
- if (a.id === b.id)
82
+ if (a.id === b.id) {
83
+ // The deprecation record survives the fast path (G3).
84
+ if (null == a.deprecation && null != b.deprecation) {
85
+ a.deprecation = b.deprecation;
86
+ }
73
87
  return a;
88
+ }
74
89
  if (a.constructor === b.constructor && a.peg === b.peg
75
90
  && !a.isNil && !b.isNil
76
91
  && !a.isMap && !a.isList
77
92
  && !a.isConjunct && !a.isDisjunct
78
- && !a.isRef && !a.isPref && !a.isFunc && !a.isExpect) {
93
+ && !a.isRef && !a.isPref && !a.isFunc && !a.isExpect
94
+ // NOT two TOPs (G4 phase 1): every top has the same
95
+ // (absent) peg, so this path treated any two as the same
96
+ // value — true of the unit itself, false of a unit
97
+ // CARRYING AN IDENTITY, and `id(x) & id(y)` is two of
98
+ // those. The slow path answers the same thing for two
99
+ // plain tops, and refuses the pair for two named ones.
100
+ && !a.isTop && !b.isTop) {
101
+ // The deprecation record survives the fast path too (G3):
102
+ // `deprecate(5) & 5` short-circuits here.
103
+ if (null == a.deprecation && null != b.deprecation) {
104
+ a.deprecation = b.deprecation;
105
+ }
79
106
  return a;
80
107
  }
81
108
  }
@@ -94,7 +121,7 @@ const unite = (ctx, a, b, whence) => {
94
121
  // NOTE: if this error occurs "unreasonably", attemp to avoid unnecesary unification
95
122
  // See for example PrefVal peg.id equality inspection.
96
123
  const sawCount = ctx.seen[saw] ?? 0;
97
- if (MAXDEPTH <= ctx._depth.n) {
124
+ if (ctx.budget.depth <= ctx._depth.n) {
98
125
  // Structural recursion budget. Without it, deep nesting exhausts the
99
126
  // V8 call stack and the catch-all below reports a RangeError as
100
127
  // `internal` — a verdict that depends on the host's stack size
@@ -103,7 +130,7 @@ const unite = (ctx, a, b, whence) => {
103
130
  // makes it a stated budget error, like the pass budget.
104
131
  out = (0, err_1.makeNilErr)(ctx, 'unify_cycle', a, b);
105
132
  }
106
- else if (MAXCYCLE < sawCount) {
133
+ else if (ctx.budget.revisits < sawCount) {
107
134
  // console.log('SAW', sawCount, saw, a?.id, a?.canon, b?.id, b?.canon, ctx.cc)
108
135
  out = (0, err_1.makeNilErr)(ctx, 'unify_cycle', a, b);
109
136
  }
@@ -155,7 +182,19 @@ const unite = (ctx, a, b, whence) => {
155
182
  || b.isPref
156
183
  || b.isVar
157
184
  || b.isFunc
158
- || b.isExpect) {
185
+ || b.isExpect
186
+ // The refer residual (G4 phase 2) DRIVES, like the other
187
+ // residuals here: its peer is a plain string, which knows
188
+ // nothing about entity addresses, so letting the string drive
189
+ // dropped the address and left the constraint standing.
190
+ || b.isRefer
191
+ // An operator holding a HOLE (G8 phase 3) drives for the same
192
+ // reason: its peer is what FILLS it, and a scalar asked to
193
+ // unify with `_ + 2` sees an operator rather than a hole and
194
+ // refuses it on kind. Narrow to placeheld operators on
195
+ // purpose -- every other operator meets its peer the way it
196
+ // always has, through the conjunct fold that drives it.
197
+ || (b.isOp && (0, PlaceVal_1.hasPlace)(b))) {
159
198
  out = b.unify(a, te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'BW') }) : ctx);
160
199
  unified = true;
161
200
  why = 'bv';
@@ -219,6 +258,44 @@ const unite = (ctx, a, b, whence) => {
219
258
  }
220
259
  }
221
260
  ctx.explain && (0, utility_1.explainClose)(te, out);
261
+ // The provenance record (G7 phase 3), at the one place every meet
262
+ // passes through — the same reason the deprecation rider below lives
263
+ // here. Off by default: an uninstrumented run pays this one property
264
+ // load, and an instrumented one pays site materialisation knowingly.
265
+ if (undefined !== ctx.prov) {
266
+ ctx.prov.record(ctx.path, a, b, out);
267
+ }
268
+ // The IDENTITY survives every meet (G4 phase 1), by the same
269
+ // channel and for the same reason as the deprecation record below.
270
+ // TWO DIFFERENT NAMES on one node is a contradiction, not a merge:
271
+ // one node cannot be two entities, and the error names both sites.
272
+ if (null != out && true === out.isVal && !out.isNil) {
273
+ const ae = null != a ? a.entity : undefined;
274
+ const be = null != b ? b.entity : undefined;
275
+ if (null != ae && null != be && ae !== be) {
276
+ out = (0, err_1.makeNilErr)(ctx, 'id_conflict', a, b);
277
+ }
278
+ else if (!out.isTop) {
279
+ const e = ae ?? be;
280
+ if (null != e) {
281
+ out.entity = e;
282
+ }
283
+ }
284
+ }
285
+ // The deprecation record survives EVERY meet (G3 phase 4): the
286
+ // boolean marks have their own sweeps (ConjunctVal, the bag walks),
287
+ // but a record lost in one meet shape is a use the tooling never
288
+ // warns about, so it rides here, at the one place all meets pass
289
+ // through. First record wins; TOP and nil stay clean (TOP is the
290
+ // unit, and an error needs no deprecation).
291
+ if (null != out && true === out.isVal &&
292
+ !out.isTop && !out.isNil && null == out.deprecation) {
293
+ const dep = (null != a ? a.deprecation : undefined) ??
294
+ (null != b ? b.deprecation : undefined);
295
+ if (null != dep) {
296
+ out.deprecation = dep;
297
+ }
298
+ }
222
299
  return out;
223
300
  };
224
301
  exports.unite = unite;
@@ -248,6 +325,93 @@ function residuePaths(v, max) {
248
325
  visit(v, true);
249
326
  return out;
250
327
  }
328
+ // IDENTITY-MERGE (G4 phase 1): every node in one evaluation carrying
329
+ // the same id is unified with every other. Declaring two nodes the
330
+ // same entity MEANS unifying them, so this is not a lookup table —
331
+ // it is a meet, and a contradiction between two declarations is an
332
+ // ordinary conflict naming both sites.
333
+ //
334
+ // Run once per fixpoint pass, after the pass's own unification: a
335
+ // position picks up the representative, the representative picks up
336
+ // the position, and the two converge across passes exactly as chained
337
+ // references do, inside the same `maxcc` bound.
338
+ //
339
+ // The tree stays a TREE. Every declared position holds the merged
340
+ // value and generation emits it at each path — duplication, as
341
+ // references generate today. Identity adds addressing, not a new
342
+ // shape.
343
+ // The ctx DESCENDS with the walk, so the merge's meet happens at the
344
+ // position's own path: a contribution `$.b.k` picked up from `$.a.k`
345
+ // is recorded against `$.b.k`, which is where a reader asking `why`
346
+ // stands. Merging under the root ctx instead filed every contribution
347
+ // at the top and left the positions themselves with an empty record —
348
+ // and the Go port, whose bag loops derive the base from the value's
349
+ // own path, already answered the useful way.
350
+ function mergeEntities(ctx, root) {
351
+ const reg = ctx.entities;
352
+ // COLLECT, then APPLY — the same walk twice, not two walks. A single
353
+ // pass merges each position into the representative as it meets it,
354
+ // which leaves the positions it already passed holding the pre-merge
355
+ // value: `a: id(x) & {k:1}` kept `{k:1}` while `b: id(x) & {j:2}`
356
+ // became `{j:2,k:1}`, and the two sites disagreed about what the one
357
+ // entity is. The representative is therefore settled over the WHOLE
358
+ // tree before any position is written.
359
+ //
360
+ // `write` is which half is running. One function rather than two
361
+ // because the two halves differ in three lines and agree in the walk
362
+ // — and a walk written twice is a walk that drifts.
363
+ const walk = (node, seen, nctx, write) => {
364
+ if (null == node || true !== node.isVal) {
365
+ return node;
366
+ }
367
+ const name = node.entity;
368
+ if (null != name) {
369
+ if (write) {
370
+ // The SUBSTITUTION happens before the seen-guard, not after.
371
+ // Two positions of one entity hold the SAME object once a pass
372
+ // has merged them, so a guard that ran first would visit the
373
+ // first position, replace it with a newer representative, and
374
+ // then skip the second as already-seen — leaving it on the
375
+ // older value. That is exactly what a `refer(t)` flow
376
+ // produces: it writes a new representative mid-pass, and every
377
+ // position must take it.
378
+ const rep = reg.get(name);
379
+ if (null != rep && rep !== node) {
380
+ node = rep;
381
+ }
382
+ }
383
+ else {
384
+ const rep = reg.get(name);
385
+ reg.set(name, null == rep || rep === node ? node :
386
+ unite(nctx, node, rep, 'entity'));
387
+ }
388
+ }
389
+ // The guard bounds the DESCENT, which is all it was ever for: a
390
+ // unified tree is a graph, and a subtree is worth walking once.
391
+ if (seen.has(node)) {
392
+ return node;
393
+ }
394
+ seen.add(node);
395
+ if ((true === node.isMap || true === node.isList) && null != node.peg) {
396
+ for (const k of Object.keys(node.peg)) {
397
+ const out = walk(node.peg[k], seen, nctx.descend(k), write);
398
+ if (write) {
399
+ node.peg[k] = out;
400
+ }
401
+ }
402
+ }
403
+ return node;
404
+ };
405
+ walk(root, new Set(), ctx, false);
406
+ // NOTHING TO APPLY. The collect half is also the "does this document
407
+ // use identity at all?" answer, so a document that never says `id()`
408
+ // pays for one walk per pass rather than two — and the writing half
409
+ // never runs over a tree it cannot change.
410
+ if (0 === reg.size) {
411
+ return root;
412
+ }
413
+ return walk(root, new Set(), ctx, true);
414
+ }
251
415
  class Unify {
252
416
  constructor(root, lang, ctx, src) {
253
417
  this.lang = lang || new lang_1.Lang();
@@ -285,24 +449,77 @@ class Unify {
285
449
  uctx.err = this.err;
286
450
  uctx.explain = this.explain;
287
451
  uctx.snapmap = new Map();
452
+ uctx.entities = new Map();
288
453
  const explain = null == ctx?.explain ? undefined : ctx?.explain;
289
454
  const te = explain && (0, utility_1.explainOpen)(uctx, explain, 'root', res);
290
455
  // NOTE: if true === res.done already, then this loop never needs to run.
291
- let maxcc = 9; // 99
456
+ let maxcc = uctx.budget.passes;
292
457
  let prevCanon = undefined;
458
+ let lastCanon = undefined;
459
+ let settle = false;
293
460
  for (; this.cc < maxcc && type_1.DONE !== res.dc; this.cc++) {
294
461
  // console.log('CC', this.cc, res.canon)
295
462
  uctx.cc = this.cc;
296
463
  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;
464
+ // THE STAGING RULE (G8 phase 0,
465
+ // docs/capability-review/g8-generation.md), stated once, here,
466
+ // for every value whose answer depends on WHERE IT IS. Such a
467
+ // value residuates while the model is still moving and fires on
468
+ // the first pass whose input is IDENTICAL to the previous
469
+ // pass's input: nothing moved, so nothing will move it again,
470
+ // and the position it reports is the position it ends at.
471
+ //
472
+ // Why the whole model and not the value's own path. A spread, a
473
+ // reference or a `move` can place a value under a path it has
474
+ // already been driven at and THEN change what encloses it --
475
+ // `move` hides its source one pass AFTER it copies it, and a
476
+ // `key()` that answered on the strength of its path alone would
477
+ // answer for the ghost. Stability of the model is the only
478
+ // signal that says every such rearrangement is finished.
479
+ uctx.settle = settle;
480
+ // Snapshot BEFORE the final pass (the loop condition has
481
+ // already established the tree is not done), so exhaustion can
482
+ // tell "still refining" from "stable residue" below. Taken at
483
+ // the final pass's ENTRY rather than the previous pass's exit
484
+ // — the same value when the budget allows two passes, and the
485
+ // only possible value when the trust profile sets passes to 1,
486
+ // where the old placement (cc === maxcc - 2, never true) made
487
+ // exhaustion silent, exactly the truncation docs/trust.md
488
+ // forbids. `lastCanon` IS that entry canon whenever a previous
489
+ // pass rendered one, so this costs nothing extra.
490
+ if (this.cc === maxcc - 1) {
491
+ prevCanon = lastCanon ?? res.canon;
300
492
  }
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;
493
+ res = unite(te ? uctx.clone({ explain: (0, utility_1.ec)(te, 'run') }) : uctx, res, (0, top_1.top)(), 'unify');
494
+ // MULTI-ERROR COLLECTION (G2 phase 6): the pass loop CONTINUES
495
+ // past an erroring pass, so independent failures a later pass
496
+ // would reach are collected in the same run — the break that
497
+ // stood here made every multi-error report truncated at the
498
+ // first erroring pass.
499
+ //
500
+ // What controls the cascade the design feared: a nil is
501
+ // ABSORBING (unite's isNil arms return the existing nil, no new
502
+ // error), so one failure stays ONE NilVal however many later
503
+ // meets touch it — a reference resolving to a failed target
504
+ // takes the same nil identity, which is exactly what lets the
505
+ // report layer dedup by identity. The probes that established
506
+ // this (fan-in refs, spread templates, disjunct trials, nested
507
+ // conjuncts) are pinned as vet.tsv's multi-* rows in both
508
+ // ports.
509
+ // The identity merge, after the pass's own unification: the
510
+ // positions this pass produced are what there is to merge.
511
+ res = mergeEntities(uctx, res);
512
+ // The staging signal for the NEXT pass, rendered here rather
513
+ // than at the top of the loop so a model that is FINISHED is
514
+ // never rendered at all: canon walks references, and the only
515
+ // trees that close a cycle are hand-built ones (the pass loop
516
+ // is what a test drives them through), which converge in one
517
+ // pass and must not be walked to decide a question that no
518
+ // longer arises.
519
+ if (type_1.DONE !== res.dc) {
520
+ const nowCanon = res.canon;
521
+ settle = undefined !== lastCanon && lastCanon === nowCanon;
522
+ lastCanon = nowCanon;
306
523
  }
307
524
  uctx = uctx.clone({ root: res });
308
525
  }
@@ -328,6 +545,6 @@ class Unify {
328
545
  }
329
546
  this.res = res;
330
547
  }
331
- } /* node:coverage ignore next 9 */
548
+ } /* node:coverage ignore next 10 */
332
549
  exports.Unify = Unify;
333
550
  //# 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,13 @@
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 constantIdFunc(v: any, seen?: Set<any>): any;
10
+ declare function canonRiders(v: Val): string;
3
11
  declare function formatPath(path: Val | string[], absolute?: boolean): string;
4
12
  type WalkApply = (key: string | number | undefined, val: Val, parent: Val | undefined, path: (string | number)[]) => Val;
5
13
  /**
@@ -12,4 +20,4 @@ declare function ec(t: any[] | undefined | null, why: string): (string | null)[]
12
20
  declare function explainClose(t: any[] | undefined | null, out?: Val): void;
13
21
  declare function formatExplain(t: any[], d?: number): string;
14
22
  declare function items(o: any): any[][];
15
- export { items, propagateMarks, formatPath, walk, WalkApply, explainOpen, ec, explainClose, formatExplain, };
23
+ export { items, propagateMarks, constantIdFunc, canonRiders, collectDeprecations, walkBagVals, deprecationMessage, formatPath, walk, WalkApply, explainOpen, ec, explainClose, formatExplain, };
package/dist/utility.js CHANGED
@@ -3,6 +3,11 @@
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.items = items;
5
5
  exports.propagateMarks = propagateMarks;
6
+ exports.constantIdFunc = constantIdFunc;
7
+ exports.canonRiders = canonRiders;
8
+ exports.collectDeprecations = collectDeprecations;
9
+ exports.walkBagVals = walkBagVals;
10
+ exports.deprecationMessage = deprecationMessage;
6
11
  exports.formatPath = formatPath;
7
12
  exports.walk = walk;
8
13
  exports.explainOpen = explainOpen;
@@ -25,6 +30,122 @@ function propagateMarks(source, target) {
25
30
  target.mark[name] = target.mark[name] || source.mark[name];
26
31
  }
27
32
  }
33
+ // Collect every value in the tree carrying the deprecation record (G3
34
+ // phase 4), with its path — the one walk behind vet's `deprecated`
35
+ // warnings and the LSP's Deprecated tags. The record travels on meets
36
+ // (the unite rider) and clones, so this sees the declaration and every
37
+ // use resolving through it. The non-Val guard is for a bag's raw peg
38
+ // entries, which degenerate parses can leave behind.
39
+ function collectDeprecations(root) {
40
+ const out = [];
41
+ walkBagVals(root, (v, path) => {
42
+ if (null != v.deprecation) {
43
+ out.push({ val: v, path });
44
+ }
45
+ });
46
+ return out;
47
+ }
48
+ // Visit every Val reachable through bag children, with its path — the
49
+ // walk under collectDeprecations and vet's default-validity lint. The
50
+ // non-Val guard is for a bag's raw peg entries, which degenerate
51
+ // parses can leave behind (pinned by the collect-deprecations direct
52
+ // test, ts/test/coverage3.test.ts).
53
+ function walkBagVals(root, fn) {
54
+ const walk = (v, path) => {
55
+ if (null == v || true !== v.isVal) {
56
+ return;
57
+ }
58
+ fn(v, path);
59
+ if ((true === v.isMap || true === v.isList) && null != v.peg) {
60
+ for (const k of Object.keys(v.peg)) {
61
+ walk(v.peg[k], [...path, k]);
62
+ }
63
+ }
64
+ };
65
+ walk(root, []);
66
+ }
67
+ // The one-line prose for a deprecation record, shared by vet's warning
68
+ // findings and the LSP's tagged diagnostics.
69
+ function deprecationMessage(d) {
70
+ const msg = 'string' === typeof d.msg ? d.msg : '';
71
+ return 'deprecated' + ('' === msg ? '' : ': ' + msg) +
72
+ ('string' === typeof d.use ? ' (use ' + d.use + ')' : '') +
73
+ ('string' === typeof d.since ? ' (since ' + d.since + ')' : '');
74
+ }
75
+ // SPREAD TEMPLATES MAY NOT STAMP ONE ID ONTO EVERY CHILD (G4 phase
76
+ // 1, clearing rule 3). `&: id(svc/thing) & {…}` says that every child
77
+ // of the bag IS the entity `svc/thing`, and the identity merge then
78
+ // unifies all of them into one another: an author who wrote a
79
+ // per-child template would get a single merged blob, and any two
80
+ // children that disagreed about a field would fail at a site that
81
+ // explains nothing.
82
+ //
83
+ // A PATH-DEPENDENT argument is allowed, and is how the author says
84
+ // what they meant: `&: id(key()) & {…}` names each child distinctly,
85
+ // resolved per destination by the existing spreadClone machinery.
86
+ // Duck-typed on the `isIdFunc` flag rather than imported: this file
87
+ // is below the Val classes, and the identity function sits above
88
+ // them.
89
+ function constantIdFunc(v, seen) {
90
+ if (null == v || true !== v.isVal) {
91
+ return undefined;
92
+ }
93
+ const s = seen ?? new Set();
94
+ if (s.has(v)) {
95
+ return undefined;
96
+ }
97
+ s.add(v);
98
+ if (true === v.isIdFunc && true !== v.isPathDependent) {
99
+ return v;
100
+ }
101
+ const peg = v.peg;
102
+ if (null != peg && 'object' === typeof peg) {
103
+ for (const k of Object.keys(peg)) {
104
+ const found = constantIdFunc(peg[k], s);
105
+ if (undefined !== found) {
106
+ return found;
107
+ }
108
+ }
109
+ }
110
+ return constantIdFunc(v.spread?.cj, s);
111
+ }
112
+ // The IDENTITY wrapper (G4 phase 1): `id("svc/auth")&{…}`, written
113
+ // as the conjunct an author writes, so canon reparses to the same
114
+ // entity. This deliberately differs from the type/hide MARKS, which
115
+ // canon drops (test/spec/marks.tsv, row `type-canon`): identity is
116
+ // semantic content, and G6's canon-hash must see it — two documents
117
+ // that disagree about which entity a node IS do not mean the same
118
+ // thing and must not hash alike.
119
+ //
120
+ // The name is JSON-quoted whatever it spells: `-` is not a bare-text
121
+ // character (test/spec/op-chars.tsv pins `a:6-2` as a parse error), so
122
+ // an unquoted `id(team-pay)` would not reparse.
123
+ function canonEntity(v) {
124
+ const c = v.canon;
125
+ const e = v.entity;
126
+ return null == e ? c : 'id(' + JSON.stringify(e) + ')&' + c;
127
+ }
128
+ // The canonical form of a value, wrapped in the RIDERS it carries —
129
+ // the identity (G4 phase 1) and the deprecation record (G3 phase 4) —
130
+ // reparseably, so `id(name) & x` and `deprecate(x, m)` survive canon.
131
+ // Bags render their children through this (MapVal/ListVal canon),
132
+ // which is where a marked FIELD — the realistic case — lives.
133
+ //
134
+ // The riders render HERE and not in the value's own `canon` for the
135
+ // same reason the guard at the MapVal call site tests the isVal flag:
136
+ // a bag's canon recursion visits each child once, and a child that
137
+ // wrapped itself as well would render its subtree twice per level —
138
+ // 2^depth on a nested document.
139
+ function canonRiders(v) {
140
+ const c = canonEntity(v);
141
+ const d = v.deprecation;
142
+ if (null == d) {
143
+ return c;
144
+ }
145
+ const keys = Object.keys(d).sort();
146
+ const rec = keys.map((k) => JSON.stringify(k) + ':' + JSON.stringify(d[k])).join(',');
147
+ return 'deprecate(' + c + ('' === rec ? '' : ',{' + rec + '}') + ')';
148
+ }
28
149
  function formatPath(path, absolute) {
29
150
  let parts;
30
151
  if (Array.isArray(path)) {
@@ -142,5 +263,5 @@ function items(o) {
142
263
  else {
143
264
  return [];
144
265
  }
145
- } /* node:coverage ignore next 15 */
266
+ } /* node:coverage ignore next 18 */
146
267
  //# 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":";AAAA,yDAAyD;;QAuUvD,KAAK;QACL,cAAc;QACd,cAAc;QACd,WAAW;QACX,mBAAmB;QACnB,WAAW;QACX,kBAAkB;QAClB,UAAU;QACV,IAAI;QAEJ,WAAW;QACX,EAAE;QACF,YAAY;QACZ,aAAa;AA7Uf,sEAAsE;AACtE,oEAAoE;AACpE,qEAAqE;AACrE,yEAAyE;AACzE,mBAAmB;AACnB,MAAM,qBAAqB,GAAG,IAAI,CAAA;AAGlC,gEAAgE;AAChE,SAAS,cAAc,CAAC,MAAW,EAAE,MAAW;IAC9C,oBAAoB;IACpB,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjC,OAAM;IACR,CAAC;IACD,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAY,CAAC,IAAI,CAAC,GAAI,MAAM,CAAC,IAAY,CAAC,IAAI,CAAC,IAAK,MAAM,CAAC,IAAY,CAAC,IAAI,CAAC,CAAA;IACvF,CAAC;AACH,CAAC;AAGD,sEAAsE;AACtE,mEAAmE;AACnE,sEAAsE;AACtE,uEAAuE;AACvE,qEAAqE;AACrE,qDAAqD;AACrD,SAAS,mBAAmB,CAC1B,IAAS;IACT,MAAM,GAAG,GAAwC,EAAE,CAAA;IACnD,WAAW,CAAC,IAAI,EAAE,CAAC,CAAM,EAAE,IAAI,EAAE,EAAE;QACjC,IAAI,IAAI,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YAC1B,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;QAC5B,CAAC;IACH,CAAC,CAAC,CAAA;IACF,OAAO,GAAG,CAAA;AACZ,CAAC;AAGD,sEAAsE;AACtE,sEAAsE;AACtE,iEAAiE;AACjE,qEAAqE;AACrE,oCAAoC;AACpC,SAAS,WAAW,CAClB,IAAS,EAAE,EAAoC;IAC/C,MAAM,IAAI,GAAG,CAAC,CAAM,EAAE,IAAc,EAAQ,EAAE;QAC5C,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;YAClC,OAAM;QACR,CAAC;QACD,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;QACX,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;YAC7D,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;YAC9B,CAAC;QACH,CAAC;IACH,CAAC,CAAA;IACD,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;AAChB,CAAC;AAGD,uEAAuE;AACvE,6CAA6C;AAC7C,SAAS,kBAAkB,CAAC,CAAyB;IACnD,MAAM,GAAG,GAAG,QAAQ,KAAK,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;IAClD,OAAO,YAAY,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC;QAClD,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;AACnE,CAAC;AAGD,mEAAmE;AACnE,sEAAsE;AACtE,oEAAoE;AACpE,8DAA8D;AAC9D,iEAAiE;AACjE,kEAAkE;AAClE,oBAAoB;AACpB,EAAE;AACF,mEAAmE;AACnE,qEAAqE;AACrE,kEAAkE;AAClE,oEAAoE;AACpE,iEAAiE;AACjE,QAAQ;AACR,SAAS,cAAc,CAAC,CAAM,EAAE,IAAe;IAC7C,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;QAClC,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,CAAC,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,CAAA;IAC3B,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACb,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAER,IAAI,IAAI,KAAK,CAAC,CAAC,QAAQ,IAAI,IAAI,KAAK,CAAC,CAAC,eAAe,EAAE,CAAC;QACtD,OAAO,CAAC,CAAA;IACV,CAAC;IAED,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAA;IACjB,IAAI,IAAI,IAAI,GAAG,IAAI,QAAQ,KAAK,OAAO,GAAG,EAAE,CAAC;QAC3C,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YACvC,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;gBACxB,OAAO,KAAK,CAAA;YACd,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,cAAc,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;AACxC,CAAC;AAGD,mEAAmE;AACnE,kEAAkE;AAClE,oEAAoE;AACpE,mEAAmE;AACnE,oEAAoE;AACpE,kEAAkE;AAClE,iCAAiC;AACjC,EAAE;AACF,qEAAqE;AACrE,uEAAuE;AACvE,gDAAgD;AAChD,SAAS,WAAW,CAAC,CAAM;IACzB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAA;IACjB,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAA;IAClB,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAA;AAC7D,CAAC;AAGD,oEAAoE;AACpE,sEAAsE;AACtE,sEAAsE;AACtE,kEAAkE;AAClE,8DAA8D;AAC9D,EAAE;AACF,oEAAoE;AACpE,sEAAsE;AACtE,mEAAmE;AACnE,oEAAoE;AACpE,gCAAgC;AAChC,SAAS,WAAW,CAAC,CAAM;IACzB,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;IACxB,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,CAAA;IACvB,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;QACd,OAAO,CAAC,CAAA;IACV,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAClC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACzB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC3D,OAAO,YAAY,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAA;AACtE,CAAC;AAGD,SAAS,UAAU,CAAC,IAAoB,EAAE,QAAkB;IAC1D,IAAI,KAAe,CAAA;IACnB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,KAAK,GAAG,IAAI,CAAA;IACd,CAAC;SACI,CAAC;QACJ,KAAK,GAAG,IAAI,CAAC,IAAI,CAAA;IACnB,CAAC;IAED,IAAI,OAAO,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAEpF,OAAO,OAAO,CAAA;AAChB,CAAC;AAUD;;;GAGG;AACH,SAAS,IAAI;AACX,4CAA4C;AAC5C,GAAQ;AAER,iCAAiC;AACjC,MAAkB;AAElB,gCAAgC;AAChC,KAAiB;AAEjB,wEAAwE;AACxE,kBAAkB;AAClB,QAAwB;AAExB,gDAAgD;AAChD,GAAqB,EACrB,MAAY,EACZ,IAA0B;IAE1B,IAAI,GAAG,GAAG,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC,CAAA;IAErE,QAAQ,GAAG,IAAI,IAAI,QAAQ,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAA;IAC/E,IAAI,IAAI,IAAI,QAAQ,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;QACvC,OAAO,GAAG,CAAA;IACZ,CAAC;IACD,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,QAAQ,IAAI,CAAC,GAAG,QAAQ,IAAI,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChF,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,MAAM,KAAK,GAAQ,GAAG,CAAC,GAAG,CAAA;IAE1B,qDAAqD;IACrD,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAClC,gEAAgE;QAChE,mEAAmE;QACnE,IAAI,QAAQ,KAAK,OAAO,KAAK,EAAE,CAAC;YAC9B,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;gBACvB,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;oBACrC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAChB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;gBAC7E,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,GAAG,GAAG,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC,CAAA;IAE/D,OAAO,GAAG,CAAA;AACZ,CAAC;AAGD,MAAM,MAAM,GAAG,CAAC,CAAA;AAChB,MAAM,KAAK,GAAG,CAAC,CAAA;AACf,MAAM,MAAM,GAAG,CAAC,CAAA;AAChB,MAAM,MAAM,GAAG,CAAC,CAAA;AAChB,MAAM,MAAM,GAAG,CAAC,CAAA;AAChB,MAAM,MAAM,GAAG,CAAC,CAAA;AAChB,MAAM,UAAU,GAAG,CAAC,CAAA;AAGpB,SAAS,WAAW,CAClB,GAAQ,EACR,CAAmC,EACnC,IAAY,EACZ,EAAQ,EACR,EAAQ;IAER,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE7B,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IAC/C,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;IACzB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAA;IACpD,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;IAC3E,IAAI,EAAE,EAAE,CAAC;QACP,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,KAAK,CAAA;IAC3D,CAAC;IACD,IAAI,EAAE,EAAE,CAAC;QACP,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,KAAK,CAAA;IAC3D,CAAC;IAED,OAAO,CAAC,CAAA;AACV,CAAC;AAGD,SAAS,EAAE,CAAC,CAA2B,EAAE,GAAW;IAClD,IAAI,IAAI,IAAI,CAAC;QAAE,OAAO;IAEtB,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IACjD,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,CAAA;IACnC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACzB,OAAO,KAAK,CAAA;AACd,CAAC;AAGD,SAAS,YAAY,CAAC,CAA2B,EAAE,GAAS;IAC1D,IAAI,IAAI,IAAI,CAAC;QAAE,OAAO;IAEtB,IAAI,GAAG,EAAE,CAAC;QACR,CAAC,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,KAAK,CAAA;IACtE,CAAC;AACH,CAAC;AAGD,SAAS,aAAa,CAAC,CAAQ,EAAE,CAAU;IACzC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACrB,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IAE/B,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG;YACR,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;SAC5C,CAAA;QAED,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QAChC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,KAAK,IAAI,EAAE,IAAI,QAAQ,EAAE,CAAC;gBACxB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YAClC,CAAC;QACH,CAAC;QAED,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACrB,CAAC;SACI,CAAC;QACJ,OAAO,MAAM,GAAG,CAAC,CAAA;IACnB,CAAC;AACH,CAAC;AAGD,SAAS,KAAK,CAAC,CAAM;IACnB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/C,CAAC;SACI,IAAI,IAAI,IAAI,CAAC,IAAI,QAAQ,KAAK,OAAO,CAAC,EAAE,CAAC;QAC5C,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAC1B,CAAC;SACI,CAAC;QACJ,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC,CAAC,kCAAkC"}