@legatoacc3/workflow-builder 0.1.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/README.md +44 -0
  2. package/dist/components/WorkflowBuilder.vue.d.ts +27 -0
  3. package/dist/components/WorkflowBuilder.vue.d.ts.map +1 -0
  4. package/dist/contracts.d.ts +28 -0
  5. package/dist/contracts.d.ts.map +1 -0
  6. package/dist/domain/builder-node-definition.d.ts +786 -0
  7. package/dist/domain/builder-node-definition.d.ts.map +1 -0
  8. package/dist/domain/builder-node-definition.js +1275 -0
  9. package/dist/domain/builder-node-metadata-response.d.ts +61 -0
  10. package/dist/domain/builder-node-metadata-response.d.ts.map +1 -0
  11. package/dist/domain/builder-node-metadata-response.js +0 -0
  12. package/dist/domain/workflow-draft.d.ts +169 -0
  13. package/dist/domain/workflow-draft.d.ts.map +1 -0
  14. package/dist/domain/workflow-draft.js +2115 -0
  15. package/dist/form-schema/form-schema-editor.d.ts +13 -0
  16. package/dist/form-schema/form-schema-editor.d.ts.map +1 -0
  17. package/dist/form-schema/form-schema-editor.js +65 -0
  18. package/dist/index.d.ts +98 -0
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +9298 -0
  21. package/dist/inspector/BuilderNodeSettingsPanel.vue.d.ts +136 -0
  22. package/dist/inspector/BuilderNodeSettingsPanel.vue.d.ts.map +1 -0
  23. package/dist/inspector/builder-node-settings-registry.d.ts +5 -0
  24. package/dist/inspector/builder-node-settings-registry.d.ts.map +1 -0
  25. package/dist/inspector/builder-node-settings-registry.js +37 -0
  26. package/dist/session/create-builder-session.d.ts +27 -0
  27. package/dist/session/create-builder-session.d.ts.map +1 -0
  28. package/dist/session/create-builder-session.js +670 -0
  29. package/dist/workflow-builder.css +112 -0
  30. package/package.json +71 -0
