@uipath/maestro-builder-sdk 6.31.9 → 6.32.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/api-index.md CHANGED
@@ -57,13 +57,13 @@ could hand you spans for a version you do not have.
57
57
  | `apiWorkflow` | function | `dist/core/actions.d.ts:1715-1749` | Actions | Invoke a deployed API workflow — a coded workflow published to Orchestrator, run as a serverless job rather than by a… |
58
58
  | `ApiWorkflowInputs` | interface | `dist/core/actions.d.ts:468-499` | Option shapes | 5 field(s) |
59
59
  | `AppRef` | interface | `dist/nodes/hitl/flow/spec.d.ts:140-185` | Supporting types | A deployed Action App that supplies a human task's form — the `'action-app'` variant's subject. |
60
- | `ArmBuilder` | class | `dist/flow-sdk.d.ts:1235-1258` | Builders | The sub-builder an ARM callback receives — a `StepList` that can also name itself with `.label(...)`. |
60
+ | `ArmBuilder` | class | `dist/flow-sdk.d.ts:1258-1281` | Builders | The sub-builder an ARM callback receives — a `StepList` that can also name itself with `.label(...)`. |
61
61
  | `AskedField` | interface | `dist/core/actions.d.ts:126-141` | Supporting types | A value the reviewer FILLS IN: read downstream with `out('<step>', '<id>')`. |
62
62
  | `batchTransform` | function | `dist/nodes/ai-patterns/flow/factories.d.ts:49-83` | Actions | Add AI-generated columns to a CSV — the platform's **Batch transform** node, `uipath.pattern.batch-transform` (service… |
63
63
  | `BatchTransformInputs` | interface | `dist/nodes/ai-patterns/flow/spec.d.ts:48-63` | Option shapes | 4 field(s) |
64
64
  | `BindingContribution` | interface | `dist/core/node-classes.d.ts:80-101` | Supporting types | A resource binding a contribution hoists to the flow's top-level `bindings` array — the shape the `.flow` format… |
65
- | `BuiltEntryPoint` | interface | `dist/flow-sdk.d.ts:724-736` | Supporting types | One additional flow root, built by `.entryPoint()`. |
66
- | `BuiltFlow` | interface | `dist/flow-sdk.d.ts:737-784` | Supporting types | 17 field(s) |
65
+ | `BuiltEntryPoint` | interface | `dist/flow-sdk.d.ts:731-743` | Supporting types | One additional flow root, built by `.entryPoint()`. |
66
+ | `BuiltFlow` | interface | `dist/flow-sdk.d.ts:744-791` | Supporting types | 17 field(s) |
67
67
  | `BuiltinToolName` | type | `dist/core/actions.d.ts:1123-1124` | Supporting types | The three platform-shipped built-in tools (fixed registry types). |
68
68
  | `BuiltinToolRef` | interface | `dist/core/actions.d.ts:1256-1276` | Supporting types | A platform built-in tool. |
69
69
  | `BuiltInValidatorGuardrail` | interface | `dist/core/actions.d.ts:819-860` | Supporting types | A platform-shipped validator, configured by parameters. |
@@ -113,10 +113,10 @@ could hand you spans for a version you do not have.
113
113
  | `documentClassify` | function | `dist/nodes/document/flow/factories.d.ts:8-16` | Actions | Classify a document into a document type (`uipath.document.classify`). |
114
114
  | `DocumentClassifyInputs` | interface | `dist/nodes/document/flow/spec.d.ts:9-18` | Option shapes | 4 field(s) |
115
115
  | `DocValidationInputs` | interface | `dist/nodes/hitl/flow/spec.d.ts:70-93` | Option shapes | The Document Validation task's subject — `variant: 'document-validation'` only. |
116
- | `DoWhileOptions` | interface | `dist/flow-sdk.d.ts:503-512` | Option shapes | Do-while options. |
116
+ | `DoWhileOptions` | interface | `dist/flow-sdk.d.ts:510-519` | Option shapes | Do-while options. |
117
117
  | `dynamicExtract` | function | `dist/nodes/document/flow/factories.d.ts:17-27` | Actions | Extract fields from a document with an INLINE schema — Dynamic Extract (`uipath.ixp.extract-document-builder`), the… |
118
118
  | `DynamicExtractInputs` | interface | `dist/nodes/document/flow/spec.d.ts:19-53` | Option shapes | 5 field(s) |
119
- | `EdgeRoute` | interface | `dist/flow-sdk.d.ts:648-662` | Supporting types | One edge's route: user-dragged bends and/or the auto-router's waypoints. |
119
+ | `EdgeRoute` | interface | `dist/flow-sdk.d.ts:655-669` | Supporting types | One edge's route: user-dragged bends and/or the auto-router's waypoints. |
120
120
  | `endCall` | function | `dist/core/actions.d.ts:1792-1799` | Actions | Hang up (`uipath.conversational.voice.end-call`). |
121
121
  | `EndCallInputs` | interface | `dist/core/actions.d.ts:246-253` | Option shapes | 1 field(s) |
122
122
  | `entryInput` | function | `dist/core/expr.d.ts:62-72` | Expressions and types | Reference an ENTRY POINT's scoped input: `entryInput('nightly', 'batchDate')` reads `$vars.nightly.output.batchDate` —… |
@@ -130,12 +130,12 @@ could hand you spans for a version you do not have.
130
130
  | `FilterCondition` | type | `dist/nodes/transform/flow/spec.d.ts:10-11` | Supporting types | Comparison a filter rule applies to a field. |
131
131
  | `FilterMatch` | type | `dist/nodes/transform/flow/spec.d.ts:8-9` | Supporting types | How a filter combines its rules: every rule must match, or any one. |
132
132
  | `FilterRule` | interface | `dist/nodes/transform/flow/spec.d.ts:12-24` | Supporting types | 3 field(s) |
133
- | `flow` | function | `dist/flow-sdk.d.ts:1623-1638` | Flow construction | Start building a flow with the given id. |
133
+ | `flow` | function | `dist/flow-sdk.d.ts:1646-1661` | Flow construction | Start building a flow with the given id. |
134
134
  | `FlowAction` | class | `dist/core/node-classes.d.ts:162-168` | Supporting types | A node placed as a step — pass an instance to `.step(name, …)`. |
135
135
  | `FlowActionSpec` | type | `dist/flow-sdk.d.ts:53-54` | Supporting types | What `.step()` accepts here: the shared actions plus this SDK's subflow. |
136
136
  | `FlowActionSpecs` | interface | `dist/core/actions.d.ts:1500-1577` | Supporting types | Every action kind, keyed by kind, to the body of its spec — the arm's fields other than `kind`. |
137
- | `FlowBuilder` | class | `dist/flow-sdk.d.ts:1259-1622` | Builders | 15 member(s) |
138
- | `FlowLayout` | interface | `dist/flow-sdk.d.ts:710-723` | Supporting types | Designer layout for a flow, keyed by AUTHOR-level ids: node entries by step name (plus the trigger id and `end`), edge… |
137
+ | `FlowBuilder` | class | `dist/flow-sdk.d.ts:1282-1645` | Builders | 15 member(s) |
138
+ | `FlowLayout` | interface | `dist/flow-sdk.d.ts:717-730` | Supporting types | Designer layout for a flow, keyed by AUTHOR-level ids: node entries by step name (plus the trigger id and `end`), edge… |
139
139
  | `FlowNode` | class | `dist/core/node-classes.d.ts:126-161` | Supporting types | The abstract root of every definition-backed node the builder can place. |
140
140
  | `FlowResource` | class | `dist/core/node-classes.d.ts:176-183` | Supporting types | A node attached to another semantic node — an inline agent's tool, context, memory, or escalation. |
141
141
  | `FlowTrigger` | class | `dist/core/node-classes.d.ts:169-175` | Supporting types | A node that starts the flow — pass an instance to `.trigger(…)`. |
@@ -184,12 +184,12 @@ could hand you spans for a version you do not have.
184
184
  | `lookupSpecOf` | function | `dist/core/lookups.d.ts:199-206` | Generated descriptors | The LookupSpec for one field, or `undefined` when it earns no helper. |
185
185
  | `LookupStrategy` | type | `dist/core/lookups.d.ts:1-10` | Generated descriptors | How `prepare` should retrieve the collection, chosen from the metadata. |
186
186
  | `LookupToken` | interface | `dist/core/lookups.d.ts:37-52` | Generated descriptors | An unresolved lookup: what `.byEmail(…)` returns. |
187
- | `LoopOptions` | interface | `dist/flow-sdk.d.ts:478-502` | Option shapes | Loop-specific options. |
187
+ | `LoopOptions` | interface | `dist/flow-sdk.d.ts:485-509` | Option shapes | Loop-specific options. |
188
188
  | `manual` | function | `dist/flow-sdk.d.ts:181-190` | Flow construction | The manual trigger, explicitly. |
189
189
  | `McpToolRef` | interface | `dist/core/actions.d.ts:1135-1163` | Supporting types | An MCP server the agent may call tools on. |
190
190
  | `mock` | function | `dist/nodes/mock/flow/factories.d.ts:6-45` | Actions | Declare a PLACEHOLDER step — "a real node goes here later". |
191
191
  | `NodeContribution` | interface | `dist/core/node-classes.d.ts:102-125` | Supporting types | One validated construct, returned by FlowNode.contribute. |
192
- | `NodeLayout` | interface | `dist/flow-sdk.d.ts:633-647` | Supporting types | One node's designer layout: canvas position, and optionally size and collapsed state. |
192
+ | `NodeLayout` | interface | `dist/flow-sdk.d.ts:640-654` | Supporting types | One node's designer layout: canvas position, and optionally size and collapsed state. |
193
193
  | `NodeOptions` | interface | `dist/flow-sdk.d.ts:391-444` | Option shapes | Options shared by every builder method that creates a definition-backed node: `version` selects the exact node… |
194
194
  | `onEvent` | function | `dist/flow-sdk.d.ts:191-229` | Flow construction | Start the flow when a connector event fires — e.g. an email arriving in a mailbox folder. |
195
195
  | `onEvent` | function | `dist/flow-sdk.d.ts:230-237` | Flow construction | Stringly form, for an event with no prepared module. |
@@ -212,7 +212,7 @@ could hand you spans for a version you do not have.
212
212
  | `resolvedValue` | function | `dist/core/lookups.d.ts:172-179` | Generated descriptors | The recorded id for a token, or `undefined`. |
213
213
  | `resolveEventWhere` | function | `dist/core/lookups.d.ts:207-224` | Generated descriptors | An event subscription's `where` with every lookup token swapped for the id `registry prepare --resolve` recorded, or a… |
214
214
  | `ReturnFieldType` | type | `dist/core/actions.d.ts:736-753` | Supporting types | A JSON-schema-ish type for one field of a step's declared `returns`. |
215
- | `ReturnOptions` | interface | `dist/flow-sdk.d.ts:445-477` | Option shapes | `.return(...)`-specific options. |
215
+ | `ReturnOptions` | interface | `dist/flow-sdk.d.ts:445-484` | Option shapes | `.return(...)`-specific options. |
216
216
  | `rpaWorkflow` | function | `dist/core/actions.d.ts:1670-1714` | Actions | Invoke a deployed RPA (robotic process automation) workflow — a classic UI-automation process, published to… |
217
217
  | `RpaWorkflowInputs` | interface | `dist/core/actions.d.ts:409-467` | Option shapes | 7 field(s) |
218
218
  | `SCHEDULE_PRESETS` | const | `dist/flow-sdk.d.ts:128-135` | Flow construction | The eight intervals the designer offers in its Frequency dropdown. |
