agentlang 0.5.4 → 0.5.5
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 +29 -5
- package/out/language/parser.d.ts +2 -1
- package/out/language/parser.d.ts.map +1 -1
- package/out/language/parser.js +64 -18
- package/out/language/parser.js.map +1 -1
- package/out/runtime/defs.d.ts +3 -0
- package/out/runtime/defs.d.ts.map +1 -1
- package/out/runtime/defs.js +9 -0
- package/out/runtime/defs.js.map +1 -1
- package/out/runtime/exec-graph.d.ts.map +1 -1
- package/out/runtime/exec-graph.js +87 -37
- package/out/runtime/exec-graph.js.map +1 -1
- package/out/runtime/interpreter.d.ts +16 -0
- package/out/runtime/interpreter.d.ts.map +1 -1
- package/out/runtime/interpreter.js +163 -37
- package/out/runtime/interpreter.js.map +1 -1
- package/out/runtime/loader.d.ts.map +1 -1
- package/out/runtime/loader.js +11 -9
- package/out/runtime/loader.js.map +1 -1
- package/out/runtime/module.d.ts +3 -0
- package/out/runtime/module.d.ts.map +1 -1
- package/out/runtime/module.js +9 -0
- package/out/runtime/module.js.map +1 -1
- package/out/runtime/modules/ai.d.ts.map +1 -1
- package/out/runtime/modules/ai.js +28 -4
- package/out/runtime/modules/ai.js.map +1 -1
- package/out/runtime/modules/core.d.ts +5 -0
- package/out/runtime/modules/core.d.ts.map +1 -1
- package/out/runtime/modules/core.js +97 -0
- package/out/runtime/modules/core.js.map +1 -1
- package/out/runtime/monitor.d.ts +70 -0
- package/out/runtime/monitor.d.ts.map +1 -0
- package/out/runtime/monitor.js +330 -0
- package/out/runtime/monitor.js.map +1 -0
- package/out/runtime/state.d.ts +16 -0
- package/out/runtime/state.d.ts.map +1 -1
- package/out/runtime/state.js +16 -0
- package/out/runtime/state.js.map +1 -1
- package/out/runtime/util.d.ts +2 -0
- package/out/runtime/util.d.ts.map +1 -1
- package/out/runtime/util.js +10 -0
- package/out/runtime/util.js.map +1 -1
- package/out/utils/fs-utils.d.ts +1 -0
- package/out/utils/fs-utils.d.ts.map +1 -1
- package/out/utils/fs-utils.js +11 -1
- package/out/utils/fs-utils.js.map +1 -1
- package/package.json +185 -186
- package/src/language/parser.ts +68 -25
- package/src/runtime/defs.ts +12 -0
- package/src/runtime/exec-graph.ts +97 -36
- package/src/runtime/interpreter.ts +175 -40
- package/src/runtime/loader.ts +11 -8
- package/src/runtime/module.ts +12 -0
- package/src/runtime/modules/ai.ts +29 -6
- package/src/runtime/modules/core.ts +108 -0
- package/src/runtime/monitor.ts +369 -0
- package/src/runtime/state.ts +19 -0
- package/src/runtime/util.ts +12 -0
- package/src/utils/fs-utils.ts +11 -1
- package/out/setupClassic.d.ts +0 -98
- package/out/setupClassic.d.ts.map +0 -1
- package/out/setupClassic.js +0 -38
- package/out/setupClassic.js.map +0 -1
- package/out/setupCommon.d.ts +0 -2
- package/out/setupCommon.d.ts.map +0 -1
- package/out/setupCommon.js +0 -33
- package/out/setupCommon.js.map +0 -1
- package/out/setupExtended.d.ts +0 -40
- package/out/setupExtended.d.ts.map +0 -1
- package/out/setupExtended.js +0 -67
- package/out/setupExtended.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,187 +1,186 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
}
|
|
2
|
+
"name": "agentlang",
|
|
3
|
+
"description": "The easiest way to build the most reliable AI agents - enterprise-grade teams of AI agents that collaborate with each other and humans",
|
|
4
|
+
"version": "0.5.5",
|
|
5
|
+
"license": "Sustainable Use License",
|
|
6
|
+
"author": "agentlang-ai",
|
|
7
|
+
"homepage": "https://github.com/agentlang-ai/agentlang#readme",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/agentlang-ai/agentlang.git"
|
|
11
|
+
},
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/agentlang-ai/agentlang/issues"
|
|
14
|
+
},
|
|
15
|
+
"keywords": [
|
|
16
|
+
"agentlang",
|
|
17
|
+
"agents-generation",
|
|
18
|
+
"ai-agents",
|
|
19
|
+
"enterprise",
|
|
20
|
+
"multi-agent",
|
|
21
|
+
"no-code",
|
|
22
|
+
"agent-teams",
|
|
23
|
+
"production-ready"
|
|
24
|
+
],
|
|
25
|
+
"files": [
|
|
26
|
+
"bin",
|
|
27
|
+
"out",
|
|
28
|
+
"src",
|
|
29
|
+
"LICENSE"
|
|
30
|
+
],
|
|
31
|
+
"type": "module",
|
|
32
|
+
"publishConfig": {
|
|
33
|
+
"access": "public",
|
|
34
|
+
"registry": "https://registry.npmjs.org/"
|
|
35
|
+
},
|
|
36
|
+
"dependencies": {
|
|
37
|
+
"@aws-sdk/client-cognito-identity": "^3.828.0",
|
|
38
|
+
"@aws-sdk/client-cognito-identity-provider": "^3.828.0",
|
|
39
|
+
"@aws-sdk/credential-providers": "^3.828.0",
|
|
40
|
+
"@isomorphic-git/lightning-fs": "^4.6.1",
|
|
41
|
+
"@langchain/anthropic": "^0.3.32",
|
|
42
|
+
"@langchain/core": "^0.3.78",
|
|
43
|
+
"@langchain/openai": "^0.6.16",
|
|
44
|
+
"@types/jsonwebtoken": "^9.0.10",
|
|
45
|
+
"@types/multer": "^1.4.5-lts.1",
|
|
46
|
+
"amazon-cognito-identity-js": "^6.3.15",
|
|
47
|
+
"aws-jwt-verify": "^5.1.0",
|
|
48
|
+
"bcryptjs": "^3.0.2",
|
|
49
|
+
"buffer": "^6.0.3",
|
|
50
|
+
"chalk": "~5.3.0",
|
|
51
|
+
"commander": "~11.0.0",
|
|
52
|
+
"express": "^5.1.0",
|
|
53
|
+
"handlebars": "^4.7.8",
|
|
54
|
+
"jsonwebtoken": "^9.0.2",
|
|
55
|
+
"langchain": "^0.3.36",
|
|
56
|
+
"langium": "^3.5.0",
|
|
57
|
+
"multer": "^1.4.5-lts.1",
|
|
58
|
+
"openapi-client-axios": "^7.6.0",
|
|
59
|
+
"pg": "^8.16.1",
|
|
60
|
+
"pgvector": "^0.2.1",
|
|
61
|
+
"sql.js": "^1.13.0",
|
|
62
|
+
"sqlite3": "^5.1.7",
|
|
63
|
+
"typeorm": "^0.3.25",
|
|
64
|
+
"vscode-languageserver": "^9.0.1",
|
|
65
|
+
"winston": "^3.17.0",
|
|
66
|
+
"winston-daily-rotate-file": "^5.0.0",
|
|
67
|
+
"zod": "^3.25.55"
|
|
68
|
+
},
|
|
69
|
+
"overrides": {
|
|
70
|
+
"semver": "^7.5.3",
|
|
71
|
+
"trim-newlines": ">=3.0.1"
|
|
72
|
+
},
|
|
73
|
+
"devDependencies": {
|
|
74
|
+
"@codingame/esbuild-import-meta-url-plugin": "~1.0.2",
|
|
75
|
+
"@eslint/js": "^9.26.0",
|
|
76
|
+
"@types/cookie-parser": "^1.4.9",
|
|
77
|
+
"@types/express": "^5.0.1",
|
|
78
|
+
"@types/node": "^18.19.110",
|
|
79
|
+
"@types/sql.js": "^1.4.9",
|
|
80
|
+
"@types/vscode": "^1.100.0",
|
|
81
|
+
"@typescript-eslint/eslint-plugin": "~8.32.1",
|
|
82
|
+
"@typescript-eslint/parser": "~8.32.1",
|
|
83
|
+
"brace-expansion": ">=2.0.2",
|
|
84
|
+
"concurrently": "~8.2.1",
|
|
85
|
+
"esbuild": "^0.25.4",
|
|
86
|
+
"eslint": "~9.26.0",
|
|
87
|
+
"generator-langium": "^3.0.0",
|
|
88
|
+
"http-server": "~14.1.1",
|
|
89
|
+
"langium-cli": "^3.5.0",
|
|
90
|
+
"nodemon": "^3.1.10",
|
|
91
|
+
"prettier": "^3.5.3",
|
|
92
|
+
"typescript": "^5.8.3",
|
|
93
|
+
"typescript-eslint": "^8.32.1",
|
|
94
|
+
"vite": "^6.3.5",
|
|
95
|
+
"vite-plugin-node-polyfills": "^0.24.0",
|
|
96
|
+
"vitest": "^3.1.3",
|
|
97
|
+
"vscode-languageclient": "^9.0.1",
|
|
98
|
+
"vscode-uri": "^3.1.0"
|
|
99
|
+
},
|
|
100
|
+
"volta": {
|
|
101
|
+
"node": ">=20.0.0",
|
|
102
|
+
"npm": ">=10.8.2"
|
|
103
|
+
},
|
|
104
|
+
"displayName": "agentlang",
|
|
105
|
+
"engines": {
|
|
106
|
+
"vscode": "^1.67.0",
|
|
107
|
+
"node": ">=20.0.0"
|
|
108
|
+
},
|
|
109
|
+
"categories": [
|
|
110
|
+
"Programming Languages"
|
|
111
|
+
],
|
|
112
|
+
"contributes": {
|
|
113
|
+
"languages": [
|
|
114
|
+
{
|
|
115
|
+
"id": "agentlang",
|
|
116
|
+
"aliases": [
|
|
117
|
+
"Agentlang",
|
|
118
|
+
"agentlang"
|
|
119
|
+
],
|
|
120
|
+
"extensions": [
|
|
121
|
+
".al"
|
|
122
|
+
],
|
|
123
|
+
"configuration": "./language-configuration.json"
|
|
124
|
+
}
|
|
125
|
+
],
|
|
126
|
+
"grammars": [
|
|
127
|
+
{
|
|
128
|
+
"language": "agentlang",
|
|
129
|
+
"scopeName": "source.agentlang",
|
|
130
|
+
"path": "syntaxes/agentlang.tmLanguage.json"
|
|
131
|
+
}
|
|
132
|
+
]
|
|
133
|
+
},
|
|
134
|
+
"activationEvents": [
|
|
135
|
+
"onLanguage:agentlang"
|
|
136
|
+
],
|
|
137
|
+
"main": "./out/extension/main.cjs",
|
|
138
|
+
"types": "./out/index.d.ts",
|
|
139
|
+
"exports": {
|
|
140
|
+
".": {
|
|
141
|
+
"types": "./out/index.d.ts",
|
|
142
|
+
"import": "./out/extension/main.cjs",
|
|
143
|
+
"require": "./out/extension/main.cjs"
|
|
144
|
+
},
|
|
145
|
+
"./browser": {
|
|
146
|
+
"types": "./out/browser.d.ts",
|
|
147
|
+
"import": "./out/browser.js",
|
|
148
|
+
"default": "./out/browser.js"
|
|
149
|
+
},
|
|
150
|
+
"./src/*": {
|
|
151
|
+
"types": "./out/*.d.ts",
|
|
152
|
+
"import": "./out/*.js",
|
|
153
|
+
"require": "./out/*.js",
|
|
154
|
+
"default": "./out/*.js"
|
|
155
|
+
},
|
|
156
|
+
"./out/*": "./out/*"
|
|
157
|
+
},
|
|
158
|
+
"bin": {
|
|
159
|
+
"agentlang-cli": "./bin/cli.js"
|
|
160
|
+
},
|
|
161
|
+
"lint-staged": {
|
|
162
|
+
"*.{js,ts,tsx}": [
|
|
163
|
+
"eslint --fix --cache",
|
|
164
|
+
"prettier --write"
|
|
165
|
+
],
|
|
166
|
+
"*.{json,md,yml,yaml}": [
|
|
167
|
+
"prettier --write"
|
|
168
|
+
]
|
|
169
|
+
},
|
|
170
|
+
"scripts": {
|
|
171
|
+
"build": "tsc -b tsconfig.src.json && tsc -b tsconfig.declarations.json && node esbuild.mjs",
|
|
172
|
+
"build:ts": "tsc -b tsconfig.src.json",
|
|
173
|
+
"watch": "concurrently -n tsc,esbuild -c blue,yellow \"tsc -b tsconfig.src.json --watch\" \"node esbuild.mjs --watch\"",
|
|
174
|
+
"lint": "eslint . --ext .ts",
|
|
175
|
+
"lint:fix": "eslint . --ext .ts --fix",
|
|
176
|
+
"format": "prettier --write \"src/**/*.{js,ts,tsx,json,md}\"",
|
|
177
|
+
"format:check": "prettier --check \"src/**/*.{js,ts,tsx,json,md}\"",
|
|
178
|
+
"langium:generate": "langium generate",
|
|
179
|
+
"langium:generate:production": "langium generate --mode=production",
|
|
180
|
+
"langium:watch": "langium generate --watch",
|
|
181
|
+
"vscode:prepublish": "npm run build && npm run lint",
|
|
182
|
+
"dev": "vite",
|
|
183
|
+
"test": "vitest run",
|
|
184
|
+
"test:verbose": "VITEST_VERBOSE=true vitest run"
|
|
185
|
+
}
|
|
186
|
+
}
|
package/src/language/parser.ts
CHANGED
|
@@ -110,55 +110,89 @@ export async function parseWorkflow(workflowDef: string): Promise<WorkflowDefini
|
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
112
|
|
|
113
|
-
|
|
113
|
+
const ErrorIndicator = '<-- ERROR';
|
|
114
|
+
|
|
115
|
+
export function maybeGetValidationErrors(
|
|
116
|
+
document: LangiumDocument,
|
|
117
|
+
lines?: string[]
|
|
118
|
+
): string[] | undefined {
|
|
119
|
+
if (lines === undefined) {
|
|
120
|
+
lines = document.textDocument.getText().split('\n');
|
|
121
|
+
}
|
|
114
122
|
const validationErrors = (document.diagnostics ?? []).filter(e => e.severity === 1);
|
|
115
123
|
|
|
116
124
|
const sls = new Set<number>();
|
|
117
125
|
const scs = new Set<number>();
|
|
118
126
|
if (validationErrors.length > 0) {
|
|
119
|
-
const lineErrs = new Array<string>();
|
|
120
127
|
for (const validationError of validationErrors) {
|
|
121
128
|
if (
|
|
122
129
|
!sls.has(validationError.range.start.line) &&
|
|
123
130
|
!scs.has(validationError.range.start.character)
|
|
124
131
|
) {
|
|
125
|
-
const
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
)
|
|
132
|
+
const t = document.textDocument.getText(validationError.range);
|
|
133
|
+
const s = `(${validationError.range.start.line + 1}:${validationError.range.start.character + 1}) unexpected token(s) '${t}'`;
|
|
134
|
+
const ln = lines[validationError.range.start.line];
|
|
135
|
+
if (ln.indexOf(ErrorIndicator) > 0) {
|
|
136
|
+
lines[validationError.range.start.line] = `${ln}, ${s}`;
|
|
137
|
+
} else {
|
|
138
|
+
lines[validationError.range.start.line] = `${ln} ${ErrorIndicator} ${s}`;
|
|
139
|
+
}
|
|
129
140
|
sls.add(validationError.range.start.line);
|
|
130
141
|
scs.add(validationError.range.start.character);
|
|
131
142
|
}
|
|
132
143
|
}
|
|
133
|
-
|
|
134
|
-
return lineErrs;
|
|
144
|
+
return lines;
|
|
135
145
|
} else {
|
|
136
146
|
return undefined;
|
|
137
147
|
}
|
|
138
148
|
}
|
|
139
149
|
|
|
150
|
+
function trimErrorMessage(s: string): string {
|
|
151
|
+
const start = s.indexOf('Expecting:');
|
|
152
|
+
if (start >= 0) {
|
|
153
|
+
const end = s.indexOf('but found:');
|
|
154
|
+
if (end > 0) {
|
|
155
|
+
return `Expecting a valid token sequence, ${s.substring(end)}`;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
return s;
|
|
159
|
+
}
|
|
160
|
+
|
|
140
161
|
export function maybeRaiseParserErrors(document: LangiumDocument) {
|
|
162
|
+
const code = document.textDocument.getText();
|
|
163
|
+
const lines = code.split('\n');
|
|
164
|
+
let hasErrors = false;
|
|
165
|
+
const errLines = new Set<number>();
|
|
141
166
|
if (document.parseResult.lexerErrors.length > 0) {
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
}
|
|
147
|
-
.
|
|
148
|
-
|
|
167
|
+
document.parseResult.lexerErrors.forEach((err: any) => {
|
|
168
|
+
if (!errLines.has(err.line)) {
|
|
169
|
+
const errMsg = trimErrorMessage(err.message);
|
|
170
|
+
const s = `${ErrorIndicator} (${err.line}:${err.column}) ${errMsg}`;
|
|
171
|
+
lines[err.line - 1] = `${lines[err.line - 1]} ${s}`;
|
|
172
|
+
errLines.add(err.line);
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
hasErrors = true;
|
|
149
176
|
}
|
|
150
177
|
if (document.parseResult.parserErrors.length > 0) {
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
178
|
+
document.parseResult.parserErrors.forEach((err: any) => {
|
|
179
|
+
const errMsg = trimErrorMessage(err.message);
|
|
180
|
+
if (err.token.startLine && err.token.endLine) {
|
|
181
|
+
if (!errLines.has(err.token.startLine)) {
|
|
182
|
+
const s = `${ErrorIndicator} (${err.token.startLine}:${err.token.startColumn}) ${errMsg}`;
|
|
183
|
+
lines[err.token.endLine - 1] = `${lines[err.token.endLine - 1]} ${s}`;
|
|
184
|
+
lines.join('\n');
|
|
185
|
+
errLines.add(err.token.startLine);
|
|
186
|
+
}
|
|
187
|
+
} else {
|
|
188
|
+
lines.push(`ERROR: ${errMsg}`);
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
hasErrors = true;
|
|
158
192
|
}
|
|
159
|
-
const errs = maybeGetValidationErrors(document);
|
|
160
|
-
if (errs) {
|
|
161
|
-
throw new Error(
|
|
193
|
+
const errs = maybeGetValidationErrors(document, lines);
|
|
194
|
+
if (hasErrors || errs !== undefined) {
|
|
195
|
+
throw new Error(lines.join('\n'));
|
|
162
196
|
}
|
|
163
197
|
}
|
|
164
198
|
|
|
@@ -440,3 +474,12 @@ export async function introspectCase(caseStr: string): Promise<CasePattern> {
|
|
|
440
474
|
const ifPat = pat[0] as IfPattern;
|
|
441
475
|
return { condition: ifPat.condition, body: ifPat.body[0] };
|
|
442
476
|
}
|
|
477
|
+
|
|
478
|
+
export function canParse(s: string): boolean {
|
|
479
|
+
const ts = s.trim();
|
|
480
|
+
if (ts) {
|
|
481
|
+
const contents = ts.substring(1, ts.length - 1).trim();
|
|
482
|
+
return contents.length > 0;
|
|
483
|
+
}
|
|
484
|
+
return false;
|
|
485
|
+
}
|
package/src/runtime/defs.ts
CHANGED
|
@@ -134,6 +134,7 @@ export class ExecGraph {
|
|
|
134
134
|
private rootNodes: ExecGraphNode[];
|
|
135
135
|
private subGraphs: ExecGraph[];
|
|
136
136
|
private parentGraph: ExecGraph | undefined = undefined;
|
|
137
|
+
private eventName: string | undefined;
|
|
137
138
|
private activeModuleName: string | undefined;
|
|
138
139
|
private hasAgentsFlag: boolean = false;
|
|
139
140
|
private loopBody: boolean = false;
|
|
@@ -212,6 +213,17 @@ export class ExecGraph {
|
|
|
212
213
|
return this.parentGraph;
|
|
213
214
|
}
|
|
214
215
|
|
|
216
|
+
setEventName(eventName: string | undefined): ExecGraph {
|
|
217
|
+
if (eventName !== undefined) {
|
|
218
|
+
this.eventName = eventName;
|
|
219
|
+
}
|
|
220
|
+
return this;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
getEventName(): string | undefined {
|
|
224
|
+
return this.eventName;
|
|
225
|
+
}
|
|
226
|
+
|
|
215
227
|
setHasAgents(flag: boolean): ExecGraph {
|
|
216
228
|
this.hasAgentsFlag = flag;
|
|
217
229
|
if (this.parentGraph) {
|