agentlang 0.0.13 → 0.0.15
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/out/cli/docs.d.ts +2 -0
- package/out/cli/docs.d.ts.map +1 -0
- package/out/cli/docs.js +236 -0
- package/out/cli/docs.js.map +1 -0
- package/out/cli/main.d.ts.map +1 -1
- package/out/cli/main.js +5 -0
- package/out/cli/main.js.map +1 -1
- package/out/cli/openapi-docs.yml +695 -0
- package/out/index.d.ts +19 -0
- package/out/index.d.ts.map +1 -0
- package/out/index.js +25 -0
- package/out/index.js.map +1 -0
- package/out/language/generated/ast.d.ts +23 -12
- package/out/language/generated/ast.d.ts.map +1 -1
- package/out/language/generated/ast.js +18 -2
- package/out/language/generated/ast.js.map +1 -1
- package/out/language/generated/grammar.d.ts.map +1 -1
- package/out/language/generated/grammar.js +231 -122
- package/out/language/generated/grammar.js.map +1 -1
- package/out/language/main.cjs +243 -124
- package/out/language/main.cjs.map +2 -2
- package/out/runtime/agents/common.d.ts +1 -1
- package/out/runtime/agents/common.d.ts.map +1 -1
- package/out/runtime/agents/common.js +32 -9
- package/out/runtime/agents/common.js.map +1 -1
- package/out/runtime/auth/cognito.d.ts.map +1 -1
- package/out/runtime/auth/cognito.js +8 -2
- package/out/runtime/auth/cognito.js.map +1 -1
- package/out/runtime/integrations.d.ts +3 -0
- package/out/runtime/integrations.d.ts.map +1 -0
- package/out/runtime/integrations.js +72 -0
- package/out/runtime/integrations.js.map +1 -0
- package/out/runtime/interpreter.d.ts.map +1 -1
- package/out/runtime/interpreter.js +73 -32
- package/out/runtime/interpreter.js.map +1 -1
- package/out/runtime/jsmodules.d.ts.map +1 -1
- package/out/runtime/jsmodules.js +21 -2
- package/out/runtime/jsmodules.js.map +1 -1
- package/out/runtime/loader.js +2 -2
- package/out/runtime/loader.js.map +1 -1
- package/out/runtime/module.d.ts +2 -0
- package/out/runtime/module.d.ts.map +1 -1
- package/out/runtime/module.js +13 -2
- package/out/runtime/module.js.map +1 -1
- package/out/runtime/modules/auth.d.ts +2 -0
- package/out/runtime/modules/auth.d.ts.map +1 -1
- package/out/runtime/modules/auth.js +15 -0
- package/out/runtime/modules/auth.js.map +1 -1
- package/out/runtime/resolvers/sqldb/database.js +1 -1
- package/out/runtime/resolvers/sqldb/database.js.map +1 -1
- package/out/runtime/resolvers/sqldb/dbutil.d.ts.map +1 -1
- package/out/runtime/resolvers/sqldb/dbutil.js +3 -2
- package/out/runtime/resolvers/sqldb/dbutil.js.map +1 -1
- package/out/runtime/state.d.ts +28 -0
- package/out/runtime/state.d.ts.map +1 -1
- package/out/runtime/state.js +8 -0
- package/out/runtime/state.js.map +1 -1
- package/out/syntaxes/agentlang.monarch.js +1 -1
- package/out/syntaxes/agentlang.monarch.js.map +1 -1
- package/package.json +3 -3
- package/src/cli/main.ts +10 -0
- package/src/language/agentlang.langium +14 -10
- package/src/language/generated/ast.ts +43 -13
- package/src/language/generated/grammar.ts +231 -122
- package/src/runtime/agents/common.ts +32 -9
- package/src/runtime/auth/cognito.ts +14 -2
- package/src/runtime/integrations.ts +92 -0
- package/src/runtime/interpreter.ts +97 -35
- package/src/runtime/jsmodules.ts +20 -1
- package/src/runtime/loader.ts +2 -2
- package/src/runtime/module.ts +15 -2
- package/src/runtime/modules/auth.ts +23 -0
- package/src/runtime/resolvers/sqldb/database.ts +1 -1
- package/src/runtime/resolvers/sqldb/dbutil.ts +3 -2
- package/src/runtime/state.ts +8 -0
- package/src/syntaxes/agentlang.monarch.ts +1 -1
|
@@ -1,2 +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).\n\nThis is an example of a record:\n\nrecord EmailMessage {\n to Email,\n from Email,\n subject String,\n body String\n}\n\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: '{Erp/Employee {employeeId \"56392e13-0d9a-42f7-b556-0d7cd9468a24\", firstName \"Joe\"}, @upsert}'. 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\nMake sure all references based on a preceding pattern is based either on an actual alias or the name of the workflow. For example, the following sequence of patterns\nare invalid, because the alias 'employee' is not defined:\n\n{Employee {id? 101}};\n{SendEmail {to employee.email, body \"hello\"}}\n\nA fix for the reference-error is shown below:\n\n{Employee {id? 101}} @as employee;\n{SendEmail {to employee.email, body \"hello\"}}\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\nA general rule regarding generating workflows - as much as possible, do not include references to the workflow event in the patterns. Try to\nfill-in values from the available context. For example, if your instruction is \"create a workflow to send an email to employee 101 with this message - \n'please call me as soon as possible'\", the best workflow to return is:\n\nworkflow sendEmail {\n {employee {id? 101}} @as emp;\n {email {to emp.email body \"please call me as soon as possible\"}}\n}\n\nbecause all the information needed is available in the context. If the instruction is \"create a workflow to send an email by employee-id with this message - \n'please call me as soon as possible'\", then you can return:\n\nworkflow sendEmail {\n {employee {id? sendEmail.employeeId}} @as emp;\n {email {to emp.email body \"please call me as soon as possible\"}}\n}\n\nThe point is use the immediate context to fill-in values in generated patterns, as much as possible.\n\nAlso generate a workflow only if required explicitly by the user or the contextual information is incomplete. Otherwise, just return an array of patterns.\nAs an example, if the user request is \"send an email to employee 101 with this message - 'please call me as soon as possible'\", you must return:\n\n[{employee {id? 101}} @as emp;\n {email {to emp.email, body \"please call me as soon as possible\"}}]\n\nNote that each pattern in the array is separated by a ; and not a comma(,).\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";
|
|
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 is be encoded in a syntax inspired by JavaScript and JSON. Example of a simple module follows:\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'. \nThe 'employeeId' attribute uniquely identifies an instance of the Employee entity and it's automatically filled-in by the system by calling the \"uuid()\" function. \nIn the place of the keyword 'entity', the keyword 'record' may also be used. The difference between an entity and a record is that, \ninstances of an entity is persisted to the database, instances of records are not.\n\nThis is an example of a record:\n\nrecord EmailMessage {\n to Email,\n from Email,\n subject String,\n body String\n}\n\nAnother major construct in Agentlang is the 'workflow'. Workflows contains JSON \"patterns\" that perform CRUD operations on entities. \nFor 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 having the event-creation 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: '{Erp/Employee {employeeId \"56392e13-0d9a-42f7-b556-0d7cd9468a24\", firstName \"Joe\"}, @upsert}'. 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\nAnother example of the 'if' pattern:\n\nworkflow validateLicense {\n {checkLicenseNumber {number validateLicense.number}} @as response;\n if (response = \"ok\") {\n {license {number? validateLicense.number, status \"active\"}}\n } else {\n {license {number? validateLicense.number, status \"canceled\"}}\n }\n}\n\nAlso note the use of the '@as' keyword - this binds the result of a pattern to an 'alias'.\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\nHere the result of the query is bound to the alias 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\nMake sure all references based on a preceding pattern is based either on an actual alias or the name of the workflow. For example, the following sequence of patterns\nare invalid, because the alias 'employee' is not defined:\n\n{Employee {id? 101}};\n{SendEmail {to employee.email, body \"hello\"}}\n\nA fix for the reference-error is shown below:\n\n{Employee {id? 101}} @as employee;\n{SendEmail {to employee.email, body \"hello\"}}\n\nA pattern may execute asynchronously and its eventual result can be handled by patterns provided in the '@then' clause. An example is shown below:\n\n{sendChatMessage {to \"amy\", \"text\" \"hello\"}} @as response @then {\n {saveResponse {from \"amy\", \"text\" response}}\n}\n\nIf 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 \n'@then' clause only if an event's documentation or instruction explicitly requires to do so.\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\nA general rule regarding generating workflows - as much as possible, do not include references to the workflow event in the patterns. Try to\nfill-in values from the available context. For example, if your instruction is \"create a workflow to send an email to employee 101 with this message - \n'please call me as soon as possible'\", the best workflow to return is:\n\nworkflow sendEmail {\n {employee {id? 101}} @as emp;\n {email {to emp.email body \"please call me as soon as possible\"}}\n}\n\nbecause all the information needed is available in the context. If the instruction is \"create a workflow to send an email by employee-id with this message - \n'please call me as soon as possible'\", then you can return:\n\nworkflow sendEmail {\n {employee {id? sendEmail.employeeId}} @as emp;\n {email {to emp.email body \"please call me as soon as possible\"}}\n}\n\nThe point is use the immediate context to fill-in values in generated patterns, as much as possible.\n\nAlso generate a workflow only if required explicitly by the user or the contextual information is incomplete. Otherwise, just return an array of patterns.\nAs an example, if the user request is \"send an email to employee 101 with this message - 'please call me as soon as possible'\", you must return:\n\n[{employee {id? 101}} @as emp;\n {email {to emp.email, body \"please call me as soon as possible\"}}]\n\nNote that each pattern in the array is separated by a ; and not a comma(,).\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
2
|
//# sourceMappingURL=common.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/runtime/agents/common.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/runtime/agents/common.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,yoXAuP/B,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export const PlannerInstructions = `Agentlang is a very-high-level declarative language that makes it easy to define business applications as 'models'.
|
|
2
2
|
The model of a business application consists of entity definitions and workflows defined in "modules".
|
|
3
|
-
A module
|
|
3
|
+
A module is be encoded in a syntax inspired by JavaScript and JSON. Example of a simple module follows:
|
|
4
4
|
|
|
5
5
|
module Erp
|
|
6
6
|
|
|
@@ -12,9 +12,10 @@ entity Employee {
|
|
|
12
12
|
email Email @indexed
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
The Empoyee entity is part of the "Erp" module and it has four attributes: employeeId, firstName, lastName, salary and email.
|
|
16
|
-
Employee and it's automatically filled-in by the system by calling the "uuid()" function.
|
|
17
|
-
|
|
15
|
+
The Empoyee entity is part of the "Erp" module and it has four attributes: 'employeeId', 'firstName', 'lastName', 'salary' and 'email'.
|
|
16
|
+
The 'employeeId' attribute uniquely identifies an instance of the Employee entity and it's automatically filled-in by the system by calling the "uuid()" function.
|
|
17
|
+
In the place of the keyword 'entity', the keyword 'record' may also be used. The difference between an entity and a record is that,
|
|
18
|
+
instances of an entity is persisted to the database, instances of records are not.
|
|
18
19
|
|
|
19
20
|
This is an example of a record:
|
|
20
21
|
|
|
@@ -25,7 +26,8 @@ record EmailMessage {
|
|
|
25
26
|
body String
|
|
26
27
|
}
|
|
27
28
|
|
|
28
|
-
Workflows contains JSON "patterns" that perform CRUD operations on entities.
|
|
29
|
+
Another major construct in Agentlang is the 'workflow'. Workflows contains JSON "patterns" that perform CRUD operations on entities.
|
|
30
|
+
For example, here's is a workflow that creates a new instance of the Employee entity:
|
|
29
31
|
|
|
30
32
|
workflow CreateEmployee {
|
|
31
33
|
{Erp/Employee {firstName CreateEmployee.firstName,
|
|
@@ -49,7 +51,7 @@ A workflow attached to an event is invoked by creating an instance of the event,
|
|
|
49
51
|
|
|
50
52
|
{Erp/CreateEmployee {firstName "Sam", lastName "K", salary 1400, email "samk@acme.com"}}
|
|
51
53
|
|
|
52
|
-
This means a workflow can be invoked from another workflow, simply by
|
|
54
|
+
This means a workflow can be invoked from another workflow, simply by having the event-creation pattern.
|
|
53
55
|
|
|
54
56
|
Other than the create-pattern for entities and events, some of the most useful patterns (related to entities) that can appear in a workflow are:
|
|
55
57
|
1. Query - e.g: '{Erp/Employee {employeeId? "56392e13-0d9a-42f7-b556-0d7cd9468a24"}}'. The attributes by which the query happens must end with a '?' character.
|
|
@@ -58,7 +60,7 @@ Other than the create-pattern for entities and events, some of the most useful p
|
|
|
58
60
|
with the given employeeId.
|
|
59
61
|
3. Upsert - e.g: '{Erp/Employee {employeeId "56392e13-0d9a-42f7-b556-0d7cd9468a24", firstName "Joe"}, @upsert}'. The 'upsert' pattern will create a new
|
|
60
62
|
instance, if the instance does not already exist.
|
|
61
|
-
4. Delete - e.g: delete
|
|
63
|
+
4. Delete - e.g: 'delete {Erp/Employee {employeeId? "56392e13-0d9a-42f7-b556-0d7cd9468a24"}}'
|
|
62
64
|
|
|
63
65
|
The default query operator is '=' (equals). So an expression like 'employeeId? "56392e13-0d9a-42f7-b556-0d7cd9468a24"' means,
|
|
64
66
|
'where employeeId equals "56392e13-0d9a-42f7-b556-0d7cd9468a24"'. Other comparison operators has to be specified explicitly, as in
|
|
@@ -89,6 +91,19 @@ workflow IncrementSalary {
|
|
|
89
91
|
|
|
90
92
|
Note the value passed to the 'salary' attribute - it's an arithmetic expression. All normal arithmetic expressions are supported by workflow patterns.
|
|
91
93
|
|
|
94
|
+
Another example of the 'if' pattern:
|
|
95
|
+
|
|
96
|
+
workflow validateLicense {
|
|
97
|
+
{checkLicenseNumber {number validateLicense.number}} @as response;
|
|
98
|
+
if (response = "ok") {
|
|
99
|
+
{license {number? validateLicense.number, status "active"}}
|
|
100
|
+
} else {
|
|
101
|
+
{license {number? validateLicense.number, status "canceled"}}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
Also note the use of the '@as' keyword - this binds the result of a pattern to an 'alias'.
|
|
106
|
+
|
|
92
107
|
A successful query pattern will return an array of instances. The 'for' pattern can be used to iterate over an array. An example follows:
|
|
93
108
|
|
|
94
109
|
workflow NotifyEmployees {
|
|
@@ -98,8 +113,7 @@ workflow NotifyEmployees {
|
|
|
98
113
|
}
|
|
99
114
|
}
|
|
100
115
|
|
|
101
|
-
|
|
102
|
-
alias 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,
|
|
116
|
+
Here the result of the query is bound to the alias 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,
|
|
103
117
|
via the dot(.) notation. Aliases can also be used to destructure a query result - here's an example:
|
|
104
118
|
|
|
105
119
|
workflow FindFirstTwoEmployees {
|
|
@@ -134,6 +148,15 @@ A fix for the reference-error is shown below:
|
|
|
134
148
|
{Employee {id? 101}} @as employee;
|
|
135
149
|
{SendEmail {to employee.email, body "hello"}}
|
|
136
150
|
|
|
151
|
+
A pattern may execute asynchronously and its eventual result can be handled by patterns provided in the '@then' clause. An example is shown below:
|
|
152
|
+
|
|
153
|
+
{sendChatMessage {to "amy", "text" "hello"}} @as response @then {
|
|
154
|
+
{saveResponse {from "amy", "text" response}}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
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
|
|
158
|
+
'@then' clause only if an event's documentation or instruction explicitly requires to do so.
|
|
159
|
+
|
|
137
160
|
Entities in a module can be connected together in relationships. There are two types of relationships - 'contains' and 'between'.
|
|
138
161
|
'Contains' relationship is for hierarchical data, as in a Library entity containing Books. 'Between' relationship is for graph-like data,
|
|
139
162
|
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),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/runtime/agents/common.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/runtime/agents/common.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuPlC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cognito.d.ts","sourceRoot":"","sources":["../../../src/runtime/auth/cognito.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,aAAa,EACb,cAAc,EACd,WAAW,EACX,cAAc,EACd,QAAQ,EACT,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"cognito.d.ts","sourceRoot":"","sources":["../../../src/runtime/auth/cognito.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,aAAa,EACb,cAAc,EACd,WAAW,EACX,cAAc,EACd,QAAQ,EACT,MAAM,gBAAgB,CAAC;AAYxB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAsPhD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CA0B1D;AAED,qBAAa,WAAY,YAAW,aAAa;IAC/C,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACxC,QAAQ,EAAE,GAAG,CAAC;gBACF,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAUxC,eAAe,IAAI,MAAM;IAIzB,aAAa,IAAI,MAAM;IAIvB,OAAO,CAAC,WAAW;IAQb,MAAM,CACV,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EACzC,GAAG,EAAE,WAAW,EAChB,EAAE,EAAE,cAAc,GACjB,OAAO,CAAC,IAAI,CAAC;IA0DV,KAAK,CACT,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,EAAE,EAAE,aAAa,GAChB,OAAO,CAAC,IAAI,CAAC;IAyKV,MAAM,CAAC,WAAW,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAsDtF,cAAc,CAClB,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,WAAW,GACf,OAAO,CAAC,OAAO,CAAC;IAuCnB,OAAO,CAAC,aAAa;IAOf,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoCzC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC;IAiE5D,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC;IAiElE,YAAY,CAAC,kBAAkB,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;CAkEvF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ensureUser, ensureUserSession, findUser, findUserByEmail } from '../modules/auth.js';
|
|
1
|
+
import { ensureUser, ensureUserRoles, ensureUserSession, findUser, findUserByEmail, } from '../modules/auth.js';
|
|
2
2
|
import { logger } from '../logger.js';
|
|
3
3
|
import { sleepMilliseconds } from '../util.js';
|
|
4
4
|
import { CognitoJwtVerifier } from 'aws-jwt-verify';
|
|
@@ -358,7 +358,13 @@ export class CognitoAuth {
|
|
|
358
358
|
localUser = await ensureUser(username, '', '', env);
|
|
359
359
|
}
|
|
360
360
|
const userid = localUser.lookup('id');
|
|
361
|
-
const
|
|
361
|
+
const idtok = result.getIdToken();
|
|
362
|
+
const idToken = idtok.getJwtToken();
|
|
363
|
+
const idTokenPayload = idtok.decodePayload();
|
|
364
|
+
const userGroups = idTokenPayload['cognito:groups'];
|
|
365
|
+
if (userGroups) {
|
|
366
|
+
await ensureUserRoles(userid, userGroups, env);
|
|
367
|
+
}
|
|
362
368
|
const accessToken = result.getAccessToken().getJwtToken();
|
|
363
369
|
const refreshToken = result.getRefreshToken().getToken();
|
|
364
370
|
const localSess = await ensureUserSession(userid, idToken, accessToken, refreshToken, env);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cognito.js","sourceRoot":"","sources":["../../../src/runtime/auth/cognito.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cognito.js","sourceRoot":"","sources":["../../../src/runtime/auth/cognito.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export declare function prepareIntegrations(integManagerHost: string, username: string | undefined, password: string | undefined, integConfigObj: object): Promise<void>;
|
|
2
|
+
export declare function getIntegrationConfig(name: string, configName: string): any;
|
|
3
|
+
//# sourceMappingURL=integrations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integrations.d.ts","sourceRoot":"","sources":["../../src/runtime/integrations.ts"],"names":[],"mappings":"AAOA,wBAAsB,mBAAmB,CACvC,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,cAAc,EAAE,MAAM,iBAiCvB;AAwCD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,GAAG,CAO1E"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { isString } from './util.js';
|
|
2
|
+
const Integrations = new Map();
|
|
3
|
+
const IntegManagerModel = 'integmanager.core';
|
|
4
|
+
export async function prepareIntegrations(integManagerHost, username, password, integConfigObj) {
|
|
5
|
+
const integConfig = new Map(Object.entries(integConfigObj));
|
|
6
|
+
const standardHeaders = await loginToIntegManager(integManagerHost, username, password);
|
|
7
|
+
const keys = [...integConfig.keys()];
|
|
8
|
+
for (let i = 0; i < keys.length; ++i) {
|
|
9
|
+
const configName = keys[i];
|
|
10
|
+
const configPath = integConfig.get(configName);
|
|
11
|
+
if (configPath) {
|
|
12
|
+
const apiUrl = mkApiUrl(integManagerHost, configPath);
|
|
13
|
+
const response = await fetch(apiUrl, {
|
|
14
|
+
method: 'GET',
|
|
15
|
+
headers: standardHeaders,
|
|
16
|
+
});
|
|
17
|
+
if (!response.ok) {
|
|
18
|
+
throw new Error(`Failed to fetch integration for ${configPath}, HTTP error! status: ${response.status} ${response.text} ${response.statusText}`);
|
|
19
|
+
}
|
|
20
|
+
const data = await response.json();
|
|
21
|
+
if (data.length > 0) {
|
|
22
|
+
const inst = data[0].config;
|
|
23
|
+
if (inst.type == 'custom' && isString(inst.parameter)) {
|
|
24
|
+
inst.parameter = new Map(Object.entries(JSON.parse(inst.parameter)));
|
|
25
|
+
}
|
|
26
|
+
Integrations.set(configName, inst);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
throw new Error(`Integration not found for ${configPath}`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
async function loginToIntegManager(host, username, password) {
|
|
35
|
+
const defaultHdr = { 'Content-Type': 'application/json' };
|
|
36
|
+
if (username && password && username.length > 0) {
|
|
37
|
+
const apiUrl = `${host}/agentlang_auth/login`;
|
|
38
|
+
const data = { email: username, password: password };
|
|
39
|
+
const response = await fetch(apiUrl, {
|
|
40
|
+
method: 'POST',
|
|
41
|
+
headers: defaultHdr,
|
|
42
|
+
body: JSON.stringify(data),
|
|
43
|
+
});
|
|
44
|
+
if (!response.ok) {
|
|
45
|
+
throw new Error(`Failed to login to integration-manager. HTTP error! status: ${response.status}`);
|
|
46
|
+
}
|
|
47
|
+
const responseData = await response.json();
|
|
48
|
+
return {
|
|
49
|
+
Authorization: `Bearer ${responseData.id_token}`,
|
|
50
|
+
'Content-Type': 'application/json',
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
return defaultHdr;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
function mkApiUrl(integManagerHost, configPath) {
|
|
58
|
+
const parts = configPath.split('/');
|
|
59
|
+
const integId = parts[0];
|
|
60
|
+
const configId = parts[1];
|
|
61
|
+
return `${integManagerHost}/${IntegManagerModel}/integration/${integId}/integrationConfig/config/${configId}`;
|
|
62
|
+
}
|
|
63
|
+
export function getIntegrationConfig(name, configName) {
|
|
64
|
+
const config = Integrations.get(name);
|
|
65
|
+
if (config) {
|
|
66
|
+
return config.parameter.get(configName);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=integrations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integrations.js","sourceRoot":"","sources":["../../src/runtime/integrations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interpreter.d.ts","sourceRoot":"","sources":["../../src/runtime/interpreter.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"interpreter.d.ts","sourceRoot":"","sources":["../../src/runtime/interpreter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isBinExpr, isGroup, isLiteral, isNegExpr, isNotExpr, } from '../language/generated/ast.js';
|
|
1
|
+
import { isBinExpr, isGroup, isLiteral, isNegExpr, isNotExpr, isReturn, } from '../language/generated/ast.js';
|
|
2
2
|
import { defineAgentEvent, getOneOfRef, getRelationship, getWorkflow, Instance, isAgentEventInstance, isBetweenRelationship, isContainsRelationship, isEmptyWorkflow, isEntityInstance, isEventInstance, isInstanceOfType, isTimer, makeInstance, newInstanceAttributes, PlaceholderRecordEntry, } from './module.js';
|
|
3
3
|
import { Resolver, ResolverAuthInfo } from './resolvers/interface.js';
|
|
4
4
|
import { SqlDbResolver } from './resolvers/sqldb/impl.js';
|
|
@@ -446,20 +446,19 @@ function statemtentString(stmt) {
|
|
|
446
446
|
throw new Error(`Failed to fetch text for statement - ${stmt}`);
|
|
447
447
|
}
|
|
448
448
|
}
|
|
449
|
+
async function saveSuspension(cont, env) {
|
|
450
|
+
if (cont.length > 0) {
|
|
451
|
+
const suspId = await createSuspension(env.getSuspensionId(), cont.map((stmt) => {
|
|
452
|
+
return statemtentString(stmt);
|
|
453
|
+
}), env);
|
|
454
|
+
env.setLastResult({ suspension: suspId || 'null' });
|
|
455
|
+
}
|
|
456
|
+
}
|
|
449
457
|
export async function evaluateStatements(stmts, env, continuation) {
|
|
450
458
|
for (let i = 0; i < stmts.length; ++i) {
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
if (cont.length > 0) {
|
|
455
|
-
const suspId = await createSuspension(env.getSuspensionId(), cont.map((stmt) => {
|
|
456
|
-
return statemtentString(stmt);
|
|
457
|
-
}), env);
|
|
458
|
-
env.setLastResult({ suspension: suspId || 'null' });
|
|
459
|
-
break;
|
|
460
|
-
}
|
|
461
|
-
}
|
|
462
|
-
else if (env.isMarkedForReturn()) {
|
|
459
|
+
const stmt = stmts[i];
|
|
460
|
+
await evaluateStatement(stmt, env);
|
|
461
|
+
if (env.isMarkedForReturn()) {
|
|
463
462
|
break;
|
|
464
463
|
}
|
|
465
464
|
}
|
|
@@ -467,10 +466,33 @@ export async function evaluateStatements(stmts, env, continuation) {
|
|
|
467
466
|
continuation(env.getLastResult());
|
|
468
467
|
}
|
|
469
468
|
}
|
|
469
|
+
async function evaluateAsyncPattern(pat, thenStmts, handlers, hints, env) {
|
|
470
|
+
try {
|
|
471
|
+
await evaluatePattern(pat, env);
|
|
472
|
+
maybeBindStatementResultToAlias(hints, env);
|
|
473
|
+
if (env.isSuspended()) {
|
|
474
|
+
await saveSuspension(thenStmts, env);
|
|
475
|
+
}
|
|
476
|
+
else {
|
|
477
|
+
await evaluateStatements(thenStmts, env);
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
catch (reason) {
|
|
481
|
+
await maybeHandleError(handlers, reason, env);
|
|
482
|
+
}
|
|
483
|
+
}
|
|
470
484
|
async function evaluateStatement(stmt, env) {
|
|
471
485
|
const hints = stmt.hints;
|
|
472
486
|
const hasHints = hints && hints.length > 0;
|
|
487
|
+
const thenStmts = hasHints ? maybeFindThenStatements(hints) : undefined;
|
|
473
488
|
const handlers = hasHints ? maybeFindHandlers(hints) : undefined;
|
|
489
|
+
if (thenStmts) {
|
|
490
|
+
evaluateAsyncPattern(stmt.pattern, thenStmts, handlers, hints, new Environment(env.name + 'async', env));
|
|
491
|
+
if (isReturn(stmt.pattern)) {
|
|
492
|
+
env.markForReturn();
|
|
493
|
+
}
|
|
494
|
+
return;
|
|
495
|
+
}
|
|
474
496
|
let handlersPushed = false;
|
|
475
497
|
try {
|
|
476
498
|
if (handlers) {
|
|
@@ -480,24 +502,10 @@ async function evaluateStatement(stmt, env) {
|
|
|
480
502
|
if (hasHints) {
|
|
481
503
|
maybeBindStatementResultToAlias(hints, env);
|
|
482
504
|
}
|
|
483
|
-
|
|
484
|
-
if (lastResult == null ||
|
|
485
|
-
lastResult == undefined ||
|
|
486
|
-
(lastResult instanceof Array && lastResult.length == 0)) {
|
|
487
|
-
const onNotFound = handlers ? handlers.get('not_found') : undefined;
|
|
488
|
-
if (onNotFound) {
|
|
489
|
-
await evaluateStatement(onNotFound, env);
|
|
490
|
-
}
|
|
491
|
-
}
|
|
505
|
+
await maybeHandleNotFound(handlers, env);
|
|
492
506
|
}
|
|
493
507
|
catch (reason) {
|
|
494
|
-
|
|
495
|
-
if (handler) {
|
|
496
|
-
await evaluateStatement(handler, env);
|
|
497
|
-
}
|
|
498
|
-
else {
|
|
499
|
-
throw reason;
|
|
500
|
-
}
|
|
508
|
+
await maybeHandleError(handlers, reason, env);
|
|
501
509
|
}
|
|
502
510
|
finally {
|
|
503
511
|
if (handlersPushed && env.hasHandlers()) {
|
|
@@ -505,6 +513,26 @@ async function evaluateStatement(stmt, env) {
|
|
|
505
513
|
}
|
|
506
514
|
}
|
|
507
515
|
}
|
|
516
|
+
async function maybeHandleNotFound(handlers, env) {
|
|
517
|
+
const lastResult = env.getLastResult();
|
|
518
|
+
if (lastResult == null ||
|
|
519
|
+
lastResult == undefined ||
|
|
520
|
+
(lastResult instanceof Array && lastResult.length == 0)) {
|
|
521
|
+
const onNotFound = handlers ? handlers.get('not_found') : undefined;
|
|
522
|
+
if (onNotFound) {
|
|
523
|
+
await evaluateStatement(onNotFound, env);
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
async function maybeHandleError(handlers, reason, env) {
|
|
528
|
+
const handler = handlers ? handlers.get('error') : undefined;
|
|
529
|
+
if (handler) {
|
|
530
|
+
await evaluateStatement(handler, env);
|
|
531
|
+
}
|
|
532
|
+
else {
|
|
533
|
+
throw reason;
|
|
534
|
+
}
|
|
535
|
+
}
|
|
508
536
|
function maybeBindStatementResultToAlias(hints, env) {
|
|
509
537
|
for (let i = 0; i < hints.length; ++i) {
|
|
510
538
|
const rh = hints[i];
|
|
@@ -552,6 +580,15 @@ function maybeFindHandlers(hints) {
|
|
|
552
580
|
}
|
|
553
581
|
return undefined;
|
|
554
582
|
}
|
|
583
|
+
function maybeFindThenStatements(hints) {
|
|
584
|
+
for (let i = 0; i < hints.length; ++i) {
|
|
585
|
+
const rh = hints[i];
|
|
586
|
+
if (rh.thenSpec) {
|
|
587
|
+
return rh.thenSpec.statements;
|
|
588
|
+
}
|
|
589
|
+
}
|
|
590
|
+
return undefined;
|
|
591
|
+
}
|
|
555
592
|
export async function parseAndEvaluateStatement(stmtString, activeUserId, actievEnv) {
|
|
556
593
|
const env = actievEnv ? actievEnv : new Environment();
|
|
557
594
|
if (activeUserId) {
|
|
@@ -1044,9 +1081,11 @@ async function walkJoinQueryPattern(rp, joinsSpec, env) {
|
|
|
1044
1081
|
async function handleAgentInvocation(agentEventInst, env) {
|
|
1045
1082
|
const agent = await findAgentByName(agentEventInst.name, env);
|
|
1046
1083
|
await agent.invoke(agentEventInst.lookup('message'), env);
|
|
1047
|
-
const
|
|
1084
|
+
const r = env.getLastResult();
|
|
1085
|
+
const isPlanner = agent.isPlanner();
|
|
1086
|
+
const result = isPlanner ? cleanupAgentResponse(r) : r;
|
|
1048
1087
|
if (result) {
|
|
1049
|
-
if (
|
|
1088
|
+
if (isPlanner) {
|
|
1050
1089
|
logger.debug(`Agent ${agent.name} generated pattern: ${result}`);
|
|
1051
1090
|
try {
|
|
1052
1091
|
let rs = result.trim();
|
|
@@ -1117,11 +1156,13 @@ async function evaluateForEach(forEach, env) {
|
|
|
1117
1156
|
const src = env.getLastResult();
|
|
1118
1157
|
if (src instanceof Array && src.length > 0) {
|
|
1119
1158
|
const loopEnv = Environment.from(env);
|
|
1159
|
+
const finalResult = new Array();
|
|
1120
1160
|
for (let i = 0; i < src.length; ++i) {
|
|
1121
1161
|
loopEnv.bind(loopVar, src[i]);
|
|
1122
1162
|
await evaluateStatements(forEach.statements, loopEnv);
|
|
1163
|
+
finalResult.push(loopEnv.getLastResult());
|
|
1123
1164
|
}
|
|
1124
|
-
env.setLastResult(
|
|
1165
|
+
env.setLastResult(finalResult);
|
|
1125
1166
|
}
|
|
1126
1167
|
else {
|
|
1127
1168
|
env.setLastResult(EmptyResult);
|