aontu 0.52.1 → 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 (310) hide show
  1. package/README.md +88 -0
  2. package/bin/aontu-mcp.js +4 -0
  3. package/dist/agentsmd.d.ts +16 -0
  4. package/dist/agentsmd.js +107 -0
  5. package/dist/agentsmd.js.map +1 -0
  6. package/dist/aontu.d.ts +15 -3
  7. package/dist/aontu.js +126 -5
  8. package/dist/aontu.js.map +1 -1
  9. package/dist/cli.d.ts +45 -1
  10. package/dist/cli.js +2845 -69
  11. package/dist/cli.js.map +1 -1
  12. package/dist/ctx.d.ts +18 -0
  13. package/dist/ctx.js +44 -0
  14. package/dist/ctx.js.map +1 -1
  15. package/dist/diff.d.ts +22 -0
  16. package/dist/diff.js +141 -0
  17. package/dist/diff.js.map +1 -0
  18. package/dist/err.d.ts +3 -1
  19. package/dist/err.js +45 -8
  20. package/dist/err.js.map +1 -1
  21. package/dist/graph.d.ts +13 -0
  22. package/dist/graph.js +110 -0
  23. package/dist/graph.js.map +1 -0
  24. package/dist/hcanon.d.ts +3 -0
  25. package/dist/hcanon.js +145 -0
  26. package/dist/hcanon.js.map +1 -0
  27. package/dist/hints.js +235 -8
  28. package/dist/hints.js.map +1 -1
  29. package/dist/jsonschema.d.ts +20 -0
  30. package/dist/jsonschema.js +425 -0
  31. package/dist/jsonschema.js.map +1 -0
  32. package/dist/lang.js +955 -110
  33. package/dist/lang.js.map +1 -1
  34. package/dist/lsp.d.ts +9 -2
  35. package/dist/lsp.js +343 -48
  36. package/dist/lsp.js.map +1 -1
  37. package/dist/mcp-server.d.ts +20 -0
  38. package/dist/mcp-server.js +147 -0
  39. package/dist/mcp-server.js.map +1 -0
  40. package/dist/mcp.d.ts +42 -0
  41. package/dist/mcp.js +941 -0
  42. package/dist/mcp.js.map +1 -0
  43. package/dist/mod-tool.d.ts +58 -0
  44. package/dist/mod-tool.js +532 -0
  45. package/dist/mod-tool.js.map +1 -0
  46. package/dist/mod.d.ts +35 -0
  47. package/dist/mod.js +345 -0
  48. package/dist/mod.js.map +1 -0
  49. package/dist/patch.d.ts +49 -0
  50. package/dist/patch.js +506 -0
  51. package/dist/patch.js.map +1 -0
  52. package/dist/provenance.d.ts +41 -0
  53. package/dist/provenance.js +336 -0
  54. package/dist/provenance.js.map +1 -0
  55. package/dist/query.d.ts +27 -0
  56. package/dist/query.js +294 -0
  57. package/dist/query.js.map +1 -0
  58. package/dist/reach.d.ts +15 -0
  59. package/dist/reach.js +168 -0
  60. package/dist/reach.js.map +1 -0
  61. package/dist/relation.d.ts +23 -0
  62. package/dist/relation.js +230 -0
  63. package/dist/relation.js.map +1 -0
  64. package/dist/report-sarif.d.ts +14 -0
  65. package/dist/report-sarif.js +102 -0
  66. package/dist/report-sarif.js.map +1 -0
  67. package/dist/sig.d.ts +25 -0
  68. package/dist/sig.js +277 -0
  69. package/dist/sig.js.map +1 -0
  70. package/dist/sigdecl.d.ts +2 -0
  71. package/dist/sigdecl.js +11 -0
  72. package/dist/sigdecl.js.map +1 -0
  73. package/dist/siggate.d.ts +4 -0
  74. package/dist/siggate.js +90 -0
  75. package/dist/siggate.js.map +1 -0
  76. package/dist/site.d.ts +4 -0
  77. package/dist/site.js +31 -0
  78. package/dist/site.js.map +1 -1
  79. package/dist/std.d.ts +1 -0
  80. package/dist/std.js +129 -0
  81. package/dist/std.js.map +1 -0
  82. package/dist/subsume.d.ts +39 -0
  83. package/dist/subsume.js +573 -0
  84. package/dist/subsume.js.map +1 -0
  85. package/dist/trim.d.ts +19 -0
  86. package/dist/trim.js +155 -0
  87. package/dist/trim.js.map +1 -0
  88. package/dist/tsconfig.tsbuildinfo +1 -1
  89. package/dist/type.d.ts +17 -1
  90. package/dist/type.js.map +1 -1
  91. package/dist/unify.d.ts +2 -1
  92. package/dist/unify.js +234 -38
  93. package/dist/unify.js.map +1 -1
  94. package/dist/utility.d.ts +8 -1
  95. package/dist/utility.js +68 -1
  96. package/dist/utility.js.map +1 -1
  97. package/dist/val/AggFuncVal.d.ts +44 -0
  98. package/dist/val/AggFuncVal.js +364 -0
  99. package/dist/val/AggFuncVal.js.map +1 -0
  100. package/dist/val/ArithFuncVal.d.ts +31 -0
  101. package/dist/val/ArithFuncVal.js +62 -0
  102. package/dist/val/ArithFuncVal.js.map +1 -0
  103. package/dist/val/BagVal.d.ts +7 -0
  104. package/dist/val/BagVal.js +150 -11
  105. package/dist/val/BagVal.js.map +1 -1
  106. package/dist/val/CloseFuncVal.js +9 -1
  107. package/dist/val/CloseFuncVal.js.map +1 -1
  108. package/dist/val/ConjunctVal.d.ts +1 -1
  109. package/dist/val/ConjunctVal.js +19 -0
  110. package/dist/val/ConjunctVal.js.map +1 -1
  111. package/dist/val/ConstraintVal.d.ts +7 -1
  112. package/dist/val/ConstraintVal.js +523 -45
  113. package/dist/val/ConstraintVal.js.map +1 -1
  114. package/dist/val/ContainerKindVal.d.ts +35 -0
  115. package/dist/val/ContainerKindVal.js +99 -0
  116. package/dist/val/ContainerKindVal.js.map +1 -0
  117. package/dist/val/CopyFuncVal.d.ts +1 -2
  118. package/dist/val/CopyFuncVal.js.map +1 -1
  119. package/dist/val/Decimal.d.ts +1 -0
  120. package/dist/val/Decimal.js +13 -0
  121. package/dist/val/Decimal.js.map +1 -1
  122. package/dist/val/DeprecateFuncVal.d.ts +11 -0
  123. package/dist/val/DeprecateFuncVal.js +47 -0
  124. package/dist/val/DeprecateFuncVal.js.map +1 -0
  125. package/dist/val/DisjunctVal.d.ts +1 -2
  126. package/dist/val/DisjunctVal.js +269 -53
  127. package/dist/val/DisjunctVal.js.map +1 -1
  128. package/dist/val/EachFuncVal.d.ts +15 -0
  129. package/dist/val/EachFuncVal.js +75 -0
  130. package/dist/val/EachFuncVal.js.map +1 -0
  131. package/dist/val/ExpectVal.js +62 -4
  132. package/dist/val/ExpectVal.js.map +1 -1
  133. package/dist/val/FeatureVal.js +1 -1
  134. package/dist/val/FeatureVal.js.map +1 -1
  135. package/dist/val/FilterFuncVal.d.ts +15 -0
  136. package/dist/val/FilterFuncVal.js +91 -0
  137. package/dist/val/FilterFuncVal.js.map +1 -0
  138. package/dist/val/FuncBaseVal.d.ts +7 -1
  139. package/dist/val/FuncBaseVal.js +183 -2
  140. package/dist/val/FuncBaseVal.js.map +1 -1
  141. package/dist/val/GraphAtomVal.d.ts +39 -0
  142. package/dist/val/GraphAtomVal.js +184 -0
  143. package/dist/val/GraphAtomVal.js.map +1 -0
  144. package/dist/val/HideFuncVal.js.map +1 -1
  145. package/dist/val/JunctionVal.js +24 -1
  146. package/dist/val/JunctionVal.js.map +1 -1
  147. package/dist/val/KeyFuncVal.d.ts +1 -1
  148. package/dist/val/KeyFuncVal.js +38 -30
  149. package/dist/val/KeyFuncVal.js.map +1 -1
  150. package/dist/val/ListVal.js +94 -14
  151. package/dist/val/ListVal.js.map +1 -1
  152. package/dist/val/LowerFuncVal.js.map +1 -1
  153. package/dist/val/MapVal.d.ts +1 -0
  154. package/dist/val/MapVal.js +146 -14
  155. package/dist/val/MapVal.js.map +1 -1
  156. package/dist/val/MatchFuncVal.d.ts +15 -0
  157. package/dist/val/MatchFuncVal.js +107 -0
  158. package/dist/val/MatchFuncVal.js.map +1 -0
  159. package/dist/val/MoveFuncVal.js.map +1 -1
  160. package/dist/val/NilVal.js +24 -0
  161. package/dist/val/NilVal.js.map +1 -1
  162. package/dist/val/OpBaseVal.d.ts +1 -1
  163. package/dist/val/OpBaseVal.js +19 -1
  164. package/dist/val/OpBaseVal.js.map +1 -1
  165. package/dist/val/OpenFuncVal.js +4 -1
  166. package/dist/val/OpenFuncVal.js.map +1 -1
  167. package/dist/val/PackFuncVal.d.ts +15 -0
  168. package/dist/val/PackFuncVal.js +108 -0
  169. package/dist/val/PackFuncVal.js.map +1 -0
  170. package/dist/val/PathFuncVal.d.ts +2 -2
  171. package/dist/val/PathFuncVal.js +75 -16
  172. package/dist/val/PathFuncVal.js.map +1 -1
  173. package/dist/val/PathVal.d.ts +25 -0
  174. package/dist/val/PathVal.js +150 -0
  175. package/dist/val/PathVal.js.map +1 -0
  176. package/dist/val/PlaceVal.d.ts +13 -0
  177. package/dist/val/PlaceVal.js +131 -0
  178. package/dist/val/PlaceVal.js.map +1 -0
  179. package/dist/val/PlusOpVal.d.ts +2 -1
  180. package/dist/val/PlusOpVal.js +61 -37
  181. package/dist/val/PlusOpVal.js.map +1 -1
  182. package/dist/val/PrefFuncVal.js.map +1 -1
  183. package/dist/val/PrefVal.d.ts +4 -2
  184. package/dist/val/PrefVal.js +223 -41
  185. package/dist/val/PrefVal.js.map +1 -1
  186. package/dist/val/RecurseVal.d.ts +19 -0
  187. package/dist/val/RecurseVal.js +217 -0
  188. package/dist/val/RecurseVal.js.map +1 -0
  189. package/dist/val/RefVal.d.ts +3 -2
  190. package/dist/val/RefVal.js +181 -66
  191. package/dist/val/RefVal.js.map +1 -1
  192. package/dist/val/ReferFuncVal.d.ts +59 -0
  193. package/dist/val/ReferFuncVal.js +604 -0
  194. package/dist/val/ReferFuncVal.js.map +1 -0
  195. package/dist/val/ScalarKindVal.d.ts +4 -3
  196. package/dist/val/ScalarKindVal.js +12 -12
  197. package/dist/val/ScalarKindVal.js.map +1 -1
  198. package/dist/val/SuperFuncVal.d.ts +4 -2
  199. package/dist/val/SuperFuncVal.js +118 -14
  200. package/dist/val/SuperFuncVal.js.map +1 -1
  201. package/dist/val/TopVal.d.ts +1 -1
  202. package/dist/val/TopVal.js.map +1 -1
  203. package/dist/val/TypeFuncVal.js.map +1 -1
  204. package/dist/val/UpperFuncVal.js.map +1 -1
  205. package/dist/val/Val.d.ts +7 -1
  206. package/dist/val/Val.js +170 -2
  207. package/dist/val/Val.js.map +1 -1
  208. package/dist/val/VarVal.js.map +1 -1
  209. package/dist/val/arith.d.ts +6 -0
  210. package/dist/val/arith.js +173 -0
  211. package/dist/val/arith.js.map +1 -0
  212. package/dist/vet.d.ts +45 -0
  213. package/dist/vet.js +802 -0
  214. package/dist/vet.js.map +1 -0
  215. package/dist/view.d.ts +85 -0
  216. package/dist/view.js +1948 -0
  217. package/dist/view.js.map +1 -0
  218. package/dist/walk.d.ts +2 -0
  219. package/dist/walk.js +91 -0
  220. package/dist/walk.js.map +1 -0
  221. package/grammar/aontu.gbnf +138 -0
  222. package/grammar/aontu.lark +118 -0
  223. package/grammar/aontu.tmLanguage.json +184 -0
  224. package/package.json +30 -8
  225. package/skill/SKILL.md +37 -0
  226. package/skill/error-codes.md +62 -0
  227. package/skill/examples.md +99 -0
  228. package/skill/grammar-card.md +56 -0
  229. package/src/agentsmd.ts +135 -0
  230. package/src/aontu.ts +166 -5
  231. package/src/cli.ts +3324 -72
  232. package/src/ctx.ts +93 -1
  233. package/src/diff.ts +198 -0
  234. package/src/err.ts +50 -8
  235. package/src/graph.ts +185 -0
  236. package/src/hcanon.ts +167 -0
  237. package/src/hints.ts +291 -8
  238. package/src/jsonschema.ts +552 -0
  239. package/src/lang.ts +1049 -110
  240. package/src/lsp.ts +351 -49
  241. package/src/mcp-server.ts +187 -0
  242. package/src/mcp.ts +1130 -0
  243. package/src/mod-tool.ts +718 -0
  244. package/src/mod.ts +453 -0
  245. package/src/patch.ts +628 -0
  246. package/src/provenance.ts +437 -0
  247. package/src/query.ts +381 -0
  248. package/src/reach.ts +213 -0
  249. package/src/relation.ts +298 -0
  250. package/src/report-sarif.ts +137 -0
  251. package/src/sig.ts +345 -0
  252. package/src/sigdecl.ts +11 -0
  253. package/src/siggate.ts +144 -0
  254. package/src/site.ts +36 -1
  255. package/src/std.ts +131 -0
  256. package/src/subsume.ts +739 -0
  257. package/src/trim.ts +195 -0
  258. package/src/tsconfig.json +10 -4
  259. package/src/type.ts +51 -2
  260. package/src/unify.ts +253 -38
  261. package/src/utility.ts +79 -1
  262. package/src/val/AggFuncVal.ts +546 -0
  263. package/src/val/ArithFuncVal.ts +108 -0
  264. package/src/val/BagVal.ts +158 -12
  265. package/src/val/CloseFuncVal.ts +9 -1
  266. package/src/val/ConjunctVal.ts +20 -0
  267. package/src/val/ConstraintVal.ts +576 -48
  268. package/src/val/ContainerKindVal.ts +158 -0
  269. package/src/val/CopyFuncVal.ts +0 -1
  270. package/src/val/Decimal.ts +15 -0
  271. package/src/val/DeprecateFuncVal.ts +84 -0
  272. package/src/val/DisjunctVal.ts +282 -59
  273. package/src/val/EachFuncVal.ts +133 -0
  274. package/src/val/ExpectVal.ts +65 -8
  275. package/src/val/FeatureVal.ts +1 -1
  276. package/src/val/FilterFuncVal.ts +154 -0
  277. package/src/val/FuncBaseVal.ts +206 -2
  278. package/src/val/GraphAtomVal.ts +264 -0
  279. package/src/val/HideFuncVal.ts +0 -2
  280. package/src/val/JunctionVal.ts +24 -1
  281. package/src/val/KeyFuncVal.ts +39 -35
  282. package/src/val/ListVal.ts +101 -15
  283. package/src/val/LowerFuncVal.ts +0 -1
  284. package/src/val/MapVal.ts +153 -14
  285. package/src/val/MatchFuncVal.ts +176 -0
  286. package/src/val/MoveFuncVal.ts +0 -2
  287. package/src/val/NilVal.ts +25 -0
  288. package/src/val/OpBaseVal.ts +20 -1
  289. package/src/val/OpenFuncVal.ts +4 -2
  290. package/src/val/PackFuncVal.ts +175 -0
  291. package/src/val/PathFuncVal.ts +107 -20
  292. package/src/val/PathVal.ts +221 -0
  293. package/src/val/PlaceVal.ts +193 -0
  294. package/src/val/PlusOpVal.ts +67 -39
  295. package/src/val/PrefFuncVal.ts +0 -1
  296. package/src/val/PrefVal.ts +251 -60
  297. package/src/val/RecurseVal.ts +285 -0
  298. package/src/val/RefVal.ts +183 -78
  299. package/src/val/ReferFuncVal.ts +732 -0
  300. package/src/val/ScalarKindVal.ts +12 -13
  301. package/src/val/SuperFuncVal.ts +137 -13
  302. package/src/val/TopVal.ts +1 -2
  303. package/src/val/TypeFuncVal.ts +0 -2
  304. package/src/val/UpperFuncVal.ts +0 -1
  305. package/src/val/Val.ts +216 -4
  306. package/src/val/VarVal.ts +0 -1
  307. package/src/val/arith.ts +319 -0
  308. package/src/vet.ts +1025 -0
  309. package/src/view.ts +2563 -0
  310. package/src/walk.ts +99 -0
