@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.
- package/README.md +67 -0
- package/dist/decode/ast.d.ts +138 -0
- package/dist/decode/ast.d.ts.map +1 -0
- package/dist/decode/ast.js +2 -0
- package/dist/decode/ast.js.map +1 -0
- package/dist/decode/decode-eql.d.ts +9 -0
- package/dist/decode/decode-eql.d.ts.map +1 -0
- package/dist/decode/decode-eql.js +260 -0
- package/dist/decode/decode-eql.js.map +1 -0
- package/dist/decode/diagnostics.d.ts +10 -0
- package/dist/decode/diagnostics.d.ts.map +1 -0
- package/dist/decode/diagnostics.js +18 -0
- package/dist/decode/diagnostics.js.map +1 -0
- package/dist/decode/lexer.d.ts +5 -0
- package/dist/decode/lexer.d.ts.map +1 -0
- package/dist/decode/lexer.js +76 -0
- package/dist/decode/lexer.js.map +1 -0
- package/dist/decode/normalize-describe.d.ts +4 -0
- package/dist/decode/normalize-describe.d.ts.map +1 -0
- package/dist/decode/normalize-describe.js +42 -0
- package/dist/decode/normalize-describe.js.map +1 -0
- package/dist/decode/normalize-environment.d.ts +4 -0
- package/dist/decode/normalize-environment.d.ts.map +1 -0
- package/dist/decode/normalize-environment.js +43 -0
- package/dist/decode/normalize-environment.js.map +1 -0
- package/dist/decode/normalize-intent.d.ts +4 -0
- package/dist/decode/normalize-intent.d.ts.map +1 -0
- package/dist/decode/normalize-intent.js +10 -0
- package/dist/decode/normalize-intent.js.map +1 -0
- package/dist/decode/normalize-patch.d.ts +4 -0
- package/dist/decode/normalize-patch.d.ts.map +1 -0
- package/dist/decode/normalize-patch.js +119 -0
- package/dist/decode/normalize-patch.js.map +1 -0
- package/dist/decode/normalize-reply.d.ts +4 -0
- package/dist/decode/normalize-reply.d.ts.map +1 -0
- package/dist/decode/normalize-reply.js +18 -0
- package/dist/decode/normalize-reply.js.map +1 -0
- package/dist/decode/normalize-workflow.d.ts +4 -0
- package/dist/decode/normalize-workflow.d.ts.map +1 -0
- package/dist/decode/normalize-workflow.js +31 -0
- package/dist/decode/normalize-workflow.js.map +1 -0
- package/dist/decode/parser-environment.d.ts +9 -0
- package/dist/decode/parser-environment.d.ts.map +1 -0
- package/dist/decode/parser-environment.js +355 -0
- package/dist/decode/parser-environment.js.map +1 -0
- package/dist/decode/parser-harness.d.ts +5 -0
- package/dist/decode/parser-harness.d.ts.map +1 -0
- package/dist/decode/parser-harness.js +140 -0
- package/dist/decode/parser-harness.js.map +1 -0
- package/dist/decode/parser.d.ts +11 -0
- package/dist/decode/parser.d.ts.map +1 -0
- package/dist/decode/parser.js +372 -0
- package/dist/decode/parser.js.map +1 -0
- package/dist/decode/values.d.ts +24 -0
- package/dist/decode/values.d.ts.map +1 -0
- package/dist/decode/values.js +64 -0
- package/dist/decode/values.js.map +1 -0
- package/dist/encode/encode-describe.d.ts +5 -0
- package/dist/encode/encode-describe.d.ts.map +1 -0
- package/dist/encode/encode-describe.js +61 -0
- package/dist/encode/encode-describe.js.map +1 -0
- package/dist/encode/encode-environment.d.ts +5 -0
- package/dist/encode/encode-environment.d.ts.map +1 -0
- package/dist/encode/encode-environment.js +41 -0
- package/dist/encode/encode-environment.js.map +1 -0
- package/dist/encode/encode-eql.d.ts +9 -0
- package/dist/encode/encode-eql.d.ts.map +1 -0
- package/dist/encode/encode-eql.js +199 -0
- package/dist/encode/encode-eql.js.map +1 -0
- package/dist/encode/encode-intent.d.ts +5 -0
- package/dist/encode/encode-intent.d.ts.map +1 -0
- package/dist/encode/encode-intent.js +16 -0
- package/dist/encode/encode-intent.js.map +1 -0
- package/dist/encode/encode-patch.d.ts +5 -0
- package/dist/encode/encode-patch.d.ts.map +1 -0
- package/dist/encode/encode-patch.js +146 -0
- package/dist/encode/encode-patch.js.map +1 -0
- package/dist/encode/encode-reply.d.ts +5 -0
- package/dist/encode/encode-reply.d.ts.map +1 -0
- package/dist/encode/encode-reply.js +16 -0
- package/dist/encode/encode-reply.js.map +1 -0
- package/dist/encode/encode-workflow.d.ts +5 -0
- package/dist/encode/encode-workflow.d.ts.map +1 -0
- package/dist/encode/encode-workflow.js +39 -0
- package/dist/encode/encode-workflow.js.map +1 -0
- package/dist/encode/writer.d.ts +14 -0
- package/dist/encode/writer.d.ts.map +1 -0
- package/dist/encode/writer.js +56 -0
- package/dist/encode/writer.js.map +1 -0
- package/dist/extension.d.ts +3 -0
- package/dist/extension.d.ts.map +1 -0
- package/dist/extension.js +17 -0
- package/dist/extension.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/schemas.d.ts +34 -0
- package/dist/schemas.d.ts.map +1 -0
- package/dist/schemas.js +22 -0
- package/dist/schemas.js.map +1 -0
- package/dist/validate-environment.d.ts +323 -0
- package/dist/validate-environment.d.ts.map +1 -0
- package/dist/validate-environment.js +78 -0
- package/dist/validate-environment.js.map +1 -0
- package/dist/validate-harness.d.ts +2 -0
- package/dist/validate-harness.d.ts.map +1 -0
- package/dist/validate-harness.js +2 -0
- package/dist/validate-harness.js.map +1 -0
- 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":"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"}
|
|
@@ -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"}
|