@@ -227,12 +227,12 @@ could hand you spans for a version you do not have.
227
227
  | `sendMessage` | function | `dist/nodes/conversation/flow/factories.d.ts:8-26` | Actions | Post an assistant message into a live conversation (`uipath.conversational.send-message`). |
228
228
  | `SendMessageInputs` | interface | `dist/nodes/conversation/flow/spec.d.ts:8-27` | Option shapes | 4 field(s) |
229
229
  | `ShownField` | interface | `dist/core/actions.d.ts:105-125` | Supporting types | A value the reviewer READS: shown on the form, filled in from the flow. |
230
- | `Step` | type | `dist/flow-sdk.d.ts:513-632` | Supporting types | |
231
- | `StepList` | class | `dist/flow-sdk.d.ts:785-1234` | Builders | Collects a sequence of steps. |
232
- | `STICKY_NOTE_COLORS` | const | `dist/flow-sdk.d.ts:663-668` | Flow construction | The designer's sticky-note palette. |
233
- | `StickyNote` | interface | `dist/flow-sdk.d.ts:675-709` | Supporting types | A canvas sticky note — free text pinned to the diagram, for the humans reading it. |
234
- | `StickyNoteColor` | type | `dist/flow-sdk.d.ts:669-674` | Supporting types | A sticky note's swatch. |
235
- | `subflow` | function | `dist/flow-sdk.d.ts:1639-1678` | Flow construction | Run another flow as one step, and read back what it returns. |
230
+ | `Step` | type | `dist/flow-sdk.d.ts:520-639` | Supporting types | |
231
+ | `StepList` | class | `dist/flow-sdk.d.ts:792-1257` | Builders | Collects a sequence of steps. |
232
+ | `STICKY_NOTE_COLORS` | const | `dist/flow-sdk.d.ts:670-675` | Flow construction | The designer's sticky-note palette. |
233
+ | `StickyNote` | interface | `dist/flow-sdk.d.ts:682-716` | Supporting types | A canvas sticky note — free text pinned to the diagram, for the humans reading it. |
234
+ | `StickyNoteColor` | type | `dist/flow-sdk.d.ts:676-681` | Supporting types | A sticky note's swatch. |
235
+ | `subflow` | function | `dist/flow-sdk.d.ts:1662-1701` | Flow construction | Run another flow as one step, and read back what it returns. |
236
236
  | `SubflowSpec` | interface | `dist/flow-sdk.d.ts:45-52` | Supporting types | A step that runs a child flow. |
237
237
  | `summarize` | function | `dist/nodes/ai-patterns/flow/factories.d.ts:8-48` | Actions | Summarize a document with citations — the platform's **Summarize** node. |
238
238
  | `SummarizeInputs` | interface | `dist/nodes/ai-patterns/flow/spec.d.ts:8-40` | Option shapes | 3 field(s) |
@@ -66,7 +66,7 @@ not find it either.
66
66
  | `app` | property | `HumanTaskOpts` | `dist/bpmn/bpmn-sdk.d.ts:1337-1338` |
67
67
  | `appSystemName` | property | `AppRef` | `dist/nodes/hitl/flow/spec.d.ts:170-175` |
68
68
  | `appVersion` | property | `HumanTaskOpts` | `dist/bpmn/bpmn-sdk.d.ts:1339-1340` |
69
- | `armLabel` | property | `ArmBuilder` | `dist/flow-sdk.d.ts:1247` |
69
+ | `armLabel` | property | `ArmBuilder` | `dist/flow-sdk.d.ts:1270` |
70
70
  | `assignee` | property | `HitlRecipient` | `dist/nodes/hitl/flow/spec.d.ts:52-63` |
71
71
  | `async` | property | `OrchestratorAsyncOpts` | `dist/bpmn/bpmn-sdk.d.ts:1281-1285` |
72
72
  | `atRiskPercentage` | property | `EscalationOpts` | `dist/case/case-sdk.d.ts:132-137` |
@@ -97,14 +97,14 @@ not find it either.
97
97
  | `body` | property | `TypedContextRow` | `dist/bpmn/typed-node.d.ts:176-181` |
98
98
  | `body` | property | `TypedInputRow` | `dist/bpmn/typed-node.d.ts:207-208` |
99
99
  | `boundaryEvent` | method | `ScopeBuilder` | `dist/bpmn/bpmn-sdk.d.ts:2239-2246` |
100
- | `branch` | method | `StepList` | `dist/flow-sdk.d.ts:984-1002` |
100
+ | `branch` | method | `StepList` | `dist/flow-sdk.d.ts:991-1009` |
101
101
  | `branches` | property | `HttpInputsBase` | `dist/nodes/http/flow/spec.d.ts:25-30` |
102
- | `break` | method | `StepList` | `dist/flow-sdk.d.ts:1119-1128` |
103
- | `breakEnabled` | property | `DoWhileOptions` | `dist/flow-sdk.d.ts:510-511` |
104
- | `breakEnabled` | property | `LoopOptions` | `dist/flow-sdk.d.ts:497-501` |
102
+ | `break` | method | `StepList` | `dist/flow-sdk.d.ts:1126-1135` |
103
+ | `breakEnabled` | property | `DoWhileOptions` | `dist/flow-sdk.d.ts:517-518` |
104
+ | `breakEnabled` | property | `LoopOptions` | `dist/flow-sdk.d.ts:504-508` |
105
105
  | `build` | method | `BpmnBuilder` | `dist/bpmn/bpmn-sdk.d.ts:3483-3488` |
106
106
  | `build` | method | `CaseBuilder` | `dist/case/case-sdk.d.ts:1269-1274` |
107
- | `build` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1615-1621` |
107
+ | `build` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1638-1644` |
108
108
  | `businessRule` | method | `ScopeBuilder` | `dist/bpmn/bpmn-sdk.d.ts:2527-2573` |
109
109
  | `by` | property | `LookupResolution` | `dist/core/lookups.d.ts:164` |
110
110
  | `by` | property | `LookupSpec` | `dist/core/lookups.d.ts:27-28` |
@@ -126,13 +126,13 @@ not find it either.
126
126
  | `code` | property | `ErrorDecl` | `dist/bpmn/bpmn-sdk.d.ts:439-440` |
127
127
  | `code` | property | `ErrorMappingRow` | `dist/bpmn/bpmn-sdk.d.ts:299-307` |
128
128
  | `code` | property | `ScriptInputs` | `dist/nodes/script/flow/spec.d.ts:8-9` |
129
- | `collapsed` | property | `NodeLayout` | `dist/flow-sdk.d.ts:645-646` |
129
+ | `collapsed` | property | `NodeLayout` | `dist/flow-sdk.d.ts:652-653` |
130
130
  | `collection` | property | `LoopSpec` | `dist/bpmn/bpmn-sdk.d.ts:79-80` |
131
131
  | `collection` | property | `TransformInputs` | `dist/nodes/transform/flow/spec.d.ts:85-95` |
132
- | `color` | property | `StickyNote` | `dist/flow-sdk.d.ts:699-700` |
132
+ | `color` | property | `StickyNote` | `dist/flow-sdk.d.ts:706-707` |
133
133
  | `completeWhen` | method | `CaseBuilder` | `dist/case/case-sdk.d.ts:1249-1259` |
134
134
  | `completion` | property | `LoopSpec` | `dist/bpmn/bpmn-sdk.d.ts:85-86` |
135
- | `completionCondition` | property | `LoopOptions` | `dist/flow-sdk.d.ts:492-496` |
135
+ | `completionCondition` | property | `LoopOptions` | `dist/flow-sdk.d.ts:499-503` |
136
136
  | `condition` | property | `BpmnFlow` | `dist/bpmn/bpmn-sdk.d.ts:350-351` |
137
137
  | `condition` | property | `ErrorMappingRow` | `dist/bpmn/bpmn-sdk.d.ts:314-320` |
138
138
  | `condition` | property | `FilterRule` | `dist/nodes/transform/flow/spec.d.ts:15` |
@@ -164,7 +164,7 @@ not find it either.
164
164
  | `connectorKey` | property | `HttpOpts` | `dist/bpmn/bpmn-sdk.d.ts:1184-1190` |
165
165
  | `connectorKey` | property | `WaitConnectorPlaceholderSpec` | `dist/case/case-sdk.d.ts:366-367` |
166
166
  | `content` | property | `SendMessageInputs` | `dist/nodes/conversation/flow/spec.d.ts:20-21` |
167
- | `content` | property | `StickyNote` | `dist/flow-sdk.d.ts:697-698` |
167
+ | `content` | property | `StickyNote` | `dist/flow-sdk.d.ts:704-705` |
168
168
  | `contentType` | property | `HttpInputsBase` | `dist/nodes/http/flow/spec.d.ts:36` |
169
169
  | `context` | property | `ActivityNodeOpts` | `dist/bpmn/bpmn-sdk.d.ts:1526-1527` |
170
170
  | `context` | property | `ConversationalAgentSettings` | `dist/core/actions.d.ts:179-180` |
@@ -172,7 +172,7 @@ not find it either.
172
172
  | `context` | property | `RegistryTypeSpec` | `dist/bpmn/typed-node.d.ts:87` |
173
173
  | `contextRows` | property | `ActivityNodeOpts` | `dist/bpmn/bpmn-sdk.d.ts:1528-1535` |
174
174
  | `contextVerbatim` | property | `ActivityNodeOpts` | `dist/bpmn/bpmn-sdk.d.ts:1600-1605` |
175
- | `continue` | method | `StepList` | `dist/flow-sdk.d.ts:1129-1143` |
175
+ | `continue` | method | `StepList` | `dist/flow-sdk.d.ts:1136-1150` |
176
176
  | `contribute` | method | `FlowNode` | `dist/core/node-classes.d.ts:144-153` |
177
177
  | `conversationalAgent` | property | `FlowActionSpecs` | `dist/core/actions.d.ts:1536-1539` |
178
178
  | `conversationContext` | property | `FlowActionSpecs` | `dist/nodes/conversation/flow/spec.d.ts:55-58` |
@@ -207,13 +207,13 @@ not find it either.
207
207
  | `defaultOf` | property | `PendingExit` | `dist/bpmn/bpmn-sdk.d.ts:1924-1925` |
208
208
  | `deferDate` | property | `QueueItemInputs` | `dist/nodes/queue/flow/spec.d.ts:48-49` |
209
209
  | `definition` | property | `NodeContribution` | `dist/core/node-classes.d.ts:111-112` |
210
- | `definitions` | property | `BuiltFlow` | `dist/flow-sdk.d.ts:763-768` |
211
- | `definitions` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1476-1516` |
210
+ | `definitions` | property | `BuiltFlow` | `dist/flow-sdk.d.ts:770-775` |
211
+ | `definitions` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1499-1539` |
212
212
  | `delay` | property | `FlowActionSpecs` | `dist/nodes/delay/flow/spec.d.ts:38-41` |
213
213
  | `dependsOn` | property | `LookupSpec` | `dist/core/lookups.d.ts:34-35` |
214
214
  | `description` | property | `AgentMemoryRef` | `dist/core/actions.d.ts:1244` |
215
215
  | `description` | property | `BuiltCase` | `dist/case/case-sdk.d.ts:633` |
216
- | `description` | property | `BuiltFlow` | `dist/flow-sdk.d.ts:740-741` |
216
+ | `description` | property | `BuiltFlow` | `dist/flow-sdk.d.ts:747-748` |
217
217
  | `description` | property | `BuiltinToolRef` | `dist/core/actions.d.ts:1264-1265` |
218
218
  | `description` | property | `BuiltInValidatorGuardrail` | `dist/core/actions.d.ts:825` |
219
219
  | `description` | property | `BuiltStage` | `dist/case/case-sdk.d.ts:525` |
