agentlang 0.9.10 → 0.9.11

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 (57) hide show
  1. package/out/extension/main.cjs +38 -38
  2. package/out/extension/main.cjs.map +2 -2
  3. package/out/language/generated/ast.d.ts +1 -1
  4. package/out/language/generated/ast.js +1 -1
  5. package/out/language/generated/grammar.d.ts +1 -1
  6. package/out/language/generated/grammar.js +1 -1
  7. package/out/language/generated/module.d.ts +1 -1
  8. package/out/language/generated/module.js +1 -1
  9. package/out/language/main.cjs +850 -2388
  10. package/out/language/main.cjs.map +4 -4
  11. package/out/runtime/agents/common.d.ts +3 -1
  12. package/out/runtime/agents/common.d.ts.map +1 -1
  13. package/out/runtime/agents/common.js +35 -31
  14. package/out/runtime/agents/common.js.map +1 -1
  15. package/out/runtime/docs.d.ts +1 -0
  16. package/out/runtime/docs.d.ts.map +1 -1
  17. package/out/runtime/docs.js +16 -1
  18. package/out/runtime/docs.js.map +1 -1
  19. package/out/runtime/interpreter.d.ts +1 -0
  20. package/out/runtime/interpreter.d.ts.map +1 -1
  21. package/out/runtime/interpreter.js +41 -8
  22. package/out/runtime/interpreter.js.map +1 -1
  23. package/out/runtime/jsmodules.d.ts +2 -1
  24. package/out/runtime/jsmodules.d.ts.map +1 -1
  25. package/out/runtime/jsmodules.js +2 -1
  26. package/out/runtime/jsmodules.js.map +1 -1
  27. package/out/runtime/loader.d.ts.map +1 -1
  28. package/out/runtime/loader.js +3 -2
  29. package/out/runtime/loader.js.map +1 -1
  30. package/out/runtime/module.d.ts +1 -0
  31. package/out/runtime/module.d.ts.map +1 -1
  32. package/out/runtime/module.js +3 -0
  33. package/out/runtime/module.js.map +1 -1
  34. package/out/runtime/modules/ai.d.ts +11 -0
  35. package/out/runtime/modules/ai.d.ts.map +1 -1
  36. package/out/runtime/modules/ai.js +163 -10
  37. package/out/runtime/modules/ai.js.map +1 -1
  38. package/out/runtime/modules/core.d.ts.map +1 -1
  39. package/out/runtime/modules/core.js +7 -1
  40. package/out/runtime/modules/core.js.map +1 -1
  41. package/out/runtime/services/documentFetcher.d.ts +22 -14
  42. package/out/runtime/services/documentFetcher.d.ts.map +1 -1
  43. package/out/runtime/services/documentFetcher.js +348 -153
  44. package/out/runtime/services/documentFetcher.js.map +1 -1
  45. package/package.json +1 -1
  46. package/src/language/generated/ast.ts +1 -1
  47. package/src/language/generated/grammar.ts +1 -1
  48. package/src/language/generated/module.ts +1 -1
  49. package/src/runtime/agents/common.ts +37 -31
  50. package/src/runtime/docs.ts +17 -1
  51. package/src/runtime/interpreter.ts +44 -6
  52. package/src/runtime/jsmodules.ts +3 -1
  53. package/src/runtime/loader.ts +3 -2
  54. package/src/runtime/module.ts +4 -0
  55. package/src/runtime/modules/ai.ts +194 -9
  56. package/src/runtime/modules/core.ts +7 -1
  57. package/src/runtime/services/documentFetcher.ts +372 -149