package/dist/lsp.js CHANGED
@@ -2,11 +2,16 @@
2
2
  /* Copyright (c) 2025 Richard Rodger, MIT License */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.COMPLETION_KEYWORD = exports.COMPLETION_FUNCTION = exports.SEVERITY_HINT = exports.SEVERITY_INFORMATION = exports.SEVERITY_WARNING = exports.SEVERITY_ERROR = exports.BUILTIN_FUNCS = exports.LSP_VERSION = exports.LspHandler = void 0;
5
+ exports.contributionsMarkdown = contributionsMarkdown;
6
+ exports.uriToPath = uriToPath;
5
7
  exports.computeDiagnostics = computeDiagnostics;
6
8
  exports.computeHover = computeHover;
7
9
  exports.computeCompletions = computeCompletions;
8
10
  const aontu_1 = require("./aontu");
9
11
  const err_1 = require("./err");
12
+ const walk_1 = require("./walk");
13
+ const utility_1 = require("./utility");
14
+ const query_1 = require("./query");
10
15
  // LSP DiagnosticSeverity subset.
11
16
  const SEVERITY_ERROR = 1;
12
17
  exports.SEVERITY_ERROR = SEVERITY_ERROR;
@@ -16,15 +21,23 @@ const SEVERITY_INFORMATION = 3;
16
21
  exports.SEVERITY_INFORMATION = SEVERITY_INFORMATION;
