agentlang 0.0.2

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 (240) hide show
  1. package/LICENSE +83 -0
  2. package/README.md +120 -0
  3. package/bin/cli.js +4 -0
  4. package/out/api/http.d.ts +3 -0
  5. package/out/api/http.d.ts.map +1 -0
  6. package/out/api/http.js +290 -0
  7. package/out/api/http.js.map +1 -0
  8. package/out/cli/cli-util.d.ts +7 -0
  9. package/out/cli/cli-util.d.ts.map +1 -0
  10. package/out/cli/cli-util.js +9 -0
  11. package/out/cli/cli-util.js.map +1 -0
  12. package/out/cli/docs.d.ts +2 -0
  13. package/out/cli/docs.d.ts.map +1 -0
  14. package/out/cli/docs.js +236 -0
  15. package/out/cli/docs.js.map +1 -0
  16. package/out/cli/main.d.ts +288 -0
  17. package/out/cli/main.d.ts.map +1 -0
  18. package/out/cli/main.js +119 -0
  19. package/out/cli/main.js.map +1 -0
  20. package/out/cli/openapi-docs.yml +695 -0
  21. package/out/extension/main.cjs +18093 -0
  22. package/out/extension/main.cjs.map +7 -0
  23. package/out/extension/main.d.ts +4 -0
  24. package/out/extension/main.d.ts.map +1 -0
  25. package/out/extension/main.js +42 -0
  26. package/out/extension/main.js.map +1 -0
  27. package/out/language/agentlang-module.d.ts +42 -0
  28. package/out/language/agentlang-module.d.ts.map +1 -0
  29. package/out/language/agentlang-module.js +42 -0
  30. package/out/language/agentlang-module.js.map +1 -0
  31. package/out/language/agentlang-validator.d.ts +15 -0
  32. package/out/language/agentlang-validator.d.ts.map +1 -0
  33. package/out/language/agentlang-validator.js +50 -0
  34. package/out/language/agentlang-validator.js.map +1 -0
  35. package/out/language/generated/ast.d.ts +491 -0
  36. package/out/language/generated/ast.d.ts.map +1 -0
  37. package/out/language/generated/ast.js +934 -0
  38. package/out/language/generated/ast.js.map +1 -0
  39. package/out/language/generated/grammar.d.ts +7 -0
  40. package/out/language/generated/grammar.d.ts.map +1 -0
  41. package/out/language/generated/grammar.js +4475 -0
  42. package/out/language/generated/grammar.js.map +1 -0
  43. package/out/language/generated/module.d.ts +14 -0
  44. package/out/language/generated/module.d.ts.map +1 -0
  45. package/out/language/generated/module.js +21 -0
  46. package/out/language/generated/module.js.map +1 -0
  47. package/out/language/main-browser.d.ts +2 -0
  48. package/out/language/main-browser.d.ts.map +1 -0
  49. package/out/language/main-browser.js +10 -0
  50. package/out/language/main-browser.js.map +1 -0
  51. package/out/language/main.cjs +36229 -0
  52. package/out/language/main.cjs.map +7 -0
  53. package/out/language/main.d.ts +2 -0
  54. package/out/language/main.d.ts.map +1 -0
  55. package/out/language/main.js +11 -0
  56. package/out/language/main.js.map +1 -0
  57. package/out/language/parser.d.ts +9 -0
  58. package/out/language/parser.d.ts.map +1 -0
  59. package/out/language/parser.js +273 -0
  60. package/out/language/parser.js.map +1 -0
  61. package/out/language/syntax.d.ts +155 -0
  62. package/out/language/syntax.d.ts.map +1 -0
  63. package/out/language/syntax.js +527 -0
  64. package/out/language/syntax.js.map +1 -0
  65. package/out/runtime/agents/common.d.ts +2 -0
  66. package/out/runtime/agents/common.d.ts.map +1 -0
  67. package/out/runtime/agents/common.js +178 -0
  68. package/out/runtime/agents/common.js.map +1 -0
  69. package/out/runtime/agents/impl/openai.d.ts +8 -0
  70. package/out/runtime/agents/impl/openai.d.ts.map +1 -0
  71. package/out/runtime/agents/impl/openai.js +15 -0
  72. package/out/runtime/agents/impl/openai.js.map +1 -0
  73. package/out/runtime/agents/provider.d.ts +21 -0
  74. package/out/runtime/agents/provider.d.ts.map +1 -0
  75. package/out/runtime/agents/provider.js +32 -0
  76. package/out/runtime/agents/provider.js.map +1 -0
  77. package/out/runtime/agents/registry.d.ts +2 -0
  78. package/out/runtime/agents/registry.d.ts.map +1 -0
  79. package/out/runtime/agents/registry.js +10 -0
  80. package/out/runtime/agents/registry.js.map +1 -0
  81. package/out/runtime/auth/cognito.d.ts +16 -0
  82. package/out/runtime/auth/cognito.d.ts.map +1 -0
  83. package/out/runtime/auth/cognito.js +186 -0
  84. package/out/runtime/auth/cognito.js.map +1 -0
  85. package/out/runtime/auth/defs.d.ts +11 -0
  86. package/out/runtime/auth/defs.d.ts.map +1 -0
  87. package/out/runtime/auth/defs.js +24 -0
  88. package/out/runtime/auth/defs.js.map +1 -0
  89. package/out/runtime/auth/interface.d.ts +22 -0
  90. package/out/runtime/auth/interface.d.ts.map +1 -0
  91. package/out/runtime/auth/interface.js +2 -0
  92. package/out/runtime/auth/interface.js.map +1 -0
  93. package/out/runtime/defs.js +24 -0
  94. package/out/runtime/defs.js.map +1 -0
  95. package/out/runtime/interpreter.d.ts +69 -0
  96. package/out/runtime/interpreter.d.ts.map +1 -0
  97. package/out/runtime/interpreter.js +1163 -0
  98. package/out/runtime/interpreter.js.map +1 -0
  99. package/out/runtime/loader.d.ts +25 -0
  100. package/out/runtime/loader.d.ts.map +1 -0
  101. package/out/runtime/loader.js +346 -0
  102. package/out/runtime/loader.js.map +1 -0
  103. package/out/runtime/logger.d.ts +2 -0
  104. package/out/runtime/logger.d.ts.map +1 -0
  105. package/out/runtime/logger.js +44 -0
  106. package/out/runtime/logger.js.map +1 -0
  107. package/out/runtime/module.d.ts +273 -0
  108. package/out/runtime/module.d.ts.map +1 -0
  109. package/out/runtime/module.js +1786 -0
  110. package/out/runtime/module.js.map +1 -0
  111. package/out/runtime/modules/ai.d.ts +26 -0
  112. package/out/runtime/modules/ai.d.ts.map +1 -0
  113. package/out/runtime/modules/ai.js +211 -0
  114. package/out/runtime/modules/ai.js.map +1 -0
  115. package/out/runtime/modules/auth.d.ts +39 -0
  116. package/out/runtime/modules/auth.d.ts.map +1 -0
  117. package/out/runtime/modules/auth.js +359 -0
  118. package/out/runtime/modules/auth.js.map +1 -0
  119. package/out/runtime/modules/core.d.ts +2 -0
  120. package/out/runtime/modules/core.d.ts.map +1 -0
  121. package/out/runtime/modules/core.js +67 -0
  122. package/out/runtime/modules/core.js.map +1 -0
  123. package/out/runtime/relgraph.d.ts +21 -0
  124. package/out/runtime/relgraph.d.ts.map +1 -0
  125. package/out/runtime/relgraph.js +156 -0
  126. package/out/runtime/relgraph.js.map +1 -0
  127. package/out/runtime/resolvers/interface.d.ts +59 -0
  128. package/out/runtime/resolvers/interface.d.ts.map +1 -0
  129. package/out/runtime/resolvers/interface.js +111 -0
  130. package/out/runtime/resolvers/interface.js.map +1 -0
  131. package/out/runtime/resolvers/registry.d.ts +8 -0
  132. package/out/runtime/resolvers/registry.d.ts.map +1 -0
  133. package/out/runtime/resolvers/registry.js +26 -0
  134. package/out/runtime/resolvers/registry.js.map +1 -0
  135. package/out/runtime/resolvers/sqldb/database.d.ts +50 -0
  136. package/out/runtime/resolvers/sqldb/database.d.ts.map +1 -0
  137. package/out/runtime/resolvers/sqldb/database.js +618 -0
  138. package/out/runtime/resolvers/sqldb/database.js.map +1 -0
  139. package/out/runtime/resolvers/sqldb/dbutil.d.ts +18 -0
  140. package/out/runtime/resolvers/sqldb/dbutil.d.ts.map +1 -0
  141. package/out/runtime/resolvers/sqldb/dbutil.js +221 -0
  142. package/out/runtime/resolvers/sqldb/dbutil.js.map +1 -0
  143. package/out/runtime/resolvers/sqldb/impl.d.ts +26 -0
  144. package/out/runtime/resolvers/sqldb/impl.d.ts.map +1 -0
  145. package/out/runtime/resolvers/sqldb/impl.js +300 -0
  146. package/out/runtime/resolvers/sqldb/impl.js.map +1 -0
  147. package/out/runtime/state.js +83 -0
  148. package/out/runtime/state.js.map +1 -0
  149. package/out/runtime/util.d.ts +43 -0
  150. package/out/runtime/util.d.ts.map +1 -0
  151. package/out/runtime/util.js +447 -0
  152. package/out/runtime/util.js.map +1 -0
  153. package/out/setupClassic.d.ts +98 -0
  154. package/out/setupClassic.d.ts.map +1 -0
  155. package/out/setupClassic.js +38 -0
  156. package/out/setupClassic.js.map +1 -0
  157. package/out/setupCommon.d.ts +2 -0
  158. package/out/setupCommon.d.ts.map +1 -0
  159. package/out/setupCommon.js +33 -0
  160. package/out/setupCommon.js.map +1 -0
  161. package/out/setupExtended.d.ts +40 -0
  162. package/out/setupExtended.d.ts.map +1 -0
  163. package/out/setupExtended.js +67 -0
  164. package/out/setupExtended.js.map +1 -0
  165. package/out/syntaxes/agentlang.monarch.d.ts +77 -0
  166. package/out/syntaxes/agentlang.monarch.d.ts.map +1 -0
  167. package/out/syntaxes/agentlang.monarch.js +31 -0
  168. package/out/syntaxes/agentlang.monarch.js.map +1 -0
  169. package/out/utils/fs/index.d.ts +14 -0
  170. package/out/utils/fs/index.d.ts.map +1 -0
  171. package/out/utils/fs/index.js +26 -0
  172. package/out/utils/fs/index.js.map +1 -0
  173. package/out/utils/fs/interfaces.d.ts +105 -0
  174. package/out/utils/fs/interfaces.d.ts.map +1 -0
  175. package/out/utils/fs/interfaces.js +5 -0
  176. package/out/utils/fs/interfaces.js.map +1 -0
  177. package/out/utils/fs/lightning-fs.d.ts +116 -0
  178. package/out/utils/fs/lightning-fs.d.ts.map +1 -0
  179. package/out/utils/fs/lightning-fs.js +243 -0
  180. package/out/utils/fs/lightning-fs.js.map +1 -0
  181. package/out/utils/fs/node-fs.d.ts +93 -0
  182. package/out/utils/fs/node-fs.d.ts.map +1 -0
  183. package/out/utils/fs/node-fs.js +169 -0
  184. package/out/utils/fs/node-fs.js.map +1 -0
  185. package/out/utils/fs-utils.d.ts +153 -0
  186. package/out/utils/fs-utils.d.ts.map +1 -0
  187. package/out/utils/fs-utils.js +271 -0
  188. package/out/utils/fs-utils.js.map +1 -0
  189. package/out/utils/runtime.d.ts +36 -0
  190. package/out/utils/runtime.d.ts.map +1 -0
  191. package/out/utils/runtime.js +39 -0
  192. package/out/utils/runtime.js.map +1 -0
  193. package/package.json +155 -0
  194. package/src/api/http.ts +361 -0
  195. package/src/cli/cli-util.ts +18 -0
  196. package/src/cli/main.ts +146 -0
  197. package/src/extension/main.ts +51 -0
  198. package/src/language/agentlang-module.ts +75 -0
  199. package/src/language/agentlang-validator.ts +60 -0
  200. package/src/language/agentlang.langium +178 -0
  201. package/src/language/generated/ast.ts +1698 -0
  202. package/src/language/generated/grammar.ts +4477 -0
  203. package/src/language/generated/module.ts +25 -0
  204. package/src/language/main-browser.ts +19 -0
  205. package/src/language/main.ts +13 -0
  206. package/src/language/parser.ts +329 -0
  207. package/src/language/syntax.ts +646 -0
  208. package/src/runtime/agents/common.ts +177 -0
  209. package/src/runtime/agents/impl/openai.ts +19 -0
  210. package/src/runtime/agents/provider.ts +58 -0
  211. package/src/runtime/agents/registry.ts +9 -0
  212. package/src/runtime/auth/cognito.ts +225 -0
  213. package/src/runtime/auth/defs.ts +33 -0
  214. package/src/runtime/auth/interface.ts +31 -0
  215. package/src/runtime/defs.ts +33 -0
  216. package/src/runtime/interpreter.ts +1352 -0
  217. package/src/runtime/loader.ts +450 -0
  218. package/src/runtime/logger.ts +51 -0
  219. package/src/runtime/module.ts +2188 -0
  220. package/src/runtime/modules/ai.ts +257 -0
  221. package/src/runtime/modules/auth.ts +489 -0
  222. package/src/runtime/modules/core.ts +95 -0
  223. package/src/runtime/relgraph.ts +195 -0
  224. package/src/runtime/resolvers/interface.ts +160 -0
  225. package/src/runtime/resolvers/registry.ts +30 -0
  226. package/src/runtime/resolvers/sqldb/database.ts +823 -0
  227. package/src/runtime/resolvers/sqldb/dbutil.ts +257 -0
  228. package/src/runtime/resolvers/sqldb/impl.ts +471 -0
  229. package/src/runtime/state.ts +87 -0
  230. package/src/runtime/util.ts +513 -0
  231. package/src/setupClassic.ts +43 -0
  232. package/src/setupCommon.ts +33 -0
  233. package/src/setupExtended.ts +79 -0
  234. package/src/syntaxes/agentlang.monarch.ts +31 -0
  235. package/src/utils/fs/index.ts +28 -0
  236. package/src/utils/fs/interfaces.ts +118 -0
  237. package/src/utils/fs/lightning-fs.ts +284 -0
  238. package/src/utils/fs/node-fs.ts +185 -0
  239. package/src/utils/fs-utils.ts +304 -0
  240. package/src/utils/runtime.ts +43 -0
