aontu 0.62.0 → 0.63.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 (356) hide show
  1. package/README.md +1 -1
  2. package/dist/agentsmd.js +0 -27
  3. package/dist/agentsmd.js.map +1 -1
  4. package/dist/alias.js.map +1 -1
  5. package/dist/allow.js +0 -92
  6. package/dist/allow.js.map +1 -1
  7. package/dist/aontu.d.ts +1 -1
  8. package/dist/aontu.js +1 -79
  9. package/dist/aontu.js.map +1 -1
  10. package/dist/aontumodel.d.ts +4 -0
  11. package/dist/aontumodel.js +33 -0
  12. package/dist/aontumodel.js.map +1 -0
  13. package/dist/cli.js +101 -620
  14. package/dist/cli.js.map +1 -1
  15. package/dist/ctx.js +0 -48
  16. package/dist/ctx.js.map +1 -1
  17. package/dist/diff.js +0 -32
  18. package/dist/diff.js.map +1 -1
  19. package/dist/err.js +0 -40
  20. package/dist/err.js.map +1 -1
  21. package/dist/escape.js +0 -45
  22. package/dist/escape.js.map +1 -1
  23. package/dist/exactjson.d.ts +0 -35
  24. package/dist/exactjson.js +0 -131
  25. package/dist/exactjson.js.map +1 -1
  26. package/dist/format.js +13 -203
  27. package/dist/format.js.map +1 -1
  28. package/dist/grammar.d.ts +9 -0
  29. package/dist/grammar.js +54 -0
  30. package/dist/grammar.js.map +1 -0
  31. package/dist/graph.js +0 -26
  32. package/dist/graph.js.map +1 -1
  33. package/dist/hcanon.js +0 -82
  34. package/dist/hcanon.js.map +1 -1
  35. package/dist/helpdoc.js +1 -1
  36. package/dist/helpdoc.js.map +1 -1
  37. package/dist/hints.d.ts +0 -6
  38. package/dist/hints.js +54 -55
  39. package/dist/hints.js.map +1 -1
  40. package/dist/jsonschema.js +0 -114
  41. package/dist/jsonschema.js.map +1 -1
  42. package/dist/keyorder.d.ts +0 -7
  43. package/dist/keyorder.js +0 -41
  44. package/dist/keyorder.js.map +1 -1
  45. package/dist/lang.js +17 -915
  46. package/dist/lang.js.map +1 -1
  47. package/dist/lower.js +11 -61
  48. package/dist/lower.js.map +1 -1
  49. package/dist/lsp-server.js +0 -16
  50. package/dist/lsp-server.js.map +1 -1
  51. package/dist/lsp.d.ts +1 -1
  52. package/dist/lsp.js +12 -159
  53. package/dist/lsp.js.map +1 -1
  54. package/dist/mcp-server.js +0 -26
  55. package/dist/mcp-server.js.map +1 -1
  56. package/dist/mcp.js +0 -113
  57. package/dist/mcp.js.map +1 -1
  58. package/dist/mod-tool.js +0 -130
  59. package/dist/mod-tool.js.map +1 -1
  60. package/dist/mod.js +0 -162
  61. package/dist/mod.js.map +1 -1
  62. package/dist/patch.js +0 -217
  63. package/dist/patch.js.map +1 -1
  64. package/dist/provenance.js +0 -140
  65. package/dist/provenance.js.map +1 -1
  66. package/dist/query.js +0 -75
  67. package/dist/query.js.map +1 -1
  68. package/dist/reach.js +0 -43
  69. package/dist/reach.js.map +1 -1
  70. package/dist/relation.js +0 -61
  71. package/dist/relation.js.map +1 -1
  72. package/dist/render.js +20 -135
  73. package/dist/render.js.map +1 -1
  74. package/dist/report-sarif.d.ts +0 -11
  75. package/dist/report-sarif.js +0 -28
  76. package/dist/report-sarif.js.map +1 -1
  77. package/dist/sig.js +0 -35
  78. package/dist/sig.js.map +1 -1
  79. package/dist/sigdecl.js +1 -1
  80. package/dist/sigdecl.js.map +1 -1
  81. package/dist/siggate.js +0 -4
  82. package/dist/siggate.js.map +1 -1
  83. package/dist/site.js +3 -29
  84. package/dist/site.js.map +1 -1
  85. package/dist/subsume.d.ts +0 -10
  86. package/dist/subsume.js +0 -137
  87. package/dist/subsume.js.map +1 -1
  88. package/dist/template.d.ts +2 -1
  89. package/dist/template.js +58 -138
  90. package/dist/template.js.map +1 -1
  91. package/dist/trim.js +0 -41
  92. package/dist/trim.js.map +1 -1
  93. package/dist/tsconfig.tsbuildinfo +1 -1
  94. package/dist/type.js.map +1 -1
  95. package/dist/unify.js +12 -242
  96. package/dist/unify.js.map +1 -1
  97. package/dist/utility.js +0 -22
  98. package/dist/utility.js.map +1 -1
  99. package/dist/val/AbnfFuncVal.d.ts +18 -0
  100. package/dist/val/AbnfFuncVal.js +132 -0
  101. package/dist/val/AbnfFuncVal.js.map +1 -0
  102. package/dist/val/AbsentVal.d.ts +11 -0
  103. package/dist/val/AbsentVal.js +30 -0
  104. package/dist/val/AbsentVal.js.map +1 -0
  105. package/dist/val/AggFuncVal.d.ts +10 -1
  106. package/dist/val/AggFuncVal.js +104 -116
  107. package/dist/val/AggFuncVal.js.map +1 -1
  108. package/dist/val/ArithFuncVal.js +0 -12
  109. package/dist/val/ArithFuncVal.js.map +1 -1
  110. package/dist/val/BagVal.js +1 -78
  111. package/dist/val/BagVal.js.map +1 -1
  112. package/dist/val/BigDecimalVal.js +0 -16
  113. package/dist/val/BigDecimalVal.js.map +1 -1
  114. package/dist/val/BigIntegerVal.js +0 -16
  115. package/dist/val/BigIntegerVal.js.map +1 -1
  116. package/dist/val/CloseFuncVal.js +0 -9
  117. package/dist/val/CloseFuncVal.js.map +1 -1
  118. package/dist/val/CmpFuncVal.js +2 -59
  119. package/dist/val/CmpFuncVal.js.map +1 -1
  120. package/dist/val/ConjunctVal.js +0 -29
  121. package/dist/val/ConjunctVal.js.map +1 -1
  122. package/dist/val/ConstraintVal.js +0 -500
  123. package/dist/val/ConstraintVal.js.map +1 -1
  124. package/dist/val/ContainerKindVal.js +0 -2
  125. package/dist/val/ContainerKindVal.js.map +1 -1
  126. package/dist/val/CopyFuncVal.js +0 -3
  127. package/dist/val/CopyFuncVal.js.map +1 -1
  128. package/dist/val/Decimal.js +0 -179
  129. package/dist/val/Decimal.js.map +1 -1
  130. package/dist/val/DeprecateFuncVal.js.map +1 -1
  131. package/dist/val/DisjunctVal.js +0 -152
  132. package/dist/val/DisjunctVal.js.map +1 -1
  133. package/dist/val/EachFuncVal.js +0 -3
  134. package/dist/val/EachFuncVal.js.map +1 -1
  135. package/dist/val/EmitFuncVal.d.ts +1 -1
  136. package/dist/val/EmitFuncVal.js +6 -119
  137. package/dist/val/EmitFuncVal.js.map +1 -1
  138. package/dist/val/ExpectVal.js +0 -62
  139. package/dist/val/ExpectVal.js.map +1 -1
  140. package/dist/val/FilterFuncVal.js +0 -25
  141. package/dist/val/FilterFuncVal.js.map +1 -1
  142. package/dist/val/FuncBaseVal.d.ts +1 -0
  143. package/dist/val/FuncBaseVal.js +7 -127
  144. package/dist/val/FuncBaseVal.js.map +1 -1
  145. package/dist/val/GraphAtomVal.js +0 -15
  146. package/dist/val/GraphAtomVal.js.map +1 -1
  147. package/dist/val/HideFuncVal.js +0 -13
  148. package/dist/val/HideFuncVal.js.map +1 -1
  149. package/dist/val/IntegerVal.js +0 -61
  150. package/dist/val/IntegerVal.js.map +1 -1
  151. package/dist/val/JunctionVal.js +0 -20
  152. package/dist/val/JunctionVal.js.map +1 -1
  153. package/dist/val/KeyFuncVal.js +0 -46
  154. package/dist/val/KeyFuncVal.js.map +1 -1
  155. package/dist/val/ListVal.js +0 -57
  156. package/dist/val/ListVal.js.map +1 -1
  157. package/dist/val/LowerFuncVal.js +0 -11
  158. package/dist/val/LowerFuncVal.js.map +1 -1
  159. package/dist/val/MapVal.js +0 -151
  160. package/dist/val/MapVal.js.map +1 -1
  161. package/dist/val/MatchFuncVal.js +0 -27
  162. package/dist/val/MatchFuncVal.js.map +1 -1
  163. package/dist/val/{FormFuncVal.d.ts → MaybeFuncVal.d.ts} +5 -5
  164. package/dist/val/MaybeFuncVal.js +50 -0
  165. package/dist/val/MaybeFuncVal.js.map +1 -0
  166. package/dist/val/MoveFuncVal.js +0 -18
  167. package/dist/val/MoveFuncVal.js.map +1 -1
  168. package/dist/val/NilVal.js +0 -60
  169. package/dist/val/NilVal.js.map +1 -1
  170. package/dist/val/NomFuncVal.js +8 -42
  171. package/dist/val/NomFuncVal.js.map +1 -1
  172. package/dist/val/NumberVal.js +0 -15
  173. package/dist/val/NumberVal.js.map +1 -1
  174. package/dist/val/OpBaseVal.d.ts +1 -0
  175. package/dist/val/OpBaseVal.js +3 -15
  176. package/dist/val/OpBaseVal.js.map +1 -1
  177. package/dist/val/PackFuncVal.js +0 -34
  178. package/dist/val/PackFuncVal.js.map +1 -1
  179. package/dist/val/PathFuncVal.js +0 -6
  180. package/dist/val/PathFuncVal.js.map +1 -1
  181. package/dist/val/PathVal.js +0 -41
  182. package/dist/val/PathVal.js.map +1 -1
  183. package/dist/val/PlaceVal.js +0 -25
  184. package/dist/val/PlaceVal.js.map +1 -1
  185. package/dist/val/PlusOpVal.d.ts +1 -7
  186. package/dist/val/PlusOpVal.js +13 -74
  187. package/dist/val/PlusOpVal.js.map +1 -1
  188. package/dist/val/PrefFuncVal.js +0 -1
  189. package/dist/val/PrefFuncVal.js.map +1 -1
  190. package/dist/val/PrefVal.js +0 -167
  191. package/dist/val/PrefVal.js.map +1 -1
  192. package/dist/val/RecurseVal.js +0 -55
  193. package/dist/val/RecurseVal.js.map +1 -1
  194. package/dist/val/RefVal.js +0 -282
  195. package/dist/val/RefVal.js.map +1 -1
  196. package/dist/val/ReferFuncVal.js +0 -232
  197. package/dist/val/ReferFuncVal.js.map +1 -1
  198. package/dist/val/ScalarKindVal.js +0 -49
  199. package/dist/val/ScalarKindVal.js.map +1 -1
  200. package/dist/val/ScalarVal.js +0 -11
  201. package/dist/val/ScalarVal.js.map +1 -1
  202. package/dist/val/StrFuncVal.js +0 -18
  203. package/dist/val/StrFuncVal.js.map +1 -1
  204. package/dist/val/SuperFuncVal.js +0 -32
  205. package/dist/val/SuperFuncVal.js.map +1 -1
  206. package/dist/val/TopVal.js +0 -1
  207. package/dist/val/TopVal.js.map +1 -1
  208. package/dist/val/TranslateFuncVal.js +1 -3
  209. package/dist/val/TranslateFuncVal.js.map +1 -1
  210. package/dist/val/UpperFuncVal.js +0 -11
  211. package/dist/val/UpperFuncVal.js.map +1 -1
  212. package/dist/val/Val.d.ts +1 -0
  213. package/dist/val/Val.js +2 -133
  214. package/dist/val/Val.js.map +1 -1
  215. package/dist/val/VarVal.js +0 -12
  216. package/dist/val/VarVal.js.map +1 -1
  217. package/dist/val/arith.js +0 -37
  218. package/dist/val/arith.js.map +1 -1
  219. package/dist/val/caserange.js +0 -61
  220. package/dist/val/caserange.js.map +1 -1
  221. package/dist/val/members.js +0 -6
  222. package/dist/val/members.js.map +1 -1
  223. package/dist/val/numcmp.js +0 -11
  224. package/dist/val/numcmp.js.map +1 -1
  225. package/dist/val/numkind.js +0 -145
  226. package/dist/val/numkind.js.map +1 -1
  227. package/dist/val/valutil.js +0 -16
  228. package/dist/val/valutil.js.map +1 -1
  229. package/dist/vet.js +0 -461
  230. package/dist/vet.js.map +1 -1
  231. package/dist/view.js +0 -414
  232. package/dist/view.js.map +1 -1
  233. package/dist/walk.js +0 -41
  234. package/dist/walk.js.map +1 -1
  235. package/grammar/aontu.abnf +8 -6
  236. package/grammar/aontu.gbnf +4 -4
  237. package/grammar/aontu.lark +4 -4
  238. package/grammar/aontu.tmLanguage.json +1 -1
  239. package/package.json +4 -2
  240. package/src/agentsmd.ts +0 -35
  241. package/src/alias.ts +0 -39
  242. package/src/allow.ts +1 -96
  243. package/src/aontu.ts +3 -110
  244. package/src/aontumodel.ts +32 -0
  245. package/src/cli.ts +113 -682
  246. package/src/ctx.ts +0 -103
  247. package/src/diff.ts +0 -40
  248. package/src/err.ts +0 -40
  249. package/src/escape.ts +0 -46
  250. package/src/exactjson.ts +0 -131
  251. package/src/format.ts +14 -257
  252. package/src/grammar.ts +72 -0
  253. package/src/graph.ts +0 -61
  254. package/src/hcanon.ts +0 -82
  255. package/src/helpdoc.ts +1 -1
  256. package/src/hints.ts +66 -57
  257. package/src/jsonschema.ts +0 -123
  258. package/src/keyorder.ts +0 -42
  259. package/src/lang.ts +19 -931
  260. package/src/lower.ts +12 -62
  261. package/src/lsp-server.ts +0 -16
  262. package/src/lsp.ts +12 -180
  263. package/src/mcp-server.ts +0 -31
  264. package/src/mcp.ts +0 -130
  265. package/src/mod-tool.ts +0 -158
  266. package/src/mod.ts +0 -178
  267. package/src/patch.ts +0 -232
  268. package/src/provenance.ts +0 -183
  269. package/src/query.ts +0 -84
  270. package/src/reach.ts +0 -53
  271. package/src/relation.ts +0 -84
  272. package/src/render.ts +20 -172
  273. package/src/report-sarif.ts +0 -48
  274. package/src/sig.ts +0 -35
  275. package/src/sigdecl.ts +1 -1
  276. package/src/siggate.ts +0 -30
  277. package/src/site.ts +3 -29
  278. package/src/subsume.ts +1 -161
  279. package/src/template.ts +69 -140
  280. package/src/trim.ts +0 -53
  281. package/src/type.ts +2 -45
  282. package/src/unify.ts +13 -251
  283. package/src/utility.ts +0 -31
  284. package/src/val/AbnfFuncVal.ts +181 -0
  285. package/src/val/AbsentVal.ts +54 -0
  286. package/src/val/AggFuncVal.ts +152 -188
  287. package/src/val/ArithFuncVal.ts +0 -20
  288. package/src/val/BagVal.ts +1 -78
  289. package/src/val/BigDecimalVal.ts +0 -16
  290. package/src/val/BigIntegerVal.ts +0 -16
  291. package/src/val/CloseFuncVal.ts +0 -9
  292. package/src/val/CmpFuncVal.ts +4 -166
  293. package/src/val/ConjunctVal.ts +0 -33
  294. package/src/val/ConstraintVal.ts +2 -537
  295. package/src/val/ContainerKindVal.ts +0 -18
  296. package/src/val/CopyFuncVal.ts +0 -5
  297. package/src/val/Decimal.ts +1 -185
  298. package/src/val/DeprecateFuncVal.ts +0 -10
  299. package/src/val/DisjunctVal.ts +0 -157
  300. package/src/val/EachFuncVal.ts +0 -40
  301. package/src/val/EmitFuncVal.ts +8 -208
  302. package/src/val/ExpectVal.ts +0 -62
  303. package/src/val/FilterFuncVal.ts +0 -55
  304. package/src/val/FuncBaseVal.ts +9 -130
  305. package/src/val/GraphAtomVal.ts +0 -42
  306. package/src/val/HideFuncVal.ts +0 -15
  307. package/src/val/IntegerVal.ts +0 -61
  308. package/src/val/JunctionVal.ts +0 -20
  309. package/src/val/KeyFuncVal.ts +0 -48
  310. package/src/val/ListVal.ts +0 -59
  311. package/src/val/LowerFuncVal.ts +0 -12
  312. package/src/val/MapVal.ts +0 -151
  313. package/src/val/MatchFuncVal.ts +0 -59
  314. package/src/val/MaybeFuncVal.ts +86 -0
  315. package/src/val/MoveFuncVal.ts +0 -20
  316. package/src/val/NilVal.ts +0 -60
  317. package/src/val/NomFuncVal.ts +8 -95
  318. package/src/val/NumberVal.ts +0 -16
  319. package/src/val/OpBaseVal.ts +4 -17
  320. package/src/val/PackFuncVal.ts +0 -63
  321. package/src/val/PathFuncVal.ts +0 -32
  322. package/src/val/PathVal.ts +0 -66
  323. package/src/val/PlaceVal.ts +0 -45
  324. package/src/val/PlusOpVal.ts +18 -75
  325. package/src/val/PrefFuncVal.ts +0 -1
  326. package/src/val/PrefVal.ts +0 -179
  327. package/src/val/RecurseVal.ts +0 -81
  328. package/src/val/RefVal.ts +1 -285
  329. package/src/val/ReferFuncVal.ts +0 -255
  330. package/src/val/ScalarKindVal.ts +0 -50
  331. package/src/val/ScalarVal.ts +0 -12
  332. package/src/val/StrFuncVal.ts +0 -44
  333. package/src/val/SuperFuncVal.ts +0 -42
  334. package/src/val/TopVal.ts +0 -1
  335. package/src/val/TranslateFuncVal.ts +1 -51
  336. package/src/val/UpperFuncVal.ts +0 -12
  337. package/src/val/Val.ts +3 -192
  338. package/src/val/VarVal.ts +0 -15
  339. package/src/val/arith.ts +0 -92
  340. package/src/val/caserange.ts +0 -62
  341. package/src/val/members.ts +0 -23
  342. package/src/val/numcmp.ts +1 -27
  343. package/src/val/numkind.ts +0 -149
  344. package/src/val/valutil.ts +0 -16
  345. package/src/vet.ts +1 -582
  346. package/src/view.ts +0 -507
  347. package/src/walk.ts +0 -41
  348. package/dist/std.d.ts +0 -3
  349. package/dist/std.js +0 -672
  350. package/dist/std.js.map +0 -1
  351. package/dist/val/FormFuncVal.js +0 -55
  352. package/dist/val/FormFuncVal.js.map +0 -1
  353. package/dist/val/NamerFuncVal.d.ts +0 -12
  354. package/dist/val/NamerFuncVal.js +0 -176
  355. package/dist/val/NamerFuncVal.js.map +0 -1
  356. package/src/std.ts +0 -683
