aontu 0.53.0 → 0.54.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 (196) hide show
  1. package/dist/aontu.d.ts +3 -2
  2. package/dist/aontu.js +36 -7
  3. package/dist/aontu.js.map +1 -1
  4. package/dist/cli.d.ts +2 -1
  5. package/dist/cli.js +426 -7
  6. package/dist/cli.js.map +1 -1
  7. package/dist/ctx.d.ts +5 -0
  8. package/dist/ctx.js +1 -0
  9. package/dist/ctx.js.map +1 -1
  10. package/dist/diff.js.map +1 -1
  11. package/dist/err.js +7 -1
  12. package/dist/err.js.map +1 -1
  13. package/dist/graph.d.ts +2 -5
  14. package/dist/graph.js +83 -46
  15. package/dist/graph.js.map +1 -1
  16. package/dist/hcanon.js +9 -10
  17. package/dist/hcanon.js.map +1 -1
  18. package/dist/hints.js +90 -26
  19. package/dist/hints.js.map +1 -1
  20. package/dist/jsonschema.js +34 -0
  21. package/dist/jsonschema.js.map +1 -1
  22. package/dist/lang.js +593 -191
  23. package/dist/lang.js.map +1 -1
  24. package/dist/lsp.d.ts +1 -1
  25. package/dist/lsp.js +86 -6
  26. package/dist/lsp.js.map +1 -1
  27. package/dist/mcp.js +133 -6
  28. package/dist/mcp.js.map +1 -1
  29. package/dist/mod-tool.js +42 -8
  30. package/dist/mod-tool.js.map +1 -1
  31. package/dist/mod.d.ts +4 -0
  32. package/dist/mod.js +97 -2
  33. package/dist/mod.js.map +1 -1
  34. package/dist/patch.d.ts +5 -0
  35. package/dist/patch.js +25 -25
  36. package/dist/patch.js.map +1 -1
  37. package/dist/provenance.d.ts +1 -0
  38. package/dist/provenance.js +2 -1
  39. package/dist/provenance.js.map +1 -1
  40. package/dist/query.js.map +1 -1
  41. package/dist/reach.d.ts +1 -0
  42. package/dist/reach.js +49 -21
  43. package/dist/reach.js.map +1 -1
  44. package/dist/relation.d.ts +4 -0
  45. package/dist/relation.js +125 -200
  46. package/dist/relation.js.map +1 -1
  47. package/dist/sig.d.ts +25 -0
  48. package/dist/sig.js +277 -0
  49. package/dist/sig.js.map +1 -0
  50. package/dist/sigdecl.d.ts +2 -0
  51. package/dist/sigdecl.js +11 -0
  52. package/dist/sigdecl.js.map +1 -0
  53. package/dist/siggate.d.ts +4 -0
  54. package/dist/siggate.js +90 -0
  55. package/dist/siggate.js.map +1 -0
  56. package/dist/std.js +72 -16
  57. package/dist/std.js.map +1 -1
  58. package/dist/subsume.js +57 -10
  59. package/dist/subsume.js.map +1 -1
  60. package/dist/tsconfig.tsbuildinfo +1 -1
  61. package/dist/unify.d.ts +2 -2
  62. package/dist/unify.js +93 -114
  63. package/dist/unify.js.map +1 -1
  64. package/dist/utility.d.ts +1 -2
  65. package/dist/utility.js +7 -61
  66. package/dist/utility.js.map +1 -1
  67. package/dist/val/AggFuncVal.d.ts +12 -1
  68. package/dist/val/AggFuncVal.js +165 -3
  69. package/dist/val/AggFuncVal.js.map +1 -1
  70. package/dist/val/BagVal.d.ts +2 -0
  71. package/dist/val/BagVal.js +56 -8
  72. package/dist/val/BagVal.js.map +1 -1
  73. package/dist/val/ConstraintVal.js +33 -5
  74. package/dist/val/ConstraintVal.js.map +1 -1
  75. package/dist/val/ContainerKindVal.d.ts +35 -0
  76. package/dist/val/ContainerKindVal.js +99 -0
  77. package/dist/val/ContainerKindVal.js.map +1 -0
  78. package/dist/val/CopyFuncVal.js +0 -7
  79. package/dist/val/CopyFuncVal.js.map +1 -1
  80. package/dist/val/DisjunctVal.d.ts +1 -2
  81. package/dist/val/DisjunctVal.js +146 -39
  82. package/dist/val/DisjunctVal.js.map +1 -1
  83. package/dist/val/ExpectVal.js +37 -2
  84. package/dist/val/ExpectVal.js.map +1 -1
  85. package/dist/val/FuncBaseVal.d.ts +1 -0
  86. package/dist/val/FuncBaseVal.js +19 -8
  87. package/dist/val/FuncBaseVal.js.map +1 -1
  88. package/dist/val/GraphAtomVal.d.ts +39 -0
  89. package/dist/val/GraphAtomVal.js +184 -0
  90. package/dist/val/GraphAtomVal.js.map +1 -0
  91. package/dist/val/JunctionVal.js +22 -5
  92. package/dist/val/JunctionVal.js.map +1 -1
  93. package/dist/val/ListVal.js +27 -34
  94. package/dist/val/ListVal.js.map +1 -1
  95. package/dist/val/MapVal.d.ts +1 -0
  96. package/dist/val/MapVal.js +82 -35
  97. package/dist/val/MapVal.js.map +1 -1
  98. package/dist/val/PathFuncVal.d.ts +2 -2
  99. package/dist/val/PathFuncVal.js +75 -16
  100. package/dist/val/PathFuncVal.js.map +1 -1
  101. package/dist/val/PathVal.d.ts +25 -0
  102. package/dist/val/PathVal.js +150 -0
  103. package/dist/val/PathVal.js.map +1 -0
  104. package/dist/val/PlusOpVal.d.ts +2 -1
  105. package/dist/val/PlusOpVal.js +50 -35
  106. package/dist/val/PlusOpVal.js.map +1 -1
  107. package/dist/val/PrefVal.d.ts +2 -0
  108. package/dist/val/PrefVal.js +159 -32
  109. package/dist/val/PrefVal.js.map +1 -1
  110. package/dist/val/RecurseVal.d.ts +19 -0
  111. package/dist/val/RecurseVal.js +217 -0
  112. package/dist/val/RecurseVal.js.map +1 -0
  113. package/dist/val/RefVal.d.ts +2 -1
  114. package/dist/val/RefVal.js +105 -72
  115. package/dist/val/RefVal.js.map +1 -1
  116. package/dist/val/ReferFuncVal.d.ts +30 -7
  117. package/dist/val/ReferFuncVal.js +395 -94
  118. package/dist/val/ReferFuncVal.js.map +1 -1
  119. package/dist/val/ScalarKindVal.d.ts +4 -2
  120. package/dist/val/ScalarKindVal.js +12 -1
  121. package/dist/val/ScalarKindVal.js.map +1 -1
  122. package/dist/val/SuperFuncVal.d.ts +4 -2
  123. package/dist/val/SuperFuncVal.js +118 -14
  124. package/dist/val/SuperFuncVal.js.map +1 -1
  125. package/dist/val/TopVal.d.ts +1 -1
  126. package/dist/val/Val.d.ts +2 -3
  127. package/dist/val/Val.js +39 -20
  128. package/dist/val/Val.js.map +1 -1
  129. package/dist/val/arith.js +4 -1
  130. package/dist/val/arith.js.map +1 -1
  131. package/dist/vet.js +27 -1
  132. package/dist/vet.js.map +1 -1
  133. package/dist/view.d.ts +85 -0
  134. package/dist/view.js +1948 -0
  135. package/dist/view.js.map +1 -0
  136. package/grammar/aontu.gbnf +18 -10
  137. package/grammar/aontu.lark +15 -10
  138. package/grammar/aontu.tmLanguage.json +184 -0
  139. package/package.json +10 -3
  140. package/skill/grammar-card.md +1 -2
  141. package/src/aontu.ts +37 -7
  142. package/src/cli.ts +472 -7
  143. package/src/ctx.ts +20 -0
  144. package/src/diff.ts +4 -2
  145. package/src/err.ts +8 -1
  146. package/src/graph.ts +125 -75
  147. package/src/hcanon.ts +9 -11
  148. package/src/hints.ts +108 -29
  149. package/src/jsonschema.ts +41 -0
  150. package/src/lang.ts +642 -203
  151. package/src/lsp.ts +75 -6
  152. package/src/mcp.ts +143 -6
  153. package/src/mod-tool.ts +48 -9
  154. package/src/mod.ts +110 -1
  155. package/src/patch.ts +31 -27
  156. package/src/provenance.ts +8 -1
  157. package/src/query.ts +4 -2
  158. package/src/reach.ts +52 -23
  159. package/src/relation.ts +139 -236
  160. package/src/sig.ts +345 -0
  161. package/src/sigdecl.ts +11 -0
  162. package/src/siggate.ts +144 -0
  163. package/src/std.ts +74 -16
  164. package/src/subsume.ts +59 -10
  165. package/src/unify.ts +102 -125
  166. package/src/utility.ts +7 -67
  167. package/src/val/AggFuncVal.ts +231 -4
  168. package/src/val/BagVal.ts +58 -9
  169. package/src/val/ConstraintVal.ts +34 -5
  170. package/src/val/ContainerKindVal.ts +158 -0
  171. package/src/val/CopyFuncVal.ts +0 -7
  172. package/src/val/DisjunctVal.ts +152 -40
  173. package/src/val/ExpectVal.ts +39 -4
  174. package/src/val/FuncBaseVal.ts +21 -8
  175. package/src/val/GraphAtomVal.ts +264 -0
  176. package/src/val/JunctionVal.ts +23 -6
  177. package/src/val/ListVal.ts +30 -37
  178. package/src/val/MapVal.ts +87 -39
  179. package/src/val/PathFuncVal.ts +107 -19
  180. package/src/val/PathVal.ts +221 -0
  181. package/src/val/PlusOpVal.ts +56 -37
  182. package/src/val/PrefVal.ts +186 -38
  183. package/src/val/RecurseVal.ts +285 -0
  184. package/src/val/RefVal.ts +105 -83
  185. package/src/val/ReferFuncVal.ts +445 -100
  186. package/src/val/ScalarKindVal.ts +12 -0
  187. package/src/val/SuperFuncVal.ts +137 -13
  188. package/src/val/TopVal.ts +1 -1
  189. package/src/val/Val.ts +44 -35
  190. package/src/val/arith.ts +4 -1
  191. package/src/vet.ts +36 -3
  192. package/src/view.ts +2563 -0
  193. package/dist/val/IdFuncVal.d.ts +0 -13
  194. package/dist/val/IdFuncVal.js +0 -54
  195. package/dist/val/IdFuncVal.js.map +0 -1
  196. package/src/val/IdFuncVal.ts +0 -91
