@loopstack/core 0.1.2 → 0.3.0

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 (142) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/modules/common/common.module.js +9 -15
  3. package/dist/modules/common/common.module.js.map +1 -1
  4. package/dist/modules/common/errors/object-expression.error.d.ts +4 -0
  5. package/dist/modules/common/errors/object-expression.error.js +13 -0
  6. package/dist/modules/common/errors/object-expression.error.js.map +1 -0
  7. package/dist/modules/common/errors/template-expression.error.d.ts +4 -0
  8. package/dist/modules/common/errors/template-expression.error.js +13 -0
  9. package/dist/modules/common/errors/template-expression.error.js.map +1 -0
  10. package/dist/modules/common/services/context.service.d.ts +1 -0
  11. package/dist/modules/common/services/context.service.js +4 -0
  12. package/dist/modules/common/services/context.service.js.map +1 -1
  13. package/dist/modules/common/services/expression-handler/object-expression.handler.d.ts +20 -0
  14. package/dist/modules/common/services/expression-handler/object-expression.handler.js +125 -0
  15. package/dist/modules/common/services/expression-handler/object-expression.handler.js.map +1 -0
  16. package/dist/modules/common/services/expression-handler/template-expression.handler.d.ts +12 -0
  17. package/dist/modules/common/services/expression-handler/template-expression.handler.js +63 -0
  18. package/dist/modules/common/services/expression-handler/template-expression.handler.js.map +1 -0
  19. package/dist/modules/common/services/handlebars-helpers/date-formatter-handlebars-helper.service.d.ts +9 -0
  20. package/dist/modules/common/services/handlebars-helpers/date-formatter-handlebars-helper.service.js +124 -0
  21. package/dist/modules/common/services/handlebars-helpers/date-formatter-handlebars-helper.service.js.map +1 -0
  22. package/dist/modules/common/services/handlebars-helpers/index.d.ts +1 -0
  23. package/dist/modules/common/services/handlebars-helpers/index.js +18 -0
  24. package/dist/modules/common/services/handlebars-helpers/index.js.map +1 -0
  25. package/dist/modules/common/services/handlebars-processor.service.d.ts +12 -0
  26. package/dist/modules/common/services/handlebars-processor.service.js +70 -0
  27. package/dist/modules/common/services/handlebars-processor.service.js.map +1 -0
  28. package/dist/modules/common/services/index.d.ts +6 -5
  29. package/dist/modules/common/services/index.js +6 -5
  30. package/dist/modules/common/services/index.js.map +1 -1
  31. package/dist/modules/common/services/template.service.d.ts +16 -0
  32. package/dist/modules/common/services/template.service.js +64 -0
  33. package/dist/modules/common/services/template.service.js.map +1 -0
  34. package/dist/modules/common/services/variable-sanitizer.service.d.ts +9 -0
  35. package/dist/modules/common/services/variable-sanitizer.service.js +84 -0
  36. package/dist/modules/common/services/variable-sanitizer.service.js.map +1 -0
  37. package/dist/modules/configuration/configuration.module.js +2 -1
  38. package/dist/modules/configuration/configuration.module.js.map +1 -1
  39. package/dist/modules/configuration/services/configuration.service.d.ts +15 -14
  40. package/dist/modules/configuration/services/configuration.service.js +97 -107
  41. package/dist/modules/configuration/services/configuration.service.js.map +1 -1
  42. package/dist/modules/configuration/services/dynamic-schema-generator.service.js +3 -1
  43. package/dist/modules/configuration/services/dynamic-schema-generator.service.js.map +1 -1
  44. package/dist/modules/configuration/services/index.d.ts +1 -0
  45. package/dist/modules/configuration/services/index.js +1 -0
  46. package/dist/modules/configuration/services/index.js.map +1 -1
  47. package/dist/modules/configuration/services/schema-registry.service.d.ts +9 -0
  48. package/dist/modules/configuration/services/schema-registry.service.js +41 -0
  49. package/dist/modules/configuration/services/schema-registry.service.js.map +1 -0
  50. package/dist/modules/configuration/services/service-registry.service.js +1 -1
  51. package/dist/modules/configuration/services/service-registry.service.js.map +1 -1
  52. package/dist/modules/persistence/services/document.service.d.ts +6 -2
  53. package/dist/modules/persistence/services/document.service.js +29 -17
  54. package/dist/modules/persistence/services/document.service.js.map +1 -1
  55. package/dist/modules/persistence/services/namespace.service.js.map +1 -1
  56. package/dist/modules/persistence/services/workflow.service.js.map +1 -1
  57. package/dist/modules/workflow-processor/services/index.d.ts +4 -1
  58. package/dist/modules/workflow-processor/services/index.js +4 -1
  59. package/dist/modules/workflow-processor/services/index.js.map +1 -1
  60. package/dist/modules/workflow-processor/services/pipeline-processor.service.d.ts +15 -8
  61. package/dist/modules/workflow-processor/services/pipeline-processor.service.js +163 -29
  62. package/dist/modules/workflow-processor/services/pipeline-processor.service.js.map +1 -1
  63. package/dist/modules/workflow-processor/services/root-processor.service.d.ts +12 -0
  64. package/dist/modules/workflow-processor/services/root-processor.service.js +49 -0
  65. package/dist/modules/workflow-processor/services/root-processor.service.js.map +1 -0
  66. package/dist/modules/workflow-processor/services/service-execution.service.d.ts +12 -0
  67. package/dist/modules/workflow-processor/services/service-execution.service.js +53 -0
  68. package/dist/modules/workflow-processor/services/service-execution.service.js.map +1 -0
  69. package/dist/modules/workflow-processor/services/state-machine-config.service.d.ts +2 -17
  70. package/dist/modules/workflow-processor/services/state-machine-config.service.js +33 -17
  71. package/dist/modules/workflow-processor/services/state-machine-config.service.js.map +1 -1
  72. package/dist/modules/workflow-processor/services/state-machine-processor.service.d.ts +11 -7
  73. package/dist/modules/workflow-processor/services/state-machine-processor.service.js +95 -30
  74. package/dist/modules/workflow-processor/services/state-machine-processor.service.js.map +1 -1
  75. package/dist/modules/workflow-processor/services/template-expression-evaluator.service.d.ts +24 -4
  76. package/dist/modules/workflow-processor/services/template-expression-evaluator.service.js +90 -21
  77. package/dist/modules/workflow-processor/services/template-expression-evaluator.service.js.map +1 -1
  78. package/dist/modules/workflow-processor/services/tool-execution.service.d.ts +8 -20
  79. package/dist/modules/workflow-processor/services/tool-execution.service.js +31 -55
  80. package/dist/modules/workflow-processor/services/tool-execution.service.js.map +1 -1
  81. package/dist/modules/workflow-processor/services/workflow-context.service.d.ts +4 -0
  82. package/dist/modules/{common/services/template-engine.service.js → workflow-processor/services/workflow-context.service.js} +12 -15
  83. package/dist/modules/workflow-processor/services/workflow-context.service.js.map +1 -0
  84. package/dist/modules/workflow-processor/services/workflow-processor.service.d.ts +5 -26
  85. package/dist/modules/workflow-processor/services/workflow-processor.service.js +18 -184
  86. package/dist/modules/workflow-processor/services/workflow-processor.service.js.map +1 -1
  87. package/dist/modules/workflow-processor/services/workflow-state.service.d.ts +8 -0
  88. package/dist/modules/workflow-processor/services/workflow-state.service.js +49 -0
  89. package/dist/modules/workflow-processor/services/workflow-state.service.js.map +1 -0
  90. package/dist/modules/workflow-processor/tool-services/add-namespace.service.js +4 -4
  91. package/dist/modules/workflow-processor/tool-services/add-namespace.service.js.map +1 -1
  92. package/dist/modules/workflow-processor/tool-services/batch-create-documents.service.d.ts +6 -10
  93. package/dist/modules/workflow-processor/tool-services/batch-create-documents.service.js +39 -27
  94. package/dist/modules/workflow-processor/tool-services/batch-create-documents.service.js.map +1 -1
  95. package/dist/modules/workflow-processor/tool-services/create-document.service.d.ts +7 -142
  96. package/dist/modules/workflow-processor/tool-services/create-document.service.js +91 -35
  97. package/dist/modules/workflow-processor/tool-services/create-document.service.js.map +1 -1
  98. package/dist/modules/workflow-processor/tool-services/load-document.service.d.ts +26 -51
  99. package/dist/modules/workflow-processor/tool-services/load-document.service.js +59 -81
  100. package/dist/modules/workflow-processor/tool-services/load-document.service.js.map +1 -1
  101. package/dist/modules/workflow-processor/tool-services/mock.service.d.ts +11 -8
  102. package/dist/modules/workflow-processor/tool-services/mock.service.js +41 -9
  103. package/dist/modules/workflow-processor/tool-services/mock.service.js.map +1 -1
  104. package/dist/modules/workflow-processor/tool-services/set-context.service.d.ts +3 -0
  105. package/dist/modules/workflow-processor/tool-services/set-context.service.js +11 -5
  106. package/dist/modules/workflow-processor/tool-services/set-context.service.js.map +1 -1
  107. package/dist/modules/workflow-processor/tool-services/set-target-place.service.d.ts +1 -1
  108. package/dist/modules/workflow-processor/tool-services/set-target-place.service.js +6 -5
  109. package/dist/modules/workflow-processor/tool-services/set-target-place.service.js.map +1 -1
  110. package/dist/modules/workflow-processor/tool-services/transition-selector.service.js +2 -2
  111. package/dist/modules/workflow-processor/tool-services/transition-selector.service.js.map +1 -1
  112. package/dist/modules/workflow-processor/tool-services/update-document.service.d.ts +32 -62
  113. package/dist/modules/workflow-processor/tool-services/update-document.service.js +92 -7
  114. package/dist/modules/workflow-processor/tool-services/update-document.service.js.map +1 -1
  115. package/dist/modules/workflow-processor/validators/workflow-option.validator.d.ts +1 -1
  116. package/dist/modules/workflow-processor/validators/workflow-option.validator.js +3 -3
  117. package/dist/modules/workflow-processor/validators/workflow-option.validator.js.map +1 -1
  118. package/dist/modules/workflow-processor/workflow-processor.module.js +9 -2
  119. package/dist/modules/workflow-processor/workflow-processor.module.js.map +1 -1
  120. package/dist/utils/load-configuration.js +5 -3
  121. package/dist/utils/load-configuration.js.map +1 -1
  122. package/package.json +5 -3
  123. package/dist/modules/common/services/document-helper.service.d.ts +0 -212
  124. package/dist/modules/common/services/document-helper.service.js +0 -53
  125. package/dist/modules/common/services/document-helper.service.js.map +0 -1
  126. package/dist/modules/common/services/expression-evaluator.service.d.ts +0 -5
  127. package/dist/modules/common/services/expression-evaluator.service.js +0 -44
  128. package/dist/modules/common/services/expression-evaluator.service.js.map +0 -1
  129. package/dist/modules/common/services/schema-validator.service.d.ts +0 -7
  130. package/dist/modules/common/services/schema-validator.service.js +0 -41
  131. package/dist/modules/common/services/schema-validator.service.js.map +0 -1
  132. package/dist/modules/common/services/template-engine.service.d.ts +0 -5
  133. package/dist/modules/common/services/template-engine.service.js.map +0 -1
  134. package/dist/modules/common/services/value-parser.service.d.ts +0 -19
  135. package/dist/modules/common/services/value-parser.service.js +0 -68
  136. package/dist/modules/common/services/value-parser.service.js.map +0 -1
  137. package/dist/modules/configuration/commands/generate-schemas.command.d.ts +0 -8
  138. package/dist/modules/configuration/commands/generate-schemas.command.js +0 -34
  139. package/dist/modules/configuration/commands/generate-schemas.command.js.map +0 -1
  140. package/dist/modules/workflow-processor/services/tool-schema-validator.service.d.ts +0 -5
  141. package/dist/modules/workflow-processor/services/tool-schema-validator.service.js +0 -41
  142. package/dist/modules/workflow-processor/services/tool-schema-validator.service.js.map +0 -1