@@ -225,7 +225,7 @@ not find it either.
225
225
  | `description` | property | `CustomGuardrail` | `dist/core/actions.d.ts:812` |
226
226
  | `description` | property | `EscalationRef` | `dist/core/actions.d.ts:1406-1407` |
227
227
  | `description` | property | `EventTriggerOpts` | `dist/case/case-sdk.d.ts:241` |
228
- | `description` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1285-1292` |
228
+ | `description` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1308-1315` |
229
229
  | `description` | property | `HttpRequestToolRef` | `dist/core/actions.d.ts:1211` |
230
230
  | `description` | property | `IxpExtractInputs` | `dist/core/actions.d.ts:394-401` |
231
231
  | `description` | property | `IxpToolRef` | `dist/core/actions.d.ts:1384-1385` |
@@ -267,12 +267,12 @@ not find it either.
267
267
  | `document` | property | `HitlInputs` | `dist/nodes/hitl/flow/spec.d.ts:285-289` |
268
268
  | `documentClassify` | property | `FlowActionSpecs` | `dist/nodes/document/flow/spec.d.ts:56-59` |
269
269
  | `documentId` | property | `DocValidationInputs` | `dist/nodes/hitl/flow/spec.d.ts:84-85` |
270
- | `doWhile` | method | `StepList` | `dist/flow-sdk.d.ts:1094-1118` |
270
+ | `doWhile` | method | `StepList` | `dist/flow-sdk.d.ts:1101-1125` |
271
271
  | `dueDate` | property | `QueueItemInputs` | `dist/nodes/queue/flow/spec.d.ts:50-51` |
272
272
  | `duration` | property | `TimerSpec` | `dist/bpmn/bpmn-sdk.d.ts:33-34` |
273
273
  | `dynamicExtract` | property | `FlowActionSpecs` | `dist/nodes/document/flow/spec.d.ts:60-63` |
274
274
  | `dynamicFewShotLearning` | property | `AgentMemoryRef` | `dist/core/actions.d.ts:1247-1248` |
275
- | `edges` | property | `FlowLayout` | `dist/flow-sdk.d.ts:721-722` |
275
+ | `edges` | property | `FlowLayout` | `dist/flow-sdk.d.ts:728-729` |
276
276
  | `element` | property | `PlainTaskOpts` | `dist/bpmn/bpmn-sdk.d.ts:1619-1620` |
277
277
  | `element` | property | `RegistryTypeSpec` | `dist/bpmn/typed-node.d.ts:80-81` |
278
278
  | `elementId` | property | `BpmnVarDecl` | `dist/bpmn/bpmn-sdk.d.ts:378-385` |
@@ -291,12 +291,12 @@ not find it either.
291
291
  | `entity` | property | `DataServiceOpts` | `dist/bpmn/bpmn-sdk.d.ts:1090-1091` |
292
292
  | `entry` | property | `BuiltStage` | `dist/case/case-sdk.d.ts:528` |
293
293
  | `entry` | property | `BuiltTask` | `dist/case/case-sdk.d.ts:520` |
294
- | `entryPoint` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1351-1401` |
294
+ | `entryPoint` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1374-1424` |
295
295
  | `entryPointId` | property | `ProcessMetadata` | `dist/bpmn/bpmn-sdk.d.ts:534-539` |
296
- | `entryPoints` | property | `BuiltFlow` | `dist/flow-sdk.d.ts:769-770` |
296
+ | `entryPoints` | property | `BuiltFlow` | `dist/flow-sdk.d.ts:776-777` |
297
297
  | `entryWhen` | method | `StageBuilder` | `dist/case/case-sdk.d.ts:1004-1011` |
298
298
  | `entryWhen` | method | `TaskBuilder` | `dist/case/case-sdk.d.ts:947-956` |
299
- | `err` | method | `StepList` | `dist/flow-sdk.d.ts:793-818` |
299
+ | `err` | method | `StepList` | `dist/flow-sdk.d.ts:800-825` |
300
300
  | `error` | property | `BoundaryOpts` | `dist/bpmn/bpmn-sdk.d.ts:750-754` |
301
301
  | `error` | property | `EndOpts` | `dist/bpmn/bpmn-sdk.d.ts:696-706` |
302
302
  | `error` | property | `EventSubProcessOpts` | `dist/bpmn/bpmn-sdk.d.ts:1842-1847` |
@@ -417,7 +417,7 @@ not find it either.
417
417
  | `headers` | property | `HttpOpts` | `dist/bpmn/bpmn-sdk.d.ts:1138-1139` |
418
418
  | `headers` | property | `HttpRequestToolRef` | `dist/core/actions.d.ts:1216-1220` |
419
419
  | `height` | property | `CaseNodeLayout` | `dist/case/case-sdk.d.ts:606-607` |
420
- | `height` | property | `StickyNote` | `dist/flow-sdk.d.ts:707-708` |
420
+ | `height` | property | `StickyNote` | `dist/flow-sdk.d.ts:714-715` |
421
421
  | `hidden` | property | `RegistryContextField` | `dist/bpmn/typed-node.d.ts:27` |
422
422
  | `hidden` | property | `RegistryInputField` | `dist/bpmn/typed-node.d.ts:61` |
423
423
  | `hitl` | property | `FlowActionSpecs` | `dist/nodes/hitl/flow/spec.d.ts:293-296` |
@@ -433,8 +433,8 @@ not find it either.
433
433
  | `id` | property | `BpmnVarDecl` | `dist/bpmn/bpmn-sdk.d.ts:368-369` |
434
434
  | `id` | property | `BuiltBpmn` | `dist/bpmn/bpmn-sdk.d.ts:491-492` |
435
435
  | `id` | property | `BuiltCase` | `dist/case/case-sdk.d.ts:624` |
436
- | `id` | property | `BuiltEntryPoint` | `dist/flow-sdk.d.ts:726-727` |
437
- | `id` | property | `BuiltFlow` | `dist/flow-sdk.d.ts:738` |
436
+ | `id` | property | `BuiltEntryPoint` | `dist/flow-sdk.d.ts:733-734` |
437
+ | `id` | property | `BuiltFlow` | `dist/flow-sdk.d.ts:745` |
438
438
  | `id` | property | `BuiltInValidatorGuardrail` | `dist/core/actions.d.ts:821-822` |
439
439
  | `id` | property | `CaseAppSection` | `dist/case/case-sdk.d.ts:576-577` |
440
440
  | `id` | property | `ContextIndexRef` | `dist/core/actions.d.ts:1475-1480` |
@@ -450,7 +450,7 @@ not find it either.
450
450
  | `id` | property | `PinnedFlowId` | `dist/bpmn/bpmn-sdk.d.ts:1630-1631` |
451
451
  | `id` | property | `SchemaEntry` | `dist/bpmn/bpmn-sdk.d.ts:1001-1002` |
452
452
  | `id` | property | `ShownField` | `dist/core/actions.d.ts:107-108` |
453
- | `id` | property | `StickyNote` | `dist/flow-sdk.d.ts:687-696` |
453
+ | `id` | property | `StickyNote` | `dist/flow-sdk.d.ts:694-703` |
454
454
  | `id` | property | `SwitchArm` | `dist/flow-sdk.d.ts:369-375` |
455
455
  | `id` | property | `VarEntry` | `dist/bpmn/bpmn-sdk.d.ts:992-993` |
456
456
  | `identifier` | property | `BuiltCase` | `dist/case/case-sdk.d.ts:634` |
@@ -462,7 +462,7 @@ not find it either.
462
462
  | `inclusiveGateway` | method | `ScopeBuilder` | `dist/bpmn/bpmn-sdk.d.ts:2266-2273` |
463
463
  | `inlineAgent` | property | `FlowActionSpecs` | `dist/core/actions.d.ts:1548-1551` |
464
464
  | `input` | method | `CaseBuilder` | `dist/case/case-sdk.d.ts:1160-1185` |
465
- | `input` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1556-1568` |
465
+ | `input` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1579-1591` |
466
466
  | `input` | property | `HumanTaskOpts` | `dist/bpmn/bpmn-sdk.d.ts:1355-1356` |
467
467
  | `input` | property | `OrchestratorOpts` | `dist/bpmn/bpmn-sdk.d.ts:1241-1242` |
468
468
  | `input` | method | `ScopeBuilder` | `dist/bpmn/bpmn-sdk.d.ts:3068-3076` |
@@ -475,8 +475,8 @@ not find it either.
475
475
  | `inputs` | property | `AgentInputs` | `dist/core/actions.d.ts:680-697` |
476
476
  | `inputs` | property | `ApiWorkflowInputs` | `dist/core/actions.d.ts:481-485` |
477
477
  | `inputs` | property | `AppRef` | `dist/nodes/hitl/flow/spec.d.ts:176-184` |
478
- | `inputs` | property | `BuiltEntryPoint` | `dist/flow-sdk.d.ts:732-733` |
479
- | `inputs` | property | `BuiltFlow` | `dist/flow-sdk.d.ts:750` |
478
+ | `inputs` | property | `BuiltEntryPoint` | `dist/flow-sdk.d.ts:739-740` |
479
+ | `inputs` | property | `BuiltFlow` | `dist/flow-sdk.d.ts:757` |
480
480
  | `inputs` | property | `BuiltTask` | `dist/case/case-sdk.d.ts:516-517` |
481
481
  | `inputs` | property | `ClientSideToolRef` | `dist/core/actions.d.ts:1196-1197` |
482
482
  | `inputs` | property | `ExternalTaskOptions` | `dist/case/case-sdk.d.ts:399-400` |
@@ -535,7 +535,7 @@ not find it either.
535
535
  | `kind` | property | `SubflowSpec` | `dist/flow-sdk.d.ts:47` |
536
536
  | `kind` | property | `WhenExpression` | `dist/case/case-sdk.d.ts:99-100` |
537
537
  | `kValue` | property | `AgentMemoryRef` | `dist/core/actions.d.ts:1251-1252` |
538
- | `label` | method | `ArmBuilder` | `dist/flow-sdk.d.ts:1248-1257` |
538
+ | `label` | method | `ArmBuilder` | `dist/flow-sdk.d.ts:1271-1280` |
539
539
  | `label` | property | `AskedField` | `dist/core/actions.d.ts:130-131` |
540
540
  | `label` | property | `BuiltStage` | `dist/case/case-sdk.d.ts:523` |
541
541
  | `label` | property | `FormFieldOption` | `dist/core/actions.d.ts:102-103` |
@@ -548,12 +548,12 @@ not find it either.
548
548
  | `labels` | property | `HitlInputs` | `dist/nodes/hitl/flow/spec.d.ts:228-229` |
549
549
  | `lanes` | property | `BuiltStage` | `dist/case/case-sdk.d.ts:527` |
550
550
  | `layout` | property | `BuiltCase` | `dist/case/case-sdk.d.ts:646-647` |
551
- | `layout` | property | `BuiltFlow` | `dist/flow-sdk.d.ts:759-760` |
551
+ | `layout` | property | `BuiltFlow` | `dist/flow-sdk.d.ts:766-767` |
552
552
  | `layout` | method | `CaseBuilder` | `dist/case/case-sdk.d.ts:1139-1159` |
553
- | `layout` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1293-1303` |
553
+ | `layout` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1316-1326` |
554
554
  | `legacyCompleted` | property | `HitlInputs` | `dist/nodes/hitl/flow/spec.d.ts:252-284` |
555
555
  | `limit` | property | `DataFabricReadInputs` | `dist/nodes/data-fabric/flow/spec.d.ts:95-100` |
