@executioncontrolprotocol/format-eql 0.10.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 (110) hide show
  1. package/README.md +67 -0
  2. package/dist/decode/ast.d.ts +138 -0
  3. package/dist/decode/ast.d.ts.map +1 -0
  4. package/dist/decode/ast.js +2 -0
  5. package/dist/decode/ast.js.map +1 -0
  6. package/dist/decode/decode-eql.d.ts +9 -0
  7. package/dist/decode/decode-eql.d.ts.map +1 -0
  8. package/dist/decode/decode-eql.js +260 -0
  9. package/dist/decode/decode-eql.js.map +1 -0
  10. package/dist/decode/diagnostics.d.ts +10 -0
  11. package/dist/decode/diagnostics.d.ts.map +1 -0
  12. package/dist/decode/diagnostics.js +18 -0
  13. package/dist/decode/diagnostics.js.map +1 -0
  14. package/dist/decode/lexer.d.ts +5 -0
  15. package/dist/decode/lexer.d.ts.map +1 -0
  16. package/dist/decode/lexer.js +76 -0
  17. package/dist/decode/lexer.js.map +1 -0
  18. package/dist/decode/normalize-describe.d.ts +4 -0
  19. package/dist/decode/normalize-describe.d.ts.map +1 -0
  20. package/dist/decode/normalize-describe.js +42 -0
  21. package/dist/decode/normalize-describe.js.map +1 -0
  22. package/dist/decode/normalize-environment.d.ts +4 -0
  23. package/dist/decode/normalize-environment.d.ts.map +1 -0
  24. package/dist/decode/normalize-environment.js +43 -0
  25. package/dist/decode/normalize-environment.js.map +1 -0
  26. package/dist/decode/normalize-intent.d.ts +4 -0
  27. package/dist/decode/normalize-intent.d.ts.map +1 -0
  28. package/dist/decode/normalize-intent.js +10 -0
  29. package/dist/decode/normalize-intent.js.map +1 -0
  30. package/dist/decode/normalize-patch.d.ts +4 -0
  31. package/dist/decode/normalize-patch.d.ts.map +1 -0
  32. package/dist/decode/normalize-patch.js +119 -0
  33. package/dist/decode/normalize-patch.js.map +1 -0
  34. package/dist/decode/normalize-reply.d.ts +4 -0
  35. package/dist/decode/normalize-reply.d.ts.map +1 -0
  36. package/dist/decode/normalize-reply.js +18 -0
  37. package/dist/decode/normalize-reply.js.map +1 -0
  38. package/dist/decode/normalize-workflow.d.ts +4 -0
  39. package/dist/decode/normalize-workflow.d.ts.map +1 -0
  40. package/dist/decode/normalize-workflow.js +31 -0
  41. package/dist/decode/normalize-workflow.js.map +1 -0
  42. package/dist/decode/parser-environment.d.ts +9 -0
  43. package/dist/decode/parser-environment.d.ts.map +1 -0
  44. package/dist/decode/parser-environment.js +355 -0
  45. package/dist/decode/parser-environment.js.map +1 -0
  46. package/dist/decode/parser-harness.d.ts +5 -0
  47. package/dist/decode/parser-harness.d.ts.map +1 -0
  48. package/dist/decode/parser-harness.js +140 -0
  49. package/dist/decode/parser-harness.js.map +1 -0
  50. package/dist/decode/parser.d.ts +11 -0
  51. package/dist/decode/parser.d.ts.map +1 -0
  52. package/dist/decode/parser.js +372 -0
  53. package/dist/decode/parser.js.map +1 -0
  54. package/dist/decode/values.d.ts +24 -0
  55. package/dist/decode/values.d.ts.map +1 -0
  56. package/dist/decode/values.js +64 -0
  57. package/dist/decode/values.js.map +1 -0
  58. package/dist/encode/encode-describe.d.ts +5 -0
  59. package/dist/encode/encode-describe.d.ts.map +1 -0
  60. package/dist/encode/encode-describe.js +61 -0
  61. package/dist/encode/encode-describe.js.map +1 -0
  62. package/dist/encode/encode-environment.d.ts +5 -0
  63. package/dist/encode/encode-environment.d.ts.map +1 -0
  64. package/dist/encode/encode-environment.js +41 -0
  65. package/dist/encode/encode-environment.js.map +1 -0
  66. package/dist/encode/encode-eql.d.ts +9 -0
  67. package/dist/encode/encode-eql.d.ts.map +1 -0
  68. package/dist/encode/encode-eql.js +199 -0
  69. package/dist/encode/encode-eql.js.map +1 -0
  70. package/dist/encode/encode-intent.d.ts +5 -0
  71. package/dist/encode/encode-intent.d.ts.map +1 -0
  72. package/dist/encode/encode-intent.js +16 -0
  73. package/dist/encode/encode-intent.js.map +1 -0
  74. package/dist/encode/encode-patch.d.ts +5 -0
  75. package/dist/encode/encode-patch.d.ts.map +1 -0
  76. package/dist/encode/encode-patch.js +146 -0
  77. package/dist/encode/encode-patch.js.map +1 -0
  78. package/dist/encode/encode-reply.d.ts +5 -0
  79. package/dist/encode/encode-reply.d.ts.map +1 -0
  80. package/dist/encode/encode-reply.js +16 -0
  81. package/dist/encode/encode-reply.js.map +1 -0
  82. package/dist/encode/encode-workflow.d.ts +5 -0
  83. package/dist/encode/encode-workflow.d.ts.map +1 -0
  84. package/dist/encode/encode-workflow.js +39 -0
  85. package/dist/encode/encode-workflow.js.map +1 -0
  86. package/dist/encode/writer.d.ts +14 -0
  87. package/dist/encode/writer.d.ts.map +1 -0
  88. package/dist/encode/writer.js +56 -0
  89. package/dist/encode/writer.js.map +1 -0
  90. package/dist/extension.d.ts +3 -0
  91. package/dist/extension.d.ts.map +1 -0
  92. package/dist/extension.js +17 -0
  93. package/dist/extension.js.map +1 -0
  94. package/dist/index.d.ts +12 -0
  95. package/dist/index.d.ts.map +1 -0
  96. package/dist/index.js +17 -0
  97. package/dist/index.js.map +1 -0
  98. package/dist/schemas.d.ts +34 -0
  99. package/dist/schemas.d.ts.map +1 -0
  100. package/dist/schemas.js +22 -0
  101. package/dist/schemas.js.map +1 -0
  102. package/dist/validate-environment.d.ts +323 -0
  103. package/dist/validate-environment.d.ts.map +1 -0
  104. package/dist/validate-environment.js +78 -0
  105. package/dist/validate-environment.js.map +1 -0
  106. package/dist/validate-harness.d.ts +2 -0
  107. package/dist/validate-harness.d.ts.map +1 -0
  108. package/dist/validate-harness.js +2 -0
  109. package/dist/validate-harness.js.map +1 -0
  110. package/package.json +33 -0
