From 5538223bd006089fafc1c44341eacd09e97abeff Mon Sep 17 00:00:00 2001 From: octo-patch Date: Fri, 24 Apr 2026 10:01:03 +0800 Subject: [PATCH] fix(workflow): handle 'number' DTO type in variable conversion (fixes #2645) The backend can return 'number' as a DataType (DataTypeNumber = float64) for plugin output parameters, but the frontend VariableTypeDTO enum in @coze-workflow/base only defined 'float' and 'integer'. This caused DTOTypeToViewType to throw "Unknown variable DTO Type: list:number" when adding a plugin with nested array output parameters to a workflow. - Add `number = 'number'` to VariableTypeDTO enum in dto.ts - Handle VariableTypeDTO.number (fall-through to float) in DTOTypeToViewType - Add VariableTypeDTO.number entry to VariableType2JsonSchemaProps map Co-Authored-By: Octopus --- frontend/packages/workflow/base/src/types/dto.ts | 1 + .../packages/workflow/variable/src/legacy/variable-utils.ts | 2 ++ .../workflow/variable/src/utils/generate-input-json-schema.ts | 3 +++ 3 files changed, 6 insertions(+) diff --git a/frontend/packages/workflow/base/src/types/dto.ts b/frontend/packages/workflow/base/src/types/dto.ts index 18ff712923..337964ca9e 100644 --- a/frontend/packages/workflow/base/src/types/dto.ts +++ b/frontend/packages/workflow/base/src/types/dto.ts @@ -197,6 +197,7 @@ export enum VariableTypeDTO { string = 'string', integer = 'integer', float = 'float', + number = 'number', boolean = 'boolean', image = 'image', time = 'time', diff --git a/frontend/packages/workflow/variable/src/legacy/variable-utils.ts b/frontend/packages/workflow/variable/src/legacy/variable-utils.ts index 5ad0a9e05b..54a1587bcb 100644 --- a/frontend/packages/workflow/variable/src/legacy/variable-utils.ts +++ b/frontend/packages/workflow/variable/src/legacy/variable-utils.ts @@ -92,6 +92,7 @@ export namespace variableUtils { case VariableTypeDTO.boolean: return ViewVariableType.Boolean; case VariableTypeDTO.float: + case VariableTypeDTO.number: return ViewVariableType.Number; case VariableTypeDTO.integer: return ViewVariableType.Integer; @@ -120,6 +121,7 @@ export namespace variableUtils { case VariableTypeDTO.boolean: return ViewVariableType.ArrayBoolean; case VariableTypeDTO.float: + case VariableTypeDTO.number: return ViewVariableType.ArrayNumber; case VariableTypeDTO.integer: return ViewVariableType.ArrayInteger; diff --git a/frontend/packages/workflow/variable/src/utils/generate-input-json-schema.ts b/frontend/packages/workflow/variable/src/utils/generate-input-json-schema.ts index 120f691b97..75bbdf3b93 100644 --- a/frontend/packages/workflow/variable/src/utils/generate-input-json-schema.ts +++ b/frontend/packages/workflow/variable/src/utils/generate-input-json-schema.ts @@ -34,6 +34,9 @@ const VariableType2JsonSchemaProps = { [VariableTypeDTO.float]: { type: 'number', }, + [VariableTypeDTO.number]: { + type: 'number', + }, [VariableTypeDTO.integer]: { type: 'integer', },