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
package/dist/patch.js CHANGED
@@ -9,59 +9,6 @@ exports.spanHolds = spanHolds;
9
9
  exports.verifiedSite = verifiedSite;
10
10
  exports.spanValue = spanValue;
11
11
  exports.patch = patch;
12
- // OVERLAY PATCH (G7 phase 5,
13
- // docs/capability-review/g7-machine-access.md): change a document by
14
- // APPENDING to an overlay, not by rewriting the file.
15
- //
16
- // This is the stage that needs no rewriter. An overlay entry is just
17
- // another conjunct, and unification is order-independent, so appending
18
- // `services: auth: owner: "identity-2"` to a second file and
19
- // evaluating both is exactly the same value as writing it into the
20
- // first — with no parsing of the target, no comment or layout damage,
21
- // and nothing to preserve. The spec pins that equivalence rather than
22
- // asserting it.
23
- //
24
- // What an overlay CANNOT do is change a PINNED value: the lattice
25
- // refuses 5 against 3, and the report says so with the pinning site,
26
- // which `why` then locates. That left the loop "set → conflict → why →
27
- // edit the pinning site" with its last step manual — and since the
28
- // commonest vet failure of all is "the data pins the wrong value",
29
- // `set` was unable to repair the very case it existed for.
30
- //
31
- // IN-PLACE REPLACE (`--in-place`) closes that. The G7 design deferred
32
- // it behind two prerequisites: an evaluated-path → contributing-span
33
- // map, and a comment-and-layout-preserving CST. The first now exists —
34
- // `why` is that map, and sites carry `len` and `src` since a site was
35
- // given an extent. The second turns out NOT to be needed for the case
36
- // that matters, and the reason is worth stating: a CST is what you need
37
- // to RE-SERIALISE a document, and a targeted span splice serialises
38
- // nothing. It replaces `len` code units at one offset and leaves every
39
- // other byte — every comment, every blank line, every alignment space —
40
- // exactly as the author left it, because it never looks at them.
41
- //
42
- // What makes the splice safe rather than merely plausible is that the
43
- // site carries `src`, the text it claims to cover. The span is VERIFIED
44
- // against it before a byte is written, so the corrupting arithmetic
45
- // this repository has already shipped once — `port: 0x1F` reporting
46
- // canon `"31"` at column 7, and `(col, canon.length)` writing
47
- // `port: 5x1F` — cannot be reached: `0x1F` is four code units and says
48
- // so, and if the text at the span is anything else the edit is refused
49
- // rather than guessed.
50
- //
51
- // Replace is never WORSE than append. Where the value is not a single
52
- // editable literal in this overlay — a spread template governing other
53
- // keys, a reference whose site is the `$` and not the target, two
54
- // statements pinning the same path, a literal in an included file — the
55
- // splice is refused and the assignment is APPENDED exactly as it would
56
- // have been without the flag, plus one `warning` finding naming the
57
- // case and the site it came from. Warnings never move a verdict, so
58
- // `--in-place` cannot turn a run that would have succeeded into one
59
- // that fails; it can only rewrite where rewriting is safe, and explain
60
- // itself where it is not.
61
- //
62
- // The verdict is G2's, unchanged: `vet(entry, overlay)` already asks
63
- // exactly the right question — does this document hold against that
64
- // truth, and if not, where — so `set` adds a writer, not a report.
65
12
  const vet_1 = require("./vet");
66
13
  const query_1 = require("./query");
67
14
  const aontu_1 = require("./aontu");
@@ -80,21 +27,10 @@ function parseAssignment(text) {
80
27
  }
81
28
  return { path, value };
82
29
  }
83
- // The path-flattened conjunct one assignment becomes:
84
- // `$.a.b = 1` is `"a": "b": 1`. Keys are QUOTED — a segment may be a
85
- // word the grammar spells otherwise (`if`), a number, or a name with
86
- // a space in it, and quoting one key is the same value as writing it
87
- // bare.
88
30
  function overlayLine(path, value) {
89
31
  return (0, query_1.pathParts)(path).map((p) => JSON.stringify(p)).join(': ') +
90
32
  ': ' + value;
91
33
  }