@@ -0,0 +1,786 @@
1
+ import type { WorkflowCanvasConditionalBranch, WorkflowCanvasConditionalBranchType, WorkflowCanvasNodeKind } from '@legatoacc3/workflow-canvas/contracts';
2
+ export type BuilderNodeFamily = 'lsflow-note' | 'start-input' | 'trigger' | 'output-response' | 'reasoning-routing' | 'transformation' | 'execution-container' | 'external-action' | 'lsflow-specific';
3
+ export type BranchConditionSource = 'form-field' | 'workflow-state' | 'approval-decision' | 'confidence-threshold' | 'policy-outcome';
4
+ export type WorkflowIfElseLogicalOperator = 'and' | 'or';
5
+ export type WorkflowIfElseConditionValueType = 'string' | 'number' | 'boolean';
6
+ export type WorkflowIfElseComparisonOperator = 'is' | 'is-not' | '>' | '<' | '>=' | '<=' | 'contains' | 'not-contains' | 'exists' | 'not-exists' | 'empty' | 'not-empty';
7
+ export interface WorkflowIfElseConditionRow {
8
+ id: string;
9
+ variableId: string;
10
+ variableLabel: string;
11
+ variableSourceLabel?: string;
12
+ valueType: WorkflowIfElseConditionValueType;
13
+ operator: WorkflowIfElseComparisonOperator;
14
+ value: string;
15
+ }
16
+ export interface WorkflowBranchCondition {
17
+ branchId: string;
18
+ type: WorkflowCanvasConditionalBranchType;
19
+ source: BranchConditionSource;
20
+ logicalOperator?: WorkflowIfElseLogicalOperator;
21
+ rows?: WorkflowIfElseConditionRow[];
22
+ expression: string;
23
+ }
24
+ export type WorkflowIfElseCaseCondition = NonNullable<WorkflowIfElseNodeConfig['cases']>[number]['conditions'][number];
25
+ export type WorkflowIfElseCaseItem = NonNullable<WorkflowIfElseNodeConfig['cases']>[number];
26
+ export type WorkflowStartInputVariableType = 'text-input' | 'paragraph' | 'select' | 'number' | 'url' | 'file' | 'file-list' | 'files' | 'json' | 'json_object' | 'contexts' | 'iterator' | 'loop' | 'checkbox';
27
+ export interface WorkflowStartInputVariableDefinition {
28
+ id: string;
29
+ variable: string;
30
+ label: string | {
31
+ nodeType: string;
32
+ nodeName: string;
33
+ variable: string;
34
+ isChatVar?: boolean;
35
+ };
36
+ type: WorkflowStartInputVariableType;
37
+ required: boolean;
38
+ hint?: string;
39
+ placeholder?: string;
40
+ options?: string[];
41
+ defaultValue?: string | number | boolean;
42
+ maxLength?: number;
43
+ unit?: string;
44
+ value_selector?: string[];
45
+ getVarValueFromDependent?: boolean;
46
+ hide?: boolean;
47
+ isFileItem?: boolean;
48
+ json_schema?: string | Record<string, unknown>;
49
+ allowed_file_upload_methods?: string[];
50
+ allowed_upload_methods?: string[];
51
+ allowed_file_types?: string[];
52
+ allowed_file_extensions?: string[];
53
+ number_limits?: number;
54
+ }
55
+ export interface WorkflowScheduleTriggerConfig {
56
+ kind: 'schedule-trigger';
57
+ schedule: string;
58
+ mode: 'visual' | 'cron';
59
+ frequency?: 'hourly' | 'daily' | 'weekly' | 'monthly';
60
+ cron_expression?: string;
61
+ visualConfig?: {
62
+ time?: string;
63
+ weekdays?: string[];
64
+ onMinute?: number;
65
+ monthlyDays?: Array<number | 'last'>;
66
+ };
67
+ visual_config?: {
68
+ time?: string;
69
+ weekdays?: string[];
70
+ on_minute?: number;
71
+ monthly_days?: Array<number | 'last'>;
72
+ };
73
+ timezone?: string;
74
+ }
75
+ export type WorkflowWebhookContentType = 'application/json' | 'application/x-www-form-urlencoded' | 'text/plain' | 'application/octet-stream' | 'multipart/form-data';
76
+ export type WorkflowWebhookVariableType = 'string' | 'number' | 'boolean' | 'object' | 'array' | 'file';
77
+ export interface WorkflowWebhookTriggerParameter {
78
+ id: string;
79
+ name: string;
80
+ required: boolean;
81
+ type: WorkflowWebhookVariableType;
82
+ }
83
+ export interface WorkflowWebhookHeader {
84
+ id: string;
85
+ name: string;
86
+ required: boolean;
87
+ }
88
+ export interface WorkflowDifyVariable {
89
+ id: string;
90
+ variable: string;
91
+ value_selector: string | string[];
92
+ label?: string | {
93
+ nodeType: string;
94
+ nodeName: string;
95
+ variable: string;
96
+ };
97
+ value_type?: WorkflowWebhookVariableType;
98
+ variable_type?: string;
99
+ value?: string;
100
+ options?: string[];
101
+ required?: boolean;
102
+ isParagraph?: boolean;
103
+ }
104
+ export interface WorkflowWebhookTriggerConfig {
105
+ kind: 'webhook-trigger';
106
+ webhook_url: string;
107
+ webhook_debug_url: string;
108
+ method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD';
109
+ content_type: WorkflowWebhookContentType;
110
+ headers: WorkflowWebhookHeader[];
111
+ params: WorkflowWebhookTriggerParameter[];
112
+ body: WorkflowWebhookTriggerParameter[];
113
+ async_mode: boolean;
114
+ status_code: number;
115
+ response_body: string;
116
+ variables: WorkflowDifyVariable[];
117
+ }
118
+ export interface WorkflowUserInputNodeConfig {
119
+ kind: 'start';
120
+ variables: WorkflowStartInputVariableDefinition[];
121
+ }
122
+ export interface WorkflowOutputNodeConfig {
123
+ kind: 'end';
124
+ outputs: WorkflowDifyVariable[];
125
+ }
126
+ export interface WorkflowAnswerNodeConfig {
127
+ kind: 'answer';
128
+ answer: string;
129
+ variables?: WorkflowDifyVariable[];
130
+ }
131
+ export interface WorkflowModelConfig {
132
+ provider: string;
133
+ name: string;
134
+ mode?: string;
135
+ completion_params?: Record<string, unknown>;
136
+ }
137
+ export interface WorkflowKnowledgeRetrievalRerankingModelConfig {
138
+ provider: string;
139
+ model: string;
140
+ }
141
+ export interface WorkflowNodeMemoryConfig {
142
+ enabled: boolean;
143
+ windowSize?: number;
144
+ role_prefix?: {
145
+ user?: string;
146
+ assistant?: string;
147
+ };
148
+ window?: {
149
+ enabled: boolean;
150
+ size?: number;
151
+ };
152
+ query_prompt_template?: string;
153
+ }
154
+ export interface WorkflowNodeVisionConfig {
155
+ enabled: boolean;
156
+ detail: 'low' | 'high';
157
+ }
158
+ export interface WorkflowDifyMemoryConfig {
159
+ enabled?: boolean;
160
+ windowSize?: number;
161
+ role_prefix?: {
162
+ user?: string;
163
+ assistant?: string;
164
+ };
165
+ window: {
166
+ enabled: boolean;
167
+ size?: number;
168
+ };
169
+ query_prompt_template?: string;
170
+ }
171
+ export interface WorkflowLlmPromptConfig {
172
+ jinja2_variables: WorkflowDifyVariable[];
173
+ }
174
+ export interface WorkflowLlmContextConfig {
175
+ enabled: boolean;
176
+ variable_selector: string[];
177
+ }
178
+ export interface WorkflowLlmMemoryConfig {
179
+ window: {
180
+ enabled: boolean;
181
+ size?: number;
182
+ };
183
+ query_prompt_template?: string;
184
+ }
185
+ export interface WorkflowLlmVisionConfig {
186
+ enabled: boolean;
187
+ detail?: 'low' | 'high';
188
+ configs: {
189
+ variable_selector: string[];
190
+ detail: 'low' | 'high';
191
+ };
192
+ }
193
+ export interface WorkflowLlmStructuredOutputConfig {
194
+ schema: string;
195
+ }
196
+ export interface WorkflowLlmNodeConfig {
197
+ kind: 'llm';
198
+ model: WorkflowModelConfig;
199
+ prompt_template: string;
200
+ prompt_config: WorkflowLlmPromptConfig;
201
+ context: WorkflowLlmContextConfig;
202
+ memory: WorkflowLlmMemoryConfig;
203
+ vision: WorkflowLlmVisionConfig;
204
+ structured_output_enabled: boolean;
205
+ structured_output: WorkflowLlmStructuredOutputConfig;
206
+ reasoning_format: 'tagged' | 'separated';
207
+ }
208
+ export interface WorkflowKnowledgeRetrievalMultipleConfig {
209
+ top_k: number;
210
+ score_threshold?: number;
211
+ reranking_enable: boolean;
212
+ reranking_model: WorkflowKnowledgeRetrievalRerankingModelConfig | null;
213
+ reranking_mode?: string;
214
+ }
215
+ export interface WorkflowKnowledgeRetrievalSingleConfig {
216
+ model: WorkflowModelConfig | null;
217
+ }
218
+ export interface WorkflowKnowledgeRetrievalMetadataCondition {
219
+ id: string;
220
+ name: string;
221
+ metadata_id?: string;
222
+ type?: 'string' | 'number' | 'time' | 'select';
223
+ comparison_operator: string;
224
+ value?: string | number;
225
+ }
226
+ export interface WorkflowKnowledgeRetrievalMetadataConditions {
227
+ logical_operator: 'and' | 'or';
228
+ conditions: WorkflowKnowledgeRetrievalMetadataCondition[];
229
+ }
230
+ export interface WorkflowKnowledgeRetrievalNodeConfig {
231
+ kind: 'knowledge-retrieval';
232
+ query_variable_selector: string | string[];
233
+ query_attachment_selector: string | string[];
234
+ dataset_ids: string[];
235
+ retrieval_mode: 'multiple' | 'single';
236
+ multiple_retrieval_config: WorkflowKnowledgeRetrievalMultipleConfig;
237
+ single_retrieval_config: WorkflowKnowledgeRetrievalSingleConfig;
238
+ metadata_filtering_mode: 'disabled' | 'automatic' | 'manual';
239
+ metadata_filtering_conditions: WorkflowKnowledgeRetrievalMetadataConditions;
240
+ metadata_model_config: WorkflowModelConfig | null;
241
+ }
242
+ export interface WorkflowQuestionClassifierCategory {
243
+ id: string;
244
+ name: string;
245
+ label: string;
246
+ }
247
+ export interface WorkflowQuestionClassifierNodeConfig {
248
+ kind: 'question-classifier';
249
+ query_variable_selector: string | string[];
250
+ model: WorkflowModelConfig;
251
+ classes: WorkflowQuestionClassifierCategory[];
252
+ instruction: string;
253
+ memory: WorkflowDifyMemoryConfig;
254
+ vision: WorkflowLlmVisionConfig;
255
+ }
256
+ export interface WorkflowIfElseNodeConfig {
257
+ kind: 'if-else';
258
+ branchConditions: WorkflowBranchCondition[];
259
+ _targetBranches?: Array<{
260
+ id: string;
261
+ name: string;
262
+ }>;
263
+ cases?: Array<{
264
+ case_id: string;
265
+ logical_operator: 'and' | 'or';
266
+ conditions: Array<{
267
+ id: string;
268
+ varType: 'string' | 'number' | 'boolean' | 'object' | 'array' | 'file';
269
+ variable_selector?: string[];
270
+ key?: string;
271
+ comparison_operator?: string;
272
+ value: string | string[] | boolean;
273
+ numberVarType?: string;
274
+ sub_variable_condition?: {
275
+ logical_operator: 'and' | 'or';
276
+ conditions: Array<{
277
+ id: string;
278
+ varType: 'string' | 'number' | 'boolean' | 'object' | 'array' | 'file';
279
+ variable_selector?: string[];
280
+ key?: string;
281
+ comparison_operator?: string;
282
+ value: string | string[] | boolean;
283
+ }>;
284
+ };
285
+ }>;
286
+ }>;
287
+ logical_operator?: 'and' | 'or';
288
+ conditions?: Array<{
289
+ id: string;
290
+ varType: 'string' | 'number' | 'boolean' | 'object' | 'array' | 'file';
291
+ variable_selector?: string[];
292
+ key?: string;
293
+ comparison_operator?: string;
294
+ value: string | string[] | boolean;
295
+ numberVarType?: string;
296
+ }>;
297
+ isInIteration?: boolean;
298
+ isInLoop?: boolean;
299
+ }
300
+ export interface WorkflowVariableAggregatorGroup {
301
+ groupId: string;
302
+ group_name: string;
303
+ output_type: 'string' | 'number' | 'object' | 'boolean' | 'array' | 'file';
304
+ variables: string[][];
305
+ }
306
+ export interface WorkflowVariableAggregatorAdvancedSettings {
307
+ group_enabled: boolean;
308
+ groups: WorkflowVariableAggregatorGroup[];
309
+ }
310
+ export interface WorkflowVariableAggregatorNodeConfig {
311
+ kind: 'variable-aggregator';
312
+ output_type: 'string' | 'number' | 'object' | 'boolean' | 'array' | 'file';
313
+ variables: string[][];
314
+ advanced_settings: WorkflowVariableAggregatorAdvancedSettings;
315
+ }
316
+ export interface WorkflowCodeNodeConfig {
317
+ kind: 'code';
318
+ language: 'javascript' | 'python';
319
+ script: string;
320
+ inputVariables: string[];
321
+ outputVariables: Array<{
322
+ id: string;
323
+ name: string;
324
+ dataType: WorkflowParameterSchemaField['dataType'];
325
+ }>;
326
+ variables?: WorkflowDifyVariable[];
327
+ code_language?: 'javascript' | 'python3' | 'json';
328
+ code?: string;
329
+ outputs?: Record<string, {
330
+ type: WorkflowParameterSchemaField['dataType'];
331
+ children: null;
332
+ }>;
333
+ retryCount?: number;
334
+ retryIntervalMs?: number;
335
+ errorHandling: 'none' | 'continue-on-error' | 'fallback-branch';
336
+ }
337
+ export interface WorkflowTemplateNodeConfig {
338
+ kind: 'template';
339
+ variables: WorkflowDifyVariable[];
340
+ template: string;
341
+ }
342
+ export interface WorkflowParameterSchemaField {
343
+ id: string;
344
+ name: string;
345
+ dataType: 'string' | 'number' | 'boolean' | 'object' | 'array' | 'select' | 'array[string]' | 'array[number]' | 'array[object]' | 'array[boolean]';
346
+ description: string;
347
+ required: boolean;
348
+ options?: string[];
349
+ }
350
+ export interface WorkflowParameterExtractorNodeConfig {
351
+ kind: 'parameter-extractor';
352
+ query: string[];
353
+ model: WorkflowModelConfig;
354
+ parameters: WorkflowParameterSchemaField[];
355
+ instruction: string;
356
+ reasoning_mode: 'prompt' | 'function_call';
357
+ memory: WorkflowDifyMemoryConfig;
358
+ vision: WorkflowLlmVisionConfig;
359
+ }
360
+ export interface WorkflowDocExtractorNodeConfig {
361
+ kind: 'doc-extractor';
362
+ variable_selector: string | string[];
363
+ is_array_file: boolean;
364
+ }
365
+ export type WorkflowListOperatorComparisonOperator = 'contains' | 'not-contains' | 'is' | 'is-not' | '>' | '<' | '>=' | '<=' | 'empty' | 'not-empty' | 'exists' | 'not-exists' | 'in' | 'not-in' | 'all-of';
366
+ export interface WorkflowListOperatorFilterCondition {
367
+ key: string;
368
+ operator: WorkflowListOperatorComparisonOperator;
369
+ value: string;
370
+ }
371
+ export interface WorkflowListOperatorLimitConfig {
372
+ enabled: boolean;
373
+ size: number;
374
+ }
375
+ export interface WorkflowListOperatorNodeConfig {
376
+ kind: 'list-operator';
377
+ inputArrayVariable: string[];
378
+ operation: 'map' | 'filter' | 'flatten' | 'deduplicate' | 'aggregate';
379
+ operationConfig: string;
380
+ filterEnabled: boolean;
381
+ filterCondition: WorkflowListOperatorFilterCondition;
382
+ extractEnabled: boolean;
383
+ extractTemplate: string;
384
+ orderByEnabled: boolean;
385
+ orderByKey: string[];
386
+ orderByDirection: 'asc' | 'desc';
387
+ limit: WorkflowListOperatorLimitConfig;
388
+ variable?: string[];
389
+ var_type?: string;
390
+ item_var_type?: string;
391
+ filter_by?: {
392
+ enabled: boolean;
393
+ conditions: Array<{
394
+ key: string;
395
+ comparison_operator: WorkflowListOperatorComparisonOperator;
396
+ value: string;
397
+ }>;
398
+ };
399
+ extract_by?: {
400
+ enabled: boolean;
401
+ serial?: string;
402
+ };
403
+ order_by?: {
404
+ enabled: boolean;
405
+ key: string[] | string;
406
+ value: 'asc' | 'desc';
407
+ };
408
+ }
409
+ export interface WorkflowVariableAssignmentEntry {
410
+ id: string;
411
+ variable_selector: string | string[];
412
+ input_type: 'variable' | 'constant';
413
+ operation: 'over-write' | 'set' | 'clear' | 'append' | 'extend' | '+=' | '-=' | '*=' | '/=' | 'remove-first' | 'remove-last';
414
+ value: string | string[] | boolean | number;
415
+ }
416
+ export interface WorkflowVariableAssignerNodeConfig {
417
+ kind: 'variable-assigner';
418
+ version: '1' | '2';
419
+ items: WorkflowVariableAssignmentEntry[];
420
+ }
421
+ export interface WorkflowIterationNodeConfig {
422
+ kind: 'iteration';
423
+ startNodeType?: string;
424
+ start_node_id: string;
425
+ iterator_selector: string[];
426
+ iterator_input_type: 'string' | 'number' | 'integer' | 'secret' | 'boolean' | 'object' | 'file' | 'array' | 'array[string]' | 'array[number]' | 'array[object]' | 'array[boolean]' | 'array[file]';
427
+ output_selector: string[];
428
+ output_type: 'string' | 'number' | 'integer' | 'secret' | 'boolean' | 'object' | 'file' | 'array' | 'array[string]' | 'array[number]' | 'array[object]' | 'array[boolean]' | 'array[file]';
429
+ is_parallel: boolean;
430
+ parallel_nums: number;
431
+ error_handle_mode: 'terminated' | 'continue-on-error' | 'remove-abnormal-output';
432
+ flatten_output: boolean;
433
+ iteration_id?: string;
434
+ _isShowTips?: boolean;
435
+ }
436
+ export type WorkflowHttpRequestMethod = 'get' | 'post' | 'put' | 'patch' | 'delete' | 'head';
437
+ export type WorkflowHttpRequestBodyType = 'none' | 'form-data' | 'x-www-form-urlencoded' | 'raw-text' | 'json' | 'binary';
438
+ export interface WorkflowHttpKeyValueEntry {
439
+ id: string;
440
+ key: string;
441
+ value: string;
442
+ type?: 'text' | 'secret' | 'variable';
443
+ file?: string[];
444
+ }
445
+ export interface WorkflowHttpBodyPayloadEntry {
446
+ id: string;
447
+ key: string;
448
+ type: 'text' | 'file';
449
+ value?: string;
450
+ file?: string[];
451
+ }
452
+ export interface WorkflowHttpRequestBodyConfig {
453
+ type: WorkflowHttpRequestBodyType;
454
+ data: string | WorkflowHttpBodyPayloadEntry[];
455
+ }
456
+ export interface WorkflowHttpAuthorizationConfig {
457
+ type: 'basic' | 'bearer' | 'custom';
458
+ api_key: string;
459
+ header?: string;
460
+ }
461
+ export interface WorkflowHttpAuthorization {
462
+ type: 'no-auth' | 'api-key';
463
+ config?: WorkflowHttpAuthorizationConfig | null;
464
+ }
465
+ export interface WorkflowHttpTimeoutConfig {
466
+ connect?: number;
467
+ read?: number;
468
+ write?: number;
469
+ max_connect_timeout?: number;
470
+ max_read_timeout?: number;
471
+ max_write_timeout?: number;
472
+ }
473
+ export interface WorkflowHttpRetryConfig {
474
+ retry_enabled: boolean;
475
+ max_retries: number;
476
+ retry_interval: number;
477
+ }
478
+ export interface WorkflowHttpRequestNodeConfig {
479
+ kind: 'http-request';
480
+ variables: WorkflowDifyVariable[];
481
+ method: WorkflowHttpRequestMethod;
482
+ url: string;
483
+ headers: string;
484
+ params: string;
485
+ body: WorkflowHttpRequestBodyConfig;
486
+ authorization: WorkflowHttpAuthorization;
487
+ timeout: WorkflowHttpTimeoutConfig;
488
+ retry_config: WorkflowHttpRetryConfig;
489
+ ssl_verify?: boolean;
490
+ }
491
+ export interface WorkflowNamedValueBinding {
492
+ id: string;
493
+ name: string;
494
+ valueType: 'constant' | 'variable';
495
+ value: string | string[] | boolean | number | Record<string, unknown> | unknown[];
496
+ }
497
+ export interface WorkflowOutputSchemaField {
498
+ id: string;
499
+ name: string;
500
+ type: WorkflowParameterSchemaField['dataType'];
501
+ description: string;
502
+ }
503
+ export interface WorkflowToolReferenceConfig {
504
+ id: string;
505
+ providerType: 'builtin' | 'custom' | 'workflow' | 'mcp' | '';
506
+ providerName: string;
507
+ toolName: string;
508
+ label: string;
509
+ version?: string;
510
+ description?: string;
511
+ pluginUniqueIdentifier?: string;
512
+ }
513
+ export interface WorkflowToolConfigurationEntry {
514
+ id: string;
515
+ name: string;
516
+ value: string | boolean | number | Record<string, unknown> | unknown[];
517
+ }
518
+ export interface WorkflowToolNodeConfig {
519
+ kind: 'tool';
520
+ reference: WorkflowToolReferenceConfig;
521
+ credentialBinding?: string;
522
+ parameters: WorkflowNamedValueBinding[];
523
+ configurations: WorkflowToolConfigurationEntry[];
524
+ outputSchema: WorkflowOutputSchemaField[];
525
+ provider_id?: string;
526
+ provider_type?: WorkflowToolReferenceConfig['providerType'];
527
+ provider_name?: string;
528
+ tool_name?: string;
529
+ tool_label?: string;
530
+ tool_parameters?: Record<string, {
531
+ type: 'constant' | 'variable';
532
+ value: string | string[] | boolean | number | Record<string, unknown> | unknown[];
533
+ }>;
534
+ tool_configurations?: Record<string, unknown>;
535
+ output_schema?: WorkflowOutputSchemaField[];
536
+ version?: string;
537
+ tool_description?: string;
538
+ is_team_authorization?: boolean;
539
+ params?: Record<string, unknown>;
540
+ provider_icon?: string | Record<string, unknown> | null;
541
+ provider_icon_dark?: string | Record<string, unknown> | null;
542
+ plugin_unique_identifier?: string;
543
+ tool_node_version?: string;
544
+ }
545
+ export interface WorkflowAgentStrategyConfig {
546
+ mode: 'function-calling' | 'react';
547
+ providerName: string;
548
+ name: string;
549
+ label: string;
550
+ pluginUniqueIdentifier?: string;
551
+ version?: string;
552
+ meta?: Record<string, unknown> | null;
553
+ }
554
+ export interface WorkflowAgentNodeConfig {
555
+ kind: 'agent';
556
+ model: WorkflowModelConfig;
557
+ strategy: WorkflowAgentStrategyConfig;
558
+ instructions: string;
559
+ enabledTools: string[];
560
+ maxIterations?: number;
561
+ memory: WorkflowNodeMemoryConfig;
562
+ strategyParameters: WorkflowNamedValueBinding[];
563
+ outputSchema: WorkflowOutputSchemaField[];
564
+ agent_strategy_provider_name?: string;
565
+ agent_strategy_name?: string;
566
+ agent_strategy_label?: string;
567
+ agent_parameters?: Record<string, {
568
+ type: 'constant' | 'variable';
569
+ value: string | string[] | boolean | number | Record<string, unknown> | unknown[] | unknown;
570
+ }>;
571
+ output_schema?: WorkflowOutputSchemaField[] | Record<string, unknown>;
572
+ plugin_unique_identifier?: string;
573
+ meta?: Record<string, unknown> | null;
574
+ version?: string;
575
+ tool_node_version?: string;
576
+ }
577
+ export interface WorkflowLoopNodeConfig {
578
+ kind: 'loop';
579
+ startNodeType?: string;
580
+ start_node_id: string;
581
+ logical_operator: 'and' | 'or';
582
+ break_conditions: Array<{
583
+ id: string;
584
+ varType: 'string' | 'number' | 'integer' | 'secret' | 'boolean' | 'object' | 'file' | 'array' | 'array[string]' | 'array[number]' | 'array[object]' | 'array[boolean]' | 'array[file]';
585
+ variable_selector?: string[];
586
+ key?: string;
587
+ comparison_operator?: string;
588
+ value: string | string[] | boolean;
589
+ numberVarType?: string;
590
+ sub_variable_condition?: {
591
+ logical_operator: 'and' | 'or';
592
+ conditions: Array<{
593
+ id: string;
594
+ varType: 'string' | 'number' | 'integer' | 'secret' | 'boolean' | 'object' | 'file' | 'array' | 'array[string]' | 'array[number]' | 'array[object]' | 'array[boolean]' | 'array[file]';
595
+ variable_selector?: string[];
596
+ key?: string;
597
+ comparison_operator?: string;
598
+ value: string | string[] | boolean;
599
+ }>;
600
+ };
601
+ }>;
602
+ loop_count: number;
603
+ error_handle_mode: 'terminated' | 'continue-on-error' | 'remove-abnormal-output';
604
+ loop_variables: Array<{
605
+ id: string;
606
+ label: string;
607
+ var_type: 'string' | 'number' | 'integer' | 'secret' | 'boolean' | 'object' | 'file' | 'array' | 'array[string]' | 'array[number]' | 'array[object]' | 'array[boolean]' | 'array[file]';
608
+ value_type: 'constant' | 'variable';
609
+ value: string | string[] | boolean | number;
610
+ }>;
611
+ loop_id?: string;
612
+ }
613
+ export interface WorkflowHumanInputNodeConfig {
614
+ kind: 'human-input';
615
+ delivery_methods: Array<{
616
+ id: string;
617
+ type: 'webapp' | 'email' | 'slack' | 'teams' | 'discord';
618
+ enabled: boolean;
619
+ config?: {
620
+ recipients: {
621
+ whole_workspace: boolean;
622
+ items: Array<{
623
+ type: 'member' | 'external';
624
+ email?: string;
625
+ user_id?: string;
626
+ }>;
627
+ };
628
+ subject: string;
629
+ body: string;
630
+ debug_mode: boolean;
631
+ };
632
+ }>;
633
+ form_content: string;
634
+ inputs: Array<{
635
+ type: 'text-input' | 'paragraph' | 'select' | 'number' | 'url' | 'file' | 'file-list' | 'json' | 'files' | 'json_object' | 'contexts' | 'iterator' | 'loop' | 'checkbox';
636
+ output_variable_name: string;
637
+ default: {
638
+ selector: string[];
639
+ type: 'variable' | 'constant';
640
+ value: string;
641
+ };
642
+ }>;
643
+ user_actions: Array<{
644
+ id: string;
645
+ title: string;
646
+ button_style: 'primary' | 'default' | 'accent' | 'ghost';
647
+ }>;
648
+ timeout: number;
649
+ timeout_unit: 'hour' | 'day';
650
+ }
651
+ export interface WorkflowDataSourceNodeConfig {
652
+ kind: 'data-source';
653
+ fileExtensions?: string[];
654
+ plugin_id: string;
655
+ provider_type: string;
656
+ provider_name: string;
657
+ datasource_name: string;
658
+ datasource_label: string;
659
+ datasource_parameters: Record<string, {
660
+ type: 'constant' | 'variable';
661
+ value: string | string[] | boolean | number | Record<string, unknown> | unknown[];
662
+ }>;
663
+ datasource_configurations: Record<string, unknown>;
664
+ output_schema?: WorkflowOutputSchemaField[] | Record<string, unknown>;
665
+ plugin_unique_identifier?: string;
666
+ }
667
+ export interface WorkflowKnowledgeBaseRetrievalModelConfig {
668
+ search_method?: string;
669
+ reranking_enable?: boolean;
670
+ reranking_model?: {
671
+ reranking_provider_name: string;
672
+ reranking_model_name: string;
673
+ };
674
+ weights?: Record<string, unknown>;
675
+ top_k: number;
676
+ score_threshold_enabled: boolean;
677
+ score_threshold: number;
678
+ reranking_mode?: string;
679
+ }
680
+ export interface WorkflowKnowledgeBaseNodeConfig {
681
+ kind: 'knowledge-base';
682
+ index_chunk_variable_selector: string[];
683
+ chunk_structure?: 'text_model' | 'hierarchical_model' | 'qa_model';
684
+ indexing_technique?: string;
685
+ embedding_model?: string;
686
+ embedding_model_provider?: string;
687
+ keyword_number: number;
688
+ retrieval_model: WorkflowKnowledgeBaseRetrievalModelConfig;
689
+ summary_index_setting?: {
690
+ enable?: boolean;
691
+ model_name?: string;
692
+ model_provider_name?: string;
693
+ summary_prompt?: string;
694
+ };
695
+ }
696
+ export interface WorkflowTriggerPluginNodeConfig {
697
+ kind: 'trigger-plugin';
698
+ provider_id: string;
699
+ provider_type: 'builtin' | 'custom' | 'workflow' | 'mcp' | '';
700
+ provider_name: string;
701
+ event_name: string;
702
+ event_label: string;
703
+ event_parameters: Record<string, {
704
+ type: 'constant' | 'variable';
705
+ value: string | string[] | boolean | number | Record<string, unknown> | unknown[];
706
+ }>;
707
+ event_configurations: Record<string, unknown>;
708
+ output_schema: WorkflowOutputSchemaField[] | Record<string, unknown>;
709
+ parameters_schema?: WorkflowParameterSchemaField[];
710
+ version?: string;
711
+ event_node_version?: string;
712
+ plugin_id?: string;
713
+ config?: Record<string, unknown>;
714
+ plugin_unique_identifier?: string;
715
+ subscription_id?: string;
716
+ }
717
+ export interface WorkflowApprovalNodeConfig {
718
+ kind: 'approval';
719
+ approvalOwner: string;
720
+ }
721
+ export interface WorkflowEmailNodeConfig {
722
+ kind: 'email';
723
+ to: string;
724
+ subject: string;
725
+ body: string;
726
+ }
727
+ export interface WorkflowNoteNodeConfig {
728
+ kind: 'note';
729
+ }
730
+ export type DifyMappedNodeConfiguration = WorkflowUserInputNodeConfig | WorkflowScheduleTriggerConfig | WorkflowWebhookTriggerConfig | WorkflowOutputNodeConfig | WorkflowAnswerNodeConfig | WorkflowLlmNodeConfig | WorkflowKnowledgeRetrievalNodeConfig | WorkflowQuestionClassifierNodeConfig | WorkflowIfElseNodeConfig | WorkflowVariableAggregatorNodeConfig | WorkflowCodeNodeConfig | WorkflowTemplateNodeConfig | WorkflowParameterExtractorNodeConfig | WorkflowDocExtractorNodeConfig | WorkflowListOperatorNodeConfig | WorkflowVariableAssignerNodeConfig | WorkflowIterationNodeConfig | WorkflowHttpRequestNodeConfig | WorkflowToolNodeConfig | WorkflowAgentNodeConfig | WorkflowLoopNodeConfig | WorkflowHumanInputNodeConfig | WorkflowDataSourceNodeConfig | WorkflowKnowledgeBaseNodeConfig | WorkflowTriggerPluginNodeConfig;
731
+ export type LsflowSpecificNodeConfiguration = WorkflowApprovalNodeConfig | WorkflowEmailNodeConfig | WorkflowNoteNodeConfig;
732
+ export type WorkflowNodeConfigurationV2 = DifyMappedNodeConfiguration | LsflowSpecificNodeConfiguration;
733
+ export type InspectorSectionKind = 'header' | 'core' | 'advanced' | 'outputs' | 'downstream' | 'last-run';
734
+ export interface BuilderInspectorSectionDefinition {
735
+ id: string;
736
+ kind: InspectorSectionKind;
737
+ title: string;
738
+ description: string;
739
+ }
740
+ export interface BuilderNodeSummaryMetric {
741
+ label: string;
742
+ value: string;
743
+ }
744
+ export interface BuilderNodePresentationSummary {
745
+ eyebrow: string;
746
+ badge: string;
747
+ description: string;
748
+ metrics: BuilderNodeSummaryMetric[];
749
+ footer?: string;
750
+ }
751
+ export interface BuilderNodeDefinition<TConfig extends WorkflowNodeConfigurationV2 = WorkflowNodeConfigurationV2> {
752
+ kind: TConfig['kind'];
753
+ family: BuilderNodeFamily;
754
+ publicLabel: string;
755
+ badge: string;
756
+ description: string;
757
+ supportsDifyParity: boolean;
758
+ inspectorSections: BuilderInspectorSectionDefinition[];
759
+ createDefaultConfig: () => TConfig;
760
+ buildSummary: (config: TConfig, input?: {
761
+ conditionalBranches?: WorkflowCanvasConditionalBranch[];
762
+ nextExecutionLabel?: string;
763
+ }) => BuilderNodePresentationSummary;
764
+ }
765
+ export type BuilderSupportedNodeKind = WorkflowNodeConfigurationV2['kind'];
766
+ type BuilderNodeConfigByKind<TKind extends BuilderSupportedNodeKind> = Extract<WorkflowNodeConfigurationV2, {
767
+ kind: TKind;
768
+ }>;
769
+ type BuilderNodeDefinitionMap = {
770
+ [K in BuilderSupportedNodeKind]: BuilderNodeDefinition<BuilderNodeConfigByKind<K>>;
771
+ };
772
+ export declare const branchConditionSourceOptions: Array<{
773
+ label: string;
774
+ value: BranchConditionSource;
775
+ }>;
776
+ export declare function buildIfElseConditionExpression(condition: WorkflowBranchCondition): string;
777
+ export declare function buildIfElseCasesFromBranchConditions(branches: WorkflowCanvasConditionalBranch[], branchConditions?: WorkflowBranchCondition[]): WorkflowIfElseCaseItem[];
778
+ export declare function buildBranchConditionsFromIfElseCases(branches: WorkflowCanvasConditionalBranch[], cases: WorkflowIfElseNodeConfig['cases'] | undefined, existingConditions?: WorkflowBranchCondition[]): WorkflowBranchCondition[];
779
+ export declare function buildNormalizedBranchConditions(branches: WorkflowCanvasConditionalBranch[], existingConditions?: WorkflowBranchCondition[]): WorkflowBranchCondition[];
780
+ export declare const builderNodeDefinitions: BuilderNodeDefinitionMap;
781
+ export declare function getBuilderNodeDefinition(kind?: WorkflowCanvasNodeKind | string | null): BuilderNodeDefinition<WorkflowUserInputNodeConfig> | BuilderNodeDefinition<WorkflowScheduleTriggerConfig> | BuilderNodeDefinition<WorkflowWebhookTriggerConfig> | BuilderNodeDefinition<WorkflowTriggerPluginNodeConfig> | BuilderNodeDefinition<WorkflowDataSourceNodeConfig> | BuilderNodeDefinition<WorkflowOutputNodeConfig> | BuilderNodeDefinition<WorkflowAnswerNodeConfig> | BuilderNodeDefinition<WorkflowLlmNodeConfig> | BuilderNodeDefinition<WorkflowKnowledgeRetrievalNodeConfig> | BuilderNodeDefinition<WorkflowQuestionClassifierNodeConfig> | BuilderNodeDefinition<WorkflowIfElseNodeConfig> | BuilderNodeDefinition<WorkflowVariableAggregatorNodeConfig> | BuilderNodeDefinition<WorkflowCodeNodeConfig> | BuilderNodeDefinition<WorkflowTemplateNodeConfig> | BuilderNodeDefinition<WorkflowParameterExtractorNodeConfig> | BuilderNodeDefinition<WorkflowDocExtractorNodeConfig> | BuilderNodeDefinition<WorkflowListOperatorNodeConfig> | BuilderNodeDefinition<WorkflowVariableAssignerNodeConfig> | BuilderNodeDefinition<WorkflowIterationNodeConfig> | BuilderNodeDefinition<WorkflowHttpRequestNodeConfig> | BuilderNodeDefinition<WorkflowToolNodeConfig> | BuilderNodeDefinition<WorkflowAgentNodeConfig> | BuilderNodeDefinition<WorkflowLoopNodeConfig> | BuilderNodeDefinition<WorkflowHumanInputNodeConfig> | BuilderNodeDefinition<WorkflowKnowledgeBaseNodeConfig> | BuilderNodeDefinition<WorkflowApprovalNodeConfig> | BuilderNodeDefinition<WorkflowEmailNodeConfig> | BuilderNodeDefinition<WorkflowNoteNodeConfig> | null;
782
+ export declare function getBuilderPublicNodeLabel(kind?: WorkflowCanvasNodeKind | string | null): string;
783
+ export declare function isDifyMappedNodeKind(kind?: WorkflowCanvasNodeKind | string | null): boolean;
784
+ export declare function createDefaultNodeConfigurationV2(kind?: WorkflowCanvasNodeKind): WorkflowIfElseNodeConfig | WorkflowScheduleTriggerConfig | WorkflowWebhookTriggerConfig | WorkflowUserInputNodeConfig | WorkflowOutputNodeConfig | WorkflowAnswerNodeConfig | WorkflowLlmNodeConfig | WorkflowKnowledgeRetrievalNodeConfig | WorkflowQuestionClassifierNodeConfig | WorkflowVariableAggregatorNodeConfig | WorkflowCodeNodeConfig | WorkflowTemplateNodeConfig | WorkflowParameterExtractorNodeConfig | WorkflowDocExtractorNodeConfig | WorkflowListOperatorNodeConfig | WorkflowVariableAssignerNodeConfig | WorkflowIterationNodeConfig | WorkflowHttpRequestNodeConfig | WorkflowToolNodeConfig | WorkflowAgentNodeConfig | WorkflowLoopNodeConfig | WorkflowHumanInputNodeConfig | WorkflowDataSourceNodeConfig | WorkflowKnowledgeBaseNodeConfig | WorkflowTriggerPluginNodeConfig | WorkflowApprovalNodeConfig | WorkflowEmailNodeConfig | WorkflowNoteNodeConfig | undefined;
785
+ export {};
786
+ //# sourceMappingURL=builder-node-definition.d.ts.map