@blueking/bkflow-canvas-editor 1.1.0-beta.5 → 1.1.0-beta.7

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/dist/index.d.ts CHANGED
@@ -2,8 +2,7 @@ import * as vue from 'vue';
2
2
  import { ComputedRef, Ref } from 'vue';
3
3
  import { AxiosInstance, AxiosRequestConfig } from 'axios';
4
4
  import * as _blueking_flow_canvas from '@blueking/flow-canvas';
5
- import { CanvasUiEvent, QuickAddConfig, CanvasSchema, FlowModel, FlowNodeModel, NodeActionsConfig, ConnectionValidator, CanvasPlugin, CanvasToolbarItem, CommandEnvelope } from '@blueking/flow-canvas';
6
- export { InsertDirection, QuickAddConfig, QuickAddInsertDirectionResolver, QuickAddPortResolver } from '@blueking/flow-canvas';
5
+ import { ZoomToFitOptions, CanvasUiEvent, QuickAddConfig, CanvasSchema, FlowModel, FlowNodeModel, NodeActionsConfig, ConnectionValidator, CanvasPlugin, CanvasToolbarItem, CommandEnvelope } from '@blueking/flow-canvas';
7
6
 
8
7
  /**
9
8
  * Flow API 配置接口
@@ -21,6 +20,8 @@ interface FlowApiConfig {
21
20
  scopeData: {
22
21
  scope_type: string;
23
22
  scope_value: number;
23
+ /** 业务方传入的空间 ID,调试接口专用,语义独立于 scope_value */
24
+ space_id: number;
24
25
  };
