Fix code step and logic function step in workflows (#17856)

- AI still often forgets to update the code step after creating it.
Adding a next step
- Starting by loading logic functions, so it avoids creating code steps
when a function exists
- Fix create complete workflow logic. Should not create code steps
directly
This commit is contained in:
Thomas Trompette
2026-02-11 16:08:23 +01:00
committed by GitHub
parent d0c1841f0f
commit 1e01f15182
8 changed files with 147 additions and 15 deletions
@@ -3,6 +3,7 @@ import { Injectable } from '@nestjs/common';
import { type ToolSet } from 'ai';
import { RecordPositionService } from 'src/engine/core-modules/record-position/services/record-position.service';
import { WorkspaceManyOrAllFlatEntityMapsCacheService } from 'src/engine/metadata-modules/flat-entity/services/workspace-many-or-all-flat-entity-maps-cache.service';
import { LogicFunctionService } from 'src/engine/metadata-modules/logic-function/services/logic-function.service';
import { GlobalWorkspaceOrmManager } from 'src/engine/twenty-orm/global-workspace-datasource/global-workspace-orm.manager';
import { type RolePermissionConfig } from 'src/engine/twenty-orm/types/role-permission-config';
@@ -21,6 +22,7 @@ import { createDeactivateWorkflowVersionTool } from 'src/modules/workflow/workfl
import { createDeleteWorkflowVersionEdgeTool } from 'src/modules/workflow/workflow-tools/tools/delete-workflow-version-edge.tool';
import { createDeleteWorkflowVersionStepTool } from 'src/modules/workflow/workflow-tools/tools/delete-workflow-version-step.tool';
import { createGetWorkflowCurrentVersionTool } from 'src/modules/workflow/workflow-tools/tools/get-workflow-current-version.tool';
import { createListLogicFunctionToolsTool } from 'src/modules/workflow/workflow-tools/tools/list-logic-function-tools.tool';
import { createUpdateLogicFunctionSourceTool } from 'src/modules/workflow/workflow-tools/tools/update-logic-function-source.tool';
import { createUpdateWorkflowVersionPositionsTool } from 'src/modules/workflow/workflow-tools/tools/update-workflow-version-positions.tool';
import { createUpdateWorkflowVersionStepTool } from 'src/modules/workflow/workflow-tools/tools/update-workflow-version-step.tool';
@@ -42,6 +44,7 @@ export class WorkflowToolWorkspaceService {
globalWorkspaceOrmManager: GlobalWorkspaceOrmManager,
recordPositionService: RecordPositionService,
logicFunctionService: LogicFunctionService,
flatEntityMapsCacheService: WorkspaceManyOrAllFlatEntityMapsCacheService,
) {
this.deps = {
workflowVersionStepService,
@@ -53,6 +56,7 @@ export class WorkflowToolWorkspaceService {
globalWorkspaceOrmManager,
recordPositionService,
logicFunctionService,
flatEntityMapsCacheService,
};
}
@@ -116,6 +120,10 @@ export class WorkflowToolWorkspaceService {
this.deps,
context,
);
const listLogicFunctionTools = createListLogicFunctionToolsTool(
this.deps,
context,
);
return {
[createCompleteWorkflow.name]: createCompleteWorkflow,
@@ -132,6 +140,7 @@ export class WorkflowToolWorkspaceService {
[computeStepOutputSchema.name]: computeStepOutputSchema,
[getWorkflowCurrentVersion.name]: getWorkflowCurrentVersion,
[updateLogicFunctionSource.name]: updateLogicFunctionSource,
[listLogicFunctionTools.name]: listLogicFunctionTools,
};
}
}