@loopstack/core 0.2.0 → 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 (132) hide show
  1. package/CHANGELOG.md +11 -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 -13
  40. package/dist/modules/configuration/services/configuration.service.js +97 -96
  41. package/dist/modules/configuration/services/configuration.service.js.map +1 -1
  42. package/dist/modules/configuration/services/index.d.ts +1 -0
  43. package/dist/modules/configuration/services/index.js +1 -0
  44. package/dist/modules/configuration/services/index.js.map +1 -1
  45. package/dist/modules/configuration/services/schema-registry.service.d.ts +9 -0
  46. package/dist/modules/configuration/services/schema-registry.service.js +41 -0
  47. package/dist/modules/configuration/services/schema-registry.service.js.map +1 -0
  48. package/dist/modules/persistence/services/document.service.d.ts +5 -1
  49. package/dist/modules/persistence/services/document.service.js +27 -15
  50. package/dist/modules/persistence/services/document.service.js.map +1 -1
  51. package/dist/modules/workflow-processor/services/index.d.ts +2 -1
  52. package/dist/modules/workflow-processor/services/index.js +2 -1
  53. package/dist/modules/workflow-processor/services/index.js.map +1 -1
  54. package/dist/modules/workflow-processor/services/pipeline-processor.service.d.ts +9 -8
  55. package/dist/modules/workflow-processor/services/pipeline-processor.service.js +92 -52
  56. package/dist/modules/workflow-processor/services/pipeline-processor.service.js.map +1 -1
  57. package/dist/modules/workflow-processor/services/root-processor.service.d.ts +2 -2
  58. package/dist/modules/workflow-processor/services/root-processor.service.js +1 -0
  59. package/dist/modules/workflow-processor/services/root-processor.service.js.map +1 -1
  60. package/dist/modules/workflow-processor/services/service-execution.service.d.ts +12 -0
  61. package/dist/modules/workflow-processor/services/service-execution.service.js +53 -0
  62. package/dist/modules/workflow-processor/services/service-execution.service.js.map +1 -0
  63. package/dist/modules/workflow-processor/services/state-machine-config.service.d.ts +2 -17
  64. package/dist/modules/workflow-processor/services/state-machine-config.service.js +33 -17
  65. package/dist/modules/workflow-processor/services/state-machine-config.service.js.map +1 -1
  66. package/dist/modules/workflow-processor/services/state-machine-processor.service.d.ts +11 -7
  67. package/dist/modules/workflow-processor/services/state-machine-processor.service.js +90 -24
  68. package/dist/modules/workflow-processor/services/state-machine-processor.service.js.map +1 -1
  69. package/dist/modules/workflow-processor/services/template-expression-evaluator.service.d.ts +24 -4
  70. package/dist/modules/workflow-processor/services/template-expression-evaluator.service.js +90 -21
  71. package/dist/modules/workflow-processor/services/template-expression-evaluator.service.js.map +1 -1
  72. package/dist/modules/workflow-processor/services/tool-execution.service.d.ts +8 -20
  73. package/dist/modules/workflow-processor/services/tool-execution.service.js +31 -55
  74. package/dist/modules/workflow-processor/services/tool-execution.service.js.map +1 -1
  75. package/dist/modules/workflow-processor/services/workflow-context.service.d.ts +4 -0
  76. package/dist/modules/{common/services/template-engine.service.js → workflow-processor/services/workflow-context.service.js} +12 -15
  77. package/dist/modules/workflow-processor/services/workflow-context.service.js.map +1 -0
  78. package/dist/modules/workflow-processor/services/workflow-processor.service.d.ts +2 -2
  79. package/dist/modules/workflow-processor/services/workflow-processor.service.js +12 -8
  80. package/dist/modules/workflow-processor/services/workflow-processor.service.js.map +1 -1
  81. package/dist/modules/workflow-processor/services/workflow-state.service.d.ts +2 -2
  82. package/dist/modules/workflow-processor/services/workflow-state.service.js +5 -5
  83. package/dist/modules/workflow-processor/services/workflow-state.service.js.map +1 -1
  84. package/dist/modules/workflow-processor/tool-services/add-namespace.service.js +4 -4
  85. package/dist/modules/workflow-processor/tool-services/add-namespace.service.js.map +1 -1
  86. package/dist/modules/workflow-processor/tool-services/batch-create-documents.service.d.ts +6 -10
  87. package/dist/modules/workflow-processor/tool-services/batch-create-documents.service.js +38 -26
  88. package/dist/modules/workflow-processor/tool-services/batch-create-documents.service.js.map +1 -1
  89. package/dist/modules/workflow-processor/tool-services/create-document.service.d.ts +17 -138
  90. package/dist/modules/workflow-processor/tool-services/create-document.service.js +83 -31
  91. package/dist/modules/workflow-processor/tool-services/create-document.service.js.map +1 -1
  92. package/dist/modules/workflow-processor/tool-services/load-document.service.d.ts +25 -50
  93. package/dist/modules/workflow-processor/tool-services/load-document.service.js +57 -79
  94. package/dist/modules/workflow-processor/tool-services/load-document.service.js.map +1 -1
  95. package/dist/modules/workflow-processor/tool-services/mock.service.d.ts +11 -8
  96. package/dist/modules/workflow-processor/tool-services/mock.service.js +41 -9
  97. package/dist/modules/workflow-processor/tool-services/mock.service.js.map +1 -1
  98. package/dist/modules/workflow-processor/tool-services/set-context.service.d.ts +3 -0
  99. package/dist/modules/workflow-processor/tool-services/set-context.service.js +11 -5
  100. package/dist/modules/workflow-processor/tool-services/set-context.service.js.map +1 -1
  101. package/dist/modules/workflow-processor/tool-services/set-target-place.service.js +1 -1
  102. package/dist/modules/workflow-processor/tool-services/set-target-place.service.js.map +1 -1
  103. package/dist/modules/workflow-processor/tool-services/transition-selector.service.js +2 -2
  104. package/dist/modules/workflow-processor/tool-services/transition-selector.service.js.map +1 -1
  105. package/dist/modules/workflow-processor/tool-services/update-document.service.d.ts +32 -55
  106. package/dist/modules/workflow-processor/tool-services/update-document.service.js +92 -7
  107. package/dist/modules/workflow-processor/tool-services/update-document.service.js.map +1 -1
  108. package/dist/modules/workflow-processor/validators/workflow-option.validator.d.ts +1 -1
  109. package/dist/modules/workflow-processor/validators/workflow-option.validator.js +3 -3
  110. package/dist/modules/workflow-processor/validators/workflow-option.validator.js.map +1 -1
  111. package/dist/modules/workflow-processor/workflow-processor.module.js +2 -1
  112. package/dist/modules/workflow-processor/workflow-processor.module.js.map +1 -1
  113. package/dist/utils/load-configuration.js +5 -3
  114. package/dist/utils/load-configuration.js.map +1 -1
  115. package/package.json +5 -3
  116. package/dist/modules/common/services/document-helper.service.d.ts +0 -198
  117. package/dist/modules/common/services/document-helper.service.js +0 -53
  118. package/dist/modules/common/services/document-helper.service.js.map +0 -1
  119. package/dist/modules/common/services/expression-evaluator.service.d.ts +0 -5
  120. package/dist/modules/common/services/expression-evaluator.service.js +0 -44
  121. package/dist/modules/common/services/expression-evaluator.service.js.map +0 -1
  122. package/dist/modules/common/services/schema-validator.service.d.ts +0 -7
  123. package/dist/modules/common/services/schema-validator.service.js +0 -41
  124. package/dist/modules/common/services/schema-validator.service.js.map +0 -1
  125. package/dist/modules/common/services/template-engine.service.d.ts +0 -5
  126. package/dist/modules/common/services/template-engine.service.js.map +0 -1
  127. package/dist/modules/common/services/value-parser.service.d.ts +0 -19
  128. package/dist/modules/common/services/value-parser.service.js +0 -68
  129. package/dist/modules/common/services/value-parser.service.js.map +0 -1
  130. package/dist/modules/workflow-processor/services/tool-schema-validator.service.d.ts +0 -5
  131. package/dist/modules/workflow-processor/services/tool-schema-validator.service.js +0 -41
  132. package/dist/modules/workflow-processor/services/tool-schema-validator.service.js.map +0 -1
