aontu 0.52.0 → 0.53.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. package/README.md +88 -0
  2. package/bin/aontu-mcp.js +4 -0
  3. package/dist/agentsmd.d.ts +16 -0
  4. package/dist/agentsmd.js +107 -0
  5. package/dist/agentsmd.js.map +1 -0
  6. package/dist/aontu.d.ts +14 -3
  7. package/dist/aontu.js +145 -4
  8. package/dist/aontu.js.map +1 -1
  9. package/dist/cli.d.ts +44 -1
  10. package/dist/cli.js +2401 -44
  11. package/dist/cli.js.map +1 -1
  12. package/dist/ctx.d.ts +16 -0
  13. package/dist/ctx.js +44 -0
  14. package/dist/ctx.js.map +1 -1
  15. package/dist/diff.d.ts +22 -0
  16. package/dist/diff.js +141 -0
  17. package/dist/diff.js.map +1 -0
  18. package/dist/err.d.ts +3 -1
  19. package/dist/err.js +48 -8
  20. package/dist/err.js.map +1 -1
  21. package/dist/graph.d.ts +16 -0
  22. package/dist/graph.js +73 -0
  23. package/dist/graph.js.map +1 -0
  24. package/dist/hcanon.d.ts +3 -0
  25. package/dist/hcanon.js +146 -0
  26. package/dist/hcanon.js.map +1 -0
  27. package/dist/hints.js +223 -5
  28. package/dist/hints.js.map +1 -1
  29. package/dist/jsonschema.d.ts +20 -0
  30. package/dist/jsonschema.js +391 -0
  31. package/dist/jsonschema.js.map +1 -0
  32. package/dist/lang.js +698 -35
  33. package/dist/lang.js.map +1 -1
  34. package/dist/lsp.d.ts +9 -2
  35. package/dist/lsp.js +262 -46
  36. package/dist/lsp.js.map +1 -1
  37. package/dist/mcp-server.d.ts +20 -0
  38. package/dist/mcp-server.js +147 -0
  39. package/dist/mcp-server.js.map +1 -0
  40. package/dist/mcp.d.ts +42 -0
  41. package/dist/mcp.js +814 -0
  42. package/dist/mcp.js.map +1 -0
  43. package/dist/mod-tool.d.ts +58 -0
  44. package/dist/mod-tool.js +498 -0
  45. package/dist/mod-tool.js.map +1 -0
  46. package/dist/mod.d.ts +31 -0
  47. package/dist/mod.js +250 -0
  48. package/dist/mod.js.map +1 -0
  49. package/dist/patch.d.ts +44 -0
  50. package/dist/patch.js +506 -0
  51. package/dist/patch.js.map +1 -0
  52. package/dist/provenance.d.ts +40 -0
  53. package/dist/provenance.js +335 -0
  54. package/dist/provenance.js.map +1 -0
  55. package/dist/query.d.ts +27 -0
  56. package/dist/query.js +294 -0
  57. package/dist/query.js.map +1 -0
  58. package/dist/reach.d.ts +14 -0
  59. package/dist/reach.js +140 -0
  60. package/dist/reach.js.map +1 -0
  61. package/dist/relation.d.ts +19 -0
  62. package/dist/relation.js +305 -0
  63. package/dist/relation.js.map +1 -0
  64. package/dist/report-sarif.d.ts +14 -0
  65. package/dist/report-sarif.js +102 -0
  66. package/dist/report-sarif.js.map +1 -0
  67. package/dist/site.d.ts +4 -0
  68. package/dist/site.js +31 -0
  69. package/dist/site.js.map +1 -1
  70. package/dist/std.d.ts +1 -0
  71. package/dist/std.js +73 -0
  72. package/dist/std.js.map +1 -0
  73. package/dist/subsume.d.ts +39 -0
  74. package/dist/subsume.js +526 -0
  75. package/dist/subsume.js.map +1 -0
  76. package/dist/trim.d.ts +19 -0
  77. package/dist/trim.js +155 -0
  78. package/dist/trim.js.map +1 -0
  79. package/dist/tsconfig.tsbuildinfo +1 -1
  80. package/dist/type.d.ts +17 -1
  81. package/dist/type.js.map +1 -1
  82. package/dist/unify.d.ts +3 -1
  83. package/dist/unify.js +287 -18
  84. package/dist/unify.js.map +1 -1
  85. package/dist/utility.d.ts +9 -1
  86. package/dist/utility.js +122 -1
  87. package/dist/utility.js.map +1 -1
  88. package/dist/val/AggFuncVal.d.ts +33 -0
  89. package/dist/val/AggFuncVal.js +202 -0
  90. package/dist/val/AggFuncVal.js.map +1 -0
  91. package/dist/val/ArithFuncVal.d.ts +31 -0
  92. package/dist/val/ArithFuncVal.js +62 -0
  93. package/dist/val/ArithFuncVal.js.map +1 -0
  94. package/dist/val/BagVal.d.ts +5 -0
  95. package/dist/val/BagVal.js +96 -5
  96. package/dist/val/BagVal.js.map +1 -1
  97. package/dist/val/CloseFuncVal.js +9 -1
  98. package/dist/val/CloseFuncVal.js.map +1 -1
  99. package/dist/val/ConjunctVal.d.ts +1 -1
  100. package/dist/val/ConjunctVal.js +19 -0
  101. package/dist/val/ConjunctVal.js.map +1 -1
  102. package/dist/val/ConstraintVal.d.ts +48 -1
  103. package/dist/val/ConstraintVal.js +1501 -110
  104. package/dist/val/ConstraintVal.js.map +1 -1
  105. package/dist/val/CopyFuncVal.d.ts +1 -2
  106. package/dist/val/CopyFuncVal.js +7 -0
  107. package/dist/val/CopyFuncVal.js.map +1 -1
  108. package/dist/val/Decimal.d.ts +1 -0
  109. package/dist/val/Decimal.js +13 -0
  110. package/dist/val/Decimal.js.map +1 -1
  111. package/dist/val/DeprecateFuncVal.d.ts +11 -0
  112. package/dist/val/DeprecateFuncVal.js +47 -0
  113. package/dist/val/DeprecateFuncVal.js.map +1 -0
  114. package/dist/val/DisjunctVal.js +130 -21
  115. package/dist/val/DisjunctVal.js.map +1 -1
  116. package/dist/val/EachFuncVal.d.ts +15 -0
  117. package/dist/val/EachFuncVal.js +75 -0
  118. package/dist/val/EachFuncVal.js.map +1 -0
  119. package/dist/val/ExpectVal.d.ts +1 -0
  120. package/dist/val/ExpectVal.js +41 -4
  121. package/dist/val/ExpectVal.js.map +1 -1
  122. package/dist/val/FeatureVal.js +1 -1
  123. package/dist/val/FeatureVal.js.map +1 -1
  124. package/dist/val/FilterFuncVal.d.ts +15 -0
  125. package/dist/val/FilterFuncVal.js +91 -0
  126. package/dist/val/FilterFuncVal.js.map +1 -0
  127. package/dist/val/FuncBaseVal.d.ts +6 -1
  128. package/dist/val/FuncBaseVal.js +178 -2
  129. package/dist/val/FuncBaseVal.js.map +1 -1
  130. package/dist/val/HideFuncVal.js.map +1 -1
  131. package/dist/val/IdFuncVal.d.ts +13 -0
  132. package/dist/val/IdFuncVal.js +54 -0
  133. package/dist/val/IdFuncVal.js.map +1 -0
  134. package/dist/val/JunctionVal.js +7 -1
  135. package/dist/val/JunctionVal.js.map +1 -1
  136. package/dist/val/KeyFuncVal.d.ts +1 -1
  137. package/dist/val/KeyFuncVal.js +38 -30
  138. package/dist/val/KeyFuncVal.js.map +1 -1
  139. package/dist/val/ListVal.js +117 -17
  140. package/dist/val/ListVal.js.map +1 -1
  141. package/dist/val/LowerFuncVal.js.map +1 -1
  142. package/dist/val/MapVal.js +102 -8
  143. package/dist/val/MapVal.js.map +1 -1
  144. package/dist/val/MatchFuncVal.d.ts +15 -0
  145. package/dist/val/MatchFuncVal.js +107 -0
  146. package/dist/val/MatchFuncVal.js.map +1 -0
  147. package/dist/val/MoveFuncVal.js.map +1 -1
  148. package/dist/val/NilVal.js +24 -0
  149. package/dist/val/NilVal.js.map +1 -1
  150. package/dist/val/OpBaseVal.d.ts +1 -1
  151. package/dist/val/OpBaseVal.js +24 -2
  152. package/dist/val/OpBaseVal.js.map +1 -1
  153. package/dist/val/OpenFuncVal.js +4 -1
  154. package/dist/val/OpenFuncVal.js.map +1 -1
  155. package/dist/val/PackFuncVal.d.ts +15 -0
  156. package/dist/val/PackFuncVal.js +108 -0
  157. package/dist/val/PackFuncVal.js.map +1 -0
  158. package/dist/val/PathFuncVal.js.map +1 -1
  159. package/dist/val/PlaceVal.d.ts +13 -0
  160. package/dist/val/PlaceVal.js +131 -0
  161. package/dist/val/PlaceVal.js.map +1 -0
  162. package/dist/val/PlusOpVal.js +11 -2
  163. package/dist/val/PlusOpVal.js.map +1 -1
  164. package/dist/val/PrefFuncVal.js.map +1 -1
  165. package/dist/val/PrefVal.d.ts +2 -2
  166. package/dist/val/PrefVal.js +78 -23
  167. package/dist/val/PrefVal.js.map +1 -1
  168. package/dist/val/RefVal.d.ts +1 -1
  169. package/dist/val/RefVal.js +158 -30
  170. package/dist/val/RefVal.js.map +1 -1
  171. package/dist/val/ReferFuncVal.d.ts +36 -0
  172. package/dist/val/ReferFuncVal.js +303 -0
  173. package/dist/val/ReferFuncVal.js.map +1 -0
  174. package/dist/val/ScalarKindVal.d.ts +1 -2
  175. package/dist/val/ScalarKindVal.js +0 -11
  176. package/dist/val/ScalarKindVal.js.map +1 -1
  177. package/dist/val/TopVal.js.map +1 -1
  178. package/dist/val/TypeFuncVal.js.map +1 -1
  179. package/dist/val/UpperFuncVal.js.map +1 -1
  180. package/dist/val/Val.d.ts +9 -2
  181. package/dist/val/Val.js +150 -4
  182. package/dist/val/Val.js.map +1 -1
  183. package/dist/val/VarVal.js.map +1 -1
  184. package/dist/val/arith.d.ts +6 -0
  185. package/dist/val/arith.js +170 -0
  186. package/dist/val/arith.js.map +1 -0
  187. package/dist/vet.d.ts +45 -0
  188. package/dist/vet.js +776 -0
  189. package/dist/vet.js.map +1 -0
  190. package/dist/walk.d.ts +2 -0
  191. package/dist/walk.js +91 -0
  192. package/dist/walk.js.map +1 -0
  193. package/grammar/aontu.gbnf +130 -0
  194. package/grammar/aontu.lark +113 -0
  195. package/package.json +30 -15
  196. package/skill/SKILL.md +37 -0
  197. package/skill/error-codes.md +62 -0
  198. package/skill/examples.md +99 -0
  199. package/skill/grammar-card.md +57 -0
  200. package/src/agentsmd.ts +135 -0
  201. package/src/aontu.ts +192 -4
  202. package/src/cli.ts +2858 -71
  203. package/src/ctx.ts +81 -0
  204. package/src/diff.ts +196 -0
  205. package/src/err.ts +52 -8
  206. package/src/graph.ts +135 -0
  207. package/src/hcanon.ts +169 -0
  208. package/src/hints.ts +271 -5
  209. package/src/jsonschema.ts +511 -0
  210. package/src/lang.ts +779 -37
  211. package/src/lsp.ts +281 -47
  212. package/src/mcp-server.ts +187 -0
  213. package/src/mcp.ts +993 -0
  214. package/src/mod-tool.ts +679 -0
  215. package/src/mod.ts +344 -0
  216. package/src/patch.ts +624 -0
  217. package/src/provenance.ts +430 -0
  218. package/src/query.ts +379 -0
  219. package/src/reach.ts +184 -0
  220. package/src/relation.ts +395 -0
  221. package/src/report-sarif.ts +137 -0
  222. package/src/site.ts +36 -1
  223. package/src/std.ts +73 -0
  224. package/src/subsume.ts +690 -0
  225. package/src/trim.ts +195 -0
  226. package/src/tsconfig.json +10 -4
  227. package/src/type.ts +51 -2
  228. package/src/unify.ts +311 -16
  229. package/src/utility.ts +139 -1
  230. package/src/val/AggFuncVal.ts +319 -0
  231. package/src/val/ArithFuncVal.ts +108 -0
  232. package/src/val/BagVal.ts +101 -4
  233. package/src/val/CloseFuncVal.ts +9 -1
  234. package/src/val/ConjunctVal.ts +20 -0
  235. package/src/val/ConstraintVal.ts +1699 -116
  236. package/src/val/CopyFuncVal.ts +7 -1
  237. package/src/val/Decimal.ts +15 -0
  238. package/src/val/DeprecateFuncVal.ts +84 -0
  239. package/src/val/DisjunctVal.ts +139 -28
  240. package/src/val/EachFuncVal.ts +133 -0
  241. package/src/val/ExpectVal.ts +43 -6
  242. package/src/val/FeatureVal.ts +1 -1
  243. package/src/val/FilterFuncVal.ts +154 -0
  244. package/src/val/FuncBaseVal.ts +200 -3
  245. package/src/val/HideFuncVal.ts +0 -2
  246. package/src/val/IdFuncVal.ts +91 -0
  247. package/src/val/JunctionVal.ts +7 -1
  248. package/src/val/KeyFuncVal.ts +39 -35
  249. package/src/val/ListVal.ts +125 -18
  250. package/src/val/LowerFuncVal.ts +0 -1
  251. package/src/val/MapVal.ts +110 -8
  252. package/src/val/MatchFuncVal.ts +176 -0
  253. package/src/val/MoveFuncVal.ts +0 -2
  254. package/src/val/NilVal.ts +25 -0
  255. package/src/val/OpBaseVal.ts +26 -3
  256. package/src/val/OpenFuncVal.ts +4 -2
  257. package/src/val/PackFuncVal.ts +175 -0
  258. package/src/val/PathFuncVal.ts +0 -1
  259. package/src/val/PlaceVal.ts +193 -0
  260. package/src/val/PlusOpVal.ts +11 -2
  261. package/src/val/PrefFuncVal.ts +0 -1
  262. package/src/val/PrefVal.ts +79 -36
  263. package/src/val/RefVal.ts +163 -30
  264. package/src/val/ReferFuncVal.ts +387 -0
  265. package/src/val/ScalarKindVal.ts +0 -13
  266. package/src/val/TopVal.ts +0 -1
  267. package/src/val/TypeFuncVal.ts +0 -2
  268. package/src/val/UpperFuncVal.ts +0 -1
  269. package/src/val/Val.ts +213 -3
  270. package/src/val/VarVal.ts +0 -1
  271. package/src/val/arith.ts +316 -0
  272. package/src/vet.ts +992 -0
  273. package/src/walk.ts +99 -0
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ /* Copyright (c) 2025 Richard Rodger, MIT License */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.EachFuncVal = void 0;
5
+ exports.dataValues = dataValues;
6
+ const unify_1 = require("../unify");
7
+ const err_1 = require("../err");
8
+ const ListVal_1 = require("./ListVal");
9
+ const FuncBaseVal_1 = require("./FuncBaseVal");
10
+ const Val_1 = require("./Val");
11
+ const PlaceVal_1 = require("./PlaceVal");
12
+ const keyorder_1 = require("../keyorder");
13
+ // The children a data bag holds, in the order the result must carry
14
+ // them, or the code naming what is wrong with the argument.
15
+ function dataValues(data) {
16
+ const d = data;
17
+ if (true === d?.isMap) {
18
+ return Object.keys(d.peg).sort(keyorder_1.cmpCodePoint).map((k) => d.peg[k]);
19
+ }
20
+ if (true === d?.isList) {
21
+ return [...d.peg];
22
+ }
23
+ return 'each_data';
24
+ }
25
+ class EachFuncVal extends FuncBaseVal_1.FuncBaseVal {
26
+ constructor(spec, ctx) {
27
+ super(spec, ctx);
28
+ this.isEachFunc = true;
29
+ // THE STAGING RULE, for the reason given in PackFuncVal.
30
+ this.staged = true;
31
+ }
32
+ funcname() {
33
+ return 'each';
34
+ }
35
+ // The template is not an argument to drive (see PackFuncVal.prepare).
36
+ prepare(_ctx, _args) {
37
+ return null;
38
+ }
39
+ unify(peer, ctx) {
40
+ // ONE argument is driven: the data. The template is not (see
41
+ // prepare above), and driveStagedArgs answers whether the data has
42
+ // settled -- the other half of "ready to fire".
43
+ const ready = this.driveStagedArgs(ctx, 1);
44
+ if (!ready || !ctx.settle) {
45
+ return this.residuate(peer, ctx);
46
+ }
47
+ return super.unify(peer, ctx);
48
+ }
49
+ resolve(ctx, args) {
50
+ const vals = dataValues(args?.[0]);
51
+ if ('string' === typeof vals) {
52
+ return (0, err_1.makeNilErr)(ctx, vals, this);
53
+ }
54
+ const tmpl = args?.[1];
55
+ const peg = [];
56
+ for (let i = 0; i < vals.length; i++) {
57
+ const elctx = ctx.descend(String(i));
58
+ const el = vals[i].clone(elctx);
59
+ // The template is CLONED per element, never shared — a FULL
60
+ // instance to the leaves (`dup`, ADR-005): see PackFuncVal.resolve.
61
+ // `_` inside the template binds the source child (G8 phase 3),
62
+ // which for `each` is the element itself.
63
+ let inst = undefined;
64
+ if (undefined !== tmpl) {
65
+ inst = tmpl.clone(elctx, { dup: true });
66
+ (0, Val_1.repathInstance)(inst, inst.path);
67
+ }
68
+ peg.push(undefined === inst ? el :
69
+ (0, unify_1.unite)(elctx, el, (0, PlaceVal_1.fillPlace)(inst, vals[i], elctx), 'each'));
70
+ }
71
+ return new ListVal_1.ListVal({ peg }, ctx);
72
+ }
73
+ } /* node:coverage ignore next 7 */
74
+ exports.EachFuncVal = EachFuncVal;
75
+ //# sourceMappingURL=EachFuncVal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EachFuncVal.js","sourceRoot":"","sources":["../../src/val/EachFuncVal.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ declare class ExpectVal extends FeatureVal {
7
7
  peer?: Val;
