aontu 0.62.0 → 0.64.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 (373) hide show
  1. package/README.md +7 -7
  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 +3 -3
  8. package/dist/aontu.js +4 -84
  9. package/dist/aontu.js.map +1 -1
  10. package/dist/aontumodel.d.ts +4 -0
  11. package/dist/aontumodel.js +27 -0
  12. package/dist/aontumodel.js.map +1 -0
  13. package/dist/casing.d.ts +5 -0
  14. package/dist/casing.js +90 -0
  15. package/dist/casing.js.map +1 -0
  16. package/dist/cli.d.ts +2 -2
  17. package/dist/cli.js +228 -935
  18. package/dist/cli.js.map +1 -1
  19. package/dist/ctx.js +0 -48
  20. package/dist/ctx.js.map +1 -1
  21. package/dist/diff.js +0 -32
  22. package/dist/diff.js.map +1 -1
  23. package/dist/err.js +0 -40
  24. package/dist/err.js.map +1 -1
  25. package/dist/escape.js +0 -45
  26. package/dist/escape.js.map +1 -1
  27. package/dist/exactjson.d.ts +0 -35
  28. package/dist/exactjson.js +0 -131
  29. package/dist/exactjson.js.map +1 -1
  30. package/dist/format.js +13 -203
  31. package/dist/format.js.map +1 -1
  32. package/dist/grammar.d.ts +9 -0
  33. package/dist/grammar.js +54 -0
  34. package/dist/grammar.js.map +1 -0
  35. package/dist/graph.js +0 -26
  36. package/dist/graph.js.map +1 -1
  37. package/dist/hcanon.js +0 -82
  38. package/dist/hcanon.js.map +1 -1
  39. package/dist/helpdoc.js +2 -2
  40. package/dist/helpdoc.js.map +1 -1
  41. package/dist/hints.d.ts +0 -6
  42. package/dist/hints.js +57 -55
  43. package/dist/hints.js.map +1 -1
  44. package/dist/jsonschema.js +0 -114
  45. package/dist/jsonschema.js.map +1 -1
  46. package/dist/keyorder.d.ts +0 -7
  47. package/dist/keyorder.js +0 -41
  48. package/dist/keyorder.js.map +1 -1
  49. package/dist/lang.js +17 -915
  50. package/dist/lang.js.map +1 -1
  51. package/dist/lsp-server.js +0 -16
  52. package/dist/lsp-server.js.map +1 -1
  53. package/dist/lsp.d.ts +1 -1
  54. package/dist/lsp.js +12 -159
  55. package/dist/lsp.js.map +1 -1
  56. package/dist/mcp-server.js +0 -26
  57. package/dist/mcp-server.js.map +1 -1
  58. package/dist/mcp.js +0 -149
  59. package/dist/mcp.js.map +1 -1
  60. package/dist/mod-tool.js +16 -131
  61. package/dist/mod-tool.js.map +1 -1
  62. package/dist/mod.js +0 -162
  63. package/dist/mod.js.map +1 -1
  64. package/dist/patch.js +0 -217
  65. package/dist/patch.js.map +1 -1
  66. package/dist/profile.d.ts +9 -0
  67. package/dist/profile.js +28 -0
  68. package/dist/profile.js.map +1 -0
  69. package/dist/provenance.js +0 -140
  70. package/dist/provenance.js.map +1 -1
  71. package/dist/query.js +0 -75
  72. package/dist/query.js.map +1 -1
  73. package/dist/reach.js +0 -43
  74. package/dist/reach.js.map +1 -1
  75. package/dist/relation.js +0 -61
  76. package/dist/relation.js.map +1 -1
  77. package/dist/report-sarif.d.ts +0 -11
  78. package/dist/report-sarif.js +0 -28
  79. package/dist/report-sarif.js.map +1 -1
  80. package/dist/sig.js +0 -35
  81. package/dist/sig.js.map +1 -1
  82. package/dist/sigdecl.js +1 -1
  83. package/dist/sigdecl.js.map +1 -1
  84. package/dist/siggate.js +0 -4
  85. package/dist/siggate.js.map +1 -1
  86. package/dist/site.js +3 -29
  87. package/dist/site.js.map +1 -1
  88. package/dist/subsume.d.ts +0 -10
  89. package/dist/subsume.js +0 -137
  90. package/dist/subsume.js.map +1 -1
  91. package/dist/template.d.ts +2 -1
  92. package/dist/template.js +58 -138
  93. package/dist/template.js.map +1 -1
  94. package/dist/trace.d.ts +21 -0
  95. package/dist/trace.js +107 -0
  96. package/dist/trace.js.map +1 -0
  97. package/dist/trim.js +0 -41
  98. package/dist/trim.js.map +1 -1
  99. package/dist/tsconfig.tsbuildinfo +1 -1
  100. package/dist/type.js.map +1 -1
  101. package/dist/unify.js +13 -248
  102. package/dist/unify.js.map +1 -1
  103. package/dist/utility.js +0 -22
  104. package/dist/utility.js.map +1 -1
  105. package/dist/val/AbnfFuncVal.d.ts +18 -0
  106. package/dist/val/AbnfFuncVal.js +132 -0
  107. package/dist/val/AbnfFuncVal.js.map +1 -0
  108. package/dist/val/AbsentVal.d.ts +11 -0
  109. package/dist/val/AbsentVal.js +30 -0
  110. package/dist/val/AbsentVal.js.map +1 -0
  111. package/dist/val/AggFuncVal.d.ts +10 -1
  112. package/dist/val/AggFuncVal.js +104 -116
  113. package/dist/val/AggFuncVal.js.map +1 -1
  114. package/dist/val/ArithFuncVal.js +0 -12
  115. package/dist/val/ArithFuncVal.js.map +1 -1
  116. package/dist/val/BagVal.js +1 -78
  117. package/dist/val/BagVal.js.map +1 -1
  118. package/dist/val/BigDecimalVal.js +0 -16
  119. package/dist/val/BigDecimalVal.js.map +1 -1
  120. package/dist/val/BigIntegerVal.js +0 -16
  121. package/dist/val/BigIntegerVal.js.map +1 -1
  122. package/dist/val/CloseFuncVal.js +0 -9
  123. package/dist/val/CloseFuncVal.js.map +1 -1
  124. package/dist/val/CmpFuncVal.d.ts +2 -0
  125. package/dist/val/CmpFuncVal.js +49 -72
  126. package/dist/val/CmpFuncVal.js.map +1 -1
  127. package/dist/val/ConjunctVal.js +0 -29
  128. package/dist/val/ConjunctVal.js.map +1 -1
  129. package/dist/val/ConstraintVal.js +0 -500
  130. package/dist/val/ConstraintVal.js.map +1 -1
  131. package/dist/val/ContainerKindVal.js +0 -2
  132. package/dist/val/ContainerKindVal.js.map +1 -1
  133. package/dist/val/CopyFuncVal.js +0 -3
  134. package/dist/val/CopyFuncVal.js.map +1 -1
  135. package/dist/val/Decimal.js +0 -179
  136. package/dist/val/Decimal.js.map +1 -1
  137. package/dist/val/DeprecateFuncVal.js.map +1 -1
  138. package/dist/val/DisjunctVal.js +0 -152
  139. package/dist/val/DisjunctVal.js.map +1 -1
  140. package/dist/val/EachFuncVal.js +0 -3
  141. package/dist/val/EachFuncVal.js.map +1 -1
  142. package/dist/val/EmitFuncVal.d.ts +1 -1
  143. package/dist/val/EmitFuncVal.js +6 -119
  144. package/dist/val/EmitFuncVal.js.map +1 -1
  145. package/dist/val/ExpectVal.js +0 -62
  146. package/dist/val/ExpectVal.js.map +1 -1
  147. package/dist/val/FilterFuncVal.js +0 -25
  148. package/dist/val/FilterFuncVal.js.map +1 -1
  149. package/dist/val/FuncBaseVal.d.ts +1 -0
  150. package/dist/val/FuncBaseVal.js +7 -127
  151. package/dist/val/FuncBaseVal.js.map +1 -1
  152. package/dist/val/GraphAtomVal.js +0 -15
  153. package/dist/val/GraphAtomVal.js.map +1 -1
  154. package/dist/val/HideFuncVal.js +0 -13
  155. package/dist/val/HideFuncVal.js.map +1 -1
  156. package/dist/val/IntegerVal.js +0 -61
  157. package/dist/val/IntegerVal.js.map +1 -1
  158. package/dist/val/JunctionVal.js +0 -20
  159. package/dist/val/JunctionVal.js.map +1 -1
  160. package/dist/val/KeyFuncVal.js +0 -46
  161. package/dist/val/KeyFuncVal.js.map +1 -1
  162. package/dist/val/ListVal.js +0 -57
  163. package/dist/val/ListVal.js.map +1 -1
  164. package/dist/val/LowerFuncVal.js +0 -11
  165. package/dist/val/LowerFuncVal.js.map +1 -1
  166. package/dist/val/MapVal.js +0 -151
  167. package/dist/val/MapVal.js.map +1 -1
  168. package/dist/val/MatchFuncVal.js +0 -27
  169. package/dist/val/MatchFuncVal.js.map +1 -1
  170. package/dist/val/{FormFuncVal.d.ts → MaybeFuncVal.d.ts} +5 -5
  171. package/dist/val/MaybeFuncVal.js +50 -0
  172. package/dist/val/MaybeFuncVal.js.map +1 -0
  173. package/dist/val/MoveFuncVal.js +0 -18
  174. package/dist/val/MoveFuncVal.js.map +1 -1
  175. package/dist/val/NilVal.js +0 -60
  176. package/dist/val/NilVal.js.map +1 -1
  177. package/dist/val/NomFuncVal.js +18 -54
  178. package/dist/val/NomFuncVal.js.map +1 -1
  179. package/dist/val/NumberVal.js +0 -15
  180. package/dist/val/NumberVal.js.map +1 -1
  181. package/dist/val/OpBaseVal.d.ts +1 -0
  182. package/dist/val/OpBaseVal.js +3 -15
  183. package/dist/val/OpBaseVal.js.map +1 -1
  184. package/dist/val/PackFuncVal.js +0 -34
  185. package/dist/val/PackFuncVal.js.map +1 -1
  186. package/dist/val/PathFuncVal.js +0 -6
  187. package/dist/val/PathFuncVal.js.map +1 -1
  188. package/dist/val/PathVal.js +0 -41
  189. package/dist/val/PathVal.js.map +1 -1
  190. package/dist/val/PlaceVal.js +0 -25
  191. package/dist/val/PlaceVal.js.map +1 -1
  192. package/dist/val/PlusOpVal.d.ts +1 -7
  193. package/dist/val/PlusOpVal.js +13 -74
  194. package/dist/val/PlusOpVal.js.map +1 -1
  195. package/dist/val/PrefFuncVal.js +0 -1
  196. package/dist/val/PrefFuncVal.js.map +1 -1
  197. package/dist/val/PrefVal.js +0 -167
  198. package/dist/val/PrefVal.js.map +1 -1
  199. package/dist/val/RecurseVal.js +0 -55
  200. package/dist/val/RecurseVal.js.map +1 -1
  201. package/dist/val/RefVal.js +0 -282
  202. package/dist/val/RefVal.js.map +1 -1
  203. package/dist/val/ReferFuncVal.js +3 -232
  204. package/dist/val/ReferFuncVal.js.map +1 -1
  205. package/dist/val/ScalarKindVal.js +0 -49
  206. package/dist/val/ScalarKindVal.js.map +1 -1
  207. package/dist/val/ScalarVal.js +0 -11
  208. package/dist/val/ScalarVal.js.map +1 -1
  209. package/dist/val/StrFuncVal.js +0 -18
  210. package/dist/val/StrFuncVal.js.map +1 -1
  211. package/dist/val/SuperFuncVal.js +0 -32
  212. package/dist/val/SuperFuncVal.js.map +1 -1
  213. package/dist/val/TopVal.js +0 -1
  214. package/dist/val/TopVal.js.map +1 -1
  215. package/dist/val/TranslateFuncVal.js +1 -3
  216. package/dist/val/TranslateFuncVal.js.map +1 -1
  217. package/dist/val/UpperFuncVal.js +0 -11
  218. package/dist/val/UpperFuncVal.js.map +1 -1
  219. package/dist/val/Val.d.ts +1 -0
  220. package/dist/val/Val.js +2 -133
  221. package/dist/val/Val.js.map +1 -1
  222. package/dist/val/VarVal.js +0 -12
  223. package/dist/val/VarVal.js.map +1 -1
  224. package/dist/val/arith.js +0 -37
  225. package/dist/val/arith.js.map +1 -1
  226. package/dist/val/caserange.js +0 -61
  227. package/dist/val/caserange.js.map +1 -1
  228. package/dist/val/members.js +0 -6
  229. package/dist/val/members.js.map +1 -1
  230. package/dist/val/numcmp.js +0 -11
  231. package/dist/val/numcmp.js.map +1 -1
  232. package/dist/val/numkind.js +0 -145
  233. package/dist/val/numkind.js.map +1 -1
  234. package/dist/val/valutil.js +0 -16
  235. package/dist/val/valutil.js.map +1 -1
  236. package/dist/vet.js +0 -461
  237. package/dist/vet.js.map +1 -1
  238. package/dist/view.js +0 -414
  239. package/dist/view.js.map +1 -1
  240. package/dist/walk.js +0 -41
  241. package/dist/walk.js.map +1 -1
  242. package/grammar/aontu.abnf +8 -6
  243. package/grammar/aontu.gbnf +4 -4
  244. package/grammar/aontu.lark +4 -4
  245. package/grammar/aontu.tmLanguage.json +1 -1
  246. package/package.json +4 -2
  247. package/skill/tasks.md +9 -7
  248. package/src/agentsmd.ts +0 -35
  249. package/src/alias.ts +0 -39
  250. package/src/allow.ts +1 -96
  251. package/src/aontu.ts +4 -116
  252. package/src/aontumodel.ts +26 -0
  253. package/src/casing.ts +95 -0
  254. package/src/cli.ts +258 -1024
  255. package/src/ctx.ts +0 -103
  256. package/src/diff.ts +0 -40
  257. package/src/err.ts +0 -40
  258. package/src/escape.ts +0 -46
  259. package/src/exactjson.ts +0 -131
  260. package/src/format.ts +14 -257
  261. package/src/grammar.ts +72 -0
  262. package/src/graph.ts +0 -61
  263. package/src/hcanon.ts +0 -82
  264. package/src/helpdoc.ts +2 -2
  265. package/src/hints.ts +69 -57
  266. package/src/jsonschema.ts +0 -123
  267. package/src/keyorder.ts +0 -42
  268. package/src/lang.ts +19 -931
  269. package/src/lsp-server.ts +0 -16
  270. package/src/lsp.ts +12 -180
  271. package/src/mcp-server.ts +0 -31
  272. package/src/mcp.ts +0 -169
  273. package/src/mod-tool.ts +18 -159
  274. package/src/mod.ts +0 -178
  275. package/src/patch.ts +0 -232
  276. package/src/profile.ts +42 -0
  277. package/src/provenance.ts +0 -183
  278. package/src/query.ts +0 -84
  279. package/src/reach.ts +0 -53
  280. package/src/relation.ts +0 -84
  281. package/src/report-sarif.ts +0 -48
  282. package/src/sig.ts +0 -35
  283. package/src/sigdecl.ts +1 -1
  284. package/src/siggate.ts +0 -30
  285. package/src/site.ts +3 -29
  286. package/src/subsume.ts +1 -161
  287. package/src/template.ts +69 -140
  288. package/src/trace.ts +157 -0
  289. package/src/trim.ts +0 -53
  290. package/src/type.ts +2 -45
  291. package/src/unify.ts +14 -257
  292. package/src/utility.ts +0 -31
  293. package/src/val/AbnfFuncVal.ts +181 -0
  294. package/src/val/AbsentVal.ts +54 -0
  295. package/src/val/AggFuncVal.ts +152 -188
  296. package/src/val/ArithFuncVal.ts +0 -20
  297. package/src/val/BagVal.ts +1 -78
  298. package/src/val/BigDecimalVal.ts +0 -16
  299. package/src/val/BigIntegerVal.ts +0 -16
  300. package/src/val/CloseFuncVal.ts +0 -9
  301. package/src/val/CmpFuncVal.ts +68 -184
  302. package/src/val/ConjunctVal.ts +0 -33
  303. package/src/val/ConstraintVal.ts +2 -537
  304. package/src/val/ContainerKindVal.ts +0 -18
  305. package/src/val/CopyFuncVal.ts +0 -5
  306. package/src/val/Decimal.ts +1 -185
  307. package/src/val/DeprecateFuncVal.ts +0 -10
  308. package/src/val/DisjunctVal.ts +0 -157
  309. package/src/val/EachFuncVal.ts +0 -40
  310. package/src/val/EmitFuncVal.ts +8 -208
  311. package/src/val/ExpectVal.ts +0 -62
  312. package/src/val/FilterFuncVal.ts +0 -55
  313. package/src/val/FuncBaseVal.ts +9 -130
  314. package/src/val/GraphAtomVal.ts +0 -42
  315. package/src/val/HideFuncVal.ts +0 -15
  316. package/src/val/IntegerVal.ts +0 -61
  317. package/src/val/JunctionVal.ts +0 -20
  318. package/src/val/KeyFuncVal.ts +0 -48
  319. package/src/val/ListVal.ts +0 -59
  320. package/src/val/LowerFuncVal.ts +0 -12
  321. package/src/val/MapVal.ts +0 -151
  322. package/src/val/MatchFuncVal.ts +0 -59
  323. package/src/val/MaybeFuncVal.ts +86 -0
  324. package/src/val/MoveFuncVal.ts +0 -20
  325. package/src/val/NilVal.ts +0 -60
  326. package/src/val/NomFuncVal.ts +10 -99
  327. package/src/val/NumberVal.ts +0 -16
  328. package/src/val/OpBaseVal.ts +4 -17
  329. package/src/val/PackFuncVal.ts +0 -63
  330. package/src/val/PathFuncVal.ts +0 -32
  331. package/src/val/PathVal.ts +0 -66
  332. package/src/val/PlaceVal.ts +0 -45
  333. package/src/val/PlusOpVal.ts +18 -75
  334. package/src/val/PrefFuncVal.ts +0 -1
  335. package/src/val/PrefVal.ts +0 -179
  336. package/src/val/RecurseVal.ts +0 -81
  337. package/src/val/RefVal.ts +1 -285
  338. package/src/val/ReferFuncVal.ts +4 -255
  339. package/src/val/ScalarKindVal.ts +0 -50
  340. package/src/val/ScalarVal.ts +0 -12
  341. package/src/val/StrFuncVal.ts +0 -44
  342. package/src/val/SuperFuncVal.ts +0 -42
  343. package/src/val/TopVal.ts +0 -1
  344. package/src/val/TranslateFuncVal.ts +1 -51
  345. package/src/val/UpperFuncVal.ts +0 -12
  346. package/src/val/Val.ts +3 -192
  347. package/src/val/VarVal.ts +0 -15
  348. package/src/val/arith.ts +0 -92
  349. package/src/val/caserange.ts +0 -62
  350. package/src/val/members.ts +0 -23
  351. package/src/val/numcmp.ts +1 -27
  352. package/src/val/numkind.ts +0 -149
  353. package/src/val/valutil.ts +0 -16
  354. package/src/vet.ts +1 -582
  355. package/src/view.ts +0 -507
  356. package/src/walk.ts +0 -41
  357. package/dist/lower.d.ts +0 -23
  358. package/dist/lower.js +0 -578
  359. package/dist/lower.js.map +0 -1
  360. package/dist/render.d.ts +0 -53
  361. package/dist/render.js +0 -547
  362. package/dist/render.js.map +0 -1
  363. package/dist/std.d.ts +0 -3
  364. package/dist/std.js +0 -672
  365. package/dist/std.js.map +0 -1
  366. package/dist/val/FormFuncVal.js +0 -55
  367. package/dist/val/FormFuncVal.js.map +0 -1
  368. package/dist/val/NamerFuncVal.d.ts +0 -12
  369. package/dist/val/NamerFuncVal.js +0 -176
  370. package/dist/val/NamerFuncVal.js.map +0 -1
  371. package/src/lower.ts +0 -636
  372. package/src/render.ts +0 -732
  373. package/src/std.ts +0 -683