@@ -1 +1 @@
1
- {"version":3,"file":"documentFetcher.js","sourceRoot":"","sources":["../../../src/runtime/services/documentFetcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"documentFetcher.js","sourceRoot":"","sources":["../../../src/runtime/services/documentFetcher.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "agentlang",
3
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.9.10",
4
+ "version": "0.9.11",
5
5
  "license": "Sustainable Use License",
6
6
  "author": "agentlang-ai",
7
7
  "homepage": "https://github.com/agentlang-ai/agentlang#readme",
@@ -1,5 +1,5 @@
1
1
  /******************************************************************************
2
- * This file was generated by langium-cli 4.1.0.
2
+ * This file was generated by langium-cli 4.2.0.
3
3
  * DO NOT EDIT MANUALLY!
4
4
  ******************************************************************************/
5
5
 
@@ -1,5 +1,5 @@
1
1
  /******************************************************************************
2
- * This file was generated by langium-cli 4.1.0.
2
+ * This file was generated by langium-cli 4.2.0.
3
3
  * DO NOT EDIT MANUALLY!
4
4
  ******************************************************************************/
5
5
 
@@ -1,5 +1,5 @@
1
1
  /******************************************************************************
2
- * This file was generated by langium-cli 4.1.0.
2
+ * This file was generated by langium-cli 4.2.0.
3
3
  * DO NOT EDIT MANUALLY!
4
4
  ******************************************************************************/
5
5
 
@@ -1,7 +1,7 @@
1
1
  import { IfPattern, LiteralPattern } from '../../language/syntax.js';
2
2
  import { trimQuotes } from '../util.js';
3
3
 
4
- export const PlannerInstructions = `Agentlang is a very-high-level declarative language that makes it easy to define business applications as 'models'.
4
+ export const PlannerDataModelInstructions = `Agentlang is a very-high-level declarative language that makes it easy to define business applications as 'models'.
5
5
  The model of a business application consists of entity definitions and workflows defined in "modules".
6
6
  A module is be encoded in a syntax inspired by JavaScript and JSON. Example of a simple module follows:
7
7
 
@@ -29,6 +29,36 @@ record EmailMessage {
29
29
  body String
30
30
  }
31
31
 
32
+ Entities in a module can be connected together in relationships. There are two types of relationships - 'contains' and 'between'.
33
+ 'Contains' relationship is for hierarchical data, as in a Library entity containing Books. 'Between' relationship is for graph-like data,
34
+ like 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),
35
+ 'one_many' (one-to-many) and 'many_many' (many-to-many), which is the default.
36
+
37
+ The 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:
38
+
39
+ entity Profile {
40
+ id UUID @id @default(uuid()),
41
+ address String @optional,
42
+ photo URL @optional,
43
+ dateOfBirth DateTime @optional
44
+ }
45
+
46
+ relationship EmployeeProfile between (Erp/Employee, Erp/Profile) @one_one
47
+
48
+ The '@one_one' annotation means exactly one Employee and Profile can be related to each other via 'EmployeeProfile'.
49
+
50
+ As an example of 'contains' relaionships, consider modelling task-assignments for an Employee as folllows:
51
+
52
+ entity TaskAssignment {
53
+ id UUID @id @default(uuid()),
54
+ description String,
55
+ assignmentDate DateTime @default(now())
56
+ }
57
+
58
+ relationship EmployeeTaskAssignment contains (Erp/Employee, Erp/TaskAssignment)
59
+ `;
60
+
61
+ export const PlannerWorkflowInstructions = `
32
62
  Another major construct in Agentlang is the 'workflow'. Workflows contains JSON "patterns" that perform CRUD operations on entities.
33
63
  For example, here's is a workflow that creates a new instance of the Employee entity:
34
64
 
@@ -179,25 +209,7 @@ A pattern may execute asynchronously and its eventual result can be handled by p
179
209
  If you are instructed that a particular event will be called asynchronously, always provide the patterns that follows in its '@then' clause. You must add the
180
210
  '@then' clause only if an event's documentation or instruction explicitly requires to do so.
181
211
 
182
- Entities in a module can be connected together in relationships. There are two types of relationships - 'contains' and 'between'.
183
- 'Contains' relationship is for hierarchical data, as in a Library entity containing Books. 'Between' relationship is for graph-like data,
184
- like 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),
185
- 'one_many' (one-to-many) and 'many_many' (many-to-many), which is the default.
186
-
187
- The 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:
188
-
189
- entity Profile {
190
- id UUID @id @default(uuid()),
191
- address String @optional,
192
- photo URL @optional,
193
- dateOfBirth DateTime @optional
194
- }
195
-
196
- relationship EmployeeProfile between (Erp/Employee, Erp/Profile) @one_one
197
-
198
- The '@one_one' annotation means exactly one Employee and Profile can be related to each other via 'EmployeeProfile'.
199
-
200
- Here's the 'CreateEmployee' workflow updated to create the Employee with the his/her Profile attached:
212
+ Earlier we discussed teh concept of 'between' relationship. Here's the 'CreateEmployee' workflow updated to create the Employee with the his/her Profile attached:
201
213
 
