@blueking/bkflow-canvas-editor 1.1.0-beta.9 → 1.2.0-beta.1

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/README.md CHANGED
@@ -370,7 +370,7 @@ interface SelectPanelConfig {
370
370
  <FlowDetail
371
371
  :flow-id="flowId"
372
372
  :api-config="apiConfig"
373
- :permissions="{ canEdit: true, canDebug: true }"
373
+ :permissions="{ canEdit: true, canDebug: true, canExecute: true }"
374
374
  @save="handleSave"
375
375
  @back="handleBack" />
376
376
  </template>
@@ -393,7 +393,8 @@ interface SelectPanelConfig {
393
393
  | ------------- | --------------------------------------------- | ---------------------------------- | -------------------------------------------------------------------------- |
394
394
  | `flowId` | `string` | - | **必需**,流程 ID |
395
395
  | `apiConfig` | `FlowApiConfig \| FlowDetailApiConfig` | - | **必需**,API 配置对象;`canDebug=true` 时需一并提供调试方法(见下) |
396
- | `permissions` | `Partial<FlowDetailPermissions>` | `{ canEdit: false, canDebug: false }` | 权限配置,**默认全部拒绝**,需显式开启 |
396
+ | `permissions` | `Partial<FlowDetailPermissions>` | `{ canEdit: false, canDebug: false, canExecute: false }` | 权限配置,**默认全部拒绝**,需显式开启 |
397
+ | `onExecuteSuccess` | `(result: FlowTaskExecuteSuccessResult) => void` | - | 执行成功回调,参数与 `FlowView` 一致 |
397
398
  | `enableVersion` / `flowVersion` | `boolean` / `string` | `false` / - | 流程版本功能,语义与 FlowView/FlowEdit 一致 |
398
399
  | `defaultZoom` / `quickAdd` / `hideTrigger` / `bkflowSaasUrl` | 同 FlowEdit | - | 透传给内部画布与信息侧滑 |
399
400
 
@@ -417,18 +418,20 @@ interface SelectPanelConfig {
417
418
  | `false` | `true` | 只读画布 + 全流程/单节点调试(调试期间流程本就不可编辑) |
418
419
  | `true` | `true` | 可编辑、保存与完整调试;调试运行中锁定编辑(画布转 `view`)|
419
420
 
421
+ `permissions.canExecute` 独立控制头部“执行流程”按钮。流程存在未保存修改时,确认保存成功后才会打开创建任务侧滑;`customFormContent` 插槽与 `FlowView` 一致。
422
+
420
423
  #### 调试能力
421
424
 
422
425
  - **全流程调试**:头部调试入口填写全局输入后启动,前端按 2500ms(失败退避 5000ms)轮询 `/context/`,可随时终止。
423
426
  - **单节点 real**:节点详情「调试配置」Tab 内直接以真实逻辑同步执行单步,完成后刷新 `context`。
424
- - **单节点 Mock**:配置 Mock 输出参数后执行(内部顺序:保存 Mock → 单步执行 mock);执行时跳过该节点并以 Mock 输出替代实际输出,Mock 节点在后续全流程中保留 `MOCK` 标签。
427
+ - **单节点 Mock**:配置 Mock 输出结果后执行(内部顺序:保存 Mock → 单步执行 mock);执行时跳过该节点并以 Mock 输出替代实际输出,Mock 节点在后续全流程中保留 `MOCK` 标签。
425
428
  - **取消 Mock**:清除节点的持久 Mock 配置。
426
- - **终止**:仅全流程运行中可终止;单步为同步调试,无终止。
429
+ - **终止**:全流程终止不传 `node_id`;单步调试进入运行/等待态时,传当前 `active_node_id` 终止该节点。
427
430
  - **保存联动**:`canDebug` 且 `context` 空闲时,保存成功后会查询 `reset_impact` 并自动清理失效节点的调试结果。
428
431
 
429
432
  #### 调试 API 契约(`canDebug=true` 必需)
430
433
 
431
- 消费方若传入完整的 api 配置对象(而非仅 `scopeData`),当 `canDebug=true` 时**必须**一并提供以下调试方法,否则触发调试会在调用点抛错:
434
+ 消费方若传入完整的 api 配置对象(而非仅 `scopeData`),当 `canDebug=true` 时**必须**一并提供以下调试方法,组件初始化时会统一校验:
432
435
 
433
436
  `fetchDebugContext`、`fetchDebugInputSchema`、`fetchDebugResetImpact`、`updateNodeDebugMock`、`runNodeDebugStep`、`runGlobalDebug`、`terminateDebug`、`resetDebugResult`(签名见 `DebugApiServices`)。
434
437
 
@@ -437,7 +440,7 @@ interface SelectPanelConfig {
437
440
  - 前端以 `debug_context`(后端 `build_context_view`)为**唯一事实源**,不新增 `node_input_values` 接口。`active_*`(当前持锁任务)与 `last_*`(最近一次运行)按顶层 `status` 分支选用。
438
441
  - 建议后端在 `debug_context` 透出 `mock_outputs` / `mock_error` / `outputs`,否则刷新后 Mock 输出与「输出结果/重新编辑」回填会缺数据。
439
442
  - 调试接口与普通接口同源:走后端 python 包 bkflow_sdk `TemplateViewSet` 的 `/bkflow/template/debug_*`,全站信封 `{result, data, message}`。走内置 `useFlowApi()` 时自动获得全部调试方法。
440
- - 调试仍使用**独立的 Axios 实例**,**不复用**共享的自动 toast 拦截器:成功解信封取 `data`、`result:false` 时 reject,交由调试控制器统一处理(锁定冲突刷新、缺失变量在节点 UI 展示)。锁定/幂等语义由 `code`/`message` 识别(具体码值联调确认)。
443
+ - 调试与普通接口共用同一 ApiClient:只在客户端边界解信封,并统一抛出 `ApiError`。调试请求的 `delegate` 仅转交 Message 呈现权,service/controller/page 不再重复解包或改造错误。
441
444
 
442
445
  > **Deprecated**:`FlowMockDebug` 已废弃,请改用 `FlowDetail` 并开启 `permissions.canDebug`。`FlowMockDebug` 将在下个大版本移除。
443
446
 
@@ -570,6 +573,8 @@ interface SelectPanelConfig {
570
573
  </script>
571
574
  ```
572
575
 
576
+ 外部 Axios 实例仍会通过组件的统一 ApiClient 边界,因此无论宿主拦截器返回 `AxiosResponse`、信封 body 或已解包 DTO,组件内部都获得业务 DTO。建议宿主拦截器不要再对 `{ result: false }` 弹业务 Message,否则无法保证跨边界的单次呈现。
577
+
573
578
  ### 监听流程编辑状态
574
579
 
575
580
  ```vue
@@ -1222,7 +1227,7 @@ type MemberSelectorConfig =
1222
1227
 
1223
1228
  ### 高级用法:传入完整 API 方法对象
1224
1229
 
1225
- 深度集成场景下,组件也支持直接传入“已处理好的 API 方法对象”。这类对象通常通过 `useFlowApi` 生成,或在其基础上覆写单个方法。
1230
+ 深度集成场景下,组件也支持直接传入“已处理好的 API 方法对象”。这类对象通常通过 `useFlowApi` 生成,或在其基础上覆写单个方法。“已处理”的契约是:方法直接 resolve 类型声明中的业务 DTO,失败时 reject `Error`/`ApiError`,不要再返回 `AxiosResponse` 或 `{ result, data, message }` 信封。
1226
1231
 
1227
1232
  - 常规场景:直接传 `FlowApiConfig`
1228
1233
  - 高级场景:传 `useFlowApi(config)` 的返回值
@@ -1250,7 +1255,8 @@ const apiConfig: FlowViewApiConfig = {
1250
1255
  const res = await http.get(`/custom/template/${id}/detail/`, {
1251
1256
  params: baseConfig.scopeData,
1252
1257
  });
1253
- return res.data;
1258
+ // 此处是宿主适配边界:返回 FlowTemplate,不返回 AxiosResponse/信封。
1259
+ return res.data.data;
1254
1260
  },
1255
1261
  };
1256
1262
  ```
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./composable-YlUVct40.cjs");exports.PLUGIN_GROUP_ICON_MAP=e.PLUGIN_GROUP_ICON_MAP;exports.useFlowApi=e.useFlowApi;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./context-Bj442dps.cjs");exports.PLUGIN_GROUP_ICON_MAP=e.PLUGIN_GROUP_ICON_MAP;exports.provideVariableInputCreateVariable=e.provideVariableInputCreateVariable;exports.useFlowApi=e.useFlowApi;exports.useVariableInputCreateVariable=e.useVariableInputCreateVariable;
@@ -44,6 +44,11 @@ interface NodeExecutionState {
44
44
  actions?: ExecutionNodeAction[];
45
45
  /** 兼容旧版后端直接透出的动作数组字段 */
46
46
  action_list?: ExecutionNodeAction[];
47
+ /**
48
+ * 条件网关命中的出边 flow_id。
49
+ * 有值时执行态连线优先按它着色,不要求目标节点已经执行(网关单步不会跑下游)。
50
+ */
51
+ selectedFlowIds?: string[];
47
52
  }
48
53
  type TaskExecutionStates = Record<string, NodeExecutionState>;
49
54
 
@@ -51,7 +56,7 @@ type PortOrientation = 'Top' | 'Right' | 'Bottom' | 'Left';
51
56
 
52
57
  type GatewayType = 'ExclusiveGateway' | 'ParallelGateway' | 'ConditionalParallelGateway' | 'ConvergeGateway';
53
58
 
54
- type NodeType = StartEvent | EndEvent | Activity | Gateway;
59
+ type NodeType = StartEvent | EndEvent | Activity | SubProcessActivity | Gateway;
55
60
 
56
61
  interface PluginInputDataItem {
57
62
  value:
@@ -97,6 +102,8 @@ interface Activity {
97
102
  type: 'ServiceActivity';
98
103
  retryable: boolean;
99
104
  skippable: boolean;
105
+ /** 是否可选节点(执行时可选跳过)默认 true */
106
+ optional: boolean;
100
107
  auto_retry: {
101
108
  enable: boolean;
102
109
  interval: number;
@@ -114,12 +121,103 @@ interface Activity {
114
121
  skip?: boolean;
115
122
  /** 执行态:是否自动忽略错误 */
116
123
  error_ignored?: boolean;
117
- /** 执行态:循环执行次数 */
118
- loop?: number;
124
+ /** 执行态:循环执行次数(未执行时为 null,与 SubProcessActivity 同源于执行态接口) */
125
+ loop?: number | null;
119
126
  /** 执行态:生命周期阶段 */
120
127
  phase?: number;
121
128
  }
122
129
 
130
+ /**
131
+ * 循环执行配置(子流程 / 循环容器节点的 loop_config)
132
+ */
133
+ interface LoopConfig {
134
+ /** 是否启用循环执行 */
135
+ enable: boolean;
136
+ /** array_loop 按数组变量循环 / time_loop 固定循环次数 */
137
+ type: 'array_loop' | 'time_loop';
138
+ /** 固定循环次数(time_loop,默认 3,最大 100);array_loop 且数据来源含变量时为 null */
139
+ loop_times?: number | null;
140
+ /**
141
+ * 数组循环变量(array_loop):循环变量名 → 数据来源。
142
+ * 编辑态为 UI 数组 [{name, value}];保存输出为 key-value 对象(如 { '${loop_test1}': '1,2' })。
143
+ */
144
+ loop_params?: { name: string; value: string }[] | Record<string, string>;
145
+ /** 循环失败自动跳过(AS) */
146
+ fail_skip?: boolean;
147
+ /** 循环失败手动重试(MR) */
148
+ retryable?: boolean;
149
+ /** 循环失败手动跳过(MS) */
150
+ skippable?: boolean;
151
+ /** 循环输出变量outputs */
152
+ outputs_key?: string;
153
+ [key: string]: any;
154
+ }
155
+
156
+ /**
157
+ * 子流程(SubProcess)活动节点。
158
+ */
159
+ interface SubProcessActivity {
160
+ id: string;
161
+ name: string;
162
+ stage_name?: string;
163
+ incoming: string[];
164
+ outgoing: string;
165
+ type: 'SubProcess';
166
+ /** 被引用的模板 ID */
167
+ template_id: string | number;
168
+ /** 模板版本 */
169
+ version?: string;
170
+ /** 变量映射常量 */
171
+ constants?: Record<string, any>;
172
+ /** 是否始终使用最新版本 */
173
+ always_use_latest?: boolean;
174
+ /** 生效版本方案列表 */
175
+ scheme_id_list?: string[];
176
+ /** 模板来源 */
177
+ template_source?: string;
178
+ /** 是否自动忽略错误(AS) */
179
+ error_ignorable: boolean;
180
+ /** 是否可手动重试(MR) */
181
+ retryable: boolean;
182
+ /** 是否可手动跳过(MS) */
183
+ skippable: boolean;
184
+ /** 是否可选节点(执行时可选跳过)BKFlow 必填 */
185
+ optional: boolean;
186
+ /** 已勾选(关联全局变量)的 key 列表 */
187
+ hooked_constants?: string[];
188
+ /** 自动重试配置(AR) */
189
+ auto_retry: {
190
+ enable: boolean;
191
+ interval: number;
192
+ times: number;
193
+ };
194
+ /** 超时控制配置 */
195
+ timeout_config: {
196
+ enable: boolean;
197
+ seconds: number;
198
+ action: string;
199
+ };
200
+ /** 循环执行配置 */
201
+ loop_config?: LoopConfig;
202
+ /** 父级分组 ID(SubCanvas 循环容器嵌套场景),顶层节点为 null */
203
+ parent?: string | null;
204
+ /** 节点标签 */
205
+ labels?: string[];
206
+ status?: NodeExecutionStatus;
207
+ /** 执行态:循环执行次数(未执行时为 null) */
208
+ loop?: number | null;
209
+ /** 执行态:实际重试次数 */
210
+ retry?: number;
211
+ /** 执行态:是否被跳过 */
212
+ skip?: boolean;
213
+ /** 执行态:是否自动忽略错误 */
214
+ error_ignored?: boolean;
215
+ /** 执行态:生命周期阶段 */
216
+ phase?: number;
217
+ }
218
+
219
+ type ActivityUnion = Activity | SubProcessActivity;
220
+
123
221
  interface StartEvent {
124
222
  id: string;
125
223
  name: string;
@@ -176,6 +274,7 @@ interface Location {
176
274
  | 'startpoint'
177
275
  | 'endpoint'
178
276
  | 'tasknode'
277
+ | 'subflow'
179
278
  | 'branchgateway'
180
279
  | 'convergegateway'
181
280
  | 'parallelgateway'
@@ -230,7 +329,7 @@ interface Variable {
230
329
  }
231
330
 
232
331
  interface PipelineTree {
233
- activities: Record<string, Activity>;
332
+ activities: Record<string, ActivityUnion>;
234
333
  end_event: EndEvent;
235
334
  flows: Record<string, Flow>;
236
335
  gateways: Record<string, Gateway>;
@@ -354,6 +453,32 @@ interface SlotArgConfig {
354
453
  default?: string | number | boolean;
355
454
  }
356
455
 
456
+ interface SubflowTemplateItem {
457
+ id: number | string;
458
+ name: string;
459
+ /** 模板版本(不传则默认使用最新版本) */
460
+ version?: string;
461
+ /** 展示用副文本(如更新时间 / 描述等,可选) */
462
+ description?: string;
463
+ /** 兼容接入方列表接口的扩展字段 */
464
+ [key: string]: any;
465
+ }
466
+ interface SubprocessInfoItem {
467
+ /** 子流程模板 ID */
468
+ subprocess_template_id: string | number;
469
+ /** 子流程节点 ID(对应 pipeline_tree.activities 的 key) */
470
+ subprocess_node_id: string;
471
+ /** 节点当前引用的子流程模板版本 */
472
+ version: string;
473
+ /** 是否总是使用最新版本 */
474
+ always_use_latest: boolean;
475
+ /** 引用的子流程模板是否有新版本 */
476
+ expired: boolean;
477
+ /** 子流程模板名称 */
478
+ subprocess_template_name?: string;
479
+ /** 兼容接入方的扩展字段 */
480
+ [key: string]: any;
481
+ }
357
482
  interface FlowTemplate {
358
483
  id: number;
359
484
  name: string;
@@ -363,6 +488,8 @@ interface FlowTemplate {
363
488
  extra_info: Record<string, any>;
364
489
  triggers: TriggerItem[];
365
490
  version: string;
491
+ /** 子流程更新信息(后端计算好 expired 状态,SDK 据此渲染红点/提示条) */
492
+ subprocess_info?: SubprocessInfoItem[];
366
493
  }
367
494
  interface FlowDetailByVersion {
368
495
  constants_not_referred: Record<string, Variable>;
@@ -601,13 +728,12 @@ interface CustomVariableType {
601
728
  }
602
729
 
603
730
  type DebugContextStatus = 'idle' | 'running' | 'terminating';
604
- type DebugNodeStatus = 'not_run' | 'running' | 'waiting' | 'paused' | 'finished' | 'failed' | 'suspended' | 'skipped';
731
+ type DebugNodeStatus = 'not_run' | 'running' | 'waiting' | 'paused' | 'finished' | 'failed' | 'revoked' | 'suspended' | 'skipped';
605
732
  type DebugExecutionMode = 'real' | 'mock';
606
733
  interface DebugMissingVar {
607
734
  key: string;
608
735
  source_node_id: string | null;
609
736
  }
610
- type DebugRunMode = DebugExecutionMode | 'mixed';
611
737
  type DebugRunType = 'global' | 'step';
612
738
  type DebugRunStatus = 'not_run' | 'running' | 'waiting' | 'paused' | 'terminating' | 'finished' | 'failed' | 'revoked';
613
739
  /** 运行级 / 节点级错误详情(last_error_detail、nodes[].error_detail)。 */
@@ -624,6 +750,15 @@ interface DebugErrorDetail {
624
750
  failures?: DebugErrorFailure[];
625
751
  [key: string]: unknown;
626
752
  }
753
+ /** 条件网关分支求值结果(`debug_context.nodes[].condition_results`)。 */
754
+ interface DebugConditionResult {
755
+ flow_id: string;
756
+ name?: string;
757
+ expression?: string;
758
+ resolved_expression?: string;
759
+ matched?: boolean;
760
+ [key: string]: unknown;
761
+ }
627
762
  interface DebugContextNode {
628
763
  node_id: string;
629
764
  node_type: string;
@@ -632,6 +767,10 @@ interface DebugContextNode {
632
767
  can_step: boolean;
633
768
  missing_vars: DebugMissingVar[];
634
769
  waiting_reason?: string | null;
770
+ /** 是否支持单步调试;并行/汇聚网关为 false,仅用于展示全局调试状态。 */
771
+ supports_step?: boolean;
772
+ /** 是否支持 Mock;全部网关为 false。 */
773
+ supports_mock?: boolean;
635
774
  mock_result?: 'success' | 'fail' | null;
636
775
  error_detail?: DebugErrorDetail | string | null;
637
776
  duration_ms?: number | null;
@@ -643,6 +782,10 @@ interface DebugContextNode {
643
782
  mock_outputs?: Record<string, unknown> | null;
644
783
  mock_error?: string | null;
645
784
  outputs?: Record<string, unknown> | null;
785
+ /** 条件网关命中的出边 flow_id;画布用它把命中连线标绿。 */
786
+ selected_flow_ids?: string[];
787
+ /** 条件网关每个分支的表达式与命中结果。 */
788
+ condition_results?: DebugConditionResult[];
646
789
  }
647
790
  /**
648
791
  * /debug_context/ 顶层结构。
@@ -681,28 +824,10 @@ interface DebugInputSchema {
681
824
  constants?: Record<string, unknown>;
682
825
  [key: string]: unknown;
683
826
  }
684
- interface DebugHistoryRun {
685
- task_id?: number | string | null;
686
- operator?: string;
687
- started_at?: string;
688
- finished_at?: string;
689
- status?: DebugRunStatus | string;
690
- run_type?: DebugRunType;
691
- run_mode?: DebugRunMode;
692
- [key: string]: unknown;
693
- }
694
- interface DebugHistory {
695
- runs?: DebugHistoryRun[];
696
- [key: string]: unknown;
697
- }
698
827
  interface DebugResetImpact {
699
828
  reset_node_ids: string[];
700
829
  reasons?: Record<string, string>;
701
830
  }
702
- interface DebugGlobalVarsResult {
703
- global_vars: Record<string, unknown>;
704
- [key: string]: unknown;
705
- }
706
831
  interface UpdateNodeDebugMockResult {
707
832
  node_id: string;
708
833
  execution_mode: DebugExecutionMode;
@@ -716,6 +841,8 @@ interface RunNodeDebugStepResult {
716
841
  error_detail?: unknown;
717
842
  updated_global_vars?: Record<string, unknown>;
718
843
  log_ref?: DebugContextNode['log_ref'];
844
+ selected_flow_ids?: string[];
845
+ condition_results?: DebugConditionResult[];
719
846
  [key: string]: unknown;
720
847
  }
721
848
  interface RunGlobalDebugResult {
@@ -723,19 +850,22 @@ interface RunGlobalDebugResult {
723
850
  status: DebugContextStatus;
724
851
  [key: string]: unknown;
725
852
  }
853
+ /**
854
+ * /debug_terminate/ 返回。
855
+ *
856
+ * 全局终止返回 `terminating`,需要继续轮询 /debug_context/ 直到 idle + last_run_status=revoked;
857
+ * 单节点终止直接返回 `idle`,并用 reset_node_ids 告知哪些节点被恢复为「未调试」。
858
+ */
726
859
  interface TerminateDebugResult {
727
860
  status?: DebugContextStatus;
861
+ /** 单节点终止:被恢复为 not_run 的节点,本地需同步清空输入、输出、耗时、错误与日志。 */
862
+ reset_node_ids?: string[];
728
863
  [key: string]: unknown;
729
864
  }
730
865
  interface DebugResetResult {
731
866
  reset_node_ids?: string[];
732
867
  [key: string]: unknown;
733
868
  }
734
- interface UpdateDebugContextVariableParams {
735
- templateId: string | number;
736
- key: string;
737
- value: unknown;
738
- }
739
869
  interface UpdateNodeDebugMockParams {
740
870
  templateId: string | number;
741
871
  nodeId: string;
@@ -768,9 +898,7 @@ interface ResetDebugResultParams {
768
898
  interface DebugApiServices {
769
899
  fetchDebugContext(templateId: string | number): Promise<DebugContext>;
770
900
  fetchDebugInputSchema(templateId: string | number): Promise<DebugInputSchema>;
771
- fetchDebugHistory(templateId: string | number): Promise<DebugHistory>;
772
901
  fetchDebugResetImpact(templateId: string | number): Promise<DebugResetImpact>;
773
- updateDebugContextVariable(params: UpdateDebugContextVariableParams): Promise<DebugGlobalVarsResult>;
774
902
  updateNodeDebugMock(params: UpdateNodeDebugMockParams): Promise<UpdateNodeDebugMockResult>;
775
903
  runNodeDebugStep(params: RunNodeDebugStepParams): Promise<RunNodeDebugStepResult>;
776
904
  runGlobalDebug(params: RunGlobalDebugParams): Promise<RunGlobalDebugResult>;
@@ -791,12 +919,7 @@ interface FlowApiConfig {
791
919
  /** CSRF cookie 名称(可选,用于创建新的 axios 实例时设置 xsrfCookieName) */
792
920
  xsrfCookieName?: string;
793
921
  /** 作用域数据(必需,由外部传入) */
794
- scopeData: {
795
- scope_type: string;
796
- scope_value: number;
797
- /** 业务方传入的空间 ID,调试接口专用,语义独立于 scope_value */
798
- space_id: number;
799
- };
922
+ scopeData: ScopeData;
800
923
  /**
801
924
  * 用户查询 API 地址(可选)
802
925
  * @deprecated 请改用 FlowEdit/FlowView 顶层组件的 `memberSelectorConfig.fetchUserApi`。
@@ -806,6 +929,12 @@ interface FlowApiConfig {
806
929
  /** 是否启用第三方插件(可选,默认为 true) */
807
930
  enableThirdPlugin?: boolean;
808
931
  }
932
+ interface ScopeData {
933
+ scope_type: string;
934
+ scope_value: number;
935
+ /** 业务方传入的空间 ID,语义独立于 scope_value。 */
936
+ space_id: number;
937
+ }
809
938
 
810
939
  interface DrawPipelineParams {
811
940
  pipeline_tree: PipelineTree;
@@ -835,6 +964,7 @@ interface FetchTaskStateParams {
835
964
  interface FetchTaskNodeDetailParams {
836
965
  task_id: number | string;
837
966
  node_id: string;
967
+ component_code?: string;
838
968
  }
839
969
  interface FetchTaskNodeSnapshotParams {
840
970
  task_id: number | string;
@@ -860,6 +990,8 @@ interface FlowTaskDetail {
860
990
  id: number | string;
861
991
  template_id: number;
862
992
  pipeline_tree: PipelineTree;
993
+ /** 任务已耗时(秒),调试摘要弹层刷新恢复用。 */
994
+ elapsed_time?: number;
863
995
  [key: string]: unknown;
864
996
  }
865
997
  interface CreateFlowTaskParams {
@@ -920,7 +1052,7 @@ interface FlowViewApiConfig {
920
1052
  space_id: number;
921
1053
  };
922
1054
  fetchFlowDraftDetail?: (id: string) => Promise<FlowDraftDetail>;
923
- fetchFlowDetailByVersion?: (id: string, version: string) => Promise<FlowDetailByVersion>;
1055
+ fetchFlowDetailByVersion?: (id: string, version?: string) => Promise<FlowDetailByVersion>;
924
1056
  fetchVariableRef?: (params: {
925
1057
  template_id: number;
926
1058
  activities: Record<string, any>;
@@ -974,6 +1106,10 @@ interface FlowEditApiConfig extends FlowViewApiConfig {
974
1106
  saveFlow: (id: string, params: UpdateFlowParams) => Promise<void>;
975
1107
  fetchBkFlowInnerPluginList: () => Promise<BkflowInnerPluginMetaItem[]>;
976
1108
  fetchBkFlowInnerPluginDetail: (code: string, version: string) => Promise<BkflowInnerPluginMetaItem>;
1109
+ fetchSubprocessOutput: (params?: {
1110
+ code?: string;
1111
+ version?: string;
1112
+ }) => Promise<BkflowInnerPluginMetaItem>;
977
1113
  fetchInnerVariableDetail: (code: string) => Promise<BkflowInnerPluginMetaItem>;
978
1114
  fetchBkFlowThirdPartyPluginList: (tag: number) => Promise<{
979
1115
  data: {
@@ -994,6 +1130,20 @@ interface FlowEditApiConfig extends FlowViewApiConfig {
994
1130
  fetchPluginGroupList: () => Promise<PluginGroupConfig[]>;
995
1131
  fetchCategoryPlugins: (category: string) => Promise<PluginMetaItem[]>;
996
1132
  fetchAllPluginGroups: () => Promise<GroupsPluginItem[]>;
1133
+ /**
1134
+ * 获取子流程模板列表
1135
+ */
1136
+ fetchSubflowTemplateList?: (params: {
1137
+ /** 每页条数 */
1138
+ limit: number;
1139
+ /** 偏移量 */
1140
+ offset: number;
1141
+ /** 名称模糊搜索*/
1142
+ keyword?: string;
1143
+ }) => Promise<{
1144
+ results: SubflowTemplateItem[];
1145
+ count: number;
1146
+ }>;
997
1147
  enableThirdPlugin?: boolean;
998
1148
  fetchPluginDetail?: (id: string) => Promise<UniformApiPluginDetail>;
999
1149
  fetchApplyInstructionData?: (params: any) => Promise<any>;
@@ -1037,5 +1187,24 @@ declare const PLUGIN_GROUP_ICON_MAP: Record<string, string>;
1037
1187
  */
1038
1188
  declare function useFlowApi(config: FlowApiConfig): FlowDetailApiConfig;
1039
1189
 
1040
- export { PLUGIN_GROUP_ICON_MAP, useFlowApi };
1041
- export type { CustomVariableType, DebugApiServices, DebugContext, DebugContextNode, DebugContextStatus, DebugErrorDetail, DebugExecutionMode, DebugInputSchema, DebugMissingVar, DebugNodeStatus, DebugRunStatus, DebugRunType, EndEvent, Flow, FlowDetailApiConfig, FlowEditApiConfig, FlowListItem, FlowViewApiConfig, GatewayType, Line, Location, NodeConfigData, NodeType, NotifyConfig, PluginGroupConfig, PluginOutputItem, PortOrientation, StartEvent, TemplateConfigs, UniformApiPluginConfig, UniformApiPluginInputsItem, VariableRefRequestParams };
1190
+ interface VariableOption {
1191
+ key: string;
1192
+ name: string;
1193
+ source_type?: string;
1194
+ custom_type?: string;
1195
+ }
1196
+ interface CreateVariablePayload {
1197
+ keyword?: string;
1198
+ cursorIndex?: number;
1199
+ defaultCustomType?: string;
1200
+ }
1201
+ interface CreateVariableRequest extends CreateVariablePayload {
1202
+ onCreated: (option: VariableOption) => void;
1203
+ }
1204
+
1205
+ type VariableInputCreateVariableHandler = (request: CreateVariableRequest) => void;
1206
+ declare const provideVariableInputCreateVariable: (handler: VariableInputCreateVariableHandler) => void;
1207
+ declare const useVariableInputCreateVariable: () => VariableInputCreateVariableHandler | null;
1208
+
1209
+ export { PLUGIN_GROUP_ICON_MAP, provideVariableInputCreateVariable, useFlowApi, useVariableInputCreateVariable };
1210
+ export type { CreateVariablePayload, CreateVariableRequest, CustomVariableType, DebugApiServices, DebugConditionResult, DebugContext, DebugContextNode, DebugContextStatus, DebugErrorDetail, DebugExecutionMode, DebugInputSchema, DebugMissingVar, DebugNodeStatus, DebugRunStatus, DebugRunType, EndEvent, Flow, FlowDetailApiConfig, FlowEditApiConfig, FlowListItem, FlowViewApiConfig, GatewayType, Line, Location, NodeConfigData, NodeType, NotifyConfig, PluginGroupConfig, PluginOutputItem, PortOrientation, StartEvent, TemplateConfigs, UniformApiPluginConfig, UniformApiPluginInputsItem, VariableInputCreateVariableHandler, VariableOption, VariableRefRequestParams };
@@ -1,5 +1,7 @@
1
- import { P as s, u as _ } from "./composable-Cf47ka9M.js";
1
+ import { P as r, p as i, u as p, a as s } from "./context-CdSU0w5S.js";
2
2
  export {
3
- s as PLUGIN_GROUP_ICON_MAP,
4
- _ as useFlowApi
3
+ r as PLUGIN_GROUP_ICON_MAP,
4
+ i as provideVariableInputCreateVariable,
5
+ p as useFlowApi,
6
+ s as useVariableInputCreateVariable
5
7
  };
@@ -0,0 +1 @@
1
+ "use strict";const O=require("bkui-vue/lib/message"),L=require("axios"),v=require("vue"),A="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2016%2016'%20class='design-iconfont'%3e%3cpath%20d='M13,1%20C14.1045695,1%2015,1.8954305%2015,3%20L15,13%20C15,14.1045695%2014.1045695,15%2013,15%20L3,15%20C1.8954305,15%201,14.1045695%201,13%20L1,3%20C1,1.8954305%201.8954305,1%203,1%20L13,1%20Z%20M13,12%20L3,12%20C2.72385763,12%202.5,12.2238576%202.5,12.5%20C2.5,12.7761424%202.72385763,13%203,13%20L13,13%20C13.2761424,13%2013.5,12.7761424%2013.5,12.5%20C13.5,12.2238576%2013.2761424,12%2013,12%20Z%20M5,6.5%20L4,6.5%20C3.72385763,6.5%203.5,6.72385763%203.5,7%20L3.5,10.5%20C3.5,10.7761424%203.72385763,11%204,11%20L5,11%20C5.27614237,11%205.5,10.7761424%205.5,10.5%20L5.5,7%20C5.5,6.72385763%205.27614237,6.5%205,6.5%20Z%20M8.5,3.5%20L7.5,3.5%20C7.22385763,3.5%207,3.72385763%207,4%20L7,10.5%20C7,10.7761424%207.22385763,11%207.5,11%20L8.5,11%20C8.77614237,11%209,10.7761424%209,10.5%20L9,4%20C9,3.72385763%208.77614237,3.5%208.5,3.5%20Z%20M12,5%20L11,5%20C10.7238576,5%2010.5,5.22385763%2010.5,5.5%20L10.5,10.5%20C10.5,10.7761424%2010.7238576,11%2011,11%20L12,11%20C12.2761424,11%2012.5,10.7761424%2012.5,10.5%20L12.5,5.5%20C12.5,5.22385763%2012.2761424,5%2012,5%20Z'%20fill='%23F8A54F'%20fill-rule='evenodd'/%3e%3c/svg%3e",E="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2016%2016'%20class='design-iconfont'%3e%3cdefs%3e%3clinearGradient%20x1='0%25'%20y1='0%25'%20x2='100%25'%20y2='96.1961861%25'%20id='19loczb8h__f71x3hmpea'%3e%3cstop%20stop-color='%234D76E3'%20offset='0%25'/%3e%3cstop%20stop-color='%23D787EE'%20offset='100%25'/%3e%3c/linearGradient%3e%3c/defs%3e%3cpath%20d='M13,1%20C14.1045695,1%2015,1.8954305%2015,3%20L15,13%20C15,14.1045695%2014.1045695,15%2013,15%20L3,15%20C1.8954305,15%201,14.1045695%201,13%20L1,3%20C1,1.8954305%201.8954305,1%203,1%20L13,1%20Z%20M8.5,2.5%20C6.17779929,2.5%204.26643215,4.28054945%204.02558864,6.56651687%20L4.026,6.558%20L4.03,6.54%20L3.99928094,6.75189877%20C3.76394842,8.11436335%203.07389664,8.46527789%203.00547979,8.87325046%20L3,8.93829715%20C3,9.39912427%204.33397403,9.2134945%204.33397403,9.69904945%20L4.33397403,10.9924271%20C4.33401331,11.5290486%204.757596,11.9699791%205.29378397,11.9915459%20C5.90300757,12.0163699%206.26264111,12.0687043%206.37268552,12.1485262%20C6.45725813,12.2098718%206.51932943,12.4266274%206.55889942,12.7987929%20L6.57276328,12.9456332%20C6.61875295,13.4959998%207.10219523,13.904878%207.65256183,13.8588884%20C7.70929358,13.8541478%207.76551689,13.8445713%207.82061902,13.8302632%20L10.1746185,13.2277878%20C10.5547586,13.1298644%2010.8424468,12.818586%2010.9101698,12.431922%20C11.0509156,11.6378879%2011.2333254,10.9899099%2011.4579782,10.4880363%20C12.402959,9.65300356%2013,8.42466038%2013,7.05516145%20C13,4.53941525%2010.9852814,2.5%208.5,2.5%20Z%20M8.9876109,3.8125%20C9.12361371,3.8219246%209.2572817,3.84136285%209.38686376,3.87081473%20L9.51119251,4.49813988%20C9.7435063,4.58296131%209.9565579,4.70842634%2010.1410081,4.86687748%20L10.7410548,4.6624814%20C10.8461213,4.77852183%2010.9412649,4.90339782%2011.0247344,5.03652034%20L11.1333032,5.22560144%20C11.2050986,5.36461434%2011.2658038,5.51128472%2011.3125,5.66384549%20L10.8356146,6.08677455%20C10.8560442,6.20399306%2010.8665509,6.32474578%2010.8665509,6.4484437%20C10.8665509,6.57390873%2010.8554605,6.69642857%2010.8344472,6.81541419%20L11.3101652,7.23775422%20C11.1934246,7.61473834%2010.9949656,7.95579117%2010.7358014,8.2391183%20L10.135171,8.03413318%20C9.95188828,8.19022817%209.74117149,8.31392609%209.51177621,8.39815848%20L9.38744747,9.02607267%20C9.20182991,9.06789435%209.00920792,9.09027778%208.81133259,9.09027778%20C8.61579208,9.09027778%208.4249212,9.06848338%208.24163845,9.02725074%20L8.11730971,8.40051463%20C7.88616332,8.31628224%207.67369542,8.19199529%207.48924527,8.03531126%20L6.88803117,8.24029638%20C6.79055277,8.13368056%206.70182991,8.0188182%206.6224463,7.89747644%20L6.47068352,7.63240947%20C6.408811,7.50753348%206.35569402,7.37676711%206.31366741,7.24128844%20L6.78938536,6.81894841%20C6.76778835,6.69878472%206.75669799,6.57449777%206.75669799,6.44785466%20C6.75669799,6.32297867%206.76778835,6.20045883%206.78880166,6.08147321%20L6.3125,5.65913318%20C6.3504407,5.53661334%206.39713694,5.41821677%206.45142132,5.30394345%20L6.64696183,4.96230159%20C6.719341,4.8562748%206.79814091,4.75496032%206.88452895,4.66071429%20L7.48457565,4.8656994%20C7.67077691,4.70665923%207.88499591,4.58060516%208.11906082,4.49578373%20L8.24338956,3.86904762%20C8.37122052,3.84077381%208.50197,3.82133557%208.63622169,3.8125%20Z%20M8.8119163,5.50598338%20C8.29592283,5.50598338%207.87799148,5.92773437%207.87799148,6.4484437%20C7.87799148,6.96915303%208.29592283,7.39090402%208.8119163,7.39090402%20C9.32790976,7.39090402%209.74584112,6.96915303%209.74584112,6.4484437%20C9.74584112,5.92773437%209.32790976,5.50598338%208.8119163,5.50598338%20Z%20M8.8119163,5.88296751%20C9.12139176,5.88296751%209.37227119,6.13613982%209.37227119,6.4484437%20C9.37227119,6.76074758%209.12139176,7.01391989%208.8119163,7.01391989%20C8.50244084,7.01391989%208.25156141,6.76074758%208.25156141,6.4484437%20C8.25156141,6.13613982%208.50244084,5.88296751%208.8119163,5.88296751%20Z'%20fill='url(%2319loczb8h__f71x3hmpea)'%20fill-rule='evenodd'/%3e%3c/svg%3e",I="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2016%2016'%20class='design-iconfont'%3e%3cpath%20d='M13,1%20C14.1045695,1%2015,1.8954305%2015,3%20L15,13%20C15,14.1045695%2014.1045695,15%2013,15%20L3,15%20C1.8954305,15%201,14.1045695%201,13%20L1,3%20C1,1.8954305%201.8954305,1%203,1%20L13,1%20Z%20M8.03846154,2.5%20C7.295,2.5%206.6923077,3.10269231%206.6923077,3.84615384%20L6.6923077,4.42307693%20L4.38461538,4.42307693%20C4.17230769,4.42307693%204,4.59538461%204,4.8076923%20L4,6.92307693%20L4.57692308,6.92307693%20C5.32038461,6.92307693%205.92307693,7.52576923%205.92307693,8.26923077%20C5.92307693,9.0126923%205.32038461,9.61538461%204.57692308,9.61538461%20L4,9.61538461%20L4,12.1153846%20C4,12.3276923%204.17230769,12.5%204.38461538,12.5%20L6.6923077,12.5%20L6.6923077,11.9230769%20C6.6923077,11.1796154%207.295,10.5769231%208.03846154,10.5769231%20C8.78192307,10.5769231%209.38461539,11.1796154%209.38461539,11.9230769%20L9.38461539,12.5%20L11.6923077,12.5%20C11.9046154,12.5%2012.0769231,12.3276923%2012.0769231,12.1153846%20L12.0769231,9.61538461%20L12.6538462,9.61538461%20C13.3973077,9.61538461%2014,9.0126923%2014,8.26923077%20C14,7.52576923%2013.3973077,6.92307693%2012.6538462,6.92307693%20L12.0769231,6.92307693%20L12.0769231,4.8076923%20C12.0769231,4.59538461%2011.9046154,4.42307693%2011.6923077,4.42307693%20L9.38461539,4.42307693%20L9.38461539,3.84615384%20C9.38461539,3.10269231%208.78192307,2.5%208.03846154,2.5%20Z'%20fill='%235AB88E'%20fill-rule='evenodd'/%3e%3c/svg%3e",B="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2016%2016'%20class='design-iconfont'%3e%3cdefs%3e%3clinearGradient%20x1='0%25'%20y1='0%25'%20x2='100%25'%20y2='96.1961861%25'%20id='vgdxp7v4l__zvhmfdo4ha'%3e%3cstop%20stop-color='%234D76E3'%20offset='0%25'/%3e%3cstop%20stop-color='%23D787EE'%20offset='100%25'/%3e%3c/linearGradient%3e%3c/defs%3e%3cpath%20d='M13,1%20C14.1045695,1%2015,1.8954305%2015,3%20L15,13%20C15,14.1045695%2014.1045695,15%2013,15%20L3,15%20C1.8954305,15%201,14.1045695%201,13%20L1,3%20C1,1.8954305%201.8954305,1%203,1%20L13,1%20Z%20M8.44875881,3.88645164%20C7.88887563,4.38553286%207.31548649,5.06473362%206.78138741,5.85400744%20C6.4216379,5.88402737%206.07416654,5.92655559%205.74142896,5.98159211%20C5.68126606,5.77270348%205.6321535,5.570069%205.59409127,5.37619034%20C5.50937211,4.9434031%205.48727146,4.57065572%205.52901714,4.29797476%20C5.55848467,4.10784858%205.61741973,3.97275892%205.6935442,3.92772904%20C5.81878123,3.85393006%206.26447771,3.90646492%207.05027868,4.63319723%20L7.64454064,3.96650477%20C7.22094482,3.57499494%206.82067746,3.29856148%206.45356107,3.14470937%20C6.13432943,3.01087055%205.66653229,2.90329916%205.25153116,3.14721103%20C4.84512474,3.38611959%204.42398453,3.99777552%204.72725459,5.55130656%20C4.76531682,5.74893772%204.81442938,5.95282302%204.87336445,6.16421332%20C4.66586389,6.21799902%204.46818584,6.27678802%204.2815581,6.34183119%20C2.80940913,6.85216989%202.5,7.528869%202.5,8.0066861%20C2.5,8.49826234%202.82905415,8.85850142%203.10654011,9.07364421%20C3.42454394,9.32130857%203.86532916,9.53770219%204.41661765,9.71532006%20L4.68428111,8.85725059%20C3.65660079,8.5257806%203.38525389,8.1555349%203.38525389,8.0066861%20C3.38525389,7.91787716%203.46997306,7.79654664%203.61731074,7.67646695%20C3.82849474,7.50385239%204.15754889,7.33749199%204.56641096,7.19489735%20C4.75058305,7.13110501%204.9470333,7.07356682%205.15330604,7.02228279%20C5.27240401,7.34374613%205.41114699,7.67271446%205.56585156,8.00543527%20C5.34975629,8.47074408%205.16558418,8.93230041%205.01824651,9.37384344%20C4.76040556,10.1518598%204.62534603,10.8610805%204.62780166,11.4227032%20C4.63025729,11.9092761%204.74076054,12.5522028%205.25521461,12.8549037%20C5.43570327,12.9612243%205.62478661,13%205.80895872,13%20C6.05083808,13%206.2804393,12.9312044%206.46338358,12.8549037%20C6.8329556,12.6998008%207.23567859,12.4196148%207.66050223,12.0243525%20L7.06501244,11.3589109%20C6.27184459,12.0956498%205.82369249,12.1494355%205.69722765,12.0743857%20C5.60882504,12.0218508%205.51428337,11.8229689%205.51182774,11.4176999%20C5.50937211,10.9536419%205.62847006,10.3457385%205.85561565,9.66028354%20C5.92437324,9.45264574%206.00172552,9.24125546%206.08890031,9.02611266%20C6.10363407,9.05112927%206.11714004,9.07614586%206.13187381,9.1024133%20C6.59967093,9.92671036%207.13254221,10.6947201%207.67400818,11.321386%20C8.20687945,11.9380452%208.74220636,12.4121098%209.22105382,12.691045%20C9.49240072,12.8499004%209.84601114,13%2010.2008494,13%20C10.3874771,13%2010.5753327,12.9587226%2010.7533657,12.8536529%20C11.2678198,12.550952%2011.378323,11.9067745%2011.3807786,11.4202015%20C11.3832343,10.8585788%2011.2481747,10.1493581%2010.9903338,9.37009095%20C10.8589577,8.97232696%2010.6956584,8.55705136%2010.5065751,8.13802326%20L9.70235691,8.5170248%20C9.87916211,8.9072838%2010.0301832,9.29128866%2010.1517368,9.66028354%20C10.3788824,10.3457385%2010.4979804,10.9536419%2010.4955247,11.4189507%20C10.4942969,11.8242197%2010.3985274,12.0243525%2010.3101248,12.0756365%20C10.2217222,12.1281714%2010.0043991,12.1119106%209.65938341,11.910527%20C9.2640273,11.6803742%208.80605269,11.2713527%208.33702774,10.7272417%20C7.833624,10.1443548%207.33513152,9.42762914%206.89680191,8.65336529%20C6.77402052,8.43697167%206.658606,8.22182889%206.55055837,8.00543527%20C6.65983383,7.78654%206.77647615,7.56889555%206.89925754,7.35250195%20C7.02081114,7.13735916%207.14604815,6.92847053%207.27496864,6.72583605%20C7.51316455,6.71332774%207.7550439,6.70707359%208.00060669,6.70707359%20C9.30454518,6.70707359%2010.5249923,6.88093898%2011.4348024,7.19614818%20C11.8448923,7.33749199%2012.1727187,7.50385239%2012.3839027,7.67771778%20C12.5312403,7.7990483%2012.6159595,7.91912799%2012.6159595,8.00793694%20C12.6159595,8.10425085%2012.5189622,8.23433719%2012.3495239,8.36567435%20C12.111328,8.54954639%2011.7442116,8.72341178%2011.2886926,8.86850806%20L11.5526726,9.72782838%20C12.1125558,9.55021049%2012.5607079,9.33256604%2012.883623,9.08365086%20C13.1647924,8.86725724%2013.5,8.50451651%2013.5,8.00793694%20C13.5012134,7.528869%2013.1918043,6.85216989%2011.7196553,6.34183119%20C10.7202147,5.99535125%209.39908685,5.80522507%208.00060669,5.80522507%20L7.91097628,5.80522507%20C8.2805483,5.31740132%208.66117063,4.89587157%209.03197046,4.56440157%20C9.35734117,4.27420898%209.66306686,4.06782201%209.91599654,3.9677556%20C10.0928018,3.89770911%2010.2376838,3.88394998%2010.3138083,3.92772904%20C10.3960718,3.97651141%2010.4586903,4.12786186%2010.4844744,4.34425547%20C10.5213088,4.64945802%2010.4844744,5.06348279%2010.3776546,5.54129991%20L11.23958,5.7401819%20C11.3697283,5.15354257%2011.411474,4.64695636%2011.3611336,4.23418242%20C11.3181601,3.87519417%2011.1781893,3.39612623%2010.7545935,3.14721103%20C10.3481871,2.90830248%209.61886555,2.84200848%208.44875881,3.88645164%20Z%20M8.42307307,6.91304349%20C7.83892612,6.91304349%207.36538145,7.39969049%207.36538145,8%20C7.36538145,8.60030951%207.83892612,9.08695653%208.42307307,9.08695653%20C9.00722001,9.08695653%209.48076468,8.60030951%209.48076468,8%20C9.48076468,7.39969049%209.00722001,6.91304349%208.42307307,6.91304349%20Z'%20fill='url(%23vgdxp7v4l__zvhmfdo4ha)'%20fill-rule='evenodd'/%3e%3c/svg%3e",G="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2016%2016'%20class='design-iconfont'%3e%3cdefs%3e%3clinearGradient%20x1='0%25'%20y1='0%25'%20x2='100%25'%20y2='96.1961861%25'%20id='7doce0e6d__r8m44v5xza'%3e%3cstop%20stop-color='%234D76E3'%20offset='0%25'/%3e%3cstop%20stop-color='%23D787EE'%20offset='100%25'/%3e%3c/linearGradient%3e%3c/defs%3e%3cpath%20d='M13,1%20C14.1045695,1%2015,1.8954305%2015,3%20L15,13%20C15,14.1045695%2014.1045695,15%2013,15%20L3,15%20C1.8954305,15%201,14.1045695%201,13%20L1,3%20C1,1.8954305%201.8954305,1%203,1%20L13,1%20Z%20M11,3.5%20L5,3.5%20C3.8954305,3.5%203,4.3954305%203,5.5%20L3,9.5%20C3,10.6045695%203.8954305,11.5%205,11.5%20L9.536,11.5%20L12.0312272,13.0147852%20L11.4996566,11.5%20L11.0252355,11.4998441%20C12.1181756,11.4863297%2013,10.5961454%2013,9.5%20L13,5.5%20C13,4.3954305%2012.1045695,3.5%2011,3.5%20Z%20M8,9%20C8.27614237,9%208.5,9.22385763%208.5,9.5%20C8.5,9.77614237%208.27614237,10%208,10%20L5,10%20C4.72385763,10%204.5,9.77614237%204.5,9.5%20C4.5,9.22385763%204.72385763,9%205,9%20Z%20M11,7%20C11.2761424,7%2011.5,7.22385763%2011.5,7.5%20C11.5,7.77614237%2011.2761424,8%2011,8%20L5,8%20C4.72385763,8%204.5,7.77614237%204.5,7.5%20C4.5,7.22385763%204.72385763,7%205,7%20Z%20M11,5%20C11.2761424,5%2011.5,5.22385763%2011.5,5.5%20C11.5,5.77614237%2011.2761424,6%2011,6%20L5,6%20C4.72385763,6%204.5,5.77614237%204.5,5.5%20C4.5,5.22385763%204.72385763,5%205,5%20Z'%20fill='url(%237doce0e6d__r8m44v5xza)'%20fill-rule='evenodd'/%3e%3c/svg%3e",R="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='32px'%20height='32px'%20viewBox='0%200%2032%2032'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3ctitle%3eIcon/Node/知识库%3c/title%3e%3cdefs%3e%3clinearGradient%20x1='2.20648492%25'%20y1='2.12255434%25'%20x2='100%25'%20y2='96.1961861%25'%20id='linearGradient-1'%3e%3cstop%20stop-color='%234DB9E3'%20offset='0%25'%3e%3c/stop%3e%3cstop%20stop-color='%23BA70EF'%20offset='100%25'%3e%3c/stop%3e%3c/linearGradient%3e%3c/defs%3e%3cg%20id='Icon/Node/知识库'%20stroke='none'%20stroke-width='1'%20fill='none'%20fill-rule='evenodd'%3e%3cpath%20d='M28,2%20C29.1045695,2%2030,2.8954305%2030,4%20L30,28%20C30,29.1045695%2029.1045695,30%2028,30%20L4,30%20C2.8954305,30%202,29.1045695%202,28%20L2,4%20C2,2.8954305%202.8954305,2%204,2%20L28,2%20Z%20M17.3479972,6%20L14.1475857,6%20C13.7208642,6%2013.3652629,6.35778176%2013.3652629,6.78711986%20L13.3652629,25.2128801%20C13.3652629,25.6422183%2013.7208642,26%2014.1475857,26%20L17.3479972,26%20C17.7747188,26%2018.1303201,25.6422183%2018.1303201,25.2128801%20L18.1303201,6.78711986%20C18.1658802,6.35778176%2017.8102789,6%2017.3479972,6%20Z%20M10.9827343,8.64758499%20L7.78232282,8.64758499%20C7.35560129,8.64758499%207,9.00536675%207,9.43470484%20L7,25.2128801%20C7,25.6422183%207.35560129,26%207.78232282,26%20L10.9827343,26%20C11.4094559,26%2011.7650571,25.6422183%2011.7650571,25.2128801%20L11.7650571,9.43470484%20C11.7650571,9.00536673%2011.4094559,8.64758499%2010.9827343,8.64758499%20Z%20M22.1841746,8.25402505%20L22.0419342,8.25402505%20L18.9126429,8.86225404%20C18.4859213,8.93381039%2018.2014403,9.36314849%2018.2725606,9.7924866%20L21.2951715,25.3202147%20C21.3662917,25.7137746%2021.6863328,25.9642218%2022.0774943,25.9642218%20L22.2197348,25.9642218%20L25.349026,25.3559928%20C25.7757476,25.2486584%2026.0602286,24.8193202%2025.9891084,24.3899821%20L23.0020576,8.89803221%20C22.8953773,8.50447228%2022.575336,8.25402505%2022.1841746,8.25402505%20Z%20M10.0937311,10.4364937%20C10.4848925,10.4364937%2010.8049337,10.7584973%2010.8049337,11.1520572%20C10.8049337,11.5456172%2010.4848925,11.8676208%2010.0937311,11.8676208%20L8.67132601,11.8676208%20C8.28016461,11.8676208%207.96012346,11.5456172%207.96012346,11.1520572%20C7.96012346,10.7584973%208.28016461,10.4364937%208.67132601,10.4364937%20L10.0937311,10.4364937%20Z%20M22.4686557,10.4722719%20C22.539776,10.8658319%2022.2908551,11.2593918%2021.8996937,11.3309481%20L20.4772885,11.6171735%20L20.335048,11.6171735%20C20.0150069,11.6171735%2019.6949657,11.3667263%2019.6238455,11.0447227%20C19.5527252,10.6511628%2019.8016461,10.2576029%2020.1928074,10.1860465%20L21.6152126,9.89982112%20C22.006374,9.82826478%2022.3975355,10.078712%2022.4686557,10.4722719%20Z%20M16.4945542,7.82468694%20C16.8857156,7.82468694%2017.2057567,8.14669052%2017.2057567,8.54025046%20C17.2057567,8.9338104%2016.8857156,9.25581397%2016.4945542,9.25581397%20L15.072149,9.25581397%20C14.6809876,9.25581397%2014.3609465,8.93381039%2014.3609465,8.54025046%20C14.3609465,8.14669054%2014.6809876,7.82468694%2015.072149,7.82468694%20L16.4945542,7.82468694%20Z'%20id='形状结合备份'%20fill='url(%23linearGradient-1)'%3e%3c/path%3e%3c/g%3e%3c/svg%3e",y=I,P={bkflow:I,data:A,agent:E,model:B,output:G,knowledgebase:R},Z={bkflow:"bkflow-canvas-icon bkflow-canvas-plugin",data:"bkflow-canvas-icon bkflow-canvas-data",agent:"bkflow-canvas-icon bkflow-canvas-zhinengti",model:"bkflow-canvas-icon bkflow-canvas-model-filled",knowledgebase:"bkflow-canvas-icon bkflow-canvas-knowledgebase-filled"},C="请求失败";class d extends Error{httpStatus;code;data;cause;constructor(e,s={}){super(e||C),this.name="ApiError",this.httpStatus=s.httpStatus,this.code=s.code,this.data=s.data,this.cause=s.cause}}const h=a=>Object.prototype.toString.call(a)==="[object Object]",D=a=>h(a)&&typeof a.result=="boolean"&&Object.prototype.hasOwnProperty.call(a,"data")&&(Object.prototype.hasOwnProperty.call(a,"code")||Object.prototype.hasOwnProperty.call(a,"message")),w=a=>typeof a=="string"?a:h(a)?typeof a.err_msg=="string"?a.err_msg:typeof a.message=="string"?a.message:typeof a.detail=="string"?a.detail:h(a.detail)&&typeof a.detail.detail=="string"?a.detail.detail:"":"";function U(a){const e=h(a)&&typeof a.status=="number"&&Object.prototype.hasOwnProperty.call(a,"config")&&Object.prototype.hasOwnProperty.call(a,"data"),s=e?a.data:a;if(!D(s))return s;if(s.result)return s.data;throw new d(w(s)||C,{code:s.code===void 0||s.code===null?void 0:String(s.code),httpStatus:e?a.status:void 0,data:s.data,cause:a})}function F(a){if(a instanceof d)return a;if(L.isAxiosError(a)){const e=a.response?.data;return D(e)&&!e.result?new d(w(e)||a.message||C,{httpStatus:a.response?.status,code:e.code===void 0||e.code===null?void 0:String(e.code),data:e.data,cause:a}):new d(w(e)||a.response?.statusText||a.message||C,{httpStatus:a.response?.status,data:e,cause:a})}if(h(a)&&h(a.response)){const e=a.response,s=e.data;return D(s)&&!s.result?new d(w(s)||C,{httpStatus:typeof e.status=="number"?e.status:void 0,code:s.code===void 0||s.code===null?void 0:String(s.code),data:s.data,cause:a}):new d(w(s)||(typeof e.statusText=="string"?e.statusText:"")||C,{httpStatus:typeof e.status=="number"?e.status:void 0,data:s,cause:a})}return a instanceof Error?new d(a.message,{cause:a}):typeof a=="string"?new d(a,{cause:a}):new d(w(a)||C,{data:a,cause:a})}const x=()=>Math.floor((1+Math.random())*65536).toString(16).substring(1),V=(a=8)=>{let e="";for(let s=0;s<a-1;s++)e+=x();return e},T=(a=32)=>{let e="";const s="abcdef0123456789";for(let u=0;u<a;u++)e+=s.charAt(Math.floor(Math.random()*s.length));return e},$=()=>`00-${T(32)}-${T(16)}-01`,j=a=>a.httpStatus!==401&&a.httpStatus!==404&&!!a.message&&!a.message.includes("1211011");function z(a){const{headers:e,...s}=a.axiosConfig||{},u={baseURL:a.baseURL||(typeof window>"u"?void 0:window.API_HOST),xsrfCookieName:a.xsrfCookieName||"bk-incident_csrftoken",xsrfHeaderName:"X-CSRFToken",withCredentials:!0,...s,headers:a.axiosConfig?.headers},i=a.axiosInstance??L.create(u),c=(r={})=>{const t={...r},o=L.AxiosHeaders.from(t.headers);return o.has("traceparent")||o.set("traceparent",$()),{...t,headers:o}};async function n(r,t={}){try{return U(await r())}catch(o){const l=F(o);throw t.errorHandling!=="delegate"&&j(l)&&O({theme:"error",message:l.message,ellipsisLine:3}),l}}return{request(r){return n(()=>i.request(c(r)),r)},get(r,t={}){return n(()=>i.get(r,c(t)),t)},delete(r,t={}){return n(()=>i.delete(r,c(t)),t)},post(r,t,o={}){return n(()=>i.post(r,t,c(o)),o)},put(r,t,o={}){return n(()=>i.put(r,t,c(o)),o)},patch(r,t,o={}){return n(()=>i.patch(r,t,c(o)),o)}}}const p="/bkflow/template",f={errorHandling:"delegate"};function H(a,e){const{scope_type:s,scope_value:u,space_id:i}=e,c=n=>({template_id:Number(n),space_id:i,scope_type:s,scope_value:u});return{fetchDebugContext(n){return a.get(`${p}/debug_context/`,{...f,params:c(n)})},fetchDebugInputSchema(n){return a.get(`${p}/debug_input_schema/`,{...f,params:c(n)})},fetchDebugResetImpact(n){return a.post(`${p}/debug_reset_impact/`,{...c(n)},f)},updateNodeDebugMock(n){const r={...c(n.templateId),node_id:n.nodeId,enable:n.enable};return n.mockResult!==void 0&&(r.mock_result=n.mockResult),n.mockOutputs!==void 0&&(r.mock_outputs=n.mockOutputs),n.mockError!==void 0&&(r.mock_error=n.mockError),a.post(`${p}/debug_node_mock/`,r,f)},runNodeDebugStep(n){const r={...c(n.templateId),node_id:n.nodeId,mode:n.mode};return n.inputOverrides!==void 0&&(r.input_overrides=n.inputOverrides),n.mockResult!==void 0&&(r.mock_result=n.mockResult),n.mockOutputs!==void 0&&(r.mock_outputs=n.mockOutputs),n.mockError!==void 0&&(r.mock_error=n.mockError),a.post(`${p}/debug_step_run/`,r,f)},runGlobalDebug(n){return a.post(`${p}/debug_global_run/`,{...c(n.templateId),inputs:n.inputs},f)},terminateDebug(n){const r={...c(n.templateId)};return n.nodeId!==void 0&&(r.node_id=n.nodeId),a.post(`${p}/debug_terminate/`,r,f)},resetDebugResult(n){const r={...c(n.templateId)};return n.nodeIds!==void 0&&(r.node_ids=n.nodeIds),a.post(`${p}/debug_reset/`,r,f)}}}const S=0,K=["dmn_plugin","subprocess_plugin"],M=(a=[])=>[{code_name:"INNER",id:S,name:"内置",priority:1},...a];function W(a){const e=z(a),{scopeData:s}=a,u=H(e,s),i=t=>({...t,...s}),c=async()=>await e.get("/bkflow/plugin/tags/",{params:{...s}}),n=async()=>[...(await e.get("/metas/category/list_categories/",{params:s})).map(o=>({...o,iconUrl:P[o.name]??y})),{id:"bkflow",name:"bkflow",alias:"插件",properties:{},iconUrl:P.bkflow??y}],r=async t=>(await e.post("/metas/plugin/list_plugins/",i({category:t}))).apis;return{...u,async fetchSubflowTemplateList(t){return await e.get("/bkflow/template/list_template/",{params:{limit:t.limit,offset:t.offset,...t.keyword?{name__icontains:t.keyword}:{},empty_scope:1,...s}})},async fetchFlowDetail(t){return await e.get(`/bkflow/template/${t}/fetch_template/`,{params:s})},async fetchFlowDetailByVersion(t,o){return await e.post(`/bkflow/template/${t}/preview_task_tree/`,{...s,is_all_nodes:!0,version:o})},async fetchFlowDraftDetail(t){return await e.get(`/bkflow/template/${t}/get_draft_template/`,{params:s})},async fetchSpaceFlowConfig(t){return await e.get(`/bkflow/template/${t}/get_space_related_configs/`,{params:s})},async fetchSystemVariables(t){const o=await e.get("/bkflow/variable/system_variables/",{params:{template_id:t,...s}});return Object.values(o)},async saveFlow(t,o){await e.put(`/bkflow/template/${t}/update_template/`,i(o))},async fetchInnerVariableDetail(t){return await e.get(`/bkflow/variable/${t}/variable_class_detail/`,{params:{...s}})},async fetchBkFlowInnerPluginList(){return(await e.get("/bkflow/inner_plugin/plugins/",{params:{...s}})).filter(o=>!K.includes(o.code))},async fetchBkFlowInnerPluginDetail(t,o){return await e.get(`/bkflow/inner_plugin/${t}/plugin_detail/`,{params:{version:o,...s}})},async fetchSubprocessOutput(t={}){const{code:o="subprocess_plugin",version:l=""}=t;return await e.get(`/bkflow/inner_plugin/${o}/plugin_detail/`,{params:{version:l,...s}})},async fetchBkFlowThirdPartyPluginTags(){return c()},async fetchBkFlowThirdPartyPluginList(t){return await e.get("/bkflow/plugin/list_plugin/",{params:{tag:t,...s}})},async searchBkFlowThirdPartyPlugins(t){return await e.get("/bkflow/plugin/list_plugin/",{params:{offset:0,limit:200,search_term:t,...s}})},async fetchBkFlowThirdPartyPluginMeta(t){return await e.get("/bkflow/plugin/meta/",{params:{plugin_code:t,...s}})},async fetchBkFlowThirdPartyPluginAppDetail(t,o){return await e.get("/bkflow/plugin/get_plugin_app_detail/",{params:{plugin_code:t,plugin_version:o,...s}})},async fetchBkFlowThirdPartyPluginDetail(t,o){return await e.get("/bkflow/plugin/plugin_detail/",{params:{plugin_code:t,plugin_version:o,with_app_detail:!0,...s}})},async fetchPluginGroupList(){return n()},async fetchCategoryPlugins(t){return r(t)},async fetchPluginDetail(t){return await e.get("/metas/plugin/get_plugin/",{params:{plugin_id:t,...s}})},async fetchAllPluginGroups(){const t=a.enableThirdPlugin!==!1,[o,l]=await Promise.all([n(),t?c():Promise.resolve([])]),k=o.map(async g=>{if(g.name==="bkflow")return{...g,children:M(t?l:[])};const b=await r(g.name);return{...g,children:b.map(m=>({...m,category_id:g.id}))}});return await Promise.all(k)},async fetchApplyInstructionData(t){return await e.post("/metas/plugin/apply_instruction/",i(t))},async fetchVariableRef(t){return{data:await e.post("/bkflow/template/analysis_constants_ref/",i(t))}},async fetchCustomVariableTypes(){return{data:await e.get("/bkflow/variable/variable_class_list/",{params:s})}},async fetchFlowOperateRecord(t){return{data:await e.get(`/bkflow/template/${t}/operation_record/`,{params:s})}},async createFlowTask(t){return{data:await e.post("/bkflow/template/create_task/",i(t))}},async getFlowTaskDetail(t){return await e.get("/bkflow/template/get_task_detail/",{params:{task_id:t.task_id,...s}})},async executeFlowTask(t){await e.post("/bkflow/template/operate_task/",i({...t,action:"start"}))},async revokeFlowTask(t){await e.post("/bkflow/template/operate_task/",i({...t,action:"revoke"}))},async fetchControlConfig(){return await e.get("/bkflow/space_config/get_control_config/",{params:s})},async checkSpaceConfig(t,o){return await e.get(`/bkflow/space_config/${t}/check_space_config/`,{params:{...s,...o}})},async drawPipeline(t){return await e.post("/bkflow/template/draw_pipeline/",i(t))},async createMockDebugTask(t){const{template_id:o,...l}=t;return{data:await e.post(`/bkflow/template/${o}/create_mock_task/`,i(l))}},async stopMockDebugTask(t){throw new Error("TODO(mock-debug-api): replace with final mock debug stop API.")},async fetchTaskState(t){return await e.get("/bkflow/template/get_task_states/",{params:{task_id:t.task_id,...s}})},async fetchTaskNodeDetail(t){return await e.get("/bkflow/task/get_task_node_detail/",{params:{task_id:t.task_id,node_id:t.node_id,...t.component_code?{component_code:t.component_code}:{},...s}})},async fetchTaskNodeSnapshot(t){return await e.get("/bkflow/task/get_node_snapshot_config/",{params:{task_id:t.task_id,node_id:t.node_id,...s}})},async fetchTaskNodeLog(t){return await e.get("/bkflow/task/get_task_node_log/",{params:{task_id:t.task_id,node_id:t.node_id,version:t.version,...s}})},async operateTaskNode(t){const o={retry:"retry",skip:"skip",forceFail:"forced_fail",resume:"callback",gatewaySkip:"skip_exg"},{task_id:l,node_id:k,action:_,data:g,operation:b}=t,m=b??o[_]??_;return await e.post(`/bkflow/task/${l}/node/${k}/operate_node/${m}/`,i(g??{}))}}}function X(a){const e=W(a);return{fetchFlowDetail:e.fetchFlowDetail,fetchFlowDraftDetail:e.fetchFlowDraftDetail,fetchFlowDetailByVersion:e.fetchFlowDetailByVersion,fetchSpaceFlowConfig:e.fetchSpaceFlowConfig,fetchSystemVariables:e.fetchSystemVariables,fetchUserApi:a.fetchUserApi,scopeData:a.scopeData,fetchVariableRef:e.fetchVariableRef,fetchCustomVariableTypes:e.fetchCustomVariableTypes,fetchFlowOperateRecord:e.fetchFlowOperateRecord,createFlowTask:e.createFlowTask,executeFlowTask:e.executeFlowTask,revokeFlowTask:e.revokeFlowTask,saveFlow:e.saveFlow,fetchBkFlowInnerPluginList:e.fetchBkFlowInnerPluginList,fetchInnerVariableDetail:e.fetchInnerVariableDetail,fetchBkFlowInnerPluginDetail:e.fetchBkFlowInnerPluginDetail,fetchSubprocessOutput:e.fetchSubprocessOutput,fetchBkFlowThirdPartyPluginList:e.fetchBkFlowThirdPartyPluginList,searchBkFlowThirdPartyPlugins:e.searchBkFlowThirdPartyPlugins,fetchBkFlowThirdPartyPluginTags:e.fetchBkFlowThirdPartyPluginTags,fetchBkFlowThirdPartyPluginMeta:e.fetchBkFlowThirdPartyPluginMeta,fetchBkFlowThirdPartyPluginDetail:e.fetchBkFlowThirdPartyPluginDetail,fetchBkFlowThirdPartyPluginAppDetail:e.fetchBkFlowThirdPartyPluginAppDetail,fetchPluginGroupList:e.fetchPluginGroupList,fetchCategoryPlugins:e.fetchCategoryPlugins,fetchSubflowTemplateList:e.fetchSubflowTemplateList,fetchPluginDetail:e.fetchPluginDetail,fetchApplyInstructionData:e.fetchApplyInstructionData,fetchAllPluginGroups:e.fetchAllPluginGroups,enableThirdPlugin:a.enableThirdPlugin,fetchControlConfig:e.fetchControlConfig,checkSpaceConfig:e.checkSpaceConfig,drawPipeline:e.drawPipeline,createMockDebugTask:e.createMockDebugTask,stopMockDebugTask:e.stopMockDebugTask,fetchTaskState:e.fetchTaskState,fetchTaskNodeDetail:e.fetchTaskNodeDetail,fetchTaskNodeSnapshot:e.fetchTaskNodeSnapshot,fetchTaskNodeLog:e.fetchTaskNodeLog,operateTaskNode:e.operateTaskNode,getFlowTaskDetail:e.getFlowTaskDetail,fetchDebugContext:e.fetchDebugContext,fetchDebugInputSchema:e.fetchDebugInputSchema,fetchDebugResetImpact:e.fetchDebugResetImpact,updateNodeDebugMock:e.updateNodeDebugMock,runNodeDebugStep:e.runNodeDebugStep,runGlobalDebug:e.runGlobalDebug,terminateDebug:e.terminateDebug,resetDebugResult:e.resetDebugResult}}const N=Symbol("variableInputCreateVariable"),q=a=>{v.provide(N,a)},J=()=>v.inject(N,null);exports.ApiError=d;exports.BKFLOW_INNER_PLUGIN_TAG_ID=S;exports.PLUGGIN_GROUP_FONT_CLASS_MAP=Z;exports.PLUGIN_GROUP_DEFAULT_ICON=y;exports.PLUGIN_GROUP_ICON_MAP=P;exports.buildBkflowPluginTagList=M;exports.generateId=V;exports.normalizeApiError=F;exports.provideVariableInputCreateVariable=q;exports.random4=x;exports.useFlowApi=X;exports.useVariableInputCreateVariable=J;