556
- | `limit` | property | `DoWhileOptions` | `dist/flow-sdk.d.ts:508-509` |
556
+ | `limit` | property | `DoWhileOptions` | `dist/flow-sdk.d.ts:515-516` |
557
557
  | `literal` | property | `Expr` | `dist/core/expr.d.ts:18` |
558
558
  | `location` | property | `AgenticProcessInputsBase` | `dist/core/actions.d.ts:550-560` |
559
559
  | `location` | property | `AgentInputs` | `dist/core/actions.d.ts:656-661` |
@@ -561,7 +561,7 @@ not find it either.
561
561
  | `lookups` | property | `ConnectorMeta` | `dist/core/connectors.d.ts:76-87` |
562
562
  | `loop` | property | `ActivityNodeFields` | `dist/bpmn/bpmn-sdk.d.ts:335-336` |
563
563
  | `loop` | property | `ActivityOpts` | `dist/bpmn/bpmn-sdk.d.ts:832-833` |
564
- | `loop` | method | `StepList` | `dist/flow-sdk.d.ts:1082-1093` |
564
+ | `loop` | method | `StepList` | `dist/flow-sdk.d.ts:1089-1100` |
565
565
  | `managed` | property | `HttpInputsBase` | `dist/nodes/http/flow/spec.d.ts:37-67` |
566
566
  | `marksCaseComplete` | property | `BuiltCaseExitCondition` | `dist/case/case-sdk.d.ts:354` |
567
567
  | `marksStageComplete` | property | `BuiltExitCondition` | `dist/case/case-sdk.d.ts:321` |
@@ -630,7 +630,7 @@ not find it either.
630
630
  | `name` | property | `BpmnVarDecl` | `dist/bpmn/bpmn-sdk.d.ts:370-371` |
631
631
  | `name` | property | `BuiltBpmn` | `dist/bpmn/bpmn-sdk.d.ts:493-494` |
632
632
  | `name` | property | `BuiltCase` | `dist/case/case-sdk.d.ts:625` |
633
- | `name` | property | `BuiltFlow` | `dist/flow-sdk.d.ts:739` |
633
+ | `name` | property | `BuiltFlow` | `dist/flow-sdk.d.ts:746` |
634
634
  | `name` | property | `BuiltInValidatorGuardrail` | `dist/core/actions.d.ts:824` |
635
635
  | `name` | property | `BuiltTask` | `dist/case/case-sdk.d.ts:501-502` |
636
636
  | `name` | property | `BuiltTrigger` | `dist/case/case-sdk.d.ts:198-199` |
@@ -650,7 +650,7 @@ not find it either.
650
650
  | `name` | property | `EventSubProcessOpts` | `dist/bpmn/bpmn-sdk.d.ts:1840-1841` |
651
651
  | `name` | property | `EventTriggerOpts` | `dist/case/case-sdk.d.ts:240` |
652
652
  | `name` | property | `ExternalTaskOpts` | `dist/bpmn/bpmn-sdk.d.ts:1499-1500` |
653
- | `name` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1277-1284` |
653
+ | `name` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1300-1307` |
654
654
  | `name` | property | `FlowOpts` | `dist/bpmn/bpmn-sdk.d.ts:1637-1638` |
655
655
  | `name` | property | `GatewayOpts` | `dist/bpmn/bpmn-sdk.d.ts:760-761` |
656
656
  | `name` | property | `HandlerOpts` | `dist/bpmn/bpmn-sdk.d.ts:1735-1736` |
@@ -678,7 +678,7 @@ not find it either.
678
678
  | `name` | property | `RegistryOutput` | `dist/bpmn/typed-node.d.ts:72` |
679
679
  | `name` | property | `RemoteA2aToolRef` | `dist/core/actions.d.ts:1171-1172` |
680
680
  | `name` | property | `ResolvedEventTriggerOpts` | `dist/case/case-sdk.d.ts:266-267` |
681
- | `name` | property | `ReturnOptions` | `dist/flow-sdk.d.ts:460-476` |
681
+ | `name` | property | `ReturnOptions` | `dist/flow-sdk.d.ts:460-483` |
682
682
  | `name` | property | `RpaWorkflowInputs` | `dist/core/actions.d.ts:421-422` |
683
683
  | `name` | property | `ScriptTaskOpts` | `dist/bpmn/bpmn-sdk.d.ts:844-845` |
684
684
  | `name` | property | `SplitOpts` | `dist/bpmn/bpmn-sdk.d.ts:1830-1831` |
@@ -695,7 +695,7 @@ not find it either.
695
695
  | `name` | property | `VarDecl` | `dist/flow-sdk.d.ts:60` |
696
696
  | `name` | property | `VarOpts` | `dist/bpmn/bpmn-sdk.d.ts:1644-1645` |
697
697
  | `nodes` | property | `BuiltBpmn` | `dist/bpmn/bpmn-sdk.d.ts:503-504` |
698
- | `nodes` | property | `FlowLayout` | `dist/flow-sdk.d.ts:719-720` |
698
+ | `nodes` | property | `FlowLayout` | `dist/flow-sdk.d.ts:726-727` |
699
699
  | `nodes` | property | `ScopeStorage` | `dist/bpmn/bpmn-sdk.d.ts:1935-1936` |
700
700
  | `nodeType` | property | `ConnectorMeta` | `dist/core/connectors.d.ts:62` |
701
701
  | `nodeType` | property | `LookupResolution` | `dist/core/lookups.d.ts:162` |
@@ -712,13 +712,13 @@ not find it either.
712
712
  | `onError` | method | `ActivityBuilder` | `dist/bpmn/bpmn-sdk.d.ts:3259-3266` |
713
713
  | `onError` | method | `ActivityBuilder` | `dist/bpmn/bpmn-sdk.d.ts:3267-3274` |
714
714
  | `onError` | method | `ActivityBuilder` | `dist/bpmn/bpmn-sdk.d.ts:3275-3283` |
715
- | `onError` | method | `StepList` | `dist/flow-sdk.d.ts:873-933` |
715
+ | `onError` | method | `StepList` | `dist/flow-sdk.d.ts:880-940` |
716
716
  | `onMessage` | method | `ActivityBuilder` | `dist/bpmn/bpmn-sdk.d.ts:3302-3310` |
717
717
  | `onMessage` | method | `ActivityBuilder` | `dist/bpmn/bpmn-sdk.d.ts:3311-3319` |
718
718
  | `onTimer` | method | `ActivityBuilder` | `dist/bpmn/bpmn-sdk.d.ts:3284-3292` |
719
719
  | `onTimer` | method | `ActivityBuilder` | `dist/bpmn/bpmn-sdk.d.ts:3293-3301` |
720
- | `openTails` | property | `BuiltFlow` | `dist/flow-sdk.d.ts:778-783` |
721
- | `openTails` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1517-1555` |
720
+ | `openTails` | property | `BuiltFlow` | `dist/flow-sdk.d.ts:785-790` |
721
+ | `openTails` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1540-1578` |
722
722
  | `operation` | property | `Aggregation` | `dist/nodes/transform/flow/spec.d.ts:37` |
723
723
  | `operation` | property | `ConnectorToolRef` | `dist/core/actions.d.ts:1287-1288` |
724
724
  | `operation` | property | `WaitConnectorPlaceholderSpec` | `dist/case/case-sdk.d.ts:368-369` |
@@ -726,7 +726,7 @@ not find it either.
726
726
  | `operator` | property | `DataFabricFilter` | `dist/nodes/data-fabric/flow/spec.d.ts:29-30` |
727
727
  | `options` | property | `ActionField` | `dist/case/case-sdk.d.ts:445-449` |
728
728
  | `options` | property | `AskedField` | `dist/core/actions.d.ts:134-138` |
729
- | `options` | property | `BuiltEntryPoint` | `dist/flow-sdk.d.ts:730-731` |
729
+ | `options` | property | `BuiltEntryPoint` | `dist/flow-sdk.d.ts:737-738` |
730
730
  | `options` | property | `InOutField` | `dist/core/actions.d.ts:155-159` |
731
731
  | `options` | property | `ShownField` | `dist/core/actions.d.ts:113-117` |
732
732
  | `or` | property | `DataFabricFilter` | `dist/nodes/data-fabric/flow/spec.d.ts:38-50` |
@@ -735,7 +735,7 @@ not find it either.
735
735
  | `outcomes` | property | `EscalationRef` | `dist/core/actions.d.ts:1452-1457` |
736
736
  | `outcomes` | property | `HitlInputs` | `dist/nodes/hitl/flow/spec.d.ts:211-225` |
737
737
  | `output` | method | `CaseBuilder` | `dist/case/case-sdk.d.ts:1186-1198` |
738
- | `output` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1569-1604` |
738
+ | `output` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1592-1627` |
739
739
  | `output` | property | `RegistryTypeSpec` | `dist/bpmn/typed-node.d.ts:90` |
740
740
  | `output` | method | `ScopeBuilder` | `dist/bpmn/bpmn-sdk.d.ts:3077-3085` |
741
741
  | `outputColumns` | property | `BatchTransformInputs` | `dist/nodes/ai-patterns/flow/spec.d.ts:56-60` |
@@ -744,7 +744,7 @@ not find it either.
744
744
  | `outputRows` | property | `ScriptTaskOpts` | `dist/bpmn/bpmn-sdk.d.ts:909-918` |
745
745
  | `outputs` | property | `ActionSpecData` | `dist/case/case-sdk.d.ts:464-465` |
746
746
  | `outputs` | property | `ActivityNodeOpts` | `dist/bpmn/bpmn-sdk.d.ts:1564-1565` |
747
- | `outputs` | property | `BuiltFlow` | `dist/flow-sdk.d.ts:751` |
747
+ | `outputs` | property | `BuiltFlow` | `dist/flow-sdk.d.ts:758` |
748
748
  | `outputs` | property | `BuiltTask` | `dist/case/case-sdk.d.ts:518-519` |
749
749
  | `outputs` | property | `ConnectorEventOpts` | `dist/bpmn/bpmn-sdk.d.ts:1483-1493` |
750
750
  | `outputs` | property | `EventTriggerOpts` | `dist/case/case-sdk.d.ts:248-262` |
@@ -770,8 +770,8 @@ not find it either.
770
770
  | `pageRange` | property | `DocumentClassifyInputs` | `dist/nodes/document/flow/spec.d.ts:12-13` |
771
771
  | `pageRange` | property | `DynamicExtractInputs` | `dist/nodes/document/flow/spec.d.ts:49-50` |
772
772
  | `pageRange` | property | `IxpExtractInputs` | `dist/core/actions.d.ts:383-384` |
773
- | `parallel` | property | `LoopOptions` | `dist/flow-sdk.d.ts:490-491` |
774
- | `parallel` | method | `StepList` | `dist/flow-sdk.d.ts:1046-1081` |
773
+ | `parallel` | property | `LoopOptions` | `dist/flow-sdk.d.ts:497-498` |
774
+ | `parallel` | method | `StepList` | `dist/flow-sdk.d.ts:1053-1088` |
775
775
  | `parallelGateway` | method | `ScopeBuilder` | `dist/bpmn/bpmn-sdk.d.ts:2256-2265` |
776
776
  | `parameters` | property | `ConnectorEventOpts` | `dist/bpmn/bpmn-sdk.d.ts:1479-1480` |
777
777
  | `parameters` | property | `HttpOpts` | `dist/bpmn/bpmn-sdk.d.ts:1140-1145` |
@@ -790,7 +790,7 @@ not find it either.
790
790
  | `pinnedFlowIds` | property | `SugarRegistry` | `dist/bpmn/bpmn-sdk.d.ts:1951-1958` |
791
791
  | `plainTask` | method | `ScopeBuilder` | `dist/bpmn/bpmn-sdk.d.ts:2302-2331` |