17
22
  const SEVERITY_HINT = 4;
18
23
  exports.SEVERITY_HINT = SEVERITY_HINT;
19
- // Reported to the client in the initialize response.
20
- const LSP_VERSION = '0.1.0';
24
+ // Reported to the client in the initialize response. It is the
25
+ // ENGINE's version, not a number of the server's own: a separately
26
+ // maintained one drifts, and had -- the server answered 0.1.0 against
27
+ // a package at 0.52.1, so a client could not tell which engine it was
28
+ // talking to (status-2026-08-21.md section 10).
29
+ const LSP_VERSION = aontu_1.VERSION;
21
30
  exports.LSP_VERSION = LSP_VERSION;
22
31
  // Compute LSP diagnostics for a unit of Aontu source. A valid document —
23
32
  // including a non-concrete schema such as `a:string` — returns an empty
24
33
  // array; only genuine errors (conflicts, unresolved references, unknown
25
34
  // functions, syntax errors) produce diagnostics.
26
35
  function computeDiagnostics(src, opts) {
27
- const aontu = new aontu_1.Aontu();
36
+ // The trust profile (G5, docs/trust.md): the LSP is the
37
+ // highest-exposure surface — merely OPENING a hostile .aon file in an
38
+ // editor performs its reads — so the handler confines evaluation to
39
+ // the workspace root and threads the profile through here.
40
+ const aontu = new aontu_1.Aontu(null == opts?.trust ? {} : { trust: opts.trust });
28
41
  let root;
29
42
  let ac;
30
43
  try {
@@ -39,9 +52,10 @@ function computeDiagnostics(src, opts) {
39
52
  // errors may carry 1-based line/col; fall back to the document start.
40
53
  return [parseErrorDiagnostic(err)];
41
54
  }
42
- const nils = [];
55
+ // The walk's `seen` set is reused below to dedup context errors
56
+ // against the nils already found in the tree.
43
57
  const seen = new Set();
44
- walkNils(root, nils, seen);
58
+ const nils = (0, walk_1.collectNils)(root, seen);
45
59
  // Errors recorded on the context but not present in the tree — e.g. a
46
60
  // budget_passes exhaustion nil, which is about the whole evaluation
47
61
  // rather than any node — would otherwise be invisible here, and the
@@ -54,34 +68,33 @@ function computeDiagnostics(src, opts) {
54
68
  nils.push(e);
55
69
  }
56
70
  }
57
- return nils.map(nilToDiagnostic);
58
- }
59
- // Walk a unified Val tree collecting every NilVal exactly once. A NilVal
60
- // in the result always represents an error; valid non-concrete values
61
- // (scalar kinds, refs, conjuncts) are never NilVals.
62
- function walkNils(v, out, seen) {
63
- if (null == v || 'object' !== typeof v || true !== v.isVal)
64
- return;
65
- if (seen.has(v))
66
- return;
67
- seen.add(v);
68
- if (v.isNil) {
69
- out.push(v);
70
- return;
71
- }
72
- const peg = v.peg;
73
- if (Array.isArray(peg)) {
74
- for (const c of peg)
75
- walkNils(c, out, seen);
76
- }
77
- else if (null != peg && 'object' === typeof peg) {
78
- for (const k in peg)
79
- walkNils(peg[k], out, seen);
71
+ const out = nils.map(nilToDiagnostic);
72
+ // Deprecation tags (G3 phase 4): every sited value carrying the
73
+ // deprecate() record — the declaration and, because the record rides
74
+ // meets and reference clones, every use resolving through it — gets
75
+ // the native Deprecated tag (2) at Hint severity, so editors strike
76
+ // it through without shouting.
77
+ for (const { val } of (0, utility_1.collectDeprecations)(root)) {
78
+ const v = val;
79
+ if (1 > (v.site?.row ?? -1) || 1 > (v.site?.col ?? -1)) {
80
+ continue;
81
+ }
82
+ out.push({
83
+ range: {
84
+ start: { line: v.site.row - 1, character: v.site.col - 1 },
85
+ end: {
86
+ line: v.site.row - 1,
87
+ character: v.site.col - 1 + siteExtent(v),
88
+ },
89
+ },
90
+ severity: 4,
91
+ code: 'deprecated',
92
+ source: 'aontu',
93
+ message: (0, utility_1.deprecationMessage)(v.deprecation),
94
+ tags: [2],
95
+ });
80
96
  }
81
- // Spread constraints live off-peg on Map/List Vals.
82
- const spreadCj = v.spread?.cj;
83
- if (spreadCj)
84
- walkNils(spreadCj, out, seen);
97
+ return out;
85
98
  }
86
99
  // Convert a NilVal (1-based site row/col) to an LSP diagnostic (0-based
87
100
  // line/character).
@@ -108,9 +121,42 @@ function nilToDiagnostic(nil) {
108
121
  };
109
122
  }
