@uipath/skills 1.204.0 → 1.204.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.
Files changed (191) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/.cursor-plugin/plugin.json +1 -1
  4. package/CODEOWNERS +12 -14
  5. package/package.json +1 -1
  6. package/skills/uipath-agents/references/coded/embedding-in-flows.md +1 -3
  7. package/skills/uipath-agents/references/coded/quickstart.md +0 -2
  8. package/skills/uipath-agents/references/lowcode/capabilities/inline-in-flow/inline-in-flow.md +10 -8
  9. package/skills/uipath-agents/references/lowcode/prompting/autonomous-agent-prompting-guide.md +1 -1
  10. package/skills/uipath-human-in-the-loop/SKILL.md +1 -3
  11. package/skills/uipath-human-in-the-loop/references/hitl-node-apptask.md +0 -2
  12. package/skills/uipath-human-in-the-loop/references/hitl-node-coded-action-app.md +0 -2
  13. package/skills/uipath-human-in-the-loop/references/hitl-node-quickform.md +2 -2
  14. package/skills/uipath-maestro-flow/.maintenance/README.md +265 -0
  15. package/skills/uipath-maestro-flow/.maintenance/check-all.sh +40 -0
  16. package/skills/uipath-maestro-flow/.maintenance/check-anchors.sh +101 -0
  17. package/skills/uipath-maestro-flow/.maintenance/check-depth.sh +132 -0
  18. package/skills/uipath-maestro-flow/.maintenance/check-link-text.sh +123 -0
  19. package/skills/uipath-maestro-flow/.maintenance/check-links.sh +73 -0
  20. package/skills/uipath-maestro-flow/.maintenance/check-orphans.sh +93 -0
  21. package/skills/uipath-maestro-flow/.maintenance/check-plugin-pairs.sh +39 -0
  22. package/skills/uipath-maestro-flow/.maintenance/check-template.sh +42 -0
  23. package/skills/uipath-maestro-flow/.maintenance/check-uip-commands.sh +270 -0
  24. package/skills/uipath-maestro-flow/.maintenance/check-versions.sh +160 -0
  25. package/skills/uipath-maestro-flow/SKILL.md +69 -886
  26. package/skills/uipath-maestro-flow/references/author/CAPABILITY.md +207 -0
  27. package/skills/uipath-maestro-flow/references/author/brownfield.md +91 -0
  28. package/skills/uipath-maestro-flow/references/author/editing-operations-cli.md +190 -0
  29. package/skills/uipath-maestro-flow/references/author/editing-operations-json.md +374 -0
  30. package/skills/uipath-maestro-flow/references/author/editing-operations.md +104 -0
  31. package/skills/uipath-maestro-flow/references/author/greenfield.md +420 -0
  32. package/skills/uipath-maestro-flow/references/author/planning-arch.md +364 -0
  33. package/skills/uipath-maestro-flow/references/author/planning-impl.md +291 -0
  34. package/skills/uipath-maestro-flow/references/author/plugins/agent/impl.md +237 -0
  35. package/skills/uipath-maestro-flow/references/author/plugins/agent/planning.md +97 -0
  36. package/skills/uipath-maestro-flow/references/author/plugins/agentic-process/impl.md +107 -0
  37. package/skills/uipath-maestro-flow/references/author/plugins/agentic-process/planning.md +61 -0
  38. package/skills/uipath-maestro-flow/references/author/plugins/api-workflow/impl.md +108 -0
  39. package/skills/uipath-maestro-flow/references/author/plugins/api-workflow/planning.md +60 -0
  40. package/skills/uipath-maestro-flow/references/author/plugins/batch-transform/impl.md +171 -0
  41. package/skills/uipath-maestro-flow/references/author/plugins/batch-transform/planning.md +72 -0
  42. package/skills/uipath-maestro-flow/references/author/plugins/connector/impl-inline.md +120 -0
  43. package/skills/uipath-maestro-flow/references/author/plugins/connector/impl.md +463 -0
  44. package/skills/uipath-maestro-flow/references/author/plugins/connector/planning.md +186 -0
  45. package/skills/uipath-maestro-flow/references/author/plugins/connector-trigger/impl.md +517 -0
  46. package/skills/uipath-maestro-flow/references/author/plugins/connector-trigger/planning.md +115 -0
  47. package/skills/uipath-maestro-flow/references/author/plugins/conversational-agent/impl.md +309 -0
  48. package/skills/uipath-maestro-flow/references/author/plugins/conversational-agent/planning.md +133 -0
  49. package/skills/uipath-maestro-flow/references/author/plugins/data-fabric/impl.md +428 -0
  50. package/skills/uipath-maestro-flow/references/author/plugins/data-fabric/planning.md +188 -0
  51. package/skills/uipath-maestro-flow/references/author/plugins/decision/impl.md +83 -0
  52. package/skills/uipath-maestro-flow/references/author/plugins/decision/planning.md +38 -0
  53. package/skills/uipath-maestro-flow/references/author/plugins/delay/impl.md +38 -0
  54. package/skills/uipath-maestro-flow/references/author/plugins/delay/planning.md +53 -0
  55. package/skills/uipath-maestro-flow/references/author/plugins/end/impl.md +56 -0
  56. package/skills/uipath-maestro-flow/references/author/plugins/end/planning.md +28 -0
  57. package/skills/uipath-maestro-flow/references/author/plugins/flow/impl.md +107 -0
  58. package/skills/uipath-maestro-flow/references/author/plugins/flow/planning.md +58 -0
  59. package/skills/uipath-maestro-flow/references/author/plugins/hitl/impl.md +181 -0
  60. package/skills/uipath-maestro-flow/references/author/plugins/hitl/planning.md +166 -0
  61. package/skills/uipath-maestro-flow/references/author/plugins/http/impl-connector.md +86 -0
  62. package/skills/uipath-maestro-flow/references/author/plugins/http/impl-manual.md +68 -0
  63. package/skills/uipath-maestro-flow/references/author/plugins/http/impl.md +173 -0
  64. package/skills/uipath-maestro-flow/references/author/plugins/http/planning.md +107 -0
  65. package/skills/uipath-maestro-flow/references/author/plugins/inline-agent/impl.md +540 -0
  66. package/skills/uipath-maestro-flow/references/author/plugins/inline-agent/planning.md +115 -0
  67. package/skills/uipath-maestro-flow/references/author/plugins/inline-voice-agent/impl.md +269 -0
  68. package/skills/uipath-maestro-flow/references/author/plugins/inline-voice-agent/planning.md +128 -0
  69. package/skills/uipath-maestro-flow/references/author/plugins/ixp/impl.md +424 -0
  70. package/skills/uipath-maestro-flow/references/author/plugins/ixp/planning.md +95 -0
  71. package/skills/uipath-maestro-flow/references/author/plugins/loop/impl.md +403 -0
  72. package/skills/uipath-maestro-flow/references/author/plugins/loop/planning.md +60 -0
  73. package/skills/uipath-maestro-flow/references/author/plugins/merge/impl.md +43 -0
  74. package/skills/uipath-maestro-flow/references/author/plugins/merge/planning.md +24 -0
  75. package/skills/uipath-maestro-flow/references/author/plugins/queue/impl.md +82 -0
  76. package/skills/uipath-maestro-flow/references/author/plugins/queue/planning.md +44 -0
  77. package/skills/uipath-maestro-flow/references/author/plugins/rpa/impl.md +117 -0
  78. package/skills/uipath-maestro-flow/references/author/plugins/rpa/planning.md +61 -0
  79. package/skills/uipath-maestro-flow/references/author/plugins/scheduled-trigger/impl.md +56 -0
  80. package/skills/uipath-maestro-flow/references/author/plugins/scheduled-trigger/planning.md +93 -0
  81. package/skills/uipath-maestro-flow/references/author/plugins/script/impl.md +98 -0
  82. package/skills/uipath-maestro-flow/references/author/plugins/script/planning.md +42 -0
  83. package/skills/uipath-maestro-flow/references/author/plugins/subflow/impl.md +164 -0
  84. package/skills/uipath-maestro-flow/references/author/plugins/subflow/planning.md +35 -0
  85. package/skills/uipath-maestro-flow/references/author/plugins/summarize/impl.md +189 -0
  86. package/skills/uipath-maestro-flow/references/author/plugins/summarize/planning.md +66 -0
  87. package/skills/uipath-maestro-flow/references/author/plugins/switch/impl.md +72 -0
  88. package/skills/uipath-maestro-flow/references/author/plugins/switch/planning.md +34 -0
  89. package/skills/uipath-maestro-flow/references/author/plugins/terminate/impl.md +48 -0
  90. package/skills/uipath-maestro-flow/references/author/plugins/terminate/planning.md +29 -0
  91. package/skills/uipath-maestro-flow/references/author/plugins/transform/impl.md +252 -0
  92. package/skills/uipath-maestro-flow/references/author/plugins/transform/planning.md +47 -0
  93. package/skills/uipath-maestro-flow/references/diagnose/CAPABILITY.md +73 -0
  94. package/skills/uipath-maestro-flow/references/diagnose/failure-modes.md +353 -0
  95. package/skills/uipath-maestro-flow/references/diagnose/troubleshooting-guide.md +174 -0
  96. package/skills/uipath-maestro-flow/references/evaluate/CAPABILITY.md +134 -0
  97. package/skills/uipath-maestro-flow/references/evaluate/commands-reference.md +376 -0
  98. package/skills/uipath-maestro-flow/references/evaluate/eval-sets-guide.md +227 -0
  99. package/skills/uipath-maestro-flow/references/evaluate/evaluators-guide.md +143 -0
  100. package/skills/uipath-maestro-flow/references/evaluate/running-guide.md +215 -0
  101. package/skills/uipath-maestro-flow/references/evaluate/upload-safety.md +94 -0
  102. package/skills/uipath-maestro-flow/references/operate/CAPABILITY.md +77 -0
  103. package/skills/uipath-maestro-flow/references/operate/manage.md +39 -0
  104. package/skills/uipath-maestro-flow/references/operate/run.md +121 -0
  105. package/skills/uipath-maestro-flow/references/operate/ship.md +57 -0
  106. package/skills/uipath-maestro-flow/references/shared/action-nodes.md +100 -0
  107. package/skills/uipath-maestro-flow/references/shared/cli-commands.md +269 -0
  108. package/skills/uipath-maestro-flow/references/shared/cli-conventions.md +178 -0
  109. package/skills/uipath-maestro-flow/references/shared/file-format.md +582 -0
  110. package/skills/uipath-maestro-flow/references/shared/node-output-wiring.md +86 -0
  111. package/skills/uipath-maestro-flow/references/shared/ux-narration-and-todos.md +113 -0
  112. package/skills/uipath-maestro-flow/references/shared/variables-and-expressions.md +787 -0
  113. package/skills/uipath-platform/references/integration-service/activities.md +2 -2
  114. package/skills/uipath-platform/references/integration-service/activity-generation.md +8 -1
  115. package/skills/uipath-platform/references/integration-service/triggers.md +1 -3
  116. package/version-manifest.json +1 -1
  117. package/skills/uipath-maestro-flow/examples/AquariumSafetyStop.flow.ts +0 -26
  118. package/skills/uipath-maestro-flow/examples/ArchiveCardExtract.flow.ts +0 -38
  119. package/skills/uipath-maestro-flow/examples/BakeOffEntryForm.flow.ts +0 -27
  120. package/skills/uipath-maestro-flow/examples/BeeHiveLedger.flow.ts +0 -61
  121. package/skills/uipath-maestro-flow/examples/BeltProgression.flow.ts +0 -53
  122. package/skills/uipath-maestro-flow/examples/BirdCountLookup.flow.ts +0 -24
  123. package/skills/uipath-maestro-flow/examples/ClubDirectory.flow.ts +0 -56
  124. package/skills/uipath-maestro-flow/examples/ConcertSoundcheck.flow.ts +0 -59
  125. package/skills/uipath-maestro-flow/examples/DoorbellLog.flow.ts +0 -45
  126. package/skills/uipath-maestro-flow/examples/FestivalMapScaffold.flow.ts +0 -22
  127. package/skills/uipath-maestro-flow/examples/FieldTripQuickForm.flow.ts +0 -45
  128. package/skills/uipath-maestro-flow/examples/FossilCatalogEnrich.flow.ts +0 -26
  129. package/skills/uipath-maestro-flow/examples/GallerySubmission.flow.ts +0 -67
  130. package/skills/uipath-maestro-flow/examples/GreenhouseWatering.flow.ts +0 -39
  131. package/skills/uipath-maestro-flow/examples/HarbourRadioLine.flow.ts +0 -31
  132. package/skills/uipath-maestro-flow/examples/HerbariumDispatch.flow.ts +0 -34
  133. package/skills/uipath-maestro-flow/examples/KilnReview.flow.ts +0 -38
  134. package/skills/uipath-maestro-flow/examples/LibraryDeskChat.flow.ts +0 -39
  135. package/skills/uipath-maestro-flow/examples/LighthouseSignal.flow.ts +0 -30
  136. package/skills/uipath-maestro-flow/examples/MeteorShowerPages.flow.ts +0 -39
  137. package/skills/uipath-maestro-flow/examples/NeighborhoodWalkPlanner.flow.ts +0 -27
  138. package/skills/uipath-maestro-flow/examples/ObservatorySeeing.flow.ts +0 -51
  139. package/skills/uipath-maestro-flow/examples/OralHistoryDigest.flow.ts +0 -31
  140. package/skills/uipath-maestro-flow/examples/PlanetariumConfirmation.flow.ts +0 -34
  141. package/skills/uipath-maestro-flow/examples/PlantNameAdvisor.flow.ts +0 -28
  142. package/skills/uipath-maestro-flow/examples/PostcardCaption.flow.ts +0 -44
  143. package/skills/uipath-maestro-flow/examples/PotteryStudioCallback.flow.ts +0 -41
  144. package/skills/uipath-maestro-flow/examples/RecipeScaler.flow.ts +0 -62
  145. package/skills/uipath-maestro-flow/examples/SeedPacketReader.flow.ts +0 -49
  146. package/skills/uipath-maestro-flow/examples/TideTableConverter.flow.ts +0 -35
  147. package/skills/uipath-maestro-flow/examples/TrailLogSummary.flow.ts +0 -75
  148. package/skills/uipath-maestro-flow/examples/WorkshopInventory.flow.ts +0 -27
  149. package/skills/uipath-maestro-flow/examples/bindings.json +0 -85
  150. package/skills/uipath-maestro-flow/references/CLI-LOOP.md +0 -309
  151. package/skills/uipath-maestro-flow/references/agent-resources.md +0 -74
  152. package/skills/uipath-maestro-flow/references/agent.md +0 -175
  153. package/skills/uipath-maestro-flow/references/agentic-process.md +0 -41
  154. package/skills/uipath-maestro-flow/references/api-workflow.md +0 -29
  155. package/skills/uipath-maestro-flow/references/author.md +0 -178
  156. package/skills/uipath-maestro-flow/references/batch-transform.md +0 -23
  157. package/skills/uipath-maestro-flow/references/bindings.md +0 -178
  158. package/skills/uipath-maestro-flow/references/branch.md +0 -18
  159. package/skills/uipath-maestro-flow/references/brownfield.md +0 -152
  160. package/skills/uipath-maestro-flow/references/connector-params.md +0 -624
  161. package/skills/uipath-maestro-flow/references/conversational.md +0 -77
  162. package/skills/uipath-maestro-flow/references/data-fabric.md +0 -268
  163. package/skills/uipath-maestro-flow/references/delay.md +0 -26
  164. package/skills/uipath-maestro-flow/references/diagnose.md +0 -141
  165. package/skills/uipath-maestro-flow/references/document-pipeline.md +0 -47
  166. package/skills/uipath-maestro-flow/references/error-handling.md +0 -75
  167. package/skills/uipath-maestro-flow/references/evaluate.md +0 -168
  168. package/skills/uipath-maestro-flow/references/event-trigger.md +0 -155
  169. package/skills/uipath-maestro-flow/references/form-trigger.md +0 -41
  170. package/skills/uipath-maestro-flow/references/hitl.md +0 -169
  171. package/skills/uipath-maestro-flow/references/http.md +0 -105
  172. package/skills/uipath-maestro-flow/references/inline-agent.md +0 -132
  173. package/skills/uipath-maestro-flow/references/ixp.md +0 -167
  174. package/skills/uipath-maestro-flow/references/loops.md +0 -77
  175. package/skills/uipath-maestro-flow/references/manual-trigger.md +0 -39
  176. package/skills/uipath-maestro-flow/references/operate.md +0 -204
  177. package/skills/uipath-maestro-flow/references/or-processes.md +0 -91
  178. package/skills/uipath-maestro-flow/references/parallel-merge.md +0 -21
  179. package/skills/uipath-maestro-flow/references/placeholder.md +0 -70
  180. package/skills/uipath-maestro-flow/references/published-function.md +0 -66
  181. package/skills/uipath-maestro-flow/references/queue.md +0 -53
  182. package/skills/uipath-maestro-flow/references/return.md +0 -20
  183. package/skills/uipath-maestro-flow/references/rpa-workflow.md +0 -27
  184. package/skills/uipath-maestro-flow/references/scheduled-trigger.md +0 -34
  185. package/skills/uipath-maestro-flow/references/script.md +0 -52
  186. package/skills/uipath-maestro-flow/references/subflow.md +0 -33
  187. package/skills/uipath-maestro-flow/references/summarize.md +0 -20
  188. package/skills/uipath-maestro-flow/references/switch.md +0 -20
  189. package/skills/uipath-maestro-flow/references/terminate.md +0 -22
  190. package/skills/uipath-maestro-flow/references/transform.md +0 -32
  191. package/skills/uipath-maestro-flow/references/voice.md +0 -70