25
26
  /**
26
27
  * 用户查询 API 地址(可选)
@@ -32,11 +33,11 @@ interface FlowApiConfig {
32
33
  enableThirdPlugin?: boolean;
33
34
  }
34
35
 
35
- type __VLS_Slots$5 = {
36
+ type __VLS_Slots$7 = {
36
37
  header?: () => any;
37
38
  extend?: () => any;
38
39
  };
39
- type __VLS_Props$6 = {
40
+ type __VLS_Props$7 = {
40
41
  flowId: string;
41
42
  taskId: string | number;
42
43
  apiConfig: FlowApiConfig;
@@ -44,17 +45,17 @@ type __VLS_Props$6 = {
44
45
  defaultZoom?: number;
45
46
  onBack?: () => void;
46
47
  };
47
- declare const __VLS_base$5: vue.DefineComponent<__VLS_Props$6, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
48
+ declare const __VLS_base$7: vue.DefineComponent<__VLS_Props$7, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
48
49
  back: () => any;
49
- }, string, vue.PublicProps, Readonly<__VLS_Props$6> & Readonly<{
50
+ }, string, vue.PublicProps, Readonly<__VLS_Props$7> & Readonly<{
50
51
  onBack?: (() => any) | undefined;
51
52
  }>, {
52
53
  defaultZoom: number;
53
54
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
54
- declare const __VLS_export$6: __VLS_WithSlots$5<typeof __VLS_base$5, __VLS_Slots$5>;
55
- declare const _default$7: typeof __VLS_export$6;
55
+ declare const __VLS_export$7: __VLS_WithSlots$7<typeof __VLS_base$7, __VLS_Slots$7>;
56
+ declare const _default$8: typeof __VLS_export$7;
56
57
 
57
- type __VLS_WithSlots$5<T, S> = T & {
58
+ type __VLS_WithSlots$7<T, S> = T & {
58
59
  new (): {
59
60
  $slots: S;
60
61
  };
@@ -62,11 +63,11 @@ type __VLS_WithSlots$5<T, S> = T & {
62
63
 
63
64
  declare namespace __mock_vue {
64
65
  export {
65
- _default$7 as default,
66
+ _default$8 as default,
66
67
  };
67
68
  }
68
69
 
69
- type NodeExecutionStatus = 'CREATED' | 'RUNNING' | 'FINISHED' | 'FAILED' | 'SUSPENDED' | 'REVOKED';
70
+ type NodeExecutionStatus = 'CREATED' | 'RUNNING' | 'FINISHED' | 'FAILED' | 'SUSPENDED' | 'REVOKED' | 'SKIP';
70
71
  type ExecutionNodeAction = 'retry' | 'skip' | 'resume' | 'approve' | 'forceFail' | 'gatewaySkip';
71
72
  interface NodeExecutionState {
72
73
  status: NodeExecutionStatus;
@@ -696,10 +697,204 @@ interface CustomVariableType {
696
697
  code: string;
697
698
  }
698
699
 
699
- interface FlowEditExpose {
700
+ /** 画布视口相关方法,供 FlowView / FlowEdit 对外透传 */
701
+ interface CanvasViewportExpose {
702
+ zoomToFit: (options?: ZoomToFitOptions) => void;
703
+ centerContent: () => void;
704
+ getZoom: () => number;
705
+ }
706
+ interface FlowEditExpose extends CanvasViewportExpose {
707
+ isFlowEdited: boolean;
708
+ updateNodeInputParams: (inputParams: Record<string, PluginInputDataItem>) => void;
709
+ openGlobalVariables: () => void;
710
+ }
711
+ interface FlowViewExpose extends CanvasViewportExpose {
712
+ }
713
+ /** FlowDetail 统一详情页对外暴露(设计 §7.1) */
714
+ interface FlowDetailExpose extends CanvasViewportExpose {
700
715
  isFlowEdited: boolean;
701
716
  updateNodeInputParams: (inputParams: Record<string, PluginInputDataItem>) => void;
702
717
  openGlobalVariables: () => void;
718
+ refreshDebugContext: () => Promise<void>;
719
+ openDebugResult: (nodeId?: string) => void;
720
+ }
721
+
722
+ type DebugContextStatus = 'idle' | 'running' | 'terminating';
723
+ type DebugNodeStatus = 'not_run' | 'running' | 'waiting' | 'paused' | 'finished' | 'failed' | 'suspended' | 'skipped';
724
+ type DebugExecutionMode = 'real' | 'mock';
725
+ interface DebugMissingVar {
726
+ key: string;
727
+ source_node_id: string | null;
728
+ }
729
+ type DebugRunMode = DebugExecutionMode | 'mixed';
730
+ type DebugRunType = 'global' | 'step';
731
+ type DebugRunStatus = 'not_run' | 'running' | 'waiting' | 'paused' | 'terminating' | 'finished' | 'failed' | 'revoked';
732
+ /** 运行级 / 节点级错误详情(last_error_detail、nodes[].error_detail)。 */
733
+ interface DebugErrorFailure {
734
+ message: string;
735
+ node_id?: string;
736
+ template_node_id?: string;
737
+ [key: string]: unknown;
738
+ }
739
+ interface DebugErrorDetail {
740
+ type?: string;
741
+ message?: string;
742
+ task_id?: number | string;
743
+ failures?: DebugErrorFailure[];
744
+ [key: string]: unknown;
745
+ }
746
+ interface DebugContextNode {
747
+ node_id: string;
748
+ node_type: string;
749
+ execution_mode: DebugExecutionMode;
750
+ status: DebugNodeStatus;
751
+ can_step: boolean;
752
+ missing_vars: DebugMissingVar[];
753
+ waiting_reason?: string | null;
754
+ mock_result?: 'success' | 'fail' | null;
755
+ error_detail?: DebugErrorDetail | string | null;
756
+ duration_ms?: number | null;
757
+ log_ref?: {
758
+ instance_id: number | string;
759
+ node_id: string;
760
+ version: string;
761
+ } | null;
762
+ mock_outputs?: Record<string, unknown> | null;
763
+ mock_error?: string | null;
764
+ outputs?: Record<string, unknown> | null;
765
+ }
766
+ /**
767
+ * /debug_context/ 顶层结构。
768
+ *
769
+ * 前端按 status 分支:
770
+ * - running:任务定位用 active_*,进度用 last_run_status
771
+ * - terminating:继续用 active_*,UI 展示「终止中」并轮询
772
+ * - idle:active_* 为空,结果摘要用 last_*;last_task_id=null 表示尚无调试记录
773
+ */
774
+ interface DebugContext {
775
+ template_id: number;
776
+ status: DebugContextStatus;
777
+ locked_by: string;
778
+ active_task_id: number | string | null;
779
+ active_run_type: DebugRunType | null;
780
+ active_node_id: string | null;
781
+ last_task_id: number | string | null;
782
+ last_run_type: DebugRunType | null;
783
+ last_run_status: DebugRunStatus | null;
784
+ last_error_detail?: DebugErrorDetail | null;
785
+ last_inputs?: Record<string, unknown>;
786
+ global_vars: Record<string, unknown>;
787
+ missing_vars?: DebugMissingVar[];
788
+ nodes: DebugContextNode[];
789
+ }
790
+ interface DebugInputSchemaField {
791
+ key: string;
792
+ name: string;
793
+ type: string;
794
+ default?: unknown;
795
+ required?: boolean;
796
+ [key: string]: unknown;
797
+ }
798
+ interface DebugInputSchema {
799
+ fields?: DebugInputSchemaField[];
800
+ constants?: Record<string, unknown>;
801
+ [key: string]: unknown;
802
+ }
803
+ interface DebugHistoryRun {
804
+ task_id?: number | string | null;
805
+ operator?: string;
806
+ started_at?: string;
807
+ finished_at?: string;
808
+ status?: DebugRunStatus | string;
809
+ run_type?: DebugRunType;
810
+ run_mode?: DebugRunMode;
811
+ [key: string]: unknown;
812
+ }
813
+ interface DebugHistory {
814
+ runs?: DebugHistoryRun[];
815
+ [key: string]: unknown;
816
+ }
817
+ interface DebugResetImpact {
818
+ reset_node_ids: string[];
819
+ reasons?: Record<string, string>;
820
+ }
821
+ interface DebugGlobalVarsResult {
822
+ global_vars: Record<string, unknown>;
823
+ [key: string]: unknown;
824
+ }
825
+ interface UpdateNodeDebugMockResult {
826
+ node_id: string;
827
+ execution_mode: DebugExecutionMode;
828
+ updated_global_vars?: Record<string, unknown>;
829
+ [key: string]: unknown;
830
+ }
831
+ interface RunNodeDebugStepResult {
832
+ node_id: string;
833
+ status: DebugNodeStatus;
834
+ outputs?: Record<string, unknown> | null;
835
+ error_detail?: unknown;
836
+ updated_global_vars?: Record<string, unknown>;
837
+ log_ref?: DebugContextNode['log_ref'];
838
+ [key: string]: unknown;
839
+ }
840
+ interface RunGlobalDebugResult {
841
+ task_id: number | string;
842
+ status: DebugContextStatus;
843
+ [key: string]: unknown;
844
+ }
845
+ interface TerminateDebugResult {
846
+ status?: DebugContextStatus;
847
+ [key: string]: unknown;
848
+ }
849
+ interface DebugResetResult {
850
+ reset_node_ids?: string[];
851
+ [key: string]: unknown;
852
+ }
853
+ interface UpdateDebugContextVariableParams {
854
+ templateId: string | number;
855
+ key: string;
856
+ value: unknown;
857
+ }
858
+ interface UpdateNodeDebugMockParams {
859
+ templateId: string | number;
860
+ nodeId: string;
861
+ enable: boolean;
862
+ mockResult?: 'success' | 'fail';
863
+ mockOutputs?: Record<string, unknown>;
864
+ mockError?: string;
865
+ }
866
+ interface RunNodeDebugStepParams {
867
+ templateId: string | number;
868
+ nodeId: string;
869
+ mode: 'real' | 'mock';
870
+ inputOverrides?: Record<string, unknown>;
871
+ mockResult?: 'success' | 'fail';
872
+ mockOutputs?: Record<string, unknown>;
873
+ mockError?: string;
874
+ }
875
+ interface RunGlobalDebugParams {
876
+ templateId: string | number;
877
+ inputs: Record<string, unknown>;
878
+ }
879
+ interface TerminateDebugParams {
880
+ templateId: string | number;
881
+ nodeId?: string;
882
+ }
883
+ interface ResetDebugResultParams {
884
+ templateId: string | number;
885
+ nodeIds?: string[];
886
+ }
887
+ interface DebugApiServices {
888
+ fetchDebugContext(templateId: string | number): Promise<DebugContext>;
889
+ fetchDebugInputSchema(templateId: string | number): Promise<DebugInputSchema>;
890
+ fetchDebugHistory(templateId: string | number): Promise<DebugHistory>;
891
+ fetchDebugResetImpact(templateId: string | number): Promise<DebugResetImpact>;
892
+ updateDebugContextVariable(params: UpdateDebugContextVariableParams): Promise<DebugGlobalVarsResult>;
893
+ updateNodeDebugMock(params: UpdateNodeDebugMockParams): Promise<UpdateNodeDebugMockResult>;
894
+ runNodeDebugStep(params: RunNodeDebugStepParams): Promise<RunNodeDebugStepResult>;
895
+ runGlobalDebug(params: RunGlobalDebugParams): Promise<RunGlobalDebugResult>;
896
+ terminateDebug(params: TerminateDebugParams): Promise<TerminateDebugResult>;
897
+ resetDebugResult(params: ResetDebugResultParams): Promise<DebugResetResult>;
703
898
  }