@@ -13,49 +13,183 @@ Object.defineProperty(exports, "__esModule", { value: true });
13
13
  exports.PipelineProcessorService = void 0;
14
14
  const common_1 = require("@nestjs/common");
15
15
  const configuration_1 = require("../../configuration");
16
- const persistence_1 = require("../../persistence");
17
- const workflow_processor_service_1 = require("./workflow-processor.service");
18
16
  const common_2 = require("../../common");
17
+ const namespace_processor_service_1 = require("./namespace-processor.service");
18
+ const workflow_processor_service_1 = require("./workflow-processor.service");
19
+ const template_expression_evaluator_service_1 = require("./template-expression-evaluator.service");
20
+ const zod_1 = require("zod");
21
+ const SequenceItemSchema = zod_1.z
22
+ .object({
23
+ workflow: zod_1.z.string().optional(),
24
+ pipeline: zod_1.z.string().optional(),
25
+ condition: zod_1.z.boolean().optional(),
26
+ })
27
+ .strict();
28
+ const FactoryIteratorItemSchema = zod_1.z
29
+ .object({
30
+ label: zod_1.z.string(),
31
+ meta: zod_1.z.any(),
32
+ })
33
+ .strict();
34
+ const FactoryIteratorSourceSchema = zod_1.z.array(zod_1.z.record(zod_1.z.string(), zod_1.z.any()));
19
35
  let PipelineProcessorService = PipelineProcessorService_1 = class PipelineProcessorService {
20
36
  loopConfigService;
21
- pipelineService;
22
- workflowProcessorService;
23
- namespacesService;
37
+ namespaceProcessorService;
24
38
  contextService;
39
+ templateExpressionEvaluatorService;
40
+ workflowProcessor;
25
41
  logger = new common_1.Logger(PipelineProcessorService_1.name);
26
- constructor(loopConfigService, pipelineService, workflowProcessorService, namespacesService, contextService) {
42
+ constructor(loopConfigService, namespaceProcessorService, contextService, templateExpressionEvaluatorService, workflowProcessor) {
27
43
  this.loopConfigService = loopConfigService;
28
- this.pipelineService = pipelineService;
29
- this.workflowProcessorService = workflowProcessorService;
30
- this.namespacesService = namespacesService;
44
+ this.namespaceProcessorService = namespaceProcessorService;
31
45
  this.contextService = contextService;
46
+ this.templateExpressionEvaluatorService = templateExpressionEvaluatorService;
47
+ this.workflowProcessor = workflowProcessor;
48
+ }
49
+ createIndex(ltreeIndex, increment = 1) {
50
+ const parts = ltreeIndex.split('.').map(Number);
51
+ parts[parts.length - 1] += increment;
52
+ return parts.map((part) => part.toString().padStart(4, '0')).join('.');
53
+ }
54
+ async runSequenceType(configElement, context) {
55
+ const sequence = configElement.config.sequence;
56
+ const index = `${context.index}.0`;
57
+ let lastContext = this.contextService.create(context);
58
+ for (let i = 0; i < sequence.length; i++) {
59
+ const item = sequence[i];
60
+ const evaluatedItem = this.templateExpressionEvaluatorService.parse(item, {
61
+ context: lastContext,
62
+ }, {
63
+ schema: SequenceItemSchema,
64
+ omitAliasVariables: true,
65
+ omitUseTemplates: true,
66
+ omitWorkflowData: true,
67
+ });
68
+ if (evaluatedItem.condition === false) {
69
+ continue;
70
+ }
71
+ lastContext.index = this.createIndex(index, i + 1);
72
+ lastContext = await this.processPipelineItem(item, lastContext, configElement);
73
+ if (lastContext.stop) {
74
+ break;
75
+ }
76
+ }
77
+ return lastContext;
78
+ }
79
+ configExists(type, name) {
80
+ return this.loopConfigService.has(`${type}s`, name);
32
81
  }
33
- async processPipeline(payload) {
34
- this.logger.debug(`Processing pipeline: ${payload.pipelineId}`);
35
- const pipeline = await this.pipelineService.getPipeline(payload.pipelineId, payload.userId);
36
- if (!pipeline) {
37
- throw new Error(`pipeline "${payload.pipelineId}" not found.`);
38
- }
39
- const pipelineConfig = this.loopConfigService.get('pipelines', pipeline.model);
40
- if (!pipelineConfig) {
41
- throw new Error(`pipeline model "${pipeline.model}" not found.`);
42
- }
43
- const namespace = await this.namespacesService.createRootNamespace(pipeline);
44
- const context = this.contextService.createRootContext(pipeline, {
45
- labels: [...pipeline.labels, namespace.name],
46
- namespace: namespace,
47
- transition: payload.transition,
82
+ async prepareAllContexts(context, factory, items) {
83
+ const index = `${context.index}.0`;
84
+ const contexts = [];
85
+ for (let i = 0; i < items.length; i++) {
86
+ const item = items[i];
87
+ const parsedIterator = this.templateExpressionEvaluatorService.parse({
88
+ label: factory.iterator.label,
89
+ meta: factory.iterator.meta,
90
+ }, {
91
+ context,
92
+ item,
93
+ index: i + 1,
94
+ }, {
95
+ schema: FactoryIteratorItemSchema,
96
+ omitAliasVariables: true,
97
+ omitUseTemplates: true,
98
+ omitWorkflowData: true,
99
+ });
100
+ const label = parsedIterator.label ?? item;
101
+ const metadata = parsedIterator.meta;
102
+ const localContext = await this.namespaceProcessorService.createNamespace(context, {
103
+ label,
104
+ meta: metadata,
105
+ });
106
+ localContext.item = item;
107
+ localContext.index = this.createIndex(index, i + 1);
108
+ contexts.push(localContext);
109
+ }
110
+ return contexts;
111
+ }
112
+ async runFactoryType(configElement, context) {
113
+ const items = this.templateExpressionEvaluatorService.parse(configElement.config.iterator.source, { context }, {
114
+ schema: FactoryIteratorSourceSchema,
115
+ omitAliasVariables: true,
116
+ omitUseTemplates: true,
117
+ omitWorkflowData: true,
48
118
  });
49
- return this.workflowProcessorService.start(pipelineConfig.entrypoint, context);
119
+ const preparedChildContexts = await this.prepareAllContexts(context, configElement.config, items);
120
+ await this.namespaceProcessorService.cleanupNamespace(context, preparedChildContexts);
121
+ let results = [];
122
+ if (configElement.config.parallel) {
123
+ const allItems = preparedChildContexts.map((childContext) => this.processPipelineItem(configElement.config.factory, childContext, configElement));
124
+ results = await Promise.all(allItems);
125
+ }
126
+ else {
127
+ for (const childContext of preparedChildContexts) {
128
+ const resultContext = await this.processPipelineItem(configElement.config.factory, childContext, configElement);
129
+ results.push(resultContext);
130
+ if (resultContext.error || resultContext.stop) {
131
+ break;
132
+ }
133
+ }
134
+ }
135
+ if (results.some((childContext) => childContext.stop)) {
136
+ context.stop = true;
137
+ }
138
+ if (results.some((childContext) => childContext.error)) {
139
+ context.error = true;
140
+ }
141
+ return context;
142
+ }
143
+ async runPipelineType(configElement, context) {
144
+ if (configElement.config.namespace) {
145
+ context = await this.namespaceProcessorService.createNamespace(context, configElement.config.namespace);
146
+ }
147
+ let updatedContext = undefined;
148
+ switch (configElement.config.type) {
149
+ case 'root':
150
+ case 'sequence':
151
+ updatedContext = await this.runSequenceType(configElement, context);
152
+ break;
153
+ case 'factory':
154
+ updatedContext = await this.runFactoryType(configElement, context);
155
+ break;
156
+ }
157
+ if (updatedContext &&
158
+ updatedContext.namespace.id === context.namespace.id) {
159
+ return updatedContext;
160
+ }
161
+ if (updatedContext?.error) {
162
+ context.error = true;
163
+ }
164
+ if (updatedContext?.stop) {
165
+ context.stop = true;
166
+ }
167
+ return context;
168
+ }
169
+ async processPipelineItem(item, context, parentConfig) {
170
+ const type = ['tool', 'pipeline', 'workflow'].find((key) => key in item);
171
+ if (!type) {
172
+ throw new Error('Unknown pipeline item type.');
173
+ }
174
+ const itemName = item[type];
175
+ const configElement = this.loopConfigService.resolveConfig(`${type}s`, itemName, context.includes);
176
+ this.contextService.addIncludes(context, configElement.importMap);
177
+ switch (type) {
178
+ case 'pipeline':
179
+ return this.runPipelineType(configElement, context);
180
+ case 'workflow':
181
+ return this.workflowProcessor.runStateMachineType(configElement, context);
182
+ }
183
+ throw new Error(`Pipeline type ${type} unknown.`);
50
184
  }
51
185
  };
52
186
  exports.PipelineProcessorService = PipelineProcessorService;
53
187
  exports.PipelineProcessorService = PipelineProcessorService = PipelineProcessorService_1 = __decorate([
54
188
  (0, common_1.Injectable)(),
55
189
  __metadata("design:paramtypes", [configuration_1.ConfigurationService,
56
- persistence_1.PipelineService,
57
- workflow_processor_service_1.WorkflowProcessorService,
58
- persistence_1.NamespacesService,
59
- common_2.ContextService])
190
+ namespace_processor_service_1.NamespaceProcessorService,
191
+ common_2.ContextService,
192
+ template_expression_evaluator_service_1.TemplateExpressionEvaluatorService,
193
+ workflow_processor_service_1.WorkflowProcessorService])
60
194
  ], PipelineProcessorService);
61
195
  //# sourceMappingURL=pipeline-processor.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline-processor.service.js","sourceRoot":"","sources":["../../../../src/modules/workflow-processor/services/pipeline-processor.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AACpD,uDAA2D;AAC3D,mDAAuE;AACvE,6EAAwE;AACxE,yCAA8C;AAQvC,IAAM,wBAAwB,gCAA9B,MAAM,wBAAwB;IAGzB;IACA;IACA;IACA;IACA;IANO,MAAM,GAAG,IAAI,eAAM,CAAC,0BAAwB,CAAC,IAAI,CAAC,CAAC;IACpE,YACU,iBAAuC,EACvC,eAAgC,EAChC,wBAAkD,EAClD,iBAAoC,EACpC,cAA8B;QAJ9B,sBAAiB,GAAjB,iBAAiB,CAAsB;QACvC,oBAAe,GAAf,eAAe,CAAiB;QAChC,6BAAwB,GAAxB,wBAAwB,CAA0B;QAClD,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,mBAAc,GAAd,cAAc,CAAgB;IACrC,CAAC;IAEJ,KAAK,CAAC,eAAe,CACnB,OAA4B;QAE5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QAEhE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CACrD,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,MAAM,CACf,CAAC;QACF,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,aAAa,OAAO,CAAC,UAAU,cAAc,CAAC,CAAC;QACjE,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAC/C,WAAW,EACX,QAAQ,CAAC,KAAK,CACf,CAAC;QACF,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,mBAAmB,QAAQ,CAAC,KAAK,cAAc,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC7E,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,QAAQ,EAAE;YAC9D,MAAM,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC;YAC5C,SAAS,EAAE,SAAS;YACpB,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,wBAAwB,CAAC,KAAK,CACxC,cAAc,CAAC,UAAU,EACzB,OAAO,CACR,CAAC;IACJ,CAAC;CACF,CAAA;AA3CY,4DAAwB;mCAAxB,wBAAwB;IADpC,IAAA,mBAAU,GAAE;qCAIkB,oCAAoB;QACtB,6BAAe;QACN,qDAAwB;QAC/B,+BAAiB;QACpB,uBAAc;GAP7B,wBAAwB,CA2CpC"}
1
+ {"version":3,"file":"pipeline-processor.service.js","sourceRoot":"","sources":["../../../../src/modules/workflow-processor/services/pipeline-processor.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { ContextService } from '../../common';
2
+ import { ContextInterface, PipelineEntity } from '@loopstack/shared';
3
+ import { NamespacesService } from '../../persistence';
4
+ import { PipelineProcessorService } from './pipeline-processor.service';
5
+ export declare class RootProcessorService {
6
+ private contextService;
7
+ private processorService;
8
+ private namespacesService;
9
+ private readonly logger;
10
+ constructor(contextService: ContextService, processorService: PipelineProcessorService, namespacesService: NamespacesService);
11
+ processRootPipeline(pipeline: PipelineEntity, payload: any): Promise<ContextInterface>;
12
+ }
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var RootProcessorService_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.RootProcessorService = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ const common_2 = require("../../common");
16
+ const persistence_1 = require("../../persistence");
17
+ const pipeline_processor_service_1 = require("./pipeline-processor.service");
18
+ let RootProcessorService = RootProcessorService_1 = class RootProcessorService {
19
+ contextService;
20
+ processorService;
21
+ namespacesService;
22
+ logger = new common_1.Logger(RootProcessorService_1.name);
23
+ constructor(contextService, processorService, namespacesService) {
24
+ this.contextService = contextService;
25
+ this.processorService = processorService;
26
+ this.namespacesService = namespacesService;
27
+ }
28
+ async processRootPipeline(pipeline, payload) {
29
+ const namespace = await this.namespacesService.createRootNamespace(pipeline);
30
+ const context = this.contextService.createRootContext(pipeline, {
31
+ labels: [...pipeline.labels, namespace.name],
32
+ namespace: namespace,
33
+ transition: payload.transition,
34
+ stop: false,
35
+ error: false,
36
+ });
37
+ return this.processorService.processPipelineItem({
38
+ pipeline: pipeline.model,
39
+ }, context);
40
+ }
41
+ };
42
+ exports.RootProcessorService = RootProcessorService;
43
+ exports.RootProcessorService = RootProcessorService = RootProcessorService_1 = __decorate([
44
+ (0, common_1.Injectable)(),
45
+ __metadata("design:paramtypes", [common_2.ContextService,
46
+ pipeline_processor_service_1.PipelineProcessorService,
47
+ persistence_1.NamespacesService])
48
+ ], RootProcessorService);
49
+ //# sourceMappingURL=root-processor.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"root-processor.service.js","sourceRoot":"","sources":["../../../../src/modules/workflow-processor/services/root-processor.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AACpD,yCAA8C;AAE9C,mDAAsD;AACtD,6EAAwE;AAGjE,IAAM,oBAAoB,4BAA1B,MAAM,oBAAoB;IAGrB;IACA;IACA;IAJO,MAAM,GAAG,IAAI,eAAM,CAAC,sBAAoB,CAAC,IAAI,CAAC,CAAC;IAChE,YACU,cAA8B,EAC9B,gBAA0C,EAC1C,iBAAoC;QAFpC,mBAAc,GAAd,cAAc,CAAgB;QAC9B,qBAAgB,GAAhB,gBAAgB,CAA0B;QAC1C,sBAAiB,GAAjB,iBAAiB,CAAmB;IAC3C,CAAC;IAEJ,KAAK,CAAC,mBAAmB,CACvB,QAAwB,EACxB,OAAY;QAEZ,MAAM,SAAS,GACb,MAAM,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAE7D,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,QAAQ,EAAE;YAC9D,MAAM,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC;YAC5C,SAAS,EAAE,SAAS;YACpB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAC9C;YACE,QAAQ,EAAE,QAAQ,CAAC,KAAK;SACzB,EACD,OAAO,CACR,CAAC;IACJ,CAAC;CACF,CAAA;AA9BY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,mBAAU,GAAE;qCAIe,uBAAc;QACZ,qDAAwB;QACvB,+BAAiB;GALnC,oBAAoB,CA8BhC"}
@@ -0,0 +1,12 @@
1
+ import { ServiceRegistry } from '../../configuration';
2
+ import { ContextInterface, ServiceCallResult, TransitionMetadataInterface } from '@loopstack/shared';
3
+ import { WorkflowEntity } from '@loopstack/shared';
4
+ import { TemplateExpressionEvaluatorService } from './template-expression-evaluator.service';
5
+ import { ServiceCallType } from '@loopstack/shared/dist/schemas/service-call.schema';
6
+ export declare class ServiceExecutionService {
7
+ private serviceRegistry;
8
+ private templateExpressionEvaluatorService;
9
+ private logger;
10
+ constructor(serviceRegistry: ServiceRegistry, templateExpressionEvaluatorService: TemplateExpressionEvaluatorService);
11
+ callService(serviceCall: ServiceCallType, parentArguments: any, workflow: WorkflowEntity | undefined, context: ContextInterface, transitionData: TransitionMetadataInterface): Promise<ServiceCallResult>;
12
+ }
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var ServiceExecutionService_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.ServiceExecutionService = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ const configuration_1 = require("../../configuration");
16
+ const template_expression_evaluator_service_1 = require("./template-expression-evaluator.service");
17
+ let ServiceExecutionService = ServiceExecutionService_1 = class ServiceExecutionService {
18
+ serviceRegistry;
19
+ templateExpressionEvaluatorService;
20
+ logger = new common_1.Logger(ServiceExecutionService_1.name);
21
+ constructor(serviceRegistry, templateExpressionEvaluatorService) {
22
+ this.serviceRegistry = serviceRegistry;
23
+ this.templateExpressionEvaluatorService = templateExpressionEvaluatorService;
24
+ }
25
+ async callService(serviceCall, parentArguments, workflow, context, transitionData) {
26
+ this.logger.debug(`Service ${serviceCall.service} called with arguments`, serviceCall.arguments);
27
+ this.logger.debug(`Parent Arguments:`, parentArguments);
28
+ const { instance, options } = this.serviceRegistry.getServiceByName(serviceCall.service);
29
+ const hasArguments = serviceCall.arguments && Object.keys(serviceCall.arguments).length;
30
+ if (!options.schema && hasArguments) {
31
+ throw Error(`Service called with arguments but no schema defined.`);
32
+ }
33
+ const serviceCallArguments = hasArguments
34
+ ? this.templateExpressionEvaluatorService.parse(serviceCall.arguments, {
35
+ arguments: parentArguments,
36
+ context,
37
+ workflow,
38
+ transition: transitionData,
39
+ }, {
40
+ schema: options.schema,
41
+ })
42
+ : {};
43
+ this.logger.debug(`Calling service ${serviceCall.service}`);
44
+ return instance.apply(serviceCallArguments, workflow, context, transitionData, parentArguments);
45
+ }
46
+ };
47
+ exports.ServiceExecutionService = ServiceExecutionService;
48
+ exports.ServiceExecutionService = ServiceExecutionService = ServiceExecutionService_1 = __decorate([
49
+ (0, common_1.Injectable)(),
50
+ __metadata("design:paramtypes", [configuration_1.ServiceRegistry,
51
+ template_expression_evaluator_service_1.TemplateExpressionEvaluatorService])
52
+ ], ServiceExecutionService);
53
+ //# sourceMappingURL=service-execution.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-execution.service.js","sourceRoot":"","sources":["../../../../src/modules/workflow-processor/services/service-execution.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AACpD,uDAAsD;AAQtD,mGAA6F;AAItF,IAAM,uBAAuB,+BAA7B,MAAM,uBAAuB;IAIxB;IACA;IAJF,MAAM,GAAG,IAAI,eAAM,CAAC,yBAAuB,CAAC,IAAI,CAAC,CAAC;IAE1D,YACU,eAAgC,EAChC,kCAAsE;QADtE,oBAAe,GAAf,eAAe,CAAiB;QAChC,uCAAkC,GAAlC,kCAAkC,CAAoC;IAC7E,CAAC;IAEJ,KAAK,CAAC,WAAW,CACf,WAA4B,EAC5B,eAAoB,EACpB,QAAoC,EACpC,OAAyB,EACzB,cAA2C;QAE3C,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,WAAW,WAAW,CAAC,OAAO,wBAAwB,EACtD,WAAW,CAAC,SAAS,CACtB,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC;QAExD,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CACjE,WAAW,CAAC,OAAO,CACpB,CAAC;QAEF,MAAM,YAAY,GAChB,WAAW,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;QACrE,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,YAAY,EAAE,CAAC;YACpC,MAAM,KAAK,CAAC,sDAAsD,CAAC,CAAC;QACtE,CAAC;QAGD,MAAM,oBAAoB,GAAG,YAAY;YACvC,CAAC,CAAC,IAAI,CAAC,kCAAkC,CAAC,KAAK,CAC3C,WAAW,CAAC,SAAS,EACrB;gBACE,SAAS,EAAE,eAAe;gBAC1B,OAAO;gBACP,QAAQ;gBACR,UAAU,EAAE,cAAc;aAC3B,EACD;gBACE,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CACF;YACH,CAAC,CAAC,EAAE,CAAC;QAEP,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QAE5D,OAAO,QAAQ,CAAC,KAAK,CACnB,oBAAoB,EACpB,QAAQ,EACR,OAAO,EACP,cAAc,EACd,eAAe,CAChB,CAAC;IACJ,CAAC;CACF,CAAA;AAzDY,0DAAuB;kCAAvB,uBAAuB;IADnC,IAAA,mBAAU,GAAE;qCAKgB,+BAAe;QACI,0EAAkC;GALrE,uBAAuB,CAyDnC"}
@@ -1,22 +1,7 @@
1
- import { StateMachineType } from '@loopstack/shared';
1
+ import { StateMachineType, ConfigElement } from '@loopstack/shared';
2
2
  import { ConfigurationService } from '../../configuration';
3
3
  export declare class StateMachineConfigService {
4
4
  private loopConfigService;
5
5
  constructor(loopConfigService: ConfigurationService);
6
- getTemplate(name: string): {
7
- extends?: string | undefined;
8
- transitions?: {
9
- name: string;
10
- from?: string | string[] | undefined;
11
- to?: string | string[] | undefined;
12
- when?: string | undefined;
13
- call?: {
14
- tool: string;
15
- arguments?: any;
16
- exportAs?: string | undefined;
17
- }[] | undefined;
18
- onError?: string | undefined;
19
- }[] | undefined;
20
- };
21
- getConfig(stateMachine: StateMachineType): StateMachineType;
6
+ getConfig(configElement: ConfigElement<StateMachineType>): ConfigElement<StateMachineType>;
22
7
  }
@@ -21,27 +21,43 @@ let StateMachineConfigService = class StateMachineConfigService {
21
21
  constructor(loopConfigService) {
22
22
  this.loopConfigService = loopConfigService;
23
23
  }
24
- getTemplate(name) {
25
- const stateMachine = this.loopConfigService.get('workflowTemplates', name);
26
- if (!stateMachine) {
27
- throw new Error(`State machine template with name ${name} does not exist.`);
28
- }
29
- return this.getConfig(stateMachine);
30
- }
31
- getConfig(stateMachine) {
32
- let transitions = stateMachine.transitions ?? [];
33
- if (stateMachine.extends) {
34
- const parentStateMachine = this.getTemplate(stateMachine.extends);
35
- transitions = lodash_1.default.unionBy(transitions, parentStateMachine?.transitions ?? [], 'name');
24
+ getConfig(configElement) {
25
+ let transitions = configElement.config.transitions ?? [];
26
+ let args = configElement.config.arguments ?? {};
27
+ let parameters = configElement.config.parameters ?? {
28
+ type: 'object',
29
+ };
30
+ let ui = configElement.config.ui ?? {};
31
+ if (!configElement.config.extends) {
36
32
  return {
37
- ...parentStateMachine,
38
- ...stateMachine,
39
- transitions,
33
+ ...configElement,
34
+ config: {
35
+ ...configElement.config,
36
+ transitions,
37
+ arguments: args,
38
+ parameters,
39
+ },
40
40
  };
41
41
  }
42
+ const parentStateMachine = this.getConfig(this.loopConfigService.resolveConfig('workflows', configElement.config.extends, configElement.importMap));
43
+ transitions = lodash_1.default.unionBy(transitions, parentStateMachine?.config.transitions ?? [], 'name');
44
+ args = lodash_1.default.merge(args, parentStateMachine.config.arguments);
45
+ parameters = lodash_1.default.merge(parameters, parentStateMachine.config.parameters);
46
+ ui = lodash_1.default.merge(ui, parentStateMachine.config.ui);
47
+ const mergedImportMap = new Map([
48
+ ...parentStateMachine.importMap,
49
+ ...configElement.importMap,
50
+ ]);
42
51
  return {
43
- ...stateMachine,
44
- transitions,
52
+ ...configElement,
53
+ importMap: mergedImportMap,
54
+ config: {
55
+ ...configElement.config,
56
+ transitions,
57
+ arguments: args,
58
+ parameters,
59
+ ui,
60
+ },
45
61
  };
46
62
  }
47
63
  };
@@ -1 +1 @@
1
- {"version":3,"file":"state-machine-config.service.js","sourceRoot":"","sources":["../../../../src/modules/workflow-processor/services/state-machine-config.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,oDAAuB;AAMvB,uDAA2D;AAGpD,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;IAChB;IAApB,YAAoB,iBAAuC;QAAvC,sBAAiB,GAAjB,iBAAiB,CAAsB;IAAG,CAAC;IAE/D,WAAW,CAAC,IAAY;QACtB,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAC7C,mBAAmB,EACnB,IAAI,CACL,CAAC;QACF,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CACb,oCAAoC,IAAI,kBAAkB,CAC3D,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IACtC,CAAC;IAED,SAAS,CAAC,YAA8B;QACtC,IAAI,WAAW,GAA6B,YAAY,CAAC,WAAW,IAAI,EAAE,CAAC;QAE3E,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;YACzB,MAAM,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAClE,WAAW,GAAG,gBAAC,CAAC,OAAO,CACrB,WAAW,EACX,kBAAkB,EAAE,WAAW,IAAI,EAAE,EACrC,MAAM,CACP,CAAC;YAEF,OAAO;gBACL,GAAG,kBAAkB;gBACrB,GAAG,YAAY;gBACf,WAAW;aACZ,CAAC;QACJ,CAAC;QAED,OAAO;YACL,GAAG,YAAY;YACf,WAAW;SACZ,CAAC;IACJ,CAAC;CACF,CAAA;AAxCY,8DAAyB;oCAAzB,yBAAyB;IADrC,IAAA,mBAAU,GAAE;qCAE4B,oCAAoB;GADhD,yBAAyB,CAwCrC"}
1
+ {"version":3,"file":"state-machine-config.service.js","sourceRoot":"","sources":["../../../../src/modules/workflow-processor/services/state-machine-config.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,oDAAuB;AAOvB,uDAA2D;AAIpD,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;IAChB;IAApB,YAAoB,iBAAuC;QAAvC,sBAAiB,GAAjB,iBAAiB,CAAsB;IAAG,CAAC;IAExD,SAAS,CACd,aAA8C;QAE9C,IAAI,WAAW,GACb,aAAa,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;QACzC,IAAI,IAAI,GAAwB,aAAa,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;QACrE,IAAI,UAAU,GAAwB,aAAa,CAAC,MAAM,CAAC,UAAU,IAAI;YACvE,IAAI,EAAE,QAAQ;SACf,CAAC;QACF,IAAI,EAAE,GAAiB,aAAa,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC;QAErD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAClC,OAAO;gBACL,GAAG,aAAa;gBAChB,MAAM,EAAE;oBACN,GAAG,aAAa,CAAC,MAAM;oBACvB,WAAW;oBACX,SAAS,EAAE,IAAI;oBACf,UAAU;iBACX;aACF,CAAC;QACJ,CAAC;QAED,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,CACvC,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAClC,WAAW,EACX,aAAa,CAAC,MAAM,CAAC,OAAO,EAC5B,aAAa,CAAC,SAAS,CACxB,CACF,CAAC;QAEF,WAAW,GAAG,gBAAC,CAAC,OAAO,CACrB,WAAW,EACX,kBAAkB,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE,EAC5C,MAAM,CACP,CAAC;QACF,IAAI,GAAG,gBAAC,CAAC,KAAK,CAAC,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC1D,UAAU,GAAG,gBAAC,CAAC,KAAK,CAAC,UAAU,EAAE,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACvE,EAAE,GAAG,gBAAC,CAAC,KAAK,CAAC,EAAE,EAAE,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAE/C,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;YAC9B,GAAG,kBAAkB,CAAC,SAAS;YAC/B,GAAG,aAAa,CAAC,SAAS;SAC3B,CAAC,CAAC;QAEH,OAAO;YACL,GAAG,aAAa;YAChB,SAAS,EAAE,eAAe;YAC1B,MAAM,EAAE;gBACN,GAAG,aAAa,CAAC,MAAM;gBACvB,WAAW;gBACX,SAAS,EAAE,IAAI;gBACf,UAAU;gBACV,EAAE;aACH;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AA5DY,8DAAyB;oCAAzB,yBAAyB;IADrC,IAAA,mBAAU,GAAE;qCAE4B,oCAAoB;GADhD,yBAAyB,CA4DrC"}
@@ -1,28 +1,32 @@
1
1
  import { StateMachineConfigService } from './state-machine-config.service';
2
- import { ContextInterface, HistoryTransition, TransitionInfoInterface, TransitionPayloadInterface, WorkflowEntity, WorkflowStateMachineType, WorkflowTransitionType } from '@loopstack/shared';
2
+ import { ConfigElement, ContextInterface, HistoryTransition, ServiceCallResult, ToolCallType, TransitionInfoInterface, TransitionPayloadInterface, WorkflowEntity, WorkflowTransitionType, WorkflowType } from '@loopstack/shared';
3
3
  import { ToolExecutionService } from './tool-execution.service';
4
4
  import { WorkflowService } from '../../persistence';
5
5
  import { StateMachineValidatorRegistry } from './state-machine-validator.registry';
6
- import { ValueParserService } from '../../common';
6
+ import { ContextService } from '../../common';
7
7
  import { StateMachineValidatorResultInterface } from '@loopstack/shared/dist/interfaces/state-machine-validator-result.interface';
8
8
  import { StateMachineInfoDto } from '@loopstack/shared/dist/dto/state-machine-info.dto';
9
9
  import { TemplateExpressionEvaluatorService } from './template-expression-evaluator.service';
10
+ import { WorkflowContextService } from './workflow-context.service';
10
11
  export declare class StateMachineProcessorService {
11
12
  private readonly workflowConfigService;
12
13
  private readonly workflowService;
13
14
  private readonly toolExecutionService;
14
15
  private readonly stateMachineValidatorRegistry;
15
- private readonly configValueParserService;
16
+ private readonly contextService;
16
17
  private readonly templateExpressionEvaluatorService;
18
+ private readonly workflowContextService;
17
19
  private readonly logger;
18
- constructor(workflowConfigService: StateMachineConfigService, workflowService: WorkflowService, toolExecutionService: ToolExecutionService, stateMachineValidatorRegistry: StateMachineValidatorRegistry, configValueParserService: ValueParserService, templateExpressionEvaluatorService: TemplateExpressionEvaluatorService);
19
- canSkipRun(workflow: WorkflowEntity, options: Record<string, any> | undefined): StateMachineValidatorResultInterface;
20
- processStateMachine(context: ContextInterface, workflow: WorkflowEntity, config: WorkflowStateMachineType): Promise<WorkflowEntity>;
20
+ constructor(workflowConfigService: StateMachineConfigService, workflowService: WorkflowService, toolExecutionService: ToolExecutionService, stateMachineValidatorRegistry: StateMachineValidatorRegistry, contextService: ContextService, templateExpressionEvaluatorService: TemplateExpressionEvaluatorService, workflowContextService: WorkflowContextService);
21
+ canSkipRun(workflow: WorkflowEntity, args: Record<string, any> | undefined): StateMachineValidatorResultInterface;
22
+ processStateMachine(context: ContextInterface, workflow: WorkflowEntity, configElement: ConfigElement<WorkflowType>): Promise<WorkflowEntity>;
21
23
  updateWorkflowState(workflow: WorkflowEntity, historyItem: HistoryTransition): void;
22
24
  updateWorkflowAvailableTransitions(workflow: WorkflowEntity, transitions: WorkflowTransitionType[]): void;
23
25
  initStateMachine(workflow: WorkflowEntity, stateMachineInfo: StateMachineInfoDto): Promise<WorkflowEntity>;
24
26
  validateTransition(nextTransition: TransitionInfoInterface, historyItem: HistoryTransition): void;
25
27
  getNextTransition(workflow: WorkflowEntity, pendingTransition: TransitionPayloadInterface | undefined): TransitionInfoInterface | null;
26
28
  commitWorkflowTransition(workflow: WorkflowEntity, nextPlace: string | undefined, nextTransition: TransitionInfoInterface): void;
27
- loopStateMachine(beforeContext: ContextInterface, workflow: WorkflowEntity, config: WorkflowStateMachineType, stateMachineInfo: StateMachineInfoDto): Promise<WorkflowEntity>;
29
+ addWorkflowTransitionData(workflow: WorkflowEntity, transition: string, target: string, data: any): void;
30
+ commitToolCallResult(workflow: WorkflowEntity, transition: string, toolCall: ToolCallType, result: ServiceCallResult | undefined): WorkflowEntity;
31
+ loopStateMachine(beforeContext: ContextInterface, workflow: WorkflowEntity, configElement: ConfigElement<WorkflowType>, stateMachineInfo: StateMachineInfoDto): Promise<WorkflowEntity>;
28
32
  }