@@ -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, WorkflowTransitionType, WorkflowType } 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: WorkflowType): 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: WorkflowType, 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
  }
@@ -21,26 +21,39 @@ const common_2 = require("../../common");
21
21
  const state_machine_info_dto_1 = require("@loopstack/shared/dist/dto/state-machine-info.dto");
22
22
  const template_expression_evaluator_service_1 = require("./template-expression-evaluator.service");
23
23
  const lodash_1 = require("lodash");
24
+ const workflow_context_service_1 = require("./workflow-context.service");
25
+ const zod_1 = require("zod");
26
+ const TransitionValidationsSchema = zod_1.z.array(zod_1.z
27
+ .object({
28
+ name: zod_1.z.string(),
29
+ from: zod_1.z.union([zod_1.z.string(), zod_1.z.array(zod_1.z.string())]).optional(),
30
+ to: zod_1.z.union([zod_1.z.string(), zod_1.z.array(zod_1.z.string())]).optional(),
31
+ when: zod_1.z.enum(['manual', 'onEntry']).optional(),
32
+ onError: zod_1.z.string().optional(),
33
+ })
34
+ .strict());
24
35
  let StateMachineProcessorService = StateMachineProcessorService_1 = class StateMachineProcessorService {
25
36
  workflowConfigService;
26
37
  workflowService;
27
38
  toolExecutionService;
28
39
  stateMachineValidatorRegistry;
29
- configValueParserService;
40
+ contextService;
30
41
  templateExpressionEvaluatorService;
42
+ workflowContextService;
31
43
  logger = new common_1.Logger(StateMachineProcessorService_1.name);
32
- constructor(workflowConfigService, workflowService, toolExecutionService, stateMachineValidatorRegistry, configValueParserService, templateExpressionEvaluatorService) {
44
+ constructor(workflowConfigService, workflowService, toolExecutionService, stateMachineValidatorRegistry, contextService, templateExpressionEvaluatorService, workflowContextService) {
33
45
  this.workflowConfigService = workflowConfigService;
34
46
  this.workflowService = workflowService;
35
47
  this.toolExecutionService = toolExecutionService;
36
48
  this.stateMachineValidatorRegistry = stateMachineValidatorRegistry;
37
- this.configValueParserService = configValueParserService;
49
+ this.contextService = contextService;
38
50
  this.templateExpressionEvaluatorService = templateExpressionEvaluatorService;
51
+ this.workflowContextService = workflowContextService;
39
52
  }
40
- canSkipRun(workflow, options) {
53
+ canSkipRun(workflow, args) {
41
54
  const validationResults = this.stateMachineValidatorRegistry
42
55
  .getValidators()
43
- .map((validator) => validator.validate(workflow, options));
56
+ .map((validator) => validator.validate(workflow, args));
44
57
  return {
45
58
  valid: validationResults.every((item) => item.valid),
46
59
  hashRecordUpdates: validationResults.reduce((prev, curr) => {
@@ -54,21 +67,26 @@ let StateMachineProcessorService = StateMachineProcessorService_1 = class StateM
54
67
  }, {}),
55
68
  };
56
69
  }
57
- async processStateMachine(context, workflow, config) {
58
- const options = this.configValueParserService.evalWithContext(config.options, { context });
70
+ async processStateMachine(context, workflow, configElement) {
71
+ const args = this.templateExpressionEvaluatorService.parse(configElement.config.arguments, { context }, {
72
+ schema: undefined,
73
+ omitAliasVariables: true,
74
+ omitUseTemplates: true,
75
+ omitWorkflowData: true,
76
+ });
59
77
  if (!workflow) {
60
78
  throw new Error(`No workflow entry.`);
61
79
  }
62
- const validatorResult = this.canSkipRun(workflow, options);
80
+ const validatorResult = this.canSkipRun(workflow, args);
63
81
  const pendingTransition = validatorResult.valid && context.transition?.workflowId === workflow.id
64
82
  ? context.transition
65
83
  : undefined;
66
- const stateMachineInfo = new state_machine_info_dto_1.StateMachineInfoDto(options, pendingTransition, validatorResult);
84
+ const stateMachineInfo = new state_machine_info_dto_1.StateMachineInfoDto(args, pendingTransition, validatorResult);
67
85
  if (stateMachineInfo.isStateValid && !pendingTransition) {
68
86
  return workflow;
69
87
  }
70
88
  this.logger.debug(`Process state machine for workflow ${workflow.name}`);
71
- return this.loopStateMachine(context, workflow, config, stateMachineInfo);
89
+ return this.loopStateMachine(context, workflow, configElement, stateMachineInfo);
72
90
  }
73
91
  updateWorkflowState(workflow, historyItem) {
74
92
  workflow.place = historyItem.to;
@@ -82,7 +100,7 @@ let StateMachineProcessorService = StateMachineProcessorService_1 = class StateM
82
100
  (workflow.place && item.from?.includes(workflow.place))));
83
101
  }
84
102
  async initStateMachine(workflow, stateMachineInfo) {
85
- workflow.isWorking = true;
103
+ workflow.status = shared_1.WorkflowState.Running;
86
104
  if (!stateMachineInfo.isStateValid) {
87
105
  const initialTransition = {
88
106
  transition: 'invalidation',
@@ -139,13 +157,40 @@ let StateMachineProcessorService = StateMachineProcessorService_1 = class StateM
139
157
  this.validateTransition(nextTransition, historyItem);
140
158
  this.updateWorkflowState(workflow, historyItem);
141
159
  }
142
- async loopStateMachine(beforeContext, workflow, config, stateMachineInfo) {
160
+ addWorkflowTransitionData(workflow, transition, target, data) {
161
+ if (!workflow.currData) {
162
+ workflow.currData = {};
163
+ }
164
+ if (!workflow.currData[transition]) {
165
+ workflow.currData[transition] = {};
166
+ }
167
+ workflow.currData[transition][target] = data;
168
+ }
169
+ commitToolCallResult(workflow, transition, toolCall, result) {
170
+ if (result?.workflow) {
171
+ workflow = result?.workflow;
172
+ }
173
+ this.addWorkflowTransitionData(workflow, transition, toolCall.tool, result?.data);
174
+ if (toolCall.exportVariable) {
175
+ const currAlias = workflow.aliasData ?? {};
176
+ workflow.aliasData = {
177
+ ...currAlias,
178
+ [toolCall.exportVariable]: [transition, toolCall.tool],
179
+ };
180
+ }
181
+ if (toolCall.exportContext) {
182
+ workflow = this.workflowContextService.setWorkflowContextUpdate(workflow, toolCall.exportContext, result?.data);
183
+ }
184
+ return workflow;
185
+ }
186
+ async loopStateMachine(beforeContext, workflow, configElement, stateMachineInfo) {
143
187
  let context = beforeContext;
144
188
  workflow = await this.initStateMachine(workflow, stateMachineInfo);
145
- const workflowConfig = this.workflowConfigService.getConfig(config);
146
- if (!workflowConfig.transitions) {
189
+ const mergedConfigElement = this.workflowConfigService.getConfig(configElement);
190
+ if (!mergedConfigElement.config.transitions) {
147
191
  throw new Error(`Workflow ${workflow.name} does not have any transitions.`);
148
192
  }
193
+ this.contextService.addIncludes(context, configElement.importMap);
149
194
  try {
150
195
  const pendingTransition = [stateMachineInfo.pendingTransition];
151
196
  while (true) {
@@ -154,8 +199,15 @@ let StateMachineProcessorService = StateMachineProcessorService_1 = class StateM
154
199
  history: workflow.history?.history.map((item) => item.transition) ?? [],
155
200
  payload: nextPending?.payload ?? null,
156
201
  };
157
- const transitionsWithoutCallProperty = workflowConfig.transitions.map((transition) => (0, lodash_1.omit)(transition, ['call']));
158
- const evaluatedTransitions = this.templateExpressionEvaluatorService.evaluate(transitionsWithoutCallProperty, stateMachineInfo.options, context, workflow, transitionData);
202
+ const transitionsWithoutCallProperty = mergedConfigElement.config.transitions.map((transition) => (0, lodash_1.omit)(transition, ['call']));
203
+ const evaluatedTransitions = this.templateExpressionEvaluatorService.parse(transitionsWithoutCallProperty, {
204
+ arguments: stateMachineInfo.options,
205
+ context,
206
+ workflow,
207
+ transition: transitionData,
208
+ }, {
209
+ schema: TransitionValidationsSchema,
210
+ });
159
211
  this.updateWorkflowAvailableTransitions(workflow, evaluatedTransitions);
160
212
  await this.workflowService.save(workflow);
161
213
  const nextTransition = this.getNextTransition(workflow, nextPending);
@@ -167,7 +219,7 @@ let StateMachineProcessorService = StateMachineProcessorService_1 = class StateM
167
219
  transitionData.transition = nextTransition.transition;
168
220
  transitionData.from = nextTransition.from;
169
221
  transitionData.to = nextTransition.to;
170
- const toolCalls = workflowConfig.transitions.find((transition) => transition.name === transitionData.transition)?.call;
222
+ const toolCalls = mergedConfigElement.config.transitions.find((transition) => transition.name === transitionData.transition)?.call;
171
223
  let nextPlace = undefined;
172
224
  try {
173
225
  if (toolCalls) {
@@ -175,9 +227,14 @@ let StateMachineProcessorService = StateMachineProcessorService_1 = class StateM
175
227
  for (const toolCall of toolCalls) {
176
228
  index++;
177
229
  this.logger.debug(`Call tool ${index} (${toolCall.tool}) on transition ${transitionData.transition}`);
178
- const evaluatedToolCall = this.templateExpressionEvaluatorService.evaluate(toolCall, stateMachineInfo.options, context, workflow, transitionData);
179
- const result = await this.toolExecutionService.applyTool(evaluatedToolCall, workflow, context, transitionData);
180
- workflow = this.toolExecutionService.commitServiceCallResult(workflow, transitionData.transition, toolCall.tool, toolCall.exportAs, result);
230
+ const result = await this.toolExecutionService.applyTool(toolCall, stateMachineInfo.options, workflow, context, transitionData);
231
+ workflow = this.commitToolCallResult(workflow, transitionData.transition, toolCall, result);
232
+ if (workflow.contextVariables) {
233
+ context.variables = {
234
+ ...context.variables,
235
+ ...workflow.contextVariables,
236
+ };
237
+ }
181
238
  if (result?.place) {
182
239
  nextPlace = result?.place;
183
240
  }
@@ -190,7 +247,7 @@ let StateMachineProcessorService = StateMachineProcessorService_1 = class StateM
190
247
  }
191
248
  workflow = await this.workflowService.reload(workflow.id);
192
249
  nextPlace = nextTransition.onError;
193
- this.toolExecutionService.addWorkflowTransitionData(workflow, transitionData.transition, 'error', e.message);
250
+ this.addWorkflowTransitionData(workflow, transitionData.transition, 'error', e.message);
194
251
  }
195
252
  this.commitWorkflowTransition(workflow, nextPlace, nextTransition);
196
253
  }
@@ -200,7 +257,15 @@ let StateMachineProcessorService = StateMachineProcessorService_1 = class StateM
200
257
  workflow = await this.workflowService.reload(workflow.id);
201
258
  workflow.error = e.message;
202
259
  }
203
- workflow.isWorking = false;
260
+ if (workflow.error) {
261
+ workflow.status = shared_1.WorkflowState.Failed;
262
+ }
263
+ else if (workflow.place === 'end') {
264
+ workflow.status = shared_1.WorkflowState.Completed;
265
+ }
266
+ else {
267
+ workflow.status = shared_1.WorkflowState.Waiting;
268
+ }
204
269
  await this.workflowService.save(workflow);
205
270
  return workflow;
206
271
  }
@@ -212,7 +277,8 @@ exports.StateMachineProcessorService = StateMachineProcessorService = StateMachi
212
277
  persistence_1.WorkflowService,
213
278
  tool_execution_service_1.ToolExecutionService,
214
279
  state_machine_validator_registry_1.StateMachineValidatorRegistry,
215
- common_2.ValueParserService,
216
- template_expression_evaluator_service_1.TemplateExpressionEvaluatorService])
280
+ common_2.ContextService,
281
+ template_expression_evaluator_service_1.TemplateExpressionEvaluatorService,
282
+ workflow_context_service_1.WorkflowContextService])
217
283
  ], StateMachineProcessorService);
