@masterteam/flowplus-workflow 0.0.3 → 0.0.5

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.
@@ -1,7 +1,6 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { InjectionToken, Provider, EventEmitter, OnDestroy } from '@angular/core';
3
3
  import { Observable } from 'rxjs';
4
- import * as _masterteam_icons from '@masterteam/icons';
5
4
  import { MTIcon } from '@masterteam/icons';
6
5
  import * as _masterteam_flowplus_workflow from '@masterteam/flowplus-workflow';
7
6
  import { StateContext } from '@ngxs/store';
@@ -602,6 +601,22 @@ interface WorkflowVariableDto {
602
601
  stepName?: string | null;
603
602
  metadata?: Record<string, unknown> | null;
604
603
  }
604
+ interface WorkflowVariableRequest {
605
+ refId?: number | null;
606
+ refType?: string | null;
607
+ type?: string | null;
608
+ key?: string | null;
609
+ mappingKey?: string | null;
610
+ metadata?: Record<string, string | null>;
611
+ }
612
+ interface WorkflowVariableCollectionDto {
613
+ system?: WorkflowVariableDto[];
614
+ properties?: WorkflowVariableDto[];
615
+ resources?: WorkflowResourceBindingDto[];
616
+ virtual?: WorkflowVariableDto[];
617
+ items?: WorkflowVariableDto[];
618
+ editMode?: boolean;
619
+ }
605
620
  interface WorkflowResourceBindingDto {
606
621
  key?: string;
607
622
  name?: TranslatableText | string | null;
@@ -728,6 +743,8 @@ interface WorkflowStepTypeCatalogItemDto {
728
743
  colorToken: string;
729
744
  tags?: string[];
730
745
  canCreate: boolean;
746
+ isAvailable?: boolean;
747
+ unavailableReason?: TranslatableText | string | null;
731
748
  supportsForm: boolean;
732
749
  supportsActions: boolean;
733
750
  supportsInputMappings: boolean;
@@ -1214,8 +1231,8 @@ interface EngineEventDto {
1214
1231
 
1215
1232
  type AutomationStatus = 'Draft' | 'Active' | 'Inactive' | 'Published' | 'Archived' | string;
1216
1233
  type AutomationTriggerType = 'ManualTrigger' | 'WebhookTrigger' | 'FormSubmitTrigger' | 'ScheduleTrigger' | string;
1217
- type AutomationNodeType = 'SetFields' | 'If' | 'HTTP' | 'Wait' | 'HumanApproval' | 'FlowPlusCommit' | 'WebhookResponse' | 'Stop' | 'CallAutomation' | 'Subworkflow' | 'ParallelStart' | 'ParallelJoin' | 'Switch' | string;
1218
- type AutomationExecutionStatus = 'Queued' | 'Running' | 'Waiting' | 'Paused' | 'PausedOnFailure' | 'Succeeded' | 'Failed' | 'Canceled' | 'Cancelled' | string;
1234
+ type AutomationNodeType = 'SetFields' | 'If' | 'HTTP' | 'Wait' | 'HumanTask' | 'HumanApproval' | 'FlowPlusCommit' | 'ConnectorAction' | 'ConvertToFile' | 'LoopOverItems' | 'DataTransform' | 'WebhookResponse' | 'Stop' | 'CallAutomation' | 'Subworkflow' | 'ParallelStart' | 'ParallelJoin' | 'Switch' | string;
1235
+ type AutomationExecutionStatus = 'Queued' | 'Running' | 'Waiting' | 'Paused' | 'PausedOnFailure' | 'Succeeded' | 'Failed' | 'Canceled' | 'Cancelled' | 'TimedOut' | string;
1219
1236
  interface AutomationSummary {
1220
1237
  automationId: number | string;
1221
1238
  key: string;
@@ -1259,6 +1276,8 @@ interface AutomationFrontendDetail {
1259
1276
  nodes: AutomationNodeDefinition[];
1260
1277
  routes: AutomationRouteDefinition[];
1261
1278
  formBindings?: AutomationFormBindingDefinition[];
1279
+ activeRevision?: AutomationRevisionSummary | null;
1280
+ latestRevision?: AutomationRevisionSummary | null;
1262
1281
  validation?: AutomationValidationReport | null;
1263
1282
  rowVersion?: string | null;
1264
1283
  }
@@ -1276,6 +1295,7 @@ interface AutomationTriggerDefinition {
1276
1295
  }
1277
1296
  interface AutomationNodeDefinition {
1278
1297
  key: string;
1298
+ nodeKey?: string | null;
1279
1299
  type?: AutomationNodeType;
1280
1300
  nodeType?: AutomationNodeType;
1281
1301
  name?: string;
@@ -1325,9 +1345,99 @@ type FormBindingDefinitionRequest = AutomationFormBindingDefinition;
1325
1345
  interface AutomationBuilderCatalog {
1326
1346
  nodeTypes: NodeTypeCatalogItem[];
1327
1347
  triggerTypes: TriggerTypeCatalogItem[];
1348
+ connectorCatalog?: ConnectorCatalog | null;
1349
+ convertToFileCatalog?: ConvertToFileCatalog | null;
1350
+ dataTransformCatalog?: DataTransformCatalog | null;
1328
1351
  expressionNamespaces?: ExpressionNamespaceDescriptor[];
1329
1352
  routeTypes?: string[];
1330
1353
  }
1354
+ interface ConnectorCatalog {
1355
+ providers?: ConnectorProviderCatalogItem[];
1356
+ actions?: ConnectorActionCatalogItem[];
1357
+ }
1358
+ interface ConnectorProviderCatalogItem {
1359
+ key: string;
1360
+ providerKey?: string | null;
1361
+ displayName?: TranslatableText | string;
1362
+ channelType?: string | null;
1363
+ category?: string | null;
1364
+ description?: TranslatableText | string | null;
1365
+ iconKey?: string | null;
1366
+ authModes?: string[];
1367
+ requiredScopes?: string[];
1368
+ requiredPermissions?: string[];
1369
+ connectAvailable?: boolean;
1370
+ manualSetupAvailable?: boolean;
1371
+ setupInstructions?: string | null;
1372
+ isAvailable?: boolean;
1373
+ canCreate?: boolean;
1374
+ unavailableReason?: string | null;
1375
+ actionKeys?: string[];
1376
+ [key: string]: unknown;
1377
+ }
1378
+ interface ConnectorActionCatalogItem {
1379
+ key: string;
1380
+ providerKey: string;
1381
+ actionKey: string;
1382
+ displayName?: TranslatableText | string;
1383
+ channelType?: string | null;
1384
+ category?: string | null;
1385
+ description?: TranslatableText | string | null;
1386
+ iconKey?: string | null;
1387
+ mode?: string | null;
1388
+ isAvailable?: boolean;
1389
+ canCreate?: boolean;
1390
+ unavailableReason?: string | null;
1391
+ routeOutputKeys?: string[];
1392
+ credentialRequirements?: unknown[];
1393
+ configSchema?: unknown;
1394
+ inputSchema?: unknown;
1395
+ outputSchema?: unknown;
1396
+ defaults?: Record<string, unknown> | null;
1397
+ helperMetadata?: Record<string, unknown> | null;
1398
+ [key: string]: unknown;
1399
+ }
1400
+ interface ConvertToFileCatalog {
1401
+ actions?: ConvertToFileActionCatalogItem[];
1402
+ }
1403
+ interface ConvertToFileActionCatalogItem {
1404
+ actionKey: string;
1405
+ displayName?: TranslatableText | string;
1406
+ description?: TranslatableText | string | null;
1407
+ iconKey?: string | null;
1408
+ extension?: string | null;
1409
+ contentType?: string | null;
1410
+ canCreate?: boolean;
1411
+ isAvailable?: boolean;
1412
+ unavailableReason?: string | null;
1413
+ configSchema?: unknown;
1414
+ inputSchema?: unknown;
1415
+ outputSchema?: unknown;
1416
+ routeOutputKeys?: string[];
1417
+ validationRequirements?: string[];
1418
+ officialReferences?: string[];
1419
+ [key: string]: unknown;
1420
+ }
1421
+ interface DataTransformCatalog {
1422
+ actions?: DataTransformActionCatalogItem[];
1423
+ }
1424
+ interface DataTransformActionCatalogItem {
1425
+ actionKey: string;
1426
+ displayName?: TranslatableText | string;
1427
+ description?: TranslatableText | string | null;
1428
+ iconKey?: string | null;
1429
+ canCreate?: boolean;
1430
+ isAvailable?: boolean;
1431
+ unavailableReason?: string | null;
1432
+ configSchema?: unknown;
1433
+ inputSchema?: unknown;
1434
+ outputSchema?: unknown;
1435
+ routeOutputKeys?: string[];
1436
+ validationRequirements?: string[];
1437
+ defaults?: Record<string, unknown> | null;
1438
+ helperMetadata?: Record<string, unknown> | null;
1439
+ [key: string]: unknown;
1440
+ }
1331
1441
  interface NodeTypeCatalogItem {
1332
1442
  type?: AutomationNodeType;
1333
1443
  nodeType?: AutomationNodeType;
@@ -1355,6 +1465,8 @@ interface NodeTypeCatalogItem {
1355
1465
  helperMetadata?: Record<string, unknown> | null;
1356
1466
  validationRequirements?: Record<string, unknown> | string[] | null;
1357
1467
  canCreate?: boolean;
1468
+ isAvailable?: boolean;
1469
+ unavailableReason?: string | null;
1358
1470
  }
1359
1471
  interface AutomationSelectorResult {
1360
1472
  items: AutomationSelectorItem[];
@@ -1428,10 +1540,15 @@ interface ExpressionPreviewResult extends ExpressionValidationResult {
1428
1540
  }
1429
1541
  interface CredentialReference {
1430
1542
  credentialRef: string;
1543
+ providerKey?: string | null;
1431
1544
  displayName?: string | null;
1432
1545
  credentialType?: string | null;
1433
1546
  resolved?: boolean;
1434
1547
  status?: string | null;
1548
+ maskedFields?: Record<string, unknown> | null;
1549
+ createdAtUtc?: string | null;
1550
+ updatedAtUtc?: string | null;
1551
+ revokedAtUtc?: string | null;
1435
1552
  [key: string]: unknown;
1436
1553
  }
1437
1554
  interface CredentialReferenceListResult {
@@ -1440,29 +1557,83 @@ interface CredentialReferenceListResult {
1440
1557
  [key: string]: unknown;
1441
1558
  }
1442
1559
  interface CredentialTypeCatalogItem {
1443
- credentialType: string;
1560
+ type?: string;
1561
+ credentialType?: string;
1444
1562
  displayName?: string | null;
1563
+ fields?: CredentialFieldDescriptor[];
1445
1564
  schema?: unknown;
1446
1565
  authPolicySchema?: unknown;
1447
1566
  [key: string]: unknown;
1448
1567
  }
1568
+ interface CredentialFieldDescriptor {
1569
+ key: string;
1570
+ displayName?: string | null;
1571
+ isSecret?: boolean;
1572
+ required?: boolean;
1573
+ inputType?: string | null;
1574
+ placeholder?: string | null;
1575
+ [key: string]: unknown;
1576
+ }
1577
+ interface CredentialProviderCatalogItem {
1578
+ providerKey: string;
1579
+ displayName: string;
1580
+ iconKey?: string | null;
1581
+ credentialTypes?: string[];
1582
+ authModes?: string[];
1583
+ requiredScopes?: string[];
1584
+ requiredPermissions?: string[];
1585
+ connectAvailable?: boolean;
1586
+ manualSetupAvailable?: boolean;
1587
+ setupInstructions?: string | null;
1588
+ }
1449
1589
  interface CredentialTypeCatalogResult {
1590
+ providers?: CredentialProviderCatalogItem[];
1450
1591
  items?: CredentialTypeCatalogItem[];
1451
1592
  [key: string]: unknown;
1452
1593
  }
1453
1594
  interface CredentialTestRequest {
1454
1595
  credentialRef?: string | null;
1596
+ providerKey?: string | null;
1455
1597
  credentialType?: string | null;
1456
1598
  config?: unknown;
1457
1599
  [key: string]: unknown;
1458
1600
  }
1459
1601
  interface CredentialTestResult {
1602
+ credentialRef?: string | null;
1603
+ supported?: boolean;
1460
1604
  succeeded?: boolean;
1461
1605
  status?: string | null;
1462
1606
  message?: string | null;
1463
1607
  issues?: unknown[];
1464
1608
  [key: string]: unknown;
1465
1609
  }
1610
+ interface ManualCredentialCreateRequest {
1611
+ providerKey: string;
1612
+ credentialType: string;
1613
+ displayName?: string | null;
1614
+ fields: Record<string, string>;
1615
+ }
1616
+ interface CredentialMutationResult {
1617
+ accepted?: boolean;
1618
+ credential?: CredentialReference | null;
1619
+ errorCode?: string | null;
1620
+ message?: string | null;
1621
+ [key: string]: unknown;
1622
+ }
1623
+ interface CredentialOAuthStartRequest {
1624
+ providerKey: string;
1625
+ credentialType?: string | null;
1626
+ returnUrl?: string | null;
1627
+ }
1628
+ interface CredentialOAuthStartResult {
1629
+ supported?: boolean;
1630
+ started?: boolean;
1631
+ authorizationUrl?: string | null;
1632
+ state?: string | null;
1633
+ message?: string | null;
1634
+ missingConfigurationKeys?: string[];
1635
+ [key: string]: unknown;
1636
+ }
1466
1637
  interface FlowPlusModuleCatalogItem {
1467
1638
  moduleKey: string;
1468
1639
  moduleId?: number | string | null;
@@ -1509,6 +1680,9 @@ interface FormSelectorItem {
1509
1680
  }
1510
1681
  interface FormSelectorContractResult {
1511
1682
  items?: FormSelectorItem[];
1683
+ forms?: FormSelectorItem[];
1684
+ versioningMode?: string | null;
1685
+ publishBehavior?: string | null;
1512
1686
  [key: string]: unknown;
1513
1687
  }
1514
1688
  interface FormVersionSummary {
@@ -1521,6 +1695,11 @@ interface FormVersionSummary {
1521
1695
  }
1522
1696
  interface FormVersionListResult {
1523
1697
  items?: FormVersionSummary[];
1698
+ versions?: FormVersionSummary[];
1699
+ immutableVersionsAvailable?: boolean;
1700
+ versioningMode?: string | null;
1701
+ requiresSnapshotOnPublish?: boolean;
1702
+ publishBehavior?: string | null;
1524
1703
  [key: string]: unknown;
1525
1704
  }
1526
1705
  interface FormSchemaResult {
@@ -1565,8 +1744,7 @@ interface ScheduleValidationRequest {
1565
1744
  triggerKey?: string | null;
1566
1745
  [key: string]: unknown;
1567
1746
  }
1568
- interface SchedulePreviewRequest extends ScheduleValidationRequest {
1569
- }
1747
+ type SchedulePreviewRequest = ScheduleValidationRequest;
1570
1748
  interface SchedulePreviewResult {
1571
1749
  isValid?: boolean;
1572
1750
  nextFireAtUtc?: string | null;
@@ -1680,7 +1858,15 @@ interface AutomationRunResult {
1680
1858
  executionId: number | string;
1681
1859
  status: AutomationExecutionStatus;
1682
1860
  correlationId?: string | null;
1683
- queuedNodes?: unknown[];
1861
+ queuedNodes?: QueuedNodeSummary[];
1862
+ }
1863
+ interface QueuedNodeSummary {
1864
+ nodeKey?: string | null;
1865
+ nodeType?: AutomationNodeType | string | null;
1866
+ status?: AutomationExecutionStatus | string | null;
1867
+ nodeRunId?: number | string | null;
1868
+ routeOutputKey?: string | null;
1869
+ [key: string]: unknown;
1684
1870
  }
1685
1871
  interface AutomationExecutionListResult {
1686
1872
  items: AutomationExecutionSummary[];
@@ -1762,6 +1948,12 @@ interface AutomationRuntimeWait {
1762
1948
  nodeKey?: string | null;
1763
1949
  waitType: string;
1764
1950
  status: string;
1951
+ waitReason?: string | null;
1952
+ resumeToken?: string | null;
1953
+ createdAtUtc?: string | null;
1954
+ expiresAtUtc?: string | null;
1955
+ dueDateUtc?: string | null;
1956
+ metadata?: unknown;
1765
1957
  }
1766
1958
  interface AutomationExecutionEvent {
1767
1959
  eventId: number | string;
@@ -1828,6 +2020,57 @@ interface HumanApprovalDecisionResult {
1828
2020
  decision: string;
1829
2021
  status: AutomationExecutionStatus;
1830
2022
  }
2023
+ interface HumanTaskAssignment {
2024
+ userId?: string | null;
2025
+ roleId?: string | null;
2026
+ groupId?: string | null;
2027
+ displayName?: string | null;
2028
+ [key: string]: unknown;
2029
+ }
2030
+ interface HumanTaskPayloadResult {
2031
+ accepted?: boolean;
2032
+ executionId?: number | string | null;
2033
+ nodeRunId?: number | string | null;
2034
+ resumeToken?: string | null;
2035
+ nodeKey?: string | null;
2036
+ title?: string | null;
2037
+ description?: string | null;
2038
+ formSource?: 'ExplicitFormBinding' | 'ReuseTriggerForm' | string | null;
2039
+ formId?: string | null;
2040
+ formVersionId?: string | null;
2041
+ canSaveDraft?: boolean | null;
2042
+ contextOutputPath?: string | null;
2043
+ priority?: string | null;
2044
+ dueDateUtc?: string | null;
2045
+ assignment?: HumanTaskAssignment | null;
2046
+ prefill?: unknown;
2047
+ draft?: unknown;
2048
+ payload?: unknown;
2049
+ errorCode?: string | null;
2050
+ message?: string | null;
2051
+ }
2052
+ interface HumanTaskDraftRequest {
2053
+ values?: Record<string, unknown> | null;
2054
+ metadata?: Record<string, unknown> | null;
2055
+ }
2056
+ interface HumanTaskSubmitRequest {
2057
+ values?: Record<string, unknown> | null;
2058
+ metadata?: Record<string, unknown> | null;
2059
+ }
2060
+ interface HumanTaskCancelRequest {
2061
+ reason?: string | null;
2062
+ metadata?: Record<string, unknown> | null;
2063
+ }
2064
+ interface HumanTaskActionResult {
2065
+ accepted?: boolean;
2066
+ executionId?: number | string | null;
2067
+ nodeRunId?: number | string | null;
2068
+ status?: AutomationExecutionStatus | string | null;
2069
+ queuedNode?: QueuedNodeSummary | null;
2070
+ errorCode?: string | null;
2071
+ message?: string | null;
2072
+ action?: string | null;
2073
+ }
1831
2074
  interface AutomationEngineHealthSnapshot {
1832
2075
  enabled: boolean;
1833
2076
  queuedCount: number;
@@ -1902,6 +2145,8 @@ declare class EndpointBuilder {
1902
2145
  workflowDuplicate(id: number | string): string;
1903
2146
  workflowPublish(id: number | string): string;
1904
2147
  workflowUnpublish(id: number | string): string;
2148
+ workflowVariables(id: number | string): string;
2149
+ workflowVariable(id: number | string, requestPropertyId: number | string): string;
1905
2150
  workflowCatalog(): string;
1906
2151
  workflowContextCatalog(id: number | string): string;
1907
2152
  workflowContextCatalogForStep(id: number | string, stepSchemaId: number | string): string;
@@ -1932,6 +2177,7 @@ declare class EndpointBuilder {
1932
2177
  automationFormBinding(automationId: number | string, formBindingId?: number | string | null): string;
1933
2178
  automationBuilderCatalog(): string;
1934
2179
  automationNodeTypes(): string;
2180
+ automationBuilderConnectors(): string;
1935
2181
  automationTriggerTypes(): string;
1936
2182
  automationSubworkflowAutomations(): string;
1937
2183
  automationExpressionNamespaces(): string;
@@ -1940,6 +2186,9 @@ declare class EndpointBuilder {
1940
2186
  automationCredentials(): string;
1941
2187
  automationCredentialTypes(): string;
1942
2188
  automationCredentialTest(): string;
2189
+ automationCredentialManualCreate(): string;
2190
+ automationCredentialOAuthStart(): string;
2191
+ automationCredential(credentialRef: string): string;
1943
2192
  automationFlowplusModules(): string;
1944
2193
  automationFlowplusModuleSchema(moduleKey: string): string;
1945
2194
  automationFlowplusOperations(): string;
@@ -1965,16 +2214,22 @@ declare class EndpointBuilder {
1965
2214
  automationRevisionDiff(automationId: number | string): string;
1966
2215
  automationRuntimeRoot(): string;
1967
2216
  automationManualTriggerRun(triggerKey: string): string;
2217
+ automationDraftManualTriggerRun(automationId: number | string, triggerKey: string): string;
1968
2218
  automationWebhookRun(webhookKey: string): string;
1969
2219
  automationFormSubmissionRun(formId: number | string, submissionId: number | string): string;
1970
2220
  automationExecutions(): string;
1971
2221
  automationExecution(executionId: number | string): string;
1972
2222
  automationExecutionNodeData(executionId: number | string, nodeRunId: number | string): string;
2223
+ automationExecutionBinaryData(executionId: number | string, dataRef: number | string): string;
1973
2224
  automationWaitResumeToken(executionId: number | string, runtimeWaitId: number | string): string;
1974
2225
  automationExecutionCancel(executionId: number | string): string;
1975
2226
  automationExecutionRetry(executionId: number | string): string;
1976
2227
  automationWaitResume(resumeToken: string): string;
1977
2228
  automationApprovalDecision(resumeToken: string): string;
2229
+ automationTask(resumeToken: string): string;
2230
+ automationTaskDraft(resumeToken: string): string;
2231
+ automationTaskSubmit(resumeToken: string): string;
2232
+ automationTaskCancel(resumeToken: string): string;
1978
2233
  automationHealth(): string;
1979
2234
  automationRetentionDryRun(): string;
1980
2235
  plugins(): string;
@@ -2054,6 +2309,10 @@ declare class WorkflowDefinitionApiService {
2054
2309
  getLayout(workflowId: number): Observable<WorkflowLayoutDto>;
2055
2310
  saveLayout(workflowId: number, body: WorkflowLayoutDto): Observable<WorkflowLayoutDto>;
2056
2311
  subworkflowCandidates(): Observable<WorkflowDefinitionSummaryDto[]>;
2312
+ getVariables(workflowId: number): Observable<WorkflowVariableDto[]>;
2313
+ createVariable(workflowId: number, request: WorkflowVariableRequest): Observable<WorkflowVariableDto[]>;
2314
+ updateVariable(workflowId: number, requestPropertyId: number, request: WorkflowVariableRequest): Observable<WorkflowVariableDto[]>;
2315
+ deleteVariable(workflowId: number, requestPropertyId: number): Observable<WorkflowVariableDto[]>;
2057
2316
  validateAutomationWorkflow(workflowId: number): Observable<WorkflowValidationResultDto>;
2058
2317
  firstTriggerKey(workflowId: number): Observable<string>;
2059
2318
  triggerKey(workflowId: number, triggerId: number): Observable<string>;
@@ -2129,9 +2388,9 @@ declare class WorkflowFormApiService {
2129
2388
  * POST process-submit/validate → validate runtime payload
2130
2389
  * POST process-submit → execute runtime create/update/delete/action
2131
2390
  *
2132
- * Test-run uses Automation Engine manual-trigger execution and then reads the
2133
- * execution detail. The returned shape is adapted to the older
2134
- * `WorkflowTestRunResultDto` consumed by the existing premium test panel.
2391
+ * Design-time test runs use the workflow definition dry-run endpoint. Sandbox
2392
+ * execution still uses Automation Engine manual-trigger execution and adapts
2393
+ * the result to `WorkflowTestRunResultDto` for the existing premium test panel.
2135
2394
  *
2136
2395
  * Old invented endpoints (`/processes/start/...`, `/processes/{id}/tasks/...`)
2137
2396
  * are not used. See `docs/workflow-backend-contract-gaps.md` for outstanding
@@ -2147,6 +2406,7 @@ declare class WorkflowRuntimeApiService {
2147
2406
  validateSubmit(body: ProcessSubmitRequest): Observable<WorkflowValidationResultDto>;
2148
2407
  submit(body: ProcessSubmitRequest): Observable<ProcessSubmitResponseDto>;
2149
2408
  testRun(workflowId: number, body: WorkflowTestRunRequest): Observable<WorkflowTestRunResultDto>;
2409
+ private designTimeTestRun;
2150
2410
  private resolveTriggerKey;
2151
2411
  getTestRunResult(workflowId: number, testRunId: string): Observable<WorkflowTestRunResultDto>;
2152
2412
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<WorkflowRuntimeApiService, never>;
@@ -2212,8 +2472,12 @@ declare class AutomationBuilderCatalogApiService {
2212
2472
  private readonly http;
2213
2473
  private readonly endpoints;
2214
2474
  private readonly diagnostics;
2475
+ private readonly cachedCatalog;
2476
+ private catalogRequest$;
2215
2477
  catalog(): Observable<AutomationBuilderCatalog>;
2478
+ invalidateCatalog(): void;
2216
2479
  nodeTypes(): Observable<NodeTypeCatalogItem[]>;
2480
+ connectors(): Observable<ConnectorCatalog>;
2217
2481
  triggerTypes(): Observable<TriggerTypeCatalogItem[]>;
2218
2482
  subworkflowAutomations(params?: Record<string, string | number | boolean | null | undefined>): Observable<AutomationSelectorResult>;
2219
2483
  expressionNamespaces(): Observable<ExpressionNamespaceDescriptor[]>;
@@ -2222,6 +2486,9 @@ declare class AutomationBuilderCatalogApiService {
2222
2486
  credentials(params?: Record<string, string | number | boolean | null | undefined>): Observable<CredentialReferenceListResult>;
2223
2487
  credentialTypes(): Observable<CredentialTypeCatalogResult>;
2224
2488
  testCredential(request: CredentialTestRequest): Observable<CredentialTestResult>;
2489
+ createManualCredential(request: ManualCredentialCreateRequest): Observable<CredentialMutationResult>;
2490
+ startCredentialOAuth(request: CredentialOAuthStartRequest): Observable<CredentialOAuthStartResult>;
2491
+ revokeCredential(credentialRef: string): Observable<CredentialMutationResult>;
2225
2492
  flowplusModules(): Observable<FlowPlusModuleCatalogResult>;
2226
2493
  flowplusModuleSchema(moduleKey: string): Observable<FlowPlusModuleSchemaResult>;
2227
2494
  flowplusOperations(): Observable<string[]>;
@@ -2244,6 +2511,7 @@ declare class AutomationExecutionApiService {
2244
2511
  private readonly http;
2245
2512
  private readonly endpoints;
2246
2513
  runManualTrigger(triggerKey: string, payload?: unknown): Observable<AutomationRunResult>;
2514
+ runDraftManualTrigger(automationId: number | string, triggerKey: string, payload?: unknown): Observable<AutomationRunResult>;
2247
2515
  runWebhook(webhookKey: string, payload: unknown): Observable<AutomationRunResult>;
2248
2516
  runFormSubmission(formId: number | string, submissionId: number | string, payload: unknown): Observable<AutomationRunResult>;
2249
2517
  listExecutions(params?: Record<string, string | number | boolean | null | undefined>): Observable<AutomationExecutionListResult>;
@@ -2254,6 +2522,10 @@ declare class AutomationExecutionApiService {
2254
2522
  cancel(executionId: number | string): Observable<ExecutionCancelResult>;
2255
2523
  resumeWait(resumeToken: string, request: WaitResumeRequest): Observable<WaitResumeResult>;
2256
2524
  approve(resumeToken: string, request: HumanApprovalDecisionRequest): Observable<HumanApprovalDecisionResult>;
2525
+ humanTaskPayload(resumeToken: string): Observable<HumanTaskPayloadResult>;
2526
+ saveHumanTaskDraft(resumeToken: string, request: HumanTaskDraftRequest): Observable<HumanTaskActionResult>;
2527
+ submitHumanTask(resumeToken: string, request: HumanTaskSubmitRequest): Observable<HumanTaskActionResult>;
2528
+ cancelHumanTask(resumeToken: string, request: HumanTaskCancelRequest): Observable<HumanTaskActionResult>;
2257
2529
  health(params?: Record<string, string | number | boolean | null | undefined>): Observable<AutomationEngineHealthSnapshot>;
2258
2530
  retentionDryRun(params?: Record<string, string | number | boolean | null | undefined>): Observable<AutomationRetentionPruneResult>;
2259
2531
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AutomationExecutionApiService, never>;
@@ -2285,6 +2557,8 @@ declare function parsePortId(id: string | null | undefined): {
2285
2557
  direction?: 'in' | 'out';
2286
2558
  portKey?: string;
2287
2559
  };
2560
+ declare function resolveConnectionEndpointStep(connection: WorkflowConnectionDto, steps: readonly WorkflowStepDto[], endpoint: 'source' | 'target'): WorkflowStepDto | null;
2561
+ declare function flowPortKeyExists(ports: readonly FlowNodePortVm[], portKey: string | null | undefined): boolean;
2288
2562
  type FlowPortSide = 'top' | 'right' | 'bottom' | 'left';
2289
2563
  type FlowPortDirection = 'input' | 'output';
2290
2564
  interface FlowNodePortVm {
@@ -2330,8 +2604,8 @@ interface FlowCanvasNodeVm {
2330
2604
  runtimeChildAutomationId?: number | string | null;
2331
2605
  runtimeMetadata?: Record<string, unknown> | null;
2332
2606
  }
2333
- declare const FLOW_NODE_CARD_WIDTH = 80;
2334
- declare const FLOW_NODE_BASE_HEIGHT = 80;
2607
+ declare const FLOW_NODE_CARD_WIDTH = 88;
2608
+ declare const FLOW_NODE_BASE_HEIGHT = 88;
2335
2609
  declare const FLOW_NODE_OUTPUT_SIZE = 16;
2336
2610
  declare const FLOW_NODE_MULTI_OUTPUT_GAP = 18;
2337
2611
  declare function flowNodeOutputStackHeight(outputCount: number): number;
@@ -2383,7 +2657,48 @@ interface FlowCanvasEdgeVm {
2383
2657
  runtimeStatus?: string | null;
2384
2658
  runtimeTooltip?: string | null;
2385
2659
  runtimeLabel?: string | null;
2660
+ connectionType?: FlowCanvasConnectionType;
2661
+ connectionOffset?: number;
2662
+ connectionRadius?: number;
2663
+ inputSide?: FlowCanvasConnectionSide;
2664
+ outputSide?: FlowCanvasConnectionSide;
2665
+ connectionWaypoints?: readonly FlowCanvasConnectionWaypoint[];
2666
+ isReturnConnection?: boolean;
2667
+ }
2668
+ declare function canShowConnectionQuickAdd(edge: FlowCanvasEdgeVm, state?: {
2669
+ readonly?: boolean;
2670
+ loading?: boolean;
2671
+ busy?: boolean;
2672
+ }): boolean;
2673
+ declare const FLOWPLUS_RETURN_LOOP_CONNECTION_TYPE = "flowplus-return-loop";
2674
+ type FlowCanvasConnectionType = 'adaptive-curve' | 'segment' | typeof FLOWPLUS_RETURN_LOOP_CONNECTION_TYPE;
2675
+ type FlowCanvasConnectionSide = 'default' | 'top' | 'right' | 'bottom' | 'left' | 'calculate' | 'calculate_horizontal' | 'calculate_vertical';
2676
+ interface FlowCanvasConnectionWaypoint {
2677
+ x: number;
2678
+ y: number;
2386
2679
  }
2680
+ interface FlowCanvasConnectionPosition {
2681
+ x: number;
2682
+ y: number;
2683
+ width?: number | null;
2684
+ height?: number | null;
2685
+ }
2686
+ interface FlowCanvasConnectionRouting {
2687
+ connectionType: FlowCanvasConnectionType;
2688
+ connectionOffset: number;
2689
+ connectionRadius: number;
2690
+ inputSide: FlowCanvasConnectionSide;
2691
+ outputSide: FlowCanvasConnectionSide;
2692
+ connectionWaypoints: readonly FlowCanvasConnectionWaypoint[];
2693
+ isReturnConnection: boolean;
2694
+ }
2695
+ interface FlowCanvasConnectionRoutingContext {
2696
+ sourceOutputIndex?: number | null;
2697
+ sourceOutputCount?: number | null;
2698
+ }
2699
+ declare function routeConnectionForCanvas(connection: WorkflowConnectionDto, connections: readonly WorkflowConnectionDto[], sourcePosition?: FlowCanvasConnectionPosition | null, targetPosition?: FlowCanvasConnectionPosition | null, context?: FlowCanvasConnectionRoutingContext | null): FlowCanvasConnectionRouting;
2700
+ declare function isReturnConnectionForCanvas(connection: WorkflowConnectionDto, connections: readonly WorkflowConnectionDto[], sourcePosition?: FlowCanvasConnectionPosition | null, targetPosition?: FlowCanvasConnectionPosition | null): boolean;
2701
+ declare function connectionClosesDirectedCycle(connection: WorkflowConnectionDto, connections: readonly WorkflowConnectionDto[]): boolean;
2387
2702
  /**
2388
2703
  * Derives the visual port set for a step. Backend may not yet provide
2389
2704
  * action-specific routing, so for UserInput we always expose ports for
@@ -2566,6 +2881,7 @@ interface FlowplusSelection {
2566
2881
  interface FlowplusUiState {
2567
2882
  bottomPanelOpen: boolean;
2568
2883
  bottomPanelTab: 'problems' | 'testRun' | 'context' | 'logs' | 'raw';
2884
+ bottomPanelHeightPx: number;
2569
2885
  minimapOpen: boolean;
2570
2886
  validationOverlay: boolean;
2571
2887
  paletteSearch: string;
@@ -3083,6 +3399,11 @@ declare class SetBottomPanelOpen {
3083
3399
  static readonly type = "[FlowplusWorkflow] Set Bottom Panel Open";
3084
3400
  constructor(open?: boolean | undefined);
3085
3401
  }
3402
+ declare class SetBottomPanelHeight {
3403
+ heightPx: number;
3404
+ static readonly type = "[FlowplusWorkflow] Set Bottom Panel Height";
3405
+ constructor(heightPx: number);
3406
+ }
3086
3407
  declare class SetMinimap {
3087
3408
  open: boolean;
3088
3409
  static readonly type = "[FlowplusWorkflow] Set Minimap";
@@ -3221,6 +3542,10 @@ interface TriggerNodeVm {
3221
3542
  isInvalid?: boolean;
3222
3543
  isWarning?: boolean;
3223
3544
  issues?: WorkflowValidationIssueDto[];
3545
+ cycleIssueCount?: number;
3546
+ cycleBlockerCount?: number;
3547
+ cycleWarningCount?: number;
3548
+ unrelatedBlockerCount?: number;
3224
3549
  startStepId?: number | null;
3225
3550
  startNodeKey?: string | null;
3226
3551
  /** Flow-local x */
@@ -3283,16 +3608,33 @@ declare class FlowplusWorkflowFacade {
3283
3608
  readonly validationByStepId: _angular_core.Signal<Map<number, WorkflowValidationIssueDto[]>>;
3284
3609
  readonly validationByConnectionId: _angular_core.Signal<Map<number, WorkflowValidationIssueDto[]>>;
3285
3610
  readonly validationByTriggerId: _angular_core.Signal<Map<number, WorkflowValidationIssueDto[]>>;
3286
- readonly runtime: _angular_core.Signal<FlowplusExecutionRuntimeSlice>;
3287
- readonly runtimeDetail: _angular_core.Signal<AutomationExecutionDetail | null>;
3611
+ readonly runtime: _angular_core.Signal<_masterteam_flowplus_workflow.FlowplusExecutionRuntimeSlice>;
3612
+ readonly runtimeDetail: _angular_core.Signal<_masterteam_flowplus_workflow.AutomationExecutionDetail | null>;
3288
3613
  readonly runtimeStatus: _angular_core.Signal<string | null>;
3289
3614
  readonly runtimeError: _angular_core.Signal<string | null>;
3290
3615
  readonly runtimeRunning: _angular_core.Signal<boolean>;
3291
3616
  readonly runtimeAccepted: _angular_core.Signal<boolean>;
3617
+ readonly runtimeLoading: _angular_core.Signal<boolean>;
3292
3618
  readonly activeExecutionId: _angular_core.Signal<string | number | null>;
3293
3619
  readonly selectedRuntimeTriggerId: _angular_core.Signal<number | null>;
3294
3620
  readonly selectedRuntimeTrigger: _angular_core.Signal<WorkflowTriggerDto>;
3295
3621
  readonly selectedTrigger: _angular_core.Signal<WorkflowTriggerDto | null>;
3622
+ readonly selectedGraphItemRawDto: _angular_core.Signal<{
3623
+ kind: string;
3624
+ dto: WorkflowTriggerDto | null;
3625
+ } | {
3626
+ kind: string;
3627
+ dto: WorkflowStepDto | null;
3628
+ } | {
3629
+ kind: string;
3630
+ dto: WorkflowConnectionDto | null;
3631
+ } | {
3632
+ kind: string;
3633
+ dto: CanvasNoteVm | null;
3634
+ } | {
3635
+ kind: string;
3636
+ dto: _masterteam_flowplus_workflow.WorkflowDefinitionDto | null;
3637
+ }>;
3296
3638
  /**
3297
3639
  * Canvas node view-models — derived from steps + layout + selection +
3298
3640
  * validation + the runtime routing policy on the catalog. Kept on the
@@ -3332,6 +3674,8 @@ declare class FlowplusWorkflowFacade {
3332
3674
  private readonly errors;
3333
3675
  readonly loading: _angular_core.Signal<boolean>;
3334
3676
  readonly studioLoading: _angular_core.Signal<boolean>;
3677
+ readonly contextCatalogLoading: _angular_core.Signal<boolean>;
3678
+ readonly contextCatalogError: _angular_core.Signal<string | null>;
3335
3679
  /**
3336
3680
  * "Busy" — true while any user-initiated write is in flight. Used by
3337
3681
  * components that want to show inline activity (the topbar spinner,
@@ -3414,6 +3758,7 @@ declare class FlowplusWorkflowFacade {
3414
3758
  unpublish(): Observable<void>;
3415
3759
  setBottomPanelTab(tab: FlowplusUiState['bottomPanelTab']): Observable<void>;
3416
3760
  toggleBottomPanel(open?: boolean): Observable<void>;
3761
+ setBottomPanelHeight(heightPx: number): Observable<void>;
3417
3762
  setMinimap(open: boolean): Observable<void>;
3418
3763
  setPaletteOpen(open?: boolean, pin?: boolean): Observable<void>;
3419
3764
  togglePalette(): Observable<void>;
@@ -3463,10 +3808,11 @@ declare class FlowplusWorkflowState {
3463
3808
  private readonly runtimeApi;
3464
3809
  private readonly store;
3465
3810
  private executionPollTimer;
3811
+ private validationRefreshTimer;
3466
3812
  static studio(state: FlowplusWorkflowStateModel): _masterteam_flowplus_workflow.FlowplusStudioSlice;
3467
3813
  static builder(state: FlowplusWorkflowStateModel): FlowplusBuilderSlice;
3468
3814
  static ui(state: FlowplusWorkflowStateModel): _masterteam_flowplus_workflow.FlowplusUiState;
3469
- static runtime(state: FlowplusWorkflowStateModel): _masterteam_flowplus_workflow.FlowplusExecutionRuntimeSlice;
3815
+ static runtime(state: FlowplusWorkflowStateModel): FlowplusExecutionRuntimeSlice;
3470
3816
  static workflow(b: FlowplusBuilderSlice): _masterteam_flowplus_workflow.WorkflowDefinitionDto | null;
3471
3817
  static steps(b: FlowplusBuilderSlice): WorkflowStepDto[];
3472
3818
  static connections(b: FlowplusBuilderSlice): WorkflowConnectionDto[];
@@ -3537,8 +3883,12 @@ declare class FlowplusWorkflowState {
3537
3883
  * (which made fields "reset" right after a request completed).
3538
3884
  */
3539
3885
  private readonly stepCommitSeq;
3886
+ private readonly stepCommitInflight;
3540
3887
  updateStep(ctx: StateContext<FlowplusWorkflowStateModel>, action: UpdateStep): void;
3541
3888
  private commitStepUpdate;
3889
+ private commitStepUpdate$;
3890
+ private flushPendingStepUpdates;
3891
+ private hasPendingStepSaves;
3542
3892
  deleteStep(ctx: StateContext<FlowplusWorkflowStateModel>, action: DeleteStep): Observable<void> | undefined;
3543
3893
  moveStep(ctx: StateContext<FlowplusWorkflowStateModel>, action: MoveStep): void;
3544
3894
  selectConnection(ctx: StateContext<FlowplusWorkflowStateModel>, action: SelectConnection): void;
@@ -3551,8 +3901,11 @@ declare class FlowplusWorkflowState {
3551
3901
  loadTriggers(ctx: StateContext<FlowplusWorkflowStateModel>): Observable<_masterteam_flowplus_workflow.WorkflowTriggerDto[]> | undefined;
3552
3902
  createTrigger(ctx: StateContext<FlowplusWorkflowStateModel>, action: CreateTrigger): Observable<_masterteam_flowplus_workflow.WorkflowTriggerDto> | undefined;
3553
3903
  private triggerTimers;
3904
+ private readonly triggerCommitSeq;
3905
+ private readonly triggerCommitInflight;
3554
3906
  updateTrigger(ctx: StateContext<FlowplusWorkflowStateModel>, action: UpdateTrigger): void;
3555
3907
  private commitTriggerUpdate;
3908
+ private commitTriggerUpdate$;
3556
3909
  deleteTrigger(ctx: StateContext<FlowplusWorkflowStateModel>, action: DeleteTrigger): Observable<void>;
3557
3910
  private layoutTimer;
3558
3911
  private layoutAutosavePaused;
@@ -3569,13 +3922,14 @@ declare class FlowplusWorkflowState {
3569
3922
  validateWorkflow(ctx: StateContext<FlowplusWorkflowStateModel>): Observable<_masterteam_flowplus_workflow.WorkflowValidationResultDto> | undefined;
3570
3923
  setValidation(ctx: StateContext<FlowplusWorkflowStateModel>, action: SetValidation): void;
3571
3924
  setLayout(ctx: StateContext<FlowplusWorkflowStateModel>, action: SetLayout): void;
3572
- publishWorkflow(ctx: StateContext<FlowplusWorkflowStateModel>): Observable<_masterteam_flowplus_workflow.WorkflowDefinitionDto> | undefined;
3925
+ publishWorkflow(ctx: StateContext<FlowplusWorkflowStateModel>): Observable<unknown> | void;
3573
3926
  unpublishWorkflow(ctx: StateContext<FlowplusWorkflowStateModel>): Observable<_masterteam_flowplus_workflow.WorkflowDefinitionDto> | undefined;
3574
3927
  setSelection(ctx: StateContext<FlowplusWorkflowStateModel>, action: SetSelection): void;
3575
3928
  setSelectionFromCanvas(ctx: StateContext<FlowplusWorkflowStateModel>, action: SetSelectionFromCanvas): void;
3576
3929
  setActiveInspectorTab(ctx: StateContext<FlowplusWorkflowStateModel>, action: SetActiveInspectorTab): void;
3577
3930
  setBottomPanelTab(ctx: StateContext<FlowplusWorkflowStateModel>, action: SetBottomPanelTab): void;
3578
3931
  setBottomPanelOpen(ctx: StateContext<FlowplusWorkflowStateModel>, action: SetBottomPanelOpen): void;
3932
+ setBottomPanelHeight(ctx: StateContext<FlowplusWorkflowStateModel>, action: SetBottomPanelHeight): void;
3579
3933
  setMinimap(ctx: StateContext<FlowplusWorkflowStateModel>, action: SetMinimap): void;
3580
3934
  setPaletteOpen(ctx: StateContext<FlowplusWorkflowStateModel>, action: SetPaletteOpen): void;
3581
3935
  setInspectorOpen(ctx: StateContext<FlowplusWorkflowStateModel>, action: SetInspectorOpen): void;
@@ -3592,18 +3946,21 @@ declare class FlowplusWorkflowState {
3592
3946
  redoBuilderCommand(_ctx: StateContext<FlowplusWorkflowStateModel>): void;
3593
3947
  clearCommandHistory(_ctx: StateContext<FlowplusWorkflowStateModel>): void;
3594
3948
  setSelectedRuntimeTrigger(ctx: StateContext<FlowplusWorkflowStateModel>, action: SetSelectedRuntimeTrigger): void;
3595
- runAutomationTrigger(ctx: StateContext<FlowplusWorkflowStateModel>, action: RunAutomationTrigger): Observable<AutomationRunResult>;
3949
+ runAutomationTrigger(ctx: StateContext<FlowplusWorkflowStateModel>, action: RunAutomationTrigger): Observable<unknown> | void;
3596
3950
  pollAutomationExecution(ctx: StateContext<FlowplusWorkflowStateModel>, action: PollAutomationExecution): Observable<AutomationExecutionDetail>;
3597
3951
  loadLatestAutomationExecution(ctx: StateContext<FlowplusWorkflowStateModel>): Observable<AutomationExecutionDetail>;
3598
3952
  loadAutomationExecution(ctx: StateContext<FlowplusWorkflowStateModel>, action: LoadAutomationExecution): Observable<AutomationExecutionDetail>;
3599
3953
  applyAutomationExecutionDetail(ctx: StateContext<FlowplusWorkflowStateModel>, action: ApplyAutomationExecutionDetail): void;
3600
3954
  clearAutomationRuntimeState(ctx: StateContext<FlowplusWorkflowStateModel>): void;
3601
3955
  selectRuntimeNodeRun(ctx: StateContext<FlowplusWorkflowStateModel>, action: SelectRuntimeNodeRun): void;
3602
- runWorkflowTest(ctx: StateContext<FlowplusWorkflowStateModel>, action: RunWorkflowTest): Observable<_masterteam_flowplus_workflow.WorkflowTestRunResultDto> | undefined;
3956
+ runWorkflowTest(ctx: StateContext<FlowplusWorkflowStateModel>, action: RunWorkflowTest): Observable<unknown> | void;
3957
+ private prepareCurrentDraftForRun;
3603
3958
  private resolveExecutionTrigger;
3604
3959
  private unsupportedTriggerMessage;
3605
3960
  private scheduleExecutionPoll;
3606
3961
  private clearExecutionPoll;
3962
+ private scheduleValidationRefresh;
3963
+ private clearValidationRefresh;
3607
3964
  private readonly _keepExtractMessage;
3608
3965
  private readonly _keepConnectionCreatedAction;
3609
3966
  private readonly _keepConnectionCreationFailedAction;
@@ -3635,6 +3992,7 @@ declare function applyBuilderSnapshot(cur: FlowplusBuilderSlice, dto: WorkflowBu
3635
3992
  declare function hasOtherPending(pendingOperations: Record<string, FlowplusPendingOperation>, excludeId?: string): boolean;
3636
3993
  /** Returns true when ANY entity dirty flag is set. */
3637
3994
  declare function isEntityDirty(dirty: FlowplusBuilderSlice['dirty']): boolean;
3995
+ declare function shouldPublishCurrentDefinitionBeforeRun(builder: FlowplusBuilderSlice): boolean;
3638
3996
  /** Compute the next coarse save status from dirty + pending. */
3639
3997
  declare function computeSaveStatus(dirty: FlowplusBuilderSlice['dirty'], pendingOperations: Record<string, FlowplusPendingOperation>, lastError: string | null): FlowplusSaveStatus;
3640
3998
  /** Helper that narrows a "saving/saved" ternary back to the union type. */
@@ -3646,6 +4004,17 @@ declare function savingOrSaved(pending: boolean): FlowplusSaveStatus;
3646
4004
  declare function indexValidationByStepId(validation: FlowplusBuilderSlice['validation']): Map<number, WorkflowValidationIssueDto[]>;
3647
4005
  declare function indexValidationByConnectionId(validation: FlowplusBuilderSlice['validation']): Map<number, WorkflowValidationIssueDto[]>;
3648
4006
  declare function indexValidationByTriggerId(validation: FlowplusBuilderSlice['validation']): Map<number, WorkflowValidationIssueDto[]>;
4007
+ declare function allValidationIssues(validation: NonNullable<FlowplusBuilderSlice['validation']>): WorkflowValidationIssueDto[];
4008
+ interface TriggerCycleValidationSummary {
4009
+ readonly reachableStepIds: number[];
4010
+ readonly reachableConnectionIds: number[];
4011
+ readonly issues: WorkflowValidationIssueDto[];
4012
+ readonly blockers: WorkflowValidationIssueDto[];
4013
+ readonly warnings: WorkflowValidationIssueDto[];
4014
+ readonly unrelatedBlockers: WorkflowValidationIssueDto[];
4015
+ readonly hasStartStep: boolean;
4016
+ }
4017
+ declare function summarizeTriggerCycleValidation(trigger: WorkflowTriggerDto, steps: WorkflowStepDto[], connections: WorkflowConnectionDto[], validation: WorkflowValidationResultDto | null): TriggerCycleValidationSummary;
3649
4018
  /** Replace or append a step in the array. */
3650
4019
  declare function upsertStep(steps: WorkflowStepDto[], step: WorkflowStepDto): WorkflowStepDto[];
3651
4020
  /** Replace or append a connection in the array. */
@@ -3776,6 +4145,12 @@ interface FlowplusNodeFinderOverlayOptions {
3776
4145
  appendTo?: string | HTMLElement;
3777
4146
  position?: 'start' | 'end' | 'left' | 'right';
3778
4147
  }
4148
+ interface FlowplusWorkflowVariablesOverlayOptions {
4149
+ appendTo?: string | HTMLElement;
4150
+ }
4151
+ interface FlowplusExecutionFilesOverlayOptions {
4152
+ appendTo?: string | HTMLElement;
4153
+ }
3779
4154
  declare class FlowplusWorkflowOverlayService {
3780
4155
  private readonly modal;
3781
4156
  private readonly transloco;
@@ -3794,6 +4169,8 @@ declare class FlowplusWorkflowOverlayService {
3794
4169
  openConnectionConfig(connection: WorkflowConnectionDto): ModalRef<Partial<WorkflowConnectionDto>>;
3795
4170
  openTriggerConfig(trigger: WorkflowTriggerDto): ModalRef<TriggerConfigDialogResult>;
3796
4171
  openNodeFinder(options?: FlowplusNodeFinderOverlayOptions): ModalRef<unknown>;
4172
+ openWorkflowVariables(options?: FlowplusWorkflowVariablesOverlayOptions): ModalRef<unknown>;
4173
+ openExecutionFiles(options?: FlowplusExecutionFilesOverlayOptions): ModalRef<unknown>;
3797
4174
  private open;
3798
4175
  private inspectorComponent;
3799
4176
  private processCreateConfig;
@@ -3802,6 +4179,8 @@ declare class FlowplusWorkflowOverlayService {
3802
4179
  private connectionConfig;
3803
4180
  private triggerConfig;
3804
4181
  private nodeFinderConfig;
4182
+ private workflowVariablesConfig;
4183
+ private executionFilesConfig;
3805
4184
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FlowplusWorkflowOverlayService, never>;
3806
4185
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<FlowplusWorkflowOverlayService>;
3807
4186
  }
@@ -3945,6 +4324,17 @@ declare class ProcessCreateDialogComponent {
3945
4324
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ProcessCreateDialogComponent, "fp-process-create-dialog", never, {}, {}, never, never, true, never>;
3946
4325
  }
3947
4326
 
4327
+ type PaletteGroupKey = 'logicFlow' | 'dataFiles' | 'peopleReview' | 'appsApis' | 'flowplus';
4328
+ type PaletteSectionKey = 'branching' | 'looping' | 'parallel' | 'timing' | 'dataShape' | 'fileConvert' | 'tasksApprovals' | 'sendWait' | 'apiWebhook' | 'flowplusNative' | 'automationCalls' | 'other';
4329
+ interface AutomationNodeVisual {
4330
+ key: string;
4331
+ label: string;
4332
+ color: string;
4333
+ bg: string;
4334
+ mtIcon: MTIcon;
4335
+ svg?: string;
4336
+ }
4337
+
3948
4338
  type QuickAddMode = 'trigger' | 'step' | 'insert';
3949
4339
  interface QuickAddPickEvent {
3950
4340
  catalogItem: WorkflowStepTypeCatalogItemDto;
@@ -4016,7 +4406,7 @@ declare class FlowNodeComponent {
4016
4406
  */
4017
4407
  readonly subtitle: _angular_core.Signal<string>;
4018
4408
  readonly color: _angular_core.Signal<string>;
4019
- readonly mtIcon: _angular_core.Signal<_masterteam_icons.MTIcon>;
4409
+ readonly cardWidth = 88;
4020
4410
  readonly multiOutputGap = 18;
4021
4411
  readonly cardHeight: _angular_core.Signal<number>;
4022
4412
  readonly connectedOutputKeySet: _angular_core.Signal<Set<string>>;
@@ -4030,10 +4420,11 @@ declare class FlowNodeComponent {
4030
4420
  readonly issueTooltip: _angular_core.Signal<string>;
4031
4421
  readonly issueTooltipClass: _angular_core.Signal<string>;
4032
4422
  readonly runtimeTone: _angular_core.Signal<"waiting" | "failed" | "completed" | "skipped" | "running" | null>;
4033
- readonly runtimeIcon: _angular_core.Signal<"alert.alert-triangle" | "general.activity-heart" | "general.check-circle" | "general.minus-circle" | "time.clock" | "general.refresh-cw-05">;
4423
+ readonly runtimeIcon: _angular_core.Signal<"arrow.refresh-cw-05" | "alert.alert-triangle" | "general.activity-heart" | "general.check" | "general.minus-circle" | "time.clock">;
4034
4424
  readonly runtimeColor: _angular_core.Signal<"rgb(var(--fp-commit))" | "rgb(var(--fp-error))" | "rgb(var(--fp-warning))" | "var(--p-primary-color)" | "rgb(var(--fp-text-muted))">;
4035
4425
  readonly runtimeTooltip: _angular_core.Signal<string>;
4036
4426
  readonly runtimeStatusLabel: _angular_core.Signal<string>;
4427
+ readonly loopProgressLabel: _angular_core.Signal<string | null>;
4037
4428
  readonly isPendingCreate: _angular_core.Signal<boolean>;
4038
4429
  readonly pendingLabel: _angular_core.Signal<string>;
4039
4430
  /** Type-specific 1-3 fact lines beneath the title. */
@@ -4099,6 +4490,9 @@ interface NodePortPlusClickEvent {
4099
4490
  }
4100
4491
  interface EdgeInsertStepEvent {
4101
4492
  connectionId: number;
4493
+ edgeKind?: 'connection' | 'triggerStart';
4494
+ triggerId?: number | null;
4495
+ targetStepId?: number | null;
4102
4496
  }
4103
4497
  /**
4104
4498
  * Emitted when a canvas "+" affordance (port plus, drop-to-empty, edge
@@ -4257,6 +4651,12 @@ declare class FlowCanvasComponent {
4257
4651
  connectedOutputKeys(stepId: number): readonly string[];
4258
4652
  /** Guards the one-time auto-fit when the graph first gains content. */
4259
4653
  private didInitialFit;
4654
+ private readonly initialFitMaxAttempts;
4655
+ private readonly initialFitRetryDelayMs;
4656
+ private initialFitAttempt;
4657
+ private initialFitRafId;
4658
+ private initialFitTimerId;
4659
+ private initialFitScheduleToken;
4260
4660
  /**
4261
4661
  * Re-arm the one-time auto-fit so the NEXT render fits again. Called after a
4262
4662
  * programmatic re-layout (initial auto-arrange for module workflows, or the
@@ -4267,12 +4667,16 @@ declare class FlowCanvasComponent {
4267
4667
  suspendPositionSync(durationMs?: number): void;
4268
4668
  onFullRendered(): void;
4269
4669
  /**
4270
- * Defer a fit by two animation frames: the first lets Foblex finish
4271
- * measuring the freshly-rendered node rects, the second lets the workspace
4272
- * container reach its final size. Fitting against a zero-size/stale
4273
- * container lands the graph off-screen the "opened but saw nothing" bug.
4670
+ * Fit only after Foblex has registered the graph and the host has a stable,
4671
+ * measurable viewport. Opening a saved workflow can fire render events before
4672
+ * projected nodes have non-zero rects, and fitting at that moment leaves the
4673
+ * graph outside the visible canvas.
4274
4674
  */
4275
- private deferFit;
4675
+ private scheduleInitialFit;
4676
+ private runInitialFitAttempt;
4677
+ private clearInitialFitSchedule;
4678
+ private isCanvasReadyForInitialFit;
4679
+ private renderedCanvasItems;
4276
4680
  /**
4277
4681
  * Foblex re-fires `fNodesRendered` whenever the node set changes (e.g.
4278
4682
  * after the first trigger/step is created). We auto-fit ONCE when the
@@ -4366,16 +4770,15 @@ declare class FlowCanvasComponent {
4366
4770
  /** Public: flow-local position near the visible canvas center — used by the
4367
4771
  * page to place a palette-clicked step when there's no "+" context. */
4368
4772
  flowCenter(): IPoint;
4773
+ canShowEdgeQuickAdd(edge: FlowCanvasEdgeVm): boolean;
4369
4774
  /**
4370
4775
  * Edge midpoint plus was clicked. Compute a flow-local anchor at the
4371
- * geometric midpoint of the two endpoints so the picker pops at the
4372
- * edge, then open in `insert` mode.
4776
+ * geometric midpoint of the two endpoints so the palette-created step lands
4777
+ * on the edge, then open in `insert` mode.
4373
4778
  */
4374
- onEdgeMidpointPlus(args: {
4375
- connectionId: number;
4376
- sourceStepId: number;
4377
- targetStepId: number;
4378
- }): void;
4779
+ onEdgeQuickAdd(edge: FlowCanvasEdgeVm): void;
4780
+ private edgeMidpoint;
4781
+ private stepIdFromInputPort;
4379
4782
  /**
4380
4783
  * "+ Add first step" was clicked on the virtual trigger node. Open the
4381
4784
  * picker in `step` mode positioned to the right of the trigger card,
@@ -4564,6 +4967,8 @@ declare class WorkflowBuilderPageComponent implements OnDestroy {
4564
4967
  * inside the workspace — user wants that left panel untouched. */
4565
4968
  private inspectorModalRef;
4566
4969
  private workflowSettingsDrawerRef;
4970
+ private workflowVariablesDrawerRef;
4971
+ private executionFilesDrawerRef;
4567
4972
  private tempIdCounter;
4568
4973
  private nextTempId;
4569
4974
  /**
@@ -4607,6 +5012,12 @@ declare class WorkflowBuilderPageComponent implements OnDestroy {
4607
5012
  private closeInspectorModal;
4608
5013
  private openWorkflowSettingsDrawer;
4609
5014
  private closeWorkflowSettingsDrawer;
5015
+ onOpenWorkflowVariables(): void;
5016
+ private openWorkflowVariablesDrawer;
5017
+ private closeWorkflowVariablesDrawer;
5018
+ onOpenExecutionFiles(): void;
5019
+ private openExecutionFilesDrawer;
5020
+ private closeExecutionFilesDrawer;
4610
5021
  /**
4611
5022
  * A palette card was dropped on the canvas. Validates the catalog
4612
5023
  * payload (must be present, must have a step type, must be
@@ -4641,6 +5052,7 @@ declare class WorkflowBuilderPageComponent implements OnDestroy {
4641
5052
  private clearTransientAddIntent;
4642
5053
  private addFromPalette;
4643
5054
  private isCreatablePaletteItem;
5055
+ private canStartGraphMutation;
4644
5056
  private stepMetadataForCatalogItem;
4645
5057
  /**
4646
5058
  * Shared post-create handling for a new step: lock its position (so the
@@ -4658,9 +5070,9 @@ declare class WorkflowBuilderPageComponent implements OnDestroy {
4658
5070
  onConnectionReassign(event: ConnectionReassignEvent): void;
4659
5071
  /**
4660
5072
  * Foblex emits `fCreateConnection` with no `fInputId` when the user drops
4661
- * an unfinished connection in empty space. The canvas component opens its
4662
- * own quick-add popover at the drop position; we just track the intent
4663
- * here in case other consumers (telemetry, hints) need it.
5073
+ * an unfinished connection in empty space. The canvas routes the add intent
5074
+ * through `requestAddStep`, so this hook is kept only for compatibility with
5075
+ * older consumers.
4664
5076
  */
4665
5077
  onConnectionQuickAdd(_event: ConnectionQuickAddEvent): void;
4666
5078
  /**
@@ -4677,6 +5089,7 @@ declare class WorkflowBuilderPageComponent implements OnDestroy {
4677
5089
  * Any failure leaves the original edge intact (no data loss, no temp ids).
4678
5090
  */
4679
5091
  private insertStepOnEdge;
5092
+ private insertStepOnTriggerStart;
4680
5093
  /**
4681
5094
  * A node was dropped onto a connection (Foblex assign-on-drop). Rewiring an
4682
5095
  * existing route is a heavy graph mutation, so the insert is confirmed first.
@@ -4793,9 +5206,7 @@ declare class WorkflowBuilderPageComponent implements OnDestroy {
4793
5206
  * which deletes `A → B` only after `A → new` and `new → B` both persist.
4794
5207
  * If the user cancels or anything fails, `A → B` is left intact.
4795
5208
  */
4796
- onEdgeInsertStep(e: {
4797
- connectionId: number;
4798
- }): void;
5209
+ onEdgeInsertStep(e: EdgeInsertStepEvent): void;
4799
5210
  private pendingEdgeInsert;
4800
5211
  onEdgeRemove(e: {
4801
5212
  connectionId: number;
@@ -4849,9 +5260,11 @@ declare class AutomationExecutionsPageComponent {
4849
5260
  readonly retentionState: _angular_core.WritableSignal<LoadState>;
4850
5261
  readonly nodeDataState: _angular_core.WritableSignal<LoadState>;
4851
5262
  readonly timelineState: _angular_core.WritableSignal<LoadState>;
5263
+ readonly taskPayloadState: _angular_core.WritableSignal<LoadState>;
4852
5264
  readonly error: _angular_core.WritableSignal<string | null>;
4853
5265
  readonly healthError: _angular_core.WritableSignal<string | null>;
4854
5266
  readonly retentionError: _angular_core.WritableSignal<string | null>;
5267
+ readonly taskPayloadError: _angular_core.WritableSignal<string | null>;
4855
5268
  readonly statusFilter: _angular_core.WritableSignal<string>;
4856
5269
  readonly revisionFilter: _angular_core.WritableSignal<string>;
4857
5270
  readonly triggerTypeFilter: _angular_core.WritableSignal<string>;
@@ -4874,6 +5287,11 @@ declare class AutomationExecutionsPageComponent {
4874
5287
  readonly resumePayloadText: _angular_core.WritableSignal<string>;
4875
5288
  readonly approvalDecision: _angular_core.WritableSignal<string>;
4876
5289
  readonly approvalComments: _angular_core.WritableSignal<string>;
5290
+ readonly selectedTaskWaitId: _angular_core.WritableSignal<string | number | null>;
5291
+ readonly taskPayload: _angular_core.WritableSignal<HumanTaskPayloadResult | null>;
5292
+ readonly taskValuesText: _angular_core.WritableSignal<string>;
5293
+ readonly taskMetadataText: _angular_core.WritableSignal<string>;
5294
+ readonly taskCancelReason: _angular_core.WritableSignal<string>;
4877
5295
  readonly statusOptions: SelectOption[];
4878
5296
  readonly triggerTypeOptions: SelectOption[];
4879
5297
  readonly executionColumns: _angular_core.Signal<ColumnDef[]>;
@@ -4918,14 +5336,28 @@ declare class AutomationExecutionsPageComponent {
4918
5336
  cancel(): void;
4919
5337
  resume(wait: AutomationRuntimeWait): void;
4920
5338
  decide(wait: AutomationRuntimeWait): void;
5339
+ loadTask(wait: AutomationRuntimeWait): void;
5340
+ saveTaskDraft(wait: AutomationRuntimeWait): void;
5341
+ submitTask(wait: AutomationRuntimeWait): void;
5342
+ cancelTask(wait: AutomationRuntimeWait): void;
5343
+ taskPayloadFor(wait: AutomationRuntimeWait): HumanTaskPayloadResult | null;
5344
+ isHumanTaskWait(wait: AutomationRuntimeWait): boolean;
5345
+ isHumanApprovalWait(wait: AutomationRuntimeWait): boolean;
4921
5346
  dataPreview(value: unknown): string;
4922
5347
  nodeDataStateLabel(value: AutomationExecutionNodeDataDetail | null): string;
4923
5348
  nodeDataNotice(value: AutomationExecutionNodeDataDetail | null): string | null;
4924
5349
  advancedNodeRunSummary(node: AutomationNodeRun): string | null;
4925
5350
  advancedTimelineSummary(event: AutomationExecutionEvent): string | null;
5351
+ eventDisplayLabel(event: AutomationExecutionEvent): string;
5352
+ eventSummaryLine(event: AutomationExecutionEvent): string;
5353
+ eventToneClass(event: AutomationExecutionEvent): string;
5354
+ auditSummaryLines(value: unknown): string[];
4926
5355
  advancedNodeDataSummary(data: AutomationExecutionNodeDataDetail | null): string[];
4927
5356
  private afterOperation;
4928
5357
  private operationFailed;
5358
+ private withResumeToken;
5359
+ private nodeRunForWait;
5360
+ private resetTaskPayload;
4929
5361
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AutomationExecutionsPageComponent, never>;
4930
5362
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AutomationExecutionsPageComponent, "fp-automation-executions-page", never, {}, {}, never, never, true, never>;
4931
5363
  }
@@ -4994,16 +5426,21 @@ declare class PaletteDragSourceDirective {
4994
5426
 
4995
5427
  /** A top-level group row (n8n "What happens next?" level 1). */
4996
5428
  interface PaletteGroupVm {
4997
- category: string;
5429
+ key: PaletteGroupKey;
4998
5430
  label: string;
4999
5431
  description: string;
5000
- /** Icon + accent derived from a representative item, so any backend
5001
- * category string (e.g. "Workflow", "Parallel") always renders. */
5002
- icon: string;
5432
+ countLabel: string;
5433
+ previewLabel: string;
5434
+ visualKey: string;
5003
5435
  color: string;
5004
5436
  bg: string;
5005
5437
  items: WorkflowStepTypeCatalogItemDto[];
5006
5438
  }
5439
+ interface PaletteSectionVm {
5440
+ key: PaletteSectionKey;
5441
+ label: string;
5442
+ items: WorkflowStepTypeCatalogItemDto[];
5443
+ }
5007
5444
  /** Which screen of the two-level finder is showing. */
5008
5445
  type PaletteView = 'root' | 'category' | 'triggers';
5009
5446
  declare class PaletteComponent {
@@ -5021,16 +5458,23 @@ declare class PaletteComponent {
5021
5458
  addTrigger: EventEmitter<WorkflowCatalogOptionDto>;
5022
5459
  /** Add a sticky canvas note directly from the rail. */
5023
5460
  addNote: EventEmitter<void>;
5461
+ /** Open workflow-level variables in the dedicated left drawer. */
5462
+ openVariables: EventEmitter<void>;
5463
+ /** Open generated files from the latest loaded execution. */
5464
+ openExecutionFiles: EventEmitter<void>;
5024
5465
  searchModel: string;
5025
5466
  /** Two-level navigation state. */
5026
5467
  readonly view: _angular_core.WritableSignal<PaletteView>;
5027
- readonly activeCategory: _angular_core.WritableSignal<string | null>;
5468
+ readonly activeCategory: _angular_core.WritableSignal<PaletteGroupKey | null>;
5028
5469
  readonly isExpanded: _angular_core.Signal<boolean>;
5029
5470
  readonly searching: _angular_core.Signal<boolean>;
5471
+ readonly executionFileCount: _angular_core.Signal<number>;
5472
+ readonly executionFileBadge: _angular_core.Signal<string>;
5030
5473
  /** All creatable, supported step types grouped into level-1 categories. */
5031
5474
  readonly groups: _angular_core.Signal<PaletteGroupVm[]>;
5032
5475
  /** Items of the drilled-in category. */
5033
5476
  readonly activeItems: _angular_core.Signal<WorkflowStepTypeCatalogItemDto[]>;
5477
+ readonly activeSections: _angular_core.Signal<PaletteSectionVm[]>;
5034
5478
  /** Flat, cross-category results while a search term is present. */
5035
5479
  readonly searchResults: _angular_core.Signal<WorkflowStepTypeCatalogItemDto[]>;
5036
5480
  /** Trigger types for the "Add another trigger" section. */
@@ -5038,9 +5482,11 @@ declare class PaletteComponent {
5038
5482
  readonly visibleTriggerOptions: _angular_core.Signal<WorkflowCatalogOptionDto[]>;
5039
5483
  /** Header title for the current screen. */
5040
5484
  readonly headerTitle: _angular_core.Signal<string>;
5041
- openCategory(category: string): void;
5485
+ openCategory(category: PaletteGroupKey): void;
5042
5486
  openTriggers(): void;
5043
5487
  addCanvasNote(): void;
5488
+ openWorkflowVariables(): void;
5489
+ requestExecutionFiles(): void;
5044
5490
  back(): void;
5045
5491
  openDrawer(): void;
5046
5492
  closeDrawer(): void;
@@ -5048,25 +5494,25 @@ declare class PaletteComponent {
5048
5494
  pickStep(item: WorkflowStepTypeCatalogItemDto): void;
5049
5495
  pickTrigger(option: WorkflowCatalogOptionDto): void;
5050
5496
  resolve(v: unknown): string;
5051
- iconFor(item: WorkflowStepTypeCatalogItemDto): string;
5052
- severityFor(item: WorkflowStepTypeCatalogItemDto): AvatarSeverityVars;
5497
+ visualFor(item: WorkflowStepTypeCatalogItemDto): AutomationNodeVisual;
5498
+ itemDescription(item: WorkflowStepTypeCatalogItemDto): string;
5499
+ itemGroupLabel(item: WorkflowStepTypeCatalogItemDto): string;
5053
5500
  /** Distinct icon per trigger type (Manual / Webhook / Process). */
5054
- triggerIconFor(option: WorkflowCatalogOptionDto): string;
5501
+ triggerVisualFor(option: WorkflowCatalogOptionDto): AutomationNodeVisual;
5055
5502
  /** Trigger options intentionally share one gold accent so the trigger
5056
5503
  * add/execution affordance reads as one product concept. */
5057
- triggerOptionVars(_option: WorkflowCatalogOptionDto): AvatarSeverityVars;
5504
+ triggerOptionVars(option: WorkflowCatalogOptionDto): AutomationNodeVisual;
5058
5505
  /** Fixed trigger accent for the "Add another trigger" section row. */
5059
- triggerVars(): AvatarSeverityVars;
5506
+ triggerVars(): AutomationNodeVisual;
5060
5507
  paletteItemKey(item: WorkflowStepTypeCatalogItemDto, index: number): string;
5061
5508
  triggerPaletteItem(option: WorkflowCatalogOptionDto): WorkflowStepTypeCatalogItemDto;
5062
5509
  triggerPaletteItemKey(option: WorkflowCatalogOptionDto, index: number): string;
5510
+ triggerTypeFor(option: WorkflowCatalogOptionDto): string;
5063
5511
  private isCreatable;
5064
- private labelFor;
5065
- private categoryDesc;
5066
- private triggerTypeFor;
5512
+ private isVisibleInPalette;
5067
5513
  private t;
5068
5514
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<PaletteComponent, never>;
5069
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<PaletteComponent, "fp-palette", never, {}, { "closeRequested": "closeRequested"; "openRequested": "openRequested"; "add": "add"; "addTrigger": "addTrigger"; "addNote": "addNote"; }, never, never, true, never>;
5515
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<PaletteComponent, "fp-palette", never, {}, { "closeRequested": "closeRequested"; "openRequested": "openRequested"; "add": "add"; "addTrigger": "addTrigger"; "addNote": "addNote"; "openVariables": "openVariables"; "openExecutionFiles": "openExecutionFiles"; }, never, never, true, never>;
5070
5516
  }
5071
5517
 
5072
5518
  interface InspectorTab {
@@ -5120,21 +5566,94 @@ declare class InspectorShellComponent {
5120
5566
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<InspectorShellComponent, "fp-inspector-shell", never, { "mode": { "alias": "mode"; "required": false; "isSignal": true; }; }, { "stepChange": "stepChange"; "connectionChange": "connectionChange"; "workflowChange": "workflowChange"; "closeRequested": "closeRequested"; }, never, never, true, never>;
5121
5567
  }
5122
5568
 
5569
+ interface WorkflowDiagnosticsTestRunSnapshot {
5570
+ workflowId: number;
5571
+ request: WorkflowTestRunRequest | null;
5572
+ triggerKey: string | null;
5573
+ run: AutomationRunResult | null;
5574
+ executionDetail: AutomationExecutionDetail | null;
5575
+ result: WorkflowTestRunResultDto;
5576
+ }
5577
+ interface WorkflowDiagnosticsErrorSnapshot {
5578
+ workflowId: number;
5579
+ request: WorkflowTestRunRequest | null;
5580
+ triggerKey: string | null;
5581
+ error: Record<string, unknown> | string | null;
5582
+ }
5583
+
5123
5584
  type BottomTabOption = Pick<OptionItem, 'label' | 'value' | 'badge' | 'icon' | 'severity'>;
5124
- interface ContextSourceRowVm {
5585
+ type RawDebugTab = 'graph' | 'selection' | 'validation' | 'runtime' | 'apiError';
5586
+ interface ContextExplorerRowVm {
5125
5587
  key: string;
5588
+ path: string;
5589
+ expression: string;
5590
+ label: string;
5591
+ type: string;
5592
+ sourceType: string;
5593
+ sourceLabel: string;
5594
+ description: string | null;
5595
+ depth: number;
5596
+ isSecret: boolean;
5597
+ isWritable: boolean;
5598
+ isUnavailable: boolean;
5599
+ isNested: boolean;
5600
+ preview: string | null;
5126
5601
  source: WorkflowContextCatalogSourceDto;
5127
5602
  }
5603
+ interface ContextGroupVm {
5604
+ key: string;
5605
+ title: string;
5606
+ description: string;
5607
+ icon: MTIcon;
5608
+ rows: ContextExplorerRowVm[];
5609
+ }
5610
+ interface RawGraphScopeOption {
5611
+ label: string;
5612
+ value: string;
5613
+ }
5614
+ interface TriggerGraphScopeVm {
5615
+ trigger: WorkflowTriggerDto;
5616
+ triggerVm: TriggerNodeVm | null;
5617
+ triggerKey: string | null;
5618
+ label: string;
5619
+ startStep: WorkflowStepDto | null;
5620
+ nodes: WorkflowStepDto[];
5621
+ routes: WorkflowConnectionDto[];
5622
+ variables: WorkflowVariableDto[];
5623
+ resources: WorkflowResourceBindingDto[];
5624
+ validationIssues: WorkflowValidationIssueDto[];
5625
+ nodeIds: Set<number>;
5626
+ nodeKeys: Set<string>;
5627
+ routeIds: Set<number>;
5628
+ }
5128
5629
  declare class BottomPanelComponent {
5129
5630
  readonly store: FlowplusWorkflowFacade;
5631
+ private readonly elementRef;
5632
+ private readonly document;
5633
+ private readonly destroyRef;
5130
5634
  private readonly transloco;
5131
5635
  private readonly diagnostics;
5132
5636
  private readonly nav;
5133
- private readonly contextPathTpl;
5134
- private readonly contextTypeTpl;
5135
- private readonly contextSourceTpl;
5136
- private readonly contextAvailabilityTpl;
5137
5637
  focus: EventEmitter<WorkflowValidationIssueDto>;
5638
+ readonly rawTab: _angular_core.WritableSignal<RawDebugTab>;
5639
+ readonly rawFullPayload: _angular_core.WritableSignal<boolean>;
5640
+ readonly rawGraphScope: _angular_core.WritableSignal<string>;
5641
+ readonly copiedKey: _angular_core.WritableSignal<string | null>;
5642
+ readonly resizing: _angular_core.WritableSignal<boolean>;
5643
+ readonly draftPanelHeightPx: _angular_core.WritableSignal<number | null>;
5644
+ readonly maxPanelHeightPx: _angular_core.WritableSignal<number>;
5645
+ readonly minPanelHeightPx = 40;
5646
+ readonly hasRuntimeOverlay: _angular_core.Signal<boolean>;
5647
+ readonly canOpenRuns: _angular_core.Signal<boolean>;
5648
+ readonly showBottomToolbarActions: _angular_core.Signal<boolean>;
5649
+ private readonly contextLabelCellTpl;
5650
+ private readonly contextExpressionCellTpl;
5651
+ private readonly contextSampleCellTpl;
5652
+ private readonly contextSourceCellTpl;
5653
+ private panelResizeStart;
5654
+ private removePanelResizeListeners;
5655
+ constructor();
5656
+ readonly panelHeightPx: _angular_core.Signal<number>;
5138
5657
  tab(): string;
5139
5658
  /**
5140
5659
  * Tab change is the primary way to *open* the bottom drawer: clicking
@@ -5142,21 +5661,619 @@ declare class BottomPanelComponent {
5142
5661
  * the drawer. Keeps interaction premium / one-click.
5143
5662
  */
5144
5663
  onTabChange(tab: 'problems' | 'testRun' | 'context' | 'logs' | 'raw' | string): void;
5664
+ onResizeHandlePointerDown(event: PointerEvent): void;
5665
+ onResizeHandleKeydown(event: KeyboardEvent): void;
5666
+ resetPanelHeight(): void;
5145
5667
  readonly tabOptions: _angular_core.Signal<BottomTabOption[]>;
5146
- readonly contextRows: _angular_core.Signal<ContextSourceRowVm[]>;
5668
+ readonly contextRows: _angular_core.Signal<ContextExplorerRowVm[]>;
5669
+ readonly contextGroups: _angular_core.Signal<ContextGroupVm[]>;
5147
5670
  readonly contextColumns: _angular_core.Signal<ColumnDef[]>;
5671
+ readonly contextRowActions: _angular_core.Signal<TableAction[]>;
5672
+ readonly rawTabOptions: _angular_core.Signal<OptionItem[]>;
5673
+ readonly rawGraphScopeOptions: _angular_core.Signal<RawGraphScopeOption[]>;
5674
+ readonly rawGraphScopeValue: _angular_core.Signal<string>;
5675
+ readonly rawGraphTriggerScope: _angular_core.Signal<TriggerGraphScopeVm | null>;
5676
+ readonly rawGraphScopeSummary: _angular_core.Signal<string>;
5677
+ readonly rawPayloadDescription: _angular_core.Signal<string>;
5678
+ readonly rawCopyLabel: _angular_core.Signal<"Copied" | "Copy execution debug" | "Copy JSON">;
5679
+ readonly rawPayload: _angular_core.Signal<{
5680
+ kind: string;
5681
+ dto: WorkflowTriggerDto | null;
5682
+ } | {
5683
+ kind: string;
5684
+ dto: WorkflowStepDto | null;
5685
+ } | {
5686
+ kind: string;
5687
+ dto: WorkflowConnectionDto | null;
5688
+ } | {
5689
+ kind: string;
5690
+ dto: CanvasNoteVm | null;
5691
+ } | {
5692
+ kind: string;
5693
+ dto: _masterteam_flowplus_workflow.WorkflowDefinitionDto | null;
5694
+ } | {
5695
+ scope: string;
5696
+ note: string;
5697
+ kind: string;
5698
+ selected: {
5699
+ id: {} | null;
5700
+ key: {} | null;
5701
+ type: {} | null;
5702
+ name: string | null;
5703
+ dtoKeys: string[];
5704
+ } | null;
5705
+ } | {
5706
+ scope: string;
5707
+ isValid: boolean | null;
5708
+ canPublish: boolean | null;
5709
+ summary: {
5710
+ issues: number;
5711
+ errors: number;
5712
+ warnings: number;
5713
+ publishBlockers: number;
5714
+ };
5715
+ issues: {
5716
+ severity: string;
5717
+ code: string;
5718
+ targetType: string;
5719
+ targetKey: string | number | null;
5720
+ field: string | null;
5721
+ message: string;
5722
+ blocksPublish: boolean;
5723
+ }[];
5724
+ } | {
5725
+ scope: string;
5726
+ note: string;
5727
+ howToUse: string;
5728
+ selectedTrigger: {
5729
+ id: number | null;
5730
+ key: string | null;
5731
+ };
5732
+ activeExecutionId: string | number | null;
5733
+ selectedExecutionId: string | number | null;
5734
+ status: string | null;
5735
+ running: boolean;
5736
+ accepted: boolean;
5737
+ error: string | null;
5738
+ rawError: unknown;
5739
+ lastAcceptedRun: {
5740
+ executionId: string | number;
5741
+ status: string;
5742
+ correlationId: string | null;
5743
+ queuedNodes: {
5744
+ nodeRunId: string | number | null;
5745
+ nodeKey: string | null;
5746
+ nodeType: string | null;
5747
+ status: string | null;
5748
+ routeOutputKey: string | null;
5749
+ }[];
5750
+ } | null;
5751
+ latestLoadedExecution: {
5752
+ executionId: string | number;
5753
+ automationId: string | number;
5754
+ automationRevisionId: string | number | null;
5755
+ automationName: string | null;
5756
+ revisionNumber: number | null;
5757
+ status: string;
5758
+ correlationId: string | null;
5759
+ triggerKey: string | null;
5760
+ triggerType: string | null;
5761
+ triggerSummary: unknown;
5762
+ startedAtUtc: string | null;
5763
+ completedAtUtc: string | null;
5764
+ durationMs: number | null;
5765
+ failedNode: unknown;
5766
+ waitingNode: unknown;
5767
+ problemNodes: {
5768
+ nodeRunId: string | number;
5769
+ nodeKey: string;
5770
+ nodeType: string;
5771
+ status: string;
5772
+ error: string | null;
5773
+ waitReason: string | null;
5774
+ startedAtUtc: string | null;
5775
+ completedAtUtc: string | null;
5776
+ attempts: {
5777
+ attemptId: string | number | null;
5778
+ attemptNumber: number | null;
5779
+ status: string;
5780
+ startedAtUtc: string | null;
5781
+ completedAtUtc: string | null;
5782
+ durationMs: number | null;
5783
+ workerId: string | null;
5784
+ externalCallCount: number | null;
5785
+ errorMessage: string | null;
5786
+ errorJson: unknown;
5787
+ logsRef: string | null;
5788
+ }[];
5789
+ }[];
5790
+ waitingNodes: {
5791
+ nodeRunId: string | number;
5792
+ nodeKey: string;
5793
+ nodeType: string;
5794
+ status: string;
5795
+ waitUntilUtc: string | null;
5796
+ waitReason: string | null;
5797
+ }[];
5798
+ nodeRuns: {
5799
+ nodeRunId: string | number;
5800
+ nodeKey: string;
5801
+ nodeType: string;
5802
+ status: string;
5803
+ inputDataRef: string | null;
5804
+ outputDataRef: string | null;
5805
+ queuedAtUtc: string | null;
5806
+ runAfterUtc: string | null;
5807
+ startedAtUtc: string | null;
5808
+ completedAtUtc: string | null;
5809
+ waitUntilUtc: string | null;
5810
+ attemptCount: number | null;
5811
+ maxAttempts: number | null;
5812
+ waitReason: string | null;
5813
+ error: string | null;
5814
+ }[];
5815
+ waits: {
5816
+ runtimeWaitId: string | number;
5817
+ nodeRunId: string | number | null;
5818
+ nodeKey: string | null;
5819
+ waitType: string;
5820
+ status: string;
5821
+ waitReason: string | null;
5822
+ resumeToken: string | null;
5823
+ createdAtUtc: string | null;
5824
+ expiresAtUtc: string | null;
5825
+ dueDateUtc: string | null;
5826
+ metadata: unknown;
5827
+ }[];
5828
+ timeline: {
5829
+ eventId: string | number;
5830
+ eventType: string;
5831
+ severity: string;
5832
+ occurredAtUtc: string;
5833
+ nodeRunId: string | number | null;
5834
+ nodeAttemptId: string | number | null;
5835
+ nodeKey: string | null;
5836
+ correlationId: string | null;
5837
+ data: unknown;
5838
+ }[];
5839
+ eventCount: number;
5840
+ waitCount: number;
5841
+ auditCounts: {
5842
+ externalCalls: number;
5843
+ flowPlusCommits: number;
5844
+ approvals: number;
5845
+ };
5846
+ samples: {
5847
+ externalCallAudits: unknown;
5848
+ flowPlusCommitAudits: unknown;
5849
+ approvalDecisions: unknown;
5850
+ };
5851
+ detailLoaded?: undefined;
5852
+ } | {
5853
+ executionId: string | number;
5854
+ status: string;
5855
+ correlationId: string | null;
5856
+ triggerKey: string | null;
5857
+ triggerType: string | null;
5858
+ startedAtUtc: string | null;
5859
+ completedAtUtc: string | null;
5860
+ durationMs: number | null;
5861
+ failedNode: unknown;
5862
+ waitingNode: unknown;
5863
+ detailLoaded: boolean;
5864
+ automationId?: undefined;
5865
+ automationRevisionId?: undefined;
5866
+ automationName?: undefined;
5867
+ revisionNumber?: undefined;
5868
+ triggerSummary?: undefined;
5869
+ problemNodes?: undefined;
5870
+ waitingNodes?: undefined;
5871
+ nodeRuns?: undefined;
5872
+ waits?: undefined;
5873
+ timeline?: undefined;
5874
+ eventCount?: undefined;
5875
+ waitCount?: undefined;
5876
+ auditCounts?: undefined;
5877
+ samples?: undefined;
5878
+ } | null;
5879
+ overlayCounts: {
5880
+ triggers: number;
5881
+ nodes: number;
5882
+ routes: number;
5883
+ };
5884
+ runtimeOverlay: {
5885
+ triggerStatesByKey: unknown;
5886
+ nodeStatesByKey: unknown;
5887
+ routeStatesByKey: unknown;
5888
+ };
5889
+ } | {
5890
+ scope: string;
5891
+ stateErrorKeys: string[];
5892
+ stateErrors: {
5893
+ [k: string]: unknown;
5894
+ };
5895
+ runtime: {
5896
+ message: string | null;
5897
+ rawError: unknown;
5898
+ };
5899
+ lastTestRunError: unknown;
5900
+ } | {
5901
+ scope: string;
5902
+ note: string;
5903
+ selectedTrigger: {
5904
+ id: number;
5905
+ key: string | null;
5906
+ type: string;
5907
+ rawType: string;
5908
+ name: string;
5909
+ enabled: boolean;
5910
+ startStepId: number | null;
5911
+ startNodeKey: string | null;
5912
+ canExecute: boolean | null;
5913
+ issueCount: number;
5914
+ };
5915
+ trigger: WorkflowTriggerDto;
5916
+ triggerVm: TriggerNodeVm | null;
5917
+ startStep: WorkflowStepDto | null;
5918
+ steps: WorkflowStepDto[];
5919
+ connections: WorkflowConnectionDto[];
5920
+ variables: WorkflowVariableDto[];
5921
+ resources: WorkflowResourceBindingDto[];
5922
+ validationIssues: WorkflowValidationIssueDto[];
5923
+ omittedGraphCounts: {
5924
+ triggers: number;
5925
+ nodes: number;
5926
+ routes: number;
5927
+ variables: number;
5928
+ resources: number;
5929
+ };
5930
+ workflow?: undefined;
5931
+ triggers?: undefined;
5932
+ layout?: undefined;
5933
+ contextCatalog?: undefined;
5934
+ automationDetail?: undefined;
5935
+ builderCatalog?: undefined;
5936
+ expressionNamespaces?: undefined;
5937
+ } | {
5938
+ workflow: _masterteam_flowplus_workflow.WorkflowDefinitionDto | null;
5939
+ triggers: WorkflowTriggerDto[];
5940
+ steps: WorkflowStepDto[];
5941
+ connections: WorkflowConnectionDto[];
5942
+ variables: WorkflowVariableDto[];
5943
+ resources: WorkflowResourceBindingDto[];
5944
+ layout: _masterteam_flowplus_workflow.WorkflowLayoutDto | null;
5945
+ contextCatalog: _masterteam_flowplus_workflow.WorkflowContextCatalogDto | null;
5946
+ automationDetail: _masterteam_flowplus_workflow.AutomationFrontendDetail | null;
5947
+ builderCatalog: _masterteam_flowplus_workflow.AutomationBuilderCatalog | null;
5948
+ expressionNamespaces: _masterteam_flowplus_workflow.ExpressionNamespaceDescriptor[] | null;
5949
+ scope?: undefined;
5950
+ note?: undefined;
5951
+ selectedTrigger?: undefined;
5952
+ trigger?: undefined;
5953
+ triggerVm?: undefined;
5954
+ startStep?: undefined;
5955
+ validationIssues?: undefined;
5956
+ omittedGraphCounts?: undefined;
5957
+ } | {
5958
+ scope: string;
5959
+ note: string;
5960
+ selectedTrigger: {
5961
+ id: number;
5962
+ key: string | null;
5963
+ type: string;
5964
+ rawType: string;
5965
+ name: string;
5966
+ enabled: boolean;
5967
+ startStepId: number | null;
5968
+ startNodeKey: string | null;
5969
+ canExecute: boolean | null;
5970
+ issueCount: number;
5971
+ };
5972
+ startStep: {
5973
+ id: number;
5974
+ key: string;
5975
+ type: string;
5976
+ name: string;
5977
+ } | null;
5978
+ counts: {
5979
+ nodes: number;
5980
+ routes: number;
5981
+ variables: number;
5982
+ resources: number;
5983
+ validationIssues: number;
5984
+ omittedNodes: number;
5985
+ omittedRoutes: number;
5986
+ triggers?: undefined;
5987
+ contextSources?: undefined;
5988
+ };
5989
+ triggerConfiguration: {
5990
+ id: number;
5991
+ workflowId: number;
5992
+ type: string;
5993
+ rawType: string;
5994
+ key: string | null;
5995
+ name: string;
5996
+ enabled: boolean;
5997
+ expectedHttpMethod: string | null;
5998
+ targetProcessSchemaId: number | null;
5999
+ targetProcessSchemaName: string | null;
6000
+ allowedContentTypes: string[];
6001
+ payloadSchema: unknown;
6002
+ examplePayload: unknown;
6003
+ initiationPropertyMappings: unknown;
6004
+ config: unknown;
6005
+ authenticationPolicy: unknown;
6006
+ metadata: unknown;
6007
+ secretConfigured: boolean | null;
6008
+ };
6009
+ nodes: {
6010
+ id: number;
6011
+ key: string;
6012
+ type: string;
6013
+ typeKey: string | null;
6014
+ name: string;
6015
+ description: string | null;
6016
+ isInitial: boolean;
6017
+ isSystem: boolean;
6018
+ isLocked: boolean;
6019
+ targetType: string | null;
6020
+ targetValue: string | null;
6021
+ groupSelection: string | null;
6022
+ slaHours: number | null;
6023
+ validationState: string | _masterteam_flowplus_workflow.WorkflowValidationStateDto | null;
6024
+ actions: unknown;
6025
+ properties: unknown;
6026
+ automated: unknown;
6027
+ plugin: unknown;
6028
+ appAction: unknown;
6029
+ subprocess: unknown;
6030
+ startParallel: unknown;
6031
+ joinParallel: unknown;
6032
+ formBindingMode: string | null;
6033
+ metadata: unknown;
6034
+ }[];
6035
+ routes: {
6036
+ id: number;
6037
+ sourceStepId: number;
6038
+ targetStepId: number;
6039
+ sourceStepKey: string | null;
6040
+ targetStepKey: string | null;
6041
+ sourceNodeName: string | null;
6042
+ targetNodeName: string | null;
6043
+ sourcePortKey: string | null;
6044
+ targetPortKey: string | null;
6045
+ priority: number;
6046
+ label: string;
6047
+ condition: unknown;
6048
+ selectedActions: unknown;
6049
+ validationState: string | _masterteam_flowplus_workflow.WorkflowValidationStateDto | null;
6050
+ metadata: unknown;
6051
+ }[];
6052
+ variables: {
6053
+ id: number | null;
6054
+ key: string;
6055
+ mappingKey: string | null;
6056
+ type: string;
6057
+ source: string | null;
6058
+ stepKey: string | null;
6059
+ isSecret: boolean;
6060
+ isWritable: boolean;
6061
+ metadata: unknown;
6062
+ }[];
6063
+ resources: {
6064
+ key: string | null;
6065
+ entityType: string | null;
6066
+ entityId: number | null;
6067
+ required: boolean;
6068
+ metadata: unknown;
6069
+ }[];
6070
+ validationIssues: {
6071
+ severity: string;
6072
+ code: string;
6073
+ targetType: string;
6074
+ targetKey: string | number | null;
6075
+ field: string | null;
6076
+ message: string;
6077
+ suggestedAction: string;
6078
+ blocksPublish: boolean;
6079
+ }[];
6080
+ runtime: {
6081
+ activeExecutionId: string | number | null;
6082
+ latestLoadedExecutionId: string | number | null;
6083
+ status: string | null;
6084
+ running: boolean;
6085
+ accepted: boolean;
6086
+ scopedNodeOverlay: {
6087
+ [k: string]: _masterteam_flowplus_workflow.FlowplusRuntimeNodeState;
6088
+ };
6089
+ scopedRouteOverlay: {
6090
+ [k: string]: _masterteam_flowplus_workflow.FlowplusRuntimeRouteState;
6091
+ };
6092
+ };
6093
+ workflow?: undefined;
6094
+ triggers?: undefined;
6095
+ validation?: undefined;
6096
+ } | {
6097
+ scope: string;
6098
+ note: string;
6099
+ workflow: {
6100
+ id: number;
6101
+ name: string;
6102
+ status: string;
6103
+ isPublished: boolean;
6104
+ isValid: boolean;
6105
+ version: number | null | undefined;
6106
+ publishedVersion: number | null | undefined;
6107
+ hasUnpublishedChanges: boolean | null | undefined;
6108
+ lastExecutionStatus: string | null | undefined;
6109
+ lastExecutionAt: string | null | undefined;
6110
+ } | null;
6111
+ counts: {
6112
+ triggers: number;
6113
+ nodes: number;
6114
+ routes: number;
6115
+ variables: number;
6116
+ resources: number;
6117
+ contextSources: number;
6118
+ validationIssues: number;
6119
+ omittedNodes?: undefined;
6120
+ omittedRoutes?: undefined;
6121
+ };
6122
+ triggers: {
6123
+ id: number;
6124
+ key: string | null;
6125
+ type: string;
6126
+ name: string;
6127
+ enabled: boolean;
6128
+ hasPayloadSchema: boolean;
6129
+ secretConfigured: boolean | null;
6130
+ }[];
6131
+ nodes: {
6132
+ id: number;
6133
+ key: string;
6134
+ type: string;
6135
+ typeKey: string | null;
6136
+ name: string;
6137
+ isInitial: boolean;
6138
+ validationState: string | _masterteam_flowplus_workflow.WorkflowValidationStateDto | null;
6139
+ }[];
6140
+ routes: {
6141
+ id: number;
6142
+ sourceStepId: number;
6143
+ targetStepId: number;
6144
+ sourceStepKey: string | null;
6145
+ targetStepKey: string | null;
6146
+ sourcePortKey: string | null;
6147
+ targetPortKey: string | null;
6148
+ priority: number;
6149
+ hasCondition: boolean;
6150
+ selectedActionCount: number;
6151
+ }[];
6152
+ variables: {
6153
+ id: number | null;
6154
+ key: string;
6155
+ mappingKey: string | null;
6156
+ type: string;
6157
+ source: string | null;
6158
+ stepKey: string | null;
6159
+ isSecret: boolean;
6160
+ isWritable: boolean;
6161
+ }[];
6162
+ resources: {
6163
+ key: string | null;
6164
+ entityType: string | null;
6165
+ entityId: number | null;
6166
+ required: boolean;
6167
+ }[];
6168
+ validation: {
6169
+ isValid: boolean | null;
6170
+ canPublish: boolean | null;
6171
+ errors: number;
6172
+ warnings: number;
6173
+ issues: number;
6174
+ };
6175
+ runtime: {
6176
+ activeExecutionId: string | number | null;
6177
+ latestLoadedExecutionId: string | number | null;
6178
+ status: string | null;
6179
+ running: boolean;
6180
+ accepted: boolean;
6181
+ scopedNodeOverlay?: undefined;
6182
+ scopedRouteOverlay?: undefined;
6183
+ };
6184
+ selectedTrigger?: undefined;
6185
+ startStep?: undefined;
6186
+ triggerConfiguration?: undefined;
6187
+ validationIssues?: undefined;
6188
+ } | {
6189
+ validation: _masterteam_flowplus_workflow.WorkflowValidationResultDto | null;
6190
+ groups: _masterteam_flowplus_workflow.WorkflowValidationGroupedIssuesDto | null;
6191
+ raw: {} | null;
6192
+ runtime?: undefined;
6193
+ detail?: undefined;
6194
+ status?: undefined;
6195
+ error?: undefined;
6196
+ diagnosticsLastTestRun?: undefined;
6197
+ stateErrors?: undefined;
6198
+ runtimeError?: undefined;
6199
+ runtimeMessage?: undefined;
6200
+ lastTestRunError?: undefined;
6201
+ } | {
6202
+ runtime: _masterteam_flowplus_workflow.FlowplusExecutionRuntimeSlice;
6203
+ detail: _masterteam_flowplus_workflow.AutomationExecutionDetail | null;
6204
+ status: string | null;
6205
+ error: string | null;
6206
+ diagnosticsLastTestRun: WorkflowDiagnosticsTestRunSnapshot | null;
6207
+ validation?: undefined;
6208
+ groups?: undefined;
6209
+ raw?: undefined;
6210
+ stateErrors?: undefined;
6211
+ runtimeError?: undefined;
6212
+ runtimeMessage?: undefined;
6213
+ lastTestRunError?: undefined;
6214
+ } | {
6215
+ stateErrors: Partial<Record<_masterteam_flowplus_workflow.FlowplusWorkflowActionKey, string>>;
6216
+ runtimeError: string | Record<string, unknown> | null;
6217
+ runtimeMessage: string | null;
6218
+ lastTestRunError: WorkflowDiagnosticsErrorSnapshot | null;
6219
+ validation?: undefined;
6220
+ groups?: undefined;
6221
+ raw?: undefined;
6222
+ runtime?: undefined;
6223
+ detail?: undefined;
6224
+ status?: undefined;
6225
+ error?: undefined;
6226
+ diagnosticsLastTestRun?: undefined;
6227
+ }>;
5148
6228
  issueCount(): number;
5149
6229
  issueIcon(): MTIcon;
5150
6230
  issueSeverity(): BottomTabOption['severity'];
5151
6231
  runtimeSeverity(): BottomTabOption['severity'];
5152
- private validationIssues;
5153
6232
  refreshRuntimeOverlay(): void;
5154
6233
  clearReplay(): void;
5155
6234
  openRuns(): void;
5156
6235
  openCurrentRun(): void;
5157
- contextJson(): string;
5158
- contextSources(): WorkflowContextCatalogSourceDto[];
6236
+ ensureContextCatalog(): void;
6237
+ reloadContextCatalog(): void;
6238
+ openRunPreviewFromContext(): void;
6239
+ setRawTab(tab: RawDebugTab | string): void;
6240
+ setRawGraphScope(value: string | number | null): void;
6241
+ toggleRawPayloadMode(): void;
5159
6242
  rawJson(): string;
6243
+ rawRuntimeEmpty(): boolean;
6244
+ copyRaw(): void;
6245
+ copyContext(row: ContextExplorerRowVm): void;
6246
+ contextStatusLabel(row: ContextExplorerRowVm): string;
6247
+ contextStatusTone(row: ContextExplorerRowVm): string;
6248
+ contextSourceTitle(row: ContextExplorerRowVm): string;
6249
+ copied(key: string): boolean;
6250
+ contextSources(): WorkflowContextCatalogSourceDto[];
6251
+ cleanTriggerLabel(trigger: TriggerNodeVm): string;
6252
+ triggerTypeLabel(triggerType: string | null | undefined): string;
6253
+ private validationIssues;
6254
+ private rawApiErrorPayload;
6255
+ private fullGraphPayload;
6256
+ private compactGraphPayload;
6257
+ private buildTriggerGraphScope;
6258
+ private rawGraphScopeTriggerId;
6259
+ private compactTrigger;
6260
+ private compactTriggerConfiguration;
6261
+ private compactStepConfiguration;
6262
+ private compactRouteConfiguration;
6263
+ private compactValidationIssue;
6264
+ private issueBelongsToTriggerScope;
6265
+ private compactSelectionPayload;
6266
+ private compactValidationPayload;
6267
+ private compactRuntimePayload;
6268
+ private compactApiErrorPayload;
6269
+ private copyText;
6270
+ private onPanelResizePointerMove;
6271
+ private stopPanelResize;
6272
+ private setPanelHeight;
6273
+ private commitPanelHeight;
6274
+ private syncPanelBounds;
6275
+ private refreshPanelBounds;
6276
+ private clampPanelHeight;
5160
6277
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BottomPanelComponent, never>;
5161
6278
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<BottomPanelComponent, "fp-bottom-panel", never, {}, { "focus": "focus"; }, never, never, true, never>;
5162
6279
  }
@@ -5195,16 +6312,53 @@ declare class BuilderTopbarComponent {
5195
6312
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<BuilderTopbarComponent, "fp-builder-topbar", never, {}, { "validate": "validate"; "testRun": "testRun"; "publish": "publish"; "unpublish": "unpublish"; "openSettings": "openSettings"; "toggleNodeFinder": "toggleNodeFinder"; }, never, never, true, never>;
5196
6313
  }
5197
6314
 
6315
+ type PickerAvailability = 'available' | 'schema-only' | 'masked' | 'forbidden' | 'pruned' | 'unavailable';
6316
+ type PickerSource = 'workflowVariables' | 'variables' | 'trigger' | 'currentItem' | 'context' | 'node' | 'execution';
6317
+ interface PickerTreeNode {
6318
+ id: string;
6319
+ label: string;
6320
+ path: string;
6321
+ rawExpression: string;
6322
+ expression: string;
6323
+ type: string;
6324
+ source: PickerSource;
6325
+ availability: PickerAvailability;
6326
+ description: string | null;
6327
+ valuePreview: string | null;
6328
+ children: PickerTreeNode[];
6329
+ }
6330
+ interface PickerTreeGroup {
6331
+ id: PickerSource;
6332
+ label: string;
6333
+ children: PickerTreeNode[];
6334
+ }
6335
+
5198
6336
  declare class ContextPickerComponent {
5199
6337
  private readonly store;
5200
6338
  private readonly transloco;
5201
6339
  insert: EventEmitter<string>;
5202
6340
  search: string;
5203
- readonly groupedSources: _angular_core.Signal<{
5204
- key: string;
5205
- items: WorkflowContextCatalogSourceDto[];
5206
- }[]>;
5207
- groupLabel(key: string): string;
6341
+ readonly collapsedNodeIds: _angular_core.WritableSignal<Set<string>>;
6342
+ readonly copiedNodeId: _angular_core.WritableSignal<string | null>;
6343
+ readonly loading: _angular_core.Signal<boolean>;
6344
+ readonly error: _angular_core.Signal<string | null>;
6345
+ readonly pickerGroups: _angular_core.Signal<PickerTreeGroup[]>;
6346
+ readonly filteredGroups: _angular_core.Signal<PickerTreeGroup[]>;
6347
+ private userFacingContextNodes;
6348
+ onNodePrimary(node: PickerTreeNode, event: Event): void;
6349
+ toggleNode(node: PickerTreeNode): void;
6350
+ toggleNodeFromEvent(node: PickerTreeNode, event: Event): void;
6351
+ isNodeExpanded(node: PickerTreeNode): boolean;
6352
+ nodeStatus(node: PickerTreeNode): string;
6353
+ sourceLabel(node: PickerTreeNode): string;
6354
+ sourceIcon(source: PickerSource): MTIcon;
6355
+ availabilityLabel(node: PickerTreeNode): string;
6356
+ availabilityClass(node: PickerTreeNode): string;
6357
+ nodeTooltip(node: PickerTreeNode): string;
6358
+ copyNode(node: PickerTreeNode, event: Event): void;
6359
+ reloadContext(): void;
6360
+ private selectedStep;
6361
+ private selectedTrigger;
5208
6362
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ContextPickerComponent, never>;
5209
6363
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ContextPickerComponent, "fp-context-picker", never, {}, { "insert": "insert"; }, never, never, true, never>;
5210
6364
  }
@@ -5241,6 +6395,8 @@ interface ValidationIssueRowVm {
5241
6395
  message: string;
5242
6396
  target: string;
5243
6397
  code: string;
6398
+ impact: string;
6399
+ suggestedFix: string | null;
5244
6400
  status: {
5245
6401
  key: string;
5246
6402
  display: string;
@@ -5272,6 +6428,8 @@ declare class ProblemsPanelComponent {
5272
6428
  groupSeverity(group: ValidationGroupVm): ProblemTabSeverity;
5273
6429
  message(i: WorkflowValidationIssueDto): string;
5274
6430
  targetLabel(i: WorkflowValidationIssueDto): string;
6431
+ impactLabel(i: WorkflowValidationIssueDto): string;
6432
+ suggestedFix(i: WorkflowValidationIssueDto): string | null;
5275
6433
  detailValue(value: unknown): string;
5276
6434
  private group;
5277
6435
  private statusValue;
@@ -5279,49 +6437,163 @@ declare class ProblemsPanelComponent {
5279
6437
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ProblemsPanelComponent, "fp-problems-panel", never, {}, { "focus": "focus"; }, never, never, true, never>;
5280
6438
  }
5281
6439
 
6440
+ interface AutomationFileResultVm {
6441
+ key: string;
6442
+ fileRef: string | null;
6443
+ dataRef: string | null;
6444
+ fileName: string;
6445
+ extension: string | null;
6446
+ contentType: string | null;
6447
+ sizeBytes: number | null;
6448
+ sizeLabel: string | null;
6449
+ checksum: string | null;
6450
+ hash: string | null;
6451
+ previewText: string | null;
6452
+ previewTruncated: boolean;
6453
+ createdAtUtc: string | null;
6454
+ visualKey: string;
6455
+ canInspect: boolean;
6456
+ canDownload: boolean;
6457
+ }
6458
+
6459
+ interface AutomationCreatedFileVm extends AutomationFileResultVm {
6460
+ nodeRunId: string | null;
6461
+ nodeKey: string | null;
6462
+ nodeLabel: string;
6463
+ downloadUrl: string | null;
6464
+ }
6465
+ interface AutomationCreatedFileGroupVm {
6466
+ key: string;
6467
+ nodeLabel: string;
6468
+ nodeKey: string | null;
6469
+ files: AutomationCreatedFileVm[];
6470
+ }
6471
+ interface AutomationFileNodeRunGapVm {
6472
+ key: string;
6473
+ nodeKey: string;
6474
+ nodeLabel: string;
6475
+ kind: 'notRun' | 'missingFileResult';
6476
+ message: string;
6477
+ nodeRunId: string | null;
6478
+ }
6479
+
6480
+ interface SchemaFieldVm {
6481
+ key: string;
6482
+ label: string;
6483
+ type: 'string' | 'number' | 'boolean' | 'object' | 'array';
6484
+ required: boolean;
6485
+ description: string | null;
6486
+ placeholder: string;
6487
+ enumOptions: Array<{
6488
+ label: string;
6489
+ value: string;
6490
+ }>;
6491
+ }
6492
+ interface RuntimeTimelineRowVm {
6493
+ key: string;
6494
+ label: string;
6495
+ detail: string | null;
6496
+ time: string | null;
6497
+ tone: 'neutral' | 'info' | 'success' | 'warn' | 'danger';
6498
+ icon: MTIcon;
6499
+ }
6500
+ interface NodeRunRowVm {
6501
+ key: string;
6502
+ label: string;
6503
+ nodeType: string;
6504
+ status: string;
6505
+ statusTone: string;
6506
+ duration: string | null;
6507
+ waitReason: string | null;
6508
+ routeOutput: string | null;
6509
+ error: string | null;
6510
+ }
6511
+ type RunPanelTab = 'timeline' | 'nodes' | 'output' | 'input';
6512
+ type RunPanelTabOption = Pick<OptionItem, 'label' | 'value' | 'badge' | 'icon' | 'severity'>;
5282
6513
  declare class TestRunPanelComponent {
5283
6514
  private readonly store;
5284
6515
  private readonly transloco;
5285
6516
  private readonly nav;
6517
+ private readonly endpoints;
6518
+ private readonly http;
6519
+ private readonly nodeRunNodeCellTpl;
6520
+ private readonly nodeRunStatusCellTpl;
6521
+ private readonly nodeRunDetailCellTpl;
5286
6522
  payloadText: string;
6523
+ readonly runPanelTab: _angular_core.WritableSignal<RunPanelTab>;
6524
+ readonly payloadOpen: _angular_core.WritableSignal<boolean>;
5287
6525
  readonly payloadError: _angular_core.WritableSignal<string | null>;
6526
+ readonly schemaPayload: _angular_core.WritableSignal<Record<string, unknown>>;
5288
6527
  readonly triggerOptions: _angular_core.Signal<{
5289
6528
  value: number;
5290
6529
  label: string;
5291
6530
  }[]>;
5292
6531
  readonly selectedTriggerId: _angular_core.Signal<number>;
5293
- readonly selectedTrigger: _angular_core.Signal<_masterteam_flowplus_workflow.TriggerNodeVm | null>;
6532
+ readonly selectedTrigger: _angular_core.Signal<TriggerNodeVm | null>;
6533
+ readonly selectedRawTrigger: _angular_core.Signal<WorkflowTriggerDto | null>;
6534
+ private readonly nodeLabelsByKey;
6535
+ private readonly nodeRunsById;
5294
6536
  readonly runtimeStatus: _angular_core.Signal<string | null>;
5295
6537
  readonly runtimeError: _angular_core.Signal<string | null>;
5296
6538
  readonly runtimeRunning: _angular_core.Signal<boolean>;
5297
6539
  readonly runtimeAccepted: _angular_core.Signal<boolean>;
5298
6540
  readonly activeExecutionId: _angular_core.Signal<string | number | null>;
5299
6541
  readonly runtimeDetail: _angular_core.Signal<_masterteam_flowplus_workflow.AutomationExecutionDetail | null>;
6542
+ readonly selectedTriggerExecutable: _angular_core.Signal<boolean>;
5300
6543
  readonly canExecute: _angular_core.Signal<boolean>;
5301
6544
  readonly manualTrigger: _angular_core.Signal<boolean>;
5302
6545
  readonly helperText: _angular_core.Signal<string>;
5303
6546
  readonly triggerStatusTone: _angular_core.Signal<string>;
5304
6547
  readonly latestRun: _angular_core.Signal<_masterteam_flowplus_workflow.AutomationExecutionSummary | null>;
6548
+ readonly runPanelTabOptions: _angular_core.Signal<RunPanelTabOption[]>;
6549
+ readonly compactRunFacts: _angular_core.Signal<string[]>;
5305
6550
  readonly runStartedLabel: _angular_core.Signal<string | null>;
5306
6551
  readonly runDurationLabel: _angular_core.Signal<string | null>;
5307
- readonly problemNodeSummary: _angular_core.Signal<{
5308
- failed: string[];
5309
- waiting: string[];
5310
- failedExtra: number;
5311
- waitingExtra: number;
5312
- }>;
6552
+ readonly runtimeDisconnected: _angular_core.Signal<boolean>;
6553
+ readonly payloadFields: _angular_core.Signal<SchemaFieldVm[]>;
6554
+ readonly payloadSummary: _angular_core.Signal<string>;
6555
+ readonly triggerCycleNote: _angular_core.Signal<string | null>;
6556
+ readonly latestRunFacts: _angular_core.Signal<string[]>;
6557
+ readonly routeOutputSummary: _angular_core.Signal<string | null>;
6558
+ readonly timelineRows: _angular_core.Signal<RuntimeTimelineRowVm[]>;
6559
+ readonly nodeRunRows: _angular_core.Signal<NodeRunRowVm[]>;
6560
+ readonly nodeRunColumns: _angular_core.Signal<ColumnDef[]>;
6561
+ readonly createdFiles: _angular_core.Signal<AutomationCreatedFileVm[]>;
6562
+ readonly createdFileGroups: _angular_core.Signal<AutomationCreatedFileGroupVm[]>;
6563
+ readonly fileNodeRunGaps: _angular_core.Signal<AutomationFileNodeRunGapVm[]>;
5313
6564
  readonly lastError: _angular_core.Signal<string | null>;
6565
+ readonly outputPreview: _angular_core.Signal<string | null>;
5314
6566
  constructor();
5315
6567
  triggerLabel(triggerId: number): string;
6568
+ triggerOptionLabel(trigger: TriggerNodeVm): string;
6569
+ cleanTriggerLabel(trigger: TriggerNodeVm): string;
5316
6570
  triggerTypeLabel(triggerType: string | null | undefined): string;
5317
6571
  onTriggerChange(value: number | string | null): void;
6572
+ setSchemaPayloadValue(key: string, value: unknown): void;
6573
+ schemaPayloadValue(key: string): unknown;
6574
+ schemaTextValue(key: string): string;
6575
+ schemaNumberValue(key: string): number | null;
6576
+ schemaBooleanValue(key: string): boolean;
6577
+ schemaJsonValue(key: string): string;
6578
+ setSchemaJsonPayloadValue(key: string, value: string): void;
6579
+ togglePayload(): void;
6580
+ setRunPanelTab(tab: string): void;
5318
6581
  execute(): void;
5319
6582
  clearRuntime(): void;
5320
6583
  refreshRuntime(): void;
5321
6584
  openFullRun(): void;
5322
6585
  openRuns(): void;
6586
+ downloadFile(file: AutomationCreatedFileVm): void;
5323
6587
  openTriggerSetup(): void;
5324
6588
  statusTone(status: string | null | undefined): string;
6589
+ statusLabel(status: string | null | undefined): string;
6590
+ runtimeSeverity(): RunPanelTabOption['severity'];
6591
+ timelineToneClass(tone: RuntimeTimelineRowVm['tone']): string;
6592
+ private buildPayload;
6593
+ private timelineEventRow;
6594
+ private fallbackTimeline;
6595
+ private timelineNodeIdentity;
6596
+ private nodeLabel;
5325
6597
  private tt;
5326
6598
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TestRunPanelComponent, never>;
5327
6599
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<TestRunPanelComponent, "fp-test-run-panel", never, {}, {}, never, never, true, never>;
@@ -5367,5 +6639,5 @@ declare class DagreFlowLayoutEngine implements FlowLayoutEngine {
5367
6639
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<DagreFlowLayoutEngine>;
5368
6640
  }
5369
6641
 
5370
- export { APP_STATES, AddCanvasNote, ApplyAutomationExecutionDetail, ApplyBuilderCommand, ApplyBuilderSnapshot, AutomationBuilderCatalogApiService, AutomationDesignApiService, AutomationExecutionApiService, AutomationExecutionsPageComponent, BottomPanelComponent, BuilderTopbarComponent, ClearAutomationRuntimeState, ClearCommandHistory, ClearConflict, ClearPendingOperation, ClearSelection, ClearWorkflowBuilder, CommitStepUpdates, CommitWorkflowMetadata, ConnectionCreated, ConnectionCreationFailed, ContextPickerComponent, ContextPillButtonComponent, ContextPillComponent, CreateConnection, CreateStep, CreateTrigger, CreateWorkflow, DagreFlowLayoutEngine, DeleteCanvasNote, DeleteConnection, DeleteStep, DeleteTrigger, DeleteWorkflow, DuplicateCanvasNote, DuplicateWorkflow, EndpointBuilder, FLOWPLUS_FORM_DESIGNER_ADAPTER, FLOWPLUS_WORKFLOW_CONFIG, FLOWPLUS_WORKFLOW_DEFAULT_RUNTIME, FLOWPLUS_WORKFLOW_DEFAULT_STATE, FLOWPLUS_WORKFLOW_NAVIGATION, FLOWPLUS_WORKFLOW_ROUTES, FLOW_NODE_BASE_HEIGHT, FLOW_NODE_CARD_WIDTH, FLOW_NODE_MULTI_OUTPUT_GAP, FLOW_NODE_OUTPUT_SIZE, FlowCanvasComponent, FlowNodeComponent, FlowplusWorkflowActionKey, FlowplusWorkflowFacade, FlowplusWorkflowNavigationService, FlowplusWorkflowOverlayService, FlowplusWorkflowState, InspectorShellComponent, KeyboardShortcutsService, LOCAL_FALLBACK_CATALOG, LoadAutomationExecution, LoadContextCatalog, LoadContextCatalogForStep, LoadLatestAutomationExecution, LoadLayout, LoadTriggers, LoadWorkflowBuilder, LoadWorkflowCatalog, LoadWorkflowList, MarkLayoutDirty, MoveStep, NODE_COLOR_TOKEN, NODE_DEFAULT_ICON, NODE_MT_ICON, NoopFlowplusFormDesignerAdapter, PaletteComponent, PaletteDragSourceDirective, PollAutomationExecution, ProblemsPanelComponent, ProcessCreateDialogComponent, PublishWorkflow, RedoBuilderCommand, ReloadWorkflowBuilder, RunAutomationTrigger, RunWorkflowTest, SaveLayout, SelectCanvasNote, SelectConnection, SelectRuntimeNodeRun, SelectStep, SelectTrigger, SetActiveInspectorTab, SetBottomPanelOpen, SetBottomPanelTab, SetCanvasViewport, SetContextCatalog, SetCreateDialogOpen, SetInspectorOpen, SetLayout, SetLayoutAutosavePaused, SetMinimap, SetPaletteOpen, SetPaletteSearch, SetPendingOperation, SetReadonly, SetSelectedRuntimeTrigger, SetSelection, SetSelectionFromCanvas, SetStudioFilter, SetValidation, SetWorkflowCatalog, SetWorkflowDefinition, StepCreated, StepCreationFailed, TRIGGER_MT_ICON, TestRunPanelComponent, UnconfiguredFormDesignerAdapter, UndoBuilderCommand, UnpublishWorkflow, UpdateCanvasNote, UpdateConnection, UpdateStep, UpdateTrigger, UpdateWorkflowMetadata, UpdateWorkflowResources, UpdateWorkflowVariables, ValidateWorkflow, WorkflowBuilderPageComponent, WorkflowCatalogApiService, WorkflowContextApiService, WorkflowDebugApiService, WorkflowDefinitionApiService, WorkflowFormApiService, WorkflowRunDebuggerPageComponent, WorkflowRuntimeApiService, WorkflowStudioPageComponent, WorkflowValidationApiService, applyBuilderSnapshot, avatarSeverityForStep, avatarSeverityForTrigger, canonicalTriggerTypeForStarterKind, coerceTranslatable, colorVarFor, computeBranchLanes, computeSaveStatus, connectionCanvasId, derivePortsForStep, extractMessage, flowNodeCardHeightForOutputs, flowNodeLayoutHeightForOutputs, flowNodeOutputCenterY, flowNodeOutputStackHeight, fromWorkflowConnectionDomain, fromWorkflowStepDomain, hasOtherPending, iconFor, indexValidationByConnectionId, indexValidationByStepId, indexValidationByTriggerId, inputPortId, isEntityDirty, mapHttpError, mtIconForStep, mtIconForTrigger, newClientMutationId, nextOperationId, nodeCanvasId, outputPortId, parseConnectionId, parseNodeId, parsePortId, parseTriggerOutputPortId, parseTriggerStartConnectionId, patchLayoutPosition, patchTriggerLayoutPosition, provideFlowplusFormDesignerAdapter, provideFlowplusWorkflow, provideFlowplusWorkflowNavigation, provideFlowplusWorkflowNavigationDefaults, readRecord, removeStepWithEdges, resolveTranslatable, resolveTriggerStartNodeKey, resolveTriggerStartStep, resolveTriggerStartStepId, resolveWorkflowTriggerKey, savingOrSaved, tempNodeCanvasId, toWorkflowConnectionDomain, toWorkflowDefinitionDomain, toWorkflowStepDomain, toWorkflowTriggerDomain, triggerCanvasId, triggerOutputPortId, triggerStartConnectionCanvasId, triggerStarterKindFor, unwrap, unwrapApiData, upsertConnection, upsertStep };
5371
- export type { ActivateAutomationRequest, ActivationResult, ApiEnvelope, AssignmentSelectorContractResult, AssignmentValidationRequest, AutomationBuilderCatalog, AutomationEngineHealthSnapshot, AutomationExecutionDetail, AutomationExecutionEvent, AutomationExecutionListResult, AutomationExecutionNodeDataDetail, AutomationExecutionStatus, AutomationExecutionSummary, AutomationExportDefinition, AutomationFormBindingDefinition, AutomationFrontendDetail, AutomationFrontendListResult, AutomationImportRequest, AutomationImportResult, AutomationLastExecutionSummary, AutomationMetadataRequest, AutomationNodeAttempt, AutomationNodeDefinition, AutomationNodeRun, AutomationNodeType, AutomationRetentionPruneResult, AutomationRevisionDiffResult, AutomationRevisionSummary, AutomationRouteDefinition, AutomationRunResult, AutomationRuntimeWait, AutomationRuntimeWaitResumeTokenResult, AutomationSelectorItem, AutomationSelectorResult, AutomationStatus, AutomationSummary, AutomationTriggerDefinition, AutomationTriggerType, AutomationValidationIssue, AutomationValidationReport, AutomationValidationSummary, AvatarSeverityVars, BatchBuilderPatchRequest, CreateWorkflowConnectionRequest, CreateWorkflowDefinitionRequest, CreateWorkflowPluginStepRequest, CreateWorkflowStepRequest, CredentialReference, CredentialReferenceListResult, CredentialTestRequest, CredentialTestResult, CredentialTypeCatalogItem, CredentialTypeCatalogResult, EngineEventDto, ExecutionCancelResult, ExecutionRetryRequest, ExecutionRetryResult, ExpressionNamespaceDescriptor, ExpressionPreviewRequest, ExpressionPreviewResult, ExpressionValidationRequest, ExpressionValidationResult, FlowBranchLaneVm, FlowCanvasEdgeVm, FlowCanvasNodeVm, FlowLayoutEngine, FlowNodePortVm, FlowPlusCommitMappingValidationRequest, FlowPlusModuleCatalogItem, FlowPlusModuleCatalogResult, FlowPlusModuleField, FlowPlusModuleSchemaResult, FlowPortDirection, FlowPortSide, FlowplusApiError, FlowplusBuilderCommand, FlowplusBuilderSlice, FlowplusConflictState, FlowplusDirtyFlags, FlowplusExecutionRuntimeSlice, FlowplusFormDesignerAdapter, FlowplusPendingOperation, FlowplusPublishStatus, FlowplusRuntimeNodeState, FlowplusRuntimeNodeVisualState, FlowplusRuntimeReplayMode, FlowplusRuntimeRouteState, FlowplusRuntimeRouteVisualState, FlowplusRuntimeTriggerState, FlowplusRuntimeTriggerVisualState, FlowplusSaveStatus, FlowplusSelection, FlowplusStudioSlice, FlowplusTriggerExecutionRequest, FlowplusUiState, FlowplusWorkflowConfig, FlowplusWorkflowNavigationConfig, FlowplusWorkflowStateModel, FormBindingDefinitionRequest, FormSchemaResult, FormSelectorContractResult, FormSelectorItem, FormVersionListResult, FormVersionSummary, FormulaBuilderValue, HumanApprovalDecisionRequest, HumanApprovalDecisionResult, JsonSchemaLite, NavigationTarget, NodeDefinitionRequest, NodeTypeCatalogItem, OpenStepFormDesignerInput, OpenStepFormPreviewInput, PagedResult, ProcessContextEntryDto, ProcessContextLineageNodeDto, ProcessContextSnapshotDto, ProcessContextTimelineEventDto, ProcessFormLoadRequest, ProcessFormLoadResponseDto, ProcessStartRequest, ProcessStartResultDto, ProcessSubmitOperationKey, ProcessSubmitRequest, ProcessSubmitResponseDto, ProcessSubmitStatus, PublishAutomationRequest, PublishAutomationResult, RouteDefinitionRequest, ScheduleOptionsResult, SchedulePreviewRequest, SchedulePreviewResult, ScheduleValidationRequest, StepFormDesignerResult, StepFormPreviewResult, TaskActionRequest, TaskActionResultDto, TranslatableText, TriggerDefinitionRequest, TriggerNodeVm, TriggerStarterKind, TriggerTypeCatalogItem, UpdateWorkflowConnectionRequest, UpdateWorkflowDefinitionRequest, UpdateWorkflowStepRequest, WaitResumeRequest, WaitResumeResult, WebhookSetupResult, WorkflowAppActionDescriptorDto, WorkflowAppActionMappingDto, WorkflowAppActionOptionDto, WorkflowAppActionStepConfigDto, WorkflowAppDescriptorDto, WorkflowAutomatedOutputMappingDto, WorkflowAutomatedStepConfigDto, WorkflowBuilderCapabilitiesDto, WorkflowBuilderDto, WorkflowBuilderPermissionsDto, WorkflowCatalogDefaultsDto, WorkflowCatalogDto, WorkflowCatalogOptionDto, WorkflowConnectionDomain, WorkflowConnectionDto, WorkflowConnectionLayoutDto, WorkflowContextCatalogDto, WorkflowContextCatalogSourceDto, WorkflowContextPathValidationRequest, WorkflowContextPathValidationResultDto, WorkflowContextSourceType, WorkflowContextValueType, WorkflowDefinitionDomain, WorkflowDefinitionDto, WorkflowDefinitionListQuery, WorkflowDefinitionListResult, WorkflowDefinitionSummaryDto, WorkflowFormBindingContractDto, WorkflowFormBindingMode, WorkflowJoinParallelStepConfigDto, WorkflowLayoutDto, WorkflowNodeLayoutDto, WorkflowPluginDescriptorDto, WorkflowPluginStepConfigDto, WorkflowResourceBindingDto, WorkflowRuntimeRoutingPolicyDto, WorkflowSelectedActionDto, WorkflowStartParallelStepConfigDto, WorkflowStatus, WorkflowStepActionCatalogItemDto, WorkflowStepActionDto, WorkflowStepCategory, WorkflowStepDefaultsItemDto, WorkflowStepDomain, WorkflowStepDto, WorkflowStepFormBindingDto, WorkflowStepFormContractDto, WorkflowStepFormUpdateRequest, WorkflowStepPropertyDto, WorkflowStepType, WorkflowStepTypeCapabilityItemDto, WorkflowStepTypeCatalogItemDto, WorkflowSubprocessContextMappingDto, WorkflowSubprocessPropertyMappingDto, WorkflowSubprocessStepConfigDto, WorkflowTestRunConnectionDecisionDto, WorkflowTestRunContextChangeDto, WorkflowTestRunContextValueDto, WorkflowTestRunMode, WorkflowTestRunRequest, WorkflowTestRunResultDto, WorkflowTestRunStatus, WorkflowTestStepResultDto, WorkflowTestStepStatus, WorkflowTriggerDomain, WorkflowTriggerDto, WorkflowTriggerType, WorkflowValidationEntityType, WorkflowValidationGroupKey, WorkflowValidationGroupedIssuesDto, WorkflowValidationIssueDto, WorkflowValidationIssueSeverity, WorkflowValidationResultDto, WorkflowValidationSeverity, WorkflowValidationStateDto, WorkflowVariableDto, WorkflowViewportDto };
6642
+ export { APP_STATES, AddCanvasNote, ApplyAutomationExecutionDetail, ApplyBuilderCommand, ApplyBuilderSnapshot, AutomationBuilderCatalogApiService, AutomationDesignApiService, AutomationExecutionApiService, AutomationExecutionsPageComponent, BottomPanelComponent, BuilderTopbarComponent, ClearAutomationRuntimeState, ClearCommandHistory, ClearConflict, ClearPendingOperation, ClearSelection, ClearWorkflowBuilder, CommitStepUpdates, CommitWorkflowMetadata, ConnectionCreated, ConnectionCreationFailed, ContextPickerComponent, ContextPillButtonComponent, ContextPillComponent, CreateConnection, CreateStep, CreateTrigger, CreateWorkflow, DagreFlowLayoutEngine, DeleteCanvasNote, DeleteConnection, DeleteStep, DeleteTrigger, DeleteWorkflow, DuplicateCanvasNote, DuplicateWorkflow, EndpointBuilder, FLOWPLUS_FORM_DESIGNER_ADAPTER, FLOWPLUS_RETURN_LOOP_CONNECTION_TYPE, FLOWPLUS_WORKFLOW_CONFIG, FLOWPLUS_WORKFLOW_DEFAULT_RUNTIME, FLOWPLUS_WORKFLOW_DEFAULT_STATE, FLOWPLUS_WORKFLOW_NAVIGATION, FLOWPLUS_WORKFLOW_ROUTES, FLOW_NODE_BASE_HEIGHT, FLOW_NODE_CARD_WIDTH, FLOW_NODE_MULTI_OUTPUT_GAP, FLOW_NODE_OUTPUT_SIZE, FlowCanvasComponent, FlowNodeComponent, FlowplusWorkflowActionKey, FlowplusWorkflowFacade, FlowplusWorkflowNavigationService, FlowplusWorkflowOverlayService, FlowplusWorkflowState, InspectorShellComponent, KeyboardShortcutsService, LOCAL_FALLBACK_CATALOG, LoadAutomationExecution, LoadContextCatalog, LoadContextCatalogForStep, LoadLatestAutomationExecution, LoadLayout, LoadTriggers, LoadWorkflowBuilder, LoadWorkflowCatalog, LoadWorkflowList, MarkLayoutDirty, MoveStep, NODE_COLOR_TOKEN, NODE_DEFAULT_ICON, NODE_MT_ICON, NoopFlowplusFormDesignerAdapter, PaletteComponent, PaletteDragSourceDirective, PollAutomationExecution, ProblemsPanelComponent, ProcessCreateDialogComponent, PublishWorkflow, RedoBuilderCommand, ReloadWorkflowBuilder, RunAutomationTrigger, RunWorkflowTest, SaveLayout, SelectCanvasNote, SelectConnection, SelectRuntimeNodeRun, SelectStep, SelectTrigger, SetActiveInspectorTab, SetBottomPanelHeight, SetBottomPanelOpen, SetBottomPanelTab, SetCanvasViewport, SetContextCatalog, SetCreateDialogOpen, SetInspectorOpen, SetLayout, SetLayoutAutosavePaused, SetMinimap, SetPaletteOpen, SetPaletteSearch, SetPendingOperation, SetReadonly, SetSelectedRuntimeTrigger, SetSelection, SetSelectionFromCanvas, SetStudioFilter, SetValidation, SetWorkflowCatalog, SetWorkflowDefinition, StepCreated, StepCreationFailed, TRIGGER_MT_ICON, TestRunPanelComponent, UnconfiguredFormDesignerAdapter, UndoBuilderCommand, UnpublishWorkflow, UpdateCanvasNote, UpdateConnection, UpdateStep, UpdateTrigger, UpdateWorkflowMetadata, UpdateWorkflowResources, UpdateWorkflowVariables, ValidateWorkflow, WorkflowBuilderPageComponent, WorkflowCatalogApiService, WorkflowContextApiService, WorkflowDebugApiService, WorkflowDefinitionApiService, WorkflowFormApiService, WorkflowRunDebuggerPageComponent, WorkflowRuntimeApiService, WorkflowStudioPageComponent, WorkflowValidationApiService, allValidationIssues, applyBuilderSnapshot, avatarSeverityForStep, avatarSeverityForTrigger, canShowConnectionQuickAdd, canonicalTriggerTypeForStarterKind, coerceTranslatable, colorVarFor, computeBranchLanes, computeSaveStatus, connectionCanvasId, connectionClosesDirectedCycle, derivePortsForStep, extractMessage, flowNodeCardHeightForOutputs, flowNodeLayoutHeightForOutputs, flowNodeOutputCenterY, flowNodeOutputStackHeight, flowPortKeyExists, fromWorkflowConnectionDomain, fromWorkflowStepDomain, hasOtherPending, iconFor, indexValidationByConnectionId, indexValidationByStepId, indexValidationByTriggerId, inputPortId, isEntityDirty, isReturnConnectionForCanvas, mapHttpError, mtIconForStep, mtIconForTrigger, newClientMutationId, nextOperationId, nodeCanvasId, outputPortId, parseConnectionId, parseNodeId, parsePortId, parseTriggerOutputPortId, parseTriggerStartConnectionId, patchLayoutPosition, patchTriggerLayoutPosition, provideFlowplusFormDesignerAdapter, provideFlowplusWorkflow, provideFlowplusWorkflowNavigation, provideFlowplusWorkflowNavigationDefaults, readRecord, removeStepWithEdges, resolveConnectionEndpointStep, resolveTranslatable, resolveTriggerStartNodeKey, resolveTriggerStartStep, resolveTriggerStartStepId, resolveWorkflowTriggerKey, routeConnectionForCanvas, savingOrSaved, shouldPublishCurrentDefinitionBeforeRun, summarizeTriggerCycleValidation, tempNodeCanvasId, toWorkflowConnectionDomain, toWorkflowDefinitionDomain, toWorkflowStepDomain, toWorkflowTriggerDomain, triggerCanvasId, triggerOutputPortId, triggerStartConnectionCanvasId, triggerStarterKindFor, unwrap, unwrapApiData, upsertConnection, upsertStep };
6643
+ export type { ActivateAutomationRequest, ActivationResult, ApiEnvelope, AssignmentSelectorContractResult, AssignmentValidationRequest, AutomationBuilderCatalog, AutomationEngineHealthSnapshot, AutomationExecutionDetail, AutomationExecutionEvent, AutomationExecutionListResult, AutomationExecutionNodeDataDetail, AutomationExecutionStatus, AutomationExecutionSummary, AutomationExportDefinition, AutomationFormBindingDefinition, AutomationFrontendDetail, AutomationFrontendListResult, AutomationImportRequest, AutomationImportResult, AutomationLastExecutionSummary, AutomationMetadataRequest, AutomationNodeAttempt, AutomationNodeDefinition, AutomationNodeRun, AutomationNodeType, AutomationRetentionPruneResult, AutomationRevisionDiffResult, AutomationRevisionSummary, AutomationRouteDefinition, AutomationRunResult, AutomationRuntimeWait, AutomationRuntimeWaitResumeTokenResult, AutomationSelectorItem, AutomationSelectorResult, AutomationStatus, AutomationSummary, AutomationTriggerDefinition, AutomationTriggerType, AutomationValidationIssue, AutomationValidationReport, AutomationValidationSummary, AvatarSeverityVars, BatchBuilderPatchRequest, ConnectorActionCatalogItem, ConnectorCatalog, ConnectorProviderCatalogItem, ConvertToFileActionCatalogItem, ConvertToFileCatalog, CreateWorkflowConnectionRequest, CreateWorkflowDefinitionRequest, CreateWorkflowPluginStepRequest, CreateWorkflowStepRequest, CredentialFieldDescriptor, CredentialMutationResult, CredentialOAuthStartRequest, CredentialOAuthStartResult, CredentialProviderCatalogItem, CredentialReference, CredentialReferenceListResult, CredentialTestRequest, CredentialTestResult, CredentialTypeCatalogItem, CredentialTypeCatalogResult, DataTransformActionCatalogItem, DataTransformCatalog, EngineEventDto, ExecutionCancelResult, ExecutionRetryRequest, ExecutionRetryResult, ExpressionNamespaceDescriptor, ExpressionPreviewRequest, ExpressionPreviewResult, ExpressionValidationRequest, ExpressionValidationResult, FlowBranchLaneVm, FlowCanvasConnectionPosition, FlowCanvasConnectionRouting, FlowCanvasConnectionRoutingContext, FlowCanvasConnectionSide, FlowCanvasConnectionType, FlowCanvasConnectionWaypoint, FlowCanvasEdgeVm, FlowCanvasNodeVm, FlowLayoutEngine, FlowNodePortVm, FlowPlusCommitMappingValidationRequest, FlowPlusModuleCatalogItem, FlowPlusModuleCatalogResult, FlowPlusModuleField, FlowPlusModuleSchemaResult, FlowPortDirection, FlowPortSide, FlowplusApiError, FlowplusBuilderCommand, FlowplusBuilderSlice, FlowplusConflictState, FlowplusDirtyFlags, FlowplusExecutionRuntimeSlice, FlowplusFormDesignerAdapter, FlowplusPendingOperation, FlowplusPublishStatus, FlowplusRuntimeNodeState, FlowplusRuntimeNodeVisualState, FlowplusRuntimeReplayMode, FlowplusRuntimeRouteState, FlowplusRuntimeRouteVisualState, FlowplusRuntimeTriggerState, FlowplusRuntimeTriggerVisualState, FlowplusSaveStatus, FlowplusSelection, FlowplusStudioSlice, FlowplusTriggerExecutionRequest, FlowplusUiState, FlowplusWorkflowConfig, FlowplusWorkflowNavigationConfig, FlowplusWorkflowStateModel, FormBindingDefinitionRequest, FormSchemaResult, FormSelectorContractResult, FormSelectorItem, FormVersionListResult, FormVersionSummary, FormulaBuilderValue, HumanApprovalDecisionRequest, HumanApprovalDecisionResult, HumanTaskActionResult, HumanTaskAssignment, HumanTaskCancelRequest, HumanTaskDraftRequest, HumanTaskPayloadResult, HumanTaskSubmitRequest, JsonSchemaLite, ManualCredentialCreateRequest, NavigationTarget, NodeDefinitionRequest, NodeTypeCatalogItem, OpenStepFormDesignerInput, OpenStepFormPreviewInput, PagedResult, ProcessContextEntryDto, ProcessContextLineageNodeDto, ProcessContextSnapshotDto, ProcessContextTimelineEventDto, ProcessFormLoadRequest, ProcessFormLoadResponseDto, ProcessStartRequest, ProcessStartResultDto, ProcessSubmitOperationKey, ProcessSubmitRequest, ProcessSubmitResponseDto, ProcessSubmitStatus, PublishAutomationRequest, PublishAutomationResult, QueuedNodeSummary, RouteDefinitionRequest, ScheduleOptionsResult, SchedulePreviewRequest, SchedulePreviewResult, ScheduleValidationRequest, StepFormDesignerResult, StepFormPreviewResult, TaskActionRequest, TaskActionResultDto, TranslatableText, TriggerCycleValidationSummary, TriggerDefinitionRequest, TriggerNodeVm, TriggerStarterKind, TriggerTypeCatalogItem, UpdateWorkflowConnectionRequest, UpdateWorkflowDefinitionRequest, UpdateWorkflowStepRequest, WaitResumeRequest, WaitResumeResult, WebhookSetupResult, WorkflowAppActionDescriptorDto, WorkflowAppActionMappingDto, WorkflowAppActionOptionDto, WorkflowAppActionStepConfigDto, WorkflowAppDescriptorDto, WorkflowAutomatedOutputMappingDto, WorkflowAutomatedStepConfigDto, WorkflowBuilderCapabilitiesDto, WorkflowBuilderDto, WorkflowBuilderPermissionsDto, WorkflowCatalogDefaultsDto, WorkflowCatalogDto, WorkflowCatalogOptionDto, WorkflowConnectionDomain, WorkflowConnectionDto, WorkflowConnectionLayoutDto, WorkflowContextCatalogDto, WorkflowContextCatalogSourceDto, WorkflowContextPathValidationRequest, WorkflowContextPathValidationResultDto, WorkflowContextSourceType, WorkflowContextValueType, WorkflowDefinitionDomain, WorkflowDefinitionDto, WorkflowDefinitionListQuery, WorkflowDefinitionListResult, WorkflowDefinitionSummaryDto, WorkflowFormBindingContractDto, WorkflowFormBindingMode, WorkflowJoinParallelStepConfigDto, WorkflowLayoutDto, WorkflowNodeLayoutDto, WorkflowPluginDescriptorDto, WorkflowPluginStepConfigDto, WorkflowResourceBindingDto, WorkflowRuntimeRoutingPolicyDto, WorkflowSelectedActionDto, WorkflowStartParallelStepConfigDto, WorkflowStatus, WorkflowStepActionCatalogItemDto, WorkflowStepActionDto, WorkflowStepCategory, WorkflowStepDefaultsItemDto, WorkflowStepDomain, WorkflowStepDto, WorkflowStepFormBindingDto, WorkflowStepFormContractDto, WorkflowStepFormUpdateRequest, WorkflowStepPropertyDto, WorkflowStepType, WorkflowStepTypeCapabilityItemDto, WorkflowStepTypeCatalogItemDto, WorkflowSubprocessContextMappingDto, WorkflowSubprocessPropertyMappingDto, WorkflowSubprocessStepConfigDto, WorkflowTestRunConnectionDecisionDto, WorkflowTestRunContextChangeDto, WorkflowTestRunContextValueDto, WorkflowTestRunMode, WorkflowTestRunRequest, WorkflowTestRunResultDto, WorkflowTestRunStatus, WorkflowTestStepResultDto, WorkflowTestStepStatus, WorkflowTriggerDomain, WorkflowTriggerDto, WorkflowTriggerType, WorkflowValidationEntityType, WorkflowValidationGroupKey, WorkflowValidationGroupedIssuesDto, WorkflowValidationIssueDto, WorkflowValidationIssueSeverity, WorkflowValidationResultDto, WorkflowValidationSeverity, WorkflowValidationStateDto, WorkflowVariableCollectionDto, WorkflowVariableDto, WorkflowVariableRequest, WorkflowViewportDto };