aontu 0.60.0 → 0.62.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 (113) hide show
  1. package/README.md +3 -3
  2. package/dist/agentsmd.d.ts +1 -0
  3. package/dist/agentsmd.js +7 -1
  4. package/dist/agentsmd.js.map +1 -1
  5. package/dist/allow.d.ts +23 -0
  6. package/dist/allow.js +230 -0
  7. package/dist/allow.js.map +1 -0
  8. package/dist/aontu.d.ts +4 -2
  9. package/dist/aontu.js +4 -2
  10. package/dist/aontu.js.map +1 -1
  11. package/dist/cli.d.ts +10 -1
  12. package/dist/cli.js +1000 -47
  13. package/dist/cli.js.map +1 -1
  14. package/dist/format.d.ts +1 -0
  15. package/dist/format.js +154 -12
  16. package/dist/format.js.map +1 -1
  17. package/dist/helpdoc.d.ts +16 -0
  18. package/dist/helpdoc.js +59 -0
  19. package/dist/helpdoc.js.map +1 -0
  20. package/dist/hints.js +15 -2
  21. package/dist/hints.js.map +1 -1
  22. package/dist/lang.js +93 -40
  23. package/dist/lang.js.map +1 -1
  24. package/dist/lower.d.ts +3 -0
  25. package/dist/lower.js +3 -0
  26. package/dist/lower.js.map +1 -1
  27. package/dist/lsp.d.ts +1 -1
  28. package/dist/lsp.js +1 -1
  29. package/dist/lsp.js.map +1 -1
  30. package/dist/relation.d.ts +2 -0
  31. package/dist/relation.js +7 -1
  32. package/dist/relation.js.map +1 -1
  33. package/dist/render.js +26 -21
  34. package/dist/render.js.map +1 -1
  35. package/dist/sigdecl.js +1 -1
  36. package/dist/sigdecl.js.map +1 -1
  37. package/dist/std.js +112 -69
  38. package/dist/std.js.map +1 -1
  39. package/dist/template.d.ts +2 -1
  40. package/dist/template.js +51 -15
  41. package/dist/template.js.map +1 -1
  42. package/dist/tsconfig.tsbuildinfo +1 -1
  43. package/dist/val/AggFuncVal.js +2 -2
  44. package/dist/val/AggFuncVal.js.map +1 -1
  45. package/dist/val/CmpFuncVal.d.ts +20 -0
  46. package/dist/val/CmpFuncVal.js +245 -0
  47. package/dist/val/CmpFuncVal.js.map +1 -0
  48. package/dist/val/EachFuncVal.d.ts +1 -2
  49. package/dist/val/EachFuncVal.js +15 -29
  50. package/dist/val/EachFuncVal.js.map +1 -1
  51. package/dist/val/FormFuncVal.js.map +1 -1
  52. package/dist/val/LowerFuncVal.js +17 -1
  53. package/dist/val/LowerFuncVal.js.map +1 -1
  54. package/dist/val/NamerFuncVal.d.ts +12 -0
  55. package/dist/val/NamerFuncVal.js +176 -0
  56. package/dist/val/NamerFuncVal.js.map +1 -0
  57. package/dist/val/NilVal.js +29 -3
  58. package/dist/val/NilVal.js.map +1 -1
  59. package/dist/val/NomFuncVal.d.ts +12 -0
  60. package/dist/val/NomFuncVal.js +187 -0
  61. package/dist/val/NomFuncVal.js.map +1 -0
  62. package/dist/val/PackFuncVal.js +3 -3
  63. package/dist/val/PackFuncVal.js.map +1 -1
  64. package/dist/val/RefVal.js +1 -1
  65. package/dist/val/TranslateFuncVal.d.ts +12 -0
  66. package/dist/val/TranslateFuncVal.js +101 -0
  67. package/dist/val/TranslateFuncVal.js.map +1 -0
  68. package/dist/val/UpperFuncVal.js +17 -1
  69. package/dist/val/UpperFuncVal.js.map +1 -1
  70. package/dist/val/caserange.d.ts +3 -0
  71. package/dist/val/caserange.js +110 -0
  72. package/dist/val/caserange.js.map +1 -0
  73. package/dist/vet.d.ts +12 -0
  74. package/dist/vet.js +209 -1
  75. package/dist/vet.js.map +1 -1
  76. package/grammar/aontu.abnf +1 -1
  77. package/grammar/aontu.gbnf +1 -1
  78. package/grammar/aontu.lark +1 -1
  79. package/grammar/aontu.tmLanguage.json +1 -1
  80. package/package.json +1 -1
  81. package/skill/SKILL.md +8 -0
  82. package/skill/init/check.sh +28 -0
  83. package/skill/init/data.aon +12 -0
  84. package/skill/init/model.aon +19 -0
  85. package/skill/tasks.md +151 -0
  86. package/src/agentsmd.ts +13 -2
  87. package/src/allow.ts +316 -0
  88. package/src/aontu.ts +10 -1
  89. package/src/cli.ts +1131 -53
  90. package/src/format.ts +191 -14
  91. package/src/helpdoc.ts +77 -0
  92. package/src/hints.ts +16 -2
  93. package/src/lang.ts +98 -42
  94. package/src/lower.ts +3 -3
  95. package/src/lsp.ts +1 -1
  96. package/src/relation.ts +21 -1
  97. package/src/render.ts +26 -21
  98. package/src/sigdecl.ts +1 -1
  99. package/src/std.ts +112 -69
  100. package/src/template.ts +55 -15
  101. package/src/val/AggFuncVal.ts +2 -2
  102. package/src/val/CmpFuncVal.ts +411 -0
  103. package/src/val/EachFuncVal.ts +49 -50
  104. package/src/val/LowerFuncVal.ts +18 -1
  105. package/src/val/NilVal.ts +29 -3
  106. package/src/val/NomFuncVal.ts +287 -0
  107. package/src/val/PackFuncVal.ts +3 -3
  108. package/src/val/RefVal.ts +1 -1
  109. package/src/val/TranslateFuncVal.ts +182 -0
  110. package/src/val/UpperFuncVal.ts +18 -1
  111. package/src/val/caserange.ts +115 -0
  112. package/src/vet.ts +287 -1
  113. package/src/val/FormFuncVal.ts +0 -119
