aontu 0.57.0 → 0.58.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 (117) hide show
  1. package/README.md +2 -2
  2. package/dist/agentsmd.js +1 -1
  3. package/dist/alias.d.ts +3 -0
  4. package/dist/alias.js +59 -0
  5. package/dist/alias.js.map +1 -0
  6. package/dist/aontu.d.ts +4 -2
  7. package/dist/aontu.js +11 -3
  8. package/dist/aontu.js.map +1 -1
  9. package/dist/cli.d.ts +3 -1
  10. package/dist/cli.js +475 -3
  11. package/dist/cli.js.map +1 -1
  12. package/dist/ctx.d.ts +2 -0
  13. package/dist/ctx.js +1 -0
  14. package/dist/ctx.js.map +1 -1
  15. package/dist/format.js +8 -2
  16. package/dist/format.js.map +1 -1
  17. package/dist/hints.js +40 -9
  18. package/dist/hints.js.map +1 -1
  19. package/dist/lang.js +354 -57
  20. package/dist/lang.js.map +1 -1
  21. package/dist/lower.d.ts +20 -0
  22. package/dist/lower.js +575 -0
  23. package/dist/lower.js.map +1 -0
  24. package/dist/lsp.d.ts +1 -1
  25. package/dist/lsp.js +1 -1
  26. package/dist/lsp.js.map +1 -1
  27. package/dist/mcp-server.js +1 -1
  28. package/dist/mcp.d.ts +1 -0
  29. package/dist/mcp.js +40 -3
  30. package/dist/mcp.js.map +1 -1
  31. package/dist/render.d.ts +53 -0
  32. package/dist/render.js +542 -0
  33. package/dist/render.js.map +1 -0
  34. package/dist/sigdecl.js +1 -1
  35. package/dist/sigdecl.js.map +1 -1
  36. package/dist/std.d.ts +2 -0
  37. package/dist/std.js +498 -2
  38. package/dist/std.js.map +1 -1
  39. package/dist/template.d.ts +5 -0
  40. package/dist/template.js +257 -0
  41. package/dist/template.js.map +1 -0
  42. package/dist/tsconfig.tsbuildinfo +1 -1
  43. package/dist/unify.js +43 -0
  44. package/dist/unify.js.map +1 -1
  45. package/dist/val/AggFuncVal.d.ts +1 -1
  46. package/dist/val/AggFuncVal.js +10 -21
  47. package/dist/val/AggFuncVal.js.map +1 -1
  48. package/dist/val/BagVal.js +1 -1
  49. package/dist/val/BagVal.js.map +1 -1
  50. package/dist/val/ConstraintVal.js +1 -1
  51. package/dist/val/EachFuncVal.d.ts +1 -1
  52. package/dist/val/EachFuncVal.js +8 -13
  53. package/dist/val/EachFuncVal.js.map +1 -1
  54. package/dist/val/EmitFuncVal.d.ts +23 -4
  55. package/dist/val/EmitFuncVal.js +298 -28
  56. package/dist/val/EmitFuncVal.js.map +1 -1
  57. package/dist/val/FilterFuncVal.js +8 -4
  58. package/dist/val/FilterFuncVal.js.map +1 -1
  59. package/dist/val/FormFuncVal.d.ts +14 -0
  60. package/dist/val/FormFuncVal.js +55 -0
  61. package/dist/val/FormFuncVal.js.map +1 -0
  62. package/dist/val/MapVal.d.ts +2 -1
  63. package/dist/val/MapVal.js +2 -1
  64. package/dist/val/MapVal.js.map +1 -1
  65. package/dist/val/PackFuncVal.d.ts +1 -1
  66. package/dist/val/PackFuncVal.js +22 -18
  67. package/dist/val/PackFuncVal.js.map +1 -1
  68. package/dist/val/PlaceVal.js +2 -1
  69. package/dist/val/PlaceVal.js.map +1 -1
  70. package/dist/val/RefVal.d.ts +3 -0
  71. package/dist/val/RefVal.js +156 -17
  72. package/dist/val/RefVal.js.map +1 -1
  73. package/dist/val/Val.d.ts +7 -1
  74. package/dist/val/Val.js +12 -1
  75. package/dist/val/Val.js.map +1 -1
  76. package/dist/val/members.d.ts +9 -0
  77. package/dist/val/members.js +52 -0
  78. package/dist/val/members.js.map +1 -0
  79. package/grammar/aontu.abnf +1 -1
  80. package/grammar/aontu.gbnf +1 -1
  81. package/grammar/aontu.lark +1 -1
  82. package/grammar/aontu.tmLanguage.json +1 -1
  83. package/package.json +1 -1
  84. package/skill/SKILL.md +4 -4
  85. package/skill/error-codes.md +1 -1
  86. package/skill/examples.md +1 -1
  87. package/skill/grammar-card.md +1 -1
  88. package/src/agentsmd.ts +1 -1
  89. package/src/alias.ts +112 -0
  90. package/src/aontu.ts +19 -2
  91. package/src/cli.ts +517 -3
  92. package/src/ctx.ts +13 -0
  93. package/src/format.ts +12 -2
  94. package/src/hints.ts +47 -9
  95. package/src/lang.ts +406 -62
  96. package/src/lower.ts +636 -0
  97. package/src/lsp.ts +1 -1
  98. package/src/mcp-server.ts +1 -1
  99. package/src/mcp.ts +43 -4
  100. package/src/render.ts +727 -0
  101. package/src/sigdecl.ts +1 -1
  102. package/src/std.ts +506 -1
  103. package/src/template.ts +291 -0
  104. package/src/unify.ts +47 -0
  105. package/src/val/AggFuncVal.ts +10 -21
  106. package/src/val/BagVal.ts +1 -1
  107. package/src/val/ConstraintVal.ts +1 -1
  108. package/src/val/EachFuncVal.ts +8 -16
  109. package/src/val/EmitFuncVal.ts +376 -39
  110. package/src/val/FilterFuncVal.ts +11 -4
  111. package/src/val/FormFuncVal.ts +119 -0
  112. package/src/val/MapVal.ts +3 -2
  113. package/src/val/PackFuncVal.ts +23 -19
  114. package/src/val/PlaceVal.ts +2 -1
  115. package/src/val/RefVal.ts +167 -18
  116. package/src/val/Val.ts +42 -1
  117. package/src/val/members.ts +86 -0