package/dist/aontu.d.ts CHANGED
@@ -16,7 +16,8 @@ import { diff } from './diff';
16
16
  import { agentsMd } from './agentsmd';
17
17
  import { graphOf } from './graph';
18
18
  import { relationCheck } from './relation';
19
- declare const VERSION = "0.53.0";
19
+ import { view, viewSet, viewTree } from './view';
20
+ declare const VERSION = "0.54.0";
20
21
  declare class Aontu {
21
22
  opts: AontuOptions;
22
23
  lang: Lang;
@@ -30,5 +31,5 @@ declare function runparse(src: string, lang: Lang, ctx: AontuContext): Val;
30
31
  declare const util: {
31
32
  runparse: typeof runparse;
32
33
  };
33
- export { VERSION, Aontu, AontuOptions, AontuContext, AontuError, setColor, colorActive, Val, Lang, runparse, util, formatExplain, exactJSON, Decimal, vet, sarifReport, subsume, trimCheck, hcanon, canonHash, get, why, patch, diff, agentsMd, graphOf, relationCheck, };
34
+ export { VERSION, Aontu, AontuOptions, AontuContext, AontuError, setColor, colorActive, Val, Lang, runparse, util, formatExplain, exactJSON, Decimal, vet, sarifReport, subsume, trimCheck, hcanon, canonHash, get, why, patch, diff, agentsMd, graphOf, relationCheck, view, viewSet, viewTree, };
34
35
  export default Aontu;
package/dist/aontu.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  /* Copyright (c) 2021-2025 Richard Rodger, MIT License */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.relationCheck = exports.graphOf = exports.agentsMd = exports.diff = exports.patch = exports.why = exports.get = exports.canonHash = exports.hcanon = exports.trimCheck = exports.subsume = exports.sarifReport = exports.vet = exports.Decimal = exports.exactJSON = exports.formatExplain = exports.util = exports.Lang = exports.colorActive = exports.setColor = exports.AontuError = exports.AontuContext = exports.Aontu = exports.VERSION = void 0;
4
+ exports.viewTree = exports.viewSet = exports.view = exports.relationCheck = exports.graphOf = exports.agentsMd = exports.diff = exports.patch = exports.why = exports.get = exports.canonHash = exports.hcanon = exports.trimCheck = exports.subsume = exports.sarifReport = exports.vet = exports.Decimal = exports.exactJSON = exports.formatExplain = exports.util = exports.Lang = exports.colorActive = exports.setColor = exports.AontuError = exports.AontuContext = exports.Aontu = exports.VERSION = void 0;
5
5
  exports.runparse = runparse;
6
6
  const lang_1 = require("./lang");
7
7
  Object.defineProperty(exports, "Lang", { enumerable: true, get: function () { return lang_1.Lang; } });
@@ -43,6 +43,10 @@ const graph_1 = require("./graph");
43
43
  Object.defineProperty(exports, "graphOf", { enumerable: true, get: function () { return graph_1.graphOf; } });
44
44
  const relation_1 = require("./relation");
45
45
  Object.defineProperty(exports, "relationCheck", { enumerable: true, get: function () { return relation_1.relationCheck; } });
46
+ const view_1 = require("./view");
47
+ Object.defineProperty(exports, "view", { enumerable: true, get: function () { return view_1.view; } });
48
+ Object.defineProperty(exports, "viewSet", { enumerable: true, get: function () { return view_1.viewSet; } });
49
+ Object.defineProperty(exports, "viewTree", { enumerable: true, get: function () { return view_1.viewTree; } });
46
50
  // VERSION is the Aontu npm package version, and mirrors
47
51
  // go/aontu.go's `Version` (which tracks the Go module version
48
52
  // separately — the two version series are independent).
@@ -50,7 +54,7 @@ Object.defineProperty(exports, "relationCheck", { enumerable: true, get: functio
50
54
  // Kept in step with package.json by the `version` npm lifecycle script,
51
55
  // which runs on `npm version` / `npm run repo-bump`. version.test.ts
52
56
  // fails if the two ever drift.
53
- const VERSION = '0.53.0';
57
+ const VERSION = '0.54.0';
54
58
  exports.VERSION = VERSION;
55
59
  // A module file's VALUE, as far as it goes. COLLECTED, not raised: a
56
60
  // module file that does not stand up has no `mod.main` to read, and
@@ -173,10 +177,10 @@ class Aontu {
173
177
  // 'internal' NilVal.
174
178
  out = uni.res;
175
179
  out.deps = pval.deps;
176
- // THE DERIVED STRUCTURES (G4 phase 3): the entity index and the
177
- // edge set, computed once from the unified tree. Cheap on a
178
- // document with no identity — one guarded walk — and the thing
179
- // impact analysis and the relation checks are traversals over.
180
+ // THE DERIVED STRUCTURE (G4 phase 3): the edge set, computed
181
+ // once from the unified tree. Cheap on a document with no links
182
+ // — one guarded walk — and the thing impact analysis and the
183
+ // relation checks are traversals over.
180
184
  out.graph = (0, graph_1.graphOf)(out);
181
185
  out.err = errs;
182
186
  ac.root = out;
@@ -207,7 +211,32 @@ class Aontu {
207
211
  let uval = this.unify(pval, undefined, ac);
208
212
  // console.log('AONTU-GENERATE-UVAL', uval.constructor, uval.mark)
209
213
  if (undefined !== uval && 0 === uval.err.length) {
210
- out = uval.isNil ? (ac.adderr(uval), undefined) : uval.gen(ac);
214
+ out = uval.isNil ? (ac.adderr(uval), undefined)
215
+ : 0 < ac.err.length ? undefined
216
+ : uval.gen(ac);
217
+ // The relation verdict (RELATIONS P2): declarations the
218
+ // graph atoms registered during unification are decided
219
+ // HERE, where no more information can arrive -- the sizing
220
+ // atoms' model. A violated declaration is a located
221
+ // evaluation error at the offending edge, and the generated
222
+ // value is discarded below.
223
+ //
224
+ // AFTER GENERATION, and only when generation SUCCEEDED. A
225
+ // document that cannot be generated has no finished model
226
+ // to have a graph verdict about: an unsettled disjunction
227
+ // leaves alternatives the graph walk cannot read, so a
228
+ // mirror the document writes is absent from the edge set
229
+ // and `inverse(n)` reports it missing -- a false finding,
230
+ // and one that buried the `disjunct_no_gen` that actually
231
+ // stopped the document. The check that a broken document is
232
+ // not blamed on its relations (`relations` verb, finding F)
233
+ // holds here too.
234
+ if (!uval.isNil && 0 === ac.err.length) {
235
+ (0, relation_1.relationErrors)(ac, uval);
236
+ if (0 < ac.err.length) {
237
+ out = undefined;
238
+ }
239
+ }
211
240
  if (0 < ac.err.length) {
212
241
  if (!ac.collect) {
213
242
  throw new err_1.AontuError(ac.errmsg(), ac.err);
package/dist/aontu.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"aontu.js","sourceRoot":"","sources":["../src/aontu.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aontu.js","sourceRoot":"","sources":["../src/aontu.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts CHANGED
@@ -40,6 +40,7 @@ declare function runTrim(argv: string[]): number;
40
40
  declare function runMod(argv: string[]): number;
41
41
  declare function runRelations(argv: string[]): number;
42
42
  declare function runReaches(argv: string[]): number;
43
+ declare function runView(argv: string[]): number;
43
44
  declare function runJsonSchema(argv: string[]): number;
44
45
  declare function runHash(argv: string[]): number;
45
46
  declare function runGet(argv: string[]): number;
@@ -48,4 +49,4 @@ declare function renderWhyText(record: WhyRecord): string;
48
49
  declare function runSet(argv: string[]): number;
49
50
  declare function runAgentsMd(argv: string[]): number;
50
51
  declare function main(argv: string[]): void;
51
- export { evalSource, main, runVet, runSubsume, runBreaking, runTrim, runRelations, runReaches, runJsonSchema, runMod, runHash, runGet, runWhy, renderWhyText, runSet, runAgentsMd, watchChange, watchSignature, vetWaiter, deprecatedAt, };
52
+ export { evalSource, main, runVet, runSubsume, runBreaking, runTrim, runRelations, runReaches, runView, runJsonSchema, runMod, runHash, runGet, runWhy, renderWhyText, runSet, runAgentsMd, watchChange, watchSignature, vetWaiter, deprecatedAt, };
package/dist/cli.js CHANGED
@@ -11,6 +11,7 @@ exports.runBreaking = runBreaking;
11
11
  exports.runTrim = runTrim;
12
12
  exports.runRelations = runRelations;
13
13
  exports.runReaches = runReaches;
14
+ exports.runView = runView;
14
15
  exports.runJsonSchema = runJsonSchema;
15
16
  exports.runMod = runMod;
16
17
  exports.runHash = runHash;
@@ -43,6 +44,7 @@ const mod_tool_1 = require("./mod-tool");
43
44
  const mod_1 = require("./mod");
44
45
  const vet_1 = require("./vet");
45
46
  const reach_1 = require("./reach");
47
+ const view_1 = require("./view");
46
48
  const agentsmd_1 = require("./agentsmd");
47
49
  const HELP = `Usage: aontu [options] [file]
48
50
  aontu vet [options] <schema> <data> [more-data...]
@@ -51,6 +53,8 @@ const HELP = `Usage: aontu [options] [file]
51
53
  aontu trim --check [options] <file>
52
54
  aontu relations [options] <file>
53
55
  aontu reaches <from> <to> [--relation <name>] [options] <file>
56
+ aontu view <kind> [options] <file>...
57
+ aontu view --views <path> [--check] [options] <file>
54
58
  aontu jsonschema [--at <path>] [--strict] [options] <file>
55
59
  aontu hash [options] <file>
56
60
  aontu mod tidy|verify|vendor|manifest [options] [dir]
@@ -171,6 +175,58 @@ Why options:
171
175
  Why exit codes mirror get's: 0 explained, 1 the path names nothing,
172
176
  2 usage, 4 the document does not stand up on its own.
173
177
 
178
+ View kinds: tree, matrix, graph, layer, sets, layers, ladder, poset
179
+ (the poset takes several files). The figure goes to stdout, the loss
180
+ report to stderr. With --views it draws every figure a document
181
+ declares as data, from one evaluation: each declaration names its own
182
+ kind and out file, nothing is written unless every figure rendered,
183
+ and --check gates the committed set.
184
+
185
+ View options:
186
+ --as <profile> text | mermaid | dot | er | svg, per kind: tree,
187
+ matrix, sets and layers draw text (default) or
188
+ svg; graph draws mermaid (default), dot or er;
189
+ layer draws text (default), mermaid or svg; ladder
190
+ and poset draw mermaid (default) or dot
191
+ --at <path> Restrict the figure to nodes under this path; the
192
+ path the ladder draws; where the poset compares
193
+ --views <path> Draw every figure the document declares at this
194
+ path, one evaluation, all or nothing; each
195
+ declaration names its own kind and out file
196
+ -o, --out <file> Write the figure here instead of stdout
197
+ --check Exit 1 if --out differs from what would be drawn;
198
+ nothing is written
199
+ --strict Exit 1 when the loss report holds anything beyond
200
+ edges_deduped, inverse_suppressed and crossings
201
+ --max-rows <n> Refuse a figure above this many rows (default 60)
202
+ --format <f> text (default) or json, the whole report
203
+ --relation <n> tree, matrix, layer: draw over this relation only;
204
+ graph: keep this predicate (repeatable)
205
+ --root <path> tree: draw only the subtree under this node;
206
+ repeatable
207
+ --order <o> matrix: canon (default) or partition
208
+ --closure matrix: mark transitively reachable cells +
209
+ --group-by <k> graph: one subgraph per distinct value of field k;
210
+ layer: one band per value (required)
211
+ --layers <a,b> layer: the bands in this order, top first; without
212
+ it the order is derived from the relation
213
+ --edges <e> layer: which of the relation's edges to draw over
214
+ the bands -- upward (the violations, the default
215
+ for text and svg), all (mermaid's default) or none
216
+ --label <k> graph: label each node with field k
217
+ --sets <path> sets: the map whose keys are the sets
218
+ --member <k> sets: the field holding each set's members
219
+ --universe <p> sets: the full element domain, so the empty
220
+ column exists
221
+ --min-degree <n> sets: drop intersections below this degree
222
+ --min-size <n> layers: drop intersections below this many paths
223
+ --max-cols <n> sets, layers: elide columns beyond this many
224
+ --profile <p> poset: values | defaults (default) | gen
225
+
226
+ View exit codes: 0 rendered, 1 --check mismatch or lossy under
227
+ --strict, 2 usage or --max-rows exceeded, 4 the document does not stand
228
+ up on its own, or a relation, root or path that names nothing.
229
+
174
230
  Set options:
175
231
  --entry <file> The document the change is checked against
176
232
  --overlay <file> The file the change is appended to (created if
@@ -1419,6 +1475,26 @@ const REACHES_EXIT = {
1419
1475
  unreachable: 1,
1420
1476
  error: 4,
1421
1477
  };
1478
+ const VIEW_HELP = 'aontu view <kind> [options] <file>... (try --help)';
1479
+ const VIEW_KINDS = ['tree', 'matrix', 'graph', 'layer', 'sets', 'layers', 'ladder', 'poset'];
1480
+ const VIEW_PROFILES = ['text', 'mermaid', 'dot', 'er', 'svg'];
1481
+ const VIEW_EDGES = ['upward', 'all', 'none'];
1482
+ // The figure was drawn (0, `lossy` included: the loss report says
1483
+ // what it could not draw, and --strict is the gate on that), or the
1484
+ // document could not be drawn (4). An EMPTY figure is a drawing, not
1485
+ // a failure: a model with no links has nothing to draw, honestly.
1486
+ const VIEW_EXIT = {
1487
+ rendered: 0,
1488
+ lossy: 0,
1489
+ error: 4,
1490
+ };
1491
+ // The refusals that are USAGE, not the document's fault: exit 2, as
1492
+ // every other verb's usage errors do.
1493
+ const VIEW_USAGE_CODES = [
1494
+ 'view_kind_unknown', 'view_profile_unknown', 'view_rows_exceeded',
1495
+ 'view_at_required', 'view_sets_required', 'view_group_required',
1496
+ 'view_document_shape',
1497
+ ];
1422
1498
  const MOD_HELP = 'aontu mod tidy|verify|vendor|manifest [dir] (try --help)';
1423
1499
  // The module tooling (G6 phase 3, ts/src/mod-tool.ts). All LOCAL:
1424
1500
  // `tidy` resolves the closure from what is in the stores and rewrites
@@ -1690,7 +1766,7 @@ function runReaches(argv) {
1690
1766
  }
1691
1767
  }
1692
1768
  if (3 !== rest.length) {
1693
- process.stderr.write(`aontu: reaches needs two entities and one file\n${REACHES_HELP}\n`);
1769
+ process.stderr.write(`aontu: reaches needs two node paths and one file\n${REACHES_HELP}\n`);
1694
1770
  return 2;
1695
1771
  }
1696
1772
  let src;
@@ -1732,6 +1808,349 @@ function renderReachesJson(report) {
1732
1808
  ...(null == report.errors ? {} : { errors: report.errors }),
1733
1809
  }, 2);
1734
1810
  }
1811
+ // ---------------------------------------------------------------------
1812
+ // The tree view (docs/design/VIEWS.0.md, ts/src/view.ts): the drawn
1813
+ // edge set, as text a golden diff can check.
1814
+ function runView(argv) {
1815
+ const trusted = takeTrust(argv);
1816
+ if (null == trusted) {
1817
+ return 2;
1818
+ }
1819
+ argv = trusted.argv;
1820
+ const trust = trusted.trust;
1821
+ const rest = [];
1822
+ let format = 'text';
1823
+ let out = undefined;
1824
+ let check = false;
1825
+ let strict = false;
1826
+ const relations = [];
1827
+ const roots = [];
1828
+ const opts = {};
1829
+ // A flag that takes a value, read into `opts` by name.
1830
+ const valued = {
1831
+ '--as': 'as', '--at': 'at', '--order': 'order', '--group-by': 'groupBy',
1832
+ '--label': 'label', '--sets': 'sets', '--member': 'member',
1833
+ '--universe': 'universe', '--profile': 'profile', '--views': 'views',
1834
+ '--edges': 'edges',
1835
+ };
1836
+ const counted = {
1837
+ '--max-rows': 'maxRows', '--max-cols': 'maxCols',
1838
+ '--min-degree': 'minDegree', '--min-size': 'minSize',
1839
+ };
1840
+ for (let i = 0; i < argv.length; i++) {
1841
+ const arg = argv[i];
1842
+ if ('-h' === arg || '--help' === arg) {
1843
+ process.stdout.write(HELP);
1844
+ return 0;
1845
+ }
1846
+ if ('--format' === arg) {
1847
+ const f = argv[++i];
1848
+ if ('text' !== f && 'json' !== f) {
1849
+ process.stderr.write('aontu: --format needs text or json\n');
1850
+ return 2;
1851
+ }
1852
+ format = f;
1853
+ }
1854
+ else if ('--relation' === arg) {
1855
+ const relation = argv[++i];
1856
+ if (null == relation || '' === relation) {
1857
+ process.stderr.write('aontu: --relation needs a name\n');
1858
+ return 2;
1859
+ }
1860
+ relations.push(relation);
1861
+ }
1862
+ else if ('--root' === arg) {
1863
+ const root = argv[++i];
1864
+ if (null == root) {
1865
+ process.stderr.write('aontu: --root needs a node path\n');
1866
+ return 2;
1867
+ }
1868
+ roots.push(root);
1869
+ }
1870
+ else if ('-o' === arg || '--out' === arg) {
1871
+ out = argv[++i];
1872
+ if (null == out) {
1873
+ process.stderr.write('aontu: --out needs a file\n');
1874
+ return 2;
1875
+ }
1876
+ }
1877
+ else if ('--check' === arg) {
1878
+ check = true;
1879
+ }
1880
+ else if ('--strict' === arg) {
1881
+ strict = true;
1882
+ }
1883
+ else if ('--closure' === arg) {
1884
+ opts.closure = true;
1885
+ }
1886
+ else if ('--layers' === arg) {
1887
+ const v = argv[++i];
1888
+ if (null == v || '' === v) {
1889
+ process.stderr.write('aontu: --layers needs a comma-separated list\n');
1890
+ return 2;
1891
+ }
1892
+ opts.layers = v.split(',');
1893
+ }
1894
+ else if (undefined !== valued[arg]) {
1895
+ const v = argv[++i];
1896
+ if (null == v || '' === v) {
1897
+ process.stderr.write(`aontu: ${arg} needs a value\n`);
1898
+ return 2;
1899
+ }
1900
+ opts[valued[arg]] = v;
1901
+ }
1902
+ else if (undefined !== counted[arg]) {
1903
+ const v = argv[++i];
1904
+ if (null == v || !/^[0-9]+$/.test(v)) {
1905
+ process.stderr.write(`aontu: ${arg} needs a count\n`);
1906
+ return 2;
1907
+ }
1908
+ opts[counted[arg]] = parseInt(v, 10);
1909
+ }
1910
+ else if (arg.startsWith('-')) {
1911
+ process.stderr.write(`aontu: unknown view option ${arg} (try --help)\n`);
1912
+ return 2;
1913
+ }
1914
+ else {
1915
+ rest.push(arg);
1916
+ }
1917
+ }
1918
+ // THE VIEW DOCUMENT draws every figure a document declares, so it
1919
+ // names no kind: the declarations do, one each.
1920
+ if (undefined !== opts.views) {
1921
+ return runViewSet(rest, opts, trust, { format, check, strict, out });
1922
+ }
1923
+ if (2 > rest.length) {
1924
+ process.stderr.write(`aontu: view needs a kind and a file\n${VIEW_HELP}\n`);
1925
+ return 2;
1926
+ }
1927
+ const kind = rest[0];
1928
+ if (!VIEW_KINDS.includes(kind)) {
1929
+ process.stderr.write(`aontu: unknown view kind ${kind} (the kinds are: ${VIEW_KINDS.join(', ')})\n`);
1930
+ return 2;
1931
+ }
1932
+ if (undefined !== opts.as && !VIEW_PROFILES.includes(opts.as)) {
1933
+ process.stderr.write(`aontu: --as needs one of ${VIEW_PROFILES.join(', ')}\n`);
1934
+ return 2;
1935
+ }
1936
+ if (undefined !== opts.order && 'canon' !== opts.order && 'partition' !== opts.order) {
1937
+ process.stderr.write('aontu: --order needs canon or partition\n');
1938
+ return 2;
1939
+ }
1940
+ if (undefined !== opts.edges && !VIEW_EDGES.includes(opts.edges)) {
1941
+ process.stderr.write(`aontu: --edges needs one of ${VIEW_EDGES.join(', ')}\n`);
1942
+ return 2;
1943
+ }
1944
+ if (undefined !== opts.profile && !['values', 'defaults', 'gen'].includes(opts.profile)) {
1945
+ process.stderr.write('aontu: --profile needs values, defaults or gen\n');
1946
+ return 2;
1947
+ }
1948
+ if ('poset' !== kind && 2 !== rest.length) {
1949
+ process.stderr.write(`aontu: view ${kind} takes one file\n`);
1950
+ return 2;
1951
+ }
1952
+ if ('graph' === kind) {
1953
+ opts.relations = relations;
1954
+ }
1955
+ else if (1 < relations.length) {
1956
+ process.stderr.write(`aontu: view ${kind} takes one --relation\n`);
1957
+ return 2;
1958
+ }
1959
+ else {
1960
+ opts.relation = relations[0];
1961
+ }
1962
+ if (check && undefined === out) {
1963
+ process.stderr.write('aontu: --check needs --out\n');
1964
+ return 2;
1965
+ }
1966
+ const files = rest.slice(1);
1967
+ const srcs = [];
1968
+ for (const file of files) {
1969
+ try {
1970
+ srcs.push((0, node_fs_1.readFileSync)(file, 'utf8'));
1971
+ }
1972
+ catch (err) {
1973
+ process.stderr.write(`aontu: cannot read ${err.path}: ${err.message}\n`);
1974
+ return 2;
1975
+ }
1976
+ }
1977
+ const report = (0, view_1.view)(srcs[0], {
1978
+ ...opts,
1979
+ kind,
1980
+ path: files[0],
1981
+ roots,
1982
+ trust: verbTrust(trust, entryRootOf(files[0])),
1983
+ docs: files.slice(1).map((path, i) => ({ src: srcs[i + 1], path })),
1984
+ });
1985
+ if ('json' === format) {
1986
+ process.stdout.write(renderViewJson(report) + '\n');
1987
+ }
1988
+ else if ('error' === report.verdict) {
1989
+ process.stderr.write(report.errors.map(renderFinding).join('\n') + '\n');
1990
+ }
1991
+ else {
1992
+ // THE FIGURE AND NOTHING ELSE on stdout (or in the file): stdout is
1993
+ // what a golden diff reads, and a verdict line would be part of
1994
+ // every drawing. The loss report goes to stderr, so a figure
1995
+ // written to a file still tells the reader what it could not draw.
1996
+ const text = report.text + '\n';
1997
+ if (undefined === out) {
1998
+ process.stdout.write(text);
1999
+ }
2000
+ else if (check) {
2001
+ let have = undefined;
2002
+ try {
2003
+ have = (0, node_fs_1.readFileSync)(out, 'utf8');
2004
+ }
2005
+ catch (_err) {
2006
+ // Absent is a mismatch.
2007
+ }
2008
+ if (have !== text) {
2009
+ process.stderr.write(`aontu: ${out} differs from the ${kind} figure\n`);
2010
+ return 1;
2011
+ }
2012
+ }
2013
+ else {
2014
+ (0, node_fs_1.writeFileSync)(out, text, 'utf8');
2015
+ }
2016
+ if (0 < report.loss.length) {
2017
+ process.stderr.write(renderViewLoss(report.loss) + '\n');
2018
+ }
2019
+ }
2020
+ if ('error' === report.verdict) {
2021
+ const code = report.errors[0]?.code;
2022
+ return VIEW_USAGE_CODES.includes(code) ? 2 : VIEW_EXIT.error;
2023
+ }
2024
+ return strict && 'lossy' === report.verdict ? 1 : VIEW_EXIT[report.verdict];
2025
+ }
2026
+ // `aontu view --views <path> <file>`: every figure the document
2027
+ // declares, from one evaluation, all or nothing.
2028
+ //
2029
+ // A declared `out` is resolved against the DOCUMENT's own directory,
2030
+ // not the caller's: a view document is committed beside the figures it
2031
+ // gates, and a gate that only passes from one working directory is not
2032
+ // a gate.
2033
+ function runViewSet(rest, opts, trust, how) {
2034
+ if (1 !== rest.length) {
2035
+ process.stderr.write('aontu: view --views takes one file\n');
2036
+ return 2;
2037
+ }
2038
+ if (undefined !== how.out) {
2039
+ process.stderr.write('aontu: --out is per figure in a view document; each declares its own\n');
2040
+ return 2;
2041
+ }
2042
+ const file = rest[0];
2043
+ let src;
2044
+ try {
2045
+ src = (0, node_fs_1.readFileSync)(file, 'utf8');
2046
+ }
2047
+ catch (err) {
2048
+ process.stderr.write(`aontu: cannot read ${err.path}: ${err.message}\n`);
2049
+ return 2;
2050
+ }
2051
+ const report = (0, view_1.viewSet)(src, {
2052
+ ...opts, path: file, trust: verbTrust(trust, entryRootOf(file)),
2053
+ });
2054
+ if ('json' === how.format) {
2055
+ process.stdout.write(renderViewSetJson(report) + '\n');
2056
+ }
2057
+ else if (undefined !== report.errors) {
2058
+ process.stderr.write(report.errors.map(renderFinding).join('\n') + '\n');
2059
+ }
2060
+ else {
2061
+ for (const fig of report.views) {
2062
+ if (undefined !== fig.errors) {
2063
+ process.stderr.write(`${fig.name} (${fig.kind}):\n` +
2064
+ fig.errors.map(renderFinding).join('\n') + '\n');
2065
+ }
2066
+ else if (0 < fig.loss.length) {
2067
+ process.stderr.write(renderViewLoss(fig.loss)
2068
+ .split('\n').map((l) => `${fig.name} ${l}`).join('\n') + '\n');
2069
+ }
2070
+ }
2071
+ }
2072
+ if ('error' === report.verdict) {
2073
+ return setExit(report);
2074
+ }
2075
+ // EVERY FIGURE RENDERED, so the whole set is written -- or, under
2076
+ // --check, the whole set is compared and every difference named.
2077
+ const dir = (0, node_path_1.dirname)((0, node_path_1.resolve)(file));
2078
+ let differ = 0;
2079
+ for (const fig of report.views) {
2080
+ const path = (0, node_path_1.resolve)(dir, fig.out);
2081
+ const text = fig.text + '\n';
2082
+ if (how.check) {
2083
+ let have = undefined;
2084
+ try {
2085
+ have = (0, node_fs_1.readFileSync)(path, 'utf8');
2086
+ }
2087
+ catch (_err) {
2088
+ // Absent is a mismatch.
2089
+ }
2090
+ if (have !== text) {
2091
+ differ++;
2092
+ process.stderr.write(`aontu: ${fig.out} differs from the ${fig.name} figure\n`);
2093
+ }
2094
+ }
2095
+ else {
2096
+ try {
2097
+ (0, node_fs_1.writeFileSync)(path, text, 'utf8');
2098
+ }
2099
+ catch (err) {
2100
+ process.stderr.write(`aontu: cannot write ${err.path}: ${err.message}\n`);
2101
+ return 2;
2102
+ }
2103
+ if ('json' !== how.format) {
2104
+ process.stderr.write(`wrote ${fig.out} ${fig.name} (${fig.kind})\n`);
2105
+ }
2106
+ }
2107
+ }
2108
+ if (0 < differ) {
2109
+ return 1;
2110
+ }
2111
+ return how.strict && 'lossy' === report.verdict ? 1 : VIEW_EXIT[report.verdict];
2112
+ }
2113
+ // A set's exit code is the worst of its figures': a usage refusal
2114
+ // anywhere is usage, and any other refusal is the document's fault.
2115
+ function setExit(report) {
2116
+ const codes = [
2117
+ ...(report.errors ?? []),
2118
+ ...report.views.flatMap((v) => v.errors ?? []),
2119
+ ].map((e) => e.code);
2120
+ return codes.some((c) => VIEW_USAGE_CODES.includes(c))
2121
+ ? 2 : VIEW_EXIT.error;
2122
+ }
2123
+ function renderViewSetJson(report) {
2124
+ return (0, aontu_1.exactJSON)({
2125
+ aontu: { version: version(), verb: 'view' },
2126
+ verdict: report.verdict,
2127
+ views: report.views.map((v) => ({
2128
+ name: v.name,
2129
+ kind: v.kind,
2130
+ out: v.out,
2131
+ verdict: v.verdict,
2132
+ ...(null == v.text ? {} : { text: v.text }),
2133
+ loss: v.loss,
2134
+ ...(null == v.errors ? {} : { errors: v.errors }),
2135
+ })),
2136
+ ...(null == report.errors ? {} : { errors: report.errors }),
2137
+ }, 2);
2138
+ }
2139
+ // One line per code: the code, the count, and the detail if any.
2140
+ function renderViewLoss(loss) {
2141
+ return loss.map((l) => `${l.code} ${l.count}` +
2142
+ (undefined === l.detail ? '' : ' ' + l.detail.join(' '))).join('\n');
2143
+ }
2144
+ function renderViewJson(report) {
2145
+ return (0, aontu_1.exactJSON)({
2146
+ aontu: { version: version(), verb: 'view' },
2147
+ kind: report.kind,
2148
+ verdict: report.verdict,
2149
+ ...(null == report.text ? {} : { text: report.text }),
2150
+ loss: report.loss,
2151
+ ...(null == report.errors ? {} : { errors: report.errors }),
2152
+ }, 2);
2153
+ }
1735
2154
  function renderRelationsText(report) {
1736
2155
  const head = `verdict: ${report.verdict}`;
1737
2156
  // WHY, when the document could not be evaluated at all: rendered as
@@ -1745,11 +2164,8 @@ function renderRelationsText(report) {
1745
2164
  }
1746
2165
  const lines = report.findings.map((f) => 'relation_cycle' === f.code
1747
2166
  ? `${f.at} ${f.relation}: cycle ${f.detail.join(' -> ')}`
1748
- : 'relation_target_unmet' === f.code
1749
- ? `${f.at} ${f.relation}: ${f.detail[1]} is not what ` +
1750
- `${f.relation} targets (${f.detail[2]})`
1751
- : `${f.at} ${f.relation}: ${f.detail[1]} does not list ` +
1752
- `${f.detail[0]} under ${f.detail[2]}`);
2167
+ : `${f.at} ${f.relation}: ${f.detail[1]} does not list ` +
2168
+ `${f.detail[0]} under ${f.detail[2]}`);
1753
2169
  return [head, ''].concat(lines).join('\n');
1754
2170
  }
1755
2171
  function renderRelationsJson(report) {
@@ -2468,6 +2884,9 @@ function main(argv) {
2468
2884
  if ('reaches' === argv[2]) {
2469
2885
  return finish(runReaches(argv.slice(3)));
2470
2886
  }
2887
+ if ('view' === argv[2]) {
2888
+ return finish(runView(argv.slice(3)));
2889
+ }
2471
2890
  if ('trim' === argv[2]) {
2472
2891
  return finish(runTrim(argv.slice(3)));
2473
2892
  }
@@ -2546,5 +2965,5 @@ function main(argv) {
2546
2965
  else {
2547
2966
  runStdin(mode, trust).then((code) => finish(code));
2548
2967
  }
2549
- } /* node:coverage ignore next 15 */
2968
+ } /* node:coverage ignore next 16 */
2550
2969
  //# sourceMappingURL=cli.js.map