110
123
  // Length (UTF-16 units, like LSP characters) of the offending value's
111
- // canonical form, used to size the diagnostic range (minimum 1).
124
+ // SOURCE TEXT, used to size the diagnostic range (minimum 1).
112
125
  function labelLength(nil) {
113
- const c = nil.primary?.canon;
126
+ return null == nil.primary ? 1 : siteExtent(nil.primary);
127
+ }
128
+ // The extent to underline for a value: its SOURCE TEXT's length, with
129
+ // the canon as the fallback and 1 as the floor.
130
+ //
131
+ // CANON IS NOT SOURCE TEXT, which is the whole point of Site.len:
132
+ // `0x1F` has canon `31`, so sizing by canon underlines two characters
133
+ // of a four-character literal — hovering `0x1F` highlighted `0x` and
134
+ // hovering `1F` answered nothing. The Go twin is the same fallback in
135
+ // go/check.go (Problem.Len, ValueSpan.Len), in bytes there because it
136
+ // is added to a byte offset before conversion.
137
+ //
138
+ // The fallback is for a value carrying no stamped span — one propagated
139
+ // onto a result rather than written by a document — where canon is all
140
+ // there is and an approximate underline beats none. A REPORT never
141
+ // guesses this way: vet and why emit len only when it is known, because
142
+ // there a wrong length is a corrupted document rather than a wonky
143
+ // highlight.
144
+ function siteExtent(v) {
145
+ const len = v?.site?.len;
146
+ if ('number' === typeof len && len > 0) {
147
+ return len;
148
+ }
149
+ // CANON IS READ DEFENSIVELY, as every other reader here does: it is a
150
+ // getter that unifies, and a host-supplied value can throw from it
151
+ // (hover-refuses-bad-input). A hover that cannot measure a value
152
+ // still has to answer for the rest of the document.
153
+ let c = '';
154
+ try {
155
+ c = v?.canon;
156
+ }
157
+ catch {
158
+ c = '';
159
+ }
114
160
  return 'string' === typeof c && c.length > 0 ? c.length : 1;
115
161
  }
116
162
  // Build the human-readable message. Kept identical to the Go port's
@@ -156,6 +202,7 @@ function initializeResult() {
156
202
  textDocumentSync: 1,
157
203
  hoverProvider: true,
158
204
  completionProvider: {},
205
+ signatureHelpProvider: { triggerCharacters: ['(', ','] },
159
206
  },
160
207
  serverInfo: {
161
208
  name: 'aontu-lsp',
@@ -163,6 +210,72 @@ function initializeResult() {
163
210
  },
164
211
  };
165
212
  }