package/src/mcp.ts CHANGED
@@ -49,6 +49,7 @@ import { jsonSchema } from './jsonschema'
49
49
  import { relationCheck } from './relation'
50
50
  import { reachCheck } from './reach'
51
51
  import { view } from './view'
52
+ import { render } from './render'
52
53
  import { patch } from './patch'
53
54
 
54
55
 
@@ -178,7 +179,7 @@ function realpathOf(p: string): string {
178
179
  }
179
180
  }
180
181
 
181
- function outsideRoot(root: string, full: string): boolean {
182
+ export function outsideRoot(root: string, full: string): boolean {
182
183
  const rootReal = realpathOf(root)
183
184
  const fullReal = realpathOf(full)
184
185
  return fullReal !== rootReal && !fullReal.startsWith(rootReal + pathSep)
@@ -215,7 +216,7 @@ const TOOLS: ToolDef[] = [
215
216
  description:
216
217
  'Select one node of an evaluated document by path and render it: ' +
217
218
  'generated JSON by default, or the canon, types, keys or ' +
218
- 'depth-elided view. A view other than json is a valid Aontu ' +
219
+ 'depth-elided view. A view other than json is a valid aontu ' +
219
220
  'document that subsumes the truth it summarises.',
220
221
  properties: {
221
222
  src: { type: 'string', description: 'The document' },
@@ -388,7 +389,7 @@ const TOOLS: ToolDef[] = [
388
389
  path: { type: 'string', description: 'The path ($.a.b)' },
389
390
  value: {
390
391
  type: 'string',
391
- description: 'The value, as Aontu source text',
392
+ description: 'The value, as aontu source text',
392
393
  },
393
394
  },
394
395
  required: ['path', 'value'],
@@ -680,6 +681,44 @@ const TOOLS: ToolDef[] = [
680
681
  at: null == a.at ? undefined : str(a.at), path: paths.source,
681
682
  }),
682
683
  },
684
+ {
685
+ name: 'render',
686
+ description:
687
+ 'Render a document that evaluates to an aontu:code instance: ' +
688
+ 'evaluate it, vet the value at `at` against the bundled ' +
689
+ 'vocabulary, and fold code.units into bytes. Returns verdict ' +
690
+ '(ok | lossy | error), the units -- each a path, a language and ' +
691
+ 'its text -- and a `lossy` list of what the renderer could not ' +
692
+ 'check (a fragment says nothing about the target\'s syntax; a ' +
693
+ 'text escape or a raw block is verbatim). The tool never writes: ' +
694
+ 'the caller receives the units as text and places them itself.',
695
+ properties: {
696
+ source: { type: 'string', description: 'The document' },
697
+ at: {
698
+ type: 'string',
699
+ description: 'Render the value at this path of the document ($.a.b)',
700
+ },
701
+ unit: {
702
+ type: 'string',
703
+ description: 'Render only the unit with this path',
704
+ },
705
+ strict: {
706
+ type: 'boolean',
707
+ description: 'Refuse the opaque escapes (a text declaration, a raw block)',
708
+ },
709
+ },
710
+ required: ['source'],
711
+ docs: ['source'],
712
+ refuse: (_a, finding) =>
713
+ ({ verdict: 'error', units: [], lossy: [], errors: [finding] }),
714
+ run: (a, _trust, paths) =>
715
+ render(str(a.source), {
716
+ at: null == a.at ? undefined : str(a.at),
717
+ unit: null == a.unit ? undefined : str(a.unit),
718
+ strict: true === a.strict,
719
+ path: paths.source,
720
+ }),
721
+ },
683
722
  ]
684
723
 
685
724
 
@@ -1082,7 +1121,7 @@ export function callTool(
1082
1121
  // startup grant, not a per-call negotiation, so initialize is where a
1083
1122
  // caller learns whether `<name>Path` arguments are served.
1084
1123
  export function serverInstructions(root?: string): string {
1085
- return 'Aontu tools take document TEXT arguments and answer the ' +
1124
+ return 'aontu tools take document TEXT arguments and answer the ' +
1086
1125
  'same JSON reports the aontu CLI prints with --format json. ' +
1087
1126
  (null == root
1088
1127
  ? 'Evaluation is confined: includes (@"...") are denied, and ' +