@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.
- package/CHANGELOG.md +22 -0
- package/dist/modules/common/common.module.js +9 -15
- package/dist/modules/common/common.module.js.map +1 -1
- package/dist/modules/common/errors/object-expression.error.d.ts +4 -0
- package/dist/modules/common/errors/object-expression.error.js +13 -0
- package/dist/modules/common/errors/object-expression.error.js.map +1 -0
- package/dist/modules/common/errors/template-expression.error.d.ts +4 -0
- package/dist/modules/common/errors/template-expression.error.js +13 -0
- package/dist/modules/common/errors/template-expression.error.js.map +1 -0
- package/dist/modules/common/services/context.service.d.ts +1 -0
- package/dist/modules/common/services/context.service.js +4 -0
- package/dist/modules/common/services/context.service.js.map +1 -1
- package/dist/modules/common/services/expression-handler/object-expression.handler.d.ts +20 -0
- package/dist/modules/common/services/expression-handler/object-expression.handler.js +125 -0
- package/dist/modules/common/services/expression-handler/object-expression.handler.js.map +1 -0
- package/dist/modules/common/services/expression-handler/template-expression.handler.d.ts +12 -0
- package/dist/modules/common/services/expression-handler/template-expression.handler.js +63 -0
- package/dist/modules/common/services/expression-handler/template-expression.handler.js.map +1 -0
- package/dist/modules/common/services/handlebars-helpers/date-formatter-handlebars-helper.service.d.ts +9 -0
- package/dist/modules/common/services/handlebars-helpers/date-formatter-handlebars-helper.service.js +124 -0
- package/dist/modules/common/services/handlebars-helpers/date-formatter-handlebars-helper.service.js.map +1 -0
- package/dist/modules/common/services/handlebars-helpers/index.d.ts +1 -0
- package/dist/modules/common/services/handlebars-helpers/index.js +18 -0
- package/dist/modules/common/services/handlebars-helpers/index.js.map +1 -0
- package/dist/modules/common/services/handlebars-processor.service.d.ts +12 -0
- package/dist/modules/common/services/handlebars-processor.service.js +70 -0
- package/dist/modules/common/services/handlebars-processor.service.js.map +1 -0
- package/dist/modules/common/services/index.d.ts +6 -5
- package/dist/modules/common/services/index.js +6 -5
- package/dist/modules/common/services/index.js.map +1 -1
- package/dist/modules/common/services/template.service.d.ts +16 -0
- package/dist/modules/common/services/template.service.js +64 -0
- package/dist/modules/common/services/template.service.js.map +1 -0
- package/dist/modules/common/services/variable-sanitizer.service.d.ts +9 -0
- package/dist/modules/common/services/variable-sanitizer.service.js +84 -0
- package/dist/modules/common/services/variable-sanitizer.service.js.map +1 -0
- package/dist/modules/configuration/configuration.module.js +2 -1
- package/dist/modules/configuration/configuration.module.js.map +1 -1
- package/dist/modules/configuration/services/configuration.service.d.ts +15 -14
- package/dist/modules/configuration/services/configuration.service.js +97 -107
- package/dist/modules/configuration/services/configuration.service.js.map +1 -1
- package/dist/modules/configuration/services/dynamic-schema-generator.service.js +3 -1
- package/dist/modules/configuration/services/dynamic-schema-generator.service.js.map +1 -1
- package/dist/modules/configuration/services/index.d.ts +1 -0
- package/dist/modules/configuration/services/index.js +1 -0
- package/dist/modules/configuration/services/index.js.map +1 -1
- package/dist/modules/configuration/services/schema-registry.service.d.ts +9 -0
- package/dist/modules/configuration/services/schema-registry.service.js +41 -0
- package/dist/modules/configuration/services/schema-registry.service.js.map +1 -0
- package/dist/modules/configuration/services/service-registry.service.js +1 -1
- package/dist/modules/configuration/services/service-registry.service.js.map +1 -1
- package/dist/modules/persistence/services/document.service.d.ts +6 -2
- package/dist/modules/persistence/services/document.service.js +29 -17
- package/dist/modules/persistence/services/document.service.js.map +1 -1
- package/dist/modules/persistence/services/namespace.service.js.map +1 -1
- package/dist/modules/persistence/services/workflow.service.js.map +1 -1
- package/dist/modules/workflow-processor/services/index.d.ts +4 -1
- package/dist/modules/workflow-processor/services/index.js +4 -1
- package/dist/modules/workflow-processor/services/index.js.map +1 -1
- package/dist/modules/workflow-processor/services/pipeline-processor.service.d.ts +15 -8
- package/dist/modules/workflow-processor/services/pipeline-processor.service.js +163 -29
- package/dist/modules/workflow-processor/services/pipeline-processor.service.js.map +1 -1
- package/dist/modules/workflow-processor/services/root-processor.service.d.ts +12 -0
- package/dist/modules/workflow-processor/services/root-processor.service.js +49 -0
- package/dist/modules/workflow-processor/services/root-processor.service.js.map +1 -0
- package/dist/modules/workflow-processor/services/service-execution.service.d.ts +12 -0
- package/dist/modules/workflow-processor/services/service-execution.service.js +53 -0
- package/dist/modules/workflow-processor/services/service-execution.service.js.map +1 -0
- package/dist/modules/workflow-processor/services/state-machine-config.service.d.ts +2 -17
- package/dist/modules/workflow-processor/services/state-machine-config.service.js +33 -17
- package/dist/modules/workflow-processor/services/state-machine-config.service.js.map +1 -1
- package/dist/modules/workflow-processor/services/state-machine-processor.service.d.ts +11 -7
- package/dist/modules/workflow-processor/services/state-machine-processor.service.js +95 -30
- package/dist/modules/workflow-processor/services/state-machine-processor.service.js.map +1 -1
- package/dist/modules/workflow-processor/services/template-expression-evaluator.service.d.ts +24 -4
- package/dist/modules/workflow-processor/services/template-expression-evaluator.service.js +90 -21
- package/dist/modules/workflow-processor/services/template-expression-evaluator.service.js.map +1 -1
- package/dist/modules/workflow-processor/services/tool-execution.service.d.ts +8 -20
- package/dist/modules/workflow-processor/services/tool-execution.service.js +31 -55
- package/dist/modules/workflow-processor/services/tool-execution.service.js.map +1 -1
- package/dist/modules/workflow-processor/services/workflow-context.service.d.ts +4 -0
- package/dist/modules/{common/services/template-engine.service.js → workflow-processor/services/workflow-context.service.js} +12 -15
- package/dist/modules/workflow-processor/services/workflow-context.service.js.map +1 -0
- package/dist/modules/workflow-processor/services/workflow-processor.service.d.ts +5 -26
- package/dist/modules/workflow-processor/services/workflow-processor.service.js +18 -184
- package/dist/modules/workflow-processor/services/workflow-processor.service.js.map +1 -1
- package/dist/modules/workflow-processor/services/workflow-state.service.d.ts +8 -0
- package/dist/modules/workflow-processor/services/workflow-state.service.js +49 -0
- package/dist/modules/workflow-processor/services/workflow-state.service.js.map +1 -0
- package/dist/modules/workflow-processor/tool-services/add-namespace.service.js +4 -4
- package/dist/modules/workflow-processor/tool-services/add-namespace.service.js.map +1 -1
- package/dist/modules/workflow-processor/tool-services/batch-create-documents.service.d.ts +6 -10
- package/dist/modules/workflow-processor/tool-services/batch-create-documents.service.js +39 -27
- package/dist/modules/workflow-processor/tool-services/batch-create-documents.service.js.map +1 -1
- package/dist/modules/workflow-processor/tool-services/create-document.service.d.ts +7 -142
- package/dist/modules/workflow-processor/tool-services/create-document.service.js +91 -35
- package/dist/modules/workflow-processor/tool-services/create-document.service.js.map +1 -1
- package/dist/modules/workflow-processor/tool-services/load-document.service.d.ts +26 -51
- package/dist/modules/workflow-processor/tool-services/load-document.service.js +59 -81
- package/dist/modules/workflow-processor/tool-services/load-document.service.js.map +1 -1
- package/dist/modules/workflow-processor/tool-services/mock.service.d.ts +11 -8
- package/dist/modules/workflow-processor/tool-services/mock.service.js +41 -9
- package/dist/modules/workflow-processor/tool-services/mock.service.js.map +1 -1
- package/dist/modules/workflow-processor/tool-services/set-context.service.d.ts +3 -0
- package/dist/modules/workflow-processor/tool-services/set-context.service.js +11 -5
- package/dist/modules/workflow-processor/tool-services/set-context.service.js.map +1 -1
- package/dist/modules/workflow-processor/tool-services/set-target-place.service.d.ts +1 -1
- package/dist/modules/workflow-processor/tool-services/set-target-place.service.js +6 -5
- package/dist/modules/workflow-processor/tool-services/set-target-place.service.js.map +1 -1
- package/dist/modules/workflow-processor/tool-services/transition-selector.service.js +2 -2
- package/dist/modules/workflow-processor/tool-services/transition-selector.service.js.map +1 -1
- package/dist/modules/workflow-processor/tool-services/update-document.service.d.ts +32 -62
- package/dist/modules/workflow-processor/tool-services/update-document.service.js +92 -7
- package/dist/modules/workflow-processor/tool-services/update-document.service.js.map +1 -1
- package/dist/modules/workflow-processor/validators/workflow-option.validator.d.ts +1 -1
- package/dist/modules/workflow-processor/validators/workflow-option.validator.js +3 -3
- package/dist/modules/workflow-processor/validators/workflow-option.validator.js.map +1 -1
- package/dist/modules/workflow-processor/workflow-processor.module.js +9 -2
- package/dist/modules/workflow-processor/workflow-processor.module.js.map +1 -1
- package/dist/utils/load-configuration.js +5 -3
- package/dist/utils/load-configuration.js.map +1 -1
- package/package.json +5 -3
- package/dist/modules/common/services/document-helper.service.d.ts +0 -212
- package/dist/modules/common/services/document-helper.service.js +0 -53
- package/dist/modules/common/services/document-helper.service.js.map +0 -1
- package/dist/modules/common/services/expression-evaluator.service.d.ts +0 -5
- package/dist/modules/common/services/expression-evaluator.service.js +0 -44
- package/dist/modules/common/services/expression-evaluator.service.js.map +0 -1
- package/dist/modules/common/services/schema-validator.service.d.ts +0 -7
- package/dist/modules/common/services/schema-validator.service.js +0 -41
- package/dist/modules/common/services/schema-validator.service.js.map +0 -1
- package/dist/modules/common/services/template-engine.service.d.ts +0 -5
- package/dist/modules/common/services/template-engine.service.js.map +0 -1
- package/dist/modules/common/services/value-parser.service.d.ts +0 -19
- package/dist/modules/common/services/value-parser.service.js +0 -68
- package/dist/modules/common/services/value-parser.service.js.map +0 -1
- package/dist/modules/configuration/commands/generate-schemas.command.d.ts +0 -8
- package/dist/modules/configuration/commands/generate-schemas.command.js +0 -34
- package/dist/modules/configuration/commands/generate-schemas.command.js.map +0 -1
- package/dist/modules/workflow-processor/services/tool-schema-validator.service.d.ts +0 -5
- package/dist/modules/workflow-processor/services/tool-schema-validator.service.js +0 -41
- 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
|
-
|
|
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,
|
|
42
|
+
constructor(loopConfigService, namespaceProcessorService, contextService, templateExpressionEvaluatorService, workflowProcessor) {
|
|
27
43
|
this.loopConfigService = loopConfigService;
|
|
28
|
-
this.
|
|
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
|
|
34
|
-
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
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
|
-
|
|
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
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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
|
-
...
|
|
38
|
-
|
|
39
|
-
|
|
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
|
-
...
|
|
44
|
-
|
|
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;
|
|
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,
|
|
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 {
|
|
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
|
|
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,
|
|
19
|
-
canSkipRun(workflow: WorkflowEntity,
|
|
20
|
-
processStateMachine(context: ContextInterface, workflow: 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
|
-
|
|
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
|
}
|