218
284
  //# sourceMappingURL=state-machine-processor.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"state-machine-processor.service.js","sourceRoot":"","sources":["../../../../src/modules/workflow-processor/services/state-machine-processor.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state-machine-processor.service.js","sourceRoot":"","sources":["../../../../src/modules/workflow-processor/services/state-machine-processor.service.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,29 @@
1
1
  import { ContextInterface, TransitionMetadataInterface, WorkflowEntity } from '@loopstack/shared';
2
- import { ValueParserService } from '../../common';
2
+ import { TemplateService } from '../../common';
3
3
  import { ConfigurationService } from '../../configuration';
4
+ import { z } from 'zod';
5
+ interface ParseOptions {
6
+ schema?: z.ZodType;
7
+ omitAliasVariables?: boolean;
8
+ omitWorkflowData?: boolean;
9
+ omitUseTemplates?: boolean;
10
+ }
11
+ type TemplateVariables = {
12
+ arguments?: any;
13
+ context?: ContextInterface;
14
+ workflow?: WorkflowEntity;
15
+ transition?: TransitionMetadataInterface;
16
+ } & Record<string, any>;
4
17
  export declare class TemplateExpressionEvaluatorService {
5
18
  private configurationService;
6
- private valueParserService;
7
- constructor(configurationService: ConfigurationService, valueParserService: ValueParserService);
8
- evaluate<T>(subject: any, args: any, context: ContextInterface, workflow: WorkflowEntity | undefined, transitionData: TransitionMetadataInterface): T;
19
+ private templateService;
20
+ constructor(configurationService: ConfigurationService, templateService: TemplateService);
21
+ private prepareAliasVariables;
22
+ private getAliasVariables;
23
+ private getTemplateHelper;
24
+ private getWorkflowData;
25
+ private buildTemplateVariables;
26
+ private validateResult;
27
+ parse<T>(subject: any, variables: TemplateVariables, options?: ParseOptions): T;
9
28
  }