package/dist/std.js CHANGED
@@ -2,19 +2,23 @@
2
2
  /* Copyright (c) 2025 Richard Rodger, MIT License */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.AONTU_MODELS = exports.AONTU_SCHEME = exports.STD_SOURCES = void 0;
5
- // THE BUNDLED VOCABULARY (G4 phase 4,
6
- // docs/capability-review/g4-identity-relations.md): `@"std/system"` is
7
- // served from the engine itself — no filesystem, no package resolution
8
- // — so a document may use it under every include capability except
9
- // `none`, and the hermeticity posture is not widened by a source that
10
- // never leaves the process.
5
+ // THE LANGUAGE-SUPPLIED MODELS (G4 phase 4,
6
+ // docs/capability-review/g4-identity-relations.md): `@"aontu:system"`
7
+ // is served from the engine itself — no filesystem, no package
8
+ // resolution — so a document may use it under every include capability
9
+ // except `none`, and the hermeticity posture is not widened by a source
10
+ // that never leaves the process.
11
+ //
12
+ // EVERY name here carries the `aontu:` prefix (ADR-028): a
13
+ // language-supplied schema is spelled one way, and the scheme is what
14
+ // makes it unshadowable. There is no second, bare-name spelling.
11
15
  //
12
16
  // The TEXT is the shared artifact: go/std.go carries the same bytes,
13
- // and test/spec/std-system.tsv pins its canon and its canon-hash in
17
+ // and test/spec/aontu-system.tsv pins its canon and its canon-hash in
14
18
  // both engines, so the two copies cannot drift without a red suite.
15
19
  // It carries no backtick for that reason: one string literal per port,
16
20
  // and Go's raw string has no escape.
17
- const STD_SYSTEM = `# std/system --- the SYSTEM VOCABULARY (G4 phase 4). Ports, components
21
+ const STD_SYSTEM = `# aontu:system --- the SYSTEM VOCABULARY (G4 phase 4). Ports, components
18
22
  # and relations need no syntax: they are schemas. Everything here is
19
23
  # ordinary unification --- conjunction, spreads, marks, defaults ---
20
24
  # so the vocabulary costs the language nothing, and an author who wants