8
8
  parent?: Val;
9
9
  key?: string;
10
+ get canon(): any;
10
11
  constructor(spec: ValSpec, ctx?: AontuContext);
11
12
  unify(peer: Val, ctx: AontuContext): Val;
12
13
  gen(ctx: AontuContext): undefined;
@@ -8,28 +8,65 @@ const utility_1 = require("../utility");
8
8
  const err_1 = require("../err");
9
9
  const FeatureVal_1 = require("./FeatureVal");
10
10
  class ExpectVal extends FeatureVal_1.FeatureVal {
11
+ // An expectation canons as THE EXPECTATION ITSELF -- the peg the peer
12
+ // must satisfy. Val.canon's default was the empty string, which
13
+ // rendered a key with no value (`{"r":}`): text that is not a document
14
+ // and could not be reparsed, breaking canon's round-trip contract in
15
+ // both engines (issue #43).
16
+ //
17
+ // Not `top`, which was the first fix here and was wrong. An ExpectVal
18
+ // is created for EVERY peer-introduced non-generable key, not just for
19
+ // `&:` spread children -- `m:{x:1} m:{y:string}` makes one at `y` with
20
+ // no spread in sight -- so rendering `top` erased the `string` and the
21
+ // canon reparsed into a document that accepts values the original
22
+ // rejects. A canon that silently drops a constraint is worse than one
23
+ // that fails to parse. Go's ExpectVal.Canon renders the same peg.
24
+ get canon() { return this.peg.canon; }
11
25
  constructor(spec, ctx) {
12
26
  super(spec, ctx);
13
27
  this.isExpect = true;
14
28
  }
29
+ // PURE, deliberately (the unequal-spread crosswire, BUGS.md §6-§7).
30
+ // The old body accumulated `this.peer` IN PLACE, which was invisible
31
+ // while an expectation only ever lived at one destination -- but the
32
+ // spread-combination meet (MapVal.unify's 'map-self' unite) bakes an
33
+ // ExpectVal INTO the combined template, and a path-independent
34
+ // template is SHARED across every destination (spreadClone tier 1).
35
+ // One stateful node in a shared template unified each sibling's own
36
+ // data with the next sibling's ($.w.y.r: "Cannot unify value: 6 with
37
+ // value: 5", both values sibling data). An expectation now answers
38
+ // with a NEW node when it must keep accumulated state, so a shared
39
+ // template's expect stays exactly what was written.
15
40
  unify(peer, ctx) {
16
41
  const te = ctx.explain && (0, utility_1.explainOpen)(ctx, ctx.explain, 'Expect', this, peer);
17
42
  let out = this;
18
43
  if (!peer.isTop) {
19
- this.peer = undefined === this.peer ? peer :
44
+ const acc = undefined === this.peer ? peer :
20
45
  (0, unify_1.unite)(te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'PEER') }) : ctx, this.peer, peer, 'expect-peer');