792
792
  | `position` | property | `CaseNodeLayout` | `dist/case/case-sdk.d.ts:592-596` |
793
- | `position` | property | `NodeLayout` | `dist/flow-sdk.d.ts:635-639` |
793
+ | `position` | property | `NodeLayout` | `dist/flow-sdk.d.ts:642-646` |
794
794
  | `preservation` | property | `BuiltBpmn` | `dist/bpmn/bpmn-sdk.d.ts:511-512` |
795
795
  | `preserve` | method | `BpmnBuilder` | `dist/bpmn/bpmn-sdk.d.ts:3332-3347` |
796
796
  | `priority` | property | `ActionSpecData` | `dist/case/case-sdk.d.ts:453` |
@@ -870,7 +870,7 @@ not find it either.
870
870
  | `retry` | property | `ActivityOpts` | `dist/bpmn/bpmn-sdk.d.ts:830-831` |
871
871
  | `retryable` | property | `ErrorMappingRow` | `dist/bpmn/bpmn-sdk.d.ts:308-309` |
872
872
  | `retryCount` | property | `HttpInputsBase` | `dist/nodes/http/flow/spec.d.ts:109-123` |
873
- | `return` | method | `StepList` | `dist/flow-sdk.d.ts:1224-1233` |
873
+ | `return` | method | `StepList` | `dist/flow-sdk.d.ts:1247-1256` |
874
874
  | `returnCitations` | property | `SummarizeInputs` | `dist/nodes/ai-patterns/flow/spec.d.ts:34-39` |
875
875
  | `returns` | property | `AgentInputs` | `dist/core/actions.d.ts:698-717` |
876
876
  | `returns` | property | `ApiWorkflowInputs` | `dist/core/actions.d.ts:486-498` |
@@ -886,7 +886,7 @@ not find it either.
886
886
  | `role` | property | `FlowNode` | `dist/core/node-classes.d.ts:142-143` |
887
887
  | `role` | property | `FlowResource` | `dist/core/node-classes.d.ts:181-182` |
888
888
  | `role` | property | `FlowTrigger` | `dist/core/node-classes.d.ts:173-174` |
889
- | `routedWaypoints` | property | `EdgeRoute` | `dist/flow-sdk.d.ts:656-661` |
889
+ | `routedWaypoints` | property | `EdgeRoute` | `dist/flow-sdk.d.ts:663-668` |
890
890
  | `rpa` | method | `TaskBuilder` | `dist/case/case-sdk.d.ts:751-760` |
891
891
  | `rpaWorkflow` | property | `FlowActionSpecs` | `dist/core/actions.d.ts:1512-1515` |
892
892
  | `rule` | property | `CaseRule` | `dist/case/case-sdk.d.ts:80` |
@@ -909,9 +909,9 @@ not find it either.
909
909
  | `schemas` | method | `BpmnBuilder` | `dist/bpmn/bpmn-sdk.d.ts:3433-3443` |
910
910
  | `schemas` | property | `BuiltBpmn` | `dist/bpmn/bpmn-sdk.d.ts:509-510` |
911
911
  | `schemaVersion` | method | `BpmnBuilder` | `dist/bpmn/bpmn-sdk.d.ts:3375-3404` |
912
- | `schemaVersion` | property | `BuiltFlow` | `dist/flow-sdk.d.ts:743-749` |
912
+ | `schemaVersion` | property | `BuiltFlow` | `dist/flow-sdk.d.ts:750-756` |
913
913
  | `schemaVersion` | method | `CaseBuilder` | `dist/case/case-sdk.d.ts:1068-1094` |
914
- | `schemaVersion` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1436-1475` |
914
+ | `schemaVersion` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1459-1498` |
915
915
  | `scope` | property | `EscalationRecipient` | `dist/case/case-sdk.d.ts:121` |
916
916
  | `scopes` | property | `GuardrailSelector` | `dist/core/actions.d.ts:758` |
917
917
  | `script` | property | `FlowActionSpecs` | `dist/nodes/script/flow/spec.d.ts:47-50` |
@@ -937,7 +937,7 @@ not find it either.
937
937
  | `severity` | property | `ContributionDiagnostic` | `dist/core/node-classes.d.ts:31-32` |
938
938
  | `shared` | property | `VarDecl` | `dist/flow-sdk.d.ts:69-70` |
939
939
  | `shared` | property | `VarSpec` | `dist/flow-sdk.d.ts:94-126` |
940
- | `size` | property | `NodeLayout` | `dist/flow-sdk.d.ts:640-644` |
940
+ | `size` | property | `NodeLayout` | `dist/flow-sdk.d.ts:647-651` |
941
941
  | `skip` | property | `BuiltTask` | `dist/case/case-sdk.d.ts:515` |
942
942
  | `skip` | property | `DataFabricReadInputs` | `dist/nodes/data-fabric/flow/spec.d.ts:101-102` |
943
943
  | `skipCondition` | property | `ActivityNodeOpts` | `dist/bpmn/bpmn-sdk.d.ts:1598-1599` |
@@ -983,16 +983,16 @@ not find it either.
983
983
  | `startName` | property | `EventSubProcessOpts` | `dist/bpmn/bpmn-sdk.d.ts:1887-1888` |
984
984
  | `startPayload` | property | `EventSubProcessOpts` | `dist/bpmn/bpmn-sdk.d.ts:1889-1890` |
985
985
  | `startProcess` | method | `ScopeBuilder` | `dist/bpmn/bpmn-sdk.d.ts:2459-2478` |
986
- | `step` | method | `StepList` | `dist/flow-sdk.d.ts:819-829` |
987
- | `steps` | property | `BuiltEntryPoint` | `dist/flow-sdk.d.ts:734-735` |
988
- | `steps` | property | `BuiltFlow` | `dist/flow-sdk.d.ts:753` |
989
- | `steps` | property | `StepList` | `dist/flow-sdk.d.ts:787` |
990
- | `stepSwitch` | method | `StepList` | `dist/flow-sdk.d.ts:830-872` |
991
- | `stepToList` | method | `StepList` | `dist/flow-sdk.d.ts:947-975` |
992
- | `stepToRef` | method | `StepList` | `dist/flow-sdk.d.ts:1175-1203` |
993
- | `stepToRef` | method | `StepList` | `dist/flow-sdk.d.ts:1204-1223` |
994
- | `stickyNotes` | property | `BuiltFlow` | `dist/flow-sdk.d.ts:761-762` |
995
- | `stickyNotes` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1304-1329` |
986
+ | `step` | method | `StepList` | `dist/flow-sdk.d.ts:826-836` |
987
+ | `steps` | property | `BuiltEntryPoint` | `dist/flow-sdk.d.ts:741-742` |
988
+ | `steps` | property | `BuiltFlow` | `dist/flow-sdk.d.ts:760` |
989
+ | `steps` | property | `StepList` | `dist/flow-sdk.d.ts:794` |
990
+ | `stepSwitch` | method | `StepList` | `dist/flow-sdk.d.ts:837-879` |
991
+ | `stepToList` | method | `StepList` | `dist/flow-sdk.d.ts:954-982` |
992
+ | `stepToRef` | method | `StepList` | `dist/flow-sdk.d.ts:1182-1225` |
993
+ | `stepToRef` | method | `StepList` | `dist/flow-sdk.d.ts:1226-1246` |
994
+ | `stickyNotes` | property | `BuiltFlow` | `dist/flow-sdk.d.ts:768-769` |
995
+ | `stickyNotes` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1327-1352` |
996
996
  | `storageBucket` | property | `DocValidationInputs` | `dist/nodes/hitl/flow/spec.d.ts:82-83` |
997
997
  | `strategy` | property | `LookupSpec` | `dist/core/lookups.d.ts:33` |
998
998
  | `style` | property | `CaseNodeLayout` | `dist/case/case-sdk.d.ts:597-598` |
@@ -1005,7 +1005,7 @@ not find it either.
1005
1005
  | `subType` | property | `VarSpec` | `dist/flow-sdk.d.ts:84-85` |
1006
1006
  | `summarize` | property | `FlowActionSpecs` | `dist/nodes/ai-patterns/flow/spec.d.ts:66-69` |
1007
1007
  | `summary` | property | `CaseAppConfig` | `dist/case/case-sdk.d.ts:585-586` |
1008
- | `switch` | method | `StepList` | `dist/flow-sdk.d.ts:1003-1045` |
1008
+ | `switch` | method | `StepList` | `dist/flow-sdk.d.ts:1010-1052` |
1009
1009
  | `systemPrompt` | property | `ConversationalAgentInputs` | `dist/core/actions.d.ts:191-196` |
1010
1010
  | `systemPrompt` | property | `InlineAgentInputs` | `dist/core/actions.d.ts:871-920` |
1011
1011
  | `systemPrompt` | property | `VoiceAgentInputs` | `dist/core/actions.d.ts:278-283` |
@@ -1030,7 +1030,7 @@ not find it either.
1030
1030
  | `temperature` | property | `InlineAgentInputs` | `dist/core/actions.d.ts:981-982` |
1031
1031
  | `temperature` | property | `VoiceSettings` | `dist/core/actions.d.ts:270-271` |
1032
1032
  | `terminate` | property | `EndOpts` | `dist/bpmn/bpmn-sdk.d.ts:692-693` |
1033
- | `terminate` | method | `StepList` | `dist/flow-sdk.d.ts:1144-1174` |
1033
+ | `terminate` | method | `StepList` | `dist/flow-sdk.d.ts:1151-1181` |
1034
1034
  | `threshold` | property | `ContextIndexRef` | `dist/core/actions.d.ts:1495-1496` |
1035
1035
  | `timeCycle` | property | `BuiltTrigger` | `dist/case/case-sdk.d.ts:201-202` |
1036
1036
  | `timeout` | property | `HttpInputsBase` | `dist/nodes/http/flow/spec.d.ts:91-108` |
@@ -1050,16 +1050,16 @@ not find it either.
1050
1050
  | `tools` | property | `InlineAgentInputs` | `dist/core/actions.d.ts:1072-1094` |
1051
1051
  | `transform` | property | `FlowActionSpecs` | `dist/nodes/transform/flow/spec.d.ts:111-114` |
1052
1052
  | `transformation` | property | `FieldMapping` | `dist/nodes/transform/flow/spec.d.ts:30-31` |
1053
- | `trigger` | property | `BuiltEntryPoint` | `dist/flow-sdk.d.ts:728-729` |
1054
- | `trigger` | property | `BuiltFlow` | `dist/flow-sdk.d.ts:754-756` |
1053
+ | `trigger` | property | `BuiltEntryPoint` | `dist/flow-sdk.d.ts:735-736` |
1054
+ | `trigger` | property | `BuiltFlow` | `dist/flow-sdk.d.ts:761-763` |
1055
1055
  | `trigger` | method | `CaseBuilder` | `dist/case/case-sdk.d.ts:1224-1232` |
1056
1056
  | `trigger` | property | `EscalationOpts` | `dist/case/case-sdk.d.ts:128-129` |
1057
- | `trigger` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1330-1350` |
1057
+ | `trigger` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1353-1373` |
1058
1058
  | `trigger` | property | `StartOpts` | `dist/bpmn/bpmn-sdk.d.ts:624-671` |
1059
1059
  | `triggeredByEvent` | property | `SubProcessOpts` | `dist/bpmn/bpmn-sdk.d.ts:976-977` |