@@ -25,48 +29,74 @@ const STD_SYSTEM = `# std/system --- the SYSTEM VOCABULARY (G4 phase 4). Ports,
25
29
  # identity and version makes "v1 and v2 describe the same entity"
26
30
  # inexpressible.
27
31
 
28
- std: {
29
-
32
+ aontu: System: {
30
33
  # One end of a connection.
31
- Port: type({
32
- direction: *in | out | inout
33
- protocol?: string
34
- })
34
+ Port: type({ direction:*in | out | inout protocol?:string })
35
35
 
36
36
  # A node with ports. Where a Component sits in the tree is what it
37
37
  # is a component OF -- containment is the document's own structure
38
38
  # and needs no mark of its own.
39
- Component: type({
40
- ports?: {&: $.std.Port}
41
- })
39
+ Component: type({ ports?:{ &: $.aontu.System.Port } })
42
40
 
43
41
  # A component that is a service. Written out rather than as
44
- # $.std.Component & {kind: service}: a reference from one member of
42
+ # $.aontu.System.Component & {kind: service}: a reference from one member of
45
43
  # this file to another does not survive being INCLUDED into a
46
44
  # document (the marks the include carries make the referring member
47
45
  # unusable), so the vocabulary states each schema on its own.
48
- Service: type({
49
- kind: service
50
- ports?: {&: $.std.Port}
51
- })
52
-
46
+ Service: type({ kind:service ports?:{ &: $.aontu.System.Port } })
47
+
48
+ # A semantic version (semver.org 2.0.0) as an ORDERED TUPLE: major,
49
+ # minor, patch, pre-release. A list and not a dotted string, because a
50
+ # version is COMPARED and the comparison runs component by component
51
+ # from the left: "1.10.0" sorts below "1.9.0" as text. A list and not
52
+ # a map, because a map has no order of its own to compare along.
53
+ #
54
+ # THE TAIL DEFAULTS, so [1] is [1 0 0 ""] and [1 2] is [1 2 0 ""].
55
+ # A major-only version is the common case and should cost one token.
56
+ #
57
+ # LEADING ZEROES ARE IMPOSSIBLE HERE rather than merely forbidden:
58
+ # the numeric parts are integers, and 01 is not a distinct integer
59
+ # literal. The spec's "MUST NOT contain leading zeroes" needs no rule.
60
+ #
61
+ # THE PRE-RELEASE CHECK IS PARTIAL, and deliberately says so. The
62
+ # spec's grammar is dot-separated identifiers, each non-empty, each
63
+ # [0-9A-Za-z-], numeric ones without leading zeroes -- which as a
64
+ # regex is a quantified group containing a quantifier, and re()
65
+ # refuses that shape outright (constraint_pattern) because it
66
+ # backtracks exponentially. So the alphabet is checked and the
67
+ # STRUCTURE is not: "beta_1" is refused, "alpha..1" and "01" are not.
68
+ # Carrying the pre-release as a LIST of identifiers would check it in
69
+ # full, one identifier per element, and is the change to make if that
70
+ # matters more than [1 0 0 ""] does.
71
+ #
72
+ # BUILD METADATA IS NOT CARRIED. The spec has it, and the spec also
73
+ # says it MUST be ignored when determining precedence -- so a type
74
+ # whose purpose is comparison is the wrong place for it.
75
+ Semver: type(
76
+ [
77
+ integer & min(0)
78
+ *0 | (integer & min(0))
79
+ *0 | (integer & min(0))
80
+ *"" | (string & re("^[0-9A-Za-z.-]+$"))
81
+ ] & length(4)
82
+ )
53
83
  # (The Relation schema that used to sit here is retired with the
54
84
  # relations: magic key, RELATIONS.0.md P2: a relation is declared
55
85
  # by the graph atoms at its field -- rel(t) & acyclic() &
56
86
  # inverse(name) -- and the target half is rel(t)'s flow.)
57
87
  }
58
88
  `;
59
- const STD_VIEW = `# std/view --- the FIGURE VOCABULARY (VIEWS.0.md, "6. The view
89
+ const STD_VIEW = `# aontu:view --- the FIGURE VOCABULARY (VIEWS.0.md, "6. The view
60
90
  # document"). A view document declares its figures as data, and a
61
91
  # declaration is just a map: this is the schema for one, so a typo is
62
92
  # refused where every other mistake in an aontu document is refused --
63
93
  # at evaluation, by unification -- rather than by the verb that reads
64
94
  # it afterwards.
65
95
  #
66
- # @"std/view"
96
+ # @"aontu:view"
67
97
  # @"./system.aon"
68
98
  #