21
- const peeru = (0, unify_1.unite)(te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'EXPECT') }) : ctx, this.peer, this.peg, 'expect-self');
46
+ const peeru = (0, unify_1.unite)(te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'EXPECT') }) : ctx, acc, this.peg, 'expect-self');
22
47
  if (peeru.isGenable) {
23
48
  out = peeru;
24
49
  }
50
+ else {
51
+ // Still an expectation: carry the accumulated peer forward in a
52
+ // fresh node stored at THIS destination by the caller, leaving
53
+ // `this` -- possibly a shared template's child -- untouched.
54
+ const e = new ExpectVal({ peg: this.peg }, ctx);
55
+ e.key = this.key;
56
+ e.parent = this.parent;
57
+ e.peer = acc;
58
+ out = e;
59
+ }
25
60
  }
26
61
  out.dc = type_1.DONE;
27
62
  ctx.explain && (0, utility_1.explainClose)(te, out);
28
63
  return out;
29
64
  }
30
65
  gen(ctx) {
31
- // Unresolved expect cannot be generated, so always an error.
32
- let nil = (0, err_1.makeNilErr)(ctx, 'expect', this.peg, this.peer);
66
+ // Unresolved expect cannot be generated, so always an error. The
67
+ // CALL is the point -- it records the failure on ctx -- and there
68
+ // is no value to bind: generation answers nothing.
69
+ (0, err_1.makeNilErr)(ctx, 'expect', this.peg, this.peer);
33
70
  return undefined;
34
71
  }