1060
- | `triggerId` | property | `BuiltFlow` | `dist/flow-sdk.d.ts:771-777` |
1061
- | `triggerId` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1402-1421` |
1062
- | `triggerOptions` | property | `BuiltFlow` | `dist/flow-sdk.d.ts:757-758` |
1060
+ | `triggerId` | property | `BuiltFlow` | `dist/flow-sdk.d.ts:778-784` |
1061
+ | `triggerId` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1425-1444` |
1062
+ | `triggerOptions` | property | `BuiltFlow` | `dist/flow-sdk.d.ts:764-765` |
1063
1063
  | `triggers` | property | `BuiltCase` | `dist/case/case-sdk.d.ts:644-645` |
1064
1064
  | `triggers` | property | `CaseLayout` | `dist/case/case-sdk.d.ts:620-621` |
1065
1065
  | `type` | property | `ActionField` | `dist/case/case-sdk.d.ts:435-436` |
@@ -1115,7 +1115,7 @@ not find it either.
1115
1115
  | `value` | property | `TypedInputRow` | `dist/bpmn/typed-node.d.ts:205-206` |
1116
1116
  | `values` | property | `DataFabricCreateInputs` | `dist/nodes/data-fabric/flow/spec.d.ts:132-137` |
1117
1117
  | `var` | method | `CaseBuilder` | `dist/case/case-sdk.d.ts:1199-1223` |
1118
- | `var` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1605-1614` |
1118
+ | `var` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1628-1637` |
1119
1119
  | `var` | method | `ScopeBuilder` | `dist/bpmn/bpmn-sdk.d.ts:3059-3067` |
1120
1120
  | `var` | property | `TaskOutputBinding` | `dist/case/case-sdk.d.ts:494-495` |
1121
1121
  | `var` | property | `TypedOutputRow` | `dist/bpmn/typed-node.d.ts:251-252` |
@@ -1125,12 +1125,12 @@ not find it either.
1125
1125
  | `variant` | property | `HitlInputs` | `dist/nodes/hitl/flow/spec.d.ts:187-191` |
1126
1126
  | `variant` | property | `TransformInputs` | `dist/nodes/transform/flow/spec.d.ts:96-105` |
1127
1127
  | `vars` | property | `BuiltCase` | `dist/case/case-sdk.d.ts:640` |
1128
- | `vars` | property | `BuiltFlow` | `dist/flow-sdk.d.ts:752` |
1128
+ | `vars` | property | `BuiltFlow` | `dist/flow-sdk.d.ts:759` |
1129
1129
  | `vars` | method | `ScopeBuilder` | `dist/bpmn/bpmn-sdk.d.ts:3086-3111` |
1130
1130
  | `vars` | property | `ScopeStorage` | `dist/bpmn/bpmn-sdk.d.ts:1939-1940` |
1131
1131
  | `varSchema` | property | `TypedOutputRow` | `dist/bpmn/typed-node.d.ts:257-271` |
1132
1132
  | `version` | property | `BuiltCase` | `dist/case/case-sdk.d.ts:626-632` |
1133
- | `version` | property | `BuiltFlow` | `dist/flow-sdk.d.ts:742` |
1133
+ | `version` | property | `BuiltFlow` | `dist/flow-sdk.d.ts:749` |
1134
1134
  | `version` | method | `CaseBuilder` | `dist/case/case-sdk.d.ts:1057-1067` |
1135
1135
  | `version` | property | `ConnectorEventOpts` | `dist/bpmn/bpmn-sdk.d.ts:1435-1436` |
1136
1136
  | `version` | property | `ConnectorMeta` | `dist/core/connectors.d.ts:63` |
@@ -1138,7 +1138,7 @@ not find it either.
1138
1138
  | `version` | property | `ConnectorToolRef` | `dist/core/actions.d.ts:1289-1290` |
1139
1139
  | `version` | property | `EventSubscription` | `dist/core/actions.d.ts:2173` |
1140
1140
  | `version` | property | `ExternalTaskOpts` | `dist/bpmn/bpmn-sdk.d.ts:1507-1508` |
1141
- | `version` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1422-1435` |
1141
+ | `version` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1445-1458` |
1142
1142
  | `version` | property | `NodeOptions` | `dist/flow-sdk.d.ts:397-404` |
1143
1143
  | `version` | property | `TriggerMeta` | `dist/core/connectors.d.ts:126` |
1144
1144
  | `version` | property | `TriggerOptions` | `dist/core/actions.d.ts:2130-2131` |
@@ -1155,13 +1155,13 @@ not find it either.
1155
1155
  | `waitForEvent` | method | `ScopeBuilder` | `dist/bpmn/bpmn-sdk.d.ts:2688-2729` |
1156
1156
  | `waitForMessage` | property | `FlowActionSpecs` | `dist/nodes/conversation/flow/spec.d.ts:51-54` |
1157
1157
  | `waitForTimer` | method | `TaskBuilder` | `dist/case/case-sdk.d.ts:877-883` |
1158
- | `waypoints` | property | `EdgeRoute` | `dist/flow-sdk.d.ts:650-655` |
1158
+ | `waypoints` | property | `EdgeRoute` | `dist/flow-sdk.d.ts:657-662` |
1159
1159
  | `when` | property | `SlaOpts` | `dist/case/case-sdk.d.ts:176-182` |
1160
1160
  | `when` | property | `SwitchArm` | `dist/flow-sdk.d.ts:362-367` |
1161
1161
  | `where` | property | `EventSubscription` | `dist/core/actions.d.ts:2139-2157` |
1162
1162
  | `where` | property | `TriggerOptions` | `dist/core/actions.d.ts:2092-2109` |
1163
1163
  | `width` | property | `CaseNodeLayout` | `dist/case/case-sdk.d.ts:604-605` |
1164
- | `width` | property | `StickyNote` | `dist/flow-sdk.d.ts:705-706` |
1165
- | `x` | property | `StickyNote` | `dist/flow-sdk.d.ts:701-702` |
1166
- | `y` | property | `StickyNote` | `dist/flow-sdk.d.ts:703-704` |
1164
+ | `width` | property | `StickyNote` | `dist/flow-sdk.d.ts:712-713` |
1165
+ | `x` | property | `StickyNote` | `dist/flow-sdk.d.ts:708-709` |
1166
+ | `y` | property | `StickyNote` | `dist/flow-sdk.d.ts:710-711` |
1167
1167
  | `zIndex` | property | `CaseNodeLayout` | `dist/case/case-sdk.d.ts:608-609` |
package/dist/check.js CHANGED
@@ -26,6 +26,7 @@ import { compareSchemaVersions, schemaVersionRefusal } from './schema-version.js
26
26
  import { planFlowGlobals, planSharedInputs, sharedInputRoots } from './flow-variables.js';
27
27
  import { planOutputBacking } from './flow-output-backing.js';
28
28
  import { ownEntry } from './core/own-entry.js';
29
+ import { endContentKey } from './flow-end-content.js';
29
30
  import { FLOW_NODE_TYPES } from './flow-node-registry.js';
30
31
  import { stepExits } from './flow-step-exits.js';
31
32
  import { plainHttpOnErrorMessage } from './nodes/http/flow/family.js';