69
- # views: {&: $.view.Figure} & {
99
+ # views: {&: $.aontu.View.Figure} & {
70
100
  # arch: {kind: matrix, order: partition, out: "docs/arch.dsm.txt"}
71
101
  # }
72
102
  #
@@ -80,8 +110,7 @@ const STD_VIEW = `# std/view --- the FIGURE VOCABULARY (VIEWS.0.md, "6. The view
80
110
  # canon-hash. This file carries no backtick: it is one string literal
81
111
  # per port, and Go raw strings have no escape.
82
112
 
83
- view: {
84
-
113
+ aontu: View: {
85
114
  # One declared figure. The kind says what to draw and out says where
86
115
  # it belongs; everything else narrows the drawing, and each option
87
116
  # belongs to the kinds that read it.
@@ -183,6 +212,7 @@ const STD_CODE = String.raw `# aontu:code --- THE OUTPUT VOCABULARY. An aontu tr
183
212
  k: "prim"
184
213
  prim: "string" | "int" | "bigint" | "float" | "decimal" | "bool" | "null" | "any"
185
214
  })
215
+
186
216
  %ref = close({ k:"ref" name:%name unit?:string })
187
217
  %leaf = %prim | %ref | %text
188
218
 
@@ -205,6 +235,7 @@ const STD_CODE = String.raw `# aontu:code --- THE OUTPUT VOCABULARY. An aontu tr
205
235
  })
206
236
 
207
237
  %member = close({ name:%name value?:string | number doc?:%doc x?:{} })
238
+
208
239
  %param = close({
209
240
  name: %name
210
241
  type: %type
@@ -218,12 +249,14 @@ const STD_CODE = String.raw `# aontu:code --- THE OUTPUT VOCABULARY. An aontu tr
218
249
  %inline = string & re("^[^\n\r]*$") | %ref
219
250
  %line = close({ k:"line" at:*0 | integer & min(0) & max(64) of:[&: %inline] })
220
251
  %blank = close({ k:"blank" n:*1 | integer & min(1) & max(16) })
252
+
221
253
  %raw = close({
222
254
  k: "raw"
223
255
  at: *0 | integer & min(0) & max(64)
224
256
  text: string
225
257
  reindent: *true | boolean
226
258
  })
259
+
227
260
  %piece = %line | %blank | %raw | string & re("^[^\n\r]*$")
228
261
  %frag = close({ k:"frag" of:[&: %piece] })
229
262
  %body = %frag | close({ k:"abstract" })
@@ -238,7 +271,9 @@ const STD_CODE = String.raw `# aontu:code --- THE OUTPUT VOCABULARY. An aontu tr
238
271
  check?: [&: %check]
239
272
  x?: {}
240
273
  })
274
+
241
275
  %enum = close({ k:"enum" name:%name doc?:%doc members:[&: %member] x?:{} })
276
+
242
277
  %alias = close({
243
278
  k: "alias"
244
279
  name: %name
@@ -247,6 +282,7 @@ const STD_CODE = String.raw `# aontu:code --- THE OUTPUT VOCABULARY. An aontu tr
247
282
  check?: [&: %check]
248
283
  x?: {}
249
284
  })