35
72
  inspection(d) {
@@ -1 +1 @@
1
- {"version":3,"file":"ExpectVal.js","sourceRoot":"","sources":["../../src/val/ExpectVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAOzD,kCAEgB;AAMhB,oCAAgC;AAEhC,wCAKmB;AAEnB,gCAAmC;AAGnC,6CAAyC;AAGzC,MAAM,SAAU,SAAQ,uBAAU;IAOhC,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAVlB,aAAQ,GAAG,IAAI,CAAA;IAWf,CAAC;IAED,KAAK,CAAC,IAAS,EAAE,GAAiB;QAChC,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,IAAI,IAAA,qBAAW,EAAC,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QAE7E,IAAI,GAAG,GAAG,IAAI,CAAA;QAEd,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,GAAG,SAAS,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC1C,IAAA,aAAK,EAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAA,YAAE,EAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,aAAa,CAAC,CAAA;YAE1F,MAAM,KAAK,GACT,IAAA,aAAK,EAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAA,YAAE,EAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAA;YAEhG,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACpB,GAAG,GAAG,KAAK,CAAA;YACb,CAAC;QACH,CAAC;QAED,GAAG,CAAC,EAAE,GAAG,WAAI,CAAA;QAEb,GAAG,CAAC,OAAO,IAAI,IAAA,sBAAY,EAAC,EAAE,EAAE,GAAG,CAAC,CAAA;QAEpC,OAAO,GAAG,CAAA;IACZ,CAAC;IAGD,GAAG,CAAC,GAAiB;QACnB,6DAA6D;QAC7D,IAAI,GAAG,GAAG,IAAA,gBAAU,EAClB,GAAG,EACH,QAAQ,EACR,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,IAAI,CACV,CAAA;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAGD,UAAU,CAAC,CAAU;QACnB,OAAO,MAAM,GAAG,IAAI,CAAC,GAAG;YACtB,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;YAC9B,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;YAChC,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;IACxC,CAAC;CAEF,CAAC,iCAAiC;QAIjC,SAAS"}
1
+ {"version":3,"file":"ExpectVal.js","sourceRoot":"","sources":["../../src/val/ExpectVal.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@ class FeatureVal extends Val_1.Val {
18
18
  let nerr = (0, err_1.makeNilErr)(ctx, 'no_gen', this);
19
19
  (0, err_1.descErr)(nerr, ctx);
20
20
  ctx?.adderr(nerr);
21
- if (null == ctx || !ctx?.collect) {
21
+ if (null == ctx || !ctx.collect) {
22
22
  const aerr = new err_1.AontuError(nerr.msg, [nerr]);
23
23
  throw aerr;
24
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FeatureVal.js","sourceRoot":"","sources":["../../src/val/FeatureVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAYzD,+BAA2B;AAE3B,+BAA2B;AAE3B,gCAAwD;AAGxD,MAAe,UAAW,SAAQ,SAAG;IAGnC,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QANlB,cAAS,GAAG,IAAI,CAAA;IAOhB,CAAC;IAGD,QAAQ;QACN,OAAO,IAAA,SAAG,GAAE,CAAA;IACd,CAAC;IAGD,GAAG,CAAC,GAAiB;QACnB,0DAA0D;QAE1D,IAAI,IAAI,GAAG,IAAA,gBAAU,EAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;QAC1C,IAAA,aAAO,EAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAClB,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;QAEjB,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,IAAI,gBAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;YAC7C,MAAM,IAAI,CAAA;QACZ,CAAC;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;CAEF,CAAC,iCAAiC;QAIjC,UAAU"}
1
+ {"version":3,"file":"FeatureVal.js","sourceRoot":"","sources":["../../src/val/FeatureVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAYzD,+BAA2B;AAE3B,+BAA2B;AAE3B,gCAAwD;AAGxD,MAAe,UAAW,SAAQ,SAAG;IAGnC,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QANlB,cAAS,GAAG,IAAI,CAAA;IAOhB,CAAC;IAGD,QAAQ;QACN,OAAO,IAAA,SAAG,GAAE,CAAA;IACd,CAAC;IAGD,GAAG,CAAC,GAAiB;QACnB,0DAA0D;QAE1D,IAAI,IAAI,GAAG,IAAA,gBAAU,EAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;QAC1C,IAAA,aAAO,EAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAClB,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;QAEjB,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YAChC,MAAM,IAAI,GAAG,IAAI,gBAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;YAC7C,MAAM,IAAI,CAAA;QACZ,CAAC;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;CAEF,CAAC,iCAAiC;QAIjC,UAAU"}
@@ -0,0 +1,15 @@
1
+ import type { Val, ValSpec } from '../type';
2
+ import { AontuContext } from '../ctx';
3
+ import { MapVal } from './MapVal';
4
+ import { ListVal } from './ListVal';
5
+ import { FuncBaseVal } from './FuncBaseVal';
6
+ declare class FilterFuncVal extends FuncBaseVal {
7
+ isFilterFunc: boolean;
8
+ staged: boolean;
9
+ constructor(spec: ValSpec, ctx?: AontuContext);
10
+ funcname(): string;
11
+ prepare(_ctx: AontuContext, _args: Val[]): null;
12
+ unify(peer: Val, ctx: AontuContext): Val;
13
+ resolve(ctx: AontuContext, args: Val[]): ListVal | MapVal | import("./NilVal").NilVal;
14
+ }
15
+ export { FilterFuncVal, };
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ /* Copyright (c) 2025 Richard Rodger, MIT License */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.FilterFuncVal = void 0;
5
+ const err_1 = require("../err");
6
+ const MapVal_1 = require("./MapVal");
7
+ const ListVal_1 = require("./ListVal");
8
+ const FuncBaseVal_1 = require("./FuncBaseVal");
9
+ const Val_1 = require("./Val");
10
+ const PlaceVal_1 = require("./PlaceVal");
11
+ class FilterFuncVal extends FuncBaseVal_1.FuncBaseVal {
12
+ constructor(spec, ctx) {
13
+ super(spec, ctx);
14
+ this.isFilterFunc = true;
15
+ // THE STAGING RULE (G8 phase 0). A subset of a bag that is still
16
+ // being merged into is a subset of the wrong bag.
17
+ this.staged = true;
18
+ }
19
+ funcname() {
20
+ return 'filter';
21
+ }
22
+ // Neither argument is driven by the base: `unify` below drives the
23
+ // DATA by hand, because a staged func must advance the argument it
24
+ // is waiting on every pass rather than only on the one it fires.
25
+ //
26
+ // The CONDITION is not driven at all, and that is deliberate: it is
27
+ // a template, tested against each child at that child's position,
28
+ // so it may hold a `_` (G8 phase 3, the child it is being tested
29
+ // against) or a relative reference — neither of which has an answer
30
+ // at the call site. Driving it there would freeze both.
31
+ prepare(_ctx, _args) {
32
+ return null;
33
+ }
34
+ unify(peer, ctx) {
35
+ const ready = this.driveStagedArgs(ctx, 1);
36
+ if (!ready || !ctx.settle) {
37
+ return this.residuate(peer, ctx);
38
+ }
39
+ return super.unify(peer, ctx);
40
+ }
41
+ resolve(ctx, args) {
42
+ const data = args[0];
43
+ const cond = args[1];
44
+ // The trial is run against CLONES: `unite` refines a bag in place,
45
+ // and a child that failed the test must reach the result -- when
46
+ // it passes -- exactly as it was written.
47
+ //
48
+ // Canon is the comparison because canon is what "the same value"
49
+ // MEANS in this language: it is the form the two ports agree on,
50
+ // the form `aontu diff` compares, and the form a hash is taken of.
51
+ const keeps = (child, kctx) => {
52
+ // `_` inside the condition binds the child being tested (G8
53
+ // phase 3), so a condition can be about the child as a whole
54
+ // rather than only about its shape. The condition is cloned as
55
+ // a FULL instance per trial (`dup`, ADR-005) — a bare clone
56
+ // shares call/pref innards across trials (see PackFuncVal).
57
+ const inst = cond.clone(kctx, { dup: true });
58
+ (0, Val_1.repathInstance)(inst, inst.path);
59
+ const test = (0, PlaceVal_1.fillPlace)(inst, child, kctx);
60
+ const met = (0, FuncBaseVal_1.trialUnify)(kctx, child.clone(kctx), test);
61
+ return undefined !== met && met.canon === child.canon;
62
+ };
63
+ if (true === data?.isMap) {
64
+ const peg = {};
65
+ for (const key of Object.keys(data.peg)) {
66
+ const kctx = ctx.descend(key);
67
+ if (keeps(data.peg[key], kctx)) {
68
+ peg[key] = data.peg[key].clone(kctx);
69
+ }
70
+ }
71
+ return new MapVal_1.MapVal({ peg }, ctx);
72
+ }
73
+ if (true === data?.isList) {
74
+ const peg = [];
75
+ for (const el of data.peg) {
76
+ // The element context is the position it will END UP at, which
77
+ // is its index in the RESULT: dropping the third of five moves
78
+ // the fourth up, and a kept element must be pathed where it
79
+ // lands rather than where it came from.
80
+ const ectx = ctx.descend(String(peg.length));
81
+ if (keeps(el, ectx)) {
82
+ peg.push(el.clone(ectx));
83
+ }
84
+ }
85
+ return new ListVal_1.ListVal({ peg }, ctx);
86
+ }
87
+ return (0, err_1.makeNilErr)(ctx, 'filter_data', this);
88
+ }
89
+ } /* node:coverage ignore next 5 */
90
+ exports.FilterFuncVal = FilterFuncVal;
91
+ //# sourceMappingURL=FilterFuncVal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterFuncVal.js","sourceRoot":"","sources":["../../src/val/FilterFuncVal.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AA0CpD,gCAAmC;AACnC,qCAAiC;AACjC,uCAAmC;AACnC,+CAAuD;AACvD,+BAAsC;AACtC,yCAAsC;AAGtC,MAAM,aAAc,SAAQ,yBAAW;IAOrC,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAVlB,iBAAY,GAAG,IAAI,CAAA;QAEnB,iEAAiE;QACjE,kDAAkD;QAClD,WAAM,GAAG,IAAI,CAAA;IAOb,CAAC;IAGD,QAAQ;QACN,OAAO,QAAQ,CAAA;IACjB,CAAC;IAGD,mEAAmE;IACnE,mEAAmE;IACnE,iEAAiE;IACjE,EAAE;IACF,oEAAoE;IACpE,kEAAkE;IAClE,iEAAiE;IACjE,oEAAoE;IACpE,wDAAwD;IACxD,OAAO,CAAC,IAAkB,EAAE,KAAY;QACtC,OAAO,IAAI,CAAA;IACb,CAAC;IAGD,KAAK,CAAC,IAAS,EAAE,GAAiB;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;QAE1C,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YAC1B,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,MAAM,IAAI,GAAQ,IAAI,CAAC,CAAC,CAAC,CAAA;QACzB,MAAM,IAAI,GAAQ,IAAI,CAAC,CAAC,CAAC,CAAA;QAEzB,mEAAmE;QACnE,iEAAiE;QACjE,0CAA0C;QAC1C,EAAE;QACF,iEAAiE;QACjE,iEAAiE;QACjE,mEAAmE;QACnE,MAAM,KAAK,GAAG,CAAC,KAAU,EAAE,IAAkB,EAAW,EAAE;YACxD,4DAA4D;YAC5D,6DAA6D;YAC7D,+DAA+D;YAC/D,4DAA4D;YAC5D,4DAA4D;YAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAA;YAC5C,IAAA,oBAAc,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;YAC/B,MAAM,IAAI,GAAG,IAAA,oBAAS,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;YACzC,MAAM,GAAG,GAAG,IAAA,wBAAU,EAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;YACrD,OAAO,SAAS,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAA;QACvD,CAAC,CAAA;QAED,IAAI,IAAI,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC;YACzB,MAAM,GAAG,GAAwB,EAAE,CAAA;YACnC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxC,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;gBAC7B,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC;oBAC/B,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBACtC,CAAC;YACH,CAAC;YACD,OAAO,IAAI,eAAM,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,CAAA;QACjC,CAAC;QAED,IAAI,IAAI,KAAK,IAAI,EAAE,MAAM,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAU,EAAE,CAAA;YACrB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,GAAY,EAAE,CAAC;gBACnC,+DAA+D;gBAC/D,+DAA+D;gBAC/D,4DAA4D;gBAC5D,wCAAwC;gBACxC,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;gBAC5C,IAAI,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;oBACpB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;gBAC1B,CAAC;YACH,CAAC;YACD,OAAO,IAAI,iBAAO,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,CAAA;QAClC,CAAC;QAED,OAAO,IAAA,gBAAU,EAAC,GAAG,EAAE,aAAa,EAAE,IAAI,CAAC,CAAA;IAC7C,CAAC;CAEF,CAAC,iCAAiC;QAIjC,aAAa"}
@@ -1,16 +1,21 @@
1
1
  import type { Val, ValSpec } from '../type';
2
2
  import { AontuContext } from '../ctx';
3
3
  import { FeatureVal } from '../val/FeatureVal';
4
+ declare function trialUnify(ctx: AontuContext, a: Val, b: Val): Val | undefined;
4
5
  declare class FuncBaseVal extends FeatureVal {
5
6
  isFunc: boolean;
6
7
  isGenable: boolean;
8
+ staged: boolean;
7
9
  constructor(spec: ValSpec, ctx?: AontuContext);
8
10
  validateArgs(args: Val[], min: number): void;
9
11
  make(ctx: AontuContext, _spec: ValSpec): Val;
12
+ driveStagedArgs(ctx: AontuContext, count: number): boolean;
13
+ clone(ctx: AontuContext, spec?: ValSpec): Val;
14
+ residuate(peer: Val, ctx: AontuContext): Val;
10
15
  unify(peer: Val, ctx: AontuContext): Val;
11
16
  get canon(): string;
12
17
  funcname(): string;
13
18
  prepare(_ctx: AontuContext, args: Val[]): Val[] | null;
14
19
  resolve(ctx: AontuContext, _args: Val[]): Val;
15
20
  }
16
- export { FuncBaseVal, };
21
+ export { trialUnify, FuncBaseVal, };
@@ -2,6 +2,7 @@
2
2
  /* Copyright (c) 2021-2025 Richard Rodger, MIT License */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.FuncBaseVal = void 0;
5
+ exports.trialUnify = trialUnify;
5
6
  const type_1 = require("../type");
6
7
  const unify_1 = require("../unify");
7
8
  const utility_1 = require("../utility");
@@ -9,11 +10,46 @@ const err_1 = require("../err");
9
10
  const top_1 = require("./top");
10
11
  const ConjunctVal_1 = require("../val/ConjunctVal");
11
12
  const FeatureVal_1 = require("../val/FeatureVal");
13
+ const PlaceVal_1 = require("../val/PlaceVal");
14
+ // A TRIAL meet: does `a` unify with `b`, and if so as what? Failure is
15
+ // an ANSWER here rather than an error, which is exactly what
16
+ // DisjunctVal already needs when it tries each member against a peer —
17
+ // so this is that mechanism (`ctx._trialMode`, which makes makeNilErr
18
+ // return the shared TRIAL_NIL instead of allocating and recording),
19
+ // lent to the combinators that select by unifiability.
20
+ //
21
+ // The error list and the trial flag are saved and restored in a
22
+ // `finally`: a trial that throws must not leave the surrounding
23
+ // evaluation collapsing every later error into the sentinel.
24
+ function trialUnify(ctx, a, b) {
25
+ const savedErr = ctx.err;
26
+ const savedTrial = ctx._trialMode;
27
+ const trialErr = [];
28
+ ctx.err = trialErr;
29
+ ctx._trialMode = true;
30
+ let out;
31
+ try {
32
+ out = (0, unify_1.unite)(ctx, a, b, 'trial');
33
+ }
34
+ finally {
35
+ ctx.err = savedErr;
36
+ ctx._trialMode = savedTrial;
37
+ }
38
+ return 0 < trialErr.length || out.isNil ? undefined : out;
39
+ }
12
40
  class FuncBaseVal extends FeatureVal_1.FeatureVal {
13
41
  constructor(spec, ctx) {
14
42
  super(spec, ctx);
15
43
  this.isFunc = true;
16
44
  this.isGenable = true;
45
+ // THE STAGING RULE (G8 phase 0, see AontuContext.settle). A func
46
+ // whose answer depends on WHERE IT IS -- `key()`, whose answer is a
47
+ // segment of its own path, and the generation combinators, whose
48
+ // data argument can still be merged into by a sibling -- sets this
49
+ // and residuates until the model stops moving. Everything else
50
+ // resolves as soon as its arguments are done, which is the rule that
51
+ // has always been here.
52
+ this.staged = false;
17
53
  // console.log('FBV', this.id, this.constructor.name, this.peg?.[0]?.canon)
18
54
  }
19
55
  validateArgs(args, min) {
@@ -26,7 +62,103 @@ class FuncBaseVal extends FeatureVal_1.FeatureVal {
26
62
  make(ctx, _spec) {
27
63
  return (0, err_1.makeNilErr)(ctx, 'func:' + this.funcname(), this, undefined, 'make');
28
64
  }
65
+ // Drive the first `count` arguments IN PLACE, every pass — not only
66
+ // on the settle pass. A staged func waits for the model to settle,
67
+ // and its own arguments are part of that model: leaving them
68
+ // standing until settle would guarantee the model was still moving
69
+ // when settle arrived. Answers whether they are all done, which is
70
+ // the other half of "ready to fire".
71
+ driveStagedArgs(ctx, count) {
72
+ const TOP = (0, top_1.top)();
73
+ let alldone = true;
74
+ // THE SNAPSHOT WAITS FOR THE SOURCE (the spread-then-pack defect,
75
+ // use-cases/BUGS.md pack-refs family). A reference resolving inside
76
+ // a staged argument is this argument's SNAPSHOT of its source, and
77
+ // the snapshot is not part of the tree: a spread-injected relative
78
+ // reference inside a too-early copy dangles at the argument's
79
+ // location (`.containerPort` rebased under the generator, where no
80
+ // root traversal reaches it) and the generator never fires. The
81
+ // `argsnap` flag makes RefVal.find defer until the target has
82
+ // finished resolving IN THE TREE — where its own spreads and
83
+ // relative references answer at their real location — and only then
84
+ // take the copy. Inherited by every descended ctx, so a reference
85
+ // anywhere in the argument subtree waits the same way.
86
+ const actx = ctx.clone({});
87
+ actx.argsnap = true;
88
+ for (let i = 0; i < count && i < this.peg.length; i++) {
89
+ const arg = this.peg[i];
90
+ if (!arg.done) {
91
+ // Charged to the depth budget, as FuncBaseVal's own arg loop is:
92
+ // this recurses without going through `unite`.
93
+ this.peg[i] = (0, unify_1.withDepth)(ctx, arg, TOP, () => arg.unify(TOP, actx));
94
+ }
95
+ alldone = alldone && true === this.peg[i].done;
96
+ }
97
+ return alldone;
98
+ }
99
+ // THE PER-DESTINATION INSTANTIATION RULE (ADR-005). The default
100
+ // clone shares the argument array AND the argument Vals — pinned
101
+ // sharing for the move()/copy() ghost artifacts (test/spec/func.tsv,
102
+ // ghost-*-innard-canon) — but a clone that is a template INSTANCE
103
+ // must own the full inner structure: with the args shared,
104
+ // `pack($.names, close({name: key()}))` resolved key() once inside
105
+ // the one shared inner map and stamped the FIRST child's key on
106
+ // every child (use-cases/BUGS.md §8). The `dup` spec flag asks for
107
+ // that depth; everything else keeps the sharing it has always had.
108
+ clone(ctx, spec) {
109
+ const out = super.clone(ctx, spec);
110
+ if (true === spec?.dup && Array.isArray(this.peg)) {
111
+ // Every argument is a Val by construction (the parser builds
112
+ // them; make() rebuilds from driven Vals), as the Go twin's
113
+ // []Val typing states outright. The instantiation sites then
114
+ // normalise every path in the clone (repathInstance), so the
115
+ // argument-shaped parse paths never leak into an instance.
116
+ out.peg = this.peg.map((a) => a.clone(ctx, { dup: true }));
117
+ }
118
+ return out;
119
+ }
120
+ // The shape a staged func holds while it waits: not done, so the pass
121
+ // loop keeps going; unchanged against TOP, so nothing reads an answer
122
+ // it has not given; and collapsed against an identical twin at the
123
+ // same position, so `key() & key()` does not grow a conjunct per pass.
124
+ residuate(peer, ctx) {
125
+ this.notdone();
126
+ if (peer.isTop || (peer.id === this.id)) {
127
+ // Cloned rather than returned: a driver that met the same object
128
+ // twice in one pass would charge the revisit budget and report
129
+ // `unify_cycle`.
130
+ return this.clone(ctx);
131
+ }
132
+ if (peer.isNil) {
133
+ return peer;
134
+ }
135
+ if (peer.isFunc
136
+ && peer.funcname() === this.funcname()
137
+ && peer.path.join('.') === this.path.join('.')
138
+ && peer.canon === this.canon) {
139
+ return this;
140
+ }
141
+ return new ConjunctVal_1.ConjunctVal({ peg: [this, peer] }, ctx);
142
+ }
29
143
  unify(peer, ctx) {
144
+ if (this.staged && !ctx.settle) {
145
+ return this.residuate(peer, ctx);
146
+ }
147
+ // THE PLACEHOLDER (G8 phase 3, see PlaceVal). A call holding a hole
148
+ // waits for a peer, and the peer is what fills it: the call is
149
+ // rebuilt with the hole replaced and resolved on the spot, so
150
+ // `upper(_) & hello` is `"HELLO"` and not `"HELLO" & "hello"` --
151
+ // the peer went INTO the call, it is not also a constraint on the
152
+ // way out.
153
+ if (!peer.isTop && !peer.isNil && this.id !== peer.id && (0, PlaceVal_1.hasPlace)(this)) {
154
+ // TWO HOLES AND NOTHING TO FILL THEM. `upper(_) & lower(_)` has
155
+ // no value on either side, and picking one call to be the other's
156
+ // filling would be inventing an order the language does not have.
157
+ if ((0, PlaceVal_1.hasPlace)(peer)) {
158
+ return (0, err_1.makeNilErr)(ctx, 'place_pair', this, peer);
159
+ }
160
+ return (0, PlaceVal_1.fillPlace)(this, peer, ctx).unify((0, top_1.top)(), ctx);
161
+ }
30
162
  const TOP = (0, top_1.top)();
31
163
  const te = ctx.explain && (0, utility_1.explainOpen)(ctx, ctx.explain, 'Func:' + this.funcname(), this, peer);
32
164
  // const sc = this.id + '=' + this.canon
@@ -54,7 +186,13 @@ class FuncBaseVal extends FeatureVal_1.FeatureVal {
54
186
  // console.log('FUNCBASE-UNIFY-PEG-A', arg.canon)
55
187
  let newarg = arg;
56
188
  if (!arg.done) {
57
- newarg = arg.unify(TOP, te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'ARG') }) : ctx);
189
+ // Charged to the depth budget: this recurses without going
190
+ // through `unite`, so the counter would otherwise stay flat
191
+ // while the stack grows (see withDepth in unify.ts). The
192
+ // arg context is built OUTSIDE the closure so its explain
193
+ // ternary stays one branch rather than one per call.
194
+ const argctx = te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'ARG') }) : ctx;
195
+ newarg = (0, unify_1.withDepth)(ctx, arg, TOP, () => arg.unify(TOP, argctx));
58
196
  newtype = newtype || newarg.mark.type;
59
197
  newhide = newhide || newarg.mark.hide;
60
198
  // console.log('FUNCBASE-UNIFY-PEG-B', arg.canon, arg.done, '->', newarg.canon, newarg.done)
@@ -68,13 +206,29 @@ class FuncBaseVal extends FeatureVal_1.FeatureVal {
68
206
  if (pegdone) {
69
207
  const resolved = this.resolve(ctx, newpeg);
70
208
  // console.log('FUNC-RESOLVED', ctx.cc, resolved?.canon)
71
- out = resolved.done && peer.isTop ? resolved :
209
+ // The TOP peer is DROPPED as the unit it is — unless it
210
+ // carries an identity (G4 phase 1), which is content rather
211
+ // than the unit: `id(x) & id(y)` resolves both sides to a
212
+ // top, and taking this shortcut would silently keep one
213
+ // name and lose the other instead of refusing the pair.
214
+ out = resolved.done && peer.isTop && null == peer.entity ? resolved :
72
215
  (0, unify_1.unite)(te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'PEG') }) : ctx, resolved, peer, 'func-' + this.funcname() + '/' + this.id);
73
216
  (0, utility_1.propagateMarks)(this, out);
74
217
  // TODO: make should handle this using ctx?
75
218
  out.site.row = this.site.row;
76
219
  out.site.col = this.site.col;
77
220
  out.site.url = this.site.url;
221
+ // THE SPAN COMES WITH THE POSITION, always. Moving row and
222
+ // col onto the result while leaving its own text behind
223
+ // produced a site that contradicted itself: `close({...})`
224
+ // reported the call's column and the map's `{`, so reading
225
+ // the document at (row, col, len) found `c` where `src` said
226
+ // `{`. A consumer following the verification contract would
227
+ // refuse every such repair; one skipping it would edit the
228
+ // wrong token. Whatever the position names, the text names
229
+ // too. Twin: the same assignment in go/func.go.
230
+ out.site.len = this.site.len;
231
+ out.site.src = this.site.src;
78
232
  out.path = this.path;
79
233
  why += 'pegdone';
80
234
  }
@@ -85,6 +239,17 @@ class FuncBaseVal extends FeatureVal_1.FeatureVal {
85
239
  out.site.row = this.site.row;
86
240
  out.site.col = this.site.col;
87
241
  out.site.url = this.site.url;
242
+ // THE SPAN COMES WITH THE POSITION, always. Moving row and
243
+ // col onto the result while leaving its own text behind
244
+ // produced a site that contradicted itself: `close({...})`
245
+ // reported the call's column and the map's `{`, so reading
246
+ // the document at (row, col, len) found `c` where `src` said
247
+ // `{`. A consumer following the verification contract would
248
+ // refuse every such repair; one skipping it would edit the
249
+ // wrong token. Whatever the position names, the text names
250
+ // too. Twin: the same assignment in go/func.go.
251
+ out.site.len = this.site.len;
252
+ out.site.src = this.site.src;
88
253
  out.path = this.path;
89
254
  why += 'top';
90
255
  }
@@ -102,6 +267,17 @@ class FuncBaseVal extends FeatureVal_1.FeatureVal {
102
267
  out.site.row = this.site.row;
103
268
  out.site.col = this.site.col;
104
269
  out.site.url = this.site.url;
270
+ // THE SPAN COMES WITH THE POSITION, always. Moving row and
271
+ // col onto the result while leaving its own text behind
272
+ // produced a site that contradicted itself: `close({...})`
273
+ // reported the call's column and the map's `{`, so reading
274
+ // the document at (row, col, len) found `c` where `src` said
275
+ // `{`. A consumer following the verification contract would
276
+ // refuse every such repair; one skipping it would edit the
277
+ // wrong token. Whatever the position names, the text names
278
+ // too. Twin: the same assignment in go/func.go.
279
+ out.site.len = this.site.len;
280
+ out.site.src = this.site.src;
105
281
  out.path = this.path;
106
282
  why += 'defer';
107
283
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FuncBaseVal.js","sourceRoot":"","sources":["../../src/val/FuncBaseVal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FuncBaseVal.js","sourceRoot":"","sources":["../../src/val/FuncBaseVal.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"HideFuncVal.js","sourceRoot":"","sources":["../../src/val/HideFuncVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAYzD,gCAAmC;AAGnC,wCAImB;AAGnB,+CAA2C;AAG3C,MAAM,WAAY,SAAQ,yBAAW;IAKnC,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QARlB,eAAU,GAAG,IAAI,CAAA;QAUf,qCAAqC;QACrC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;QACtB,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;IACxB,CAAC;IAGD,IAAI,CAAC,IAAkB,EAAE,IAAa;QACpC,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IAED,QAAQ;QACN,OAAO,MAAM,CAAA;IACf,CAAC;IAGD;;;;;;;;;;;;MAYE;IAGF,OAAO,CAAC,GAAiB,EAAE,IAAW;QACpC,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAA,gBAAU,EAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;QACjD,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YACf,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAEpB,IAAA,cAAI,EAAC,GAAG,EAAE,CAAC,IAAiC,EAAE,GAAQ,EAAE,EAAE;gBACxD,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;gBACpB,OAAO,GAAG,CAAA;YACZ,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,GAAG,CAAA;IACZ,CAAC;CACF,CAAC,iCAAiC;QAIjC,WAAW"}
1
+ {"version":3,"file":"HideFuncVal.js","sourceRoot":"","sources":["../../src/val/HideFuncVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAYzD,gCAAmC;AAGnC,wCAEmB;AAGnB,+CAA2C;AAG3C,MAAM,WAAY,SAAQ,yBAAW;IAKnC,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QARlB,eAAU,GAAG,IAAI,CAAA;QAUf,qCAAqC;QACrC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;QACtB,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;IACxB,CAAC;IAGD,IAAI,CAAC,IAAkB,EAAE,IAAa;QACpC,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IAED,QAAQ;QACN,OAAO,MAAM,CAAA;IACf,CAAC;IAGD;;;;;;;;;;;;MAYE;IAGF,OAAO,CAAC,GAAiB,EAAE,IAAW;QACpC,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAA,gBAAU,EAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;QACjD,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YACf,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAEpB,IAAA,cAAI,EAAC,GAAG,EAAE,CAAC,IAAiC,EAAE,GAAQ,EAAE,EAAE;gBACxD,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;gBACpB,OAAO,GAAG,CAAA;YACZ,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,GAAG,CAAA;IACZ,CAAC;CACF,CAAC,iCAAiC;QAIjC,WAAW"}
@@ -0,0 +1,13 @@
1
+ import type { Val, ValSpec } from '../type';
2
+ import { AontuContext } from '../ctx';
3
+ import { FuncBaseVal } from './FuncBaseVal';
4
+ import { TopVal } from './TopVal';
5
+ export declare function idName(v: any): string | undefined;
6
+ declare class IdFuncVal extends FuncBaseVal {
7
+ isIdFunc: boolean;
8
+ constructor(spec: ValSpec, ctx?: AontuContext);
9
+ make(_ctx: AontuContext, spec: ValSpec): Val;
10
+ funcname(): string;
11
+ resolve(ctx: AontuContext, args: Val[]): import("./NilVal").NilVal | TopVal;
12
+ }
13
+ export { IdFuncVal, };