@@ -15,19 +15,9 @@ const BagVal_1 = require("./BagVal");
15
15
  const Val_1 = require("./Val");
16
16
  const keyorder_1 = require("../keyorder");
17
17
  const provenance_1 = require("../provenance");
18
- // Structural snapshots of ref spreads (see MapVal.unify), keyed by the
19
- // ref's canon + source site rather than object identity: spread
20
- // application clones templates (and the refs inside them) freely, and a
21
- // clone must find the snapshot its parse-origin ref captured on an early
22
- // pass. The map lives on the unify root ctx (see Unify), so it persists
23
- // across fixpoint passes and is GC'd with the run.
24
18
  function spreadSnapKey(cj) {
25
19
  return cj.spelling + '~' + cj.site.row + ':' + cj.site.col;
26
20
  }
27
- // Snapshot a path-dependent ref spread to its structural target once,
28
- // while inner key()/path() funcs in the target are still unresolved (see
29
- // the call site comments in MapVal.unify). Shared by the direct
30
- // application path and the deferred-spread early-snapshot walk.
31
21
  function snapshotRefSpread(cj, ctx) {
32
22
  let snapmap = ctx.snapmap;
33
23
  if (undefined === snapmap) {
@@ -46,12 +36,6 @@ function snapshotRefSpread(cj, ctx) {
46
36
  // so a type-wrapped ref behaves like a plain-map ref spread.
47
37
  if (tgt && tgt.isTypeFunc)
48
38
  tgt = tgt.peg?.[0];
49
- // A pending type()/hide() CALL is not yet a value to snapshot
50
- // (ADR-005, the same rule find's non-snap path defers on): cached
51
- // here it resolves at every destination and STAMPS marks the
52
- // clearing walk ran too early to clear -- a mutual recursive
53
- // schema's members vanished from generation this way. No cache;
54
- // retry once the wrapper has resolved at its own field.
55
39
  if (tgt && (0, RefVal_1.pendingMarkWrapper)(tgt)) {
56
40
  return undefined;
57
41
  }
@@ -85,12 +69,6 @@ class MapVal extends BagVal_1.BagVal {
85
69
  delete this.peg[type_1.SPREAD];
86
70
  if (spread) {
87
71
  if ('&' === spread.o) {
88
- // Multiple same-level spreads arrive as an array and conjoin;
89
- // an unequal spread arriving from ANOTHER statement meets this
90
- // one in unify's spread combination below — sound since the
91
- // combined template became stateless (pure ExpectVal, BUGS.md
92
- // §6-§7): each child meets the combined constraint
93
- // independently and children never meet each other's data.
94
72
  this.spread.cj =
95
73
  Array.isArray(spread.v) ?
96
74
  1 < spread.v.length ?
@@ -99,23 +77,7 @@ class MapVal extends BagVal_1.BagVal {
99
77
  spread.v;
100
78
  }
101
79
  }
102
- // console.log('MAPVAL-ctor', this.type, spec)
103
80
  }
104
- // NOTE: order of keys is not preserved!
105
- // not possible in any case - consider {a,b} unify {b,a}
106
- // ALIAS DECLARATIONS MUST SIT AT THE DOCUMENT ROOT. Stated on the
107
- // VALUE rather than at the parse, because the parse cannot see it: an
108
- // INCLUDED file's declarations are at the root of their own text, and
109
- // only once the loaded map is placed does it become apparent that
110
- // root is not the document's. `%name` is spelled as a reference from
111
- // the document root, so an included file's own `%b` would otherwise
112
- // reach the INCLUDER's `%b` -- cross-file capture, the hazard the
113
- // sigil exists to prevent, one level up.
114
- //
115
- // P1 is single-file by construction; carrying a name ACROSS files is
116
- // what `export` and the destructure are for (P2, not built), and this
117
- // refusal is what keeps the two from being confused meanwhile. Pathed
118
- // at the DECLARATION, which is what is wrong, not at the map.
119
81
  aliasDeclarationsAreRooted(ctx) {
120
82
  if (0 === this.aliasKeys.length || 0 === this.path.length) {
121
83
  return undefined;
@@ -130,15 +92,8 @@ class MapVal extends BagVal_1.BagVal {
130
92
  if (undefined !== arooted) {
131
93
  return arooted;
132
94
  }
133
- // console.log('MAPVAL-UNIFY', this.id, this.canon, peer.id, peer.canon)
134
95
  const TOP = (0, top_1.top)();
135
96
  peer = peer ?? TOP;
136
- // A sizing residual (`length`, `unique`) sorts AFTER containers in a
137
- // conjunct so that it counts the MERGED map rather than the first
138
- // fragment (SIZING_CJO in ConstraintVal.ts). That makes the map the
139
- // accumulator and the constraint its peer, the reverse of the usual
140
- // order — and the reading belongs to the constraint either way, so
141
- // hand it straight back.
142
97
  if (true === peer.isConstraint) {
143
98
  return peer.unify(this, ctx);
144
99
  }
@@ -152,10 +107,6 @@ class MapVal extends BagVal_1.BagVal {
152
107
  out.aliasKeys = [...this.aliasKeys];
153
108
  out.spread.cj = this.spread.cj;
154
109
  out.site = this.site;
155
- // A rel() peer DRIVES whichever side the fold hands it on: the
156
- // relation constraint rewrites this container leaf by leaf
157
- // (RELATIONS.0.md §3.2), exactly as a sizing residual takes the
158
- // driver's seat above.
159
110
  if (true === peer?.isRel) {
160
111
  return peer.unify(this, te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'REL') }) : ctx);
161
112
  }
@@ -176,51 +127,21 @@ class MapVal extends BagVal_1.BagVal {
176
127
  }
177
128
  }
178
129
  if (!exit) {
179
- // Combine two spread constraints. Identical templates (same canon)
180
- // collapse to one: re-unifying them resolves key()/path() at the
181
- // shared intermediate path, producing spurious values (f1bb1063).
182
- // Distinct templates are unified in place — unite is idempotent,
183
- // whereas deferring the distinct case into a fresh ConjunctVal (as
184
- // f1bb1063 did) re-wraps every fixpoint pass, growing the conjunct
185
- // without bound and non-terminating on real models (the apidef +
186
- // sdkgen entity schemas each contribute a `&:` spread with name:key(),
187
- // combined here). unite resolves key()/path() at each destination via
188
- // spreadClone below, so nested + sibling key() cases stay correct
189
- // (test/spec/spread-nested-key, spread-key-all).
190
- //
191
- // The combined template must stay STATELESS: this meet wraps a
192
- // key present in only one side as an ExpectVal, the combined
193
- // map is shared across destinations when path-independent
194
- // (spreadClone tier 1), and a stateful expect accumulated the
195
- // first sibling's data and met it into the next (BUGS.md
196
- // §6-§7). ExpectVal.unify is pure for exactly this reason.
197
130
  out.spread.cj = null == out.spread.cj ? peer.spread.cj : (null == peer.spread.cj ? out.spread.cj :
198
131
  out.spread.cj.canon === peer.spread.cj.canon ? out.spread.cj :
199
132
  (0, unify_1.unite)(te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'SPR') }) : ctx, out.spread.cj, peer.spread.cj, 'map-self'));
200
133
  }
201
134
  }