285
+
250
286
  %const = close({
251
287
  k: "const"
252
288
  name: %name
@@ -255,6 +291,7 @@ const STD_CODE = String.raw `# aontu:code --- THE OUTPUT VOCABULARY. An aontu tr
255
291
  value: string | number | boolean | null
256
292
  x?: {}
257
293
  })
294
+
258
295
  %func = close({
259
296
  k: "func"
260
297
  name: %name
@@ -287,7 +324,7 @@ const STD_CODE = String.raw `# aontu:code --- THE OUTPUT VOCABULARY. An aontu tr
287
324
 
288
325
  %source = close({ path?:string hash?:string & re("^aon1-[A-Za-z0-9_-]+$") })
289
326
 
290
- code: close({ source?:%source units:[&: %unit] })
327
+ aontu: Code: close({ source?:%source units:[&: %unit] })
291
328
  `;
292
329
  const STD_PROFILE = String.raw `# aontu:profile --- THE PROFILE VOCABULARY. A profile is the data
293
330
  # 'aontu render' applies to a unit of one language, and it is DATA and
@@ -359,7 +396,7 @@ const STD_PROFILE = String.raw `# aontu:profile --- THE PROFILE VOCABULARY. A pr
359
396
  banner?: string
360
397
  })
361
398
 
362
- profile: %profile
399
+ aontu: Profile: %profile
363
400
  `;
364
401
  // The text profile (RENDER.0.md D5): the profile of a fragment-only
365
402
  // unit, and the fallback of every language without a lowering.
@@ -374,7 +411,7 @@ const STD_LANG_TEXT = String.raw `# aontu:lang/text --- THE TEXT PROFILE. The pr
374
411
 
375
412
  @"aontu:profile"
376
413
 
377
- profile: { lang:"text" indent:{ unit:" " width:2 } }
414
+ aontu: Profile: { lang:"text" indent:{ unit:" " width:2 } }
378
415
  `;
379
416
  // THE TYPESCRIPT PROFILE (docs/design/RENDER.0.md D5, P5): the data the
380
417
  // typescript lowering renders under -- two spaces, the JSDoc forms, the
@@ -394,7 +431,7 @@ const STD_LANG_TYPESCRIPT = String.raw `# aontu:lang/typescript --- THE TYPESCRI
394
431
 
395
432
  @"aontu:profile"
396
433
 
397
- profile: {
434
+ aontu: Profile: {
398
435
  lang: "typescript"
399
436
  lowering: "typescript"
400
437
  indent: { unit:" " width:2 }
@@ -402,13 +439,15 @@ profile: {
402
439
  comment: block: { open:"/*" prefix:" * " close:" */" }
403
440
  comment: doc: { open:"/**" prefix:" * " close:" */" }
404
441
  str: quote: "\""
405
- str: escape: "8": "\\b"
406
- str: escape: "9": "\\t"
407
- str: escape: "10": "\\n"
408
- str: escape: "12": "\\f"
409
- str: escape: "13": "\\r"
410
- str: escape: "34": "\\\""
411
- str: escape: "92": "\\\\"
442
+ str: escape: {
443
+ "8": "\\b"
444
+ "9": "\\t"
445
+ "10": "\\n"
446
+ "12": "\\f"
447
+ "13": "\\r"
448
+ "34": "\\\""
449
+ "92": "\\\\"
450
+ }
412
451
  ident: {
413
452
  chars: "ascii-word"
414
453
  reserved: [
@@ -469,14 +508,16 @@ profile: {
469
508
  case: alias: "pascal"
470
509
  acronyms: []
471
510
  }
472
- types: prim: string: "string"
473
- types: prim: int: "number"
474
- types: prim: bigint: "bigint"
475
- types: prim: float: "number"
476
- types: prim: decimal: "string"
477
- types: prim: bool: "boolean"
478
- types: prim: null: "null"
479
- types: prim: any: "unknown"
511
+ types: prim: {
512
+ string: "string"
513
+ int: "number"
514
+ bigint: "bigint"
515
+ float: "number"
516
+ decimal: "string"
517
+ bool: "boolean"
518
+ null: "null"
519
+ any: "unknown"
520
+ }
480
521
  types: list: { close:"[]" childPrec:2 }
481
522
  types: map: { open:"Record<" close:">" }
482
523
  types: opt: { close:" | null" prec:1 childPrec:2 }
@@ -503,21 +544,23 @@ const STD_LANG_GO = String.raw `# aontu:lang/go --- THE GO PROFILE. The data a u
503
544
 
504
545
  @"aontu:profile"
505
546
 
506
- profile: {
547
+ aontu: Profile: {
507
548
  lang: "go"
508
549
  lowering: "go"
509
550
  indent: { unit:"\t" width:1 }
510
551
  comment: { line:prefix:"// " block:{ open:"/*" close:"*/" } doc:prefix:"// " }
511
552
  str: quote: "\""
512
- str: escape: "7": "\\a"
513
- str: escape: "8": "\\b"
514
- str: escape: "9": "\\t"
515
- str: escape: "10": "\\n"
516
- str: escape: "11": "\\v"
517
- str: escape: "12": "\\f"
518
- str: escape: "13": "\\r"
519
- str: escape: "34": "\\\""
520
- str: escape: "92": "\\\\"
553
+ str: escape: {
554
+ "7": "\\a"
555
+ "8": "\\b"
556
+ "9": "\\t"
557
+ "10": "\\n"
558
+ "11": "\\v"
559
+ "12": "\\f"
560
+ "13": "\\r"
561
+ "34": "\\\""
562
+ "92": "\\\\"
563
+ }
521
564
  ident: {
522
565
  chars: "ascii-word"
523
566
  reserved: [
@@ -596,14 +639,16 @@ profile: {
596
639
  "XSS"
597
640
  ]
598
641
  }
599
- types: prim: string: "string"
600
- types: prim: int: "int64"
601
- types: prim: bigint: "string"
602
- types: prim: float: "float64"
603
- types: prim: decimal: "string"
604
- types: prim: bool: "bool"
605
- types: prim: null: "any"
606
- types: prim: any: "any"
642
+ types: prim: {
643
+ string: "string"
644
+ int: "int64"
645
+ bigint: "string"
646
+ float: "float64"
647
+ decimal: "string"
648
+ bool: "bool"
649
+ null: "any"
650
+ any: "any"
651
+ }
607
652
  types: list: open: "[]"
608
653
  types: map: open: "map["
609
654
  types: opt: open: "*"
@@ -611,10 +656,8 @@ profile: {
611
656
  }
612
657
  `;
613
658
  exports.STD_SOURCES = {
614
- 'std/system': STD_SYSTEM,
615
- 'std/system.aon': STD_SYSTEM,
616
- 'std/view': STD_VIEW,
617
- 'std/view.aon': STD_VIEW,
659
+ 'aontu:system': STD_SYSTEM,
660
+ 'aontu:view': STD_VIEW,
618
661
  'aontu:code': STD_CODE,
619
662
  'aontu:lang/go': STD_LANG_GO,
620
663
  'aontu:lang/text': STD_LANG_TEXT,
package/dist/std.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"std.js","sourceRoot":"","sources":["../src/std.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAEpD,sCAAsC;AACtC,uEAAuE;AACvE,uEAAuE;AACvE,mEAAmE;AACnE,sEAAsE;AACtE,4BAA4B;AAC5B,EAAE;AACF,qEAAqE;AACrE,oEAAoE;AACpE,oEAAoE;AACpE,uEAAuE;AACvE,qCAAqC;AAErC,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyClB,CAAA;AAGD,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmEhB,CAAA;AAGD,4DAA4D;AAC5D,uEAAuE;AACvE,sEAAsE;AACtE,sEAAsE;AACtE,sEAAsE;AACtE,8DAA8D;AAC9D,EAAE;AACF,mEAAmE;AACnE,iEAAiE;AACjE,sEAAsE;AACtE,oEAAoE;AACpE,gEAAgE;AAChE,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwJ1B,CAAA;AAGD,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuE7B,CAAA;AAGD,oEAAoE;AACpE,+DAA+D;AAC/D,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;CAY/B,CAAA;AAED,wEAAwE;AACxE,wEAAwE;AACxE,uEAAuE;AACvE,uEAAuE;AACvE,oEAAoE;AACpE,qEAAqE;AACrE,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsGrC,CAAA;AAED,2EAA2E;AAC3E,wEAAwE;AACxE,uEAAuE;AACvE,4DAA4D;AAC5D,gDAAgD;AAChD,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuH7B,CAAA;AAEY,QAAA,WAAW,GAA2B;IACjD,YAAY,EAAE,UAAU;IACxB,gBAAgB,EAAE,UAAU;IAC5B,UAAU,EAAE,QAAQ;IACpB,cAAc,EAAE,QAAQ;IACxB,YAAY,EAAE,QAAQ;IACtB,eAAe,EAAE,WAAW;IAC5B,iBAAiB,EAAE,aAAa;IAChC,uBAAuB,EAAE,mBAAmB;IAC5C,eAAe,EAAE,WAAW;CAC7B,CAAA;AAED,sEAAsE;AACtE,qEAAqE;AACrE,WAAW;AACE,QAAA,YAAY,GAAG,QAAQ,CAAA;AACvB,QAAA,YAAY,GACvB,MAAM,CAAC,IAAI,CAAC,QAAA,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,QAAA,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA"}
1
+ {"version":3,"file":"std.js","sourceRoot":"","sources":["../src/std.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAEpD,4CAA4C;AAC5C,sEAAsE;AACtE,+DAA+D;AAC/D,uEAAuE;AACvE,wEAAwE;AACxE,iCAAiC;AACjC,EAAE;AACF,2DAA2D;AAC3D,sEAAsE;AACtE,iEAAiE;AACjE,EAAE;AACF,qEAAqE;AACrE,sEAAsE;AACtE,oEAAoE;AACpE,uEAAuE;AACvE,qCAAqC;AAErC,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmElB,CAAA;AAGD,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkEhB,CAAA;AAGD,4DAA4D;AAC5D,uEAAuE;AACvE,sEAAsE;AACtE,sEAAsE;AACtE,sEAAsE;AACtE,8DAA8D;AAC9D,EAAE;AACF,mEAAmE;AACnE,iEAAiE;AACjE,sEAAsE;AACtE,oEAAoE;AACpE,gEAAgE;AAChE,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgK1B,CAAA;AAGD,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuE7B,CAAA;AAGD,oEAAoE;AACpE,+DAA+D;AAC/D,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;CAY/B,CAAA;AAED,wEAAwE;AACxE,wEAAwE;AACxE,uEAAuE;AACvE,uEAAuE;AACvE,oEAAoE;AACpE,qEAAqE;AACrE,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0GrC,CAAA;AAED,2EAA2E;AAC3E,wEAAwE;AACxE,uEAAuE;AACvE,4DAA4D;AAC5D,gDAAgD;AAChD,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2H7B,CAAA;AAEY,QAAA,WAAW,GAA2B;IACjD,cAAc,EAAE,UAAU;IAC1B,YAAY,EAAE,QAAQ;IACtB,YAAY,EAAE,QAAQ;IACtB,eAAe,EAAE,WAAW;IAC5B,iBAAiB,EAAE,aAAa;IAChC,uBAAuB,EAAE,mBAAmB;IAC5C,eAAe,EAAE,WAAW;CAC7B,CAAA;AAED,sEAAsE;AACtE,qEAAqE;AACrE,WAAW;AACE,QAAA,YAAY,GAAG,QAAQ,CAAA;AACvB,QAAA,YAAY,GACvB,MAAM,CAAC,IAAI,CAAC,QAAA,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,QAAA,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA"}
@@ -2,4 +2,5 @@ declare const DEFAULT_MARKER = "//-";
2
2
  declare function markerFor(path: string): string;
3
3
  declare function desugarTemplate(src: string, marker?: string): string;
4
4
  declare function resugarTemplate(src: string, marker?: string): string;
5
- export { desugarTemplate, resugarTemplate, markerFor, DEFAULT_MARKER, };
5
+ declare function templateOutputs(src: string, marker: string): boolean[];
6
+ export { desugarTemplate, resugarTemplate, templateOutputs, markerFor, DEFAULT_MARKER, };
package/dist/template.js CHANGED
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.DEFAULT_MARKER = void 0;
5
5
  exports.desugarTemplate = desugarTemplate;
6
6
  exports.resugarTemplate = resugarTemplate;
7
+ exports.templateOutputs = templateOutputs;
7
8
  exports.markerFor = markerFor;
8
9
  // THE TEMPLATE SURFACE (docs/design/TEMPLATE.0.md; RENDER.0.md P8).
9
10
  // A generator written in the TARGET's own syntax: a marked line is
@@ -28,12 +29,22 @@ exports.markerFor = markerFor;
28
29
  // comment, and derives for a language this table has never seen: the
29
30
  // caller passes the token.
30
31
  //
31
- // A MARKER IS RECOGNISED AFTER LEADING WHITESPACE AND KEEPS ITS OWN
32
- // INDENTATION (D2). That is what lets a template be written exactly
33
- // where its output appears (D7): a body line is verbatim, so a line
34
- // indented two spaces in the template is indented two spaces in the
35
- // generated file, and the marker lines around it are indented to match
36
- // the code they sit in rather than to the aontu they carry.
32
+ // A MARKER IS RECOGNISED AFTER LEADING WHITESPACE, AND THE INDENTATION
33
+ // THE RESUGARING WRITES IS THE AONTU'S (D2, amended 2026-09-07). An
34
+ // output line is verbatim -- a line indented two spaces in the template
35
+ // is indented two spaces in the generated file (D7) -- and that is the
36
+ // half a reader of the TARGET needs. The other half is the document:
37
+ // the marker lines carry a tree, and a tree nobody can see the shape of
38
+ // is the one thing this surface took away. So the marker stands at the
39
+ // left margin and the aontu is indented AFTER it, which `aontu fmt`
40
+ // (FMT.0.md M-BM-'3.14) is what writes.
41
+ //
42
+ // Reading is unchanged and stays generous: a marker after leading
43
+ // whitespace is a marker, and its own indentation still counts toward
44
+ // the aontu it carries, so a template written the other way desugars to
45
+ // the same document. What changes is the spelling the round trip
46
+ // answers, and `template --check` names the difference as the drift it
47
+ // is.
37
48
  //
38
49
  // THE SUGAR IS THE FIXPOINT OF THE TWO TRANSFORMS (D6), and that is
39
50
  // the whole of the resugaring's safety. A canonical line that looks
@@ -121,13 +132,17 @@ function indentOf(line) {
121
132
  }
122
133
  return i;
123
134
  }
124
- // The line without its indentation or its trailing spaces and tabs.
125
- function trimLine(line) {
135
+ // The line without its trailing spaces and tabs.
136
+ function trimEnd(line) {
126
137
  let end = line.length;
127
138
  while (0 < end && (' ' === line[end - 1] || '\t' === line[end - 1])) {
128
139
  end--;
129
140
  }
130
- return line.slice(indentOf(line), end);
141
+ return line.slice(0, end);
142
+ }
143
+ // The line without its indentation or its trailing spaces and tabs.
144
+ function trimLine(line) {
145
+ return trimEnd(line).slice(indentOf(line));
131
146
  }
132
147
  function readLine(line, marker) {
133
148
  const cut = indentOf(line);
@@ -140,12 +155,15 @@ function readLine(line, marker) {
140
155
  // The block form's closer is part of the marker, not of the aontu.
141
156
  // A block marker line that never closes is not a marker line: the
142
157
  // language's own parser would not read it as a comment either.
158
+ // Only the TRAILING space goes: what stands between the opener and
159
+ // the aontu is the aontu's indentation, exactly as it is for a line
160
+ // marker, and the one-space rule below takes the marker's own.
143
161
  if (isBlock(marker)) {
144
162
  const end = body.lastIndexOf(BLOCK_CLOSE);
145
163
  if (end < 0) {
146
164
  return { marker: false, indent: '', text: line };
147
165
  }
148
- body = trimLine(body.slice(0, end));
166
+ body = trimEnd(body.slice(0, end));
149
167
  }
150
168
  // ONE SPACE AFTER THE MARKER IS THE MARKER'S, so `//- x: 1` carries
151
169
  // `x: 1` and the resugaring writes the space back. A marker written
@@ -246,12 +264,30 @@ function resugarTemplate(src, marker) {
246
264
  if (undefined !== target && desugarTemplate(target, mark) === trimLine(line)) {
247
265
  return target;
248
266
  }
249
- const cut = indentOf(line);
250
- const text = line.slice(cut);
251
- const open = line.slice(0, cut) + mark;
267
+ // THE MARKER STANDS AT THE LEFT MARGIN and the line's indentation
268
+ // is written after it, so the aontu's own shape is on the page.
269
+ // The one space is the marker's, which the reading takes back.
270
+ const text = trimEnd(line);
252
271
  const close = isBlock(mark) ? ' ' + BLOCK_CLOSE : '';
253
- return '' === text ? open + close : open + ' ' + text + close;
272
+ return '' === text ? mark + close : mark + ' ' + text + close;
254
273
  });
255
274
  return out.join('\n') + (tail ? '\n' : '');
256
- } /* node:coverage ignore next 8 */
275
+ }
276
+ // WHICH LINES OF THE DESUGARED DOCUMENT ARE THE TARGET'S. The
277
+ // desugaring is line for line, so this is one flag per line of what
278
+ // `desugarTemplate` returns: true where the template's line was not a
279
+ // marker, and so where the document's line is one quoted line of the
280
+ // generated file.
281
+ //
282
+ // `aontu fmt` reads it (FMT.0.md M-BM-'3.14) to hold those lines on lines of
283
+ // their own. A body element is a string like any other, and the packing
284
+ // budget would put three of them on one line -- which is aontu where
285
+ // three lines of output were, and a generator that writes them as one.
286
+ function templateOutputs(src, marker) {
287
+ const lines = src.split('\n');
288
+ if (1 < lines.length && '' === lines[lines.length - 1]) {
289
+ lines.pop();
290
+ }
291
+ return lines.map((line) => !readLine(line, marker).marker);
292
+ } /* node:coverage ignore next 9 */
257
293
  //# sourceMappingURL=template.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../src/template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../src/template.ts"],"names":[],"mappings":"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"}