@@ -0,0 +1,527 @@
1
+ var _a;
2
+ import { parseHelper } from 'langium/test';
3
+ import { escapeQueryName } from '../runtime/util.js';
4
+ import { createAgentlangServices } from './agentlang-module.js';
5
+ import { EmptyFileSystem } from 'langium';
6
+ export class BasePattern {
7
+ setAlias(alias) {
8
+ this.alias = alias;
9
+ return this;
10
+ }
11
+ unsetAlias() {
12
+ this.alias = undefined;
13
+ return this;
14
+ }
15
+ addAlias(alias) {
16
+ if (this.aliases == undefined) {
17
+ this.aliases = [];
18
+ }
19
+ this.aliases.push(alias);
20
+ }
21
+ setAliases(aliases) {
22
+ this.aliases = aliases;
23
+ }
24
+ addHandler(k, handler) {
25
+ if (this.handlers == undefined) {
26
+ this.handlers = new Map();
27
+ }
28
+ this.handlers.set(k, handler);
29
+ }
30
+ aliasesAsString() {
31
+ if (this.alias) {
32
+ return ` as ${this.alias}`;
33
+ }
34
+ else if (this.aliases) {
35
+ return ` as [${this.aliases.join(',')}]`;
36
+ }
37
+ else {
38
+ return undefined;
39
+ }
40
+ }
41
+ handlersAsString() {
42
+ if (this.handlers) {
43
+ let s = '{';
44
+ this.handlers.forEach((handler, k) => {
45
+ s = `${s} ${k} ${handler.toString()}\n`;
46
+ });
47
+ return s + '}';
48
+ }
49
+ else {
50
+ return undefined;
51
+ }
52
+ }
53
+ hintsAsString() {
54
+ const a = this.aliasesAsString();
55
+ const h = this.handlersAsString();
56
+ if (!a && !h)
57
+ return '';
58
+ if (a && !h)
59
+ return a;
60
+ if (!a && h)
61
+ return h;
62
+ return `${a}\n${h}`;
63
+ }
64
+ toString() {
65
+ return '';
66
+ }
67
+ }
68
+ export const EmptyBasePattern = new BasePattern();
69
+ export var LiteralPatternType;
70
+ (function (LiteralPatternType) {
71
+ LiteralPatternType[LiteralPatternType["ID"] = 0] = "ID";
72
+ LiteralPatternType[LiteralPatternType["NUMBER"] = 1] = "NUMBER";
73
+ LiteralPatternType[LiteralPatternType["BOOLEAN"] = 2] = "BOOLEAN";
74
+ LiteralPatternType[LiteralPatternType["STRING"] = 3] = "STRING";
75
+ LiteralPatternType[LiteralPatternType["REFERENCE"] = 4] = "REFERENCE";
76
+ LiteralPatternType[LiteralPatternType["MAP"] = 5] = "MAP";
77
+ LiteralPatternType[LiteralPatternType["ARRAY"] = 6] = "ARRAY";
78
+ })(LiteralPatternType || (LiteralPatternType = {}));
79
+ export class LiteralPattern extends BasePattern {
80
+ constructor(type, value) {
81
+ super();
82
+ this.type = type;
83
+ this.value = value;
84
+ }
85
+ static Id(value) {
86
+ return new LiteralPattern(LiteralPatternType.ID, value);
87
+ }
88
+ static Number(value) {
89
+ return new LiteralPattern(LiteralPatternType.NUMBER, value);
90
+ }
91
+ static Boolean(value) {
92
+ return new LiteralPattern(LiteralPatternType.BOOLEAN, value);
93
+ }
94
+ static String(value) {
95
+ return new LiteralPattern(LiteralPatternType.STRING, value);
96
+ }
97
+ static Reference(value) {
98
+ if (value.indexOf('.') < 0) {
99
+ throw new Error(`${value} does not look like a reference`);
100
+ }
101
+ return new LiteralPattern(LiteralPatternType.REFERENCE, value);
102
+ }
103
+ static Map(value) {
104
+ return new LiteralPattern(LiteralPatternType.MAP, value);
105
+ }
106
+ static Array(value) {
107
+ return new LiteralPattern(LiteralPatternType.ARRAY, value);
108
+ }
109
+ toString() {
110
+ let s = '';
111
+ switch (this.type) {
112
+ case LiteralPatternType.ARRAY: {
113
+ const a = this.value;
114
+ s = `[${a
115
+ .map((v) => {
116
+ return v.toString();
117
+ })
118
+ .join(', ')}]`;
119
+ break;
120
+ }
121
+ case LiteralPatternType.MAP: {
122
+ const m = this.value;
123
+ const arr = new Array();
124
+ m.forEach((v, k) => {
125
+ arr.push(`${k}: ${v.toString()}`);
126
+ });
127
+ s = `{${arr.join(', ')}}`;
128
+ break;
129
+ }
130
+ case LiteralPatternType.STRING: {
131
+ s = `"${this.value}"`;
132
+ break;
133
+ }
134
+ default:
135
+ s = this.value.toString();
136
+ }
137
+ return s.concat(this.hintsAsString());
138
+ }
139
+ }
140
+ LiteralPattern.EmptyArray = new LiteralPattern(LiteralPatternType.ARRAY, []);
141
+ export function isLiteralPattern(p) {
142
+ return p instanceof LiteralPattern;
143
+ }
144
+ export function isReferenceLiteral(p) {
145
+ return p.type == LiteralPatternType.REFERENCE;
146
+ }
147
+ export function referenceParts(p) {
148
+ if (isReferenceLiteral(p)) {
149
+ const s = p.value;
150
+ return s.split('.');
151
+ }
152
+ return undefined;
153
+ }
154
+ export function isStringLiteral(p) {
155
+ return p.type == LiteralPatternType.STRING;
156
+ }
157
+ export function isNumberLiteral(p) {
158
+ return p.type == LiteralPatternType.NUMBER;
159
+ }
160
+ export function isBooleanLiteral(p) {
161
+ return p.type == LiteralPatternType.BOOLEAN;
162
+ }
163
+ export function isIdentifierLiteral(p) {
164
+ return p.type == LiteralPatternType.ID;
165
+ }
166
+ export function isArrayLiteral(p) {
167
+ return p.type == LiteralPatternType.ARRAY;
168
+ }
169
+ export function isMapLiteral(p) {
170
+ return p.type == LiteralPatternType.MAP;
171
+ }
172
+ export class FunctionCallPattern extends BasePattern {
173
+ constructor(fnName, args) {
174
+ super();
175
+ this.fnName = fnName;
176
+ this.arguments = args;
177
+ }
178
+ toString() {
179
+ let s = '';
180
+ if (this.arguments.length > 0) {
181
+ const args = [];
182
+ this.arguments.forEach((bp) => {
183
+ args.push(bp.toString());
184
+ });
185
+ s = `${this.fnName}(${args.join(', ')})`;
186
+ }
187
+ else {
188
+ s = `${this.fnName}()`;
189
+ }
190
+ return s.concat(this.hintsAsString());
191
+ }
192
+ }
193
+ export function isFunctionCallPattern(p) {
194
+ return p instanceof FunctionCallPattern;
195
+ }
196
+ export class ExpressionPattern extends BasePattern {
197
+ constructor(expression) {
198
+ super();
199
+ this.expression = expression;
200
+ }
201
+ static async Validated(exprString) {
202
+ const result = await _a.parse(`module Temp workflow Test { if (${exprString}) {} }`);
203
+ if (result.parseResult.lexerErrors.length > 0) {
204
+ throw new Error(result.parseResult.lexerErrors.join('\n'));
205
+ }
206
+ if (result.parseResult.parserErrors.length > 0) {
207
+ throw new Error(result.parseResult.parserErrors.join('\n'));
208
+ }
209
+ return new _a(exprString);
210
+ }
211
+ toString() {
212
+ const s = this.expression.toString();
213
+ return s.concat(this.hintsAsString());
214
+ }
215
+ }
216
+ _a = ExpressionPattern;
217
+ ExpressionPattern.services = createAgentlangServices(EmptyFileSystem);
218
+ ExpressionPattern.doParse = parseHelper(_a.services.Agentlang);
219
+ ExpressionPattern.parse = (input) => _a.doParse(input, { validation: true });
220
+ export function isExpressionPattern(p) {
221
+ return p instanceof ExpressionPattern;
222
+ }
223
+ export class GroupExpressionPattern extends BasePattern {
224
+ constructor(expr) {
225
+ super();
226
+ this.expression = expr;
227
+ }
228
+ toString() {
229
+ return `(${this.expression.toString()})`;
230
+ }
231
+ }
232
+ export function isGroupExpressionPattern(p) {
233
+ return p instanceof GroupExpressionPattern;
234
+ }
235
+ export class NegExpressionPattern extends BasePattern {
236
+ constructor(expr) {
237
+ super();
238
+ this.expression = expr;
239
+ }
240
+ toString() {
241
+ return `-${this.expression.toString}`;
242
+ }
243
+ }
244
+ export class NotExpressionPattern extends BasePattern {
245
+ constructor(expr) {
246
+ super();
247
+ this.expression = expr;
248
+ }
249
+ toString() {
250
+ return `not(${this.expression.toString})`;
251
+ }
252
+ }
253
+ export function isNegExpressionPattern(p) {
254
+ return p instanceof NegExpressionPattern;
255
+ }
256
+ export function isNotExpressionPattern(p) {
257
+ return p instanceof NotExpressionPattern;
258
+ }
259
+ export class ReferencePattern extends BasePattern {
260
+ constructor(record, member) {
261
+ super();
262
+ this.record = record;
263
+ this.member = member;
264
+ }
265
+ toString() {
266
+ return `${this.record}.${this.member}`.concat(this.hintsAsString());
267
+ }
268
+ }
269
+ export function isReferencePattern(p) {
270
+ return p instanceof ReferencePattern;
271
+ }
272
+ export class CrudPattern extends BasePattern {
273
+ constructor(recordName) {
274
+ super();
275
+ this.isQuery = false;
276
+ this.isQueryUpdate = false;
277
+ this.isCreate = false;
278
+ this.recordName = recordName;
279
+ this.attributes = [];
280
+ if (recordName.endsWith('?')) {
281
+ this.isQuery = true;
282
+ }
283
+ else {
284
+ this.isCreate = true;
285
+ }
286
+ }
287
+ addAttribute(n, p, op) {
288
+ this.attributes.push({ name: n, op: op, value: p });
289
+ if (this.recordName.endsWith('?')) {
290
+ this.recordName = this.recordName.substring(0, this.recordName.length - 1);
291
+ }
292
+ this.flagType();
293
+ return this;
294
+ }
295
+ removeAttribute(n) {
296
+ const idx = this.attributes.findIndex((ap) => {
297
+ return n == ap.name;
298
+ });
299
+ if (idx >= 0) {
300
+ this.attributes.splice(idx, 1);
301
+ }
302
+ this.flagType();
303
+ return this;
304
+ }
305
+ flagType() {
306
+ let hasq = false;
307
+ let hasc = false;
308
+ for (let i = 0; i < this.attributes.length; ++i) {
309
+ if (hasq && hasc)
310
+ break;
311
+ const ap = this.attributes[i];
312
+ hasq = ap.name.endsWith('?');
313
+ if (!hasc)
314
+ hasc = !hasq;
315
+ }
316
+ if (hasq && hasc) {
317
+ this.isQueryUpdate = true;
318
+ }
319
+ else if (hasc) {
320
+ this.isCreate = true;
321
+ }
322
+ else {
323
+ this.isQuery = hasq;
324
+ }
325
+ }
326
+ addRelationship(n, p) {
327
+ if (this.relationships == undefined) {
328
+ this.relationships = new Map();
329
+ }
330
+ this.relationships.set(n, p);
331
+ return this;
332
+ }
333
+ removeRelationship(n) {
334
+ if (this.relationships) {
335
+ this.relationships.delete(n);
336
+ }
337
+ return this;
338
+ }
339
+ attributesAsString() {
340
+ const result = [];
341
+ this.attributes.forEach((ap) => {
342
+ result.push(`${ap.name}${ap.op ? ap.op : ''} ${ap.value.toString()}`);
343
+ });
344
+ const s = result.join(', ');
345
+ return `{${s}}`;
346
+ }
347
+ relationshipsAsString() {
348
+ if (this.relationships != undefined) {
349
+ const result = [];
350
+ this.relationships.forEach((p, n) => {
351
+ const ps = p instanceof Array ? `[${patternsToString(p, ',')}]` : p.toString();
352
+ result.push(`${n} ${ps}`);
353
+ });
354
+ return result.join(',');
355
+ }
356
+ else {
357
+ return '';
358
+ }
359
+ }
360
+ getNormalizedRecordName() {
361
+ return escapeQueryName(this.recordName);
362
+ }
363
+ toString() {
364
+ let s = `{${this.recordName} ${this.attributesAsString()}`;
365
+ const rs = this.relationshipsAsString();
366
+ if (rs.length > 0) {
367
+ s = s.concat(`,${rs}`);
368
+ }
369
+ return s.concat('}', this.hintsAsString());
370
+ }
371
+ }
372
+ export function isCrudPattern(p) {
373
+ return p instanceof CrudPattern;
374
+ }
375
+ export function isCreatePattern(p) {
376
+ return isCrudPattern(p) && p.isCreate;
377
+ }
378
+ export function isQueryPattern(p) {
379
+ return isCrudPattern(p) && p.isQuery;
380
+ }
381
+ export function isQueryUpdatePattern(p) {
382
+ return isCrudPattern(p) && p.isQueryUpdate;
383
+ }
384
+ export class ForEachPattern extends BasePattern {
385
+ constructor(variable, source) {
386
+ super();
387
+ this.variable = variable ? variable : 'X';
388
+ this.source = source ? source : LiteralPattern.EmptyArray;
389
+ this.body = [];
390
+ }
391
+ addPattern(p) {
392
+ this.body.push(p);
393
+ return this;
394
+ }
395
+ removePattern(index) {
396
+ this.body.splice(index, 1);
397
+ return this;
398
+ }
399
+ setPatternAt(p, index) {
400
+ this.body[index] = p;
401
+ return this;
402
+ }
403
+ removePatternAt(index) {
404
+ this.body.splice(index, 1);
405
+ return this;
406
+ }
407
+ getPatternAt(index) {
408
+ return this.body[index];
409
+ }
410
+ setVariable(s) {
411
+ this.variable = s;
412
+ return this;
413
+ }
414
+ setSourcePattern(p) {
415
+ this.source = p;
416
+ return this;
417
+ }
418
+ toString() {
419
+ if (this.source == undefined || this.variable == undefined) {
420
+ throw new Error('`for` requires variable and source-pattern');
421
+ }
422
+ let s = `for ${this.variable} in ${this.source.toString()}`;
423
+ s = s.concat(`{${patternsToString(this.body)}}`);
424
+ return s.concat(this.hintsAsString());
425
+ }
426
+ }
427
+ export function isForEachPattern(p) {
428
+ return p instanceof ForEachPattern;
429
+ }
430
+ export class IfPattern extends BasePattern {
431
+ constructor(condition) {
432
+ super();
433
+ this.condition = condition ? condition : IfPattern.True;
434
+ this.body = [];
435
+ }
436
+ addPattern(p) {
437
+ this.body.push(p);
438
+ return this;
439
+ }
440
+ removePattern(index) {
441
+ this.body.splice(index, 1);
442
+ return this;
443
+ }
444
+ setPatternAt(p, index) {
445
+ this.body[index] = p;
446
+ return this;
447
+ }
448
+ removePatternAt(index) {
449
+ this.body.splice(index, 1);
450
+ return this;
451
+ }
452
+ getPatternAt(index) {
453
+ return this.body[index];
454
+ }
455
+ setConditionPattern(p) {
456
+ this.condition = p;
457
+ return this;
458
+ }
459
+ setElse(elseBody) {
460
+ this.elseBody = elseBody ? elseBody : new Array();
461
+ return this;
462
+ }
463
+ removeElse() {
464
+ this.elseBody = undefined;
465
+ return this;
466
+ }
467
+ toString() {
468
+ let s = `if(${this.condition.toString()}) {`;
469
+ s = s.concat(patternsToString(this.body), '}');
470
+ if (this.elseBody) {
471
+ if (this.elseBody.length == 1 && this.elseBody[0] instanceof IfPattern) {
472
+ s = s.concat(` else ${this.elseBody[0].toString()}`);
473
+ }
474
+ else {
475
+ s = s.concat(` else {${patternsToString(this.elseBody)}}`);
476
+ }
477
+ }
478
+ return s.concat(this.hintsAsString());
479
+ }
480
+ }
481
+ IfPattern.True = new LiteralPattern(LiteralPatternType.BOOLEAN, true);
482
+ export function isIfPattern(p) {
483
+ return p instanceof IfPattern;
484
+ }
485
+ export function newCreatePattern(recName) {
486
+ const cp = new CrudPattern(recName);
487
+ cp.isCreate = true;
488
+ return cp;
489
+ }
490
+ export function newQueryPattern(recName, forQueryUpdate = false) {
491
+ recName = recName.charAt(recName.length - 1) == '?' ? recName : recName + '?';
492
+ const cp = new CrudPattern(recName);
493
+ if (forQueryUpdate) {
494
+ cp.isQueryUpdate = true;
495
+ }
496
+ else {
497
+ cp.isQuery = true;
498
+ }
499
+ return cp;
500
+ }
501
+ export function newQueryUpdatePattern(recName) {
502
+ return newQueryPattern(recName, true);
503
+ }
504
+ export class DeletePattern extends BasePattern {
505
+ constructor(pattern) {
506
+ super();
507
+ this.pattern = pattern;
508
+ }
509
+ toString() {
510
+ return `delete ${this.pattern.toString()}`.concat(this.hintsAsString());
511
+ }
512
+ }
513
+ export function isDeletePattern(p) {
514
+ return p instanceof DeletePattern;
515
+ }
516
+ export function newDeletePattern(recName) {
517
+ const qp = newQueryPattern(recName);
518
+ return new DeletePattern(qp);
519
+ }
520
+ function patternsToString(body, sep = ';\n') {
521
+ return body
522
+ .map((p) => {
523
+ return p.toString();
524
+ })
525
+ .join(sep);
526
+ }
527
+ //# sourceMappingURL=syntax.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syntax.js","sourceRoot":"","sources":["../../src/language/syntax.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const PlannerInstructions = "Agentlang is a very-high-level declarative language that makes it easy to define business applications as 'models'.\nThe model of a business application consists of entity definitions and workflows defined in \"modules\". \nA module will be encoded in a syntax inspired by JavaScript and JSON. Example of a simple module definition is,\n\nmodule Erp\n\nentity Employee {\n employeeId UUID @id @default(uuid()),\n firstName String,\n lastName String,\n salary Number,\n email Email @indexed\n}\n\nThe Empoyee entity is part of the \"Erp\" module and it has four attributes: employeeId, firstName, lastName, salary and email. The employeeId uniquely identifies an\nEmployee and it's automatically filled-in by the system by calling the \"uuid()\" function. (In the place of the keyword 'entity', the keyword 'record' may also be used.\nThe difference between an entity and a record is that, instances of an entity is persisted to the database, instances of records are not).\nWorkflows contains JSON \"patterns\" that perform CRUD operations on entities. For example, here's is a workflow that creates a new instance of the Employee entity:\n\nworkflow CreateEmployee {\n {Erp/Employee {firstName CreateEmployee.firstName,\n lastName CreateEmployee.lastName,\n salary CreateEmployee.salary,\n email CreateEmployee.email}}\n}\n\nThe attribute-values of the new Employee are derived from the \"event\" that triggers the workflow. In this example the event is called \"CreateEmployee\".\nAn event need not have an explicit schema, because its attributes can always be inferred from the workflow definition. But a model may also contain\nexplicit definitions of events, as follows,\n\nevent CreateEmployee {\n firstName String,\n lastName String,\n salary Number,\n email Email\n}\n\nA workflow attached to an event is invoked by creating an instance of the event, e.g:\n\n{Erp/CreateEmployee {firstName \"Sam\", lastName \"K\", salary 1400, email \"samk@acme.com\"}}\n\nThis means a workflow can be invoked from another workflow, simply by adding the event-creation as a pattern.\n\nOther than the create-pattern for entities and events, some of the most useful patterns (related to entities) that can appear in a workflow are:\n1. Query - e.g: '{Erp/Employee {employeeId? \"56392e13-0d9a-42f7-b556-0d7cd9468a24\"}}'. The attributes by which the query happens must end with a '?' character.\n To lookup all instances of an entity, use the syntax: '{EntityName?: {}}'.\n2. Update - e.g: '{Erp/Employee {employeeId? \"56392e13-0d9a-42f7-b556-0d7cd9468a24\", firstName \"Joe\"}}'. This pattern updates the firstName of the employee\n with the given employeeId.\n3. Upsert - e.g: upsert '{Erp/Employee {employeeId \"56392e13-0d9a-42f7-b556-0d7cd9468a24\", firstName \"Joe\"}}'. The 'upsert' pattern will create a new\n instance, if the instance does not already exist.\n4. Delete - e.g: delete '{Erp/Employee {employeeId? \"56392e13-0d9a-42f7-b556-0d7cd9468a24\"}}'\n\nThe default query operator is '=' (equals). So an expression like 'employeeId? \"56392e13-0d9a-42f7-b556-0d7cd9468a24\"' means,\n'where employeeId equals \"56392e13-0d9a-42f7-b556-0d7cd9468a24\"'. Other comparison operators has to be specified explicitly, as in\n'{age?< 50}' - which means 'where age less-than 50'. The comparison operators supported by a query pattern are:\n\n= - equals\n<> - not-equals\n< - less-than\n<= - less-than or equals\n> - greater-than\n>= - greater-than or equals\nin - membership check (argument must be an array)\nlike - string-ends-with?\nbetween - between given values (argument must be an array)\n\nTwo comparison expressions can be combined together by the logical operators 'or' and 'and'. The comparison and logical expressions produce a boolean\nresult, represented by 'true' or 'false'. A boolean value can be inversed by using the 'not' expression, e.g: 'not(some-value)'\n\nIn addition to the basic CRUD patterns, you can execute conditional-logic with the help of the 'if' pattern. An example follows,\n\nworkflow IncrementSalary {\n if (IncrementSalary.percentage > 10) {\n {Erp/Employee {employeeId IncrementSalary.employeeId, salary salary + salary * IncrementSalary.percentage}}\n } else {\n {Erp/Employee {employeeId IncrementSalary.employeeId, salary salary + 1500}}\n }\n}\n\nNote the value passed to the 'salary' attribute - it's an arithmetic expression. All normal arithmetic expressions are supported by workflow patterns.\n\nA successful query pattern will return an array of instances. The 'for' pattern can be used to iterate over an array. An example follows:\n\nworkflow NotifyEmployees {\n {Erp/Employee {salary?> 1000}} as employees;\n for emp in employees {\n {Erp/SendMail {email emp.email, body \"You are selected for an increment!\"}}\n }\n}\n\nAlso note the use of the 'as' keyword - this binds the result of a pattern to an 'alias'. Here the result of the query is bound to the\nalias named 'employees'. Any pattern can have an alias, including 'if' and 'for'. An alias can be used to refer to the attributes of the instance, \nvia the dot(.) notation. Aliases can also be used to destructure a query result - here's an example:\n\nworkflow FindFirstTwoEmployees {\n {Erp/Employee {salary?> 1000}} as [emp1, emp2];\n [emp1, emp2]\n}\n\nThis alias will bind the first two instances to 'a' and 'b' and the rest of the instances to an array named 'xs':\n\n{SomeEntity {id?> 1}} as [a, b, _, xs]\n\nExamples of binding aliases to 'if' and 'for':\n\nif (IncrementSalary.percentage > 10) {\n {Erp/Employee {employeeId IncrementSalary.employeeId, salary salary + salary * IncrementSalary.percentage}}\n} else {\n {Erp/Employee {employeeId IncrementSalary.employeeId, salary salary + 1500}}\n} as emp\n\nfor emp in employees {\n {Erp/SendMail {email emp.email, body \"You are selected for an increment!\"}}\n} as emails\n\nEntities in a module can be connected together in relationships. There are two types of relationships - 'contains' and 'between'.\n'Contains' relationship is for hierarchical data, as in a Library entity containing Books. 'Between' relationship is for graph-like data,\nlike two Profiles in a social media app is connected as friends. A 'between' relationship can be one of the following three types - 'one_one' (one-to-one),\n'one_many' (one-to-many) and 'many_many' (many-to-many), which is the default.\n\nThe following example shows how additional profile data for an employee could be defined as a new entity and attached to the Employee entity as a between-relationship:\n\nentity Profile {\n id UUID @id @default(uuid()),\n address String @optional,\n photo URL @optional,\n dateOfBirth DateTime @optional\n}\n\nrelationship EmployeeProfile between (Erp/Employee, Erp/Profile) @one_one\n\nThe '@one_one' annotation means exactly one Employee and Profile can be related to each other via 'EmployeeProfile'.\n\nHere's the 'CreateEmployee' workflow updated to create the Employee with the his/her Profile attached:\n\nworkflow CreateEmployee {\n {Erp/Employee {firstName CreateEmployee.firstName,\n lastName CreateEmployee.lastName,\n salary CreateEmployee.salary,\n email CreateEmployee.email},\n Erp/EmployeeProfile {Erp/Profile {address CreateEmployee.address,\n photo CreateEmployee.photo,\n dateOfBirth CreateEmployee.dateOfBirth}}}\n}\n\nThe following pattern can be user to query an Employee along with his Profile:\n\n{Erp/Employee {employeeId? \"56392e13-0d9a-42f7-b556-0d7cd9468a24\"},\n Erp/EmployeeProfile {Erp/Profile? {}}}\n\nAs an example of 'contains' relaionships, consider modelling task-assignments for an Employee as folllows:\n\nentity TaskAssignment {\n id UUID @id @default(uuid()),\n description String,\n assignmentDate DateTime @default(now())\n}\n\nrelationship EmployeeTaskAssignment contains (Erp/Employee, Erp/TaskAssignment)\n\nThe following workflow shows how to assign a new task to an Employee:\n\nworkflow AssignNewTask {\n {Erp/Employee {employeeId? AssignNewTask.employeeId},\n Erp/EmployeeTaskAssignment {Erp/TaskAssignment {description AssignNewTask.description}}}\n}\n\nThe following workflow queries an Employee along with all his tasks:\n\nworkflow GetEmployeeTaskAssignments {\n {Erp/Employee {employeeId? GetEmployeeTaskAssignments.employeeId},\n Erp/EmployeeTaskAssignment {Erp/TaskAssignment? {}}}\n}\n\nNow consider the following module definition and generate appropriate patterns in response to the user instructions. You must return only valid patterns or workflows,\nno other descriptive text or comments are needed.\n";
2
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/runtime/agents/common.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,srRAgL/B,CAAC"}