202
214
  workflow CreateEmployee {
203
215
  {Erp/Employee {firstName CreateEmployee.firstName,
@@ -214,17 +226,7 @@ The following pattern can be user to query an Employee along with his Profile:
214
226
  {Erp/Employee {employeeId? "56392e13-0d9a-42f7-b556-0d7cd9468a24"},
215
227
  Erp/EmployeeProfile {Erp/Profile? {}}}
216
228
 
217
- As an example of 'contains' relaionships, consider modelling task-assignments for an Employee as folllows:
218
-
219
- entity TaskAssignment {
220
- id UUID @id @default(uuid()),
221
- description String,
222
- assignmentDate DateTime @default(now())
223
- }
224
-
225
- relationship EmployeeTaskAssignment contains (Erp/Employee, Erp/TaskAssignment)
226
-
227
- The following workflow shows how to assign a new task to an Employee:
229
+ We also discussed the concept of 'contains' relationship and showed an example of modelling employee-task-assignment using it. The following workflow shows how to assign a new task to an Employee:
228
230
 
229
231
  workflow AssignNewTask {
230
232
  {Erp/Employee {employeeId? AssignNewTask.employeeId},
@@ -264,6 +266,10 @@ As an example, if the user request is "send an email to employee 101 with this m
264
266
  {email {to emp.email, body "please call me as soon as possible"}}]
265
267
 
266
268
  You MUST separate each pattern in the array with a semi-colon (;) and never use a comma (,) for this purpose.
269
+ `;
270
+
271
+ export const PlannerInstructions = `${PlannerDataModelInstructions}
272
+ ${PlannerWorkflowInstructions}
267
273
 
268
274
  Now consider the following module definition and generate appropriate patterns in response to the user instructions. You must return only valid patterns or workflows,
269
275
  no other descriptive text or comments are needed.
@@ -44,7 +44,7 @@ async function getPDFParse() {
44
44
  return PDFParse;
45
45
  }
46
46
 
47
- async function parsePdfBuffer(buffer: Uint8Array): Promise<string> {
47
+ export async function parsePdfBuffer(buffer: Uint8Array): Promise<string> {
48
48
  try {
49
49
  const PDFParseClass = await getPDFParse();
50
50
  const parser = new PDFParseClass({
@@ -166,3 +166,19 @@ async function fetchTextFile(path: string): Promise<string> {
166
166
  registerDocFetcher('http', httpFetcher);
167
167
  registerDocFetcher('https', httpFetcher);
168
168
  registerDocFetcher('file', fetchFile);
169
+
170
+ async function documentServiceFetcher(url: string): Promise<string | undefined> {
171
+ try {
172
+ const { documentFetcher } = await import('./services/documentFetcher.js');
173
+ const result = await documentFetcher.fetchDocument({
174
+ title: 'temp', // Title will be updated by handleDocEvent
175
+ url: url,
176
+ });
177
+ return result?.content;
178
+ } catch (error: any) {
179
+ logger.error(`Failed to fetch from document service ${url}: ${error.message}`);
180
+ return undefined;
181
+ }
182
+ }
183
+
184
+ registerDocFetcher('document-service', documentServiceFetcher);
@@ -87,6 +87,7 @@ import {
87
87
  AgentInstance,
88
88
  findAgentByName,
89
89
  normalizeGeneratedCode,
90
+ saveFlowStepResult,
90
91
  } from './modules/ai.js';
91
92
  import { logger } from './logger.js';
92
93
  import {
@@ -103,7 +104,7 @@ import {
103
104
  flushMonitoringData,
104
105
  triggerTimer,
105
106
  } from './modules/core.js';
106
- import { invokeModuleFn } from './jsmodules.js';
107
+ import { getModuleDef, invokeModuleFn } from './jsmodules.js';
107
108
  import { invokeOpenApiEvent, isOpenApiEventInstance } from './openapi.js';
108
109
  import { fetchDoc } from './docs.js';
109
110
  import { FlowSpec, FlowStep, getAgentFlow } from './agents/flows.js';
@@ -442,6 +443,11 @@ export class Environment extends Instance {
442
443
  }
443
444
  }
444
445
 
446
+ softSuspend(): string {
447
+ this.suspensionId = this.preGeneratedSuspensionId;
448
+ return this.suspensionId;
449
+ }
450
+
445
451
  releaseSuspension(): Environment {
446
452
  this.suspensionId = undefined;
447
453
  this.preGeneratedSuspensionId = crypto.randomUUID();
@@ -1771,6 +1777,20 @@ async function handleDocEvent(inst: Instance, env: Environment): Promise<void> {
1771
1777
  return;
1772
1778
  }
1773
1779
 
1780
+ if (typeof url === 'string' && url.startsWith('document-service://')) {
1781
+ const title = inst.lookup('title');
1782
+ const retrievalConfig = inst.lookup('retrievalConfig');
1783
+ const embeddingConfig = inst.lookup('embeddingConfig');
1784
+ const { documentFetcher } = await import('./services/documentFetcher.js');
1785
+ await documentFetcher.fetchDocument({
1786
+ title,
1787
+ url,
1788
+ retrievalConfig,
1789
+ embeddingConfig,
1790
+ });
1791
+ return;
1792
+ }
1793
+
1774
1794
  const s = await fetchDoc(url);
1775
1795
  if (s) {
1776
1796
  const title = inst.lookup('title');
@@ -2017,7 +2037,7 @@ async function agentInvoke(agent: AgentInstance, msg: string, env: Environment):
2017
2037
  isWf = true;
2018
2038
  }
2019
2039
  if (isWf) {
2020
- const wf = await parseWorkflow(rs);
2040
+ const wf = await parseWorkflow(normalizeGeneratedCode(rs));
2021
2041
  if (stmtsExec) {
2022
2042
  await stmtsExec(wf.statements, env);
2023
2043
  } else {
@@ -2029,7 +2049,9 @@ async function agentInvoke(agent: AgentInstance, msg: string, env: Environment):
2029
2049
  const r = await stmtsExec([stmt], env);
2030
2050
  env.setLastResult(r);
2031
2051
  } else {
2032
- env.setLastResult(await parseAndEvaluateStatement(rs, undefined, env));
2052
+ env.setLastResult(
2053
+ await parseAndEvaluateStatement(normalizeGeneratedCode(rs), undefined, env)
2054
+ );
2033
2055
  }
2034
2056
  }
2035
2057
  agent.maybeAddScratchData(env);
@@ -2158,7 +2180,7 @@ export async function restartFlow(
2158
2180
  const rootAgent: AgentInstance = await findAgentByName(agentName, env);
2159
2181
  const flow = getAgentFlow(agentName, rootAgent.moduleName);
2160
2182
  if (flow) {
2161
- const newCtx = `${ctx}\n${step} --> ${userData}\n`;
2183
+ const newCtx = `${ctx}\nRestart the flow at ${step} using the following user-input as additional guidance:\n${userData}\n`;
2162
2184
  env.setScratchPad(JSON.parse(spad));
2163
2185
  await iterateOnFlow(flow, rootAgent, newCtx, env);
2164
2186
  }
@@ -2186,7 +2208,8 @@ async function iterateOnFlow(
2186
2208
  let needAgentProcessing = preprocResult.needAgentProcessing;
2187
2209
  let context = initContext;
2188
2210
  let stepc = 0;
2189
- const iterId = crypto.randomUUID();
2211
+ const chatId = env.getActiveEventInstance()?.lookup('chatId');
2212
+ const iterId = chatId || crypto.randomUUID();
2190
2213
  console.debug(`Starting iteration ${iterId} on flow: ${flow}`);
2191
2214
  const executedSteps = new Set<string>();
2192
2215
  const monitoringEnabled = isMonitoringEnabled();
@@ -2234,6 +2257,12 @@ async function iterateOnFlow(
2234
2257
  `\n----> Completed execution of step ${step}, iteration id ${iterId} with result:\n${rs}`
2235
2258
  );
2236
2259
  context = `${context}\n${step} --> ${rs}\n`;
2260
+ if (chatId) {
2261
+ const suspEnv = new Environment(env.name, env);
2262
+ suspEnv.softSuspend();
2263
+ await saveFlowSuspension(rootAgent, context, step, suspEnv);
2264
+ await saveFlowStepResult(chatId, step, rs, suspEnv.getSuspensionId(), env);
2265
+ }
2237
2266
  if (isfxc) {
2238
2267
  preprocResult = await preprocessStep(rs, rootModuleName, env);
2239
2268
  } else {
@@ -2481,10 +2510,19 @@ async function followReference(env: Environment, s: string): Promise<Result> {
2481
2510
  for (let i = 0; i < refs.length; ++i) {
2482
2511
  const r: string = refs[i];
2483
2512
  const v: Result | undefined = await getRef(r, src, env);
2484
- if (v === undefined) return EmptyResult;
2513
+ if (v === undefined || v === null) {
2514
+ result = EmptyResult;
2515
+ break;
2516
+ }
2485
2517
  result = v;
2486
2518
  src = result;
2487
2519
  }
2520
+ if (result === EmptyResult) {
2521
+ result = getModuleDef(s);
2522
+ if (result === undefined) {
2523
+ result = EmptyResult;
2524
+ }
2525
+ }
2488
2526
  return result;
2489
2527
  }
2490
2528
 
@@ -303,7 +303,7 @@ export async function invokeModuleFn(
303
303
  }
304
304
  }
305
305
 
306
- export function getModuleFn(fqFnName: string): Function | undefined {
306
+ export function getModuleDef(fqFnName: string): any {
307
307
  const refs: string[] = splitRefs(fqFnName);
308
308
  const m = importedModules.get(refs[0]);
309
309
  if (m !== undefined) {
@@ -311,4 +311,6 @@ export function getModuleFn(fqFnName: string): Function | undefined {
311
311
  } else return undefined;
312
312
  }
313
313
 
314
+ export const getModuleFn = getModuleDef;
315
+
314
316
  setModuleFnFetcher(getModuleFn);
@@ -819,7 +819,8 @@ async function addAgentDefinition(
819
819
  }
820
820
  const ov = v;
821
821
  if (apdef.value.id || apdef.value.ref || apdef.value.array) {
822
- v = `"${v}"`;
822
+ if (!(apdef.name === 'instruction' || apdef.name === 'role' || apdef.name === 'llm'))
823
+ v = `"${v}"`;
823
824
  } else if (apdef.value.str) {
824
825
  v = `"${escapeSpecialChars(v)}"`;
825
826
  }
@@ -837,7 +838,7 @@ async function addAgentDefinition(
837
838
  // Create a copy of attrsStrs for the database operation
838
839
  const dbAttrsStrs = [...attrsStrs];
839
840
  // Only add llm to database attributes if we have one
840
- if (llmName) {
841
+ if (llmName && createDefaultLLM) {
841
842
  dbAttrsStrs.push(`llm "${llmName}"`);
842
843
  }
843
844
 
@@ -3731,6 +3731,10 @@ export function newInstanceAttributes(): InstanceAttributes {
3731
3731
  return new Map<string, any>();
3732
3732
  }
3733
3733
 
3734
+ export function objectToInstanceAttributes(obj: any): InstanceAttributes {
3735
+ return new Map(Object.entries(obj));
3736
+ }
3737
+
3734
3738
  const EmptyInstanceAttributes: InstanceAttributes = newInstanceAttributes();
3735
3739
 
3736
3740
  export class Instance {
@@ -1,4 +1,5 @@
1
1
  import {
2
+ DefaultModuleName,
2
3
  escapeSpecialChars,
3
4
  isFqName,
4
5
  isString,
@@ -29,6 +30,7 @@ import {
29
30
  isModule,
30
31
  makeInstance,
31
32
  newInstanceAttributes,
33
+ objectToInstanceAttributes,
32
34
  Record,
33
35
  resolveDocumentAliases,
34
36
  Retry,
@@ -67,6 +69,7 @@ import Handlebars from 'handlebars';
67
69
  import { Statement } from '../../language/generated/ast.js';
68
70
  import { isMonitoringEnabled, TtlCache } from '../state.js';
69
71
  import { isNodeEnv } from '../../utils/runtime.js';
72
+ import { getFileSystem } from '../../utils/fs-utils.js';
70
73
 
71
74
  export const CoreAIModuleName = makeCoreModuleName('ai');
72
75
  export const AgentEntityName = 'Agent';
@@ -185,6 +188,27 @@ entity AgentLearningResult {
185
188
  workflow agentLearning {
186
189
  await ai.processAgentLearning(agentLearning.agentModuleName, agentLearning.agentName, agentLearning.instruction)
187
190
  }
191
+
192
+ entity AgentFlowStep {
193
+ id UUID @id @default(uuid()),
194
+ chatId String @indexed,
195
+ step String @indexed,
196
+ result String,
197
+ suspensionId String
198
+ }
199
+
200
+ @public event restartFlow {
201
+ chatId String,
202
+ step String,
203
+ userInput String
204
+ }
205
+
206
+ workflow restartFlow {
207
+ await ai.loadFlowStep(restartFlow.chatId, restartFlow.step) @as fs;
208
+ if (fs) {
209
+ {${DefaultModuleName}/restartSuspension {id fs.suspensionId, data restartFlow.userInput}}
210
+ }
211
+ }
188
212
  `;
189
213
 
190
214
  enum AgentCacheType {
@@ -614,7 +638,7 @@ export class AgentInstance {
614
638
  Only return a pure JSON object with no extra text, annotations etc.`;
615
639
  }
616
640
  const spad = env.getScratchPad();
617
- if (spad !== undefined) {
641
+ if (spad !== undefined && Object.keys(spad).length > 0) {
618
642
  if (finalInstruction.indexOf('{{') > 0) {
619
643
  return AgentInstance.maybeRewriteTemplatePatterns(spad, finalInstruction, env);
620
644
  } else {
@@ -1274,17 +1298,38 @@ function processScenarioResponse(resp: string): string {
1274
1298
  return resp;
1275
1299
  }
1276
1300
 
1301
+ type ExtractedCode = {
1302
+ language: string | null;
1303
+ code: string;
1304
+ };
1305
+
1306
+ export function extractFencedCodeBlocks(markdown: string): ExtractedCode[] {
1307
+ const codeBlockRegex = /```(\w+)?\n([\s\S]*?)```/g;
1308
+ const blocks: ExtractedCode[] = [];
1309
+ let match;
1310
+
1311
+ while ((match = codeBlockRegex.exec(markdown)) !== null) {
1312
+ blocks.push({
1313
+ language: match[1] || null,
1314
+ code: match[2],
1315
+ });
1316
+ }
1317
+
1318
+ return blocks;
1319
+ }
1320
+
1277
1321
  export function normalizeGeneratedCode(code: string | undefined): string {
1278
1322
  if (code !== undefined) {
1279
- let s = code.trim();
1280
- if (s.startsWith('```')) {
1281
- const idx = s.indexOf('\n');
1282
- s = s.substring(idx).trimStart();
1283
- }
1284
- if (s.endsWith('```')) {
1285
- s = s.substring(0, s.length - 3);
1323
+ const blocks = extractFencedCodeBlocks(code);
1324
+ if (blocks.length > 0) {
1325
+ return blocks
1326
+ .map((v: ExtractedCode) => {
1327
+ return v.code;
1328
+ })
1329
+ .join('\n\n');
1330
+ } else {
1331
+ return code;
1286
1332
  }
1287
- return s;
1288
1333
  } else {
1289
1334
  return '';
1290
1335
  }
@@ -1385,6 +1430,146 @@ export async function processAgentLearning(
1385
1430
  return { agentLearning: { result: learning } };
1386
1431
  }
1387
1432
 
1433
+ const LocalAgentgFlow = true;
1434
+ const LocalFlowStepsRootDirName = 'flows';
1435
+ const AgentFlowStep = 'AgentFlowStep';
1436
+
1437
+ export async function saveFlowStepResultLocally(
1438
+ chatId: string,
1439
+ step: string,
1440
+ result: string,
1441
+ suspensionId: string
1442
+ ): Promise<Instance | undefined> {
1443
+ const fs = await getFileSystem();
1444
+ const attrs = newInstanceAttributes()
1445
+ .set('chatId', chatId)
1446
+ .set('step', step)
1447
+ .set('result', result)
1448
+ .set('suspensionId', suspensionId);
1449
+ const inst = makeInstance(CoreAIModuleName, AgentFlowStep, attrs);
1450
+ const rootDirName = LocalFlowStepsRootDirName;
1451
+ if (!(await fs.exists(rootDirName))) {
1452
+ await fs.mkdir(rootDirName);
1453
+ }
1454
+ const dirName = `${rootDirName}/${chatId}`;
1455
+ if (!(await fs.exists(dirName))) {
1456
+ await fs.mkdir(dirName);
1457
+ }
1458
+ const fileName = `${dirName}/${step}`;
1459
+ if (await fs.exists(fileName)) {
1460
+ await fs.unlink(fileName);
1461
+ }
1462
+ await fs.writeFile(fileName, JSON.stringify(inst.attributesAsObject(true)));
1463
+ return inst;
1464
+ }
1465
+
1466
+ export async function saveFlowStepResult(
1467
+ chatId: string,
1468
+ step: string,
1469
+ result: string,
1470
+ suspensionId: string,
1471
+ env: Environment
1472
+ ): Promise<Instance | undefined> {
1473
+ if (LocalAgentgFlow) {
1474
+ return await saveFlowStepResultLocally(chatId, step, result, suspensionId);
1475
+ } else {
1476
+ const t = `${CoreAIModuleName}/${AgentFlowStep}`;
1477
+ try {
1478
+ await parseAndEvaluateStatement(
1479
+ `purge {${t} {chatId? "${chatId}", step? "${step}"}}`,
1480
+ undefined,
1481
+ env
1482
+ );
1483
+ const inst: Instance = await parseAndEvaluateStatement(
1484
+ `{${t} {chatId "${chatId}", step "${step}", result "${escapeSpecialChars(result)}", suspensionId "${suspensionId}"}}`,
1485
+ undefined,
1486
+ env
1487
+ );
1488
+ if (isInstanceOfType(inst, t)) return inst;
1489
+ else return undefined;
1490
+ } catch (reason: any) {
1491
+ logger.error(`failed to save flow result for step ${step} - ${reason}`);
1492
+ return undefined;
1493
+ }
1494
+ }
1495
+ }
1496
+
1497
+ export async function loadLocalFlowStepResults(chatId: string): Promise<Instance[]> {
1498
+ const fs = await getFileSystem();
1499
+ const dirName = `${LocalFlowStepsRootDirName}/${chatId}`;
1500
+ if (await fs.exists(dirName)) {
1501
+ const fileNames = await fs.readdir(dirName);
1502
+ const result: Instance[] = new Array<Instance>();
1503
+ for (let i = 0; i < fileNames.length; ++i) {
1504
+ const fileName = fileNames[i];
1505
+ const attrs = objectToInstanceAttributes(
1506
+ JSON.parse(await fs.readFile(`${dirName}/${fileName}`))
1507
+ );
1508
+ result.push(makeInstance(CoreAIModuleName, AgentFlowStep, attrs));
1509
+ }
1510
+ return result;
1511
+ } else {
1512
+ return [];
1513
+ }
1514
+ }
1515
+
1516
+ export async function loadFlowStepResults(chatId: string): Promise<Instance[]> {
1517
+ if (LocalAgentgFlow) {
1518
+ return await loadLocalFlowStepResults(chatId);
1519
+ } else {
1520
+ try {
1521
+ return await parseAndEvaluateStatement(`{${CoreAIModuleName}/${AgentFlowStep} {
1522
+ chatId? "${chatId}"}}`);
1523
+ } catch (reason: any) {
1524
+ logger.error(`failed to query flow-steps for ${chatId} - ${reason}`);
1525
+ return [];
1526
+ }
1527
+ }
1528
+ }
1529
+
1530
+ export async function loadLocalFlowStep(
1531
+ chatId: string,
1532
+ step: string
1533
+ ): Promise<Instance | undefined> {
1534
+ const fs = await getFileSystem();
1535
+ const dirName = `${LocalFlowStepsRootDirName}/${chatId}`;
1536
+ if (await fs.exists(dirName)) {
1537
+ const fileNames = await fs.readdir(dirName);
1538
+ for (let i = 0; i < fileNames.length; ++i) {
1539
+ const fileName = fileNames[i];
1540
+ if (fileName === step) {
1541
+ const attrs = objectToInstanceAttributes(
1542
+ JSON.parse(await fs.readFile(`${dirName}/${fileName}`))
1543
+ );
1544
+ return makeInstance(CoreAIModuleName, AgentFlowStep, attrs);
1545
+ }
1546
+ }
1547
+ return undefined;
1548
+ } else {
1549
+ return undefined;
1550
+ }
1551
+ }
1552
+
1553
+ export async function loadFlowStep(chatId: string, step: string): Promise<Instance | undefined> {
1554
+ if (LocalAgentgFlow) {
1555
+ return await loadLocalFlowStep(chatId, step);
1556
+ } else {
1557
+ try {
1558
+ const insts: Instance[] =
1559
+ await parseAndEvaluateStatement(`{${CoreAIModuleName}/${AgentFlowStep} {
1560
+ chatId? "${chatId}", step? "${step}"}}`);
1561
+ if (insts.length > 0) {
1562
+ return insts[0];
1563
+ } else {
1564
+ return undefined;
1565
+ }
1566
+ } catch (reason: any) {
1567
+ logger.error(`failed to lookup step ${step} for flow ${chatId} - ${reason}`);
1568
+ return undefined;
1569
+ }
1570
+ }
1571
+ }
1572
+
1388
1573
  export async function fetchAndCreateDocument(
1389
1574
  title: string,
1390
1575
  url: string,