704
899
 
705
900
  interface DrawPipelineParams {
@@ -757,6 +952,41 @@ interface FlowTaskDetail {
757
952
  pipeline_tree: PipelineTree;
758
953
  [key: string]: unknown;
759
954
  }
955
+ interface CreateFlowTaskParams {
956
+ template_id: number;
957
+ name: string;
958
+ creator: string;
959
+ constants: Record<string, any>;
960
+ label_ids?: number[];
961
+ [key: string]: unknown;
962
+ }
963
+ interface CreateFlowTaskResult {
964
+ data: {
965
+ id: number | string;
966
+ template_id?: number;
967
+ [key: string]: unknown;
968
+ };
969
+ [key: string]: unknown;
970
+ }
971
+ interface ExecuteFlowTaskResult {
972
+ result?: boolean;
973
+ code?: number;
974
+ data?: {
975
+ /** 任务详情页跳转地址(含正确的 bkflow task id 与 templateId) */
976
+ url?: string;
977
+ [key: string]: unknown;
978
+ };
979
+ message?: string | null;
980
+ request_id?: string;
981
+ trace_id?: string | null;
982
+ [key: string]: unknown;
983
+ }
984
+ interface FlowTaskExecuteSuccessResult {
985
+ /** createFlowTask(create_task)接口响应 */
986
+ createResult: CreateFlowTaskResult;
987
+ /** executeFlowTask(operate_task)接口响应,data.url 用于任务详情跳转 */
988
+ executeResult: ExecuteFlowTaskResult;
989
+ }
760
990
  interface TaskStateResult {
761
991
  state?: string;
762
992
  status?: string;
@@ -782,6 +1012,8 @@ interface FlowViewApiConfig {
782
1012
  scopeData: {
783
1013
  scope_type: string;
784
1014
  scope_value: number;
1015
+ /** 业务方传入的空间 ID,调试接口专用,语义独立于 scope_value */
1016
+ space_id: number;
785
1017
  };
786
1018
  fetchFlowDraftDetail?: (id: string) => Promise<FlowDraftDetail>;
787
1019
  fetchFlowDetailByVersion?: (id: string, version: string) => Promise<FlowDetailByVersion>;
@@ -801,23 +1033,13 @@ interface FlowViewApiConfig {
801
1033
  data: any[];
802
1034
  };
803
1035
  }>;
804
- createFlowTask?: (params: {
805
- template_id: number;
806
- name: string;
807
- creator: string;
808
- constants: Record<string, any>;
809
- }) => Promise<{
810
- data: {
811
- id: number;
812
- template_id: number;
813
- };
814
- }>;
1036
+ createFlowTask?: (params: CreateFlowTaskParams) => Promise<CreateFlowTaskResult>;
815
1037
  executeFlowTask?: (params: {
816
1038
  task_id: number | string;
817
1039
  resource_type: string;
818
1040
  resource_id: number | string;
819
1041
  permission_type: string;
820
- }) => Promise<any>;
1042
+ }) => Promise<ExecuteFlowTaskResult>;
821
1043
  revokeFlowTask?: (params: {
822
1044
  task_id: number | string;
823
1045
  resource_type: string;
@@ -874,23 +1096,13 @@ interface FlowEditApiConfig extends FlowViewApiConfig {
874
1096
  drawPipeline?: (params: DrawPipelineParams) => Promise<{
875
1097
  pipeline_tree: PipelineTree;
876
1098
  }>;
877
- createFlowTask?: (params: {
878
- template_id: number;
879
- name: string;
880
- creator: string;
881
- constants: Record<string, any>;
882
- }) => Promise<{
883
- data: {
884
- id: number;
885
- template_id: number;
886
- };
887
- }>;
1099
+ createFlowTask?: (params: CreateFlowTaskParams) => Promise<CreateFlowTaskResult>;
888
1100
  executeFlowTask?: (params: {
889
1101
  task_id: number | string;
890
1102
  resource_type: string;
891
1103
  resource_id: number | string;
892
1104
  permission_type: string;
893
- }) => Promise<any>;
1105
+ }) => Promise<ExecuteFlowTaskResult>;
894
1106
  revokeFlowTask?: (params: {
895
1107
  task_id: number | string;
896
1108
  resource_type: string;
@@ -910,6 +1122,8 @@ interface FlowEditApiConfig extends FlowViewApiConfig {
910
1122
  fetchTaskNodeLog?: (params: FetchTaskNodeLogParams) => Promise<unknown>;
911
1123
  getFlowTaskDetail?: (params: GetFlowTaskDetailParams) => Promise<FlowTaskDetail>;
912
1124
  }
1125
+ interface FlowDetailApiConfig extends FlowEditApiConfig, Partial<DebugApiServices> {
1126
+ }
913
1127
 
914
1128
  /**
915
1129
  * 插件分组选择面板配置
@@ -954,13 +1168,13 @@ type MemberSelectorConfig = {
954
1168
  * @param config FlowApiConfig 配置对象或已处理的 API 配置对象
955
1169
  * @returns 返回处理后的 API 配置对象
956
1170
  */
957
- declare function provideFlowApiConfig(config: FlowApiConfig | FlowEditApiConfig | FlowViewApiConfig): FlowEditApiConfig | FlowViewApiConfig;
1171
+ declare function provideFlowApiConfig(config: FlowApiConfig | FlowDetailApiConfig | FlowEditApiConfig | FlowViewApiConfig): FlowDetailApiConfig | FlowEditApiConfig | FlowViewApiConfig;
958
1172
  /**
959
1173
  * 在子组件中注入 FlowApiConfig(通用版本)
960
1174
  * @returns FlowEditApiConfig
961
1175
  * @throws 如果 apiConfig 未提供则抛出错误
962
1176
  */
963
- declare function useFlowApiConfig(): FlowEditApiConfig;
1177
+ declare function useFlowApiConfig(): FlowDetailApiConfig;
964
1178
  /**
965
1179
  * 在子组件中注入 FlowEditApiConfig(类型化版本)
966
1180
  * @returns FlowEditApiConfig
@@ -1002,7 +1216,7 @@ declare function provideMemberSelectorConfig(config?: MemberSelectorConfig): voi
1002
1216
  */
1003
1217
  declare function useMemberSelectorConfig(): MemberSelectorConfig;
1004
1218
 
1005
- type __VLS_Props$5 = {
1219
+ type __VLS_Props$6 = {
1006
1220
  flowId: string;
1007
1221
  show: boolean;
1008
1222
  editable?: boolean;
@@ -1026,15 +1240,15 @@ declare var __VLS_72: {
1026
1240
  };
1027
1241
  variablesValue: Record<string, any>;
1028
1242
  };
1029
- type __VLS_Slots$4 = {} & {
1243
+ type __VLS_Slots$6 = {} & {
1030
1244
  'custom-form-content'?: (props: typeof __VLS_72) => any;
1031
1245
  };
1032
- declare const __VLS_base$4: vue.DefineComponent<__VLS_Props$5, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
1246
+ declare const __VLS_base$6: vue.DefineComponent<__VLS_Props$6, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
1033
1247
  close: (...args: any[]) => void;
1034
1248
  "update:show": (...args: any[]) => void;
1035
1249
  confirm: (...args: any[]) => void;
1036
1250
  "before-close": (...args: any[]) => void;
1037
- }, string, vue.PublicProps, Readonly<__VLS_Props$5> & Readonly<{
1251
+ }, string, vue.PublicProps, Readonly<__VLS_Props$6> & Readonly<{
1038
1252
  onClose?: ((...args: any[]) => any) | undefined;
1039
1253
  "onUpdate:show"?: ((...args: any[]) => any) | undefined;
1040
1254
  onConfirm?: ((...args: any[]) => any) | undefined;
@@ -1045,10 +1259,10 @@ declare const __VLS_base$4: vue.DefineComponent<__VLS_Props$5, {}, {}, {}, {}, v
1045
1259
  useCustomConfirm: boolean;
1046
1260
  enableVersion: boolean;
1047
1261
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
1048
- declare const __VLS_export$5: __VLS_WithSlots$4<typeof __VLS_base$4, __VLS_Slots$4>;
1049
- declare const _default$6: typeof __VLS_export$5;
1262
+ declare const __VLS_export$6: __VLS_WithSlots$6<typeof __VLS_base$6, __VLS_Slots$6>;
1263
+ declare const _default$7: typeof __VLS_export$6;
1050
1264
 
1051
- type __VLS_WithSlots$4<T, S> = T & {
1265
+ type __VLS_WithSlots$6<T, S> = T & {
1052
1266
  new (): {
1053
1267
  $slots: S;
1054
1268
  };
@@ -1056,15 +1270,15 @@ type __VLS_WithSlots$4<T, S> = T & {
1056
1270
 
1057
1271
  declare namespace __debug_vue {
1058
1272
  export {
1059
- _default$6 as default,
1273
+ _default$7 as default,
1060
1274
  };
1061
1275
  }
1062
1276
 
1063
- type __VLS_Slots$3 = {
1277
+ type __VLS_Slots$5 = {
1064
1278
  header?: () => any;
1065
1279
  extend?: () => any;
1066
1280
  };
1067
- type __VLS_Props$4 = {
1281
+ type __VLS_Props$5 = {
1068
1282
  pipelineTree: PipelineTree;
1069
1283
  nodeStates?: TaskExecutionStates;
1070
1284
  defaultZoom?: number;
@@ -1073,7 +1287,7 @@ type __VLS_Props$4 = {
1073
1287
  showHeader?: boolean;
1074
1288
  onBack?: () => void;
1075
1289
  };
1076
- declare const __VLS_base$3: vue.DefineComponent<__VLS_Props$4, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
1290
+ declare const __VLS_base$5: vue.DefineComponent<__VLS_Props$5, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
1077
1291
  retry: (nodeId: string) => any;
1078
1292
  skip: (nodeId: string) => any;
1079
1293
  resume: (nodeId: string) => any;
@@ -1092,7 +1306,7 @@ declare const __VLS_base$3: vue.DefineComponent<__VLS_Props$4, {}, {}, {}, {}, v
1092
1306
  nodeId: string;
1093
1307
  action: ExecutionNodeAction;
1094
1308
  }) => any;
1095
- }, string, vue.PublicProps, Readonly<__VLS_Props$4> & Readonly<{
1309
+ }, string, vue.PublicProps, Readonly<__VLS_Props$5> & Readonly<{
1096
1310
  onRetry?: ((nodeId: string) => any) | undefined;
1097
1311
  onSkip?: ((nodeId: string) => any) | undefined;
1098
1312
  onResume?: ((nodeId: string) => any) | undefined;
@@ -1116,10 +1330,10 @@ declare const __VLS_base$3: vue.DefineComponent<__VLS_Props$4, {}, {}, {}, {}, v
1116
1330
  defaultZoom: number;
1117
1331
  nodeStates: TaskExecutionStates;
1118
1332
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
1119
- declare const __VLS_export$4: __VLS_WithSlots$3<typeof __VLS_base$3, __VLS_Slots$3>;
1120
- declare const _default$5: typeof __VLS_export$4;
1333
+ declare const __VLS_export$5: __VLS_WithSlots$5<typeof __VLS_base$5, __VLS_Slots$5>;
1334
+ declare const _default$6: typeof __VLS_export$5;
1121
1335
 
1122
- type __VLS_WithSlots$3<T, S> = T & {
1336
+ type __VLS_WithSlots$5<T, S> = T & {
1123
1337
  new (): {
1124
1338
  $slots: S;
1125
1339
  };
@@ -1127,27 +1341,35 @@ type __VLS_WithSlots$3<T, S> = T & {
1127
1341
 
1128
1342
  declare namespace __execute_vue {
1129
1343
  export {
1130
- _default$5 as default,
1344
+ _default$6 as default,
1131
1345
  };
1132
1346
  }
1133
1347
 
1134
- type __VLS_Props$3 = {
1348
+ type __VLS_Slots$4 = {
1349
+ customFormContent?: (props: {
1350
+ customFormData: Record<string, any>;
1351
+ additionalTaskParams: Record<string, any>;
1352
+ updateCustomFormData: (data: Record<string, any>) => void;
1353
+ updateAdditionalTaskParams: (params: Record<string, any>) => void;
1354
+ }) => any;
1355
+ };
1356
+ type __VLS_Props$4 = {
1135
1357
  flowId: string;
1136
1358
  show: boolean;
1137
1359
  editable?: boolean;
1138
1360
  showFlowEntry?: boolean;
1139
1361
  apiConfig: FlowApiConfig;
1140
- onExecuteSuccess?: (taskId: number, templateId: number) => void;
1362
+ onExecuteSuccess?: (result: FlowTaskExecuteSuccessResult) => void;
1141
1363
  bkflowSaasUrl?: string;
1142
1364
  memberSelectorConfig?: MemberSelectorConfig;
1143
1365
  };
1144
- declare const __VLS_export$3: vue.DefineComponent<__VLS_Props$3, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
1366
+ declare const __VLS_base$4: vue.DefineComponent<__VLS_Props$4, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
1145
1367
  close: (...args: any[]) => void;
1146
1368
  "update:show": (...args: any[]) => void;
1147
1369
  confirm: (...args: any[]) => void;
1148
1370
  "before-close": (...args: any[]) => void;
1149
1371
  "view-flow": (...args: any[]) => void;
1150
- }, string, vue.PublicProps, Readonly<__VLS_Props$3> & Readonly<{
1372
+ }, string, vue.PublicProps, Readonly<__VLS_Props$4> & Readonly<{
1151
1373
  onClose?: ((...args: any[]) => any) | undefined;
1152
1374
  "onUpdate:show"?: ((...args: any[]) => any) | undefined;
1153
1375
  onConfirm?: ((...args: any[]) => any) | undefined;
@@ -1157,15 +1379,22 @@ declare const __VLS_export$3: vue.DefineComponent<__VLS_Props$3, {}, {}, {}, {},
1157
1379
  editable: boolean;
1158
1380
  showFlowEntry: boolean;
1159
1381
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
1160
- declare const _default$4: typeof __VLS_export$3;
1382
+ declare const __VLS_export$4: __VLS_WithSlots$4<typeof __VLS_base$4, __VLS_Slots$4>;
1383
+ declare const _default$5: typeof __VLS_export$4;
1384
+
1385
+ type __VLS_WithSlots$4<T, S> = T & {
1386
+ new (): {
1387
+ $slots: S;
1388
+ };
1389
+ };
1161
1390
 
1162
1391
  declare namespace __create_task_vue {
1163
1392
  export {
1164
- _default$4 as default,
1393
+ _default$5 as default,
1165
1394
  };
1166
1395
  }
1167
1396
 
1168
- type __VLS_Slots$2 = {
1397
+ type __VLS_Slots$3 = {
1169
1398
  header?: () => any;
1170
1399
  inputParams?: (props: {
1171
1400
  node: any;
@@ -1189,7 +1418,7 @@ type __VLS_Slots$2 = {
1189
1418
  variablesValue: Record<string, any>;
1190
1419
  }) => any;
1191
1420
  };
1192
- type __VLS_Props$2 = {
1421
+ type __VLS_Props$3 = {
1193
1422
  flowId: string;
1194
1423
  apiConfig: FlowApiConfig;
1195
1424
  permissions?: {
@@ -1218,11 +1447,16 @@ type __VLS_Props$2 = {
1218
1447
  bkflowSaasUrl?: string;
1219
1448
  enableThirdPlugin?: boolean;
1220
1449
  quickAdd?: QuickAddConfig;
1450
+ /** 是否隐藏基础信息中的触发器配置表单,默认 false */
1451
+ hideTrigger?: boolean;
1221
1452
  };
1222
- declare const __VLS_base$2: vue.DefineComponent<__VLS_Props$2, {
1453
+ declare const __VLS_base$3: vue.DefineComponent<__VLS_Props$3, {
1223
1454
  isFlowEdited: ComputedRef<FlowEditExpose["isFlowEdited"]>;
1224
1455
  updateNodeInputParams: FlowEditExpose["updateNodeInputParams"];
1225
1456
  openGlobalVariables: FlowEditExpose["openGlobalVariables"];
1457
+ zoomToFit: FlowEditExpose["zoomToFit"];
1458
+ centerContent: FlowEditExpose["centerContent"];
1459
+ getZoom: FlowEditExpose["getZoom"];
1226
1460
  }, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
1227
1461
  back: () => any;
1228
1462
  save: (flowData: FlowTemplate) => any;
@@ -1237,7 +1471,7 @@ declare const __VLS_base$2: vue.DefineComponent<__VLS_Props$2, {
1237
1471
  keyword: string;
1238
1472
  cursorIndex: number;
1239
1473
  }) => any;
1240
- }, string, vue.PublicProps, Readonly<__VLS_Props$2> & Readonly<{
1474
+ }, string, vue.PublicProps, Readonly<__VLS_Props$3> & Readonly<{
1241
1475
  onBack?: (() => any) | undefined;
1242
1476
  onSave?: ((flowData: FlowTemplate) => any) | undefined;
1243
1477
  onMockDebugCreated?: ((params: {
@@ -1253,19 +1487,20 @@ declare const __VLS_base$2: vue.DefineComponent<__VLS_Props$2, {
1253
1487
  }) => any) | undefined;
1254
1488
  }>, {
1255
1489
  quickAdd: QuickAddConfig;
1490
+ enableThirdPlugin: boolean;
1491
+ hideTrigger: boolean;
1256
1492
  defaultZoom: number;
1493
+ enableDebug: boolean;
1257
1494
  enableVersion: boolean;
1258
1495
  permissions: {
1259
1496
  canSave?: boolean;
1260
1497
  };
1261
- enableDebug: boolean;
1262
1498
  useCustomDebugConfirm: boolean;
1263
- enableThirdPlugin: boolean;
1264
1499
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
1265
- declare const __VLS_export$2: __VLS_WithSlots$2<typeof __VLS_base$2, __VLS_Slots$2>;
1266
- declare const _default$3: typeof __VLS_export$2;
1500
+ declare const __VLS_export$3: __VLS_WithSlots$3<typeof __VLS_base$3, __VLS_Slots$3>;
1501
+ declare const _default$4: typeof __VLS_export$3;
1267
1502
 
1268
- type __VLS_WithSlots$2<T, S> = T & {
1503
+ type __VLS_WithSlots$3<T, S> = T & {
1269
1504
  new (): {
1270
1505
  $slots: S;
1271
1506
  };
@@ -1273,11 +1508,11 @@ type __VLS_WithSlots$2<T, S> = T & {
1273
1508
 
1274
1509
  declare namespace __edit_vue {
1275
1510
  export {
1276
- _default$3 as default,
1511
+ _default$4 as default,
1277
1512
  };
1278
1513
  }
1279
1514
 
1280
- type __VLS_Slots$1 = {
1515
+ type __VLS_Slots$2 = {
1281
1516
  header?: () => any;
1282
1517
  inputParams?: (props: {
1283
1518
  node: any;
@@ -1290,6 +1525,12 @@ type __VLS_Slots$1 = {
1290
1525
  }[];
1291
1526
  updateInputParams: (data: Record<string, any>) => void;
1292
1527
  }) => any;
1528
+ customFormContent?: (props: {
1529
+ customFormData: Record<string, any>;
1530
+ additionalTaskParams: Record<string, any>;
1531
+ updateCustomFormData: (data: Record<string, any>) => void;
1532
+ updateAdditionalTaskParams: (params: Record<string, any>) => void;
1533
+ }) => any;
1293
1534
  debugCustomFormContent?: (props: {
1294
1535
  formData: {
1295
1536
  name: string;
@@ -1297,7 +1538,7 @@ type __VLS_Slots$1 = {
1297
1538
  variablesValue: Record<string, any>;
1298
1539
  }) => any;
1299
1540
  };
1300
- type __VLS_Props$1 = {
1541
+ type __VLS_Props$2 = {
1301
1542
  flowId: string;
1302
1543
  apiConfig: FlowApiConfig;
1303
1544
  permissions?: {
@@ -1312,22 +1553,28 @@ type __VLS_Props$1 = {
1312
1553
  showHeaderActions?: boolean;
1313
1554
  defaultZoom?: number;
1314
1555
  bkflowSaasUrl?: string;
1315
- onExecuteSuccess?: (taskId: number, templateId: number) => void;
1556
+ onExecuteSuccess?: (result: FlowTaskExecuteSuccessResult) => void;
1316
1557
  memberSelectorConfig?: MemberSelectorConfig;
1317
1558
  enableDebug?: boolean;
1318
1559
  onMockDebugCreated?: (params: {
1319
1560
  taskId: number | string;
1320
1561
  templateId: number | string;
1321
1562
  }) => void;
1563
+ /** 是否隐藏基础信息中的触发器配置表单,默认 false */
1564
+ hideTrigger?: boolean;
1322
1565
  };
1323
- declare const __VLS_base$1: vue.DefineComponent<__VLS_Props$1, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
1566
+ declare const __VLS_base$2: vue.DefineComponent<__VLS_Props$2, {
1567
+ zoomToFit: (options?: ZoomToFitOptions) => void;
1568
+ centerContent: () => void;
1569
+ getZoom: () => number;
1570
+ }, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
1324
1571
  edit: () => any;
1325
1572
  back: () => any;
1326
1573
  mockDebugCreated: (params: {
1327
1574
  taskId: number | string;
1328
1575
  templateId: number | string;
1329
1576
  }) => any;
1330
- }, string, vue.PublicProps, Readonly<__VLS_Props$1> & Readonly<{
1577
+ }, string, vue.PublicProps, Readonly<__VLS_Props$2> & Readonly<{
1331
1578
  onEdit?: (() => any) | undefined;
1332
1579
  onBack?: (() => any) | undefined;
1333
1580
  onMockDebugCreated?: ((params: {
@@ -1336,19 +1583,20 @@ declare const __VLS_base$1: vue.DefineComponent<__VLS_Props$1, {}, {}, {}, {}, v
1336
1583
  }) => any) | undefined;
1337
1584
  }>, {
1338
1585
  thumbnail: boolean;
1586
+ hideTrigger: boolean;
1339
1587
  defaultZoom: number;
1588
+ enableDebug: boolean;
1340
1589
  enableVersion: boolean;
1341
1590
  permissions: {
1342
1591
  canEdit?: boolean;
1343
1592
  canExecute?: boolean;
1344
1593
  };
1345
1594
  showHeaderActions: boolean;
1346
- enableDebug: boolean;
1347
1595
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
1348
- declare const __VLS_export$1: __VLS_WithSlots$1<typeof __VLS_base$1, __VLS_Slots$1>;
1349
- declare const _default$2: typeof __VLS_export$1;
1596
+ declare const __VLS_export$2: __VLS_WithSlots$2<typeof __VLS_base$2, __VLS_Slots$2>;
1597
+ declare const _default$3: typeof __VLS_export$2;
1350
1598
 
1351
- type __VLS_WithSlots$1<T, S> = T & {
1599
+ type __VLS_WithSlots$2<T, S> = T & {
1352
1600
  new (): {
1353
1601
  $slots: S;
1354
1602
  };
@@ -1356,10 +1604,94 @@ type __VLS_WithSlots$1<T, S> = T & {
1356
1604
 
1357
1605
  declare namespace __view_vue {
1358
1606
  export {
1359
- _default$2 as default,
1607
+ _default$3 as default,
1360
1608
  };
1361
1609
  }
1362
1610
 
1611
+ /**
1612
+ * FlowDetail 权限(默认拒绝,设计 §3.1 / §7.2)。
1613
+ */
1614
+ interface FlowDetailPermissions {
1615
+ canEdit: boolean;
1616
+ canDebug: boolean;
1617
+ }
1618
+
1619
+ type __VLS_Slots$1 = {
1620
+ header?: () => any;
1621
+ inputParams?: (props: {
1622
+ node: any;
1623
+ pluginDetail: PluginDetailCommon | null;
1624
+ inputs: any[];
1625
+ editable: boolean;
1626
+ fullVariableList: {
1627
+ key: string;
1628
+ name: string;
1629
+ source_type?: string;
1630
+ custom_type?: string;
1631
+ }[];
1632
+ updateInputParams: (data: Record<string, PluginInputDataItem>) => void;
1633
+ updateNodeInputParams: (inputParams: Record<string, PluginInputDataItem>) => void;
1634
+ updateVariableSourceInfo: (variableKey: string, nodeId: string, formKey: string) => void;
1635
+ }) => any;
1636
+ };
1637
+ type __VLS_Props$1 = {
1638
+ flowId: string;
1639
+ apiConfig: FlowApiConfig | FlowDetailApiConfig;
1640
+ permissions?: Partial<FlowDetailPermissions>;
1641
+ enableVersion?: boolean;
1642
+ flowVersion?: string;
1643
+ defaultZoom?: number;
1644
+ bkflowSaasUrl?: string;
1645
+ enableThirdPlugin?: boolean;
1646
+ quickAdd?: QuickAddConfig;
1647
+ hideTrigger?: boolean;
1648
+ selectPanelConfig?: SelectPanelConfig;
1649
+ memberSelectorConfig?: MemberSelectorConfig;
1650
+ onSave?: (flowData: FlowTemplate) => void;
1651
+ onSaveSuccess?: () => void;
1652
+ onBack?: () => void;
1653
+ };
1654
+ declare const __VLS_base$1: vue.DefineComponent<__VLS_Props$1, {
1655
+ isFlowEdited: ComputedRef<boolean>;
1656
+ updateNodeInputParams: FlowDetailExpose["updateNodeInputParams"];
1657
+ openGlobalVariables: FlowDetailExpose["openGlobalVariables"];
1658
+ refreshDebugContext: FlowDetailExpose["refreshDebugContext"];
1659
+ openDebugResult: FlowDetailExpose["openDebugResult"];
1660
+ zoomToFit: FlowDetailExpose["zoomToFit"];
1661
+ centerContent: FlowDetailExpose["centerContent"];
1662
+ getZoom: FlowDetailExpose["getZoom"];
1663
+ }, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
1664
+ back: () => any;
1665
+ save: (flowData: FlowTemplate) => any;
1666
+ saveSuccess: () => any;
1667
+ createVariable: (payload: {
1668
+ keyword: string;
1669
+ cursorIndex: number;
1670
+ }) => any;
1671
+ }, string, vue.PublicProps, Readonly<__VLS_Props$1> & Readonly<{
1672
+ onBack?: (() => any) | undefined;
1673
+ onSave?: ((flowData: FlowTemplate) => any) | undefined;
1674
+ onSaveSuccess?: (() => any) | undefined;
1675
+ onCreateVariable?: ((payload: {
1676
+ keyword: string;
1677
+ cursorIndex: number;
1678
+ }) => any) | undefined;
1679
+ }>, {
1680
+ quickAdd: QuickAddConfig;
1681
+ enableThirdPlugin: boolean;
1682
+ hideTrigger: boolean;
1683
+ defaultZoom: number;
1684
+ enableVersion: boolean;
1685
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
1686
+ declare const __VLS_export$1: __VLS_WithSlots$1<typeof __VLS_base$1, __VLS_Slots$1>;
1687
+ declare const _default$2: typeof __VLS_export$1;
1688
+
1689
+ type __VLS_WithSlots$1<T, S> = T & {
1690
+ new (): {
1691
+ $slots: S;
1692
+ };
1693
+ };
1694
+
1363
1695
  type SimulateDebugStage = 'edit' | 'mock-config' | 'mock-running';
1364
1696
  type MockFormControl = 'bk-input' | 'bk-input-number' | 'bk-textarea' | 'json-editor' | 'bk-select' | 'bk-checkbox-group' | 'bk-radio-group' | 'bk-switcher' | 'bk-date-picker' | 'bk-date-range-picker' | 'data-table';
1365
1697
  interface MockOutputField extends PluginOutputItem {
@@ -1469,6 +1801,21 @@ declare class BkFlowModelAccessor {
1469
1801
  get flowModel(): FlowModel;
1470
1802
  }
1471
1803
 
1804
+ /**
1805
+ * 新调试(FlowDetail)向画布节点透出的最小上下文(设计 §14.3)。
1806
+ *
1807
+ * - isMockNode:节点渲染据此显示 MOCK 标签;
1808
+ * - 其余为可选能力:独立调试聚焦态、打开节点调试面板。
1809
+ * 保持可选以兼容仅需 Mock 标签的场景,且不改变对外 npm 公共 API。
1810
+ */
1811
+ interface DebugCanvasContext {
1812
+ isMockNode(nodeId: string): boolean;
1813
+ /** 当前独立调试聚焦节点(不复用 X6 编辑选择态,设计 §9.3.2) */
1814
+ focusedNodeId?(): string;
1815
+ /** 打开该节点详情侧滑的“调试配置”Tab */
1816
+ openNodeDebugPanel?(nodeId: string): void;
1817
+ }
1818
+
1472
1819
  type __VLS_Props = {
1473
1820
  pipelineTree: PipelineTree;
1474
1821
  mode?: BkflowBusinessCanvasMode;
@@ -1480,6 +1827,7 @@ type __VLS_Props = {
1480
1827
  additionalPlugins?: CanvasPlugin[];
1481
1828
  toolbarItems?: CanvasToolbarItem[];
1482
1829
  simulateDebugContext?: SimulateDebugCanvasContext;
1830
+ debugContext?: DebugCanvasContext;
1483
1831
  };
1484
1832
  declare var __VLS_8: {};
1485
1833
  declare var __VLS_22: {
@@ -1574,8 +1922,8 @@ declare const __VLS_base: vue.DefineComponent<__VLS_Props, {
1574
1922
  }) => any) | undefined;
1575
1923
  "onFormat-position"?: (() => any) | undefined;
1576
1924
  }>, {
1577
- mode: BkflowBusinessCanvasMode;
1578
1925
  thumbnail: boolean;
1926
+ mode: BkflowBusinessCanvasMode;
1579
1927
  nodeActions: NodeActionsConfig;
1580
1928
  quickAdd: QuickAddConfig;
1581
1929
  defaultZoom: number;
@@ -1648,8 +1996,12 @@ declare const _default: {
1648
1996
  FlowCreateTask: () => Promise<typeof __create_task_vue>;
1649
1997
  FlowExecute: () => Promise<typeof __execute_vue>;
1650
1998
  FlowDebug: () => Promise<typeof __debug_vue>;
1999
+ /**
2000
+ * @deprecated Use FlowDetail with permissions.canDebug instead.
2001
+ * FlowMockDebug will be removed in the next major version.
2002
+ */
1651
2003
  FlowMockDebug: () => Promise<typeof __mock_vue>;
1652
2004
  };
1653
2005
 
1654
- export { _default$1 as BkFlowCanvas, BkFlowModelAccessor, BkFlowNodeAccessor, _default$4 as FlowCreateTask, _default$6 as FlowDebug, _default$3 as FlowEdit, _default$5 as FlowExecute, _default$7 as FlowMockDebug, _default$2 as FlowView, bkflowConnectionValidator, createBkflowPlugin, createBkflowSchema, createExecutionStatusPlugin, _default as default, exportToPipelineTree, generateId, getUniformApiPluginFormValue, getVariableDefaultConfig, importFromPipelineTree, isMockableNode, mergeOutputs, normalizePluginOutputItems, provideFlowApiConfig, provideMemberSelectorConfig, provideSelectPanelConfig, random4, resolveExecutionActions, resolveMockFormControl, useFlowApiConfig, useFlowEditApiConfig, useFlowViewApiConfig, useMemberSelectorConfig, useSelectPanelConfig, validatePipelineTree };
1655
- export type { Activity, DndNodeItem, ExecutionNodeAction, FlowApiConfig, FlowEditExpose, FlowTemplate, Gateway, GatewayCondition, MemberSelectorConfig, MockOutputField, NodeExecutionState, NodeExecutionStatus, NodeMockConfig, NotifyConfig, PipelineTree, PluginDetailCommon, PluginInputDataItem, SelectPanelConfig, SimulateDebugCanvasContext, SimulateDebugStage, SimulateDebugState, SpaceFlowConfig, TaskExecutionStates, TemplateConfigs, TriggerCron, TriggerItem, UniformApiPluginInputsItem, UpdateFlowParams, Variable, VariableReference };
2006
+ export { _default$1 as BkFlowCanvas, BkFlowModelAccessor, BkFlowNodeAccessor, _default$5 as FlowCreateTask, _default$7 as FlowDebug, _default$2 as FlowDetail, _default$4 as FlowEdit, _default$6 as FlowExecute, _default$8 as FlowMockDebug, _default$3 as FlowView, bkflowConnectionValidator, createBkflowPlugin, createBkflowSchema, createExecutionStatusPlugin, _default as default, exportToPipelineTree, generateId, getUniformApiPluginFormValue, getVariableDefaultConfig, importFromPipelineTree, isMockableNode, mergeOutputs, normalizePluginOutputItems, provideFlowApiConfig, provideMemberSelectorConfig, provideSelectPanelConfig, random4, resolveExecutionActions, resolveMockFormControl, useFlowApiConfig, useFlowEditApiConfig, useFlowViewApiConfig, useMemberSelectorConfig, useSelectPanelConfig, validatePipelineTree };
2007
+ export type { Activity, CanvasViewportExpose, CreateFlowTaskResult, DndNodeItem, ExecuteFlowTaskResult, ExecutionNodeAction, FlowApiConfig, FlowDetailExpose, FlowDetailPermissions, FlowEditExpose, FlowTaskExecuteSuccessResult, FlowTemplate, FlowViewExpose, Gateway, GatewayCondition, MemberSelectorConfig, MockOutputField, NodeExecutionState, NodeExecutionStatus, NodeMockConfig, NotifyConfig, PipelineTree, PluginDetailCommon, PluginInputDataItem, SelectPanelConfig, SimulateDebugCanvasContext, SimulateDebugStage, SimulateDebugState, SpaceFlowConfig, TaskExecutionStates, TemplateConfigs, TriggerCron, TriggerItem, UniformApiPluginInputsItem, UpdateFlowParams, Variable, VariableReference };