@@ -1,91 +0,0 @@
1
- # Orchestrator Processes
2
-
3
- Orchestrator has several process types:
4
-
5
- - Agent - see [Agent](agent.md)
6
- - Api - see [API Workflow](api-workflow.md)
7
- - CaseManagement
8
- - Flow
9
- - Function
10
- - Process
11
- - ProcessOrchestration - see [Agentic Process](agentic-process.md)
12
- - TestAutomationProcess
13
- - WebApp
14
-
15
- ## Finding a process
16
-
17
- List the available processes with the process type using either of the following commands, depending on if you know the folder:
18
-
19
- ```shell
20
- uip or processes list --all-folders --process-type !!ProcessType!! --limit 200 --output json
21
- uip or processes list --folder-path '<folder>' --process-type !!ProcessType!! --limit 200 --output json
22
- ```
23
-
24
- Replace `!!ProcessType!!` with the process type, e.g. `Agent` or `ProcessOrchestration`.
25
-
26
- The `list` command is paginated.
27
- If the output field *Pagination.HasMore* flag is true, there are more results available.
28
- Use `--offset` to move to the next set of results.
29
-
30
- The resulting list will have *Name*, *ProcessKey*, and sometimes *Description* fields that may help identify the process you need.
31
- Note that there is a flag *IsLatestVersion* in case there are multiple published versions with the same process key.
32
- The *Key* field (GUID) is the unique id for the process.
33
-
34
- ## Getting the inputs and outputs
35
-
36
- Once you find the process, you must use the `get` command with the *Key* to retrieve more details.
37
- The inputs and outputs of a published process are buried in the *ArgumentsV2* field that is only exposed when using the `--all-fields` option.
38
- The *Input* and *Output* parameters inside *ArgumentsV2* are escaped JSON strings.
39
- The following CLI command can be used to extract inputs and outputs as JSON text:
40
-
41
- ```shell
42
- uip or processes get BAADF00D-BAAD-F00D-BAAD-F00DBAADF00D --all-fields --output json 2>/dev/null \
43
- | jq '.Data.ArgumentsV2 | {Input, Output} | map_values(if (. // "") == "" then null else fromjson end)'
44
- ```
45
-
46
- Here is an example output of this command:
47
-
48
- ```json
49
- {
50
- "Input": {
51
- "type": "object",
52
- "properties": {
53
- "productId": {
54
- "type": "integer",
55
- "title": "productId"
56
- }
57
- },
58
- "required": []
59
- },
60
- "Output": {
61
- "type": "object",
62
- "properties": {
63
- "status": {
64
- "type": "boolean",
65
- "title": "status"
66
- }
67
- },
68
- "required": []
69
- }
70
- }
71
- ```
72
-
73
- The defined inputs and outputs would be represented in an action similar to the following:
74
-
75
- ```ts
76
- .step('intake',
77
- agenticProcess({
78
- key: 'BAADF00D-BAAD-F00D-BAAD-F00DBAADF00D',
79
- name: 'ProcurementProcess',
80
- folderPath: 'Shared',
81
- inputs: { productId: 1 }, // input object
82
- returns: { status: 'boolean' } // output object
83
- }))
84
- ```
85
-
86
- ## Notes
87
-
88
- Sometimes you need to search across multiple process types.
89
- For example, the **ProcessOrchestration**, **CaseManagement**, and **Flow** process types could all be considered "Agentic Processes".
90
- The `--process-type` filter does not accept multiple entries.
91
- When performing a `list` command, the default fields returned do not include *ProcessType* so you will need either to use the `--all-fields` option or run multiple `list` commands with each process type.
@@ -1,21 +0,0 @@
1
- # Parallel / Merge
2
-
3
- Parallel fans control into two or more arms and joins them on a Merge.
4
-
5
- Signature: `.parallel(name, [armFn, armFn, ...])`; `name` identifies the Merge.
6
-
7
- ```ts
8
- .parallel('ready', [
9
- (a) => a.step('weather', http({ url: weatherUrl, managed: false })),
10
- (b) => b.step('news', http({ url: newsUrl, managed: false })),
11
- ])
12
- .step('combine', script({ code: 'return "ready";' }))
13
- ```
14
-
15
- Use parallel only when the arms are independent: neither arm may require the
16
- other's result before the join. It expresses graph independence, not a promise
17
- that every executor schedules work concurrently; the local executor processes
18
- arms in authored order.
19
-
20
- Work after `.parallel(...)` continues from its `output` port and can read the
21
- outputs of each arm.
@@ -1,70 +0,0 @@
1
- # Placeholder
2
-
3
- *Exact signatures, fields, and defaults: `mock()`.*
4
-
5
- A placeholder says that a real capability belongs at this point in the graph
6
- but does not exist yet.
7
-
8
- Signature: `mock()`.
9
-
10
- ```ts
11
- .step('extractInvoice', mock())
12
- .step('continueWithInput', script({
13
- code: 'return $vars.assumedInvoiceId;' }))
14
- ```
15
-
16
- Use a real script when downstream work needs temporary fixed data; that script
17
- has the same behavior locally and after deployment. A script is never a
18
- stand-in for the capability itself (an extraction, an external service, a
19
- connector action). Search first, as [SKILL.md, "Choose the node before
20
- writing it"](../SKILL.md) says, and use the node it finds; for extraction, an
21
- agent, or a process, run the search exactly as the family reference gives it
22
- ([`ixp.md`](ixp.md), [`agent.md`](agent.md)). Use a placeholder only when that
23
- search comes back empty; it makes the missing capability visible. Do not use it
24
- merely to disable a step or as the only work in a finished Flow.
25
-
26
- When `check` reports `MOCK_HAS_NO_OUTPUT` because a later step reads the mock,
27
- keep the mock and feed that step from a separate step, as in the example above;
28
- never replace the mock with a script that fakes its output.
29
-
30
- ## Unknown node types
31
-
32
- `mock()` is a deliberate placeholder — a node that stands in for work not yet
33
- decided. It is NOT the way to carry a node the SDK has no factory for: it
34
- compiles to `core.logic.mock`, so the original type is gone.
35
-
36
- For that, use `rawNode({ nodeType, version, manifest, inputs? })`. It carries
37
- the definition the platform serves for that `nodeType@version`, so the node
38
- keeps its identity and its inputs:
39
-
40
- ```ts
41
- .step('exotic', rawNode({
42
- nodeType: 'uipath.exotic.thing', version: '2.1',
43
- manifest: exoticManifest, // verbatim from `registry get`
44
- inputs: { where: input('scope') },
45
- }))
46
- ```
47
-
48
- Two rules. **The manifest must be real** — an exact copy of what
49
- `uip maestro flow registry get <nodeType>` returns (after
50
- `registry pull --force`, since registry reads are cached). A hand-written
51
- manifest validates locally and fails on the tenant, which resolves the node
52
- against its own catalog. **Prefer a typed factory** whenever one exists: it
53
- carries the family's check rules, its defaults and its output contract, none of
54
- which a raw node can know.
55
-
56
- **Never for a connector.** A `uipath.connector.*` node type is refused by
57
- `check` (`RAW_NODE_CONNECTOR`) and by `compile`. A raw node keeps its inputs
58
- verbatim, so the emitted connector node has no `inputs.detail` and no
59
- connection binding: `uip maestro flow validate` only warns ("Connector is not
60
- configured") and the run can never reach Integration Service. Measured on the
61
- eval archive, every Data Fabric flow authored this way failed its checker. The
62
- situation that tempts it — `compile` refusing a body field as `unknown input`
63
- because the static library does not carry it — is what
64
- `uip maestro registry prepare <key> <action>` exists for (add
65
- `-f entityName=<Entity>` for a Data Service operation); see the
66
- [parent-field loop](connector-params.md#schema-dynamic-operations-the-parent-field-loop).
67
-
68
- `decompile` emits `rawNode(...)` for any node type it cannot name, hoisting the
69
- manifest to a `const` beside the flow. So `mock()` in decompiled source means
70
- the flow really contains a placeholder.
@@ -1,66 +0,0 @@
1
- # Published function
2
-
3
- *Exact signatures, fields, and defaults: `publishedFunction()`.*
4
-
5
- A **Function** is a small, single-purpose unit of code deployed to Orchestrator
6
- as its own resource. `publishedFunction()` invokes one as a single step
7
- (`uipath.core.function.<key>`, dispatched as
8
- `Orchestrator.ExecuteFunctionAsync`).
9
-
10
- Signature: `publishedFunction({ key, name, folderPath, inputs?, returns? })`.
11
-
12
- ```ts
13
- .step('echo', publishedFunction({
14
- key: '7059bdb5-fdd7-4e13-9d7b-1748aaeb129d',
15
- name: 'acme-echo',
16
- folderPath: 'Shared/acme-echo',
17
- inputs: { message: input('message') },
18
- returns: { echoed: 'string' },
19
- }))
20
- .step('relay', script({ code: 'return $vars.echo.output.echoed;' }))
21
- ```
22
-
23
- ## Identity
24
-
25
- Three fields, none of them derivable:
26
-
27
- - **`key`** — the function's GUID; it becomes the node type's suffix, so a wrong
28
- one emits a node the tenant cannot resolve. Find it with
29
- `uip maestro flow registry search "uipath.core.function"` (after
30
- `registry pull --force`, since registry reads are cached).
31
- - **`name`** — the function's own name in Orchestrator.
32
- - **`folderPath`** — the folder it is deployed in. **A function is usually
33
- deployed into a folder of its OWN name** (`'Shared/acme-echo'`, not
34
- `'Shared'`). The binding's `resourceKey` is `<folderPath>.<name>`, so
35
- assuming `'Shared'` points the dispatch at nothing while still validating.
36
-
37
- Two steps on the same function share ONE binding pair, exactly as the other
38
- published families do.
39
-
40
- ## Declaring what it returns
41
-
42
- `returns` is required if anything reads the step's output. The function's real
43
- output arguments live on the tenant and authoring is offline, so an undeclared
44
- read is rejected (`FUNCTION_READ_WITHOUT_RETURNS`) — nothing here could tell a
45
- real field from a typo. `registry get uipath.core.function.<key>` shows what the
46
- platform synthesizes for a deployed one.
47
-
48
- ## Which family to reach for
49
-
50
- | The deployed thing | Factory |
51
- | --- | --- |
52
- | A Function (a unit of code, its own resource) | `publishedFunction()` |
53
- | A coded API workflow | `apiWorkflow()` |
54
- | An RPA process | `rpaWorkflow()` |
55
- | A Maestro process orchestration | `agenticProcess()` |
56
-
57
- They share one emit path and differ only in service type and binding subtype, so
58
- picking the wrong one produces a flow that validates and dispatches nothing.
59
- Match the family the scenario names.
60
-
61
- ## Evidence boundary
62
-
63
- Offline `validate` proves the node type, the binding pair and the declared
64
- output schema. That the function exists, accepts those arguments, and returns
65
- those fields is platform evidence — `.onError(...)` is supported for the
66
- dispatch failing.
@@ -1,53 +0,0 @@
1
- # Queue Item
2
-
3
- *Exact signatures, fields, and defaults: `queueItem()`.*
4
-
5
- Create work on an Orchestrator queue, optionally waiting for another automation
6
- to process it.
7
-
8
- Signature:
9
- `queueItem({ queue, folderPath, key, item, priority?, reference?, deferDate?, dueDate?, wait?, returns? })`.
10
-
11
- ```ts
12
- .step('enqueue', queueItem({ queue: 'Invoices', folderPath: 'Shared',
13
- key: queueKey, item: { InvoiceId: input('invoiceId') },
14
- reference: input('invoiceId'), wait: false }))
15
- ```
16
-
17
- ## Reading what the create returned
18
-
19
- The node's output carries the Orchestrator record of the item it created — `Id`,
20
- `Key`, `UniqueKey`, `Reference`, `Status` and the rest of the queue-item schema.
21
- Read a field with `out('<step>', '<Field>')`; do NOT add a script step to
22
- re-derive it, and do not invent a variable for the item:
23
-
24
- ```ts
25
- .step('enqueue', queueItem({ queue: 'Invoices', folderPath: 'Shared',
26
- key: queueKey, item: { InvoiceId: input('invoiceId') } }))
27
- .return({ itemKey: out('enqueue', 'Key') })
28
- ```
29
-
30
- `out('enqueue', 'Key')` is the whole read. It serializes to
31
- `$vars.enqueue.output.Key`, the spelling the runtime resolves. A `script()` step
32
- that reads the node and republishes the key is longer and adds nothing.
33
-
34
- ## Tenant settings
35
-
36
- Queue-level settings are not present in source. A queue may require unique
37
- references or enforce an item schema. Inspect it with
38
- `uip or queues list --all-folders`; derive a required reference from run input
39
- rather than using a constant that works only once.
40
-
41
- ## Whether to wait
42
-
43
- Use `wait: true` only when the current Flow needs the consumer's result and a
44
- real automation drains the queue. Otherwise enqueue and let a separate process
45
- own consumption. For a waiting step, decide whether failed/abandoned processing
46
- should be handled or should fault this Flow.
47
-
48
- ## Evidence boundary
49
-
50
- Replay uses a synthesized item/result. Live mode creates a real item and, for a
51
- wait, polls its real state. A green create proves the producer side only; a
52
- green wait also depends on the external consumer and should preserve its item
53
- key and terminal state as evidence.
@@ -1,20 +0,0 @@
1
- # Return / End
2
-
3
- Return ends the current path and binds the Flow's declared outputs.
4
-
5
- Signature: `.return({ outputName: expression, ... })`.
6
-
7
- ```ts
8
- .branch('valid', out('check'),
9
- (yes) => yes.return({ status: 'accepted' }),
10
- (no) => no.return({ status: 'rejected' }))
11
- ```
12
-
13
- Returning in each arm is appropriate when those paths are complete. Let arms
14
- fall through to a shared successor when they need common work before the final
15
- answer. This is different from `.terminate(...)`: Return completes its path
16
- with values; Terminate aborts the whole run.
17
-
18
- Any dangling tail gets an End automatically; an explicit `.return(...)` is required
19
- only when values must be bound. Multiple path ends are emitted as `end`, `end2`,
20
- `end3`, and so on.
@@ -1,27 +0,0 @@
1
- # RPA Workflow
2
-
3
- *Exact signatures, fields, and defaults: `rpaWorkflow()`.*
4
-
5
- Run a published robotic process and wait for its output arguments.
6
-
7
- Signature: `rpaWorkflow({ key, name, folderPath, inputs?, returns? })`.
8
-
9
- ```ts
10
- .step('title', rpaWorkflow({ key: releaseKey,
11
- name: 'RPA Workflow', folderPath: 'Shared',
12
- inputs: { problemId: 123 }, returns: { title: 'string' } }))
13
- ```
14
-
15
- ## Tenant contract
16
-
17
- The release key, name, and folder must identify the same deployed process.
18
- Inputs and returns are that process's own argument names and exact casing; the
19
- offline SDK cannot discover their truth. Inspect the registry/process listing
20
- and the deployed contract rather than copying values from a different folder.
21
-
22
- ## Evidence boundary
23
-
24
- Replay proves the graph with synthesized job output. Live evidence should show
25
- a real Orchestrator job, the intended input arguments, completion, and the
26
- returned values. Whether the robot performed the right UI/business work is a
27
- separate assertion from job completion.
@@ -1,34 +0,0 @@
1
- # Scheduled Trigger
2
-
3
- *Exact signatures, fields, and defaults: `scheduled()`.*
4
-
5
- A scheduled trigger asks the platform scheduler to start a Flow repeatedly.
6
-
7
- Signature: `.trigger(scheduled({ every: string }))`.
8
-
9
- ```ts
10
- export default flow('nightly')
11
- .trigger(scheduled({ every: 'R/P1D' }))
12
- .step('rollup', script({ code: 'return { ok: true };' }))
13
- .build();
14
- ```
15
-
16
- ## Authoring judgment
17
-
18
- A timer usually has no caller, so prefer `.var(...)` defaults or tenant-backed
19
- steps over required caller inputs unless the deployment supplies configured
20
- values. Pick the interval from the business requirement rather than from what
21
- is convenient to test.
22
-
23
- ## Evidence boundary
24
-
25
- Local execution starts the graph directly. It proves the scheduled node was
26
- emitted with the authored interval and that the downstream graph runs; it does
27
- not prove the platform scheduler fired. The scheduling claim requires a
28
- deployed run observed at the requested cadence.
29
-
30
- `every` is an ISO-8601 repeating interval (`R/PT30M`, `R/PT1H`, `R/P1W`) or a
31
- Quartz cron expression (`0 0 2 * * ?`, `0 30 9 ? * MON-FRI`). A cron `every`
32
- selects the trigger's 1.2 definition automatically and emits `timerValue`; an
33
- ISO interval stays on 1.1 byte-identically. Pinning `{ version: '1.1' }` with a
34
- cron expression is a compile error.
@@ -1,52 +0,0 @@
1
- # Script
2
-
3
- *Exact signatures, fields, and defaults: `script()`.*
4
-
5
- Script runs inline JavaScript for a computation that has no first-class Flow
6
- node. Upstream data is available through `$vars`; the result is read with
7
- `out(step, path?)`.
8
-
9
- ```ts
10
- .step('normalize', script({ code: `
11
- const amount = Number($vars.amount);
12
- return { amount, valid: Number.isFinite(amount) };
13
- ` }))
14
- ```
15
-
16
- Use the named first-class node when the scenario needs a connector or HTTP for
17
- any external data or API call, Transform, Delay, or another product capability,
18
- whether or not the request names the node. A script is appropriate for
19
- local calculation, reshaping that needs arbitrary code, or computing a value
20
- before passing a bare reference to another node.
21
-
22
- Return an object literal for named fields and read them with `out('parse', 'tag')`;
23
- read a scalar return with `out('parse')`.
24
-
25
- ## What the step publishes
26
-
27
- The node's own definition can only say `output: {type: 'object'}` — a node TYPE
28
- cannot know what a particular body returns — so the designer would type every
29
- script read as `Record<string, any>` and reject mapping one into a `string` flow
30
- output. The compiler therefore reads the body and declares what it plainly
31
- returns, so this needs nothing from you:
32
-
33
- ```ts
34
- .step('flag', script({ code: 'return "pending-approval";' }))
35
- .return({ status: out('flag') }) // status: types.string — fine
36
- ```
37
-
38
- It types, it does not enumerate: an object return stays the open object rather
39
- than gaining a field list, and nothing is declared unless every `return` in the
40
- body agrees. A body whose return type is not written down — a runtime read, a
41
- call — declares nothing, which is where `returns` comes in:
42
-
43
- ```ts
44
- .step('policyLimit', script({
45
- code: 'return $vars.fetchPolicy.output.body.limit;',
46
- returns: 'number',
47
- }))
48
- ```
49
-
50
- `returns` always wins over the body, and takes either a type
51
- (`'string' | 'number' | 'boolean' | 'object' | 'array'`) or, to name the fields
52
- of an object return, a map — `returns: { total: 'number', currency: 'string' }`.
@@ -1,33 +0,0 @@
1
- # Subflow
2
-
3
- *Exact signatures, fields, and defaults: `subflow()`.*
4
-
5
- Subflow packages a child Flow authored in the same source file as one parent
6
- step.
7
-
8
- Signature: `subflow(childFlow, { childInput: expression, ... })`.
9
-
10
- ```ts
11
- const child = flow('normalize').input({ raw: types.string })
12
- .output({ clean: types.string })
13
- .step('trim', script({ code: js`return ${input('raw')}.trim();`.js, returns: { clean: 'string' } }))
14
- .return({ clean: out('trim', 'clean') }).build();
15
- export default flow('parent').input({ text: types.string }).output({ clean: types.string })
16
- .step('normalized', subflow(child, { raw: input('text') })).return({ clean: out('normalized', 'clean') }).build();
17
- ```
18
-
19
- Read the child's own inputs with `input(...)`, not a hand-written `$vars.raw`. A
20
- declared input is bound to the node that starts its flow, and a child's start
21
- node is named after the CALLER — `<callerStepId>Start`. The script above emits
22
- `return $vars.normalizedStart.output.raw.trim();`, so hand-writing the reference
23
- would both be wrong and break the moment the parent step is renamed. See
24
- [`manual-trigger.md`](manual-trigger.md).
25
-
26
- Use a child for a meaningful contract or a unit of reuse, not as a speed
27
- optimization or an arbitrary split. Local instrumentation observes the parent
28
- step's data path; it does not turn that boundary into a separate deployed job.
29
-
30
- Read a child output by its declared name — `out('reverse', 'reversed')`, never a bare
31
- `out('reverse')`. The compiler serializes each call's body under top-level `subflows`.
32
- The same child can be reused at any nesting depth; copied node ids and references
33
- are re-keyed together so every call site remains isolated.
@@ -1,20 +0,0 @@
1
- # Summarize
2
-
3
- *Exact signatures, fields, and defaults: `summarize()`.*
4
-
5
- Reads an attachment and produces a summary given a prompt.
6
-
7
- Signature: `summarize({ attachment, prompt, returnCitations? })`
8
-
9
- ```ts
10
- .step('digest',
11
- summarize({
12
- attachment: out('previousNode', 'document'),
13
- prompt: 'Summarize decisions and owners.',
14
- returnCitations: true
15
- }))
16
- ```
17
-
18
- ## General
19
-
20
- - Error **460005** can be transient; retry it once before classifying the failure
@@ -1,20 +0,0 @@
1
- # Switch
2
-
3
- Switch routes one value among several cases.
4
-
5
- Signature:
6
- `.switch(name, on, [{ value: string | number | boolean, label?, body }], defaultFn?)`.
7
-
8
- ```ts
9
- .switch('priority', input('priority'), [
10
- { value: 'high', body: (b) => b.step('page', script({ code: 'return 1;' })) },
11
- { value: 'low', body: (b) => b.step('queue', script({ code: 'return 2;' })) },
12
- ], (other) => other.step('normal', script({ code: 'return 3;' })))
13
- ```
14
-
15
- Prefer Switch when one discriminant selects three or more paths; Branch is
16
- usually clearer for two. Decide whether cases end independently or rejoin a
17
- shared successor.
18
-
19
- Cases compare strictly (`===`) from top to bottom. Each case gets a generated
20
- `case-<id>` port; the optional final callback uses `default`.
@@ -1,22 +0,0 @@
1
- # Terminate
2
-
3
- Terminate stops the entire run. In a parallel arm it aborts sibling work; it
4
- does not complete the Flow with output values.
5
-
6
- Signature: `.terminate(name, label?)`.
7
-
8
- ```ts
9
- .branch('fatal', input('fatal'),
10
- (yes) => yes.terminate('abort', 'Abort run'),
11
- (no) => no.step('continue', script({ code: 'return "ok";' })))
12
- ```
13
-
14
- Choose Terminate only when the requirement is stop-all rather than return an
15
- answer from one path. A green run alone is weak evidence for this node. Use an
16
- abort-specific witness: for example, show that a sibling side effect never
17
- happened or that the run reached the terminated state without producing normal
18
- Flow outputs.
19
-
20
- Inside a parallel arm it aborts sibling arms, whereas `.return(...)` only ends its
21
- own path. Its mappings are terminal metadata, not a readable action result:
22
- `out('<terminate>')` remains invalid.
@@ -1,32 +0,0 @@
1
- # Transform
2
-
3
- *Exact signatures, fields, and defaults: `transform()`.*
4
-
5
- Transform applies filter, map, or group-by operations to an array.
6
-
7
- Signature:
8
- `transform({ collection, operations, variant?: 'filter' | 'map' | 'group-by' })`.
9
- Operations are the SDK's `filter`, `map`, and `groupBy` discriminated shapes.
10
-
11
- ```ts
12
- .step('active', transform({ variant: 'filter', collection: input('rows'),
13
- operations: [{ type: 'filter', filters: [
14
- { field: 'status', condition: 'equals', value: 'active' },
15
- ] }] }))
16
- ```
17
-
18
- ## Choosing the shape
19
-
20
- Prefer a named variant for one standard operation so the canvas communicates
21
- intent. Use generic Transform for a chain; use Script when the requested
22
- calculation does not fit the transform operations.
23
-
24
- ## Data-dependent review
25
-
26
- Operations run in order. A map can remove a field that a later filter or group
27
- expects, and a plausible misspelled field on untyped input can yield empty
28
- rows without a structural failure. Review the chain against representative
29
- items and assert the resulting values, not merely that the node ran.
30
-
31
- Omit `variant` for the generic node. Set `variant: 'map' | 'filter' | 'group-by'`
32
- for a single-purpose node; `operations` must then contain exactly one entry.
@@ -1,70 +0,0 @@
1
- # Voice
2
-
3
- *Exact signatures, fields, and defaults: `voiceTrigger()`, `createOutgoingCall()`, `endCall()`, `voiceAgent()`.*
4
-
5
- A voice call is a conversation with an audio front end. It is identified by a
6
- `callContext` OBJECT — not a bare conversation id — and that object is what
7
- every voice step is keyed by.
8
-
9
- ```ts
10
- // Inbound: the platform hands you the call.
11
- export default flow('support-line')
12
- .trigger(voiceTrigger())
13
- .step('greet', voiceAgent({
14
- systemPrompt: 'Greet {{input.customerName}} and find out why they called.',
15
- inputs: { customerName: input('customerName') },
16
- callContext: out('start', 'callContext'),
17
- voice: { model: 'gemini-3.1-flash-live-preview', persona: 'Kore' },
18
- }))
19
- .step('hangUp', endCall({ callContext: out('start', 'callContext') }))
20
- .build();
21
-
22
- // Outbound: the flow places the call.
23
- .step('dial', createOutgoingCall({ from: '+15550001111', to: input('customerPhone') }))
24
- .step('talk', voiceAgent({
25
- systemPrompt: 'Remind {{input.customerName}} about {{input.amount}}.',
26
- inputs: { customerName: input('customerName'), amount: input('amount') },
27
- callContext: out('dial', 'callContext'),
28
- }))
29
- ```
30
-
31
- ## The call context
32
-
33
- `out('start', 'callContext')` (inbound) or `out('<dialStep>', 'callContext')`
34
- (outbound) is the whole object — `{ type, id, conversationId, … }` — and that is
35
- what to pass. **Reaching inside it is the mistake this family invites**:
36
- `out('dial', 'callContext.conversationId')` is a string, the node's schema types
37
- the field as `object`, and a scalar there passes the file's schema and then
38
- fails at dispatch. `check` catches it (`VOICE_CALL_CONTEXT_NOT_OBJECT`).
39
-
40
- Both numbers on `createOutgoingCall` are E.164 — a leading `+` and 7–15 digits
41
- (`'+15551234567'`). `from` must be a number provisioned on the tenant's
42
- telephony provider; anything else is rejected when the call is placed, not when
43
- the flow is validated. `endCall` reads `out('<step>', 'ended')`.
44
-
45
- ## How the agent sounds
46
-
47
- `voice` takes a VOICE model (a live/realtime one — not the text models
48
- `inlineAgent` takes) and one of THAT model's personas; the two travel together:
49
-
50
- | Model | Personas |
51
- | --- | --- |
52
- | `gemini-3.1-flash-live-preview` (default) | Aoede, Charon, Fenrir, Kore, Leda, Orus, Puck, Zephyr |
53
- | `gpt-realtime-2` | alloy, ash, ballad, coral, echo, sage, shimmer, verse |
54
-
55
- Omit `voice` entirely for the platform default. `maxIterations` is capped at
56
- **8**, tighter than a text agent's 100, because a caller is waiting on the turn.
57
- The caller's turn arrives as audio, but the system prompt can use flow context.
58
- Declare each value under `inputs` and reference it as `{{input.<name>}}`; compile
59
- emits the runtime bindings and matching sidecar schema. There are no declared
60
- `returns`: the definition declares what comes back. Compile writes a
61
- voice-dialect `<source>/agent.json` sidecar (`settings.mode: 'voice'`) beside
62
- the `.flow`.
63
-
64
- ## Evidence boundary
65
-
66
- `uipath.agent.voice` is served on this tenant; the trigger and the two call
67
- actions are `AvailableOnTenant: false` and ship bundled from the workbench
68
- manifests. Nothing local dials a phone: a green ladder proves the node types,
69
- the call-context threading and the voice settings. A real call, real audio, and
70
- what the caller heard are platform evidence.