@@ -0,0 +1,355 @@
1
+ import { eqlSyntaxIssue } from "./diagnostics.js";
2
+ import { parseLiteral } from "./values.js";
3
+ import { parseLines } from "./lexer.js";
4
+ function upper(tokens) {
5
+ return tokens.map((t) => t.toUpperCase());
6
+ }
7
+ function parseConfigBody(lines, startIndex, baseIndent, issues) {
8
+ const config = {};
9
+ let label;
10
+ let i = startIndex;
11
+ while (i < lines.length) {
12
+ const row = lines[i];
13
+ if (row.indent <= baseIndent)
14
+ break;
15
+ const t = upper(row.tokens);
16
+ if (t[0] === "LABEL" && row.tokens[1]) {
17
+ const lit = parseLiteral(row.tokens.slice(1).join(" "), row.line);
18
+ if (lit.value !== undefined)
19
+ label = String(lit.value);
20
+ }
21
+ else if (t[0] === "WITH" && row.tokens.length >= 4 && row.tokens[2] === "=") {
22
+ const key = row.tokens[1];
23
+ const lit = parseLiteral(row.tokens.slice(3).join(" "), row.line);
24
+ issues.push(...lit.issues);
25
+ if (lit.value !== undefined)
26
+ config[key] = lit.value;
27
+ }
28
+ i++;
29
+ }
30
+ return { config, label, nextIndex: i };
31
+ }
32
+ function parseFeatureBody(lines, startIndex, baseIndent, issues) {
33
+ const features = {};
34
+ let label;
35
+ let i = startIndex;
36
+ while (i < lines.length) {
37
+ const row = lines[i];
38
+ if (row.indent <= baseIndent)
39
+ break;
40
+ const t = upper(row.tokens);
41
+ if (t[0] === "LABEL" && row.tokens[1]) {
42
+ const lit = parseLiteral(row.tokens.slice(1).join(" "), row.line);
43
+ if (lit.value !== undefined)
44
+ label = String(lit.value);
45
+ }
46
+ else if (t[0] === "FEATURE") {
47
+ const name = row.tokens[1];
48
+ if (!name) {
49
+ issues.push(eqlSyntaxIssue(row.line, "FEATURE requires a name"));
50
+ }
51
+ else {
52
+ const eqIdx = row.tokens.findIndex((x) => x === "=");
53
+ if (eqIdx === -1) {
54
+ features[name] = true;
55
+ }
56
+ else {
57
+ const lit = parseLiteral(row.tokens.slice(eqIdx + 1).join(" "), row.line);
58
+ features[name] = lit.value === true || lit.value === "true";
59
+ }
60
+ }
61
+ }
62
+ i++;
63
+ }
64
+ return { features, label, nextIndex: i };
65
+ }
66
+ function parseExtensionDescribeBody(lines, startIndex, baseIndent, _issues) {
67
+ let label;
68
+ const capabilities = [];
69
+ let i = startIndex;
70
+ while (i < lines.length) {
71
+ const row = lines[i];
72
+ if (row.indent <= baseIndent)
73
+ break;
74
+ const t = upper(row.tokens);
75
+ if (t[0] === "LABEL" && row.tokens[1]) {
76
+ const lit = parseLiteral(row.tokens.slice(1).join(" "), row.line);
77
+ if (lit.value !== undefined)
78
+ label = String(lit.value);
79
+ }
80
+ else if (t[0] === "CAPABILITIES") {
81
+ capabilities.push(...row.tokens.slice(1));
82
+ }
83
+ i++;
84
+ }
85
+ return { label, capabilities, nextIndex: i };
86
+ }
87
+ function parseCapabilityDescribeBody(lines, startIndex, baseIndent, issues) {
88
+ let label;
89
+ let extension;
90
+ const inputs = {};
91
+ const outputs = {};
92
+ let i = startIndex;
93
+ while (i < lines.length) {
94
+ const row = lines[i];
95
+ if (row.indent <= baseIndent)
96
+ break;
97
+ const t = upper(row.tokens);
98
+ if (t[0] === "LABEL" && row.tokens[1]) {
99
+ const lit = parseLiteral(row.tokens.slice(1).join(" "), row.line);
100
+ if (lit.value !== undefined)
101
+ label = String(lit.value);
102
+ }
103
+ else if (t[0] === "EXTENSION" && row.tokens[1]) {
104
+ extension = row.tokens[1];
105
+ }
106
+ else if (t[0] === "WITH" && row.tokens[1]) {
107
+ const spec = row.tokens.slice(1).join(" ");
108
+ const colon = spec.indexOf(":");
109
+ if (colon === -1) {
110
+ issues.push(eqlSyntaxIssue(row.line, `Expected type annotation: ${spec}`));
111
+ }
112
+ else {
113
+ inputs[spec.slice(0, colon)] = spec.slice(colon + 1);
114
+ }
115
+ }
116
+ else if (t[0] === "OUT" && row.tokens[1]) {
117
+ const spec = row.tokens.slice(1).join(" ");
118
+ const colon = spec.indexOf(":");
119
+ if (colon === -1) {
120
+ issues.push(eqlSyntaxIssue(row.line, `Expected type annotation: ${spec}`));
121
+ }
122
+ else {
123
+ outputs[spec.slice(0, colon)] = spec.slice(colon + 1);
124
+ }
125
+ }
126
+ i++;
127
+ }
128
+ return { label, extension, inputs, outputs, nextIndex: i };
129
+ }
130
+ function parsePolicyDescribeBody(lines, startIndex, baseIndent) {
131
+ let label;
132
+ let summary;
133
+ let i = startIndex;
134
+ while (i < lines.length) {
135
+ const row = lines[i];
136
+ if (row.indent <= baseIndent)
137
+ break;
138
+ const t = upper(row.tokens);
139
+ if (t[0] === "LABEL" && row.tokens[1]) {
140
+ const lit = parseLiteral(row.tokens.slice(1).join(" "), row.line);
141
+ if (lit.value !== undefined)
142
+ label = String(lit.value);
143
+ }
144
+ else if (t[0] === "SUMMARY" && row.tokens[1]) {
145
+ const lit = parseLiteral(row.tokens.slice(1).join(" "), row.line);
146
+ if (lit.value !== undefined)
147
+ summary = String(lit.value);
148
+ }
149
+ i++;
150
+ }
151
+ return { label, summary, nextIndex: i };
152
+ }
153
+ function parseEnvironmentLine(row, issues) {
154
+ const environmentId = row.tokens[1];
155
+ if (!environmentId) {
156
+ issues.push(eqlSyntaxIssue(row.line, "ENVIRONMENT requires an id"));
157
+ return {};
158
+ }
159
+ let environmentLabel;
160
+ if (row.tokens[2]) {
161
+ const lit = parseLiteral(row.tokens.slice(2).join(" "), row.line);
162
+ if (lit.value !== undefined)
163
+ environmentLabel = String(lit.value);
164
+ }
165
+ return { environmentId, environmentLabel };
166
+ }
167
+ export function parseEnvironmentDocument(lines, startIndex, header, issues) {
168
+ const first = lines[startIndex];
169
+ if (!first || upper(first.tokens)[0] !== "ENVIRONMENT") {
170
+ issues.push(eqlSyntaxIssue(first?.line ?? 1, "Expected ENVIRONMENT statement"));
171
+ return undefined;
172
+ }
173
+ const { environmentId, environmentLabel } = parseEnvironmentLine(first, issues);
174
+ if (!environmentId)
175
+ return undefined;
176
+ const doc = {
177
+ kind: "environment",
178
+ header,
179
+ environmentId,
180
+ environmentLabel,
181
+ extensions: [],
182
+ policies: [],
183
+ };
184
+ let i = startIndex + 1;
185
+ while (i < lines.length) {
186
+ const row = lines[i];
187
+ const t = upper(row.tokens);
188
+ if (t[0] === "RUNTIME" && row.tokens[1]) {
189
+ const body = parseConfigBody(lines, i + 1, row.indent, issues);
190
+ doc.runtime = {
191
+ id: row.tokens[1],
192
+ label: body.label,
193
+ config: body.config,
194
+ };
195
+ i = body.nextIndex;
196
+ continue;
197
+ }
198
+ if (t[0] === "EXTENSION" && row.tokens[1]) {
199
+ const orderIdx = row.tokens.findIndex((x) => x.toUpperCase() === "ORDER");
200
+ const order = orderIdx !== -1 ? Number(row.tokens[orderIdx + 1]) : 0;
201
+ const binding = {
202
+ id: row.tokens[1],
203
+ order: Number.isFinite(order) ? order : 0,
204
+ config: {},
205
+ };
206
+ const body = parseConfigBody(lines, i + 1, row.indent, issues);
207
+ binding.label = body.label;
208
+ binding.config = body.config;
209
+ doc.extensions.push(binding);
210
+ i = body.nextIndex;
211
+ continue;
212
+ }
213
+ if (t[0] === "POLICY" && row.tokens[1]) {
214
+ const orderIdx = row.tokens.findIndex((x) => x.toUpperCase() === "ORDER");
215
+ const order = orderIdx !== -1 ? Number(row.tokens[orderIdx + 1]) : 0;
216
+ const binding = {
217
+ id: row.tokens[1],
218
+ order: Number.isFinite(order) ? order : 0,
219
+ config: {},
220
+ };
221
+ const body = parseConfigBody(lines, i + 1, row.indent, issues);
222
+ binding.label = body.label;
223
+ binding.config = body.config;
224
+ doc.policies.push(binding);
225
+ i = body.nextIndex;
226
+ continue;
227
+ }
228
+ i++;
229
+ }
230
+ return doc;
231
+ }
232
+ export function parseDescribeDocument(lines, startIndex, header, issues) {
233
+ let i = startIndex;
234
+ let environmentId = "environment";
235
+ let environmentLabel;
236
+ if (lines[i] && upper(lines[i].tokens)[0] === "ENVIRONMENT") {
237
+ const env = parseEnvironmentLine(lines[i], issues);
238
+ if (env.environmentId)
239
+ environmentId = env.environmentId;
240
+ environmentLabel = env.environmentLabel;
241
+ i++;
242
+ }
243
+ const doc = {
244
+ kind: "describe",
245
+ header,
246
+ environmentId,
247
+ environmentLabel,
248
+ extensions: [],
249
+ capabilities: [],
250
+ policies: [],
251
+ };
252
+ while (i < lines.length) {
253
+ const row = lines[i];
254
+ const t = upper(row.tokens);
255
+ if (t[0] === "RUNTIME" && row.tokens[1]) {
256
+ const body = parseFeatureBody(lines, i + 1, row.indent, issues);
257
+ doc.runtime = {
258
+ id: row.tokens[1],
259
+ label: body.label,
260
+ features: body.features,
261
+ };
262
+ i = body.nextIndex;
263
+ continue;
264
+ }
265
+ if (t[0] === "EXTENSION" && row.tokens[1]) {
266
+ const orderIdx = row.tokens.findIndex((x) => x.toUpperCase() === "ORDER");
267
+ const order = orderIdx !== -1 ? Number(row.tokens[orderIdx + 1]) : 0;
268
+ const ext = {
269
+ id: row.tokens[1],
270
+ order: Number.isFinite(order) ? order : 0,
271
+ capabilities: [],
272
+ };
273
+ const body = parseExtensionDescribeBody(lines, i + 1, row.indent, issues);
274
+ ext.label = body.label;
275
+ ext.capabilities = body.capabilities;
276
+ doc.extensions.push(ext);
277
+ i = body.nextIndex;
278
+ continue;
279
+ }
280
+ if (t[0] === "CAPABILITY" && row.tokens[1]) {
281
+ const cap = {
282
+ id: row.tokens[1],
283
+ inputs: {},
284
+ outputs: {},
285
+ };
286
+ const body = parseCapabilityDescribeBody(lines, i + 1, row.indent, issues);
287
+ cap.label = body.label;
288
+ cap.extension = body.extension;
289
+ cap.inputs = body.inputs;
290
+ cap.outputs = body.outputs;
291
+ doc.capabilities.push(cap);
292
+ i = body.nextIndex;
293
+ continue;
294
+ }
295
+ if (t[0] === "POLICY" && row.tokens[1]) {
296
+ const pol = { id: row.tokens[1] };
297
+ const body = parsePolicyDescribeBody(lines, i + 1, row.indent);
298
+ pol.label = body.label;
299
+ pol.summary = body.summary;
300
+ doc.policies.push(pol);
301
+ i = body.nextIndex;
302
+ continue;
303
+ }
304
+ if (t[0] === "ENVIRONMENT") {
305
+ const env = parseEnvironmentLine(row, issues);
306
+ if (env.environmentId)
307
+ environmentId = env.environmentId;
308
+ environmentLabel = env.environmentLabel;
309
+ doc.environmentId = environmentId;
310
+ doc.environmentLabel = environmentLabel;
311
+ }
312
+ i++;
313
+ }
314
+ return doc;
315
+ }
316
+ export function parseEnvironmentEql(text) {
317
+ const issues = [];
318
+ const lines = parseLines(text);
319
+ let header;
320
+ let index = 0;
321
+ if (lines[0]?.tokens[0]?.toUpperCase() === "ECP") {
322
+ const row = lines[0];
323
+ if (row.tokens.length < 3) {
324
+ issues.push(eqlSyntaxIssue(row.line, "Invalid ECP header"));
325
+ }
326
+ else {
327
+ header = { schema: row.tokens[1], version: row.tokens[2] };
328
+ }
329
+ index = 1;
330
+ }
331
+ if (index >= lines.length) {
332
+ issues.push(eqlSyntaxIssue(1, "Expected ENVIRONMENT or CAPABILITY statement"));
333
+ return { issues };
334
+ }
335
+ if (header?.schema === "@executioncontrolprotocol.environment.describe") {
336
+ const doc = parseDescribeDocument(lines, index, header, issues);
337
+ return { document: doc, issues };
338
+ }
339
+ if (header?.schema === "@executioncontrolprotocol.environment") {
340
+ const doc = parseEnvironmentDocument(lines, index, header, issues);
341
+ return { document: doc, issues };
342
+ }
343
+ const first = upper(lines[index].tokens);
344
+ if (first[0] === "ENVIRONMENT") {
345
+ const doc = parseEnvironmentDocument(lines, index, header, issues);
346
+ return { document: doc, issues };
347
+ }
348
+ if (first[0] === "CAPABILITY" || first[0] === "RUNTIME" || first[0] === "POLICY") {
349
+ const doc = parseDescribeDocument(lines, index, header, issues);
350
+ return { document: doc, issues };
351
+ }
352
+ issues.push(eqlSyntaxIssue(lines[index].line, "Expected ENVIRONMENT or CAPABILITY statement"));
353
+ return { issues };
354
+ }
355
+ //# sourceMappingURL=parser-environment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser-environment.js","sourceRoot":"","sources":["../../src/decode/parser-environment.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAEvC,SAAS,KAAK,CAAC,MAAgB;IAC7B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA;AAC3C,CAAC;AAED,SAAS,eAAe,CACtB,KAAmB,EACnB,UAAkB,EAClB,UAAkB,EAClB,MAAyB;IAEzB,MAAM,MAAM,GAA4B,EAAE,CAAA;IAC1C,IAAI,KAAyB,CAAA;IAC7B,IAAI,CAAC,GAAG,UAAU,CAAA;IAClB,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAE,CAAA;QACrB,IAAI,GAAG,CAAC,MAAM,IAAI,UAAU;YAAE,MAAK;QACnC,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAC3B,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACtC,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;YACjE,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS;gBAAE,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACxD,CAAC;aAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC9E,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAE,CAAA;YAC1B,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;YACjE,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAA;YAC1B,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS;gBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,CAAA;QACtD,CAAC;QACD,CAAC,EAAE,CAAA;IACL,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,CAAA;AACxC,CAAC;AAED,SAAS,gBAAgB,CACvB,KAAmB,EACnB,UAAkB,EAClB,UAAkB,EAClB,MAAyB;IAEzB,MAAM,QAAQ,GAA4B,EAAE,CAAA;IAC5C,IAAI,KAAyB,CAAA;IAC7B,IAAI,CAAC,GAAG,UAAU,CAAA;IAClB,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAE,CAAA;QACrB,IAAI,GAAG,CAAC,MAAM,IAAI,UAAU;YAAE,MAAK;QACnC,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAC3B,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACtC,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;YACjE,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS;gBAAE,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACxD,CAAC;aAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;YAC1B,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,yBAAyB,CAAC,CAAC,CAAA;YAClE,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAA;gBACpD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;oBACjB,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;gBACvB,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;oBACzE,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,KAAK,IAAI,IAAI,GAAG,CAAC,KAAK,KAAK,MAAM,CAAA;gBAC7D,CAAC;YACH,CAAC;QACH,CAAC;QACD,CAAC,EAAE,CAAA;IACL,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,CAAA;AAC1C,CAAC;AAED,SAAS,0BAA0B,CACjC,KAAmB,EACnB,UAAkB,EAClB,UAAkB,EAClB,OAA0B;IAE1B,IAAI,KAAyB,CAAA;IAC7B,MAAM,YAAY,GAAa,EAAE,CAAA;IACjC,IAAI,CAAC,GAAG,UAAU,CAAA;IAClB,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAE,CAAA;QACrB,IAAI,GAAG,CAAC,MAAM,IAAI,UAAU;YAAE,MAAK;QACnC,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAC3B,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACtC,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;YACjE,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS;gBAAE,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACxD,CAAC;aAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,cAAc,EAAE,CAAC;YACnC,YAAY,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QAC3C,CAAC;QACD,CAAC,EAAE,CAAA;IACL,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,EAAE,CAAA;AAC9C,CAAC;AAED,SAAS,2BAA2B,CAClC,KAAmB,EACnB,UAAkB,EAClB,UAAkB,EAClB,MAAyB;IAQzB,IAAI,KAAyB,CAAA;IAC7B,IAAI,SAA6B,CAAA;IACjC,MAAM,MAAM,GAA2B,EAAE,CAAA;IACzC,MAAM,OAAO,GAA2B,EAAE,CAAA;IAC1C,IAAI,CAAC,GAAG,UAAU,CAAA;IAClB,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAE,CAAA;QACrB,IAAI,GAAG,CAAC,MAAM,IAAI,UAAU;YAAE,MAAK;QACnC,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAC3B,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACtC,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;YACjE,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS;gBAAE,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACxD,CAAC;aAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QAC3B,CAAC;aAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YAC/B,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gBACjB,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,6BAA6B,IAAI,EAAE,CAAC,CAAC,CAAA;YAC5E,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;YACtD,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YAC/B,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gBACjB,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,6BAA6B,IAAI,EAAE,CAAC,CAAC,CAAA;YAC5E,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;YACvD,CAAC;QACH,CAAC;QACD,CAAC,EAAE,CAAA;IACL,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,CAAA;AAC5D,CAAC;AAED,SAAS,uBAAuB,CAC9B,KAAmB,EACnB,UAAkB,EAClB,UAAkB;IAElB,IAAI,KAAyB,CAAA;IAC7B,IAAI,OAA2B,CAAA;IAC/B,IAAI,CAAC,GAAG,UAAU,CAAA;IAClB,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAE,CAAA;QACrB,IAAI,GAAG,CAAC,MAAM,IAAI,UAAU;YAAE,MAAK;QACnC,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAC3B,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACtC,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;YACjE,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS;gBAAE,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACxD,CAAC;aAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;YACjE,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS;gBAAE,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAC1D,CAAC;QACD,CAAC,EAAE,CAAA;IACL,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,CAAA;AACzC,CAAC;AAED,SAAS,oBAAoB,CAC3B,GAAe,EACf,MAAyB;IAEzB,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACnC,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,4BAA4B,CAAC,CAAC,CAAA;QACnE,OAAO,EAAE,CAAA;IACX,CAAC;IACD,IAAI,gBAAoC,CAAA;IACxC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;QACjE,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS;YAAE,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IACnE,CAAC;IACD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAA;AAC5C,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,KAAmB,EACnB,UAAkB,EAClB,MAA6B,EAC7B,MAAyB;IAEzB,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,CAAA;IAC/B,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,aAAa,EAAE,CAAC;QACvD,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,EAAE,gCAAgC,CAAC,CAAC,CAAA;QAC/E,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,GAAG,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IAC/E,IAAI,CAAC,aAAa;QAAE,OAAO,SAAS,CAAA;IAEpC,MAAM,GAAG,GAAsB;QAC7B,IAAI,EAAE,aAAa;QACnB,MAAM;QACN,aAAa;QACb,gBAAgB;QAChB,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,EAAE;KACb,CAAA;IAED,IAAI,CAAC,GAAG,UAAU,GAAG,CAAC,CAAA;IACtB,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAE,CAAA;QACrB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAC3B,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YAC9D,GAAG,CAAC,OAAO,GAAG;gBACZ,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAE;gBAClB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAA;YACD,CAAC,GAAG,IAAI,CAAC,SAAS,CAAA;YAClB,SAAQ;QACV,CAAC;QACD,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1C,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,CAAA;YACzE,MAAM,KAAK,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACpE,MAAM,OAAO,GAAe;gBAC1B,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAE;gBAClB,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACzC,MAAM,EAAE,EAAE;aACX,CAAA;YACD,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YAC9D,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;YAC1B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;YAC5B,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAC5B,CAAC,GAAG,IAAI,CAAC,SAAS,CAAA;YAClB,SAAQ;QACV,CAAC;QACD,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,CAAA;YACzE,MAAM,KAAK,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACpE,MAAM,OAAO,GAAe;gBAC1B,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAE;gBAClB,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACzC,MAAM,EAAE,EAAE;aACX,CAAA;YACD,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YAC9D,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;YAC1B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;YAC5B,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAC1B,CAAC,GAAG,IAAI,CAAC,SAAS,CAAA;YAClB,SAAQ;QACV,CAAC;QACD,CAAC,EAAE,CAAA;IACL,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,KAAmB,EACnB,UAAkB,EAClB,MAA6B,EAC7B,MAAyB;IAEzB,IAAI,CAAC,GAAG,UAAU,CAAA;IAClB,IAAI,aAAa,GAAG,aAAa,CAAA;IACjC,IAAI,gBAAoC,CAAA;IAExC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,aAAa,EAAE,CAAC;QAC7D,MAAM,GAAG,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,MAAM,CAAC,CAAA;QACnD,IAAI,GAAG,CAAC,aAAa;YAAE,aAAa,GAAG,GAAG,CAAC,aAAa,CAAA;QACxD,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,CAAA;QACvC,CAAC,EAAE,CAAA;IACL,CAAC;IAED,MAAM,GAAG,GAAmB;QAC1B,IAAI,EAAE,UAAU;QAChB,MAAM;QACN,aAAa;QACb,gBAAgB;QAChB,UAAU,EAAE,EAAE;QACd,YAAY,EAAE,EAAE;QAChB,QAAQ,EAAE,EAAE;KACb,CAAA;IAED,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAE,CAAA;QACrB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAC3B,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YAC/D,GAAG,CAAC,OAAO,GAAG;gBACZ,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAE;gBAClB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAA;YACD,CAAC,GAAG,IAAI,CAAC,SAAS,CAAA;YAClB,SAAQ;QACV,CAAC;QACD,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1C,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,CAAA;YACzE,MAAM,KAAK,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACpE,MAAM,GAAG,GAAyB;gBAChC,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAE;gBAClB,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACzC,YAAY,EAAE,EAAE;aACjB,CAAA;YACD,MAAM,IAAI,GAAG,0BAA0B,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YACzE,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;YACtB,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAA;YACpC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACxB,CAAC,GAAG,IAAI,CAAC,SAAS,CAAA;YAClB,SAAQ;QACV,CAAC;QACD,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,YAAY,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,MAAM,GAAG,GAA0B;gBACjC,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAE;gBAClB,MAAM,EAAE,EAAE;gBACV,OAAO,EAAE,EAAE;aACZ,CAAA;YACD,MAAM,IAAI,GAAG,2BAA2B,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YAC1E,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;YACtB,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;YAC9B,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;YACxB,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;YAC1B,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAC1B,CAAC,GAAG,IAAI,CAAC,SAAS,CAAA;YAClB,SAAQ;QACV,CAAC;QACD,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,MAAM,GAAG,GAAsB,EAAE,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAE,EAAE,CAAA;YACrD,MAAM,IAAI,GAAG,uBAAuB,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;YAC9D,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;YACtB,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;YAC1B,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACtB,CAAC,GAAG,IAAI,CAAC,SAAS,CAAA;YAClB,SAAQ;QACV,CAAC;QACD,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,aAAa,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,oBAAoB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;YAC7C,IAAI,GAAG,CAAC,aAAa;gBAAE,aAAa,GAAG,GAAG,CAAC,aAAa,CAAA;YACxD,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,CAAA;YACvC,GAAG,CAAC,aAAa,GAAG,aAAa,CAAA;YACjC,GAAG,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;QACzC,CAAC;QACD,CAAC,EAAE,CAAA;IACL,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAI9C,MAAM,MAAM,GAAsB,EAAE,CAAA;IACpC,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;IAC9B,IAAI,MAA6B,CAAA;IACjC,IAAI,KAAK,GAAG,CAAC,CAAA;IAEb,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,KAAK,EAAE,CAAC;QACjD,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAE,CAAA;QACrB,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAA;QAC7D,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAE,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAE,EAAE,CAAA;QAC9D,CAAC;QACD,KAAK,GAAG,CAAC,CAAA;IACX,CAAC;IAED,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,8CAA8C,CAAC,CAAC,CAAA;QAC9E,OAAO,EAAE,MAAM,EAAE,CAAA;IACnB,CAAC;IAED,IAAI,MAAM,EAAE,MAAM,KAAK,gDAAgD,EAAE,CAAC;QACxE,MAAM,GAAG,GAAG,qBAAqB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;QAC/D,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,CAAA;IAClC,CAAC;IAED,IAAI,MAAM,EAAE,MAAM,KAAK,uCAAuC,EAAE,CAAC;QAC/D,MAAM,GAAG,GAAG,wBAAwB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;QAClE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,CAAA;IAClC,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAE,CAAC,MAAM,CAAC,CAAA;IACzC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,aAAa,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,wBAAwB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;QAClE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,CAAA;IAClC,CAAC;IACD,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,YAAY,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;QACjF,MAAM,GAAG,GAAG,qBAAqB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;QAC/D,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,CAAA;IAClC,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAE,CAAC,IAAI,EAAE,8CAA8C,CAAC,CAAC,CAAA;IAC/F,OAAO,EAAE,MAAM,EAAE,CAAA;AACnB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { ValidationIssue } from "@executioncontrolprotocol/types";
2
+ import type { EqlHeader, EqlIntentDoc, EqlReplyDoc, ParsedLine } from "./ast.js";
3
+ export declare function parseIntentDocument(lines: ParsedLine[], startIndex: number, header: EqlHeader | undefined, issues: ValidationIssue[]): EqlIntentDoc | undefined;
4
+ export declare function parseReplyDocument(lines: ParsedLine[], startIndex: number, header: EqlHeader | undefined, issues: ValidationIssue[]): EqlReplyDoc | undefined;
5
+ //# sourceMappingURL=parser-harness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser-harness.d.ts","sourceRoot":"","sources":["../../src/decode/parser-harness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACtE,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAoB,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAwClG,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,UAAU,EAAE,EACnB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,SAAS,GAAG,SAAS,EAC7B,MAAM,EAAE,eAAe,EAAE,GACxB,YAAY,GAAG,SAAS,CA4C1B;AA6CD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,UAAU,EAAE,EACnB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,SAAS,GAAG,SAAS,EAC7B,MAAM,EAAE,eAAe,EAAE,GACxB,WAAW,GAAG,SAAS,CAyBzB"}
@@ -0,0 +1,140 @@
1
+ import { eqlSyntaxIssue } from "./diagnostics.js";
2
+ import { parseLiteral } from "./values.js";
3
+ function upper(tokens) {
4
+ return tokens.map((t) => t.toUpperCase());
5
+ }
6
+ function parseSummaryFromTokens(tokens, startIndex, line) {
7
+ const t = upper(tokens);
8
+ const summaryIndex = t.indexOf("SUMMARY");
9
+ if (summaryIndex < 0) {
10
+ return { nextIndex: startIndex };
11
+ }
12
+ const rest = tokens.slice(summaryIndex + 1).join(" ").trim();
13
+ if (!rest) {
14
+ return { nextIndex: tokens.length };
15
+ }
16
+ const lit = parseLiteral(rest, line);
17
+ if (lit.value !== undefined) {
18
+ return { summary: String(lit.value), nextIndex: tokens.length };
19
+ }
20
+ const unquoted = rest.replace(/^["'\u201C\u201D]|["'\u201C\u201D]$/g, "");
21
+ return { summary: unquoted, nextIndex: tokens.length };
22
+ }
23
+ function parseTopicFromTokens(tokens) {
24
+ const t = upper(tokens);
25
+ const topicIndex = t.indexOf("TOPIC");
26
+ if (topicIndex < 0 || !tokens[topicIndex + 1]) {
27
+ return undefined;
28
+ }
29
+ const summaryIndex = t.indexOf("SUMMARY");
30
+ const end = summaryIndex >= 0 ? summaryIndex : tokens.length;
31
+ return tokens.slice(topicIndex + 1, end).join(" ").trim() || undefined;
32
+ }
33
+ export function parseIntentDocument(lines, startIndex, header, issues) {
34
+ const row = lines[startIndex];
35
+ if (!row) {
36
+ issues.push(eqlSyntaxIssue(1, "Expected INTENT statement"));
37
+ return undefined;
38
+ }
39
+ const t = upper(row.tokens);
40
+ if (t[0] !== "INTENT" || !row.tokens[1]) {
41
+ issues.push(eqlSyntaxIssue(row.line, "INTENT requires a value"));
42
+ return undefined;
43
+ }
44
+ let topic = parseTopicFromTokens(row.tokens);
45
+ let summary;
46
+ const inlineSummary = parseSummaryFromTokens(row.tokens, 0, row.line);
47
+ summary = inlineSummary.summary;
48
+ let i = startIndex + 1;
49
+ while (i < lines.length) {
50
+ const child = lines[i];
51
+ if (child.indent <= row.indent) {
52
+ break;
53
+ }
54
+ const ct = upper(child.tokens);
55
+ if (ct[0] === "TOPIC" && child.tokens[1]) {
56
+ topic = child.tokens.slice(1).join(" ").trim();
57
+ }
58
+ else if (ct[0] === "SUMMARY") {
59
+ const summaryText = child.text.replace(/^\s*SUMMARY\s+/i, "").trim();
60
+ const lit = parseLiteral(summaryText, child.line);
61
+ summary =
62
+ lit.value !== undefined
63
+ ? String(lit.value)
64
+ : summaryText.replace(/^["'\u201C\u201D]|["'\u201C\u201D]$/g, "");
65
+ }
66
+ i++;
67
+ }
68
+ return {
69
+ kind: "intent",
70
+ header,
71
+ intent: row.tokens[1],
72
+ ...(topic ? { topic } : {}),
73
+ ...(summary ? { summary } : {}),
74
+ };
75
+ }
76
+ function parseReplyBody(lines, startIndex, baseIndent, issues) {
77
+ let answer;
78
+ const citations = [];
79
+ let i = startIndex;
80
+ while (i < lines.length) {
81
+ const row = lines[i];
82
+ if (row.indent <= baseIndent && i > startIndex)
83
+ break;
84
+ const t = upper(row.tokens);
85
+ if (t[0] === "ANSWER") {
86
+ const answerText = row.text.replace(/^\s*ANSWER\s+/i, "").trim();
87
+ const normalized = answerText.replace(/^\u201C|\u201D$/g, '"');
88
+ const lit = parseLiteral(normalized, row.line);
89
+ if (lit.value !== undefined)
90
+ answer = String(lit.value);
91
+ else if (lit.issues.some((i) => i.message.includes("Unsupported literal")) ||
92
+ (!normalized.startsWith('"') && !normalized.startsWith("'"))) {
93
+ answer = answerText.replace(/^["'\u201C\u201D]|["'\u201C\u201D]$/g, "");
94
+ }
95
+ else {
96
+ issues.push(...lit.issues);
97
+ }
98
+ }
99
+ else if (t[0] === "CITATION" && row.tokens[1]) {
100
+ const citation = { kind: row.tokens[1].toLowerCase() };
101
+ const rest = row.tokens.slice(2);
102
+ const quoted = rest.filter((t) => t.startsWith('"') || t.startsWith("'"));
103
+ const unquoted = rest.filter((t) => !t.startsWith('"') && !t.startsWith("'"));
104
+ if (unquoted[0])
105
+ citation.id = unquoted[0];
106
+ if (quoted.length > 0) {
107
+ const lit = parseLiteral(quoted.join(" "), row.line);
108
+ if (lit.value !== undefined)
109
+ citation.detail = String(lit.value);
110
+ }
111
+ citations.push(citation);
112
+ }
113
+ i++;
114
+ }
115
+ return { answer, citations, nextIndex: i };
116
+ }
117
+ export function parseReplyDocument(lines, startIndex, header, issues) {
118
+ const row = lines[startIndex];
119
+ if (!row || upper(row.tokens)[0] !== "REPLY") {
120
+ issues.push(eqlSyntaxIssue(row?.line ?? 1, "Expected REPLY"));
121
+ return undefined;
122
+ }
123
+ let answer;
124
+ let citations = [];
125
+ const body = parseReplyBody(lines, startIndex + 1, row.indent, issues);
126
+ if (body.answer !== undefined)
127
+ answer = body.answer;
128
+ citations = body.citations;
129
+ if (!answer) {
130
+ issues.push(eqlSyntaxIssue(row.line, "REPLY requires ANSWER"));
131
+ return undefined;
132
+ }
133
+ return {
134
+ kind: "reply",
135
+ header,
136
+ answer,
137
+ citations,
138
+ };
139
+ }
140
+ //# sourceMappingURL=parser-harness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser-harness.js","sourceRoot":"","sources":["../../src/decode/parser-harness.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { ValidationIssue } from "@executioncontrolprotocol/types";
2
+ import type { EqlDocument, EqlHeader } from "./ast.js";
3
+ export interface ParseResult {
4
+ document?: EqlDocument;
5
+ header?: EqlHeader;
6
+ issues: ValidationIssue[];
7
+ }
8
+ export declare function parseEql(text: string): ParseResult;
9
+ /** Detect header from text without full parse. */
10
+ export declare function detectHeader(text: string): EqlHeader | undefined;
11
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/decode/parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAClF,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EAQV,MAAM,UAAU,CAAA;AAOjB,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,WAAW,CAAA;IACtB,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,MAAM,EAAE,eAAe,EAAE,CAAA;CAC1B;AAqID,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAgOlD;AAED,kDAAkD;AAClD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAQhE"}