@masterteam/flowplus-workflow 0.0.4 → 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;
@@ -3552,8 +3902,10 @@ declare class FlowplusWorkflowState {
3552
3902
  createTrigger(ctx: StateContext<FlowplusWorkflowStateModel>, action: CreateTrigger): Observable<_masterteam_flowplus_workflow.WorkflowTriggerDto> | undefined;
3553
3903
  private triggerTimers;
3554
3904
  private readonly triggerCommitSeq;
3905
+ private readonly triggerCommitInflight;
3555
3906
  updateTrigger(ctx: StateContext<FlowplusWorkflowStateModel>, action: UpdateTrigger): void;
3556
3907
  private commitTriggerUpdate;
3908
+ private commitTriggerUpdate$;
3557
3909
  deleteTrigger(ctx: StateContext<FlowplusWorkflowStateModel>, action: DeleteTrigger): Observable<void>;
3558
3910
  private layoutTimer;
3559
3911
  private layoutAutosavePaused;
@@ -3570,13 +3922,14 @@ declare class FlowplusWorkflowState {
3570
3922
  validateWorkflow(ctx: StateContext<FlowplusWorkflowStateModel>): Observable<_masterteam_flowplus_workflow.WorkflowValidationResultDto> | undefined;
3571
3923
  setValidation(ctx: StateContext<FlowplusWorkflowStateModel>, action: SetValidation): void;
3572
3924
  setLayout(ctx: StateContext<FlowplusWorkflowStateModel>, action: SetLayout): void;
3573
- publishWorkflow(ctx: StateContext<FlowplusWorkflowStateModel>): Observable<_masterteam_flowplus_workflow.WorkflowDefinitionDto> | undefined;
3925
+ publishWorkflow(ctx: StateContext<FlowplusWorkflowStateModel>): Observable<unknown> | void;
3574
3926
  unpublishWorkflow(ctx: StateContext<FlowplusWorkflowStateModel>): Observable<_masterteam_flowplus_workflow.WorkflowDefinitionDto> | undefined;
3575
3927
  setSelection(ctx: StateContext<FlowplusWorkflowStateModel>, action: SetSelection): void;
3576
3928
  setSelectionFromCanvas(ctx: StateContext<FlowplusWorkflowStateModel>, action: SetSelectionFromCanvas): void;
3577
3929
  setActiveInspectorTab(ctx: StateContext<FlowplusWorkflowStateModel>, action: SetActiveInspectorTab): void;
3578
3930
  setBottomPanelTab(ctx: StateContext<FlowplusWorkflowStateModel>, action: SetBottomPanelTab): void;
3579
3931
  setBottomPanelOpen(ctx: StateContext<FlowplusWorkflowStateModel>, action: SetBottomPanelOpen): void;
3932
+ setBottomPanelHeight(ctx: StateContext<FlowplusWorkflowStateModel>, action: SetBottomPanelHeight): void;
3580
3933
  setMinimap(ctx: StateContext<FlowplusWorkflowStateModel>, action: SetMinimap): void;
3581
3934
  setPaletteOpen(ctx: StateContext<FlowplusWorkflowStateModel>, action: SetPaletteOpen): void;
3582
3935
  setInspectorOpen(ctx: StateContext<FlowplusWorkflowStateModel>, action: SetInspectorOpen): void;
@@ -3593,18 +3946,21 @@ declare class FlowplusWorkflowState {
3593
3946
  redoBuilderCommand(_ctx: StateContext<FlowplusWorkflowStateModel>): void;
3594
3947
  clearCommandHistory(_ctx: StateContext<FlowplusWorkflowStateModel>): void;
3595
3948
  setSelectedRuntimeTrigger(ctx: StateContext<FlowplusWorkflowStateModel>, action: SetSelectedRuntimeTrigger): void;
3596
- runAutomationTrigger(ctx: StateContext<FlowplusWorkflowStateModel>, action: RunAutomationTrigger): Observable<AutomationRunResult>;
3949
+ runAutomationTrigger(ctx: StateContext<FlowplusWorkflowStateModel>, action: RunAutomationTrigger): Observable<unknown> | void;
3597
3950
  pollAutomationExecution(ctx: StateContext<FlowplusWorkflowStateModel>, action: PollAutomationExecution): Observable<AutomationExecutionDetail>;
3598
3951
  loadLatestAutomationExecution(ctx: StateContext<FlowplusWorkflowStateModel>): Observable<AutomationExecutionDetail>;
3599
3952
  loadAutomationExecution(ctx: StateContext<FlowplusWorkflowStateModel>, action: LoadAutomationExecution): Observable<AutomationExecutionDetail>;
3600
3953
  applyAutomationExecutionDetail(ctx: StateContext<FlowplusWorkflowStateModel>, action: ApplyAutomationExecutionDetail): void;
3601
3954
  clearAutomationRuntimeState(ctx: StateContext<FlowplusWorkflowStateModel>): void;
3602
3955
  selectRuntimeNodeRun(ctx: StateContext<FlowplusWorkflowStateModel>, action: SelectRuntimeNodeRun): void;
3603
- 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;
3604
3958
  private resolveExecutionTrigger;
3605
3959
  private unsupportedTriggerMessage;
3606
3960
  private scheduleExecutionPoll;
3607
3961
  private clearExecutionPoll;
3962
+ private scheduleValidationRefresh;
3963
+ private clearValidationRefresh;
3608
3964
  private readonly _keepExtractMessage;
3609
3965
  private readonly _keepConnectionCreatedAction;
3610
3966
  private readonly _keepConnectionCreationFailedAction;
@@ -3636,6 +3992,7 @@ declare function applyBuilderSnapshot(cur: FlowplusBuilderSlice, dto: WorkflowBu
3636
3992
  declare function hasOtherPending(pendingOperations: Record<string, FlowplusPendingOperation>, excludeId?: string): boolean;
3637
3993
  /** Returns true when ANY entity dirty flag is set. */
3638
3994
  declare function isEntityDirty(dirty: FlowplusBuilderSlice['dirty']): boolean;
3995
+ declare function shouldPublishCurrentDefinitionBeforeRun(builder: FlowplusBuilderSlice): boolean;
3639
3996
  /** Compute the next coarse save status from dirty + pending. */
3640
3997
  declare function computeSaveStatus(dirty: FlowplusBuilderSlice['dirty'], pendingOperations: Record<string, FlowplusPendingOperation>, lastError: string | null): FlowplusSaveStatus;
3641
3998
  /** Helper that narrows a "saving/saved" ternary back to the union type. */
@@ -3647,6 +4004,17 @@ declare function savingOrSaved(pending: boolean): FlowplusSaveStatus;
3647
4004
  declare function indexValidationByStepId(validation: FlowplusBuilderSlice['validation']): Map<number, WorkflowValidationIssueDto[]>;
3648
4005
  declare function indexValidationByConnectionId(validation: FlowplusBuilderSlice['validation']): Map<number, WorkflowValidationIssueDto[]>;
3649
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;
3650
4018
  /** Replace or append a step in the array. */
3651
4019
  declare function upsertStep(steps: WorkflowStepDto[], step: WorkflowStepDto): WorkflowStepDto[];
3652
4020
  /** Replace or append a connection in the array. */
@@ -3777,6 +4145,12 @@ interface FlowplusNodeFinderOverlayOptions {
3777
4145
  appendTo?: string | HTMLElement;
3778
4146
  position?: 'start' | 'end' | 'left' | 'right';
3779
4147
  }
4148
+ interface FlowplusWorkflowVariablesOverlayOptions {
4149
+ appendTo?: string | HTMLElement;
4150
+ }
4151
+ interface FlowplusExecutionFilesOverlayOptions {
4152
+ appendTo?: string | HTMLElement;
4153
+ }
3780
4154
  declare class FlowplusWorkflowOverlayService {
3781
4155
  private readonly modal;
3782
4156
  private readonly transloco;
@@ -3795,6 +4169,8 @@ declare class FlowplusWorkflowOverlayService {
3795
4169
  openConnectionConfig(connection: WorkflowConnectionDto): ModalRef<Partial<WorkflowConnectionDto>>;
3796
4170
  openTriggerConfig(trigger: WorkflowTriggerDto): ModalRef<TriggerConfigDialogResult>;
3797
4171
  openNodeFinder(options?: FlowplusNodeFinderOverlayOptions): ModalRef<unknown>;
4172
+ openWorkflowVariables(options?: FlowplusWorkflowVariablesOverlayOptions): ModalRef<unknown>;
4173
+ openExecutionFiles(options?: FlowplusExecutionFilesOverlayOptions): ModalRef<unknown>;
3798
4174
  private open;
3799
4175
  private inspectorComponent;
3800
4176
  private processCreateConfig;
@@ -3803,6 +4179,8 @@ declare class FlowplusWorkflowOverlayService {
3803
4179
  private connectionConfig;
3804
4180
  private triggerConfig;
3805
4181
  private nodeFinderConfig;
4182
+ private workflowVariablesConfig;
4183
+ private executionFilesConfig;
3806
4184
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FlowplusWorkflowOverlayService, never>;
3807
4185
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<FlowplusWorkflowOverlayService>;
3808
4186
  }
@@ -3946,6 +4324,17 @@ declare class ProcessCreateDialogComponent {
3946
4324
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ProcessCreateDialogComponent, "fp-process-create-dialog", never, {}, {}, never, never, true, never>;
3947
4325
  }
3948
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
+
3949
4338
  type QuickAddMode = 'trigger' | 'step' | 'insert';
3950
4339
  interface QuickAddPickEvent {
3951
4340
  catalogItem: WorkflowStepTypeCatalogItemDto;
@@ -4017,7 +4406,7 @@ declare class FlowNodeComponent {
4017
4406
  */
4018
4407
  readonly subtitle: _angular_core.Signal<string>;
4019
4408
  readonly color: _angular_core.Signal<string>;
4020
- readonly mtIcon: _angular_core.Signal<_masterteam_icons.MTIcon>;
4409
+ readonly cardWidth = 88;
4021
4410
  readonly multiOutputGap = 18;
4022
4411
  readonly cardHeight: _angular_core.Signal<number>;
4023
4412
  readonly connectedOutputKeySet: _angular_core.Signal<Set<string>>;
@@ -4031,10 +4420,11 @@ declare class FlowNodeComponent {
4031
4420
  readonly issueTooltip: _angular_core.Signal<string>;
4032
4421
  readonly issueTooltipClass: _angular_core.Signal<string>;
4033
4422
  readonly runtimeTone: _angular_core.Signal<"waiting" | "failed" | "completed" | "skipped" | "running" | null>;
4034
- 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">;
4035
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))">;
4036
4425
  readonly runtimeTooltip: _angular_core.Signal<string>;
4037
4426
  readonly runtimeStatusLabel: _angular_core.Signal<string>;
4427
+ readonly loopProgressLabel: _angular_core.Signal<string | null>;
4038
4428
  readonly isPendingCreate: _angular_core.Signal<boolean>;
4039
4429
  readonly pendingLabel: _angular_core.Signal<string>;
4040
4430
  /** Type-specific 1-3 fact lines beneath the title. */
@@ -4100,6 +4490,9 @@ interface NodePortPlusClickEvent {
4100
4490
  }
4101
4491
  interface EdgeInsertStepEvent {
4102
4492
  connectionId: number;
4493
+ edgeKind?: 'connection' | 'triggerStart';
4494
+ triggerId?: number | null;
4495
+ targetStepId?: number | null;
4103
4496
  }
4104
4497
  /**
4105
4498
  * Emitted when a canvas "+" affordance (port plus, drop-to-empty, edge
@@ -4258,6 +4651,12 @@ declare class FlowCanvasComponent {
4258
4651
  connectedOutputKeys(stepId: number): readonly string[];
4259
4652
  /** Guards the one-time auto-fit when the graph first gains content. */
4260
4653
  private didInitialFit;
4654
+ private readonly initialFitMaxAttempts;
4655
+ private readonly initialFitRetryDelayMs;
4656
+ private initialFitAttempt;
4657
+ private initialFitRafId;
4658
+ private initialFitTimerId;
4659
+ private initialFitScheduleToken;
4261
4660
  /**
4262
4661
  * Re-arm the one-time auto-fit so the NEXT render fits again. Called after a
4263
4662
  * programmatic re-layout (initial auto-arrange for module workflows, or the
@@ -4268,12 +4667,16 @@ declare class FlowCanvasComponent {
4268
4667
  suspendPositionSync(durationMs?: number): void;
4269
4668
  onFullRendered(): void;
4270
4669
  /**
4271
- * Defer a fit by two animation frames: the first lets Foblex finish
4272
- * measuring the freshly-rendered node rects, the second lets the workspace
4273
- * container reach its final size. Fitting against a zero-size/stale
4274
- * 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.
4275
4674
  */
4276
- private deferFit;
4675
+ private scheduleInitialFit;
4676
+ private runInitialFitAttempt;
4677
+ private clearInitialFitSchedule;
4678
+ private isCanvasReadyForInitialFit;
4679
+ private renderedCanvasItems;
4277
4680
  /**
4278
4681
  * Foblex re-fires `fNodesRendered` whenever the node set changes (e.g.
4279
4682
  * after the first trigger/step is created). We auto-fit ONCE when the
@@ -4367,16 +4770,15 @@ declare class FlowCanvasComponent {
4367
4770
  /** Public: flow-local position near the visible canvas center — used by the
4368
4771
  * page to place a palette-clicked step when there's no "+" context. */
4369
4772
  flowCenter(): IPoint;
4773
+ canShowEdgeQuickAdd(edge: FlowCanvasEdgeVm): boolean;
4370
4774
  /**
4371
4775
  * Edge midpoint plus was clicked. Compute a flow-local anchor at the
4372
- * geometric midpoint of the two endpoints so the picker pops at the
4373
- * 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.
4374
4778
  */
4375
- onEdgeMidpointPlus(args: {
4376
- connectionId: number;
4377
- sourceStepId: number;
4378
- targetStepId: number;
4379
- }): void;
4779
+ onEdgeQuickAdd(edge: FlowCanvasEdgeVm): void;
4780
+ private edgeMidpoint;
4781
+ private stepIdFromInputPort;
4380
4782
  /**
4381
4783
  * "+ Add first step" was clicked on the virtual trigger node. Open the
4382
4784
  * picker in `step` mode positioned to the right of the trigger card,
@@ -4565,6 +4967,8 @@ declare class WorkflowBuilderPageComponent implements OnDestroy {
4565
4967
  * inside the workspace — user wants that left panel untouched. */
4566
4968
  private inspectorModalRef;
4567
4969
  private workflowSettingsDrawerRef;
4970
+ private workflowVariablesDrawerRef;
4971
+ private executionFilesDrawerRef;
4568
4972
  private tempIdCounter;
4569
4973
  private nextTempId;
4570
4974
  /**
@@ -4608,6 +5012,12 @@ declare class WorkflowBuilderPageComponent implements OnDestroy {
4608
5012
  private closeInspectorModal;
4609
5013
  private openWorkflowSettingsDrawer;
4610
5014
  private closeWorkflowSettingsDrawer;
5015
+ onOpenWorkflowVariables(): void;
5016
+ private openWorkflowVariablesDrawer;
5017
+ private closeWorkflowVariablesDrawer;
5018
+ onOpenExecutionFiles(): void;
5019
+ private openExecutionFilesDrawer;
5020
+ private closeExecutionFilesDrawer;
4611
5021
  /**
4612
5022
  * A palette card was dropped on the canvas. Validates the catalog
4613
5023
  * payload (must be present, must have a step type, must be
@@ -4642,6 +5052,7 @@ declare class WorkflowBuilderPageComponent implements OnDestroy {
4642
5052
  private clearTransientAddIntent;
4643
5053
  private addFromPalette;
4644
5054
  private isCreatablePaletteItem;
5055
+ private canStartGraphMutation;
4645
5056
  private stepMetadataForCatalogItem;
4646
5057
  /**
4647
5058
  * Shared post-create handling for a new step: lock its position (so the
@@ -4659,9 +5070,9 @@ declare class WorkflowBuilderPageComponent implements OnDestroy {
4659
5070
  onConnectionReassign(event: ConnectionReassignEvent): void;
4660
5071
  /**
4661
5072
  * Foblex emits `fCreateConnection` with no `fInputId` when the user drops
4662
- * an unfinished connection in empty space. The canvas component opens its
4663
- * own quick-add popover at the drop position; we just track the intent
4664
- * 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.
4665
5076
  */
4666
5077
  onConnectionQuickAdd(_event: ConnectionQuickAddEvent): void;
4667
5078
  /**
@@ -4678,6 +5089,7 @@ declare class WorkflowBuilderPageComponent implements OnDestroy {
4678
5089
  * Any failure leaves the original edge intact (no data loss, no temp ids).
4679
5090
  */
4680
5091
  private insertStepOnEdge;
5092
+ private insertStepOnTriggerStart;
4681
5093
  /**
4682
5094
  * A node was dropped onto a connection (Foblex assign-on-drop). Rewiring an
4683
5095
  * existing route is a heavy graph mutation, so the insert is confirmed first.
@@ -4794,9 +5206,7 @@ declare class WorkflowBuilderPageComponent implements OnDestroy {
4794
5206
  * which deletes `A → B` only after `A → new` and `new → B` both persist.
4795
5207
  * If the user cancels or anything fails, `A → B` is left intact.
4796
5208
  */
4797
- onEdgeInsertStep(e: {
4798
- connectionId: number;
4799
- }): void;
5209
+ onEdgeInsertStep(e: EdgeInsertStepEvent): void;
4800
5210
  private pendingEdgeInsert;
4801
5211
  onEdgeRemove(e: {
4802
5212
  connectionId: number;
@@ -4850,9 +5260,11 @@ declare class AutomationExecutionsPageComponent {
4850
5260
  readonly retentionState: _angular_core.WritableSignal<LoadState>;
4851
5261
  readonly nodeDataState: _angular_core.WritableSignal<LoadState>;
4852
5262
  readonly timelineState: _angular_core.WritableSignal<LoadState>;
5263
+ readonly taskPayloadState: _angular_core.WritableSignal<LoadState>;
4853
5264
  readonly error: _angular_core.WritableSignal<string | null>;
4854
5265
  readonly healthError: _angular_core.WritableSignal<string | null>;
4855
5266
  readonly retentionError: _angular_core.WritableSignal<string | null>;
5267
+ readonly taskPayloadError: _angular_core.WritableSignal<string | null>;
4856
5268
  readonly statusFilter: _angular_core.WritableSignal<string>;
4857
5269
  readonly revisionFilter: _angular_core.WritableSignal<string>;
4858
5270
  readonly triggerTypeFilter: _angular_core.WritableSignal<string>;
@@ -4875,6 +5287,11 @@ declare class AutomationExecutionsPageComponent {
4875
5287
  readonly resumePayloadText: _angular_core.WritableSignal<string>;
4876
5288
  readonly approvalDecision: _angular_core.WritableSignal<string>;
4877
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>;
4878
5295
  readonly statusOptions: SelectOption[];
4879
5296
  readonly triggerTypeOptions: SelectOption[];
4880
5297
  readonly executionColumns: _angular_core.Signal<ColumnDef[]>;
@@ -4919,14 +5336,28 @@ declare class AutomationExecutionsPageComponent {
4919
5336
  cancel(): void;
4920
5337
  resume(wait: AutomationRuntimeWait): void;
4921
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;
4922
5346
  dataPreview(value: unknown): string;
4923
5347
  nodeDataStateLabel(value: AutomationExecutionNodeDataDetail | null): string;
4924
5348
  nodeDataNotice(value: AutomationExecutionNodeDataDetail | null): string | null;
4925
5349
  advancedNodeRunSummary(node: AutomationNodeRun): string | null;
4926
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[];
4927
5355
  advancedNodeDataSummary(data: AutomationExecutionNodeDataDetail | null): string[];
4928
5356
  private afterOperation;
4929
5357
  private operationFailed;
5358
+ private withResumeToken;
5359
+ private nodeRunForWait;
5360
+ private resetTaskPayload;
4930
5361
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AutomationExecutionsPageComponent, never>;
4931
5362
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AutomationExecutionsPageComponent, "fp-automation-executions-page", never, {}, {}, never, never, true, never>;
4932
5363
  }
@@ -4995,16 +5426,21 @@ declare class PaletteDragSourceDirective {
4995
5426
 
4996
5427
  /** A top-level group row (n8n "What happens next?" level 1). */
4997
5428
  interface PaletteGroupVm {
4998
- category: string;
5429
+ key: PaletteGroupKey;
4999
5430
  label: string;
5000
5431
  description: string;
5001
- /** Icon + accent derived from a representative item, so any backend
5002
- * category string (e.g. "Workflow", "Parallel") always renders. */
5003
- icon: string;
5432
+ countLabel: string;
5433
+ previewLabel: string;
5434
+ visualKey: string;
5004
5435
  color: string;
5005
5436
  bg: string;
5006
5437
  items: WorkflowStepTypeCatalogItemDto[];
5007
5438
  }
5439
+ interface PaletteSectionVm {
5440
+ key: PaletteSectionKey;
5441
+ label: string;
5442
+ items: WorkflowStepTypeCatalogItemDto[];
5443
+ }
5008
5444
  /** Which screen of the two-level finder is showing. */
5009
5445
  type PaletteView = 'root' | 'category' | 'triggers';
5010
5446
  declare class PaletteComponent {
@@ -5022,16 +5458,23 @@ declare class PaletteComponent {
5022
5458
  addTrigger: EventEmitter<WorkflowCatalogOptionDto>;
5023
5459
  /** Add a sticky canvas note directly from the rail. */
5024
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>;
5025
5465
  searchModel: string;
5026
5466
  /** Two-level navigation state. */
5027
5467
  readonly view: _angular_core.WritableSignal<PaletteView>;
5028
- readonly activeCategory: _angular_core.WritableSignal<string | null>;
5468
+ readonly activeCategory: _angular_core.WritableSignal<PaletteGroupKey | null>;
5029
5469
  readonly isExpanded: _angular_core.Signal<boolean>;
5030
5470
  readonly searching: _angular_core.Signal<boolean>;
5471
+ readonly executionFileCount: _angular_core.Signal<number>;
5472
+ readonly executionFileBadge: _angular_core.Signal<string>;
5031
5473
  /** All creatable, supported step types grouped into level-1 categories. */
5032
5474
  readonly groups: _angular_core.Signal<PaletteGroupVm[]>;
5033
5475
  /** Items of the drilled-in category. */
5034
5476
  readonly activeItems: _angular_core.Signal<WorkflowStepTypeCatalogItemDto[]>;
5477
+ readonly activeSections: _angular_core.Signal<PaletteSectionVm[]>;
5035
5478
  /** Flat, cross-category results while a search term is present. */
5036
5479
  readonly searchResults: _angular_core.Signal<WorkflowStepTypeCatalogItemDto[]>;
5037
5480
  /** Trigger types for the "Add another trigger" section. */
@@ -5039,9 +5482,11 @@ declare class PaletteComponent {
5039
5482
  readonly visibleTriggerOptions: _angular_core.Signal<WorkflowCatalogOptionDto[]>;
5040
5483
  /** Header title for the current screen. */
5041
5484
  readonly headerTitle: _angular_core.Signal<string>;
5042
- openCategory(category: string): void;
5485
+ openCategory(category: PaletteGroupKey): void;
5043
5486
  openTriggers(): void;
5044
5487
  addCanvasNote(): void;
5488
+ openWorkflowVariables(): void;
5489
+ requestExecutionFiles(): void;
5045
5490
  back(): void;
5046
5491
  openDrawer(): void;
5047
5492
  closeDrawer(): void;
@@ -5049,25 +5494,25 @@ declare class PaletteComponent {
5049
5494
  pickStep(item: WorkflowStepTypeCatalogItemDto): void;
5050
5495
  pickTrigger(option: WorkflowCatalogOptionDto): void;
5051
5496
  resolve(v: unknown): string;
5052
- iconFor(item: WorkflowStepTypeCatalogItemDto): string;
5053
- severityFor(item: WorkflowStepTypeCatalogItemDto): AvatarSeverityVars;
5497
+ visualFor(item: WorkflowStepTypeCatalogItemDto): AutomationNodeVisual;
5498
+ itemDescription(item: WorkflowStepTypeCatalogItemDto): string;
5499
+ itemGroupLabel(item: WorkflowStepTypeCatalogItemDto): string;
5054
5500
  /** Distinct icon per trigger type (Manual / Webhook / Process). */
5055
- triggerIconFor(option: WorkflowCatalogOptionDto): string;
5501
+ triggerVisualFor(option: WorkflowCatalogOptionDto): AutomationNodeVisual;
5056
5502
  /** Trigger options intentionally share one gold accent so the trigger
5057
5503
  * add/execution affordance reads as one product concept. */
5058
- triggerOptionVars(_option: WorkflowCatalogOptionDto): AvatarSeverityVars;
5504
+ triggerOptionVars(option: WorkflowCatalogOptionDto): AutomationNodeVisual;
5059
5505
  /** Fixed trigger accent for the "Add another trigger" section row. */
5060
- triggerVars(): AvatarSeverityVars;
5506
+ triggerVars(): AutomationNodeVisual;
5061
5507
  paletteItemKey(item: WorkflowStepTypeCatalogItemDto, index: number): string;
5062
5508
  triggerPaletteItem(option: WorkflowCatalogOptionDto): WorkflowStepTypeCatalogItemDto;
5063
5509
  triggerPaletteItemKey(option: WorkflowCatalogOptionDto, index: number): string;
5510
+ triggerTypeFor(option: WorkflowCatalogOptionDto): string;
5064
5511
  private isCreatable;
5065
- private labelFor;
5066
- private categoryDesc;
5067
- private triggerTypeFor;
5512
+ private isVisibleInPalette;
5068
5513
  private t;
5069
5514
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<PaletteComponent, never>;
5070
- 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>;
5071
5516
  }
5072
5517
 
5073
5518
  interface InspectorTab {
@@ -5121,21 +5566,94 @@ declare class InspectorShellComponent {
5121
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>;
5122
5567
  }
5123
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
+
5124
5584
  type BottomTabOption = Pick<OptionItem, 'label' | 'value' | 'badge' | 'icon' | 'severity'>;
5125
- interface ContextSourceRowVm {
5585
+ type RawDebugTab = 'graph' | 'selection' | 'validation' | 'runtime' | 'apiError';
5586
+ interface ContextExplorerRowVm {
5126
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;
5127
5601
  source: WorkflowContextCatalogSourceDto;
5128
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
+ }
5129
5629
  declare class BottomPanelComponent {
5130
5630
  readonly store: FlowplusWorkflowFacade;
5631
+ private readonly elementRef;
5632
+ private readonly document;
5633
+ private readonly destroyRef;
5131
5634
  private readonly transloco;
5132
5635
  private readonly diagnostics;
5133
5636
  private readonly nav;
5134
- private readonly contextPathTpl;
5135
- private readonly contextTypeTpl;
5136
- private readonly contextSourceTpl;
5137
- private readonly contextAvailabilityTpl;
5138
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>;
5139
5657
  tab(): string;
5140
5658
  /**
5141
5659
  * Tab change is the primary way to *open* the bottom drawer: clicking
@@ -5143,21 +5661,619 @@ declare class BottomPanelComponent {
5143
5661
  * the drawer. Keeps interaction premium / one-click.
5144
5662
  */
5145
5663
  onTabChange(tab: 'problems' | 'testRun' | 'context' | 'logs' | 'raw' | string): void;
5664
+ onResizeHandlePointerDown(event: PointerEvent): void;
5665
+ onResizeHandleKeydown(event: KeyboardEvent): void;
5666
+ resetPanelHeight(): void;
5146
5667
  readonly tabOptions: _angular_core.Signal<BottomTabOption[]>;
5147
- readonly contextRows: _angular_core.Signal<ContextSourceRowVm[]>;
5668
+ readonly contextRows: _angular_core.Signal<ContextExplorerRowVm[]>;
5669
+ readonly contextGroups: _angular_core.Signal<ContextGroupVm[]>;
5148
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
+ }>;
5149
6228
  issueCount(): number;
5150
6229
  issueIcon(): MTIcon;
5151
6230
  issueSeverity(): BottomTabOption['severity'];
5152
6231
  runtimeSeverity(): BottomTabOption['severity'];
5153
- private validationIssues;
5154
6232
  refreshRuntimeOverlay(): void;
5155
6233
  clearReplay(): void;
5156
6234
  openRuns(): void;
5157
6235
  openCurrentRun(): void;
5158
- contextJson(): string;
5159
- 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;
5160
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;
5161
6277
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BottomPanelComponent, never>;
5162
6278
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<BottomPanelComponent, "fp-bottom-panel", never, {}, { "focus": "focus"; }, never, never, true, never>;
5163
6279
  }
@@ -5196,16 +6312,53 @@ declare class BuilderTopbarComponent {
5196
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>;
5197
6313
  }
5198
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
+
5199
6336
  declare class ContextPickerComponent {
5200
6337
  private readonly store;
5201
6338
  private readonly transloco;
5202
6339
  insert: EventEmitter<string>;
5203
6340
  search: string;
5204
- readonly groupedSources: _angular_core.Signal<{
5205
- key: string;
5206
- items: WorkflowContextCatalogSourceDto[];
5207
- }[]>;
5208
- 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;
5209
6362
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ContextPickerComponent, never>;
5210
6363
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ContextPickerComponent, "fp-context-picker", never, {}, { "insert": "insert"; }, never, never, true, never>;
5211
6364
  }
@@ -5242,6 +6395,8 @@ interface ValidationIssueRowVm {
5242
6395
  message: string;
5243
6396
  target: string;
5244
6397
  code: string;
6398
+ impact: string;
6399
+ suggestedFix: string | null;
5245
6400
  status: {
5246
6401
  key: string;
5247
6402
  display: string;
@@ -5273,6 +6428,8 @@ declare class ProblemsPanelComponent {
5273
6428
  groupSeverity(group: ValidationGroupVm): ProblemTabSeverity;
5274
6429
  message(i: WorkflowValidationIssueDto): string;
5275
6430
  targetLabel(i: WorkflowValidationIssueDto): string;
6431
+ impactLabel(i: WorkflowValidationIssueDto): string;
6432
+ suggestedFix(i: WorkflowValidationIssueDto): string | null;
5276
6433
  detailValue(value: unknown): string;
5277
6434
  private group;
5278
6435
  private statusValue;
@@ -5280,49 +6437,163 @@ declare class ProblemsPanelComponent {
5280
6437
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ProblemsPanelComponent, "fp-problems-panel", never, {}, { "focus": "focus"; }, never, never, true, never>;
5281
6438
  }
5282
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'>;
5283
6513
  declare class TestRunPanelComponent {
5284
6514
  private readonly store;
5285
6515
  private readonly transloco;
5286
6516
  private readonly nav;
6517
+ private readonly endpoints;
6518
+ private readonly http;
6519
+ private readonly nodeRunNodeCellTpl;
6520
+ private readonly nodeRunStatusCellTpl;
6521
+ private readonly nodeRunDetailCellTpl;
5287
6522
  payloadText: string;
6523
+ readonly runPanelTab: _angular_core.WritableSignal<RunPanelTab>;
6524
+ readonly payloadOpen: _angular_core.WritableSignal<boolean>;
5288
6525
  readonly payloadError: _angular_core.WritableSignal<string | null>;
6526
+ readonly schemaPayload: _angular_core.WritableSignal<Record<string, unknown>>;
5289
6527
  readonly triggerOptions: _angular_core.Signal<{
5290
6528
  value: number;
5291
6529
  label: string;
5292
6530
  }[]>;
5293
6531
  readonly selectedTriggerId: _angular_core.Signal<number>;
5294
- 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;
5295
6536
  readonly runtimeStatus: _angular_core.Signal<string | null>;
5296
6537
  readonly runtimeError: _angular_core.Signal<string | null>;
5297
6538
  readonly runtimeRunning: _angular_core.Signal<boolean>;
5298
6539
  readonly runtimeAccepted: _angular_core.Signal<boolean>;
5299
6540
  readonly activeExecutionId: _angular_core.Signal<string | number | null>;
5300
6541
  readonly runtimeDetail: _angular_core.Signal<_masterteam_flowplus_workflow.AutomationExecutionDetail | null>;
6542
+ readonly selectedTriggerExecutable: _angular_core.Signal<boolean>;
5301
6543
  readonly canExecute: _angular_core.Signal<boolean>;
5302
6544
  readonly manualTrigger: _angular_core.Signal<boolean>;
5303
6545
  readonly helperText: _angular_core.Signal<string>;
5304
6546
  readonly triggerStatusTone: _angular_core.Signal<string>;
5305
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[]>;
5306
6550
  readonly runStartedLabel: _angular_core.Signal<string | null>;
5307
6551
  readonly runDurationLabel: _angular_core.Signal<string | null>;
5308
- readonly problemNodeSummary: _angular_core.Signal<{
5309
- failed: string[];
5310
- waiting: string[];
5311
- failedExtra: number;
5312
- waitingExtra: number;
5313
- }>;
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[]>;
5314
6564
  readonly lastError: _angular_core.Signal<string | null>;
6565
+ readonly outputPreview: _angular_core.Signal<string | null>;
5315
6566
  constructor();
5316
6567
  triggerLabel(triggerId: number): string;
6568
+ triggerOptionLabel(trigger: TriggerNodeVm): string;
6569
+ cleanTriggerLabel(trigger: TriggerNodeVm): string;
5317
6570
  triggerTypeLabel(triggerType: string | null | undefined): string;
5318
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;
5319
6581
  execute(): void;
5320
6582
  clearRuntime(): void;
5321
6583
  refreshRuntime(): void;
5322
6584
  openFullRun(): void;
5323
6585
  openRuns(): void;
6586
+ downloadFile(file: AutomationCreatedFileVm): void;
5324
6587
  openTriggerSetup(): void;
5325
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;
5326
6597
  private tt;
5327
6598
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TestRunPanelComponent, never>;
5328
6599
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<TestRunPanelComponent, "fp-test-run-panel", never, {}, {}, never, never, true, never>;
@@ -5368,5 +6639,5 @@ declare class DagreFlowLayoutEngine implements FlowLayoutEngine {
5368
6639
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<DagreFlowLayoutEngine>;
5369
6640
  }
5370
6641
 
5371
- 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 };
5372
- 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 };