@@ -4558,21 +4559,64 @@ function checkStepRefs(built, diags) {
4558
4559
  const scopeOf = new Map();
4559
4560
  /** Step name → the parallel arm it lives in, as `<parallel>#<index>`. */
4560
4561
  const armOf = new Map();
4562
+ /**
4563
+ * How many nodes answer to each NAMED End's name (`.return({}, { name })`), and
4564
+ * how many of those are steps. A named End is a ref target too (#1223): a side
4565
+ * path that runs into the main path's End is one End with two incoming edges,
4566
+ * which the product accepts and the canvas draws. Counted so a ref to a name
4567
+ * two nodes share is refused rather than wired to whichever came first.
4568
+ */
4569
+ const endNames = new Map();
4570
+ /**
4571
+ * Per scope and End name, the content of each distinct `.return` asking for it.
4572
+ * Two `.return`s with the same name AND the same values, label, version and
4573
+ * updates are one End reached from two paths (serialize joins them); only a
4574
+ * repeat that differs is a second End. Keyed by `endContentKey`, the key
4575
+ * serialize joins on, so the two cannot disagree.
4576
+ */
4577
+ const endContents = new Map();
4578
+ const stepNamesSeen = new Set();
4561
4579
  let seq = 0;
4562
4580
  const index = (steps, portList, scope, arm) => {
4563
4581
  for (const s of steps) {
4564
- if ('name' in s && s.kind !== 'return') {
4565
- if (!order.has(s.name))
4566
- order.set(s.name, seq);
4567
- if (portList)
4568
- inPortList.add(s.name);
4569
- scopeOf.set(s.name, scope);
4570
- if (arm)
4571
- armOf.set(s.name, arm);
4582
+ // A `return`'s own `name` is synthetic; its End is named by `options.name`.
4583
+ const name = s.kind === 'return' ? s.options?.name : 'name' in s ? s.name : undefined;
4584
+ if (name !== undefined) {
4585
+ if (s.kind === 'return') {
4586
+ const key = JSON.stringify([scope, name]);
4587
+ const content = endContentKey(s);
4588
+ const seen = endContents.get(key) ?? endContents.set(key, new Set()).get(key);
4589
+ if (!seen.has(content)) {
4590
+ seen.add(content);
4591
+ endNames.set(name, (endNames.get(name) ?? 0) + 1);
4592
+ }
4593
+ }
4594
+ else
4595
+ stepNamesSeen.add(name);
4596
+ // Exactly the step rule from before, for steps. A named End only fills a
4597
+ // name nothing has claimed; a clash is REF_AMBIGUOUS_TARGET below.
4598
+ if (s.kind !== 'return' || !order.has(name)) {
4599
+ if (!order.has(name))
4600
+ order.set(name, seq);
4601
+ if (portList)
4602
+ inPortList.add(name);
4603
+ scopeOf.set(name, scope);
4604
+ if (arm)
4605
+ armOf.set(name, arm);
4606
+ }
4572
4607
  }
4573
4608
  seq++;
4574
4609
  if (s.kind === 'stepToList')
4575
4610
  index(s.body, true, scope, arm);
4611
+ // A `.stepSwitch` routes EVERY declared exit, as `.switch` routes every
4612
+ // case, so its arms are not side paths: they inherit `portList`, as a
4613
+ // `.switch` case does. So a ref into a step of an arm is legal from another
4614
+ // arm AND from outside the `.stepSwitch` (before #1231 an arm step was not
4615
+ // indexed, so a ref from outside was REF_UNKNOWN_TARGET even though
4616
+ // serialize wired it). Walked so their Ends count toward DUP_END_NAME and
4617
+ // are ref targets (#1231).
4618
+ else if (s.kind === 'stepSwitch')
4619
+ s.cases.forEach((c) => index(c.body, portList, scope, arm));
4576
4620
  else if (s.kind === 'branch') {
4577
4621
  index(s.then, portList, scope, arm);
4578
4622
  index(s.otherwise, portList, scope, arm);
@@ -4589,12 +4633,31 @@ function checkStepRefs(built, diags) {
4589
4633
  }
4590
4634
  };
4591
4635
  index(built.steps, false, '', undefined);
4636
+ // An entry-point prefix is a path of its own that may end at the shared body's
4637
+ // End, so its Ends count toward the duplicate-name rule below (#1231).
4638
+ for (const ep of built.entryPoints ?? [])
4639
+ index(ep.steps, false, '', undefined);
4640
+ // Two `.return`s asking for the same End name with different content are two
4641
+ // End nodes, which compile refuses rather than renaming the second `<name>2`
4642
+ // (#1231). One End shared by several paths is spelled once, with every other
4643
+ // path ending at it by `.stepToRef('<name>')`, or repeated identically.
4644
+ for (const [name, count] of endNames) {
4645
+ if (count < 2)
4646
+ continue;
4647
+ diags.push({
4648
+ level: 'error', code: 'DUP_END_NAME', step: name,
4649
+ message: `${count} different \`.return({}, { name: '${name}' })\` calls ask for the same End (their values, label, `
4650
+ + `version or updates differ, or they sit in different scopes), so they would be ${count} End nodes with one id. `
4651
+ + `To end several paths at one End, keep one \`.return({}, { name: '${name}' })\` and end the other paths with `
4652
+ + `\`.stepToRef('${name}')\`; to have separate Ends, give each its own name.`,
4653
+ });
4654
+ }
4592
4655
  /** Every ref, with where it sits. */
4593
4656
  const found = [];
4594
4657
  const collect = (steps, from, scope, arm, enclosing = []) => {
4595
4658
  let source = from;
4596
4659
  for (const [i, s] of steps.entries()) {
4597
- if (s.kind === 'action')
4660
+ if (s.kind === 'action' || s.kind === 'stepSwitch')
4598
4661
  source = s.name;
4599
4662
  if (s.kind === 'stepToRef') {
4600
4663
  found.push({
@@ -4607,6 +4670,8 @@ function checkStepRefs(built, diags) {
4607
4670
  }
4608
4671
  if (s.kind === 'stepToList')
4609
4672
  collect(s.body, source, scope, arm, enclosing);
4673
+ else if (s.kind === 'stepSwitch')
4674
+ s.cases.forEach((c) => collect(c.body, s.name, scope, arm, enclosing));
4610
4675
  else if (s.kind === 'branch') {
4611
4676
  collect(s.then, source, scope, arm, enclosing);
4612
4677
  collect(s.otherwise, source, scope, arm, enclosing);
@@ -4622,6 +4687,8 @@ function checkStepRefs(built, diags) {
4622
4687
  }
4623
4688
  };
4624
4689
  collect(built.steps, undefined, '', undefined);
4690
+ for (const ep of built.entryPoints ?? [])
4691
+ collect(ep.steps, ep.id, '', undefined);
4625
4692
  for (const { target, from, after, scope, arm, enclosing } of found) {
4626
4693
  const where = from ? `after "${from}"` : 'at the start of the flow';
4627
4694
  const say = (level, code, message, suggestion) => {
@@ -4630,9 +4697,28 @@ function checkStepRefs(built, diags) {
4630
4697
  if (!order.has(target)) {
4631
4698
  const near = [...order.keys()].find((n) => n.toLowerCase() === target.toLowerCase());
4632
4699
  say('error', 'REF_UNKNOWN_TARGET', `.stepToRef('${target}') ${where} names a step this flow does not have`
4633
- + `${near ? ` (did you mean "${near}"?)` : ''}. It takes the same name you passed to .step().`, near ? `.stepToRef('${near}')` : undefined);
4700
+ + `${near ? ` (did you mean "${near}"?)` : ''}. It takes the same name you passed to .step(), or the `
4701
+ + `\`name\` of a \`.return({}, { name })\` End.`, near ? `.stepToRef('${near}')` : undefined);
4702
+ continue;
4703
+ }
4704
+ const ends = endNames.get(target) ?? 0;
4705
+ // Two Ends sharing the name are DUP_END_NAME above, reported once whether or
4706
+ // not a ref names them; this is the step-and-End clash.
4707
+ if (ends > 1)
4708
+ continue;
4709
+ if (ends > 0 && stepNamesSeen.has(target)) {
4710
+ say('error', 'REF_AMBIGUOUS_TARGET', `.stepToRef('${target}') ${where} names both a step and an End called "${target}", so it is not clear which `
4711
+ + `one the path should go to. Give the \`.return({}, { name })\` a name no step uses.`);
4634
4712
  continue;
4635
4713
  }
4714
+ /**
4715
+ * The target is an End and nothing else. An End has no "runs only when its
4716
+ * port fired" meaning past itself: it ends the run, whichever path arrives.
4717
+ * So a ref into an End that sits inside another port's path (two HTTP
4718
+ * branches, two outcomes, a prefix and a branch, all ending at one End) is
4719
+ * the product's own shape, one End with several incoming edges (#1231).
4720
+ */
4721
+ const endOnly = ends > 0;
4636
4722
  // A ref to a container the path is INSIDE names it as a step, so the edge
4637
4723
  // enters it from its outer input: it starts the loop over from its first
4638
4724
  // item, while the iteration the path was in never finishes. What the author
@@ -4643,10 +4729,10 @@ function checkStepRefs(built, diags) {
4643
4729
  + `next iteration, or .break() to leave the loop.`, '.continue()');
4644
4730
  continue;
4645
4731
  }
4646
- if (inPortList.has(target)) {
4732
+ if (inPortList.has(target) && !endOnly) {
4647
4733
  say('error', 'REF_INTO_PORT_LIST', `.stepToRef('${target}') ${where} targets a step inside another port's path. That path runs only when ITS `
4648
4734
  + `port fired — it is not somewhere another edge can jump into. Point at a step on the main path, or end `
4649
- + `this one with .return() / .terminate().`);
4735
+ + `this one with .return() / .terminate(). (A named End is the exception: any path may end there.)`);
4650
4736
  continue;
4651
4737
  }
4652
4738
  const targetScope = scopeOf.get(target) ?? '';
package/dist/decompile.js CHANGED
@@ -1910,6 +1910,17 @@ function emitTrigger(e, depth, trigger, imp, o, inputNames = new Set()) {
1910
1910
  // and loop bodies. Non-reducible / non-reconverging graphs fall back to a marker
1911
1911
  // rather than a hard failure (a validating flow must still yield usable code).
1912
1912
  const EXIT = '#EXIT#';
1913
+ /**
1914
+ * Every End more than one edge enters. A second path can reach one after its
1915
+ * `.return(...)` is already written, and that path then ends there with a
1916
+ * `.stepToRef` (#1231). Only a NAMED End is a ref target, so these are named up
1917
+ * front (`Ctx.refTargets`), the default id `end` included.
1918
+ */
1919
+ function sharedEnds(flow, graph) {
1920
+ return new Set((flow.nodes ?? [])
1921
+ .filter((n) => n.type === T.end && graph.inEdges(n.id).length > 1)
1922
+ .map((n) => n.id));
1923
+ }
1913
1924
  /** The node ids in a scope: the `parentId` group (root scope = no `parentId`). */
1914
1925
  function scopeIds(nodes, parentId) {
1915
1926
  return new Set(nodes.filter((n) => (n.parentId ?? undefined) === parentId).map((n) => n.id));
@@ -2282,7 +2293,7 @@ function armCb(param, segs) {
2282
2293
  function returnSeg(node, ctx) {
2283
2294
  const updates = ctx.flow.variables?.variableUpdates?.[node.id] ?? [];
2284
2295
  const outputIds = new Set(readFlowGlobals(ctx.flow.variables).filter((g) => g.direction === 'out').map((g) => g.id));
2285
- const opts = returnOptsArg(node);
2296
+ const opts = returnOptsArg(node, ctx.refTargets?.has(node.id) ?? false);
2286
2297
  const entries = updates.map((u) => `${key(u.variableId)}: ${emitVal(u.expression, ctx.imp, ctx.inputNames)}`);
2287
2298
  const written = new Set(updates.map((u) => u.variableId));
2288
2299
  for (const [name, out] of Object.entries(node.outputs ?? {})) {
@@ -2323,9 +2334,10 @@ function isIdentityEndSource(raw, name, isOutput = false) {
2323
2334
  * it — compile then refused its own decompiled source with `layout: "endNiceDay"
2324
2335
  * names no step or node in this flow`.
2325
2336
  */
2326
- function returnOptsArg(node) {
2337
+ function returnOptsArg(node, referenced = false) {
2327
2338
  const parts = [];
2328
- if (node.id !== 'end')
2339
+ // A `.stepToRef` into this End needs it named, `end` included (#1223).
2340
+ if (node.id !== 'end' || referenced)
2329
2341
  parts.push(`name: ${tsLiteral(node.id)}`);
2330
2342
  const ver = verClause(node);
2331
2343
  if (ver)
@@ -2371,7 +2383,12 @@ function region(cursor, stop, scope, ipdom, ctx, refInto) {
2371
2383
  const segs = [];
2372
2384
  while (cursor !== undefined && cursor !== stop && cursor !== EXIT) {
2373
2385
  // A ref forward: this path re-enters a step the main path reaches later.
2386
+ // That includes the main path's End: one End with several incoming edges is
2387
+ // a valid flow (the canvas draws it, `edge add` writes it), and a named End is
2388
+ // a ref target, so the side path joins it instead of minting a second End
2389
+ // (#1223). The main path's `.return(...)` then carries the End's `name`.
2374
2390
  if (refInto?.has(cursor)) {
2391
+ (ctx.refTargets ??= new Set()).add(cursor);
2375
2392
  segs.push(`.stepToRef(${tsLiteral(cursor)})`);
2376
2393
  return segs;
2377
2394
  }
@@ -2380,10 +2397,17 @@ function region(cursor, stop, scope, ipdom, ctx, refInto) {
2380
2397
  break;
2381
2398
  // A ref backward or sideways: this path has arrived somewhere already emitted.
2382
2399
  // Before, the walk simply stopped here — which silently dropped the rest of a
2383
- // cycle, and a backward edge is now something the builder can author. Ends and
2384
- // terminates are excluded: they are not named steps, so there is nothing a ref
2385
- // could resolve against, and each path emitting its own is already correct.
2386
- if (ctx.emitted.has(cursor) && node.type !== T.end && node.type !== T.terminate) {
2400
+ // cycle, and a backward edge is now something the builder can author.
2401
+ //
2402
+ // That includes an End another path already ended at (#1231): two HTTP
2403
+ // branches, two outcomes, or an entry-point prefix and a branch that all run
2404
+ // into ONE End. A second `.return(...)` there compiled to a second End
2405
+ // (`<id>2`); a ref names the one End. `decompile()` seeded `ctx.refTargets`
2406
+ // with every End more than one edge enters, so the `.return(...)` emitted
2407
+ // first already carries the End's `name` (only a named End is a ref target).
2408
+ // Terminates are still excluded: each path emitting its own is a valid flow.
2409
+ if (ctx.emitted.has(cursor) && node.type !== T.terminate
2410
+ && (node.type !== T.end || ctx.refTargets?.has(cursor))) {
2387
2411
  segs.push(`.stepToRef(${tsLiteral(cursor)})`);
2388
2412
  return segs;
2389
2413
  }
@@ -3072,6 +3096,7 @@ function emitChildFlow(name, child, ctx) {
3072
3096
  emitted: new Set(),
3073
3097
  o: ctx.o,
3074
3098
  };
3099
+ childCtx.refTargets = sharedEnds(child, childCtx.graph);
3075
3100
  const parts = [`${ctx.imp.use('flow')}(${tsLiteral(name)})`];
3076
3101
  // As for the root flow (emitFlow): every End is explicit, so nothing is implicit.
3077
3102
  parts.push('.openTails()');
@@ -3316,7 +3341,9 @@ export function decompile(flow, options = {}) {
3316
3341
  }
3317
3342
  emitVariables(e, d, flow, imp, new Set(triggerNodes.filter((t) => t !== trigger).map((t) => t.id)), shared);
3318
3343
  // Reconstruct the body: structured control flow recovered from the graph.
3319
- const ctx = { graph, flow, imp, inputNames, o: options, emitted: new Set(), shared };
3344
+ const ctx = {
3345
+ graph, flow, imp, inputNames, o: options, emitted: new Set(), shared, refTargets: sharedEnds(flow, graph),
3346
+ };
3320
3347
  const scope = scopeIds(flow.nodes ?? [], undefined);
3321
3348
  const startId = trigger?.id ?? 'start';
3322
3349
  // Walked from the trigger's successors together: a `.parallel` placed first
@@ -0,0 +1,16 @@
1
+ import { type Expr } from './core/expr.js';
2
+ import type { ReturnOptions } from './flow-sdk.js';
3
+ /**
4
+ * What makes two `.return({}, { name })` calls the SAME End: their values,
5
+ * label, version and updates, in the source form serialize writes. Two calls
6
+ * with one name and one key are one End reached from two paths; a repeat with
7
+ * a different key is DUP_END_NAME (#1231).
8
+ *
9
+ * `check` and `serialize` both key on this, so they cannot disagree about which
10
+ * repeats join (#1238 review). An empty `updates` is the same as none: both
11
+ * write no update.
12
+ */
13
+ export declare function endContentKey(step: {
14
+ values: Record<string, Expr>;
15
+ options?: ReturnOptions;
16
+ }): string;
@@ -0,0 +1,25 @@
1
+ import { toExpr } from './core/expr.js';
2
+ /** The source form of one value, as the End's mapping or update writes it (before any rename). */
3
+ function source(val) {
4
+ const e = toExpr(val);
5
+ return e.literal ? '=js:' + JSON.stringify(e.value) : '=js:' + e.js;
6
+ }
7
+ /**
8
+ * What makes two `.return({}, { name })` calls the SAME End: their values,
9
+ * label, version and updates, in the source form serialize writes. Two calls
10
+ * with one name and one key are one End reached from two paths; a repeat with
11
+ * a different key is DUP_END_NAME (#1231).
12
+ *
13
+ * `check` and `serialize` both key on this, so they cannot disagree about which
14
+ * repeats join (#1238 review). An empty `updates` is the same as none: both
15
+ * write no update.
16
+ */
17
+ export function endContentKey(step) {
18
+ const o = step.options;
19
+ return JSON.stringify([
20
+ Object.entries(step.values).map(([k, v]) => [k, source(v)]),
21
+ o?.label ?? null,
22
+ o?.version ?? null,
23
+ Object.entries(o?.updates ?? {}).map(([k, v]) => [k, source(v)]),
24
+ ]);
25
+ }
@@ -464,8 +464,15 @@ export interface ReturnOptions extends NodeOptions {
464
464
  * @remarks
465
465
  * Like a step name this is identity, not decoration: use {@link NodeOptions.label}
466
466
  * for what the canvas shows. Two Ends in one scope asking for `done` with the
467
- * same values, label and version are one End reached from both paths; Ends that
468
- * differ are de-duplicated to `done` and `done2`.
467
+ * same values, label, version and updates are one End reached from both paths.
468
+ * Two that differ in any of these, or that sit in different scopes (a loop body
469
+ * and the main path), are refused (`check`: DUP_END_NAME; `compile --no-check`
470
+ * throws) rather than renamed `done2`.
471
+ *
472
+ * A named End is also a {@link StepList.stepToRef} target: another path can
473
+ * end at this End rather than at one of its own, from anywhere in the flow,
474
+ * including another port's path (an End runs nothing after itself). `check`
475
+ * refuses the ref (REF_AMBIGUOUS_TARGET) when a step has the same name.
469
476
  *
470
477
  * ```ts
471
478
  * .branch('checkTemperature', js`${input('tempF')} > 60`,
@@ -1196,7 +1203,22 @@ declare class StepList {
1196
1203
  * can prove it refuses; what depends on the runtime it warns about and leaves to
1197
1204
  * `uip maestro flow validate`.
1198
1205
  *
1199
- * @param target - The step to continue at, named as it was in `.step(...)`.
1206
+ * The target may also be a NAMED End, `.return({…}, { name })`: the path then
1207
+ * ends at that End node instead of one of its own, so one End has several
1208
+ * incoming edges, as the canvas draws it. Unlike a step, an End inside another
1209
+ * port's path is a valid target: two HTTP branches or two outcomes can end at
1210
+ * one End. To end several paths at one End, spell its `.return` once and end
1211
+ * the other paths with `.stepToRef('<name>')`.
1212
+ *
1213
+ * ```ts
1214
+ * .step('fetch', http({ …, branches: [{ name: 'missing', condition: … }] }))
1215
+ * .stepToList('branch-missing', (b) => b.step('log', script({ … })).stepToRef('done'))
1216
+ * .step('use', script({ … }))
1217
+ * .return({}, { name: 'done' }) // both paths end at this one End
1218
+ * ```
1219
+ *
1220
+ * @param target - The step to continue at, named as it was in `.step(...)`, or
1221
+ * the `name` of a `.return(...)` End.
1200
1222
  * @returns This builder. Nothing may follow: the path has been handed off.
1201
1223
  * @see stepToList
1202
1224
  */
@@ -1216,7 +1238,8 @@ declare class StepList {
1216
1238
  * ```
1217
1239
  *
1218
1240
  * @param port - The port of this step to leave, e.g. `'error'`.
1219
- * @param target - The step to continue at, named as it was in `.step(...)`.
1241
+ * @param target - The step to continue at, named as it was in `.step(...)`, or
1242
+ * the `name` of a `.return(...)` End.
1220
1243
  * @returns This builder, so calls chain — a side exit ends nothing.
1221
1244
  * @see stepToList
1222
1245
  */
package/dist/flow-sdk.js CHANGED
@@ -840,7 +840,7 @@ class StepList {
840
840
  const target = maybeTarget === undefined ? portOrTarget : maybeTarget;
841
841
  if (typeof target !== 'string' || target.length === 0) {
842
842
  throw new TypeError(`.stepToRef() takes the NAME of the step to continue at — .stepToRef('priceIt') — and got ${JSON.stringify(target)}. `
843
- + `It is the same name you passed to .step(), so the edge can be wired after the whole flow is built.`);
843
+ + `It is the same name you passed to .step() (or a .return() End's \`name\`), so the edge can be wired after the whole flow is built.`);
844
844
  }
845
845
  // A non-default port leaves the PRECEDING step, so it is guarded the same way
846
846
  // `.stepToList()` is; the default port continues the list and needs no source.
package/dist/serialize.js CHANGED
@@ -65,6 +65,7 @@ import { resourceNodeSortOrder } from './core/process-resource-sort-order.js';
65
65
  import { types } from './core/expr.js';
66
66
  import { SUBFLOW_START_LABEL } from './core/subflow-start.js';
67
67
  import { ownEntry } from './core/own-entry.js';
68
+ import { endContentKey } from './flow-end-content.js';
68
69
  import { jsonClone } from './core/json-clone.js';
69
70
  // core-definitions.json is an object keyed by "<nodeType>@<version>".
70
71
  const DEFS = BUNDLED_DEFINITIONS;
@@ -3862,6 +3863,7 @@ function newScope(outputs, vars = [], backing = new Map(), backingReads = backin
3862
3863
  stepNodeId: new Map(),
3863
3864
  pendingEdges: [],
3864
3865
  openTails: false,
3866
+ endNodeId: new Map(),
3865
3867
  };
3866
3868
  }
3867
3869
  /**
@@ -3905,6 +3907,7 @@ function newScope(outputs, vars = [], backing = new Map(), backingReads = backin
3905
3907
  */
3906
3908
  /**
3907
3909
  * Wire every parked `.stepToRef('<step>')` edge, now that the whole scope exists.
3910
+ * The target is a step, or else a named End (`.return({}, { name })`, #1223).
3908
3911
  *
3909
3912
  * An unresolved target should be impossible — `check`'s REF_UNKNOWN_TARGET
3910
3913
  * runs first and names the steps that do exist — but a serializer that silently
@@ -3914,10 +3917,12 @@ function newScope(outputs, vars = [], backing = new Map(), backingReads = backin
3914
3917
  */
3915
3918
  function resolveRejoins(scope, addEdge) {
3916
3919
  for (const { from, target } of scope.pendingEdges) {
3917
- const id = scope.stepNodeId.get(target);
3920
+ const id = scope.stepNodeId.get(target) ?? scope.endNodeId.get(target);
3918
3921
  if (!id) {
3922
+ const ends = [...scope.endNodeId.keys()];
3919
3923
  throw new Error(`.stepToRef('${target}') names a step this flow does not have. Known steps: `
3920
- + `${[...scope.stepNodeId.keys()].join(', ') || '(none)'}.`);
3924
+ + `${[...scope.stepNodeId.keys()].join(', ') || '(none)'}`
3925
+ + `${ends.length ? `; named Ends: ${ends.join(', ')}` : ''}.`);
3921
3926
  }
3922
3927
  // Through the serializer's own `addEdge`, so the id comes from the one
3923
3928
  // file-wide counter. A per-scope count (`edge_ref_${scope.edges.length}`)
@@ -6492,19 +6497,33 @@ export function serialize(built, opts = {}) {
6492
6497
  // Decompile writes one `.return` per path into an End that several paths
6493
6498
  // share, so a repeat of an earlier named End in this scope, with the same
6494
6499
  // content, is that End reached again rather than a second one.
6495
- const sig = JSON.stringify([parentId ?? null, step.options?.label ?? null, step.options?.version ?? null, explicit, updates]);
6500
+ // `endContentKey` is the key `check` counts DUP_END_NAME on, so `check`
6501
+ // and `compile --no-check` agree on which repeats join.
6502
+ const sig = JSON.stringify([parentId ?? null, endContentKey(step)]);
6496
6503
  const prior = name === undefined ? undefined : namedEnds.get(scope)?.get(name);
6497
6504
  if (prior?.sig === sig) {
6498
6505
  for (const t of tails)
6499
6506
  addEdge(scope, t, prior.id);
6500
6507
  }
6501
6508
  else {
6509
+ // A repeat that DIFFERS is refused, not renamed `<name>2`: the rename
6510
+ // turned one End shared by two paths into two Ends with no word said
6511
+ // (#1231). `check` reports it first as DUP_END_NAME; this is the
6512
+ // backstop for `--no-check`.
6513
+ if (prior) {
6514
+ throw new Error(`Two .return({}, { name: '${name}' }) calls ask for the same End with different values, label, version, updates or scope. `
6515
+ + `To end several paths at one End, keep one .return and end the others with .stepToRef('${name}'); `
6516
+ + `to have separate Ends, give each its own name.`);
6517
+ }
6502
6518
  const id = uid(scope, name ?? 'end');
6503
6519
  emitEnd(scope, id, tails, { label: step.options?.label, parentId, requestedVersion: step.options?.version, explicit });
6504
6520
  if (updates.length)
6505
6521
  scope.variableUpdates[id] = updates;
6506
6522
  if (name !== undefined && !prior) {
6507
6523
  (namedEnds.get(scope) ?? namedEnds.set(scope, new Map()).get(scope)).set(name, { id, sig });
6524
+ // A NAMED End can be a `.stepToRef` target (#1223); an unnamed one
6525
+ // cannot, since its id (`end`, `end2`, …) depends on emission order.
6526
+ scope.endNodeId.set(name, id);
6508
6527
  }
6509
6528
  }
6510
6529
  tails = [];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uipath/maestro-builder-sdk",
3
- "version": "6.31.9",
3
+ "version": "6.32.1",
4
4
  "description": "Build UiPath Flow, Case, and BPMN artifacts by writing TypeScript.",
5
5
  "license": "MIT",
6
6
  "homepage": "https://docs.uipath.com/maestro",
@@ -93,5 +93,5 @@
93
93
  "@types/node": "^22.7.0",
94
94
  "esbuild": "^0.28.1"
95
95
  },
96
- "gitref": "e812e24ab6455bcc1ffeb6f806e9cd0d09cbe389"
96
+ "gitref": "275e6e4608b243bee96fd531b3228f95261f3b32"
97
97
  }