@@ -8,26 +8,13 @@ const IntegerVal_1 = require("../val/IntegerVal");
8
8
  const NumberVal_1 = require("../val/NumberVal");
9
9
  const StringVal_1 = require("../val/StringVal");
10
10
  const BooleanVal_1 = require("../val/BooleanVal");
11
+ const ListVal_1 = require("../val/ListVal");
11
12
  const BigIntegerVal_1 = require("../val/BigIntegerVal");
12
13
  const BigDecimalVal_1 = require("../val/BigDecimalVal");
13
14
  const Decimal_1 = require("../val/Decimal");
14
15
  const numkind_1 = require("../val/numkind");
15
16
  const numkind_2 = require("../val/numkind");
16
17
  const OpBaseVal_1 = require("./OpBaseVal");
17
- // D6 -- THE EXACT LADDER: integer < biginteger < bigdecimal. A mixed
18
- // operation between exact leaves promotes to the WIDEST operand and is
19
- // computed exactly, so `1 + 0d2` is a biginteger and `1 + 0d0.5` a
20
- // bigdecimal.
21
- //
22
- // `float` is deliberately absent: it is OFF the ladder, keeping only its
23
- // classic contagion against `integer`. Its absence from this table is
24
- // what makes the float-with-big pairs fall through to the hard error
25
- // below rather than promoting.
26
- //
27
- // Results NEVER demote: `0d5 + -0d2` stays a biginteger even though 3
28
- // would fit an int64. Demotion would make the result kind depend on the
29
- // values rather than on the operand kinds, and a document could then
30
- // change leaf under a value edit.
31
18
  const EXACT_RANK = {
32
19
  integer: 1,
33
20
  biginteger: 2,
@@ -36,13 +23,6 @@ const EXACT_RANK = {
36
23
  function isBig(k) {
37
24
  return 'biginteger' === k || 'bigdecimal' === k;
38
25
  }
39
- // Only concrete scalar operands are valid: anything else (kinds, maps,
40
- // lists, null, top, funcs) must not coerce — the JS `+` would leak
41
- // internals like "[object Object]" into output. A non-scalar operand
42
- // leaves the op unresolved, which generate() reports.
43
- //
44
- // A pref operand contributes its preferred value (`pref(1)+2`), and
45
- // therefore that value's kind too.
46
26
  function operand(v) {
47
27
  while (v?.isPref) {
48
28
  v = v.peg;
@@ -72,14 +52,6 @@ function opkind(v) {
72
52
  'boolean' === t ? 'boolean' :
73
53
  undefined;
74
54
  }
75
- // THE TEXT `+` WOULD MAKE OF THIS OPERAND, or undefined if `+` would not
76
- // take it at all.
77
- //
78
- // `join` folds with `+` seeded with `""`, so every member goes through
79
- // concatenation's string branch — and this is the function that branch
80
- // calls. Exported so that the fold and the operator cannot drift into
81
- // two answers to "how does a number become text": there is one
82
- // rendering, `digits` below, and both reach it here.
83
55
  function plusText(v) {
84
56
  const o = operand(v);
85
57
  const k = opkind(o);
@@ -99,6 +71,18 @@ class PlusOpVal extends OpBaseVal_1.OpBaseVal {
99
71
  operate(ctx, args) {
100
72
  const av = operand(args[0]);
101
73
  const bv = operand(args[1]);
74
+ // ABSENCE PROPAGATES (ADR-034).
75
+ if (true === av?.isAbsent) {
76
+ return av;
77
+ }
78
+ if (true === bv?.isAbsent) {
79
+ return bv;
80
+ }
81
+ // Lists concatenate (ADR-037).
82
+ if (true === av?.isList && true === bv?.isList) {
83
+ const peg = [...av.peg, ...bv.peg].map((v, i) => v.clone(ctx.descend(String(i))));
84
+ return new ListVal_1.ListVal({ peg }, ctx);
85
+ }
102
86
  const ak = opkind(av);
103
87
  const bk = opkind(bv);
104
88
  if (undefined === ak || undefined === bk) {
@@ -107,12 +91,6 @@ class PlusOpVal extends OpBaseVal_1.OpBaseVal {
107
91
  if ('boolean' === ak && 'boolean' === bk) {
108
92
  return new BooleanVal_1.BooleanVal({ peg: av.peg || bv.peg });
109
93
  }
110
- // STRING CONCATENATION RENDERS DIGITS, NOT KIND DECORATION. The `0d`
111
- // marker is canon's way of naming the leaf and never belongs in a
112
- // string, exactly as R4's `.0` float suffix does not ("q" + 0d0.1 is
113
- // "q0.1", and "q" + 1.0 is "q1"). Decimal.toString() is that
114
- // marker-free rendering, which is why canon() wraps it rather than
115
- // the other way round.
116
94
  if ('string' === ak || 'string' === bk) {
117
95
  return new StringVal_1.StringVal({ peg: digits(av, ak) + digits(bv, bk) });
118
96
  }
@@ -120,23 +98,9 @@ class PlusOpVal extends OpBaseVal_1.OpBaseVal {
120
98
  if ('boolean' === ak || 'boolean' === bk) {
121
99
  return undefined;
122
100
  }
123
- // FLOAT IS OFF THE EXACT LADDER, and mixing it with either big leaf
124
- // is a hard error in BOTH operand orders: a big type never silently
125
- // becomes a binary float. Promotion the other way is no better —
126
- // binary64 cannot hold every exact value, so either direction throws
127
- // away exactness the document explicitly asked for by writing `0d`.
128
- // The error names both leaves in operand order.
129
101
  if (('float' === ak && isBig(bk)) || (isBig(ak) && 'float' === bk)) {
130
102
  return (0, err_1.makeNilErr)(ctx, 'exact_float_mix', this, undefined, 'add', { left: ak, right: bk });
131
103
  }
132
- // Float with float or integer: unchanged R5 contagion, binary64
133
- // addition, float result (`1 + 2.0` is `3.0`) -- but a sum that
134
- // leaves binary64's finite range is NOT a value. Aontu is a JSON
135
- // superset and there is no notation for an infinity, so one here
136
- // used to escape as `[aontu/internal]` in TypeScript and as Go's
137
- // raw `json: unsupported value: +Inf` with no code at all
138
- // (use-cases/BUGS.md 39). The same check governs the arithmetic
139
- // family (float_overflow, ts/src/val/arith.ts).
140
104
  if ('float' === ak || 'float' === bk) {
141
105
  const sum = av.peg + bv.peg;
142
106
  return Number.isFinite(sum) ?
@@ -161,13 +125,6 @@ class PlusOpVal extends OpBaseVal_1.OpBaseVal {
161
125
  // `integer` however small the result.
162
126
  return new BigIntegerVal_1.BigIntegerVal({ peg: sum });
163
127
  }
164
- // INTEGER + INTEGER IS COMPUTED EXACTLY, then offered to the integer
165
- // leaf under the same storage contract R1 applies to a literal.
166
- // Adding through float64 (as this did) silently rounded sums of
167
- // exact operands — 4503599627370496 + 4503599627370497 came back as
168
- // …992 — which is precisely the corruption the tower refuses. The
169
- // sum that will not fit is an error pointing at `0d`, not a rounded
170
- // answer.
171
128
  return (0, numkind_2.isIntegerStorable)(sum) ?
172
129
  new IntegerVal_1.IntegerVal({ peg: Number(sum) }) :
173
130
  (0, err_1.makeNilErr)(ctx, 'inexact_integer_sum', this, undefined, 'add', { sum: sum.toString() });
@@ -177,32 +134,14 @@ class PlusOpVal extends OpBaseVal_1.OpBaseVal {
177
134
  }
178
135
  }
179
136
  exports.PlusOpVal = PlusOpVal;
180
- // The digits of an operand for string concatenation: no `0d` marker, no
181
- // R4 `.0` suffix — the plain rendering of the number, in every leaf.
182
- //
183
- // INTEGER KIND GOES THROUGH integerDigits. This was the THIRD site to
184
- // render an integer-kind peg with JavaScript's shortest round-tripping
185
- // form, so `"" + 1152921504606846976` produced "1152921504606847000" — a
186
- // different integer — where Go produced the exact digits. See #21 and
187
- // integerDigits, which exists so the set of such sites is greppable.
188
- //
189
- // The other leaves are already exact or already correct: a bigint
190
- // stringifies to its exact digits, a Decimal renders its own, and a FLOAT
191
- // must keep String() because its shortest form is the right answer and is
192
- // what Go prints too (`"a" + 1.0` is "a1").
193
137
  function digits(v, k) {
194
138
  return 'bigdecimal' === k ? v.peg.toString() :
195
139
  'integer' === k ? (0, numkind_1.integerDigits)(v.peg) :
196
140
  String(v.peg);
197
141
  }
198
- // An exact-ladder operand as an exact integer. Only reached for the two
199
- // integral leaves; an `integer` peg is integral by construction, so
200
- // BigInt() is exact.
201
142
  function integer(v, k) {
202
143
  return 'biginteger' === k ? v.peg : BigInt(v.peg);
203
144
  }
204
- // An exact-ladder operand as a Decimal, for the promotion to bigdecimal.
205
- // Scale 0 normalises to the one decimal place the leaf keeps.
206
145
  function decimal(v, k) {
207
146
  return 'bigdecimal' === k ? v.peg : new Decimal_1.Decimal(integer(v, k), 0);
208
147
  } /* node:coverage ignore next 6 */
@@ -1 +1 @@
1
- {"version":3,"file":"PlusOpVal.js","sourceRoot":"","sources":["../../src/val/PlusOpVal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PlusOpVal.js","sourceRoot":"","sources":["../../src/val/PlusOpVal.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,6 @@ class PrefFuncVal extends FuncBaseVal_1.FuncBaseVal {
24
24
  // Wrap every child val in a PrefVal
25
25
  out = (0, utility_1.walk)(out, (_key, val) => {
26
26
  let oval = val;
27
- // console.log('PREFVAL', _key, oval.canon, oval.constructor.name)
28
27
  if (val.isScalar
29
28
  || val.isPref) {
30
29
  oval = new PrefVal_1.PrefVal({ peg: val }, ctx);
@@ -1 +1 @@
1
- {"version":3,"file":"PrefFuncVal.js","sourceRoot":"","sources":["../../src/val/PrefFuncVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAYzD,gCAAmC;AAEnC,wCAEmB;AAEnB,4CAAwC;AACxC,+CAA2C;AAG3C,MAAM,WAAY,SAAQ,yBAAW;IAGnC,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QANlB,eAAU,GAAG,IAAI,CAAA;IAOjB,CAAC;IAGD,IAAI,CAAC,IAAkB,EAAE,IAAa;QACpC,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IAED,QAAQ;QACN,OAAO,MAAM,CAAA;IACf,CAAC;IAGD,OAAO,CAAC,GAAiB,EAAE,IAAW;QACpC,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAA,gBAAU,EAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;QAEjD,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YACf,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAEpB,oCAAoC;YACpC,GAAG,GAAG,IAAA,cAAI,EAAC,GAAG,EAAE,CAAC,IAAiC,EAAE,GAAQ,EAAE,EAAE;gBAC9D,IAAI,IAAI,GAAG,GAAG,CAAA;gBACd,kEAAkE;gBAClE,IACE,GAAG,CAAC,QAAQ;uBACT,GAAG,CAAC,MAAM,EACb,CAAC;oBACD,IAAI,GAAG,IAAI,iBAAO,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,CAAA;gBACvC,CAAC;gBAED,OAAO,IAAI,CAAA;YACb,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,GAAG,CAAA;IACZ,CAAC;CAEF,CAAC,iCAAiC;QAIjC,WAAW"}
1
+ {"version":3,"file":"PrefFuncVal.js","sourceRoot":"","sources":["../../src/val/PrefFuncVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAYzD,gCAAmC;AAEnC,wCAEmB;AAEnB,4CAAwC;AACxC,+CAA2C;AAG3C,MAAM,WAAY,SAAQ,yBAAW;IAGnC,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QANlB,eAAU,GAAG,IAAI,CAAA;IAOjB,CAAC;IAGD,IAAI,CAAC,IAAkB,EAAE,IAAa;QACpC,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IAED,QAAQ;QACN,OAAO,MAAM,CAAA;IACf,CAAC;IAGD,OAAO,CAAC,GAAiB,EAAE,IAAW;QACpC,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAA,gBAAU,EAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;QAEjD,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YACf,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAEpB,oCAAoC;YACpC,GAAG,GAAG,IAAA,cAAI,EAAC,GAAG,EAAE,CAAC,IAAiC,EAAE,GAAQ,EAAE,EAAE;gBAC9D,IAAI,IAAI,GAAG,GAAG,CAAA;gBACd,IACE,GAAG,CAAC,QAAQ;uBACT,GAAG,CAAC,MAAM,EACb,CAAC;oBACD,IAAI,GAAG,IAAI,iBAAO,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,CAAA;gBACvC,CAAC;gBAED,OAAO,IAAI,CAAA;YACb,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,GAAG,CAAA;IACZ,CAAC;CAEF,CAAC,iCAAiC;QAIjC,WAAW"}
@@ -11,11 +11,6 @@ const top_1 = require("./top");
11
11
  const FeatureVal_1 = require("./FeatureVal");
12
12
  const FuncBaseVal_1 = require("./FuncBaseVal");
13
13
  const SuperFuncVal_1 = require("./SuperFuncVal");
14
- // The innermost preferred value under every pref layer: the value a
15
- // preference of ANY rank ultimately defends, and the one generation
16
- // emits for it. Shared by the disjunct admission gate (DisjunctVal),
17
- // the defaulted-scrutinee rule (MatchFuncVal) and the effective-default
18
- // walk (subsume.ts) so "the default's value" cannot mean three things.
19
14
  function prefInnerPeg(v) {
20
15
  let out = v;
21
16
  while (true === out?.isPref) {
@@ -23,85 +18,19 @@ function prefInnerPeg(v) {
23
18
  }
24
19
  return out;
25
20
  }
26
- // A CONTAINER DEFAULT IS LEAFWISE (ADR-011 R3,
27
- // docs/design/DEFAULTS.0.md): `*{p:1}` MEANS `{p: *1}` and `*[1]`
28
- // means `[*1]`, so there is no such thing as a preference whose
29
- // preferred value is a bag. Shape is not a value and takes no star --
30
- // key optionality, closedness and a `&:` spread template ride through
31
- // untouched; only the values a reader could override are defaulted.
32
- //
33
- // This is the rule `pref()` already had (its resolve walked and
34
- // wrapped every scalar child) and the star prefix did not, so the two
35
- // spellings of one operator disagreed: `pref({p:1}) & {q:2}` kept the
36
- // `p` default and `*{p:1} & {q:2}` dropped it. Both spellings and the
37
- // resolve-time case (`*$.shape`) come through here now, so they
38
- // cannot drift apart again. Wrapping the non-bag arm rather than
39
- // walking for scalars also closes the other half of that gap:
40
- // `pref(integer)` and `pref(min(3))` used to answer the bare value,
41
- // losing the preference outright.
42
21
  class PrefVal extends FeatureVal_1.FeatureVal {
43
22
  constructor(spec, ctx) {
44
23
  super(spec, ctx);
45
24
  this.isPref = true;
46
25
  this.isGenable = true;
47
26
  this.cjo = 30000;
48
- // THE GATE AN OVERRIDING PEER MUST PASS IS `superpeg` ITSELF — the
49
- // preferred value's own KIND, not its family.
50
- //
51
- // A preference is a DEFAULT, so a concrete peer replaces it, but only
52
- // where the peer is the same kind of thing: `*lower(1.1) & a` is a
53
- // conflict, not an override. The number tower made `integer` and
54
- // `float` disjoint siblings under `number`, and this gate used to
55
- // widen to that family — so `*2.2 & 3` worked, and so did
56
- // `*8080 & 3.5`. Those are ONE rule in two directions; no kind-based
57
- // gate can keep the first and refuse the second.
58
- //
59
- // Refusing both is the choice, because the second is the documented
60
- // default idiom: `port: *8080 | integer` accepted 3.5 in both ports,
61
- // silently widening every key written that way from integer to
62
- // number — the finding §6 of the 2026-08-21 status report calls the
63
- // most consequential, precisely because docs/skill/examples.md
64
- // teaches the idiom to agents.
65
- //
66
- // What the tightening costs is named rather than hidden: mixing the
67
- // numeric leaves around a preference is now an error instead of a
68
- // silent widening. `*1.5 & integer` used to answer `integer` and
69
- // DISCARD a default that could never apply; it now says so.
70
27
  this.rank = 0;
71
- // this.pref = spec.pref || spec.peg
72
- // this.superpeg = makeSuper(spec.peg)
73
28
  if (spec.peg instanceof PrefVal) {
74
29
  this.rank = 1 + spec.peg.rank;
75
30
  }
76
31
  this.resuper(ctx);
77
- // console.log('PVC', this.peg.canon, this.superpeg.canon)
78
32
  }
79
- // Recompute the type yardstick and the override gate from the current
80
- // peg. Called again whenever the peg resolves (e.g. a ref).
81
- //
82
- // THE GATE IS super() (ADR-011 R4, docs/design/DEFAULTS.0.md). `*x`
83
- // is sugar for `*x | super(x)`, so the type an overriding peer must
84
- // pass is the one the long form spells out loud -- one function, not
85
- // a second implementation that agrees with it on the common case.
86
- // Two special cases retired with the switch: a KIND peg gated
87
- // nothing (`*integer` was overridden by `"s"`) and a CONSTRAINT peg
88
- // had no gate at all, both written when a kind's superior was top.
89
- // `super(integer)` is `number`, so `7` still wins and `"s"` refuses.
90
33
  resuper(ctx) {
91
- // THE RANK-UNIFORM MEET (ADR-004). The yardstick is the INNERMOST
92
- // preferred value's kind, whatever the preference's rank: `**1.5`
93
- // defends `float` exactly as `*1.5` does. The old rule read the
94
- // immediate peg, and a rank>=2 peg is itself a PrefVal whose
95
- // superior is top -- so ANY conjunct overrode a ranked default
96
- // (`**1.5 & float` dropped the default and died as mapval_no_gen;
97
- // `**2|integer` met by a bare `integer` lost the default the
98
- // spelling exists to carry -- use-cases/BUGS.md §3), while the
99
- // rank-1 spelling of the same document kept it. One rule, every
100
- // rank. Pinned by test/spec/pref.tsv (pref-rank2-* rows, and the
101
- // flipped pref-nested-concrete-wins).
102
- // THE RANK-UNIFORM MEET (ADR-004) is unchanged: the yardstick is
103
- // the INNERMOST preferred value, whatever the rank, so `**1.5`
104
- // defends `float` exactly as `*1.5` does.
105
34
  let peg = this.peg;
106
35
  while (true === peg?.isPref) {
107
36
  peg = peg.peg;
@@ -112,14 +41,6 @@ class PrefVal extends FeatureVal_1.FeatureVal {
112
41
  this.superpeg = null == this.narrowed ? base
113
42
  : (0, unify_1.unite)(ctx, base, this.narrowed, 'pref-narrow/' + this.id);
114
43
  }
115
- // The default, standing but NARROWED: `*integer & 7` is `*7`, which
116
- // is what the long form answers (`(integer&7) | (number&7)` keeps
117
- // the star on the arm that survived). The rank rides across -- a
118
- // ladder rung that narrows is still that rung.
119
- // The rank is REBUILT as nesting rather than stamped: canon renders
120
- // one star per layer (`'*' + peg.canon`), so a rank set directly on
121
- // a single layer would print `*x` for a rank-2 default and the
122
- // document would no longer round-trip.
123
44
  restand(met, ctx) {
124
45
  let out = met;
125
46
  for (let rI = 0; rI <= this.rank; rI++) {
@@ -136,27 +57,9 @@ class PrefVal extends FeatureVal_1.FeatureVal {
136
57
  let why = '';
137
58
  if (!this.peg.done) {
138
59
  const resolved = (0, unify_1.unite)(te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'RES') }) : ctx, this.peg, (0, top_1.top)(), 'pref/resolve');
139
- // console.log('PREF-RESOLVED', this.peg.canon, '->', resolved)
140
60
  this.peg = resolved;
141
61
  this.resuper(ctx);
142
62
  }
143
- // A CONTAINER DEFAULT IS LEAFWISE IN EFFECT (ADR-011 R3), and it
144
- // gets there through the meet above rather than through a rewrite.
145
- // `*{p:1}` keeps its written shape -- canon prints `*{"p":1}` and
146
- // reparses to itself, which a rewrite to `{p:*1}` would break, and
147
- // an alternative still has a star for a disjunction to choose by.
148
- // What makes it leafwise is that the two arms decide:
149
- //
150
- // `& {q:2}` the preferred value ITSELF admits the peer (maps
151
- // merge), so the default stands as `*{p:1,q:2}` and
152
- // `p` survives -- it used to be REPLACED outright.
153
- // `& {p:2}` the preferred value refuses, so the gate answers:
154
- // `super({p:1})` is `{p:integer}`, which admits it.
155
- // `& "s"` both arms are empty, so the whole default is --
156
- // a string used to override a map default silently.
157
- //
158
- // Which is every rule R3 asks for, with no bag ever standing where
159
- // the author wrote a scalar and no canon that fails to round-trip.
160
63
  if (peer instanceof PrefVal) {
161
64
  why += 'pref-';
162
65
  if (this.id === peer.id) {
@@ -177,69 +80,17 @@ class PrefVal extends FeatureVal_1.FeatureVal {
177
80
  why += 'rank-lose';
178
81
  }
179
82
  else {
180
- // console.log('PREF-PEER',
181
- // this.peg.id, this.peg, this.peg.done,
182
- // peer.peg.id, peer.peg, peer.peg.done,
183
- // )
184
83
  const peg = (0, FuncBaseVal_1.trialUnify)(ctx, prefInnerPeg(this).clone(ctx), prefInnerPeg(peer));
185
- // TWO DEFAULTS OF EQUAL RANK THAT CANNOT AGREE (ADR-011 R2):
186
- // the refusal is about the DEFAULTS, not about the values they
187
- // happen to hold, and its hint names the fix -- rank one of
188
- // them. Compatible pegs still fold (`*1 & *integer` is `*1`),
189
- // and identical ones collapse, so only a real disagreement
190
- // reaches this arm. The three spellings of it -- `*1 & *7`,
191
- // `(*1|integer) & *7` and `*1|*7` -- used to answer a value
192
- // conflict, the newcomer, and the newcomer again.
193
84
  out = undefined === peg
194
85
  ? (0, err_1.makeNilErr)(ctx, 'pref_rank_clash', this, peer, 'unify')
195
86
  : this.restand(peg, ctx);
196
- // console.log('PREF-RANK-SAME-OUT', peg, peg.done, out, out.done)
197
87
  why += 'rank-same';
198
88
  }
199
89
  }
200
90
  else if (!peer.isTop) {
201
91
  why += 'super-';
202
- // THE MEET IS THE DESUGARING, DISTRIBUTED (ADR-011 R1,
203
- // docs/design/DEFAULTS.0.md). `*x` stands for `*x | super(x)`,
204
- // and a peer meets a disjunction arm by arm:
205
- //
206
- // (x & peer) | (super(x) & peer)
207
- //
208
- // THE FIRST ARM DECIDES. When the preferred value itself still
209
- // satisfies the peer the default STANDS -- `*1 & integer`,
210
- // `*8080 & min(1024)`, `**2 & neq(1)`: the peer narrowed the
211
- // type without ruling the default out, which is the whole point
212
- // of writing one. Only when that arm is empty does the second
213
- // answer, and that is the override. When BOTH are empty nothing
214
- // remains of the disjunction the star stands for -- `empty`,
215
- // the same refusal the written-out long form gives.
216
- //
217
- // The old rule asked instead whether the peer resolved to
218
- // exactly `super(x)`, so any narrowing at all counted as an
219
- // override: `*1 & integer` stood (the peer WAS the gate) but
220
- // `*8080 & min(1024)` silently dropped the default and answered
221
- // the bare constraint, and a rank ladder lost its weaker arm to
222
- // the same rule the moment anything narrowed it.
223
- //
224
- // Trialled against a CLONE, on the innermost value (the
225
- // rank-uniform meet): the preferred value must stay pristine for
226
- // the arm that stands, and a failed trial must not leave its
227
- // errors on the context -- the DisjunctVal admission gate's own
228
- // precedent, and its mechanism.
229
92
  const met = (0, FuncBaseVal_1.trialUnify)(ctx, prefInnerPeg(this).clone(ctx), peer);
230
93
  if (undefined !== met) {
231
- // THE SECOND ARM IS CARRIED FORWARD, not discarded. It is the
232
- // override space -- everything the peer would still admit
233
- // INSTEAD of the default -- and meeting a peer narrows it just
234
- // as it narrows the default: two successive meets compose to
235
- // `(x & p1 & p2) | (super(x) & p1 & p2)`, which is the
236
- // distribution over both. Dropping it let a constraint that
237
- // arrived beside a default vanish: `r:*2` with `r:max(20)`
238
- // stood as a bare `*2`, and `r:40` then overrode it through a
239
- // gate that no longer remembered the bound.
240
- //
241
- // It cannot fail: the first arm succeeded, so `x & peer` has a
242
- // value, and that value satisfies `super(x)` and `peer` both.
243
94
  const gate = (0, unify_1.unite)(te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'GATE') }) : ctx, this.superpeg.clone(ctx), peer, 'pref-gate/' + this.id);
244
95
  // Unchanged on both counts is the SAME preference, returned as
245
96
  // itself: minting a new one every pass would keep the fixpoint
@@ -276,7 +127,6 @@ class PrefVal extends FeatureVal_1.FeatureVal {
276
127
  // Every pref result is DONE, including a stuck conjunct from the
277
128
  // superior-unify (mirrored by PrefVal.Unify in go/pref.go).
278
129
  out.dc = type_1.DONE;
279
- // console.log('PREFVAL-OUT', why, this.canon, peer.canon, '->', out.canon, out.done)
280
130
  ctx.explain && (0, utility_1.explainClose)(te, out);
281
131
  return out;
282
132
  }
@@ -290,27 +140,10 @@ class PrefVal extends FeatureVal_1.FeatureVal {
290
140
  }
291
141
  clone(ctx, spec) {
292
142
  let out = super.clone(ctx, spec);
293
- // THE NARROWED OVERRIDE SPACE TRAVELS WITH THE COPY (ADR-011 R1).
294
- // A default a meet has pinned stays pinned through a reference:
295
- // without this, `T:{e:***false & false}` copied by `f:$.T` handed
296
- // back a default whose gate had widened again to `boolean`, and
297
- // `f:{e:true}` overrode a value the author had pinned. The Go
298
- // twin carries the same two fields explicitly (clone.go).
299
143
  if (null != this.narrowed) {
300
144
  out.narrowed = this.narrowed;
301
145
  out.superpeg = this.superpeg;
302
146
  }
303
- // THE PER-DESTINATION INSTANTIATION RULE (ADR-005). The default
304
- // clone shares the preferred value (`peg: this.peg` in Val.clone)
305
- // — a cloned pref spread template resolves its inner value at the
306
- // template's own location, pinned behaviour. But a template
307
- // INSTANCE must own it: with the peg shared, a rank-2 default
308
- // (`**key(1) | string`) in a pack template resolved its one
309
- // shared inner key() at the first destination and every child got
310
- // the first child's key (use-cases/BUGS.md §9 — rank 1 escaped
311
- // only because its unify builds a fresh PrefVal per meet). The
312
- // superpeg yardstick from the shared peg still holds: the clone's
313
- // innermost value is the same kind.
314
147
  if (true === spec?.dup && true === this.peg?.isVal) {
315
148
  out.peg = this.peg.clone(ctx, { dup: true });
316
149
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PrefVal.js","sourceRoot":"","sources":["../../src/val/PrefVal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PrefVal.js","sourceRoot":"","sources":["../../src/val/PrefVal.ts"],"names":[],"mappings":"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"}
@@ -30,21 +30,12 @@ class RecurseVal extends FeatureVal_1.FeatureVal {
30
30
  out.xc = this.xc;
31
31
  return out;
32
32
  }
33
- // The schema body the target names, from the ROOT: the fixpoint is
34
- // over the finished definition, and the definition's own residual
35
- // keeps it finite. When the root does not contain the target -- the
36
- // residual was LIFTED out of its defining tree, as vet's anchored
37
- // meet does -- fall back to ctx._fixroot, the settled tree the
38
- // lifter kept for exactly this walk.
39
33
  body(ctx) {
40
34
  return walkTarget(ctx.root, this.target)
41
35
  ?? walkTarget(ctx._fixroot, this.target);
42
36
  }
43
37
  unify(peer, ctx) {
44
38
  const p = peer;
45
- // The self-drive: nothing to advance -- the residual waits for
46
- // structure. (A null/nil peer never arrives; unite's ladder
47
- // absorbs both.)
48
39
  if (null == peer || true === p.isTop) {
49
40
  return this;
50
41
  }
@@ -54,9 +45,6 @@ class RecurseVal extends FeatureVal_1.FeatureVal {
54
45
  && this.target.every((s, i) => s === p.target[i])) {
55
46
  return this;
56
47
  }
57
- // Different targets -- mutual recursion meeting -- are BOTH
58
- // held: each expands as data arrives, through the fold that
59
- // keeps a conjunct's members separate.
60
48
  const out = new ConjunctVal_1.ConjunctVal({ peg: [this, peer] }, ctx);
61
49
  (0, utility_1.propagateMarks)(this, out);
62
50
  out.path = this.path;
@@ -76,25 +64,6 @@ class RecurseVal extends FeatureVal_1.FeatureVal {
76
64
  out.path = this.path;
77
65
  return out;
78
66
  }
79
- // ADR-005's clone discipline: the expansion is a per-destination
80
- // instantiation, so the definition itself is never written
81
- // into. The clone's type/hide marks are CLEARED at every depth,
82
- // exactly as a plain reference copy clears them (concreteFlow's
83
- // rule): the schema is hidden, the instances it expands into
84
- // are the output.
85
- // The clone is REBASED to the DRIVE path explicitly (spec.path;
86
- // the Go twin passes cp(r.path), whose stored paths its clone
87
- // arms keep clean): the default rebase slices the definition's
88
- // path by the destination's length, which leaks definition
89
- // segments into instance paths whenever the destination is
90
- // shallower -- a residual carried inside a copied definition
91
- // body (`chain: $.spec.Step` inside Policy, copied to a slot
92
- // shallower than the definition) reported
93
- // `$.payments_policy.Policy.chain.then.approver` for the
94
- // finding Go placed at `$.payments_policy.chain.then.approver`.
95
- // The drive path is also right under vet's anchored meet, which
96
- // drives AT the anchor's own path (see vet.ts), so anchored
97
- // findings land in the schema's namespace in both ports.
98
67
  const level = body.clone(ctx, {
99
68
  dup: true, path: [...ctx.path],
100
69
  });
@@ -117,9 +86,6 @@ class RecurseVal extends FeatureVal_1.FeatureVal {
117
86
  return '$.' + this.target.join('.');
118
87
  }
119
88
  gen(ctx) {
120
- // An unexpanded residual in a demanded position refuses;
121
- // guardedness is emergent -- under an optional key the bag's
122
- // isolated context swallows this and drops the key.
123
89
  (0, err_1.makeNilErr)(ctx, 'recursion_unexpanded', this, undefined, 'recurse', { target: '$.' + this.target.join('.') });
124
90
  return undefined;
125
91
  }
@@ -144,13 +110,6 @@ function bumpRecurse(v, xc) {
144
110
  v.xc = Math.max(v.xc, xc);
145
111
  return;
146
112
  }
147
- // A RAW REFERENCE TO A RECURSIVE TARGET IS THE RECURSION, minted or
148
- // not -- the same reading containsRecurseOf already takes, and the
149
- // reason bound 2 was inert. A freshly cloned level holds the
150
- // definition's references UNRESOLVED, so this walk found no
151
- // residual to stamp and `xc` read 0 at every expansion, in the
152
- // healthy form too. The seed rides on the reference and the
153
- // residual minted from it starts there (ts/src/val/RefVal.ts).
154
113
  if (true === v.isRef) {
155
114
  v.rxc = Math.max(v.rxc ?? 0, xc);
156
115
  return;
@@ -175,12 +134,6 @@ function bumpRecurse(v, xc) {
175
134
  bumpRecurse(v.spread.cj, xc);
176
135
  }
177
136
  }
178
- // containsRecurseOf answers whether a definition holds a residual of
179
- // the given target -- i.e. the definition is (transitively) the
180
- // fixpoint that target names. A reference RESOLVING to such a
181
- // definition must itself answer the residual: cloned instead, every
182
- // reparse of a canon unrolled the schema one more level and canon
183
- // never converged.
184
137
  function containsRecurseOf(v, target, depth) {
185
138
  const d = depth ?? 0;
186
139
  if (null == v || true !== v.isVal || 8 < d) {
@@ -190,14 +143,6 @@ function containsRecurseOf(v, target, depth) {
190
143
  return v.target.length === target.length
191
144
  && v.target.every((s, i) => s === target[i]);
192
145
  }
193
- // A RAW REFERENCE to the target IS the recursion, minted or not:
194
- // the answer must not depend on whether the definition's own
195
- // prefix position has been visited yet. Without this arm the
196
- // answer was ORDER-DEPENDENT -- reparsing a generated canon puts
197
- // the instance before the definition, its trailing `$.spec.Step`
198
- // leaves resolved before `Step.then` had minted, and each resolve
199
- // cloned one more unrolled level until the unify depth guard
200
- // (unify_cycle) killed the document.
201
146
  if (true === v.isRef && Array.isArray(v.peg)) {
202
147
  if (v.peg.length === target.length
203
148
  && v.peg.every((s, i) => s === target[i])) {
@@ -1 +1 @@
1
- {"version":3,"file":"RecurseVal.js","sourceRoot":"","sources":["../../src/val/RecurseVal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RecurseVal.js","sourceRoot":"","sources":["../../src/val/RecurseVal.ts"],"names":[],"mappings":"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"}