29
+ export {};
@@ -13,38 +13,107 @@ exports.TemplateExpressionEvaluatorService = void 0;
13
13
  const common_1 = require("@nestjs/common");
14
14
  const common_2 = require("../../common");
15
15
  const configuration_1 = require("../../configuration");
16
+ const lodash_1 = require("lodash");
17
+ const zod_1 = require("zod");
18
+ class WorkflowValidationError extends Error {
19
+ constructor(message) {
20
+ super(message);
21
+ this.name = 'WorkflowValidationError';
22
+ }
23
+ }
24
+ class SchemaValidationError extends Error {
25
+ constructor(message) {
26
+ super(message);
27
+ this.name = 'SchemaValidationError';
28
+ }
29
+ }
30
+ const SNIPPETS_CONFIG_KEY = 'snippets';
31
+ const DEFAULT_PARSE_OPTIONS = {
32
+ omitAliasVariables: false,
33
+ omitWorkflowData: false,
34
+ omitUseTemplates: false,
35
+ };
16
36
  let TemplateExpressionEvaluatorService = class TemplateExpressionEvaluatorService {
17
37
  configurationService;
18
- valueParserService;
19
- constructor(configurationService, valueParserService) {
38
+ templateService;
39
+ constructor(configurationService, templateService) {
20
40
  this.configurationService = configurationService;
21
- this.valueParserService = valueParserService;
41
+ this.templateService = templateService;
22
42
  }
23
- evaluate(subject, args, context, workflow, transitionData) {
24
- const aliasVariables = workflow?.aliasData && workflow.currData
25
- ? this.valueParserService.prepareAliasVariables(workflow.aliasData, workflow.currData)
43
+ prepareAliasVariables(aliasReference, dataSource) {
44
+ return aliasReference
45
+ ? (0, lodash_1.transform)(aliasReference, (result, path, key) => {
46
+ result[key] = (0, lodash_1.get)(dataSource, path);
47
+ }, {})
26
48
  : {};
27
- const useTemplate = (name, variables) => {
28
- const snippet = this.configurationService.get('snippets', name);
29
- if (!snippet) {
30
- return '';
31
- }
32
- return this.valueParserService.evalWithContextVariables(snippet.value, variables);
49
+ }
50
+ getAliasVariables(variables, options) {
51
+ if (options.omitAliasVariables) {
52
+ return {};
53
+ }
54
+ const { workflow } = variables;
55
+ if (!workflow?.aliasData || !workflow?.currData) {
56
+ return {};
57
+ }
58
+ return this.prepareAliasVariables(workflow.aliasData, workflow.currData);
59
+ }
60
+ getTemplateHelper(options) {
61
+ if (options.omitUseTemplates) {
62
+ return {};
63
+ }
64
+ return {
65
+ useTemplate: (name, variables) => {
66
+ const snippet = this.configurationService.get(SNIPPETS_CONFIG_KEY, name);
67
+ if (!snippet) {
68
+ return '';
69
+ }
70
+ const result = this.templateService.evaluate(snippet.config.value, variables);
71
+ return zod_1.z.string().parse(result);
72
+ },
33
73
  };
34
- return this.valueParserService.evalWithContextVariables(subject, {
35
- ...aliasVariables,
36
- useTemplate,
37
- context,
38
- data: workflow?.currData,
39
- transition: transitionData,
40
- arguments: args,
41
- });
74
+ }
75
+ getWorkflowData(variables, options) {
76
+ if (options.omitWorkflowData) {
77
+ return {};
78
+ }
79
+ if (!variables.workflow) {
80
+ throw new WorkflowValidationError('Workflow is required when omitWorkflowData is false. Either provide a workflow or set omitWorkflowData to true.');
81
+ }
82
+ return { data: variables.workflow.currData };
83
+ }
84
+ buildTemplateVariables(variables, options) {
85
+ return {
86
+ ...this.getAliasVariables(variables, options),
87
+ ...this.getWorkflowData(variables, options),
88
+ ...variables,
89
+ ...this.getTemplateHelper(options),
90
+ };
91
+ }
92
+ validateResult(result, schema) {
93
+ try {
94
+ return schema.parse(result);
95
+ }
96
+ catch (error) {
97
+ throw new SchemaValidationError(`Schema validation failed': ${error instanceof Error ? error.message : 'Unknown error'}`);
98
+ }
99
+ }
100
+ parse(subject, variables, options) {
101
+ if (subject == null ||
102
+ (typeof subject !== 'object' && typeof subject !== 'string')) {
103
+ return subject;
104
+ }
105
+ const mergedOptions = { ...DEFAULT_PARSE_OPTIONS, ...options };
106
+ const templateVariables = this.buildTemplateVariables(variables, mergedOptions);
107
+ const result = this.templateService.evaluateDeep(subject, templateVariables);
108
+ return options?.schema
109
+ ? this.validateResult(result, options.schema)
110
+ : result;
42
111
  }
43
112
  };
44
113
  exports.TemplateExpressionEvaluatorService = TemplateExpressionEvaluatorService;
45
114
  exports.TemplateExpressionEvaluatorService = TemplateExpressionEvaluatorService = __decorate([
46
115
  (0, common_1.Injectable)(),
47
116
  __metadata("design:paramtypes", [configuration_1.ConfigurationService,
48
- common_2.ValueParserService])
117
+ common_2.TemplateService])
49
118
  ], TemplateExpressionEvaluatorService);
50
119
  //# sourceMappingURL=template-expression-evaluator.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"template-expression-evaluator.service.js","sourceRoot":"","sources":["../../../../src/modules/workflow-processor/services/template-expression-evaluator.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAO5C,yCAAkD;AAClD,uDAA2D;AAGpD,IAAM,kCAAkC,GAAxC,MAAM,kCAAkC;IAEnC;IACA;IAFV,YACU,oBAA0C,EAC1C,kBAAsC;QADtC,yBAAoB,GAApB,oBAAoB,CAAsB;QAC1C,uBAAkB,GAAlB,kBAAkB,CAAoB;IAC7C,CAAC;IAEJ,QAAQ,CACN,OAAY,EACZ,IAAS,EACT,OAAyB,EACzB,QAAoC,EACpC,cAA2C;QAG3C,MAAM,cAAc,GAClB,QAAQ,EAAE,SAAS,IAAI,QAAQ,CAAC,QAAQ;YACtC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAC3C,QAAQ,CAAC,SAAS,EAClB,QAAQ,CAAC,QAAQ,CAClB;YACH,CAAC,CAAC,EAAE,CAAC;QAET,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,SAAc,EAAU,EAAE;YAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAC3C,UAAU,EACV,IAAI,CACL,CAAC;YACF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,OAAO,IAAI,CAAC,kBAAkB,CAAC,wBAAwB,CACrD,OAAO,CAAC,KAAK,EACb,SAAS,CACV,CAAC;QACJ,CAAC,CAAC;QAEF,OAAO,IAAI,CAAC,kBAAkB,CAAC,wBAAwB,CAAI,OAAO,EAAE;YAClE,GAAG,cAAc;YACjB,WAAW;YACX,OAAO;YACP,IAAI,EAAE,QAAQ,EAAE,QAAQ;YACxB,UAAU,EAAE,cAAc;YAC1B,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AA9CY,gFAAkC;6CAAlC,kCAAkC;IAD9C,IAAA,mBAAU,GAAE;qCAGqB,oCAAoB;QACtB,2BAAkB;GAHrC,kCAAkC,CA8C9C"}
1
+ {"version":3,"file":"template-expression-evaluator.service.js","sourceRoot":"","sources":["../../../../src/modules/workflow-processor/services/template-expression-evaluator.service.ts"],"names":[],"mappings":"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"}
@@ -1,28 +1,16 @@
1
- import { ConfigurationService, ServiceRegistry } from '../../configuration';
1
+ import { ConfigurationService, SchemaRegistry } from '../../configuration';
2
2
  import { ContextInterface, ServiceCallResult, ToolCallType, TransitionMetadataInterface } from '@loopstack/shared';
3
3
  import { WorkflowEntity } from '@loopstack/shared';
4
- import { ToolSchemaValidatorService } from './tool-schema-validator.service';
5
4
  import { TemplateExpressionEvaluatorService } from './template-expression-evaluator.service';
6
- import { SchemaValidatorService } from '../../common';
5
+ import { ServiceExecutionService } from './service-execution.service';
6
+ import { ContextService } from '../../common';
7
7
  export declare class ToolExecutionService {
8
8
  private configurationService;
9
- private serviceRegistry;
10
- private toolSchemaValidatorService;
11
9
  private templateExpressionEvaluatorService;
12
- private schemaValidatorService;
10
+ private serviceExecutionService;
11
+ private schemaRegistry;
12
+ private contextService;
13
13
  private logger;
14
- constructor(configurationService: ConfigurationService, serviceRegistry: ServiceRegistry, toolSchemaValidatorService: ToolSchemaValidatorService, templateExpressionEvaluatorService: TemplateExpressionEvaluatorService, schemaValidatorService: SchemaValidatorService);
15
- getToolConfig(toolName: string): {
16
- name: string;
17
- execute: {
18
- service: string;
19
- arguments?: any;
20
- };
21
- description?: string | undefined;
22
- parameters?: any;
23
- };
24
- callService(name: string, args: any, workflow?: WorkflowEntity, context?: ContextInterface, transitionData?: TransitionMetadataInterface): Promise<ServiceCallResult>;
25
- applyTool(handler: ToolCallType, workflow: WorkflowEntity | undefined, context: ContextInterface, transitionData: TransitionMetadataInterface): Promise<ServiceCallResult>;
26
- addWorkflowTransitionData(workflow: WorkflowEntity, transition: string, target: string, data: any): void;
27
- commitServiceCallResult(workflow: WorkflowEntity, transition: string, tool: string, alias: string | undefined, result: ServiceCallResult | undefined): WorkflowEntity;
14
+ constructor(configurationService: ConfigurationService, templateExpressionEvaluatorService: TemplateExpressionEvaluatorService, serviceExecutionService: ServiceExecutionService, schemaRegistry: SchemaRegistry, contextService: ContextService);
15
+ applyTool(toolCall: ToolCallType, parentArguments: any, workflow: WorkflowEntity | undefined, context: ContextInterface, transitionData: TransitionMetadataInterface): Promise<ServiceCallResult>;
28
16
  }