92
- // The character offset of a 1-based (row, col) in `src`, or -1 when the
93
- // text has no such position. Columns are UTF-16 code units, which is
94
- // what a site carries and what a JavaScript string index already is —
95
- // so this is the inverse of the site arithmetic, not a reinterpretation
96
- // of it (go/patch.go converts to a byte offset, because Go strings are
97
- // bytes; both address the same character).
98
34
  function offsetAt(src, row, col) {
99
35
  if (row < 1 || col < 1) {
100
36
  return -1;
@@ -116,87 +52,18 @@ function spanAt(src, site) {
116
52
  const off = offsetAt(src, site.row, site.col);
117
53
  return off < 0 ? undefined : src.slice(off, off + site.len);
118
54
  }
119
- // DOES THE TEXT AT THIS SITE SAY WHAT THE SITE CLAIMS IT SAYS?
120
- //
121
- // The last check before a splice, and the one that makes the write
122
- // PROVABLE rather than argued. Exported so it can be exercised with a
123
- // site the engine would never produce — an out-of-range position, a
124
- // span over different text — which is the only way to test a guard whose
125
- // whole purpose is to catch a state the rest of the code says cannot
126
- // happen. (go/patch.go has the twin, tested the same way.)
127
55
  function spanHolds(src, site, expect) {
128
- // THE SITE'S OWN LENGTH IS PART OF ITS CLAIM, and is checked before
129
- // the text is. A site whose `len` disagrees with the text it says it
130
- // covers CONTRADICTS ITSELF, which is exactly the state this guard
131
- // exists to catch — and a zero-length span would otherwise compare
132
- // equal against nothing and then splice nothing, INSERTING the new
133
- // value rather than replacing anything.
134
- //
135
- // Both ports compare in UTF-16 code units, which is what a site's
136
- // `len` counts. That is free here and is not in Go, where a string is
137
- // bytes (go/patch.go converts).
138
56
  if ('' === expect || site.len !== expect.length) {
139
57
  return false;
140
58
  }
141
59
  return spanAt(src, site) === expect;
142
60
  }
143
- // WHY IS THE VALUE AT THIS PATH WHAT IT IS, and is exactly one of the
144
- // answers a literal this overlay can edit in place?
145
- //
146
- // The four refusals below are not defensive padding; each is a real
147
- // document shape that the probe corpus produced, and each would corrupt
148
- // something different if the splice ran anyway:
149
- //
150
- // - a SPREAD contribution's site is inside the template, which
151
- // governs every other key too, so rewriting it there changes keys
152
- // the author did not name;
153
- // - a REFERENCE's site is the `$` that starts the path and has length
154
- // 1, so splicing over it writes the new value INTO the path
155
- // expression (`$.base` becomes `5.base`) — and the value the author
156
- // wants changed lives at the target anyway;
157
- // - TWO literals at one path (a duplicate key, two files merged) give
158
- // no single place to edit, and picking either silently is picking
159
- // for the author;
160
- // - a literal in an INCLUDED file is editable, but not by
161
- // `--overlay <this file>`: the write would land in a document the
162
- // caller did not name.
163
- //
164
- // A PREFERENCE is not refused here for the same reason it is not
165
- // replaced: appending already overrides a default correctly, so the
166
- // caller loses nothing by falling through to it.
167
61
  function editableLiteral(overlaySrc, path, overlayPath) {
168
- // THE AUTHORITY IS THE OVERLAY TEXT ALONE, WITH INCLUDES DENIED.
169
- //
170
- // The splice happens in the text this function was handed, so what it
171
- // has to establish is that the contribution is IN that text — and the
172
- // site's `file` cannot establish it. Two ways it fails: a caller of
173
- // the library API need not pass `overlayPath`, leaving nothing to
174
- // compare against; and the Go port names the ENTRY document for an
175
- // included value anyway (issue #66), so the comparison is the overlay
176
- // against itself. Either way an included literal's (row, col, len,
177
- // src) can COINCIDE with different text at the same coordinates here
178
- // — an include holding `a: 42` at 1:4 and an overlay holding `x: 42`
179
- // at 1:4 — and the span verification cannot tell them apart, because
180
- // the text really does match. The splice then rewrites `x` while
181
- // reporting a replacement of `$.a`, in both ports.
182
- //
183
- // Denying includes removes the ambiguity at its source rather than
184
- // detecting it: what resolves is what this text says by itself. An
185
- // overlay that loads other documents therefore cannot be edited in
186
- // place at all — the conservative answer, and the assignment still
187
- // appends. It costs nothing in the shape `set` is for, an overlay it
188
- // owns and appends to, and it does not depend on file attribution, so
189
- // both ports agree without waiting on #66.
190
62
  const alone = (0, query_1.why)(overlaySrc, path, {
191
63
  trust: { include: 'none' },
192
64
  ...(null == overlayPath ? {} : { path: overlayPath }),
193
65
  });
194
66
  if (true !== alone.ok || null == alone.record) {
195
- // Nothing here BY ITSELF. Two very different reasons, and they earn
196
- // different answers: the path may simply not be in this overlay, in
197
- // which case appending is the whole of the answer and nothing has
198
- // gone wrong — or it may be here only because something was loaded,
199
- // which is the case above and has to say so.
200
67
  const withLoads = (0, query_1.why)(overlaySrc, path, null == overlayPath ? undefined : { path: overlayPath });
201
68
  if (true !== withLoads.ok || null == withLoads.record) {
202
69
  return { site: undefined, finding: undefined };
@@ -214,14 +81,6 @@ function editableLiteral(overlaySrc, path, overlayPath) {
214
81
  // would claim a possibility the type does not have — and the
215
82
  // coverage gate says so, an arm nothing can take.
216
83
  const conjuncts = record.conjuncts;
217
- // A VALUE REACHED THROUGH A REFERENCE IS NOT THIS PATH'S TO EDIT.
218
- // Provenance travels through clones now, so `n: $.base` against
219
- // `base: 7` reports the literal `7` -- correctly, and at the site
220
- // where it was written, which is `base`'s line and not `n`'s. A
221
- // splice there would rewrite the REFERENT: every other reader of
222
- // `$.base` changes with it, and the path the caller named does not
223
- // move at all. The reference is what stands here, so the reference
224
- // is what has to be edited, wherever it points.
225
84
  const refs = conjuncts.filter((c) => 'ref' === c.role);
226
85
  if (0 < refs.length) {
227
86
  return {
@@ -255,17 +114,6 @@ function editableLiteral(overlaySrc, path, overlayPath) {
255
114
  }
256
115
  return verifiedSite(overlaySrc, path, literals[0]);
257
116
  }
258
- // THE SPAN MUST CHECK OUT before anything splices. The refusal arm is
259
- // unreachable through `patch` since ADR-018: the pipe (`x: hello |>
260
- // upper`) was the one spelling that synthesised a contribution the
261
- // parser never sited, and denying includes means every WRITTEN
262
- // contribution's coordinates describe this text by construction. The
263
- // verification is kept rather than deleted — splicing without it would
264
- // corrupt the file (a contribution with no `src` would splice ZERO
265
- // characters, INSERTING the new value into the middle of a line) — and
266
- // this last step is its own exported seam so the refusal can be tested
267
- // directly, against conjuncts the engine would never produce, on the
268
- // same footing as `spanHolds` itself.
269
117
  function verifiedSite(overlaySrc, path, one) {
270
118
  if (!spanHolds(overlaySrc, one.site, one.src)) {
271
119
  const finding = notEditable('patch_span_mismatch', path, 'the overlay does not hold ' + JSON.stringify(one.src) + ' at ' +
@@ -276,29 +124,6 @@ function verifiedSite(overlaySrc, path, one) {
276
124
  finding.class = 'internal';
277
125
  return { site: undefined, finding };
278
126
  }
279
- // DOES THE SPAN MEAN THE WHOLE CONTRIBUTION?
280
- //
281
- // This is the check that `role === 'literal'` looks like it makes and
282
- // does not. A site names the TOKEN it points at, so a COMPOUND value
283
- // reports its OPENING token while its canon is the whole thing:
284
- // `min(1)` is a literal-role contribution whose src is `min`, `1+2`
285
- // reports `1`, `$.k+1` reports `$`, `{b:1}` reports `{` and `[1,2]`
286
- // reports `[`. Splicing over any of those writes the new value INTO
287
- // the expression — `a: 5(1)`, `a: 5+2`, `a: 5.k+1` — which is the
288
- // same class of corruption as the canon-length arithmetic, reached by
289
- // a different route.
290
- //
291
- // Rather than enumerate the shapes (a list is a thing to be
292
- // incomplete about), ASK THE ENGINE: parse `src` on its own and
293
- // require the value it means to be the value the contribution
294
- // contributed. That is exactly the property a splice needs — this
295
- // text, alone, is this value — and it is decided by the same unifier
296
- // that produced the contribution, so it cannot drift from it.
297
- //
298
- // It also gets the interesting case right without special-casing it:
299
- // `0x1F` canons to `31`, which is not its own spelling, but IS the
300
- // contribution's canon, so a hex literal is editable while `min` is
301
- // not.
302
127
  const span = spanValue(one.src);
303
128
  if (null == span || span.canon !== one.canon) {
304
129
  return {
@@ -309,11 +134,6 @@ function verifiedSite(overlaySrc, path, one) {
309
134
  'value', [one]),
310
135
  };
311
136
  }
312
- // AN ABSTRACT CONTRIBUTION IS NOT A PIN. `a: integer` and
313
- // `a: above(0)` state a constraint, and appending already narrows
314
- // them — that is the one case the status report notes `set` could
315
- // always repair. Replacing them would silently DISCARD a constraint
316
- // the author wrote, to no benefit, so this falls through to append.
317
137
  if (true !== span.concrete) {
318
138
  return {
319
139
  site: undefined,
@@ -333,20 +153,7 @@ function verifiedSite(overlaySrc, path, one) {
333
153
  finding: undefined,
334
154
  };
335
155
  }
336
- // What does this source text mean ON ITS OWN, and is it a value rather
337
- // than a constraint? Undefined when it does not stand alone at all
338
- // (`$` from a path, an unbalanced `{`).
339
- //
340
- // The wrapper key is arbitrary and the document it makes is thrown
341
- // away; what is wanted is the unifier's own reading of the fragment.
342
156
  function spanValue(src) {
343
- // NO COLLECTING CONTEXT: `unify` THROWS on a source it cannot read,
344
- // so a ctx.err check here is a branch nothing can reach — the catch
345
- // below is the only path a bad fragment takes. (A first draft had
346
- // both, and the coverage gate called the pair what it was.) What the
347
- // nil test still earns is the fragment that PARSES and means nothing:
348
- // `$` is a path with no target, and answers a nil rather than
349
- // throwing.
350
157
  let canon;
351
158
  try {
352
159
  const root = new aontu_1.Aontu().unify('v: ' + src);
@@ -370,11 +177,6 @@ function spanValue(src) {
370
177
  }
371
178
  return { canon, concrete: true };
372
179
  }
373
- // A refusal to replace, as a WARNING: the assignment still appends, so
374
- // nothing about the run got worse and the verdict must not move
375
- // (ts/src/vet.ts, "warnings never touch the verdict"). What the finding
376
- // adds is the reason, which is the whole value of asking for --in-place
377
- // over plain set.
378
180
  function notEditable(code, path, why, from) {
379
181
  return {
380
182
  code,
@@ -397,12 +199,6 @@ function notEditable(code, path, why, from) {
397
199
  })),
398
200
  };
399
201
  }
400
- // Append the assignments to the overlay and answer what the result
401
- // holds. The report's verdict is the vet verdict of the ENTRY against
402
- // the new overlay: `valid` when it holds and is concrete, `incomplete`
403
- // when nothing contradicts but the truth is not yet satisfied,
404
- // `invalid` when the overlay contradicts a pinned value, `error` when
405
- // the entry itself does not stand up.
406
202
  function patch(entrySrc, overlaySrc, assignments, opts) {
407
203
  const options = opts ?? {};
408
204
  const appended = [];
@@ -436,9 +232,6 @@ function patch(entrySrc, overlaySrc, assignments, opts) {
436
232
  notes.push(found.finding);
437
233
  }
438
234
  if (null != found.site) {
439
- // Two assignments naming the same path would splice the same
440
- // span twice. The second is the one the author wrote last, so
441
- // it wins — and the first is dropped rather than layered.
442
235
  const at = offsetAt(overlaySrc, found.site.row, found.site.col);
443
236
  const dup = edits.findIndex((e) => e.at === at);
444
237
  const edit = { at, len: found.site.from.length, to: a.value };
@@ -456,10 +249,6 @@ function patch(entrySrc, overlaySrc, assignments, opts) {
456
249
  appended.push(overlayLine(a.path, a.value));
457
250
  }
458
251
  const overlay = joinOverlay(applyEdits(overlaySrc, edits), appended);
459
- // The file names ride as URLs as well as base paths, so a finding
460
- // names the entry and the overlay rather than vet's generic
461
- // `schema`/`data` labels — with two documents that both belong to
462
- // the caller, "which file" is the whole question.
463
252
  const report = (0, vet_1.vet)(entrySrc, overlay, {
464
253
  trust: options.trust,
465
254
  textExt: options.textExt,
@@ -479,8 +268,6 @@ function patch(entrySrc, overlaySrc, assignments, opts) {
479
268
  findings: notes.concat(report.findings),
480
269
  };
481
270
  }
482
- // Apply the collected splices back to front, so an earlier edit's
483
- // offset is never invalidated by a later one having already run.
484
271
  function applyEdits(src, edits) {
485
272
  if (0 === edits.length) {
486
273
  return src;
@@ -491,10 +278,6 @@ function applyEdits(src, edits) {
491
278
  }
492
279
  return out;
493
280
  }
494
- // One line per assignment, after whatever the overlay already said. A
495
- // trailing newline is kept when the file had one and added when it
496
- // did not: a file that does not end in a newline is still a file, and
497
- // appending to it must not join two entries into one line.
498
281
  function joinOverlay(overlaySrc, appended) {
499
282
  if (0 === appended.length) {
500
283
  return overlaySrc;
package/dist/patch.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"patch.js","sourceRoot":"","sources":["../src/patch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"patch.js","sourceRoot":"","sources":["../src/patch.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;;;;;;;;AAGpD,+BAA2B;AAG3B,mCAAwC;AAExC,mCAA+B;AAyC/B,oEAAoE;AACpE,oEAAoE;AACpE,mEAAmE;AACnE,yBACE,IAAY;IACZ,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAC5B,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;QACX,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;IACrC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IACvC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC,KAAK,IAAA,iBAAS,EAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;QACjD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;AACxB,CAAC;AAGD,qBAA4B,IAAY,EAAE,KAAa;IACrD,OAAO,IAAA,iBAAS,EAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAC7D,IAAI,GAAG,KAAK,CAAA;AAChB,CAAC;AAGD,kBAAyB,GAAW,EAAE,GAAW,EAAE,GAAW;IAC5D,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,CAAC,CAAA;IACX,CAAC;IACD,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACjC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,CAAC,CAAA;QACX,CAAC;QACD,GAAG,GAAG,EAAE,GAAG,CAAC,CAAA;IACd,CAAC;IACD,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;IAC1B,OAAO,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACnC,CAAC;AAGD,uEAAuE;AACvE,kCAAkC;AAClC,gBACE,GAAW,EAAE,IAA+C;IAE5D,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;IAC7C,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;AAC7D,CAAC;AAGD,mBACE,GAAW,EAAE,IAA+C,EAAE,MAAc;IAE5E,IAAI,EAAE,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;QAChD,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,MAAM,CAAA;AACrC,CAAC;AAGD,SAAS,eAAe,CACtB,UAAkB,EAClB,IAAY,EACZ,WAA+B;IAE/B,MAAM,KAAK,GAAG,IAAA,WAAG,EAAC,UAAU,EAAE,IAAI,EAAE;QAClC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;QAC1B,GAAG,CAAC,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;KACtD,CAAC,CAAA;IAEF,IAAI,IAAI,KAAK,KAAK,CAAC,EAAE,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QAC9C,MAAM,SAAS,GAAG,IAAA,WAAG,EAAC,UAAU,EAAE,IAAI,EACpC,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAA;QAC1D,IAAI,IAAI,KAAK,SAAS,CAAC,EAAE,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;YACtD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,CAAA;QAChD,CAAC;QACD,OAAO;YACL,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,WAAW,CAAC,oBAAoB,EAAE,IAAI,EAC7C,yDAAyD;gBACzD,6DAA6D;gBAC7D,+DAA+D,EAC/D,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC;SAC9B,CAAA;IACH,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;IAE3B,kEAAkE;IAClE,iEAAiE;IACjE,6DAA6D;IAC7D,kDAAkD;IAClD,MAAM,SAAS,GAAkB,MAAM,CAAC,SAAS,CAAA;IAEjD,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;IACtD,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACpB,OAAO;YACL,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,WAAW,CAAC,oBAAoB,EAAE,IAAI,EAC7C,8DAA8D;gBAC9D,gEAAgE;gBAChE,YAAY,EACZ,IAAI,CAAC;SACR,CAAA;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;IAE9D,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;QACxB,OAAO;YACL,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,WAAW,CAAC,iBAAiB,EAAE,IAAI,EAC1C,8DAA8D;gBAC9D,gDAAgD,EAChD,QAAQ,CAAC;SACZ,CAAA;IACH,CAAC;IAED,kEAAkE;IAClE,+DAA+D;IAC/D,IAAI,CAAC,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;QAC3D,IAAI,CAAC,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC1B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,CAAA;QAChD,CAAC;QACD,OAAO;YACL,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,WAAW,CAAC,oBAAoB,EAAE,IAAI,EAC7C,8CAA8C;gBAC9C,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBACtC,gEAAgE,EAChE,QAAQ,CAAC;SACZ,CAAA;IACH,CAAC;IAED,OAAO,YAAY,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;AACpD,CAAC;AAGD,sBACE,UAAkB,EAClB,IAAY,EACZ,GAAgB;IAEhB,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9C,MAAM,OAAO,GAAG,WAAW,CAAC,qBAAqB,EAAE,IAAI,EACrD,4BAA4B,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM;YAC/D,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG;YAC3D,kDAAkD,EAClD,CAAC,GAAG,CAAC,CAAC,CAAA;QACR,mEAAmE;QACnE,mDAAmD;QACnD,OAAO,CAAC,KAAK,GAAG,UAAU,CAAA;QAC1B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAA;IACrC,CAAC;IAED,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC/B,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,EAAE,CAAC;QAC7C,OAAO;YACL,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,WAAW,CAAC,oBAAoB,EAAE,IAAI,EAC7C,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,iBAAiB;gBAC/D,mBAAmB,GAAG,GAAG,CAAC,KAAK,GAAG,4BAA4B;gBAC9D,6DAA6D;gBAC7D,OAAO,EACP,CAAC,GAAG,CAAC,CAAC;SACT,CAAA;IACH,CAAC;IAED,IAAI,IAAI,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3B,OAAO;YACL,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,WAAW,CAAC,oBAAoB,EAAE,IAAI,EAC7C,GAAG,CAAC,KAAK,GAAG,6CAA6C;gBACzD,sDAAsD,EACtD,CAAC,GAAG,CAAC,CAAC;SACT,CAAA;IACH,CAAC;IAED,OAAO;QACL,IAAI,EAAE;YACJ,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG;YACjB,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI;YACnB,IAAI,EAAE,GAAG,CAAC,GAAG;YACb,IAAI;YACJ,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG;YACjB,EAAE,EAAE,EAAE;SACP;QACD,OAAO,EAAE,SAAS;KACnB,CAAA;AACH,CAAC;AAGD,mBACE,GAAW;IACX,IAAI,KAAa,CAAA;IACjB,IAAI,CAAC;QACH,MAAM,IAAI,GAAQ,IAAI,aAAK,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,CAAA;QAChD,MAAM,IAAI,GAAQ,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA;QAClC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;YACxC,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;IACpB,CAAC;IACD,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,qEAAqE;IACrE,mEAAmE;IACnE,0DAA0D;IAC1D,IAAI,CAAC;QACH,IAAI,aAAK,EAAE,CAAC,QAAQ,CAAC,KAAK,GAAG,GAAG,CAAC,CAAA;IACnC,CAAC;IACD,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;IACnC,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;AAClC,CAAC;AAGD,SAAS,WAAW,CAClB,IAAY,EAAE,IAAY,EAAE,GAAW,EAAE,IAAmB;IAE5D,OAAO;QACL,IAAI;QACJ,qDAAqD;QACrD,oDAAoD;QACpD,KAAK,EAAE,WAAW;QAClB,QAAQ,EAAE,SAAS;QACnB,IAAI;QACJ,gEAAgE;QAChE,4DAA4D;QAC5D,OAAO,EAAE,iBAAiB,GAAG,IAAI,GAAG,aAAa,GAAG,GAAG;QACvD,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI;YACjB,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG;YACf,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG;YACf,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG;YACf,GAAG,EAAE,CAAC,CAAC,GAAG;YACV,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,CAAC,CAAC,KAAK;SACf,CAAC,CAAQ;KACX,CAAA;AACH,CAAC;AAGD,eACE,QAAgB,EAChB,UAAkB,EAClB,WAAqB,EACrB,IAAmB;IAEnB,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAA;IAE1B,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,MAAM,QAAQ,GAAuB,EAAE,CAAA;IACvC,MAAM,KAAK,GAAiB,EAAE,CAAA;IAC9B,mEAAmE;IACnE,sEAAsE;IACtE,sEAAsE;IACtE,MAAM,KAAK,GAA8C,EAAE,CAAA;IAE3D,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;QAC/B,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;YACd,OAAO;gBACL,OAAO,EAAE,UAAU;gBACnB,QAAQ,EAAE,EAAE;gBACZ,QAAQ,EAAE,EAAE;gBACZ,OAAO,EAAE,OAAO;gBAChB,QAAQ,EAAE,CAAC;wBACT,IAAI,EAAE,kBAAkB;wBACxB,KAAK,EAAE,OAAO;wBACd,QAAQ,EAAE,OAAO;wBACjB,IAAI,EAAE,GAAG;wBACT,OAAO,EAAE,oCAAoC,IAAI,EAAE;wBACnD,KAAK,EAAE,EAAE;qBACV,CAAC;aACH,CAAA;QACH,CAAC;QAED,IAAI,IAAI,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;YACtE,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAC1B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAC3B,CAAC;YACD,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACvB,MAAM,EAAE,GAAG,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;gBAC/D,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;gBAC/C,MAAM,IAAI,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAA;gBAC7D,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;oBACZ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;oBAChB,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;gBAC/C,CAAC;qBACI,CAAC;oBACJ,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;oBACjB,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAA;gBAChD,CAAC;gBACD,SAAQ;YACV,CAAC;QACH,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;IAC7C,CAAC;IAED,MAAM,OAAO,GAAG,WAAW,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAA;IAEpE,MAAM,MAAM,GAAc,IAAA,SAAG,EAAC,QAAQ,EAAE,OAAO,EAAE;QAC/C,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,UAAU,EAAE,OAAO,CAAC,SAAS;QAC7B,QAAQ,EAAE,OAAO,CAAC,WAAW;QAC7B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,OAAO,EAAE,OAAO,CAAC,WAAW;KACtB,CAAC,CAAA;IAET,OAAO;QACL,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,mEAAmE;QACnE,gEAAgE;QAChE,iDAAiD;QACjD,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;KACxC,CAAA;AACH,CAAC;AAGD,SAAS,UAAU,CACjB,GAAW,EAAE,KAAgD;IAE7D,IAAI,CAAC,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QACvB,OAAO,GAAG,CAAA;IACZ,CAAC;IACD,IAAI,GAAG,GAAG,GAAG,CAAA;IACb,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACvD,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;IAC3D,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAGD,SAAS,WAAW,CAAC,UAAkB,EAAE,QAAkB;IACzD,IAAI,CAAC,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC1B,OAAO,UAAU,CAAA;IACnB,CAAC;IACD,MAAM,IAAI,GAAG,EAAE,KAAK,UAAU,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;QACzD,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,UAAU,GAAG,IAAI,CAAA;IACrB,OAAO,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;AAC1C,CAAC"}
@@ -6,73 +6,8 @@ exports.markSpread = markSpread;
6
6
  // Set on a spread template's per-key clone, at the one place a spread
7
7
  // is applied (MapVal/ListVal.unify). Nothing else reads it.
8
8
  exports.FROM_SPREAD = '_fromSpread';
9
- // THE AUTHORED MARK, and it is a property of the VALUE rather than a
10
- // set of ids held beside it (the review's finding E). A contribution
11
- // is a value the author wrote, and the recorder used to decide that by
12
- // looking the operand's id up in a set stamped over the parsed tree --
13
- // which is true of the parsed tree and of nothing derived from it. So
14
- // every value that reached a path through a CLONE was dark: a default
15
- // flowing into a `pack()`-generated child, a shape carried by a `$ref`,
16
- // a value a spread template stamped. `why` answered "(no contributions:
17
- // nothing met at this path)" over a value it had just printed, with
18
- // exit 0 -- a false statement, and the one an audit surface may not
19
- // make (use-cases/BUGS.md §23, §24).
20
- //
21
- // A clone of a written value IS that written value, re-instantiated
22
- // somewhere else: it carries the author's site, so it can be pointed
23
- // at. Val.clone therefore carries this mark, exactly as it carries the
24
- // site -- provenance is part of the clone contract, not a recorder
25
- // bolted beside it. Values the engine MINTS (a kind lifted while a
26
- // disjunct trials its members, a fold's intermediate) are constructed
27
- // rather than cloned and stay unmarked, which is what keeps the record
28
- // to what the author can edit.
29
- //
30
- // The mark is only ever SET by an instrumented run (`why` calls
31
- // writtenFrom; nothing else does), so an ordinary evaluation pays one
32
- // undefined property read per clone.
33
9
  exports.WRITTEN = '_written';
34
- // THE CONTAINER A VALUE IS PART OF, when the two stand at the SAME
35
- // path: a junction's members, a preference's inner value, a function's
36
- // arguments, an operator's operands. `*1|integer` is one thing the
37
- // author wrote, and `*1` is not a second thing beside it.
38
- //
39
- // The recorder already knew that where the container itself met
40
- // something -- contributing it marked its members `inside` and the
41
- // filter dropped them. But the container only appears as an operand
42
- // when the fixpoint happens to meet it whole; where it resolves
43
- // member-wise instead (a later sibling of a spread, a default reaching
44
- // a generated child) the members arrived alone and the record split
45
- // one written value into two contributions at two columns. Which
46
- // happened was decided by evaluation order, so `why` answered
47
- // differently for identical statements (use-cases/BUGS.md §22).
48
- //
49
- // So the relation is recorded as a fact about the DOCUMENT, at
50
- // stamping time, and an operand is reported as the outermost written
51
- // value it is part of. NOT set for a bag's children (they stand at
52
- // their own, deeper paths) nor for a conjunct's terms (a conjunct is
53
- // the statement that several things must all hold, and each term is
54
- // one of them -- which is exactly what the author needs shown).
55
10
  exports.INNER_OF = '_innerOf';
56
- // Mark a spread clone and everything inside it, so a contribution
57
- // several levels down a template is still known to have come from the
58
- // template. ONLY on an instrumented run: the walk is O(template) per
59
- // key per pass, which is real money on a large model and buys nothing
60
- // when no one is recording.
61
- //
62
- // THE GUARD IS A CYCLE GUARD, NOT A "DONE" FLAG, and that distinction
63
- // is the whole of the review's finding E for sibling position. A
64
- // template is applied once per destination, and the fixpoint advances
65
- // values IN PLACE between those applications (AGENTS.md, the mutation
66
- // caveat): by the time the second key is spread, the template's
67
- // `replicas` child is no longer the disjunction the first key saw but
68
- // the value that meet produced. Skipping the walk because the
69
- // CONTAINER was already marked left every one of those replacements
70
- // unmarked, so `why` at the first sibling reported the written
71
- // `*1|integer` as one contribution and at the second reported `*1` and
72
- // `integer` as two -- identical statements, different answers, decided
73
- // by which key the fixpoint reached first (use-cases/BUGS.md §22).
74
- // Marking is idempotent, so re-walking costs a pass and changes
75
- // nothing where nothing moved.
76
11
  function markSpread(v, seen) {
77
12
  const marked = seen ?? new Set();
78
13
  if (null == v || true !== v.isVal || marked.has(v)) {
@@ -112,10 +47,6 @@ function samePathKids(v) {
112
47
  return Array.isArray(v.peg)
113
48
  ? v.peg.filter((k) => null != k && true === k.isVal) : [];
114
49
  }
115
- // Order contributions the way the document reads: by file, then row,
116
- // then column, with the canon as the last tiebreak so the order is
117
- // total even for two values written at the same position (which a
118
- // merged duplicate key can produce).
119
50
  function cmpSite(a, b) {
120
51
  return a.site.file.localeCompare(b.site.file) ||
121
52
  a.site.row - b.site.row ||
@@ -137,20 +68,8 @@ function roleOf(v) {
137
68
  class Provenance {
138
69
  constructor() {
139
70
  this.paths = new Map();
140
- // id -> the written container it names, for INNER_OF. The mark on a
141
- // value is the container's ID rather than the container itself: a
142
- // Val holding another Val as an own property is a reference cycle
143
- // through the tree, and enough of the engine walks a value's own
144
- // properties that one is not safe to introduce.
145
71
  this.containers = new Map();
146
72
  }
147
- // Stamp the parsed tree with the AUTHORED mark: everything the
148
- // author wrote, before unification starts. A value minted during
149
- // unification — a kind lifted from a leaf while a disjunct trials
150
- // its members, a fold's intermediate — is the engine's own work, not
151
- // a contribution the author can be pointed at. A CLONE of a marked
152
- // value keeps the mark (see WRITTEN above), because it is the same
153
- // written value somewhere else. Called once, before unify, by `why`.
154
73
  writtenFrom(v) {
155
74
  if (null == v || true !== v.isVal || true === v[exports.WRITTEN]) {
156
75
  return;
@@ -195,9 +114,6 @@ class Provenance {
195
114
  }
196
115
  }
197
116
  contribute(rec, v) {
198
- // TOP is the unit element and a nil is a failure, neither of which
199
- // is information the author wrote. A value an earlier meet MADE is
200
- // an intermediate; the source that made it is already recorded.
201
117
  if (null == v || true !== v.isVal || true === v.isTop || true === v.isNil ||
202
118
  rec.made.has(v.id) || rec.seen.has(v.id)) {
203
119
  return;
@@ -217,11 +133,6 @@ class Provenance {
217
133
  if (true !== v[exports.WRITTEN] && true !== v[exports.FROM_SPREAD]) {
218
134
  return;
219
135
  }
220
- // A CONJUNCT is not one contribution, it is the statement that
221
- // several must all hold — duplicate keys merged at parse, an
222
- // explicit `a & b`. Its own site is nowhere (the merge has no
223
- // source position), while its terms each have one, which is what
224
- // the author needs to be shown.
225
136
  if (true === v.isConjunct && Array.isArray(v.peg)) {
226
137
  rec.seen.add(v.id);
227
138
  for (const term of v.peg) {
@@ -246,18 +157,6 @@ class Provenance {
246
157
  ...(true === v.isPref ? { rank: v.rank } : {}),
247
158
  });
248
159
  }
249
- // THE VALUE THAT STANDS at a path is a contribution when nothing met
250
- // there and the author wrote it. A meet is where information
251
- // vanishes, so a meet is what the recorder watches -- but a
252
- // generator PLACES a value without meeting anything, and `why` then
253
- // answered "(no contributions: nothing met at this path)" over a
254
- // value it had just printed. That is literally true and practically
255
- // false: the author is asking where the value came from, and it came
256
- // from somewhere they can be shown (use-cases/BUGS.md §23).
257
- //
258
- // Only when the record is otherwise EMPTY. Where something did meet,
259
- // the standing value is that meet's result -- an intermediate, and
260
- // the recorder's oldest rule is that a result is not a source.
261
160
  stands(path, v) {
262
161
  const key = path.join('.');
263
162
  const rec = this.paths.get(key);
@@ -266,50 +165,11 @@ class Provenance {
266
165
  }
267
166
  this.record(path, v, undefined, undefined);
268
167
  }
269
- // The record at one path. Empty when nothing met there and nothing
270
- // the author wrote stands there either — which is a true and useful
271
- // answer rather than an error.
272
- //
273
- // ONLY WHOLE WRITTEN VALUES are contributions. A Val's own unify
274
- // re-enters `unite` at the same path — a disjunct trials each member
275
- // there, a constraint meets its atoms there — and those members are
276
- // PARTS OF one written value, not further values beside it. That is
277
- // settled BEFORE a member is ever pushed, by the INNER_OF fact
278
- // stamped over the document (see `contribute`), which is why no
279
- // filter runs here: a per-path "inside" set used to do it, and it
280
- // could only work where the container itself happened to meet
281
- // something at the same path — the order-dependence finding E
282
- // records.
283
168
  at(path) {
284
169
  const rec = this.paths.get(path.join('.'));
285
170
  if (null == rec) {
286
171
  return [];
287
172
  }
288
- // SOURCE ORDER, not meet order: the two are the same in simple
289
- // cases and diverge with the fixpoint's fold order, which is an
290
- // engine detail and a parity risk. Sites are parse data, identical
291
- // in both ports, so ordering by them makes the record read as the
292
- // document reads and pins it across implementations.
293
- // ONE WRITTEN TOKEN IS ONE CONTRIBUTION, and the SITE is what
294
- // identifies it -- not the val id, and not the canon.
295
- //
296
- // Not the id, because provenance travels through clones now: a
297
- // written value and a clone of it are the same statement in the
298
- // same place, and a path that met both would list it twice.
299
- //
300
- // Not the canon, because the same written value reaches a path at
301
- // different stages of narrowing -- `3|(1|2)` as the author wrote
302
- // it and `3|1|2` after a fold -- and both name one token.
303
- //
304
- // Not the role either: the role says how the value REACHED this
305
- // path, not which value it is, and one written value can reach a
306
- // path both ways (a template applied to a key whose value is also
307
- // written there). Keeping the literal would throw away the more
308
- // informative half, so the roles have a precedence.
309
- //
310
- // ONLY WHERE THE SITE IS REAL. An unsited contribution (row -1)
311
- // cannot be told apart from another unsited one, so those are kept
312
- // as they come rather than collapsed into whichever arrived first.
313
173
  const shown = new Map();
314
174
  const order = ['spread', 'ref', 'pref', 'literal'];
315
175
  const out = [];
@@ -1 +1 @@
1
- {"version":3,"file":"provenance.js","sourceRoot":"","sources":["../src/provenance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provenance.js","sourceRoot":"","sources":["../src/provenance.ts"],"names":[],"mappings":"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"}