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.
Files changed (76) hide show
  1. package/out/cli/docs.d.ts +2 -0
  2. package/out/cli/docs.d.ts.map +1 -0
  3. package/out/cli/docs.js +236 -0
  4. package/out/cli/docs.js.map +1 -0
  5. package/out/cli/main.d.ts.map +1 -1
  6. package/out/cli/main.js +5 -0
  7. package/out/cli/main.js.map +1 -1
  8. package/out/cli/openapi-docs.yml +695 -0
  9. package/out/index.d.ts +19 -0
  10. package/out/index.d.ts.map +1 -0
  11. package/out/index.js +25 -0
  12. package/out/index.js.map +1 -0
  13. package/out/language/generated/ast.d.ts +23 -12
  14. package/out/language/generated/ast.d.ts.map +1 -1
  15. package/out/language/generated/ast.js +18 -2
  16. package/out/language/generated/ast.js.map +1 -1
  17. package/out/language/generated/grammar.d.ts.map +1 -1
  18. package/out/language/generated/grammar.js +231 -122
  19. package/out/language/generated/grammar.js.map +1 -1
  20. package/out/language/main.cjs +243 -124
  21. package/out/language/main.cjs.map +2 -2
  22. package/out/runtime/agents/common.d.ts +1 -1
  23. package/out/runtime/agents/common.d.ts.map +1 -1
  24. package/out/runtime/agents/common.js +32 -9
  25. package/out/runtime/agents/common.js.map +1 -1
  26. package/out/runtime/auth/cognito.d.ts.map +1 -1
  27. package/out/runtime/auth/cognito.js +8 -2
  28. package/out/runtime/auth/cognito.js.map +1 -1
  29. package/out/runtime/integrations.d.ts +3 -0
  30. package/out/runtime/integrations.d.ts.map +1 -0
  31. package/out/runtime/integrations.js +72 -0
  32. package/out/runtime/integrations.js.map +1 -0
  33. package/out/runtime/interpreter.d.ts.map +1 -1
  34. package/out/runtime/interpreter.js +73 -32
  35. package/out/runtime/interpreter.js.map +1 -1
  36. package/out/runtime/jsmodules.d.ts.map +1 -1
  37. package/out/runtime/jsmodules.js +21 -2
  38. package/out/runtime/jsmodules.js.map +1 -1
  39. package/out/runtime/loader.js +2 -2
  40. package/out/runtime/loader.js.map +1 -1
  41. package/out/runtime/module.d.ts +2 -0
  42. package/out/runtime/module.d.ts.map +1 -1
  43. package/out/runtime/module.js +13 -2
  44. package/out/runtime/module.js.map +1 -1
  45. package/out/runtime/modules/auth.d.ts +2 -0
  46. package/out/runtime/modules/auth.d.ts.map +1 -1
  47. package/out/runtime/modules/auth.js +15 -0
  48. package/out/runtime/modules/auth.js.map +1 -1
  49. package/out/runtime/resolvers/sqldb/database.js +1 -1
  50. package/out/runtime/resolvers/sqldb/database.js.map +1 -1
  51. package/out/runtime/resolvers/sqldb/dbutil.d.ts.map +1 -1
  52. package/out/runtime/resolvers/sqldb/dbutil.js +3 -2
  53. package/out/runtime/resolvers/sqldb/dbutil.js.map +1 -1
  54. package/out/runtime/state.d.ts +28 -0
  55. package/out/runtime/state.d.ts.map +1 -1
  56. package/out/runtime/state.js +8 -0
  57. package/out/runtime/state.js.map +1 -1
  58. package/out/syntaxes/agentlang.monarch.js +1 -1
  59. package/out/syntaxes/agentlang.monarch.js.map +1 -1
  60. package/package.json +3 -3
  61. package/src/cli/main.ts +10 -0
  62. package/src/language/agentlang.langium +14 -10
  63. package/src/language/generated/ast.ts +43 -13
  64. package/src/language/generated/grammar.ts +231 -122
  65. package/src/runtime/agents/common.ts +32 -9
  66. package/src/runtime/auth/cognito.ts +14 -2
  67. package/src/runtime/integrations.ts +92 -0
  68. package/src/runtime/interpreter.ts +97 -35
  69. package/src/runtime/jsmodules.ts +20 -1
  70. package/src/runtime/loader.ts +2 -2
  71. package/src/runtime/module.ts +15 -2
  72. package/src/runtime/modules/auth.ts +23 -0
  73. package/src/runtime/resolvers/sqldb/database.ts +1 -1
  74. package/src/runtime/resolvers/sqldb/dbutil.ts +3 -2
  75. package/src/runtime/state.ts +8 -0
  76. 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,6rVAgO/B,CAAC"}
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 will be encoded in a syntax inspired by JavaScript and JSON. Example of a simple module definition is,
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. The employeeId uniquely identifies an
16
- Employee 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.
17
- The difference between an entity and a record is that, instances of an entity is persisted to the database, instances of records are not).
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. For example, here's is a workflow that creates a new instance of the Employee entity:
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 adding the event-creation as a pattern.
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 '{Erp/Employee {employeeId? "56392e13-0d9a-42f7-b556-0d7cd9468a24"}}'
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
- Also 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
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgOlC,CAAC"}
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;AAMxB,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;IAmKV,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
+ {"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 idToken = result.getIdToken().getJwtToken();
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,EAyBL,SAAS,EACV,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAKL,QAAQ,EAaR,YAAY,EAEb,MAAM,aAAa,CAAC;AACrB,OAAO,EAAY,QAAQ,EAAoB,MAAM,0BAA0B,CAAC;AAoBhF,OAAO,EAAE,iBAAiB,EAA6B,MAAM,gBAAgB,CAAC;AAc9E,MAAM,MAAM,MAAM,GAAG,GAAG,CAAC;AAIzB,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED,KAAK,cAAc,GAAG;IACpB,YAAY,EAAE,YAAY,CAAC;IAC3B,iBAAiB,EAAE,QAAQ,CAAC;CAC7B,CAAC;AAaF,KAAK,aAAa,GAAG,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAE5C,qBAAa,WAAY,SAAQ,QAAQ;IACvC,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC;IAEhC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,mBAAmB,CAAuB;IAClD,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,oBAAoB,CAAqB;IACjD,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,eAAe,CAAwB;IAC/C,OAAO,CAAC,kBAAkB,CAAsB;IAChD,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,mBAAmB,CAAuB;gBAEtC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW;IA4B/C,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW;IAI7C,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,WAAW;IAMvC,oBAAoB,IAAI,MAAM;WAiBvB,sBAAsB,CAAC,GAAG,EAAE,GAAG,GAAG,WAAW;IAkBpD,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAalC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,GAAG,WAAW;IAKpC,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,WAAW;IAMzC,MAAM,CAAC,kBAAkB,SAAO;IAEhC,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW;IAKrD,wBAAwB,IAAI,MAAM,GAAG,SAAS;IAI9C,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IASjE,cAAc,CAAC,SAAS,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW;IAc5D,sBAAsB,IAAI,QAAQ,GAAG,SAAS;IAI9C,WAAW,IAAI,OAAO;IAItB,OAAO,IAAI,MAAM;IAUjB,aAAa,IAAI,WAAW;IAQ5B,iBAAiB,IAAI,OAAO;IAI5B,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM;IAO5C,eAAe,IAAI,MAAM;IAQzB,oBAAoB,IAAI,iBAAiB,GAAG,SAAS;IAOrD,cAAc,IAAI,MAAM,GAAG,SAAS;IAUpC,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW;IAM1C,aAAa,IAAI,MAAM;IAIvB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW;IAK1C,aAAa,IAAI,MAAM;IAIvB,mBAAmB,IAAI,MAAM;IAI7B,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM;IAMrD,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW;IAKxC,aAAa,IAAI,MAAM,GAAG,SAAS;IAInC,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW;IAKlD,uBAAuB,IAAI,MAAM,GAAG,SAAS;IAI7C,iBAAiB,CAAC,IAAI,EAAE,cAAc,GAAG,WAAW;IAKpD,iBAAiB,IAAI,cAAc,GAAG,SAAS;IAI/C,kBAAkB,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,WAAW;IAKjE,kBAAkB,IAAI,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC;IAI3C,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAQjD,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC;IAO3D,qBAAqB,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,WAAW;IAK7D,qBAAqB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAItC,uBAAuB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC;IAM9D,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAgB9D,4BAA4B,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC;YAK9D,kBAAkB;IAc1B,iBAAiB,CAAC,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IAkB5C,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAItC,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9C,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW;IAK3C,cAAc,IAAI,OAAO;IAIzB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW;IAK3C,cAAc,IAAI,OAAO;IAIzB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW;IAK3C,cAAc,IAAI,OAAO;IAIzB,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO;IAQ9C,WAAW,IAAI,OAAO;IAItB,WAAW,IAAI,aAAa;CAO7B;AAED,eAAO,MAAM,iBAAiB,aAAoB,CAAC;AAEnD,wBAAsB,QAAQ,CAC5B,aAAa,EAAE,QAAQ,EACvB,YAAY,CAAC,EAAE,QAAQ,EACvB,SAAS,CAAC,EAAE,WAAW,EACvB,UAAU,CAAC,EAAE,OAAO,GACnB,OAAO,CAAC,MAAM,CAAC,CAkCjB;AAED,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,EAC1B,aAAa,CAAC,EAAE,iBAAiB,EACjC,GAAG,CAAC,EAAE,WAAW,EACjB,UAAU,CAAC,EAAE,OAAO,GACnB,OAAO,CAAC,MAAM,CAAC,CASjB;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,CAa/D;AAUD,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,SAAS,EAAE,EAClB,GAAG,EAAE,WAAW,EAChB,YAAY,CAAC,EAAE,QAAQ,iBAwBxB;AAsFD,wBAAsB,yBAAyB,CAC7C,UAAU,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,MAAM,EACrB,SAAS,CAAC,EAAE,WAAW,GACtB,OAAO,CAAC,MAAM,CAAC,CA0BjB"}
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
- await evaluateStatement(stmts[i], env);
452
- if (env.isSuspended()) {
453
- const cont = stmts.slice(i + 1, stmts.length);
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
- const lastResult = env.getLastResult();
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
- const handler = handlers ? handlers.get('error') : undefined;
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 result = cleanupAgentResponse(env.getLastResult());
1084
+ const r = env.getLastResult();
1085
+ const isPlanner = agent.isPlanner();
1086
+ const result = isPlanner ? cleanupAgentResponse(r) : r;
1048
1087
  if (result) {
1049
- if (agent.isPlanner()) {
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(loopEnv.getLastResult());
1165
+ env.setLastResult(finalResult);
1125
1166
  }
1126
1167
  else {
1127
1168
  env.setLastResult(EmptyResult);