213
+ // signatureHelp: the declared signature of the ENCLOSING call, served
214
+ // from the registry (docs/design/SIGNATURES.0.md). The enclosing call
215
+ // is found lexically -- scan back from the cursor for the nearest
216
+ // unclosed '(' and read the word before it; commas at that depth
217
+ // count the active parameter, capped at the last slot so a rest tail
218
+ // stays active for every excess argument. Strings are skipped so a
219
+ // paren or comma inside one does not miscount, and the scan stops at
220
+ // the line start, a call being one line in practice.
221
+ function computeSignatureHelp(text, pos) {
222
+ // Position to offset, under the full-sync model: lines are exactly
223
+ // the text's newlines.
224
+ const lines = text.split('\n');
225
+ const line = Math.max(0, Math.min(Number(pos.line) || 0, lines.length - 1));
226
+ let offset = 0;
227
+ for (let li = 0; li < line; li++) {
228
+ offset += lines[li].length + 1;
229
+ }
230
+ offset += Math.max(0, Math.min(Number(pos.character) || 0, lines[line].length));
231
+ let depth = 0;
232
+ let commas = 0;
233
+ let open = -1;
234
+ for (let i = offset - 1; 0 <= i; i--) {
235
+ const c = text[i];
236
+ if ('"' === c || "'" === c) {
237
+ for (i--; 0 <= i && text[i] !== c; i--) { }
238
+ continue;
239
+ }
240
+ if (')' === c) {
241
+ depth++;
242
+ }
243
+ else if ('(' === c) {
244
+ if (0 === depth) {
245
+ open = i;
246
+ break;
247
+ }
248
+ depth--;
249
+ }
250
+ else if (',' === c && 0 === depth) {
251
+ commas++;
252
+ }
253
+ else if ('\n' === c && 0 === depth) {
254
+ break;
255
+ }
256
+ }
257
+ if (0 > open) {
258
+ return null;
259
+ }
260
+ let start = open;
261
+ while (0 < start && /[a-zA-Z0-9_]/.test(text[start - 1])) {
262
+ start--;
263
+ }
264
+ const name = text.slice(start, open);
265
+ const sig = sig_1.funcSig[name];
266
+ if (undefined === sig) {
267
+ return null;
268
+ }
269
+ const last = sig.args.length - 1;
270
+ return {
271
+ signatures: [{
272
+ label: (0, sig_1.renderSig)(sig),
273
+ parameters: sig.args.map((a) => ({ label: (0, sig_1.renderSigArg)(a) })),
274
+ }],
275
+ activeSignature: 0,
276
+ activeParameter: Math.min(commas, 0 <= last ? last : 0),
277
+ };
278
+ }
166
279
  function publishDiagnosticsMsg(uri, diagnostics) {
167
280
  return {
168
281
  jsonrpc: '2.0',
@@ -174,10 +287,44 @@ function publishDiagnosticsMsg(uri, diagnostics) {
174
287
  // the position is not over a value with a known source location. Because
175
288
  // hover reads the *unified* tree, a literal shows its resolved value and
176
289
  // kind (e.g. a reference target resolves to the value it points at).
177
- function computeHover(src, position) {
290
+ // HOVER PROVENANCE (G7 phase 7) is CONFIG-GATED and off by default:
291
+ // the contributions that met at the hovered path, appended to the
292
+ // value's own hover. Hover already re-unifies the whole document per
293
+ // request, so an editor that asks for this pays a second instrumented
294
+ // evaluation knowingly, and one that does not pays nothing.
295
+ function provenanceMarkdown(src, path, trust) {
296
+ if (0 === path.length) {
297
+ return '';
298
+ }
299
+ // A document with an error ELSEWHERE still hovers — the tree the
300
+ // hover walked is there — while `why` refuses it, so the record may
301
+ // be absent for a value the cursor is sitting on.
302
+ const report = (0, query_1.why)(src, '$.' + path.join('.'), { trust });
303
+ return contributionsMarkdown(report.record?.conjuncts ?? []);
304
+ }
305
+ // The contributions as hover markdown. Exported for the direct test
306
+ // (ADR-002): a siteless contribution and a named file are both shapes
307
+ // the record allows and no hover produces, hover evaluating one
308
+ // unnamed document.
309
+ function contributionsMarkdown(conjuncts) {
310
+ if (0 === conjuncts.length) {
311
+ return '';
312
+ }
313
+ return '\n\n---\n\nContributions:\n' + conjuncts.map((c) => '- `' + c.canon + '` — ' + c.role +
314
+ (0 > c.site.row ? '' : ' (' +
315
+ ('' === c.site.file ? '' : c.site.file + ':') +
316
+ c.site.row + ':' + c.site.col + ')')).join('\n');
317
+ }
318
+ // HOVER RUNS UNDER THE SAME CAPABILITY AS DIAGNOSTICS. It used to
319
+ // evaluate through `new Aontu()` -- the full system resolver -- BESIDE
320
+ // confined diagnostics in the same server, so a workspace-confined
321
+ // session still resolved an escaping include the moment a cursor rested
322
+ // on it (use-cases/REVIEW.md finding G). One document, two postures, is
323
+ // not a confinement.
324
+ function computeHover(src, position, provenance, trust) {
178
325
  let root;
179
326
  try {
180
- root = new aontu_1.Aontu().unify(src, { collect: true });
327
+ root = new aontu_1.Aontu(null == trust ? {} : { trust }).unify(src, { collect: true });
181
328
  }
182
329
  catch {
183
330
  return null;
@@ -196,7 +343,12 @@ function computeHover(src, position) {
196
343
  if (null == best)
197
344
  return null;
198
345
  return {
199
- contents: { kind: 'markdown', value: hoverMarkdown(best.val) },
346
+ contents: {
347
+ kind: 'markdown',
348
+ value: hoverMarkdown(best.val) +
349
+ (true === provenance
350
+ ? provenanceMarkdown(src, best.val.path, trust) : ''),
351
+ },
200
352
  range: {
201
353
  start: { line: best.line, character: best.start },
202
354
  end: { line: best.line, character: best.end },
@@ -218,15 +370,24 @@ function collectHoverCandidates(v, out, seen) {
218
370
  catch {
219
371
  canon = '';
220
372
  }
373
+ // The span to highlight: the value's own source text where it has
374
+ // one, canon otherwise. See siteExtent.
375
+ const span = siteExtent(v);
376
+ const spanSrc = 'string' === typeof v.site?.src ? v.site.src : '';
221
377
  // Hover targets concrete values (scalars, kinds, refs, …), not
222
378
  // containers: a map/list source span is not reliably reconstructable
223
379
  // from a single site, and the same restriction in the Go port keeps
224
380
  // hover behaviour identical across implementations. The walk still
225
381
  // recurses into containers below to reach their leaf values. Canon is
226
382
  // single-line, so its length approximates the on-line source span.
227
- if (row >= 1 && col >= 1 && canon.length > 0 && !canon.includes('\n') &&
383
+ // Single-line is decided by the SOURCE TEXT when there is one: a
384
+ // multi-line token cannot be described by one line's start and end,
385
+ // and canon's newlines are not the token's. Falling back to canon
386
+ // keeps the old test for a value with no stamped span.
387
+ const multiline = '' === spanSrc ? canon.includes('\n') : spanSrc.includes('\n');
388
+ if (row >= 1 && col >= 1 && canon.length > 0 && !multiline &&
228
389
  !v.isMap && !v.isList) {
229
- out.push({ val: v, line: row - 1, start: col - 1, end: col - 1 + canon.length });
390
+ out.push({ val: v, line: row - 1, start: col - 1, end: col - 1 + span });
230
391
  }
231
392
  const peg = v.peg;
232
393
  if (Array.isArray(peg)) {
@@ -275,17 +436,27 @@ function valKind(val) {
275
436
  return 'scalar';
276
437
  return val.constructor.name.replace(/Val$/, '').toLowerCase();
277
438
  }
439
+ const sig_1 = require("./sig");
278
440
  // LSP CompletionItemKind subset.
279
441
  const COMPLETION_FUNCTION = 3;
280
442
  exports.COMPLETION_FUNCTION = COMPLETION_FUNCTION;
281
443
  const COMPLETION_KEYWORD = 14;
282
444
  exports.COMPLETION_KEYWORD = COMPLETION_KEYWORD;
283
- // The twenty-one built-in functions. Kept in sync with the engine by
445
+ // The built-in functions. Kept in sync with the engine by
284
446
  // `lsp.test.ts`, which asserts each is recognised and no others are.
447
+ // The Go port derives its list from the engine's own name set
448
+ // (`BuiltinFuncNames`, go/func.go), which is why a name added there
449
+ // and forgotten here diverges silently — as `id` and `refer` did
450
+ // between G4 phases 1/2 and G8 phase 1.
285
451
  const BUILTIN_FUNCS = [
286
- 'above', 'below', 'close', 'copy', 'hide', 'key', 'length', 'lower',
287
- 'max', 'min', 'move', 'must', 'neq', 'open', 'path', 'pref', 're',
288
- 'super', 'type', 'unique', 'upper',
452
+ 'above', 'acyclic', 'add', 'below', 'close', 'copy', 'deprecate', 'div',
453
+ 'each',
454
+ 'filter', 'greatest',
455
+ 'hide', 'inverse', 'join', 'key', 'least', 'length', 'list', 'lower',
456
+ 'map', 'match', 'max', 'min', 'mod', 'move', 'mul', 'must', 'neq', 'open',
457
+ 'pack', 'path', 'pick',
458
+ 'pref', 're', 'refer', 'rel', 'rem', 'sub', 'sum', 'super', 'type', 'unique',
459
+ 'upper',
289
460
  ];
290
461
  exports.BUILTIN_FUNCS = BUILTIN_FUNCS;
291
462
  // Scalar-kind and literal keywords.
@@ -294,13 +465,18 @@ exports.BUILTIN_FUNCS = BUILTIN_FUNCS;
294
465
  const KIND_KEYWORDS = [
295
466
  'string', 'number', 'integer', 'float', 'biginteger', 'bigdecimal', 'boolean',
296
467
  ];
297
- const LITERAL_KEYWORDS = ['true', 'false', 'null', 'top'];
468
+ // `_` joins these as of G8 phase 3: it is a literal of the language
469
+ // now, not text.
470
+ const LITERAL_KEYWORDS = ['_', 'true', 'false', 'null', 'top'];
298
471
  // Context-free completion: the built-in functions, scalar-kind keywords
299
472
  // and literals. Clients filter by the typed prefix.
300
473
  function computeCompletions() {
301
474
  const out = [];
302
475
  for (const f of BUILTIN_FUNCS) {
303
- out.push({ label: f, kind: COMPLETION_FUNCTION, detail: 'Aontu built-in function' });
476
+ // The detail is the rendered SIGNATURE (docs/design/SIGNATURES.0.md)
477
+ // -- the same renderer the hints and the docs table use, so the
478
+ // completion list cannot drift from the declaration.
479
+ out.push({ label: f, kind: COMPLETION_FUNCTION, detail: (0, sig_1.renderSig)(sig_1.funcSig[f]) });
304
480
  }
305
481
  for (const k of KIND_KEYWORDS) {
306
482
  out.push({ label: k, kind: COMPLETION_KEYWORD, detail: 'scalar kind' });
@@ -314,11 +490,95 @@ function computeCompletions() {
314
490
  // messages and returns the messages to send back, tracking open document
315
491
  // text and recomputing diagnostics on open/change/close. Not safe for
316
492
  // concurrent use; drive it from a single loop (as the stdio server does).
493
+ // A file:// uri's filesystem path, for the workspace-root confinement.
494
+ // Percent-decoded; a non-file uri (or none) yields undefined.
495
+ //
496
+ // EXPORTED, inline as contributionsMarkdown is: part of the reusable
497
+ // LSP library surface, and the twin of the package-visible uriToPath in
498
+ // go/lsp/handler.go. Anything driving this module with its own
499
+ // transport has to turn a client's uri into a path the same way the
500
+ // confinement does, and the rules below are not guessable from outside.
501
+ //
502
+ // THE DRIVE-LETTER SLASH. A file uri names an absolute path after the
503
+ // authority, so on Windows the standard spelling every editor sends is
504
+ // file:///C:/Users/me/project — three slashes, and the third belongs to
505
+ // the PATH. Stripping only `file://` leaves `/C:/Users/me/project`,
506
+ // which is not a Windows path at all, so the workspace-root
507
+ // confinement below compared real paths against nonsense and an editor
508
+ // on Windows got no confinement it could rely on. Both ports carried
509
+ // the defect identically (go/lsp/handler.go uriToPath), and no test
510
+ // caught it because both ports' tests built the uri as `'file://' +
511
+ // path` — two slashes, which is not what a client sends and which
512
+ // accidentally produced a usable path.
513
+ //
514
+ // The leading slash is dropped only before a DRIVE LETTER, so a POSIX
515
+ // path keeps the root it needs: file:///tmp/x stays /tmp/x.
516
+ function uriToPath(uri) {
517
+ if ('string' !== typeof uri || !uri.startsWith('file://')) {
518
+ return undefined;
519
+ }
520
+ const path = percentDecode(uri.slice('file://'.length));
521
+ // AN EMPTY PATH IS NOT A ROOT. `file://` on its own yields '', and
522
+ // '' is not nullish — so it won the `??` chain below and arrived as
523
+ // `{ include: { root: '' } }`, a confinement root that then resolves
524
+ // against the process working directory: the same client params made
525
+ // the server allow or deny an include depending on where it was
526
+ // started from. The Go twin never had it, because its chain tests
527
+ // `"" != folder` explicitly (go/lsp/handler.go). Answering undefined
528
+ // is what makes the two chains agree.
529
+ if ('' === path) {
530
+ return undefined;
531
+ }
532
+ return driveLetterPath(path) ? path.slice(1) : path;
533
+ }
534
+ // Percent-decoding that CANNOT THROW. `decodeURIComponent` raises a
535
+ // URIError on a malformed escape (`%ZZ`), and this runs on a uri a
536
+ // CLIENT sent — so a stray percent in a workspace path took the
537
+ // exception straight out of the initialize handler, where the Go twin
538
+ // swallowed the same failure and used the raw text
539
+ // (go/lsp/handler.go). Two ports, two behaviours, for an input neither
540
+ // of them controls.
541
+ //
542
+ // The agreement runs the other way for the SECOND way an escape can
543
+ // fail to decode. `%FF` is well-formed and names a raw byte — a
544
+ // perfectly good Linux filename — which Go produced and a JavaScript
545
+ // string cannot hold at all, so the ports derived different workspace
546
+ // roots for a uri a byte-oriented client really sends. Only one
547
+ // direction is reachable from both languages, so Go now declines to
548
+ // unescape a result that is not valid UTF-8 and both ports keep the
549
+ // raw text. An undecodable path is still a path, and refusing to serve
550
+ // a session over it helps nobody.
551
+ function percentDecode(text) {
552
+ try {
553
+ return decodeURIComponent(text);
554
+ }
555
+ catch {
556
+ return text;
557
+ }
558
+ }
559
+ // Whether p is `/X:…` for a drive letter X — the one shape whose
560
+ // leading slash is uri syntax rather than path. Mirrors the same
561
+ // predicate in go/lsp/handler.go.
562
+ function driveLetterPath(p) {
563
+ return 3 <= p.length && '/' === p[0] && ':' === p[2] &&
564
+ /[A-Za-z]/.test(p[1]);
565
+ }
317
566
  class LspHandler {
318
567
  constructor() {
319
568
  this.docs = new Map();
320
569
  this.shutdownOK = false;
321
570
  this.exited = false;
571
+ // The trust profile evaluation runs under (G5, docs/trust.md):
572
+ // workspace-root confinement by default, set from the initialize
573
+ // params. An `initializationOptions.aontu.trust.include` of 'system',
574
+ // 'none' or { root } widens or narrows it explicitly. Undefined —
575
+ // no workspace root and no explicit option — falls back to today's
576
+ // unconfined behaviour, which single-file sessions rely on.
577
+ this.trust = undefined;
578
+ // Hover provenance (G7 phase 7): off unless an editor asks for it
579
+ // with `initializationOptions.aontu.provenance`. It costs a second,
580
+ // instrumented evaluation per hover, which is a cost to opt into.
581
+ this.provenance = false;
322
582
  }
323
583
  // True once an `exit` notification has been received.
324
584
  get shouldExit() { return this.exited; }
@@ -330,8 +590,34 @@ class LspHandler {
330
590
  // Process one incoming message, returning zero or more to send.
331
591
  handle(msg) {
332
592
  switch (msg.method) {
333
- case 'initialize':
593
+ case 'initialize': {
594
+ const params = msg.params ?? {};
595
+ this.provenance =
596
+ true === params.initializationOptions?.aontu?.provenance;
597
+ const explicit = params.initializationOptions?.aontu?.trust?.include;
598
+ if (null != explicit) {
599
+ // An explicit setting wins — validated, and an unrecognised
600
+ // value confines to NOTHING rather than silently widening:
601
+ // deny is the safe reading of a setting the server does not
602
+ // understand. The same rule as the Go handler.
603
+ this.trust =
604
+ 'system' === explicit ? undefined :
605
+ 'none' === explicit ? { include: 'none' } :
606
+ ('string' === typeof explicit?.root && '' !== explicit.root)
607
+ ? { include: { root: explicit.root } } :
608
+ (null != explicit?.mem && 'object' === typeof explicit.mem)
609
+ ? { include: { mem: explicit.mem } } :
610
+ { include: 'none' };
611
+ }
612
+ else {
613
+ const root = uriToPath(params.workspaceFolders?.[0]?.uri)
614
+ ?? uriToPath(params.rootUri)
615
+ ?? (('string' === typeof params.rootPath && '' !== params.rootPath)
616
+ ? params.rootPath : undefined);
617
+ this.trust = null != root ? { include: { root } } : undefined;
618
+ }
334
619
  return [{ jsonrpc: '2.0', id: msg.id, result: initializeResult() }];
620
+ }
335
621
  case 'initialized':
336
622
  return [];
337
623
  case 'shutdown':
@@ -368,11 +654,20 @@ class LspHandler {
368
654
  const uri = msg.params?.textDocument?.uri;
369
655
  const pos = msg.params?.position;
370
656
  const text = null != uri ? this.docs.get(uri) : undefined;
371
- const hover = (null != text && null != pos) ? computeHover(text, pos) : null;
657
+ const hover = (null != text && null != pos)
658
+ ? computeHover(text, pos, this.provenance, this.trust) : null;
372
659
  return [{ jsonrpc: '2.0', id: msg.id, result: hover }];
373
660
  }
374
661
  case 'textDocument/completion':
375
662
  return [{ jsonrpc: '2.0', id: msg.id, result: computeCompletions() }];
663
+ case 'textDocument/signatureHelp': {
664
+ const uri = msg.params?.textDocument?.uri;
665
+ const pos = msg.params?.position;
666
+ const text = null != uri ? this.docs.get(uri) : undefined;
667
+ const help = (null != text && null != pos)
668
+ ? computeSignatureHelp(text, pos) : null;
669
+ return [{ jsonrpc: '2.0', id: msg.id, result: help }];
670
+ }
376
671
  default:
377
672
  // Unknown request (has an id): reply method-not-found. Unknown
378
673
  // notification: ignore.
@@ -387,7 +682,7 @@ class LspHandler {
387
682
  }
388
683
  }
389
684
  publish(uri) {
390
- return publishDiagnosticsMsg(uri, computeDiagnostics(this.docs.get(uri) ?? ''));
685
+ return publishDiagnosticsMsg(uri, computeDiagnostics(this.docs.get(uri) ?? '', { trust: this.trust }));
391
686
  }
392
687
  } /* node:coverage ignore next 28 */
393
688
  exports.LspHandler = LspHandler;
package/dist/lsp.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lsp.js","sourceRoot":"","sources":["../src/lsp.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;QAselD,kBAAkB;QAClB,YAAY;QACZ,kBAAkB;AApdpB,mCAA+B;AAC/B,+BAA+B;AAG/B,iCAAiC;AACjC,MAAM,cAAc,GAAG,CAAC,CAAA;QAmdtB,cAAc;AAldhB,MAAM,gBAAgB,GAAG,CAAC,CAAA;QAmdxB,gBAAgB;AAldlB,MAAM,oBAAoB,GAAG,CAAC,CAAA;QAmd5B,oBAAoB;AAldtB,MAAM,aAAa,GAAG,CAAC,CAAA;QAmdrB,aAAa;AAjdf,qDAAqD;AACrD,MAAM,WAAW,GAAG,OAAO,CAAA;QA2czB,WAAW;AArab,yEAAyE;AACzE,wEAAwE;AACxE,wEAAwE;AACxE,iDAAiD;AACjD,SAAS,kBAAkB,CACzB,GAAW,EACX,IAAqC;IAErC,MAAM,KAAK,GAAG,IAAI,aAAK,EAAE,CAAA;IAEzB,IAAI,IAAS,CAAA;IACb,IAAI,EAAO,CAAA;IACX,IAAI,CAAC;QACH,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;QACjC,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC;YACf,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;QACnC,CAAC;QACD,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;IAChD,CAAC;IACD,OAAO,GAAQ,EAAE,CAAC;QAChB,gEAAgE;QAChE,sEAAsE;QACtE,OAAO,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAA;IACpC,CAAC;IAED,MAAM,IAAI,GAAU,EAAE,CAAA;IACtB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IAE1B,sEAAsE;IACtE,oEAAoE;IACpE,oEAAoE;IACpE,qEAAqE;IACrE,kEAAkE;IAClE,oDAAoD;IACpD,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,EAAE,KAAK,IAAI,aAAa,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YACX,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACd,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;AAClC,CAAC;AAGD,yEAAyE;AACzE,sEAAsE;AACtE,qDAAqD;AACrD,SAAS,QAAQ,CAAC,CAAM,EAAE,GAAU,EAAE,IAAc;IAClD,IAAI,IAAI,IAAI,CAAC,IAAI,QAAQ,KAAK,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,KAAK;QAAE,OAAM;IAClE,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAAE,OAAM;IACvB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAEX,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACZ,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACX,OAAM;IACR,CAAC;IAED,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAA;IACjB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,IAAI,GAAG;YAAE,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;IAC7C,CAAC;SACI,IAAI,IAAI,IAAI,GAAG,IAAI,QAAQ,KAAK,OAAO,GAAG,EAAE,CAAC;QAChD,KAAK,MAAM,CAAC,IAAI,GAAG;YAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;IAClD,CAAC;IAED,oDAAoD;IACpD,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAA;IAC7B,IAAI,QAAQ;QAAE,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;AAC7C,CAAC;AAGD,wEAAwE;AACxE,mBAAmB;AACnB,SAAS,eAAe,CAAC,GAAQ;IAC/B,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;IAC/B,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;IAE/B,IAAI,KAAe,CAAA;IACnB,IAAI,GAAa,CAAA;IACjB,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;QACzB,KAAK,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,EAAE,CAAA;QAC7C,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,CAAA;QAC5B,GAAG,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,CAAA;IACnD,CAAC;SACI,CAAC;QACJ,KAAK,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAA;QACjC,GAAG,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAA;IACjC,CAAC;IAED,OAAO;QACL,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;QACrB,QAAQ,EAAE,cAAc;QACxB,IAAI,EAAE,GAAG,CAAC,GAAG;QACb,MAAM,EAAE,OAAO;QACf,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC;KACzB,CAAA;AACH,CAAC;AAGD,sEAAsE;AACtE,iEAAiE;AACjE,SAAS,WAAW,CAAC,GAAQ;IAC3B,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,KAAK,CAAA;IAC5B,OAAO,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AAC7D,CAAC;AAGD,oEAAoE;AACpE,2DAA2D;AAC3D,sEAAsE;AACtE,SAAS,UAAU,CAAC,GAAQ;IAC1B,IAAI,GAAG,CAAC,GAAG;QAAE,OAAO,GAAG,CAAC,GAAG,CAAA;IAE3B,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IAC5E,IAAI,GAAG,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAA;IACxC,IAAI,IAAI,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QACxB,GAAG,IAAI,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAA;QAC/B,IAAI,IAAI,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAC1B,GAAG,IAAI,eAAe,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAA;QAC9C,CAAC;IACH,CAAC;IACD,MAAM,IAAI,GAAG,IAAA,aAAO,EAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IAC1C,IAAI,IAAI,EAAE,CAAC;QACT,GAAG,IAAI,IAAI,GAAG,IAAI,CAAA;IACpB,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAGD,SAAS,oBAAoB,CAAC,GAAQ;IACpC,iDAAiD;IACjD,MAAM,GAAG,GAAG,GAAG,EAAE,UAAU,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,CAAC,CAAC,CAAA;IAC1D,MAAM,GAAG,GAAG,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;IACzC,MAAM,KAAK,GAAa,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAC1C,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,EAAE;QACvC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAA;IAC7B,OAAO;QACL,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE,EAAE;QAC3E,QAAQ,EAAE,cAAc;QACxB,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,OAAO;QACf,OAAO,EAAE,CAAC,QAAQ,KAAK,OAAO,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;KACxE,CAAA;AACH,CAAC;AAGD,4EAA4E;AAC5E,SAAS,gBAAgB;IACvB,OAAO;QACL,YAAY,EAAE;YACZ,gCAAgC;YAChC,gBAAgB,EAAE,CAAC;YACnB,aAAa,EAAE,IAAI;YACnB,kBAAkB,EAAE,EAAE;SACvB;QACD,UAAU,EAAE;YACV,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,WAAW;SACrB;KACF,CAAA;AACH,CAAC;AAGD,SAAS,qBAAqB,CAAC,GAAW,EAAE,WAAyB;IACnE,OAAO;QACL,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,iCAAiC;QACzC,MAAM,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE;KAC7B,CAAA;AACH,CAAC;AASD,wEAAwE;AACxE,yEAAyE;AACzE,yEAAyE;AACzE,qEAAqE;AACrE,SAAS,YAAY,CAAC,GAAW,EAAE,QAAkB;IACnD,IAAI,IAAS,CAAA;IACb,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,aAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;IAClD,CAAC;IACD,MAAM,CAAC;QACL,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,KAAK,GAA6D,EAAE,CAAA;IAC1E,sBAAsB,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;IAE9C,IAAI,IAAI,GAAkE,IAAI,CAAA;IAC9E,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI;YAC1B,CAAC,CAAC,KAAK,IAAI,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YAC9D,sCAAsC;YACtC,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC;gBAAE,IAAI,GAAG,CAAC,CAAA;QAC3E,CAAC;IACH,CAAC;IACD,IAAI,IAAI,IAAI,IAAI;QAAE,OAAO,IAAI,CAAA;IAE7B,OAAO;QACL,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QAC9D,KAAK,EAAE;YACL,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE;YACjD,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SAC9C;KACF,CAAA;AACH,CAAC;AAGD,SAAS,sBAAsB,CAC7B,CAAM,EACN,GAA6D,EAC7D,IAAc;IAEd,IAAI,IAAI,IAAI,CAAC,IAAI,QAAQ,KAAK,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,KAAK;QAAE,OAAM;IAClE,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAAE,OAAM;IACvB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAEX,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAA;IACtB,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAA;IACtB,IAAI,KAAK,GAAG,EAAE,CAAA;IACd,IAAI,CAAC;QAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAA;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,KAAK,GAAG,EAAE,CAAA;IAAC,CAAC;IAC5C,+DAA+D;IAC/D,qEAAqE;IACrE,oEAAoE;IACpE,mEAAmE;IACnE,sEAAsE;IACtE,mEAAmE;IACnE,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;QACnE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QACxB,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;IAClF,CAAC;IAED,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAA;IACjB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,IAAI,GAAG;YAAE,sBAAsB,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;IAC3D,CAAC;SACI,IAAI,IAAI,IAAI,GAAG,IAAI,QAAQ,KAAK,OAAO,GAAG,EAAE,CAAC;QAChD,KAAK,MAAM,CAAC,IAAI,GAAG;YAAE,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;IAChE,CAAC;IACD,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAA;IAC7B,IAAI,QAAQ;QAAE,sBAAsB,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;AAC3D,CAAC;AAGD,SAAS,aAAa,CAAC,GAAQ;IAC7B,4DAA4D;IAC5D,6DAA6D;IAC7D,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAA;IACvB,OAAO,YAAY,GAAG,KAAK,GAAG,WAAW,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;AACtE,CAAC;AAGD,0EAA0E;AAC1E,SAAS,OAAO,CAAC,GAAQ;IACvB,IAAI,GAAG,CAAC,KAAK;QAAE,OAAO,OAAO,CAAA;IAC7B,IAAI,GAAG,CAAC,YAAY;QAAE,OAAO,MAAM,CAAA;IACnC,IAAI,GAAG,CAAC,YAAY;QAAE,OAAO,YAAY,CAAA;IACzC,IAAI,GAAG,CAAC,KAAK;QAAE,OAAO,WAAW,CAAA;IACjC,IAAI,GAAG,CAAC,SAAS;QAAE,OAAO,SAAS,CAAA;IACnC,iEAAiE;IACjE,+DAA+D;IAC/D,IAAI,GAAG,CAAC,QAAQ;QAAE,OAAO,OAAO,CAAA;IAChC,IAAI,GAAG,CAAC,YAAY;QAAE,OAAO,YAAY,CAAA;IACzC,IAAI,GAAG,CAAC,YAAY;QAAE,OAAO,YAAY,CAAA;IACzC,IAAI,GAAG,CAAC,QAAQ;QAAE,OAAO,QAAQ,CAAA;IACjC,IAAI,GAAG,CAAC,SAAS;QAAE,OAAO,SAAS,CAAA;IACnC,IAAI,GAAG,CAAC,QAAQ;QAAE,OAAO,QAAQ,CAAA;IACjC,OAAO,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;AAC/D,CAAC;AAWD,iCAAiC;AACjC,MAAM,mBAAmB,GAAG,CAAC,CAAA;QA2I3B,mBAAmB;AA1IrB,MAAM,kBAAkB,GAAG,EAAE,CAAA;QA2I3B,kBAAkB;AAzIpB,qEAAqE;AACrE,qEAAqE;AACrE,MAAM,aAAa,GAAG;IACpB,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO;IACnE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI;IACjE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO;CACnC,CAAA;QA6HC,aAAa;AA3Hf,oCAAoC;AACpC,sEAAsE;AACtE,2EAA2E;AAC3E,MAAM,aAAa,GAAG;IACpB,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS;CAC9E,CAAA;AACD,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;AAGzD,wEAAwE;AACxE,oDAAoD;AACpD,SAAS,kBAAkB;IACzB,MAAM,GAAG,GAAqB,EAAE,CAAA;IAChC,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;QAC9B,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC,CAAA;IACtF,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;QAC9B,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAA;IACzE,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,gBAAgB,EAAE,CAAC;QACjC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAA;IACrE,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAGD,uEAAuE;AACvE,yEAAyE;AACzE,sEAAsE;AACtE,0EAA0E;AAC1E,MAAM,UAAU;IAAhB;QACU,SAAI,GAAG,IAAI,GAAG,EAAkB,CAAA;QAChC,eAAU,GAAG,KAAK,CAAA;QAClB,WAAM,GAAG,KAAK,CAAA;IAiFxB,CAAC;IA/EC,sDAAsD;IACtD,IAAI,UAAU,KAAc,OAAO,IAAI,CAAC,MAAM,CAAA,CAAC,CAAC;IAEhD,uEAAuE;IACvE,UAAU;IACV,IAAI,QAAQ,KAAa,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC;IAEzD,kDAAkD;IAClD,GAAG,CAAC,GAAW,IAAwB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA,CAAC,CAAC;IAElE,gEAAgE;IAChE,MAAM,CAAC,GAAY;QACjB,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC;YACnB,KAAK,YAAY;gBACf,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAA;YAErE,KAAK,aAAa;gBAChB,OAAO,EAAE,CAAA;YAEX,KAAK,UAAU;gBACb,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;gBACtB,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;YAEvD,KAAK,MAAM;gBACT,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;gBAClB,OAAO,EAAE,CAAA;YAEX,KAAK,sBAAsB,EAAE,CAAC;gBAC5B,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,YAAY,CAAA;gBACnC,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG;oBAAE,OAAO,EAAE,CAAA;gBAC9B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;gBACpC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;YAC/B,CAAC;YAED,KAAK,wBAAwB,EAAE,CAAC;gBAC9B,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,CAAA;gBACzC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,cAAc,CAAA;gBAC1C,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,MAAM;oBAAE,OAAO,EAAE,CAAA;gBAC7E,iEAAiE;gBACjE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;gBAC1D,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;YAC5B,CAAC;YAED,KAAK,uBAAuB,EAAE,CAAC;gBAC7B,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,CAAA;gBACzC,IAAI,IAAI,IAAI,GAAG;oBAAE,OAAO,EAAE,CAAA;gBAC1B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBACrB,6CAA6C;gBAC7C,OAAO,CAAC,qBAAqB,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAA;YACzC,CAAC;YAED,KAAK,oBAAoB,EAAE,CAAC;gBAC1B,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,CAAA;gBACzC,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAA;gBAChC,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;gBACzD,MAAM,KAAK,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;gBAC5E,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;YACxD,CAAC;YAED,KAAK,yBAAyB;gBAC5B,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAA;YAEvE;gBACE,+DAA+D;gBAC/D,wBAAwB;gBACxB,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;oBACnB,OAAO,CAAC;4BACN,OAAO,EAAE,KAAK;4BACd,EAAE,EAAE,GAAG,CAAC,EAAE;4BACV,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,oBAAoB,GAAG,GAAG,CAAC,MAAM,EAAE;yBACpE,CAAC,CAAA;gBACJ,CAAC;gBACD,OAAO,EAAE,CAAA;QACb,CAAC;IACH,CAAC;IAEO,OAAO,CAAC,GAAW;QACzB,OAAO,qBAAqB,CAAC,GAAG,EAAE,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IACjF,CAAC;CACF,CAAC,kCAAkC;QAOlC,UAAU"}
1
+ {"version":3,"file":"lsp.js","sourceRoot":"","sources":["../src/lsp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ export type ServerArgs = {
2
+ root?: string;
3
+ help?: boolean;
4
+ err?: string;
5
+ };
6
+ export declare function parseArgs(argv: string[]): ServerArgs;
7
+ declare class LineCodec {
8
+ private write;
9
+ private onExit;
10
+ private version;
11
+ private root?;
12
+ private buffer;
13
+ constructor(write: (line: string) => void, onExit: (code: number) => void, version: string, root?: string | undefined);
14
+ push(chunk: string | Buffer): void;
15
+ end(): void;
16
+ private line;
17
+ private send;
18
+ }
19
+ declare function main(stdin?: NodeJS.ReadableStream, write?: (line: string) => void, exit?: (code: number) => void, version?: string, argv?: string[], errwrite?: (line: string) => void): LineCodec | undefined;
20
+ export { LineCodec, main, };