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.
- package/README.md +88 -0
- package/bin/aontu-mcp.js +4 -0
- package/dist/agentsmd.d.ts +16 -0
- package/dist/agentsmd.js +107 -0
- package/dist/agentsmd.js.map +1 -0
- package/dist/aontu.d.ts +14 -3
- package/dist/aontu.js +145 -4
- package/dist/aontu.js.map +1 -1
- package/dist/cli.d.ts +44 -1
- package/dist/cli.js +2401 -44
- package/dist/cli.js.map +1 -1
- package/dist/ctx.d.ts +16 -0
- package/dist/ctx.js +44 -0
- package/dist/ctx.js.map +1 -1
- package/dist/diff.d.ts +22 -0
- package/dist/diff.js +141 -0
- package/dist/diff.js.map +1 -0
- package/dist/err.d.ts +3 -1
- package/dist/err.js +48 -8
- package/dist/err.js.map +1 -1
- package/dist/graph.d.ts +16 -0
- package/dist/graph.js +73 -0
- package/dist/graph.js.map +1 -0
- package/dist/hcanon.d.ts +3 -0
- package/dist/hcanon.js +146 -0
- package/dist/hcanon.js.map +1 -0
- package/dist/hints.js +223 -5
- package/dist/hints.js.map +1 -1
- package/dist/jsonschema.d.ts +20 -0
- package/dist/jsonschema.js +391 -0
- package/dist/jsonschema.js.map +1 -0
- package/dist/lang.js +698 -35
- package/dist/lang.js.map +1 -1
- package/dist/lsp.d.ts +9 -2
- package/dist/lsp.js +262 -46
- package/dist/lsp.js.map +1 -1
- package/dist/mcp-server.d.ts +20 -0
- package/dist/mcp-server.js +147 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/mcp.d.ts +42 -0
- package/dist/mcp.js +814 -0
- package/dist/mcp.js.map +1 -0
- package/dist/mod-tool.d.ts +58 -0
- package/dist/mod-tool.js +498 -0
- package/dist/mod-tool.js.map +1 -0
- package/dist/mod.d.ts +31 -0
- package/dist/mod.js +250 -0
- package/dist/mod.js.map +1 -0
- package/dist/patch.d.ts +44 -0
- package/dist/patch.js +506 -0
- package/dist/patch.js.map +1 -0
- package/dist/provenance.d.ts +40 -0
- package/dist/provenance.js +335 -0
- package/dist/provenance.js.map +1 -0
- package/dist/query.d.ts +27 -0
- package/dist/query.js +294 -0
- package/dist/query.js.map +1 -0
- package/dist/reach.d.ts +14 -0
- package/dist/reach.js +140 -0
- package/dist/reach.js.map +1 -0
- package/dist/relation.d.ts +19 -0
- package/dist/relation.js +305 -0
- package/dist/relation.js.map +1 -0
- package/dist/report-sarif.d.ts +14 -0
- package/dist/report-sarif.js +102 -0
- package/dist/report-sarif.js.map +1 -0
- package/dist/site.d.ts +4 -0
- package/dist/site.js +31 -0
- package/dist/site.js.map +1 -1
- package/dist/std.d.ts +1 -0
- package/dist/std.js +73 -0
- package/dist/std.js.map +1 -0
- package/dist/subsume.d.ts +39 -0
- package/dist/subsume.js +526 -0
- package/dist/subsume.js.map +1 -0
- package/dist/trim.d.ts +19 -0
- package/dist/trim.js +155 -0
- package/dist/trim.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/type.d.ts +17 -1
- package/dist/type.js.map +1 -1
- package/dist/unify.d.ts +3 -1
- package/dist/unify.js +287 -18
- package/dist/unify.js.map +1 -1
- package/dist/utility.d.ts +9 -1
- package/dist/utility.js +122 -1
- package/dist/utility.js.map +1 -1
- package/dist/val/AggFuncVal.d.ts +33 -0
- package/dist/val/AggFuncVal.js +202 -0
- package/dist/val/AggFuncVal.js.map +1 -0
- package/dist/val/ArithFuncVal.d.ts +31 -0
- package/dist/val/ArithFuncVal.js +62 -0
- package/dist/val/ArithFuncVal.js.map +1 -0
- package/dist/val/BagVal.d.ts +5 -0
- package/dist/val/BagVal.js +96 -5
- package/dist/val/BagVal.js.map +1 -1
- package/dist/val/CloseFuncVal.js +9 -1
- package/dist/val/CloseFuncVal.js.map +1 -1
- package/dist/val/ConjunctVal.d.ts +1 -1
- package/dist/val/ConjunctVal.js +19 -0
- package/dist/val/ConjunctVal.js.map +1 -1
- package/dist/val/ConstraintVal.d.ts +48 -1
- package/dist/val/ConstraintVal.js +1501 -110
- package/dist/val/ConstraintVal.js.map +1 -1
- package/dist/val/CopyFuncVal.d.ts +1 -2
- package/dist/val/CopyFuncVal.js +7 -0
- package/dist/val/CopyFuncVal.js.map +1 -1
- package/dist/val/Decimal.d.ts +1 -0
- package/dist/val/Decimal.js +13 -0
- package/dist/val/Decimal.js.map +1 -1
- package/dist/val/DeprecateFuncVal.d.ts +11 -0
- package/dist/val/DeprecateFuncVal.js +47 -0
- package/dist/val/DeprecateFuncVal.js.map +1 -0
- package/dist/val/DisjunctVal.js +130 -21
- package/dist/val/DisjunctVal.js.map +1 -1
- package/dist/val/EachFuncVal.d.ts +15 -0
- package/dist/val/EachFuncVal.js +75 -0
- package/dist/val/EachFuncVal.js.map +1 -0
- package/dist/val/ExpectVal.d.ts +1 -0
- package/dist/val/ExpectVal.js +41 -4
- package/dist/val/ExpectVal.js.map +1 -1
- package/dist/val/FeatureVal.js +1 -1
- package/dist/val/FeatureVal.js.map +1 -1
- package/dist/val/FilterFuncVal.d.ts +15 -0
- package/dist/val/FilterFuncVal.js +91 -0
- package/dist/val/FilterFuncVal.js.map +1 -0
- package/dist/val/FuncBaseVal.d.ts +6 -1
- package/dist/val/FuncBaseVal.js +178 -2
- package/dist/val/FuncBaseVal.js.map +1 -1
- package/dist/val/HideFuncVal.js.map +1 -1
- package/dist/val/IdFuncVal.d.ts +13 -0
- package/dist/val/IdFuncVal.js +54 -0
- package/dist/val/IdFuncVal.js.map +1 -0
- package/dist/val/JunctionVal.js +7 -1
- package/dist/val/JunctionVal.js.map +1 -1
- package/dist/val/KeyFuncVal.d.ts +1 -1
- package/dist/val/KeyFuncVal.js +38 -30
- package/dist/val/KeyFuncVal.js.map +1 -1
- package/dist/val/ListVal.js +117 -17
- package/dist/val/ListVal.js.map +1 -1
- package/dist/val/LowerFuncVal.js.map +1 -1
- package/dist/val/MapVal.js +102 -8
- package/dist/val/MapVal.js.map +1 -1
- package/dist/val/MatchFuncVal.d.ts +15 -0
- package/dist/val/MatchFuncVal.js +107 -0
- package/dist/val/MatchFuncVal.js.map +1 -0
- package/dist/val/MoveFuncVal.js.map +1 -1
- package/dist/val/NilVal.js +24 -0
- package/dist/val/NilVal.js.map +1 -1
- package/dist/val/OpBaseVal.d.ts +1 -1
- package/dist/val/OpBaseVal.js +24 -2
- package/dist/val/OpBaseVal.js.map +1 -1
- package/dist/val/OpenFuncVal.js +4 -1
- package/dist/val/OpenFuncVal.js.map +1 -1
- package/dist/val/PackFuncVal.d.ts +15 -0
- package/dist/val/PackFuncVal.js +108 -0
- package/dist/val/PackFuncVal.js.map +1 -0
- package/dist/val/PathFuncVal.js.map +1 -1
- package/dist/val/PlaceVal.d.ts +13 -0
- package/dist/val/PlaceVal.js +131 -0
- package/dist/val/PlaceVal.js.map +1 -0
- package/dist/val/PlusOpVal.js +11 -2
- package/dist/val/PlusOpVal.js.map +1 -1
- package/dist/val/PrefFuncVal.js.map +1 -1
- package/dist/val/PrefVal.d.ts +2 -2
- package/dist/val/PrefVal.js +78 -23
- package/dist/val/PrefVal.js.map +1 -1
- package/dist/val/RefVal.d.ts +1 -1
- package/dist/val/RefVal.js +158 -30
- package/dist/val/RefVal.js.map +1 -1
- package/dist/val/ReferFuncVal.d.ts +36 -0
- package/dist/val/ReferFuncVal.js +303 -0
- package/dist/val/ReferFuncVal.js.map +1 -0
- package/dist/val/ScalarKindVal.d.ts +1 -2
- package/dist/val/ScalarKindVal.js +0 -11
- package/dist/val/ScalarKindVal.js.map +1 -1
- package/dist/val/TopVal.js.map +1 -1
- package/dist/val/TypeFuncVal.js.map +1 -1
- package/dist/val/UpperFuncVal.js.map +1 -1
- package/dist/val/Val.d.ts +9 -2
- package/dist/val/Val.js +150 -4
- package/dist/val/Val.js.map +1 -1
- package/dist/val/VarVal.js.map +1 -1
- package/dist/val/arith.d.ts +6 -0
- package/dist/val/arith.js +170 -0
- package/dist/val/arith.js.map +1 -0
- package/dist/vet.d.ts +45 -0
- package/dist/vet.js +776 -0
- package/dist/vet.js.map +1 -0
- package/dist/walk.d.ts +2 -0
- package/dist/walk.js +91 -0
- package/dist/walk.js.map +1 -0
- package/grammar/aontu.gbnf +130 -0
- package/grammar/aontu.lark +113 -0
- package/package.json +30 -15
- package/skill/SKILL.md +37 -0
- package/skill/error-codes.md +62 -0
- package/skill/examples.md +99 -0
- package/skill/grammar-card.md +57 -0
- package/src/agentsmd.ts +135 -0
- package/src/aontu.ts +192 -4
- package/src/cli.ts +2858 -71
- package/src/ctx.ts +81 -0
- package/src/diff.ts +196 -0
- package/src/err.ts +52 -8
- package/src/graph.ts +135 -0
- package/src/hcanon.ts +169 -0
- package/src/hints.ts +271 -5
- package/src/jsonschema.ts +511 -0
- package/src/lang.ts +779 -37
- package/src/lsp.ts +281 -47
- package/src/mcp-server.ts +187 -0
- package/src/mcp.ts +993 -0
- package/src/mod-tool.ts +679 -0
- package/src/mod.ts +344 -0
- package/src/patch.ts +624 -0
- package/src/provenance.ts +430 -0
- package/src/query.ts +379 -0
- package/src/reach.ts +184 -0
- package/src/relation.ts +395 -0
- package/src/report-sarif.ts +137 -0
- package/src/site.ts +36 -1
- package/src/std.ts +73 -0
- package/src/subsume.ts +690 -0
- package/src/trim.ts +195 -0
- package/src/tsconfig.json +10 -4
- package/src/type.ts +51 -2
- package/src/unify.ts +311 -16
- package/src/utility.ts +139 -1
- package/src/val/AggFuncVal.ts +319 -0
- package/src/val/ArithFuncVal.ts +108 -0
- package/src/val/BagVal.ts +101 -4
- package/src/val/CloseFuncVal.ts +9 -1
- package/src/val/ConjunctVal.ts +20 -0
- package/src/val/ConstraintVal.ts +1699 -116
- package/src/val/CopyFuncVal.ts +7 -1
- package/src/val/Decimal.ts +15 -0
- package/src/val/DeprecateFuncVal.ts +84 -0
- package/src/val/DisjunctVal.ts +139 -28
- package/src/val/EachFuncVal.ts +133 -0
- package/src/val/ExpectVal.ts +43 -6
- package/src/val/FeatureVal.ts +1 -1
- package/src/val/FilterFuncVal.ts +154 -0
- package/src/val/FuncBaseVal.ts +200 -3
- package/src/val/HideFuncVal.ts +0 -2
- package/src/val/IdFuncVal.ts +91 -0
- package/src/val/JunctionVal.ts +7 -1
- package/src/val/KeyFuncVal.ts +39 -35
- package/src/val/ListVal.ts +125 -18
- package/src/val/LowerFuncVal.ts +0 -1
- package/src/val/MapVal.ts +110 -8
- package/src/val/MatchFuncVal.ts +176 -0
- package/src/val/MoveFuncVal.ts +0 -2
- package/src/val/NilVal.ts +25 -0
- package/src/val/OpBaseVal.ts +26 -3
- package/src/val/OpenFuncVal.ts +4 -2
- package/src/val/PackFuncVal.ts +175 -0
- package/src/val/PathFuncVal.ts +0 -1
- package/src/val/PlaceVal.ts +193 -0
- package/src/val/PlusOpVal.ts +11 -2
- package/src/val/PrefFuncVal.ts +0 -1
- package/src/val/PrefVal.ts +79 -36
- package/src/val/RefVal.ts +163 -30
- package/src/val/ReferFuncVal.ts +387 -0
- package/src/val/ScalarKindVal.ts +0 -13
- package/src/val/TopVal.ts +0 -1
- package/src/val/TypeFuncVal.ts +0 -2
- package/src/val/UpperFuncVal.ts +0 -1
- package/src/val/Val.ts +213 -3
- package/src/val/VarVal.ts +0 -1
- package/src/val/arith.ts +316 -0
- package/src/vet.ts +992 -0
- package/src/walk.ts +99 -0
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* Copyright (c) 2025 Richard Rodger, MIT License */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.ReferVal = exports.ReferFuncVal = void 0;
|
|
5
|
+
exports.parseAddress = parseAddress;
|
|
6
|
+
exports.findEntity = findEntity;
|
|
7
|
+
const type_1 = require("../type");
|
|
8
|
+
const err_1 = require("../err");
|
|
9
|
+
const FuncBaseVal_1 = require("./FuncBaseVal");
|
|
10
|
+
const FeatureVal_1 = require("./FeatureVal");
|
|
11
|
+
const StringVal_1 = require("./StringVal");
|
|
12
|
+
const unify_1 = require("../unify");
|
|
13
|
+
const top_1 = require("./top");
|
|
14
|
+
const utility_1 = require("../utility");
|
|
15
|
+
// A segment of the path INSIDE an entity. The entity name's own
|
|
16
|
+
// grammar (no dots) is what makes the split unambiguous: everything
|
|
17
|
+
// before the first dot names the entity, everything after walks its
|
|
18
|
+
// value.
|
|
19
|
+
const ADDR_SEGMENT = /^[A-Za-z0-9_-]+$/;
|
|
20
|
+
const ADDR_NAME = /^[A-Za-z0-9_/-]+$/;
|
|
21
|
+
// The address a string spells, or undefined when it does not spell
|
|
22
|
+
// one. `svc/auth` is the entity; `svc/auth.ports.http` is a node
|
|
23
|
+
// inside it — the two addressing schemes reconciled: `$.a.b` answers
|
|
24
|
+
// WHERE, an address answers WHAT, and beneath entity granularity the
|
|
25
|
+
// tree is authoritative again.
|
|
26
|
+
function parseAddress(s) {
|
|
27
|
+
const parts = s.split('.');
|
|
28
|
+
if (!ADDR_NAME.test(parts[0])) {
|
|
29
|
+
return undefined;
|
|
30
|
+
}
|
|
31
|
+
for (const seg of parts.slice(1)) {
|
|
32
|
+
if (!ADDR_SEGMENT.test(seg)) {
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return { name: parts[0], path: parts.slice(1) };
|
|
37
|
+
}
|
|
38
|
+
// The value an address names, or undefined when the evaluation does
|
|
39
|
+
// not (yet) have one. Pending is not failure: an entity may be
|
|
40
|
+
// declared by a later conjunct, include or spread, so `refer`
|
|
41
|
+
// residuates exactly as a forward reference does.
|
|
42
|
+
function findEntity(reg, addr) {
|
|
43
|
+
const rep = reg?.get(addr.name);
|
|
44
|
+
if (null == rep) {
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
let parent = undefined;
|
|
48
|
+
let key = undefined;
|
|
49
|
+
let val = rep;
|
|
50
|
+
for (const seg of addr.path) {
|
|
51
|
+
if (true !== val?.isMap && true !== val?.isList) {
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
const next = val.peg[seg];
|
|
55
|
+
if (null == next) {
|
|
56
|
+
return undefined;
|
|
57
|
+
}
|
|
58
|
+
parent = val;
|
|
59
|
+
key = seg;
|
|
60
|
+
val = next;
|
|
61
|
+
}
|
|
62
|
+
return { parent, key, val };
|
|
63
|
+
}
|
|
64
|
+
// concreteFlow is `t` as it enters the target: a copy with the
|
|
65
|
+
// type/hide marks cleared at every depth. The clone matters as much as
|
|
66
|
+
// the clearing — `t` is shared by every position that refers to the
|
|
67
|
+
// same thing, and clearing in place would unmark the schema itself.
|
|
68
|
+
function concreteFlow(ctx, t) {
|
|
69
|
+
let marked = false;
|
|
70
|
+
(0, utility_1.walk)(t, (_key, v) => {
|
|
71
|
+
marked = marked || v.mark.type || v.mark.hide;
|
|
72
|
+
return v;
|
|
73
|
+
});
|
|
74
|
+
// An unmarked flow type is passed THROUGH: cloning one anyway would
|
|
75
|
+
// move the site an error names, and a conflict has to point at what
|
|
76
|
+
// the author wrote.
|
|
77
|
+
if (!marked) {
|
|
78
|
+
return t;
|
|
79
|
+
}
|
|
80
|
+
const out = t.clone(ctx);
|
|
81
|
+
(0, utility_1.walk)(out, (_key, v) => {
|
|
82
|
+
v.mark.type = false;
|
|
83
|
+
v.mark.hide = false;
|
|
84
|
+
return v;
|
|
85
|
+
});
|
|
86
|
+
return out;
|
|
87
|
+
}
|
|
88
|
+
// ReferVal is what `refer(t)` RESOLVES to: the residual constraint,
|
|
89
|
+
// carrying the type to flow and — once it has met a string — the
|
|
90
|
+
// address to flow it into. A separate value from the function for the
|
|
91
|
+
// reason every residual is: the function is written once and the
|
|
92
|
+
// constraint is met many times, and only the constraint has state
|
|
93
|
+
// worth carrying.
|
|
94
|
+
class ReferVal extends FeatureVal_1.FeatureVal {
|
|
95
|
+
constructor(spec, ctx) {
|
|
96
|
+
super(spec, ctx);
|
|
97
|
+
this.isRefer = true;
|
|
98
|
+
this.isGenable = true;
|
|
99
|
+
this.tval = spec.tval ?? (0, top_1.top)();
|
|
100
|
+
this.addr = spec.addr;
|
|
101
|
+
this.addrsrc = spec.addrsrc;
|
|
102
|
+
this.held = spec.held;
|
|
103
|
+
this.dc = 0;
|
|
104
|
+
}
|
|
105
|
+
// The residual's own state — the type to flow, the address it has
|
|
106
|
+
// met, the constraints it holds — TRAVELS with the clone. A spread
|
|
107
|
+
// template holds the FUNCTION, so a template never needs this; a
|
|
108
|
+
// REFERENCE to a value that already contains a resolved link does
|
|
109
|
+
// (`z: id(a) & {u: refer() & "a"}` then `s: $.z`). Without it the
|
|
110
|
+
// clone came back as a bare `refer()` — the address silently
|
|
111
|
+
// dropped, and the copied link resolving to nothing.
|
|
112
|
+
//
|
|
113
|
+
// No path-dependence hook, though: a residual is minted at its
|
|
114
|
+
// destination, so `key()` inside a template resolves there already.
|
|
115
|
+
clone(ctx, spec) {
|
|
116
|
+
const out = super.clone(ctx, spec);
|
|
117
|
+
out.tval = this.tval;
|
|
118
|
+
out.addr = this.addr;
|
|
119
|
+
out.addrsrc = this.addrsrc;
|
|
120
|
+
out.held = this.held;
|
|
121
|
+
return out;
|
|
122
|
+
}
|
|
123
|
+
unify(peer, ctx) {
|
|
124
|
+
const p = peer;
|
|
125
|
+
// Another `refer` at the same position: one constraint, both
|
|
126
|
+
// types. `refer(A) & refer(B)` is a target that must be both.
|
|
127
|
+
if (true === p?.isRefer) {
|
|
128
|
+
return this.with(ctx, {
|
|
129
|
+
tval: (0, unify_1.unite)(ctx, this.tval, p.tval, 'refer-t'),
|
|
130
|
+
addr: this.addr ?? p.addr,
|
|
131
|
+
addrsrc: this.addrsrc ?? p.addrsrc,
|
|
132
|
+
held: null == this.held ? p.held
|
|
133
|
+
: null == p.held ? this.held
|
|
134
|
+
: (0, unify_1.unite)(ctx, this.held, p.held, 'refer-held'),
|
|
135
|
+
}, this);
|
|
136
|
+
}
|
|
137
|
+
if (null == peer || true === p.isTop) {
|
|
138
|
+
return this.settle(ctx, this);
|
|
139
|
+
}
|
|
140
|
+
if (true === p.isNil) {
|
|
141
|
+
return peer;
|
|
142
|
+
}
|
|
143
|
+
// A STRING is the ADDRESS, when there is not one yet. It is the
|
|
144
|
+
// only thing that can be: a link's value is its address.
|
|
145
|
+
if (undefined === this.addr
|
|
146
|
+
&& true === p.isScalar && 'string' === typeof p.peg) {
|
|
147
|
+
const addr = parseAddress(p.peg);
|
|
148
|
+
if (undefined === addr) {
|
|
149
|
+
return (0, err_1.makeNilErr)(ctx, 'refer_address', this, peer, 'refer', { addr: p.peg });
|
|
150
|
+
}
|
|
151
|
+
return this.with(ctx, { addr, addrsrc: p.peg }, peer);
|
|
152
|
+
}
|
|
153
|
+
// A value that can never BE a string cannot constrain one either,
|
|
154
|
+
// and no later pass can repair it — so this arm refuses rather
|
|
155
|
+
// than defers. A KIND or a constraint is not in it: `string`,
|
|
156
|
+
// `re("^svc/")` and the like are perfectly good constraints on an
|
|
157
|
+
// address, and are held below until there is one to apply them to.
|
|
158
|
+
if ((true === p.isScalar && 'string' !== typeof p.peg)
|
|
159
|
+
|| true === p.isMap || true === p.isList) {
|
|
160
|
+
return (0, err_1.makeNilErr)(ctx, 'refer_address', this, peer, 'refer');
|
|
161
|
+
}
|
|
162
|
+
// HELD: everything else waits for the address. Carried on the
|
|
163
|
+
// residual rather than parked in a conjunct, because a conjunct
|
|
164
|
+
// rebuilt every pass grows a level every pass; the held constraint
|
|
165
|
+
// meets the link the moment the address resolves, so
|
|
166
|
+
// `refer() & "x" & "y"` still conflicts and `refer() & string & "x"`
|
|
167
|
+
// still passes.
|
|
168
|
+
return this.with(ctx, {
|
|
169
|
+
held: null == this.held ? peer : (0, unify_1.unite)(ctx, this.held, peer, 'refer-held'),
|
|
170
|
+
}, this);
|
|
171
|
+
}
|
|
172
|
+
// with is the residual reshaped: every arm above answers a NEW
|
|
173
|
+
// ReferVal rather than mutating this one, because a spread template's
|
|
174
|
+
// residual is shared by every child it is applied to.
|
|
175
|
+
with(ctx, spec, site) {
|
|
176
|
+
const out = new ReferVal({}, ctx);
|
|
177
|
+
out.tval = spec.tval ?? this.tval;
|
|
178
|
+
out.addr = spec.addr ?? this.addr;
|
|
179
|
+
out.addrsrc = spec.addrsrc ?? this.addrsrc;
|
|
180
|
+
out.held = spec.held ?? this.held;
|
|
181
|
+
(0, utility_1.propagateMarks)(this, out);
|
|
182
|
+
out.site = site.site;
|
|
183
|
+
out.path = this.path;
|
|
184
|
+
return out.settle(ctx, site);
|
|
185
|
+
}
|
|
186
|
+
// settle answers the address if the evaluation can, and stays
|
|
187
|
+
// pending if it cannot YET. `site` is the value whose position the
|
|
188
|
+
// resolved string should take.
|
|
189
|
+
settle(ctx, site) {
|
|
190
|
+
if (undefined === this.addr) {
|
|
191
|
+
// NOT DONE, unlike `string` or `min(1)`. A refer without an
|
|
192
|
+
// address has not done its work — it exists to check one — and
|
|
193
|
+
// the pass loop must keep offering it the chance. The cost is
|
|
194
|
+
// that a SCHEMA mentioning a link never resolves either, so
|
|
195
|
+
// `type({from: refer($.std.Port)})` is not expressible today;
|
|
196
|
+
// G4 phase 4 records why, and what it would take.
|
|
197
|
+
this.dc = 0;
|
|
198
|
+
return this;
|
|
199
|
+
}
|
|
200
|
+
const reg = ctx?.entities;
|
|
201
|
+
const found = findEntity(reg, this.addr);
|
|
202
|
+
if (undefined === found) {
|
|
203
|
+
// PENDING, not failed — until the last pass. An entity may be
|
|
204
|
+
// declared by a later conjunct, include or spread, so `refer`
|
|
205
|
+
// residuates as a forward reference does; but within ONE
|
|
206
|
+
// evaluation the document-set is fixed, so existence IS
|
|
207
|
+
// decidable, and the final pass is where it is decided. A
|
|
208
|
+
// pending refer keeps the tree not-done, so the pass loop always
|
|
209
|
+
// reaches that pass when there is one to decide.
|
|
210
|
+
if (ctx.cc + 1 >= ctx.budget.passes) {
|
|
211
|
+
return (0, err_1.makeNilErr)(ctx, 'refer_unresolved', this, undefined, 'refer', { addr: this.addrsrc });
|
|
212
|
+
}
|
|
213
|
+
this.dc = 0;
|
|
214
|
+
return this;
|
|
215
|
+
}
|
|
216
|
+
// THE FLOW. `t` is unified into the target and written back, so
|
|
217
|
+
// every position of the entity carries it after the pass's
|
|
218
|
+
// identity merge — the same channel the merge itself uses.
|
|
219
|
+
//
|
|
220
|
+
// RE-ENTRANT ONLY ONCE PER ENTITY (use-cases/BUGS.md §19). Uniting
|
|
221
|
+
// the target drives the target's OWN subtree, and if the target
|
|
222
|
+
// links back — `a` typed-refers `b`, `b` typed-refers `a`, the
|
|
223
|
+
// shape every inverse pair has — that drives this entity again,
|
|
224
|
+
// and the two flow into each other until the depth budget or the
|
|
225
|
+
// host stack ends it. `unify_cycle` on a model whose meet plainly
|
|
226
|
+
// converges: `{k:1}` meeting `{k:1}` is a fixpoint, and the
|
|
227
|
+
// evaluator never got far enough to notice.
|
|
228
|
+
//
|
|
229
|
+
// The guard is the set of entities a flow is currently inside, on
|
|
230
|
+
// the context. A flow that would re-enter one is SKIPPED, not
|
|
231
|
+
// failed: the outer flow it is nested in is already uniting that
|
|
232
|
+
// entity, so the same information arrives by the same channel one
|
|
233
|
+
// frame up. What each flow contributes is unchanged; only the
|
|
234
|
+
// order it arrives in is, and unification does not care.
|
|
235
|
+
const flowing = (ctx._referflow ??=
|
|
236
|
+
new Set());
|
|
237
|
+
if (!this.tval.isTop && !flowing.has(this.addr.name)) {
|
|
238
|
+
flowing.add(this.addr.name);
|
|
239
|
+
try {
|
|
240
|
+
// The flowed type is CONCRETE at the target: a schema flowing
|
|
241
|
+
// into a value must not make the value a schema. Same reasoning
|
|
242
|
+
// as a reference's clone clearing marks — `refer($.std.Service)`
|
|
243
|
+
// says the target IS a Service, not that it is the definition
|
|
244
|
+
// of one — and without it the target silently stopped
|
|
245
|
+
// generating.
|
|
246
|
+
const merged = (0, unify_1.unite)(ctx, found.val, concreteFlow(ctx, this.tval), 'refer-flow');
|
|
247
|
+
if (true === merged.isNil) {
|
|
248
|
+
return merged;
|
|
249
|
+
}
|
|
250
|
+
if (undefined === found.parent) {
|
|
251
|
+
reg.set(this.addr.name, merged);
|
|
252
|
+
}
|
|
253
|
+
else {
|
|
254
|
+
found.parent.peg[found.key] = merged;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
finally {
|
|
258
|
+
flowing.delete(this.addr.name);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
// The value IS the address string: a link, not an embedding.
|
|
262
|
+
const out = new StringVal_1.StringVal({ peg: this.addrsrc }, ctx);
|
|
263
|
+
out.dc = type_1.DONE;
|
|
264
|
+
// STAMPED as a link (G4 phase 3): the value is the address string,
|
|
265
|
+
// so without this nothing downstream could tell a checked link from
|
|
266
|
+
// a literal that happens to look like one. The edge set is exactly
|
|
267
|
+
// the set of these stamps.
|
|
268
|
+
out.link = this.addrsrc;
|
|
269
|
+
(0, utility_1.propagateMarks)(this, out);
|
|
270
|
+
out.site = site.site;
|
|
271
|
+
out.path = this.path;
|
|
272
|
+
return null == this.held ? out : (0, unify_1.unite)(ctx, out, this.held, 'refer-held');
|
|
273
|
+
}
|
|
274
|
+
get canon() {
|
|
275
|
+
const t = this.tval.isTop ? '' : this.tval.canon;
|
|
276
|
+
const call = 'refer(' + t + ')' +
|
|
277
|
+
(null == this.held ? '' : '&' + this.held.canon);
|
|
278
|
+
return undefined === this.addrsrc
|
|
279
|
+
? call : call + '&' + JSON.stringify(this.addrsrc);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
exports.ReferVal = ReferVal;
|
|
283
|
+
class ReferFuncVal extends FuncBaseVal_1.FuncBaseVal {
|
|
284
|
+
constructor(spec, ctx) {
|
|
285
|
+
super(spec, ctx);
|
|
286
|
+
this.isReferFunc = true;
|
|
287
|
+
}
|
|
288
|
+
make(_ctx, spec) {
|
|
289
|
+
return new ReferFuncVal(spec);
|
|
290
|
+
}
|
|
291
|
+
funcname() {
|
|
292
|
+
return 'refer';
|
|
293
|
+
}
|
|
294
|
+
resolve(ctx, args) {
|
|
295
|
+
const out = new ReferVal({}, ctx);
|
|
296
|
+
out.tval = 0 < args.length ? args[0] : (0, top_1.top)();
|
|
297
|
+
out.site = this.site;
|
|
298
|
+
out.path = this.path;
|
|
299
|
+
return out;
|
|
300
|
+
}
|
|
301
|
+
} /* node:coverage ignore next 6 */
|
|
302
|
+
exports.ReferFuncVal = ReferFuncVal;
|
|
303
|
+
//# sourceMappingURL=ReferFuncVal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReferFuncVal.js","sourceRoot":"","sources":["../../src/val/ReferFuncVal.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,6 @@ declare class BigDecimal {
|
|
|
12
12
|
declare class Null {
|
|
13
13
|
}
|
|
14
14
|
declare function kindParent(kind: any): any;
|
|
15
|
-
declare function kindFamily(kind: any): any;
|
|
16
15
|
declare function kindSubsumes(sup: any, sub: any): boolean;
|
|
17
16
|
type ScalarConstructor = StringConstructor | NumberConstructor | BooleanConstructor | (typeof Integer) | (typeof Float) | (typeof BigInteger) | (typeof BigDecimal) | (typeof Null) | (typeof Integer.constructor);
|
|
18
17
|
declare class ScalarKindVal extends FeatureVal {
|
|
@@ -23,4 +22,4 @@ declare class ScalarKindVal extends FeatureVal {
|
|
|
23
22
|
superior(): Val;
|
|
24
23
|
same(peer: any): boolean;
|
|
25
24
|
}
|
|
26
|
-
export { BigDecimal, BigInteger, Float, Integer, Null, ScalarConstructor, ScalarKindVal,
|
|
25
|
+
export { BigDecimal, BigInteger, Float, Integer, Null, ScalarConstructor, ScalarKindVal, kindParent, kindSubsumes, };
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
/* Copyright (c) 2021-2025 Richard Rodger, MIT License */
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.ScalarKindVal = exports.Null = exports.Integer = exports.Float = exports.BigInteger = exports.BigDecimal = void 0;
|
|
5
|
-
exports.kindFamily = kindFamily;
|
|
6
5
|
exports.kindParent = kindParent;
|
|
7
6
|
exports.kindSubsumes = kindSubsumes;
|
|
8
7
|
const type_1 = require("../type");
|
|
@@ -70,16 +69,6 @@ const KIND_PARENT = new Map([
|
|
|
70
69
|
function kindParent(kind) {
|
|
71
70
|
return KIND_PARENT.get(kind);
|
|
72
71
|
}
|
|
73
|
-
// The root of a kind marker's family: the highest ancestor below top.
|
|
74
|
-
// Every numeric leaf answers `number`; a kind with no parent is its own
|
|
75
|
-
// family root (string, boolean, null).
|
|
76
|
-
function kindFamily(kind) {
|
|
77
|
-
let root = kind;
|
|
78
|
-
for (let k = KIND_PARENT.get(kind); null != k; k = KIND_PARENT.get(k)) {
|
|
79
|
-
root = k;
|
|
80
|
-
}
|
|
81
|
-
return root;
|
|
82
|
-
}
|
|
83
72
|
// True when `sub` is `sup`, or sits anywhere below it. The numeric
|
|
84
73
|
// lattice is two deep today; walking the chain keeps this correct if it
|
|
85
74
|
// ever deepens.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarKindVal.js","sourceRoot":"","sources":["../../src/val/ScalarKindVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;
|
|
1
|
+
{"version":3,"file":"ScalarKindVal.js","sourceRoot":"","sources":["../../src/val/ScalarKindVal.ts"],"names":[],"mappings":"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"}
|
package/dist/val/TopVal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TopVal.js","sourceRoot":"","sources":["../../src/val/TopVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;
|
|
1
|
+
{"version":3,"file":"TopVal.js","sourceRoot":"","sources":["../../src/val/TopVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAOzD,kCAEgB;AAMhB,+BAEc;AAGd,yBAAyB;AACzB,MAAM,MAAO,SAAQ,SAAG;IAMtB,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QATlB,UAAK,GAAG,IAAI,CAAA;QAEZ,OAAE,GAAG,CAAC,CAAA;QACN,OAAE,GAAG,WAAI,CAAA;QAQP,qCAAqC;QACrC,IAAI,CAAC,EAAE,GAAG,WAAI,CAAA;QACd,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;QACtB,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;IACxB,CAAC;IAED,IAAI,CAAC,IAAS;QACZ,uBAAuB;QACvB,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED,KAAK,CAAC,IAAS,EAAE,GAAiB;QAChC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAC9B,CAAC;IAED,IAAI,KAAK,KAAK,OAAO,KAAK,CAAA,CAAC,CAAC;IAE5B,QAAQ;QACN,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,IAAkB,EAAE,KAAe;QACvC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,GAAG,CAAC,IAAmB;QACrB,OAAO,SAAS,CAAA;IAClB,CAAC;CAEF,CAAC,iCAAiC;QAIjC,MAAM"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypeFuncVal.js","sourceRoot":"","sources":["../../src/val/TypeFuncVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAYzD,gCAAmC;AAEnC,
|
|
1
|
+
{"version":3,"file":"TypeFuncVal.js","sourceRoot":"","sources":["../../src/val/TypeFuncVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAYzD,gCAAmC;AAEnC,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,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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpperFuncVal.js","sourceRoot":"","sources":["../../src/val/UpperFuncVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAYzD,gCAAmC;
|
|
1
|
+
{"version":3,"file":"UpperFuncVal.js","sourceRoot":"","sources":["../../src/val/UpperFuncVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAYzD,gCAAmC;AAGnC,wDAAoD;AACpD,4CAA+C;AAC/C,4CAAwC;AAIxC,+CAA2C;AAG3C,MAAM,YAAa,SAAQ,yBAAW;IAGpC,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QANlB,gBAAW,GAAG,IAAI,CAAA;IAOlB,CAAC;IAGD,IAAI,CAAC,IAAkB,EAAE,IAAa;QACpC,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,CAAA;IAC/B,CAAC;IAED,QAAQ;QACN,OAAO,OAAO,CAAA;IAChB,CAAC;IAGD,OAAO,CAAC,GAA6B,EAAE,IAAW;QAChD,mEAAmE;QACnE,gEAAgE;QAChE,4DAA4D;QAC5D,kBAAkB;QAClB,MAAM,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;QACrB,MAAM,MAAM,GAAG,GAAG,EAAE,GAAG,CAAA;QACvB,MAAM,GAAG,GAAG,QAAQ,KAAK,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;YAC7D,QAAQ,KAAK,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC9C,gEAAgE;gBAChE,iEAAiE;gBACjE,+DAA+D;gBAC/D,gEAAgE;gBAChE,4DAA4D;gBAC5D,QAAQ,KAAK,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;oBACnC,MAAM,YAAY,iBAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;wBACzC,SAAS,CAAA;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CACpB,IAAI,IAAI,GAAG,CAAC,CAAC;YACX,IAAA,gBAAU,EAAC,GAAG,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;YACtC,gEAAgE;YAChE,8DAA8D;YAC9D,gEAAgE;YAChE,8CAA8C;YAC9C,IAAA,wBAAc,EAAC,GAAG,EAAE,GAAG,CAAC,CAC3B,CAAA;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;IAGD,QAAQ;QACN,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;QACzB,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC;YACpB,IAAI,CAAC,KAAK,CAAC,IAAI,6BAAa,CAAC;gBAC3B,GAAG,EAAE,GAAG,CAAC,IAAI;aACd,CAAC,CAAC,CAAC,CAAC;YACL,KAAK,CAAC,QAAQ,EAAE,CAAA;IACpB,CAAC;CACF,CAAC,iCAAiC;QAIjC,YAAY"}
|
package/dist/val/Val.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ type ValSpec = {
|
|
|
10
10
|
peg?: any;
|
|
11
11
|
mark?: Partial<ValMark>;
|
|
12
12
|
kind?: any;
|
|
13
|
+
dup?: boolean;
|
|
13
14
|
row?: number;
|
|
14
15
|
col?: number;
|
|
15
16
|
url?: string;
|
|
@@ -25,6 +26,7 @@ type ValSpec = {
|
|
|
25
26
|
declare const DONE = -1;
|
|
26
27
|
declare const SPREAD: unique symbol;
|
|
27
28
|
declare const EMPTY_ERR: any[];
|
|
29
|
+
export declare function nextValId(): number;
|
|
28
30
|
declare abstract class Val {
|
|
29
31
|
isVal: boolean;
|
|
30
32
|
isTop: boolean;
|
|
@@ -70,6 +72,10 @@ declare abstract class Val {
|
|
|
70
72
|
get site(): Site;
|
|
71
73
|
set site(s: Site);
|
|
72
74
|
mark: ValMark;
|
|
75
|
+
deprecation?: Record<string, string>;
|
|
76
|
+
entity?: string;
|
|
77
|
+
link?: string;
|
|
78
|
+
graph?: any;
|
|
73
79
|
peg: any;
|
|
74
80
|
err: any[];
|
|
75
81
|
explain: any[] | null;
|
|
@@ -86,7 +92,7 @@ declare abstract class Val {
|
|
|
86
92
|
get isPathDependent(): boolean;
|
|
87
93
|
place(v: Val): Val;
|
|
88
94
|
unify(_peer: Val, _ctx: AontuContext): Val;
|
|
89
|
-
get canon(): string;
|
|
95
|
+
abstract get canon(): string;
|
|
90
96
|
errcanon(): string;
|
|
91
97
|
gen(_ctx: AontuContext): any;
|
|
92
98
|
notdone(): void;
|
|
@@ -95,6 +101,7 @@ declare abstract class Val {
|
|
|
95
101
|
inspect(d?: number): string;
|
|
96
102
|
inspection(_d?: number): string;
|
|
97
103
|
}
|
|
104
|
+
declare function repathInstance(v: any, path: string[]): void;
|
|
98
105
|
declare function empty(o: any): boolean;
|
|
99
106
|
export type { ValMark, ValSpec, };
|
|
100
|
-
export { Val, DONE, SPREAD, EMPTY_ERR, empty };
|
|
107
|
+
export { Val, DONE, SPREAD, EMPTY_ERR, empty, repathInstance, };
|