202
135
  else {
203
- // console.log('MAPVAL-PEER-OTHER', this.id, this.canon, this.done, peer.id, peer.canon, peer.done)
204
136
  }
205
137
  if (!exit) {
206
138
  out.dc = this.dc + 1;
207
- // let newtype = this.type || peer.type
208
139
  let spread_cj = out.spread.cj ?? TOP;
209
- // Snapshot a path-dependent *ref* spread to its structural target
210
- // once (while inner key()/path() funcs are still unresolved), so
211
- // later fixpoint passes don't re-resolve the ref against the mutated
212
- // tree and capture the target's own resolved key()/path() literals,
213
- // which would leak the source key into the spread destination.
214
140
  if (spread_cj.isRef && spread_cj.find) {
215
141
  const snap = snapshotRefSpread(spread_cj, ctx);
216
142
  if (snap)
217
143
  spread_cj = snap;
218
144
  }
219
- // A type() used as a spread applies as its inner template: emit the
220
- // (constrained) values at each destination rather than marking the
221
- // destination as a type. I.e. `&:type({k:key(),x:number})` behaves
222
- // like the non-type spread `&:{k:key(),x:number}` — key() resolves
223
- // to the destination key, kinds constrain, fields are emitted.
224
145
  if (spread_cj.isTypeFunc) {
225
146
  spread_cj = spread_cj.peg?.[0] ?? TOP;
226
147
  }
@@ -229,15 +150,6 @@ class MapVal extends BagVal_1.BagVal {
229
150
  const child = this.peg[key];
230
151
  const keyctx = ctx.descend(key);
231
152
  (0, utility_1.propagateMarks)(this, child);
232
- // Apply the spread constraint ONCE per child (marked with the
233
- // constraint's id below): the first application merges the
234
- // template into the child (with key()/path() placeholders that
235
- // resolve in place on later passes), so the constraint content
236
- // is inside the child from then on and only self-unification is
237
- // needed to progress it. Re-applying on every fixpoint pass and
238
- // every conjunct-fold step is the identity (unite is idempotent)
239
- // but costs O(keys) deep template clones per pass on large
240
- // models — the dominant cost on generated-SDK model trees.
241
153
  let oval;
242
154
  // No `undefined !== child` here: propagateMarks above already
243
155
  // dereferenced it, so a missing child would have thrown there.
@@ -260,11 +172,6 @@ class MapVal extends BagVal_1.BagVal {
260
172
  oval =
261
173
  child.isNil ? child :
262
174
  key_spread_cj.isNil ? key_spread_cj :
263
- // The no-op meet is SKIPPED on the normal path (it is the
264
- // identity) but TAKEN while recording: a value written once
265
- // and never met is still a contribution the author wants
266
- // pointed at, and the Go port's unite sees that meet (G7
267
- // phase 4). Instrumented runs pay knowingly.
268
175
  key_spread_cj.isTop && child.done && undefined === keyctx.prov
269
176
  ? child :
270
177
  child.isTop && key_spread_cj.done ? key_spread_cj :
@@ -290,24 +197,12 @@ class MapVal extends BagVal_1.BagVal {
290
197
  if (upeer.optionalKeys.includes(peerkey) && !out.optionalKeys.includes(peerkey)) {
291
198
  out.optionalKeys.push(peerkey);
292
199
  }
293
- // ... and so is an alias declaration, for the same reason:
294
- // two statements for one map are one map, and a name declared
295
- // in either is declared in the result.
296
200
  if (upeer.aliasKeys.includes(peerkey) && !out.aliasKeys.includes(peerkey)) {
297
201
  out.aliasKeys.push(peerkey);
298
202
  }
299
203
  let child = out.peg[peerkey];
300
204
  const peerctx = ctx.descend(peerkey);
301
205
  let oval = out.peg[peerkey] =
302
- // A peer-only key is CARRIED, not met — except on an
303
- // instrumented run, where the identity meet is taken so
304
- // the recorder sees where the value came from. The Go port
305
- // unites a genable peer-only child with TOP unconditionally
306
- // (go/mapval.go), and the difference was invisible until
307
- // G4's identity merge brought a peer whose children the
308
- // recorder counts as WRITTEN: `why $.b.k` on two positions
309
- // of one entity named the site in Go and answered "nothing
310
- // met here" in TypeScript.
311
206
  undefined === child
312
207
  ? (undefined !== peerctx.prov && peerchild.isGenable
313
208
  ? (0, unify_1.unite)(peerctx, peerchild, TOP, 'map-peer-only')
@@ -322,14 +217,6 @@ class MapVal extends BagVal_1.BagVal {
322
217
  // constraint's id), later passes only self-unify.
323
218
  if (oval._spr !== (0, Val_1.spreadId)(spread_cj)) {
324
219
  let key_spread_cj = spread_cj.spreadClone(peerctx);
325
- // A SPREAD IS A SPREAD FROM EITHER SIDE. The own-key loop
326
- // above marks its template so `why` can say the
327
- // contribution came from `&:` rather than from the key;
328
- // this arm did not, so the SAME document reported the
329
- // role or dropped it depending on whether the template
330
- // and the keys were written in one statement or two --
331
- // `services: &: {..}` plus `services: {web:{}}` took the
332
- // peer path and lost `(spread)` (use-cases/BUGS.md §55).
333
220
  if (undefined !== peerctx.prov) {
334
221
  (0, provenance_1.markSpread)(key_spread_cj);
335
222
  }
@@ -365,30 +252,9 @@ class MapVal extends BagVal_1.BagVal {
365
252
  (0, utility_1.propagateMarks)(this, out);
366
253
  }
367
254
  }
368
- // console.log(
369
- // 'MAPVAL-OUT', out.canon,
370
- // '\n SELF', this,
371
- // '\n PEER', peer,
372
- // '\n OUT', out,
373
- // '\n FROM', (out as any).spread.cj
374
- // )
375
255
  ctx.explain && (0, utility_1.explainClose)(te, out);
376
256
  return out;
377
257
  }
378
- // Spread clone: return a Val usable as the per-key spread constraint.
379
- //
380
- // Three tiers:
381
- // 1. tree is path-independent (no RefVal/KeyFuncVal/PathFuncVal/
382
- // MoveFuncVal/SuperFuncVal anywhere below): return `this` directly.
383
- // Nothing in the unify path mutates the spread root, and no
384
- // child depends on its own stored .path, so sharing is safe.
385
- // 2. top-level children are all ScalarKindVal: shallow clone
386
- // (share children, fresh MapVal wrapper).
387
- // 3. otherwise: full deep clone via `this.clone(ctx)`.
388
- //
389
- // Tier 1 handles the foo-sdk common case of simple type-constraint
390
- // spreads like `&:{active: *true | boolean, version: *'0.0.1' | string}`,
391
- // which are cloned thousands of times per run.
392
258
  spreadClone(ctx) {
393
259
  if (!this.isPathDependent)
394
260
  return this;
@@ -426,7 +292,6 @@ class MapVal extends BagVal_1.BagVal {
426
292
  for (let entry of Object.entries(this.peg)) {
427
293
  out.peg[entry[0]] =
428
294
  entry[1]?.isVal ?
429
- // (entry[1] as Val).clone(ctx, spec?.mark ? { mark: spec.mark } : {}) :
430
295
  entry[1].clone(ctx, {
431
296
  mark: spec?.mark ?? {},
432
297
  path: [...out.path, entry[0]],
@@ -443,20 +308,9 @@ class MapVal extends BagVal_1.BagVal {
443
308
  out.closed = this.closed;
444
309
  out.optionalKeys = [...this.optionalKeys];
445
310
  out.aliasKeys = [...this.aliasKeys];
446
- // out.from = this.from
447
- // console.log('MAPVAL-CLONE', this.canon, '->', out.canon)
448
311
  return out;
449
312
  }
450
313
  get canon() {
451
- // Keys are emitted in CODE POINT order so the canonical form is
452
- // independent of insertion/unification order and matches the Go
453
- // port. A bare .sort() is UTF-16 code-unit order, which puts an
454
- // astral key ahead of everything in U+E000-U+FFFF -- see cmpCodePoint.
455
- // An alias declaration is not part of the document, so canon does
456
- // not render it: a document with aliases and the document with
457
- // every alias written out longhand must produce the same text and
458
- // therefore the same `aon1-` hash. That is the sharpest statement
459
- // of what an alias IS -- a name for a value, and nothing more.
460
314
  let keys = Object.keys(this.peg)
461
315
  .filter(k => !this.aliasKeys.includes(k))
462
316
  .sort(keyorder_1.cmpCodePoint);
@@ -472,11 +326,6 @@ class MapVal extends BagVal_1.BagVal {
472
326
  JSON.stringify(k) +
473
327
  (this.optionalKeys.includes(k) ? '?' : '') +
474
328
  ':' +
475
- // canonRiders, not .canon: a deprecated field renders
476
- // back as its `deprecate(x, m)` call, reparseably (G3). The
477
- // guard is the isVal FLAG, never the canon getter: computing
478
- // canon in the guard and again in the render doubles the
479
- // recursion per level, which is 2^depth on a nested document.
480
329
  (true === this.peg[k]?.isVal
481
330
  ? (0, utility_1.canonRiders)(this.peg[k]) : this.peg[k])
482
331
  ])
@@ -1 +1 @@
1
- {"version":3,"file":"MapVal.js","sourceRoot":"","sources":["../../src/val/MapVal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MapVal.js","sourceRoot":"","sources":["../../src/val/MapVal.ts"],"names":[],"mappings":"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"}
@@ -7,22 +7,6 @@ const err_1 = require("../err");
7
7
  const top_1 = require("./top");
8
8
  const PrefVal_1 = require("./PrefVal");
9
9
  const FuncBaseVal_1 = require("./FuncBaseVal");
10
- // THE DEFAULTED-SCRUTINEE RULE (ADR-004, use-cases/BUGS.md §5). The
11
- // generation-effective view of a settled scrutinee: a preference — or
12
- // a disjunction carrying one — means "this value unless something
13
- // overrides it", and by resolve time the model has SETTLED (staging
14
- // rule), so nothing will. The value generation is about to emit is
15
- // therefore the value the patterns must be tested against. Testing
16
- // against the still-open preference instead let a pattern SELECT an
17
- // arm by overriding the default: `side_effect:*readonly|write|
18
- // destructive` beside `match(.side_effect, destructive, true, false)`
19
- // answered `true` while generating "readonly" next to it — a derived
20
- // value contradicting the very value it derives from, exit 0.
21
- // A pref-free scrutinee (open disjunction included) is untouched:
22
- // matching by unifiability is its documented meaning.
23
- // Exported for the multi-pref unit test (ADR-002, the subsumeNode
24
- // precedent): rankPrefs leaves a settled disjunct at most one pref, so
25
- // the min-rank scan below cannot be reached through a document.
26
10
  function effectiveScrutinee(v) {
27
11
  let out = v;
28
12
  if (true === out?.isDisjunct && Array.isArray(out.peg)) {
@@ -30,10 +14,6 @@ function effectiveScrutinee(v) {
30
14
  if (0 === prefs.length) {
31
15
  return v;
32
16
  }
33
- // Generation picks the LOWEST rank (effectiveDefault in
34
- // subsume.ts; `a:**1|*2` generates 2). rankPrefs leaves at most
35
- // one pref standing in a settled disjunct, so the scan is
36
- // defensive.
37
17
  out = prefs.reduce((a, b) => b.rank < a.rank ? b : a);
38
18
  }
39
19
  return (0, PrefVal_1.prefInnerPeg)(out);
@@ -42,9 +22,6 @@ class MatchFuncVal extends FuncBaseVal_1.FuncBaseVal {
42
22
  constructor(spec, ctx) {
43
23
  super(spec, ctx);
44
24
  this.isMatchFunc = true;
45
- // THE STAGING RULE (G8 phase 0). A scrutinee that is still being
46
- // narrowed can match an EARLIER pattern than the one it will end up
47
- // matching, and the arm a match takes is not a thing to guess at.
48
25
  this.staged = true;
49
26
  }
50
27
  funcname() {
@@ -53,10 +30,6 @@ class MatchFuncVal extends FuncBaseVal_1.FuncBaseVal {
53
30
  prepare(_ctx, _args) {
54
31
  return null;
55
32
  }
56
- // The scrutinee is argument 0 and the patterns are the odd
57
- // arguments; the results are the even ones after 0, and the last
58
- // argument is a DEFAULT when the count is even. Written once, read
59
- // by both the driver below and resolve.
60
33
  hasDefault() {
61
34
  return 0 === this.peg.length % 2;
62
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MatchFuncVal.js","sourceRoot":"","sources":["../../src/val/MatchFuncVal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MatchFuncVal.js","sourceRoot":"","sources":["../../src/val/MatchFuncVal.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,14 @@
1
1
  import type { Val, ValSpec } from '../type';
2
2
  import { AontuContext } from '../ctx';
3
- import { ListVal } from './ListVal';
4
3
  import { FuncBaseVal } from './FuncBaseVal';
5
- declare class FormFuncVal extends FuncBaseVal {
6
- isFormFunc: boolean;
4
+ declare class MaybeFuncVal extends FuncBaseVal {
5
+ isMaybeFunc: boolean;
6
+ forgives: boolean;
7
7
  staged: boolean;
8
8
  constructor(spec: ValSpec, ctx?: AontuContext);
9
9
  funcname(): string;
10
10
  prepare(_ctx: AontuContext, _args: Val[]): null;
11
11
  unify(peer: Val, ctx: AontuContext): Val;
12
- resolve(ctx: AontuContext, args: Val[]): ListVal | import("./NilVal").NilVal;
12
+ resolve(ctx: AontuContext, args: Val[]): any;
13
13
  }
14
- export { FormFuncVal, };
14
+ export { MaybeFuncVal, };
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ /* Copyright (c) 2026 Richard Rodger, MIT License */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.MaybeFuncVal = void 0;
5
+ const unify_1 = require("../unify");
6
+ const AbsentVal_1 = require("./AbsentVal");
7
+ const FuncBaseVal_1 = require("./FuncBaseVal");
8
+ const top_1 = require("./top");
9
+ class MaybeFuncVal extends FuncBaseVal_1.FuncBaseVal {
10
+ constructor(spec, ctx) {
11
+ super(spec, ctx);
12
+ this.isMaybeFunc = true;
13
+ this.forgives = true;
14
+ // A reference that has not resolved YET is not a reference to
15
+ // nothing (ADR-034).
16
+ this.staged = true;
17
+ }
18
+ funcname() {
19
+ return 'maybe';
20
+ }
21
+ // Null so the base drives nothing: it would drive on the CALLER's
22
+ // context, where NilVal.make records the miss before resolve runs.
23
+ prepare(_ctx, _args) {
24
+ return null;
25
+ }
26
+ unify(peer, ctx) {
27
+ if (!ctx.settle) {
28
+ return this.residuate(peer, ctx);
29
+ }
30
+ return super.unify(peer, ctx);
31
+ }
32
+ resolve(ctx, args) {
33
+ // Cloned rather than swapped and restored, which is the
34
+ // own-property hazard trialUnify documents at length.
35
+ const sink = [];
36
+ const actx = ctx.clone({ err: sink, collect: true });
37
+ const out = (0, unify_1.unite)(actx, args[0], (0, top_1.top)(), 'maybe');
38
+ // ONLY a missing referent. A conflict inside the argument stays
39
+ // the document's error.
40
+ if (out.isNil && 'reference' === out.class) {
41
+ return this.place(new AbsentVal_1.AbsentVal({}, ctx));
42
+ }
43
+ for (const err of sink) {
44
+ ctx.adderr(err);
45
+ }
46
+ return out;
47
+ }
48
+ } /* node:coverage ignore next 6 */
49
+ exports.MaybeFuncVal = MaybeFuncVal;
50
+ //# sourceMappingURL=MaybeFuncVal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MaybeFuncVal.js","sourceRoot":"","sources":["../../src/val/MaybeFuncVal.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAYpD,oCAAgC;AAChC,2CAAuC;AACvC,+CAA2C;AAG3C,+BAEc;AAGd,MAAM,YAAa,SAAQ,yBAAW;IASpC,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAZlB,gBAAW,GAAG,IAAI,CAAA;QAElB,aAAQ,GAAG,IAAI,CAAA;QAEf,8DAA8D;QAC9D,qBAAqB;QACrB,WAAM,GAAG,IAAI,CAAA;IAOb,CAAC;IAGD,QAAQ;QACN,OAAO,OAAO,CAAA;IAChB,CAAC;IAGD,kEAAkE;IAClE,mEAAmE;IACnE,OAAO,CAAC,IAAkB,EAAE,KAAY;QACtC,OAAO,IAAI,CAAA;IACb,CAAC;IAGD,KAAK,CAAC,IAAS,EAAE,GAAiB;QAChC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAClC,CAAC;QAED,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAC/B,CAAC;IAGD,OAAO,CAAC,GAAiB,EAAE,IAAW;QACpC,wDAAwD;QACxD,sDAAsD;QACtD,MAAM,IAAI,GAAU,EAAE,CAAA;QACtB,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;QACpD,MAAM,GAAG,GAAG,IAAA,aAAK,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAA,SAAG,GAAE,EAAE,OAAO,CAAC,CAAA;QAEhD,gEAAgE;QAChE,wBAAwB;QACxB,IAAI,GAAG,CAAC,KAAK,IAAI,WAAW,KAAM,GAAW,CAAC,KAAK,EAAE,CAAC;YACpD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,qBAAS,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAA;QAC3C,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,GAAG,CAAC,MAAM,CAAC,GAAU,CAAC,CAAA;QACxB,CAAC;QAED,OAAO,GAAG,CAAA;IACZ,CAAC;CAEF,CAAC,iCAAiC;QAIjC,YAAY"}
@@ -25,23 +25,6 @@ class MoveFuncVal extends FuncBaseVal_1.FuncBaseVal {
25
25
  const orig = out;
26
26
  if (!orig.isNil) {
27
27
  const src = orig.clone(ctx);
28
- // THE HIDE-WALK ONLY RUNS WHEN THE CLONE IS A SEPARATE OBJECT.
29
- //
30
- // move() is the only function that marks the ORIGINAL rather than
31
- // the clone -- that is how the value disappears from its old home
32
- // and reappears at the destination. It relies on clone() returning
33
- // something distinct to carry to the destination.
34
- //
35
- // TopVal.clone is the IDENTITY function, so for `move(top)` the
36
- // clone and the original are the same object and the walk hid the
37
- // very value being returned: the key vanished from generated output
38
- // with no error, while canon still showed `x:top` -- the port
39
- // disagreeing with itself.
40
- //
41
- // With the walk skipped, `move(top)` keeps `top` at the destination
42
- // and then errors there because top is not generable, which is
43
- // already what `x:top`, `x:copy(top)` and `x:pref(top)` do in both
44
- // ports, and what `move(number)` does for the same reason.
45
28
  if (src !== orig) {
46
29
  if (src.isRef) {
47
30
  src.mark._hide_found = true;
@@ -53,7 +36,6 @@ class MoveFuncVal extends FuncBaseVal_1.FuncBaseVal {
53
36
  }
54
37
  out = new PrefFuncVal_1.PrefFuncVal({ peg: [src] }, ctx);
55
38
  }
56
- // console.log('MOVE-resolve', orig, out)
57
39
  return out;
58
40
  }
59
41
  } /* node:coverage ignore next 6 */
@@ -1 +1 @@
1
- {"version":3,"file":"MoveFuncVal.js","sourceRoot":"","sources":["../../src/val/MoveFuncVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAYzD,gCAAmC;AAGnC,wCAEmB;AAInB,+CAA2C;AAC3C,+CAA2C;AAI3C,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;IAED,OAAO,CAAC,IAAkB,EAAE,KAAY;QACtC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,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,MAAM,IAAI,GAAG,GAAG,CAAA;QAEhB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAE3B,+DAA+D;YAC/D,EAAE;YACF,kEAAkE;YAClE,kEAAkE;YAClE,mEAAmE;YACnE,kDAAkD;YAClD,EAAE;YACF,gEAAgE;YAChE,kEAAkE;YAClE,oEAAoE;YACpE,8DAA8D;YAC9D,2BAA2B;YAC3B,EAAE;YACF,oEAAoE;YACpE,+DAA+D;YAC/D,mEAAmE;YACnE,2DAA2D;YAC3D,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBACjB,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;oBACd,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;gBAC7B,CAAC;gBAED,IAAA,cAAI,EAAC,IAAI,EAAE,CAAC,IAAiC,EAAE,GAAQ,EAAE,EAAE;oBACzD,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;oBACpB,OAAO,GAAG,CAAA;gBACZ,CAAC,CAAC,CAAA;YACJ,CAAC;YAED,GAAG,GAAG,IAAI,yBAAW,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;QAC5C,CAAC;QAED,yCAAyC;QAEzC,OAAO,GAAG,CAAA;IACZ,CAAC;CACF,CAAC,iCAAiC;QAIjC,WAAW"}
1
+ {"version":3,"file":"MoveFuncVal.js","sourceRoot":"","sources":["../../src/val/MoveFuncVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAYzD,gCAAmC;AAGnC,wCAEmB;AAGnB,+CAA2C;AAC3C,+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;IAED,OAAO,CAAC,IAAkB,EAAE,KAAY;QACtC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,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,MAAM,IAAI,GAAG,GAAG,CAAA;QAEhB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAE3B,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBACjB,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;oBACd,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;gBAC7B,CAAC;gBAED,IAAA,cAAI,EAAC,IAAI,EAAE,CAAC,IAAiC,EAAE,GAAQ,EAAE,EAAE;oBACzD,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;oBACpB,OAAO,GAAG,CAAA;gBACZ,CAAC,CAAC,CAAA;YACJ,CAAC;YAED,GAAG,GAAG,IAAI,yBAAW,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;QAC5C,CAAC;QAGD,OAAO,GAAG,CAAA;IACZ,CAAC;CACF,CAAC,iCAAiC;QAIjC,WAAW"}
@@ -30,15 +30,11 @@ class NilVal extends Val_1.Val {
30
30
  clone(ctx, spec) {
31
31
  let out = super.clone(ctx, spec);
32
32
  out.why = this.why;
33
- // Should these clone?
34
- // out.primary = this.primary?.clone()
35
- // out.secondary = this.secondary?.clone()
36
33
  out.primary = this.primary;
37
34
  out.secondary = this.secondary;
38
35
  out.msg = this.msg;
39
36
  return out;
40
37
  }
41
- // TODO: custom canon? useful for unknown function errors
42
38
  get canon() {
43
39
  return 'nil';
44
40
  }
@@ -69,7 +65,6 @@ class NilVal extends Val_1.Val {
69
65
  }
70
66
  }
71
67
  exports.NilVal = NilVal;
72
- // TODO: include Val generating nil, thus capture type
73
68
  // A Nil is an error - should not happen - unify failed
74
69
  // refactor ,make(spec,ctx)
75
70
  NilVal.make = (ctx, why, av, bv, attempt, details) => {
@@ -97,52 +92,6 @@ NilVal.make = (ctx, why, av, bv, attempt, details) => {
97
92
  }
98
93
  }
99
94
  }
100
- // THE PATH IS WHERE THE MEET IS, NOT WHERE THE OPERAND WAS WRITTEN
101
- // (use-cases/BUGS.md §41). The operand path above decides the SITE
102
- // correctly and the path only by accident: a value that arrives by
103
- // REFERENCE is re-pathed to the referring field, and its children
104
- // are re-pathed to that same field rather than rebased under it, so
105
- // every conflict inside `q: $.M` reported `$.q` — the enclosing
106
- // record, not the key to edit, and the SAME path for every one of
107
- // its fields. The context has descended to the child by the time
108
- // the meet fails, and Go reads the path off the tree position for
109
- // exactly this reason.
110
- //
111
- // Only EXTENDS, never redirects: the context path is taken when the
112
- // operand's path is a PREFIX of it, so a nil minted away from the
113
- // descent (a func resolving an argument, a generator's own probe,
114
- // an anchored `--at` run whose operand is already correctly placed)
115
- // keeps the path its operand carries. Taking the context path
116
- // unconditionally was tried and reverted -- it moved the closed-key,
117
- // spread-template and every `--at` finding to the driving location,
118
- // which is not where those belong.
119
- // A MEET OF TWO OPERANDS HAPPENS AT THE SLOT, always. A value that
120
- // arrives by REFERENCE carries a path re-based onto the referring
121
- // field -- `$.p.Port.direction` for a `p: $.lib.Port` whose
122
- // `direction` conflicts -- and the two ports corrupt it DIFFERENTLY
123
- // (Go's fallback is the slot plus the schema's own tail), so neither
124
- // operand path is trustworthy once a reference is in play. The
125
- // prefix test below cannot tell the corrupt case from a legitimately
126
- // deeper one, because Go's corrupt path EXTENDS the right answer.
127
- // The slot is the one thing both ports know exactly, so a real meet
128
- // takes it.
129
- //
130
- // A SINGLE-OPERAND nil is left alone: a residue, a closed key, a
131
- // generation failure and an `--at` finding are not meets, they are
132
- // facts about one value, and taking the driving location for those
133
- // is what the unconditional version got wrong. The ONE exception is
134
- // an operand that was MINTED -- a preference's yardstick, an
135
- // arithmetic or concat result -- which carries no path at all, so a
136
- // conflict at `$.a` reported `$`, the whole document rather than the
137
- // key to edit.
138
- //
139
- // This used to ask whether the operand's path was a PREFIX of the
140
- // slot, and extend it when so. Once a meet takes the slot outright
141
- // the question is vacuous: every nil still reaching here carries
142
- // either no path or one at least as long as the slot, so the prefix
143
- // walk never ran a single comparison across the whole suite. ADR-002
144
- // closes unreachable code by deleting it rather than by covering it,
145
- // and the emptiness test below is what the walk actually decided.
146
95
  if (null != ctx?.path && 0 < ctx.path.length &&
147
96
  (null != bv || null == nil.path || 0 === nil.path.length)) {
148
97
  nil.path = [...ctx.path];
@@ -152,15 +101,6 @@ NilVal.make = (ctx, why, av, bv, attempt, details) => {
152
101
  }
153
102
  return nil;
154
103
  };
155
- // Shared sentinel for transient "this unification branch failed"
156
- // markers. Used by DisjunctVal.unify to flag failed member trials
157
- // (and to dedup results) without allocating a fresh NilVal per
158
- // failure. The sentinel is filtered out before the disjunct result
159
- // is constructed, so its .why / .site / .primary fields are never
160
- // inspected by user-visible code.
161
- //
162
- // Do NOT use this sentinel for errors that may surface: those need
163
- // real NilVals with proper site/path info for descErr formatting.
164
104
  const TRIAL_NIL = new NilVal({ why: '|:trial-nil' }); /* node:coverage ignore next 7 */
165
105
  exports.TRIAL_NIL = TRIAL_NIL;
166
106
  //# sourceMappingURL=NilVal.js.map