@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
@@ -0,0 +1,107 @@
1
+ # Agentic Process Node — Implementation
2
+
3
+ Agentic process nodes invoke orchestration processes. Pattern: `uipath.core.agentic-process.{key}`.
4
+
5
+ ## Discovery
6
+
7
+ ### Published (tenant registry)
8
+
9
+ ```bash
10
+ uip maestro flow registry pull --force
11
+ uip maestro flow registry search "uipath.core.agentic-process" --output json
12
+ ```
13
+
14
+ ### In-solution (sibling projects)
15
+
16
+ ```bash
17
+ uip maestro flow registry list --local --output json
18
+ uip maestro flow registry get "<node-type>" --local --output json
19
+ ```
20
+
21
+ ## Registry Validation
22
+
23
+ ```bash
24
+ # Published
25
+ uip maestro flow registry get "uipath.core.agentic-process.{key}" --output json
26
+
27
+ # In-solution
28
+ uip maestro flow registry get "uipath.core.agentic-process.{key}" --local --output json
29
+ ```
30
+
31
+ Confirm:
32
+
33
+ - Input port: `input`
34
+ - Output port: `output`
35
+ - `model.serviceType` — `Orchestrator.StartAgenticProcess`
36
+ - `model.bindings.resourceSubType` — `ProcessOrchestration`
37
+ - `model.bindings.resourceKey` — the `<FolderPath>.<ProcessName>` string used to scope binding resolution
38
+ - `inputDefinition` — typically empty
39
+ - `outputDefinition.error` — error schema
40
+
41
+ ## Adding / Editing
42
+
43
+ For step-by-step add, delete, and wiring procedures, see [editing-operations.md](../../editing-operations.md). Use the JSON structure below for the node-specific `inputs`.
44
+
45
+ ## JSON Structure
46
+
47
+ ### Node instance (inside `nodes[]`)
48
+
49
+ The instance carries only per-instance data (`inputs`, `outputs`, `display`). BPMN type, serviceType, version, and binding/context templates come from the definition in `definitions[]`.
50
+
51
+ ```json
52
+ {
53
+ "id": "runOrchestration",
54
+ "type": "uipath.core.agentic-process.5f9ad95a-b862-46c7-98c3-a9be2e5b922f",
55
+ "typeVersion": "<DEFINITION_VERSION>",
56
+ "display": { "label": "Run Orchestration" },
57
+ "inputs": {},
58
+ "outputs": {
59
+ "error": {
60
+ "type": "object",
61
+ "description": "Error information if the agentic process fails",
62
+ "source": "=Error",
63
+ "var": "error"
64
+ }
65
+ }
66
+ }
67
+ ```
68
+
69
+ **Declare `error` only — `output` is derived.** Authoring it makes the converter copy your `source` verbatim; `"=result.response"` then resolves to null at runtime while `flow validate` passes. See [file-format.md § Node outputs](../../../shared/file-format.md#node-outputs).
70
+
71
+ ### Top-level `bindings[]` entries (sibling of `nodes`/`edges`/`definitions`)
72
+
73
+ Add one entry per `(resourceKey, propertyAttribute)` pair. Share entries across node instances that reference the same agentic process — do NOT create duplicates.
74
+
75
+ ```json
76
+ "bindings": [
77
+ {
78
+ "id": "bRunOrchestrationName",
79
+ "name": "name",
80
+ "type": "string",
81
+ "resource": "process",
82
+ "resourceKey": "Shared.My Orchestration",
83
+ "default": "My Orchestration",
84
+ "propertyAttribute": "name",
85
+ "resourceSubType": "ProcessOrchestration"
86
+ },
87
+ {
88
+ "id": "bRunOrchestrationFolderPath",
89
+ "name": "folderPath",
90
+ "type": "string",
91
+ "resource": "process",
92
+ "resourceKey": "Shared.My Orchestration",
93
+ "default": "Shared",
94
+ "propertyAttribute": "folderPath",
95
+ "resourceSubType": "ProcessOrchestration"
96
+ }
97
+ ]
98
+ ```
99
+
100
+ > For the resolution mechanics and why these entries are required, see [file-format.md — Bindings](../../../shared/file-format.md#bindings--orchestrator-resource-bindings-top-level-bindings).
101
+
102
+ ## Debug
103
+
104
+ | Error | Cause | Fix |
105
+ | --- | --- | --- |
106
+ | Node type not found in registry | Process not published or registry stale | Run `uip login` then `uip maestro flow registry pull --force`; for in-solution processes use `--local` |
107
+ | Process execution failed | Underlying orchestration errored | Check `$vars.{nodeId}.error` for details |
@@ -0,0 +1,61 @@
1
+ # Agentic Process Node — Planning
2
+
3
+ Agentic process nodes invoke orchestration processes from within a flow. Published processes appear in the registry after `uip login` + `uip maestro flow registry pull`. **In-solution** (unpublished) processes in sibling projects are discovered via `--local` — no login or publish required.
4
+
5
+ ## Node Type Pattern
6
+
7
+ `uipath.core.agentic-process.{key}`
8
+
9
+ ## When to Use
10
+
11
+ Use an Agentic Process node when the flow needs to invoke a published orchestration process.
12
+
13
+ ### Selection Heuristics
14
+
15
+ | Situation | Use Agentic Process? |
16
+ | --- | --- |
17
+ | Invoke a published orchestration process | Yes |
18
+ | Invoke a published AI agent | No — use [Agent](../agent/planning.md) |
19
+ | Call another published flow | No — use [Flow](../flow/planning.md) |
20
+ | Need desktop/browser automation | No — use [RPA Workflow](../rpa/planning.md) |
21
+ | Process not yet published but in the same solution | Yes — discover with `--local` (no login or publish needed) |
22
+ | Process does not exist yet | Create it in the same solution, then use `--local` discovery |
23
+
24
+ ## Ports
25
+
26
+ | Input Port | Output Port(s) |
27
+ | --- | --- |
28
+ | `input` | `output`, `error` |
29
+
30
+ The `error` port is the implicit error port shared with all action nodes — see [Implicit error port on action nodes](../../../shared/file-format.md#implicit-error-port-on-action-nodes).
31
+
32
+ ## Output Variables
33
+
34
+ - `$vars.{nodeId}.error` — error details if execution fails (`code`, `message`, `detail`, `category`, `status`)
35
+
36
+ ## Discovery
37
+
38
+ ### Published (tenant registry)
39
+
40
+ ```bash
41
+ uip maestro flow registry pull --force
42
+ uip maestro flow registry search "uipath.core.agentic-process" --output json
43
+ ```
44
+
45
+ Requires `uip login`. Only published agentic processes from your tenant appear.
46
+
47
+ ### In-solution (sibling projects)
48
+
49
+ ```bash
50
+ uip maestro flow registry list --local --output json
51
+ uip maestro flow registry get "<node-type>" --local --output json
52
+ ```
53
+
54
+ No login or publish required. Discovers unpublished agentic processes in sibling projects within the same solution.
55
+
56
+ ## Planning Annotation
57
+
58
+ In the architectural plan:
59
+
60
+ - If the process exists: note as `resource: <name> (agentic-process)`
61
+ - If it does not exist: note as `[CREATE NEW] <description>`
@@ -0,0 +1,108 @@
1
+ # API Workflow Node — Implementation
2
+
3
+ API workflow nodes invoke API functions. Pattern: `uipath.core.api-workflow.{key}`.
4
+
5
+ ## Discovery
6
+
7
+ ### Published (tenant registry)
8
+
9
+ ```bash
10
+ uip maestro flow registry pull --force
11
+ uip maestro flow registry search "uipath.core.api-workflow" --output json
12
+ ```
13
+
14
+ ### In-solution (sibling projects)
15
+
16
+ ```bash
17
+ uip maestro flow registry list --local --output json
18
+ uip maestro flow registry get "<node-type>" --local --output json
19
+ ```
20
+
21
+ ## Registry Validation
22
+
23
+ ```bash
24
+ # Published
25
+ uip maestro flow registry get "uipath.core.api-workflow.{key}" --output json
26
+
27
+ # In-solution
28
+ uip maestro flow registry get "uipath.core.api-workflow.{key}" --local --output json
29
+ ```
30
+
31
+ Confirm:
32
+
33
+ - Input port: `input`
34
+ - Output port: `output`
35
+ - `model.serviceType` — `Orchestrator.ExecuteApiWorkflowAsync`
36
+ - `model.bindings.resourceSubType` — `Api`
37
+ - `model.bindings.resourceKey` — the `<FolderPath>.<ApiName>` string used to scope binding resolution
38
+ - `inputDefinition` — typically empty
39
+ - `outputDefinition` — always `error` (`source: "=Error"`). Whether it also declares `output` varies per published API workflow; either way, do not author `output` on the instance (see § JSON Structure)
40
+
41
+ ## Adding / Editing
42
+
43
+ For step-by-step add, delete, and wiring procedures, see [editing-operations.md](../../editing-operations.md). Use the JSON structure below for the node-specific `inputs`.
44
+
45
+ ## JSON Structure
46
+
47
+ ### Node instance (inside `nodes[]`)
48
+
49
+ The instance carries only per-instance data (`inputs`, `outputs`, `display`). BPMN type, serviceType, version, and binding/context templates come from the definition in `definitions[]`.
50
+
51
+ ```json
52
+ {
53
+ "id": "callApiFunction",
54
+ "type": "uipath.core.api-workflow.346b8959-c126-48d3-9c46-942abcf944d7",
55
+ "typeVersion": "<DEFINITION_VERSION>",
56
+ "display": { "label": "Call API Function" },
57
+ "inputs": {},
58
+ "outputs": {
59
+ "error": {
60
+ "type": "object",
61
+ "description": "Error information if the API workflow fails",
62
+ "source": "=Error",
63
+ "var": "error"
64
+ }
65
+ }
66
+ }
67
+ ```
68
+
69
+ **Declare `error` only — `output` is derived.** Authoring it makes the converter copy your `source` verbatim; `"=result.response"` then resolves to null at runtime while `flow validate` passes. See [file-format.md § Node outputs](../../../shared/file-format.md#node-outputs).
70
+
71
+ ### Top-level `bindings[]` entries (sibling of `nodes`/`edges`/`definitions`)
72
+
73
+ Add one entry per `(resourceKey, propertyAttribute)` pair. Share entries across node instances that reference the same API workflow — do NOT create duplicates.
74
+
75
+ ```json
76
+ "bindings": [
77
+ {
78
+ "id": "bCallApiFunctionName",
79
+ "name": "name",
80
+ "type": "string",
81
+ "resource": "process",
82
+ "resourceKey": "Shared.My API Function",
83
+ "default": "My API Function",
84
+ "propertyAttribute": "name",
85
+ "resourceSubType": "Api"
86
+ },
87
+ {
88
+ "id": "bCallApiFunctionFolderPath",
89
+ "name": "folderPath",
90
+ "type": "string",
91
+ "resource": "process",
92
+ "resourceKey": "Shared.My API Function",
93
+ "default": "Shared",
94
+ "propertyAttribute": "folderPath",
95
+ "resourceSubType": "Api"
96
+ }
97
+ ]
98
+ ```
99
+
100
+ > For the resolution mechanics and why these entries are required, see [file-format.md — Bindings](../../../shared/file-format.md#bindings--orchestrator-resource-bindings-top-level-bindings).
101
+
102
+ ## Debug
103
+
104
+ | Error | Cause | Fix |
105
+ | --- | --- | --- |
106
+ | Node type not found in registry | API workflow not published or registry stale | Run `uip login` then `uip maestro flow registry pull --force`; for in-solution API workflows use `--local` |
107
+ | Execution failed | Underlying API workflow errored | Check `$vars.{nodeId}.error` for details |
108
+ | Node Completed but `$vars.{nodeId}.output` is null downstream (consumer agent faults `AGENT_STARTUP.INPUT_VALIDATION_ERROR` / incident `170002`) | Instance declares `outputs.output` with `source: "=result.response"`, suppressing the injected `=this` output | Delete the `output` entry — keep `error` only |
@@ -0,0 +1,60 @@
1
+ # API Workflow Node — Planning
2
+
3
+ API workflow nodes invoke API functions from within a flow. Published API workflows appear in the registry after `uip login` + `uip maestro flow registry pull`. **In-solution** (unpublished) API workflows in sibling projects are discovered via `--local` — no login or publish required.
4
+
5
+ ## Node Type Pattern
6
+
7
+ `uipath.core.api-workflow.{key}`
8
+
9
+ ## When to Use
10
+
11
+ Use an API Workflow node when the flow needs to call a published UiPath API function.
12
+
13
+ ### Selection Heuristics
14
+
15
+ | Situation | Use API Workflow? |
16
+ | --- | --- |
17
+ | Call a published UiPath API function | Yes |
18
+ | Call an external REST API | No — use [HTTP](../http/planning.md) or [Connector](../connector/planning.md) |
19
+ | Invoke a published RPA process | No — use [RPA Workflow](../rpa/planning.md) |
20
+ | API workflow not yet published but in the same solution | Yes — discover with `--local` (no login or publish needed) |
21
+ | API workflow does not exist yet | Create it in the same solution, then use `--local` discovery |
22
+
23
+ ## Ports
24
+
25
+ | Input Port | Output Port(s) |
26
+ | --- | --- |
27
+ | `input` | `output`, `error` |
28
+
29
+ The `error` port is the implicit error port shared with all action nodes — see [Implicit error port on action nodes](../../../shared/file-format.md#implicit-error-port-on-action-nodes).
30
+
31
+ ## Output Variables
32
+
33
+ - `$vars.{nodeId}.error` — error details if execution fails (`code`, `message`, `detail`, `category`, `status`)
34
+
35
+ ## Discovery
36
+
37
+ ### Published (tenant registry)
38
+
39
+ ```bash
40
+ uip maestro flow registry pull --force
41
+ uip maestro flow registry search "uipath.core.api-workflow" --output json
42
+ ```
43
+
44
+ Requires `uip login`. Only published API workflows from your tenant appear.
45
+
46
+ ### In-solution (sibling projects)
47
+
48
+ ```bash
49
+ uip maestro flow registry list --local --output json
50
+ uip maestro flow registry get "<node-type>" --local --output json
51
+ ```
52
+
53
+ No login or publish required. Discovers unpublished API workflows in sibling projects within the same solution.
54
+
55
+ ## Planning Annotation
56
+
57
+ In the architectural plan:
58
+
59
+ - If the API workflow exists: note as `resource: <name> (api-workflow)`
60
+ - If it does not exist: note as `[CREATE NEW] <description>`
@@ -0,0 +1,171 @@
1
+ # Batch Transform Pattern Node — Implementation
2
+
3
+ Batch Transform runs an LLM row-by-row over an attached CSV and appends LLM-generated columns. Node type: `uipath.pattern.batch-transform`; BPMN service task with `serviceType: "ECS.BatchTransform"`. It has no process or connection bindings; inputs are the only configuration source.
4
+
5
+ ## Registry validation
6
+
7
+ Run:
8
+
9
+ ```bash
10
+ uip maestro flow registry get uipath.pattern.batch-transform --output json
11
+ ```
12
+
13
+ Confirm:
14
+
15
+ - Input port: `input`.
16
+ - Output ports: `output`, `error`.
17
+ - `model.type`: `bpmn:ServiceTask`.
18
+ - `model.serviceType`: `ECS.BatchTransform`.
19
+ - `inputDefinition.properties`: `attachment` (declared `string`, but runtime requires the full Flow Attachment object `{ ID, FullName, MimeType, Metadata }`; keys are case-sensitive and `ID` is uppercase), `prompt` (string), `enableWebSearchGrounding` (boolean), and `outputColumns` (array of `{ name, description }`). Studio Web's file-picker form serializes the whole object into `attachment` and the engine deserializes it back.
20
+ - `outputDefinition.output.type`: `"file"`.
21
+ - `outputDefinition.output.source`: `"=response"` (the BPMN engine wraps the result under that key, as for every ServiceTask).
22
+ - `outputDefinition.error.schema.required`: `code`, `message`, `detail`, `category`, `status`.
23
+
24
+ If the command reports **"Node type not found: uipath.pattern.batch-transform"**, run `uip tools update` and `uip maestro flow registry pull --force`. If it still fails, this CLI build does not carry the node — there is no tenant setting behind it and no admin to escalate to.
25
+
26
+ ## Add or edit the node
27
+
28
+ Pattern nodes are OOTB BPMN service tasks and are **user-owned** per [Author capability — Node ownership](../../CAPABILITY.md#node-ownership--who-authors-the-node). Author them by editing the `.flow` JSON directly with Edit/Write. The `uip maestro flow node add` / `edge add` CLI is reserved for CLI-owned nodes such as connectors, connector-triggers, and managed HTTP. Use Edit/Write for OOTB structural edits—adding the node, wiring edges, and adding the `attachment` flow input. See [editing-operations.md](../../editing-operations.md) for JSON authoring mechanics.
29
+
30
+ ## Attachment wiring
31
+
32
+ Declare a flow `in` variable of `type: "file"` bound to the trigger by `triggerNodeId`:
33
+
34
+ ```json
35
+ "variables": {
36
+ "globals": [
37
+ {
38
+ "id": "csvFile",
39
+ "direction": "in",
40
+ "type": "file",
41
+ "triggerNodeId": "start"
42
+ }
43
+ ]
44
+ }
45
+ ```
46
+
47
+ Reference it through the trigger output:
48
+
49
+ ```json
50
+ "attachment": "=js:$vars.start.output.csvFile"
51
+ ```
52
+
53
+ Populate it by running `uip maestro flow debug --attachment <variableId>=<localPath>` (for example, `--attachment csvFile=./path/to/data.csv`). The flag is repeatable; `<variableId>` must match a `variables.globals[]` entry's `id`. See [cli-commands.md — Pre-flight](../../../shared/cli-commands.md#pre-flight---attachment-binding). The CLI uploads the file and binds a full Flow Attachment object `{ ID, FullName, MimeType, Metadata }`; `ID` is uppercase, not `Id`.
54
+
55
+ Do not declare the variable as `type: "object"`, reference it directly as `=js:$vars.<variableId>` without the trigger output path, or pass a bare GUID, URL, path, `.ID`, or `.FullName`.
56
+
57
+ ## JSON structure
58
+
59
+ ```json
60
+ {
61
+ "id": "categorizeRows",
62
+ "type": "uipath.pattern.batch-transform",
63
+ "typeVersion": "1.0",
64
+ "display": { "label": "Categorize Invoices" },
65
+ "inputs": {
66
+ "attachment": "=js:$vars.start.output.csvFile",
67
+ "prompt": "Classify each invoice by category and write a one-line summary.",
68
+ "enableWebSearchGrounding": false,
69
+ "outputColumns": [
70
+ { "name": "Category", "description": "One of: Utility, Software, Travel, Other" },
71
+ { "name": "Summary", "description": "Plain-English one-line summary of the invoice" }
72
+ ]
73
+ },
74
+ "outputs": {
75
+ "output": { "type": "file", "source": "=response", "var": "output" },
76
+ "error": {
77
+ "type": "object",
78
+ "description": "Error information if the node fails",
79
+ "source": "=Error",
80
+ "var": "error"
81
+ }
82
+ }
83
+ }
84
+ ```
85
+
86
+ Rules:
87
+
88
+ - Do not add an instance-level `model` block. BPMN type and `serviceType: "ECS.BatchTransform"` belong only in the corresponding `definitions[]` entry; copy that entry verbatim from `uip maestro flow registry get uipath.pattern.batch-transform --output json`. Per [Author capability, rule 15](../../CAPABILITY.md), node instances normally have no `model` block.
89
+ - Set `typeVersion` exactly to `definitions[<batch-transform>].version` from the registry response. Do not guess; use the registry's exact single-dot `x.y` form, such as `"1.0"`, not `"1.0.0"`.
90
+ - `inputs.outputColumns` must be an array of objects with exactly `name` and `description`; do not use a map or string array.
91
+ - Set `outputs.output.source` to the literal `=response`, not `=batchTransformResult`, `=result.output`, or another value.
92
+ - Set `outputs.output.type` to `"file"`; the result is a file handle, not a row array.
93
+
94
+ ## End-node output mapping
95
+
96
+ When exposing the result through a flow `out` variable, map the file handle with an `=js:` value expression. Per [Author capability, rule 11](../../CAPABILITY.md), use:
97
+
98
+ ```json
99
+ {
100
+ "id": "end",
101
+ "type": "core.control.end",
102
+ "typeVersion": "1.0",
103
+ "outputs": {
104
+ "result": { "source": "=js:$vars.categorizeRows.output" }
105
+ }
106
+ }
107
+ ```
108
+
109
+ Without `=js:`, the runtime stores the literal string `"$vars.categorizeRows.output"`.
110
+
111
+ ## Add via CLI (opt-in, not preferred)
112
+
113
+ The `uip maestro flow node add` / `edge add` CLI is not canonical for OOTB pattern nodes because they are user-owned. Use it only when scripting where Edit/Write is unavailable:
114
+
115
+ ```bash
116
+ uip maestro flow node add <FlowName>.flow uipath.pattern.batch-transform \
117
+ --label "<LABEL>" \
118
+ --input '{
119
+ "attachment": "=js:$vars.<triggerId>.output.<fileVarId>",
120
+ "prompt": "<INSTRUCTION describing every output column>",
121
+ "outputColumns": [
122
+ { "name": "<COLUMN_NAME>", "description": "<WHAT TO PUT IN THIS COLUMN>" }
123
+ ],
124
+ "enableWebSearchGrounding": false
125
+ }' \
126
+ --output json
127
+ ```
128
+
129
+ `attachment` must resolve through `$vars.<triggerId>.output.<fileVarId>` to the full Flow Attachment object `{ ID, FullName, MimeType, Metadata }`, with case-sensitive keys and uppercase `ID`. Do not pass a bare GUID, URL, byte stream, or path, even though the OOTB `inputDefinition` declares `type: "string"`.
130
+
131
+ ## Output access
132
+
133
+ `$vars.{nodeId}.output` is a file handle, not transformed rows. Pass it to a downstream file-consuming node, such as another Batch Transform, an upload/download HTTP or connector step, or a Script that fetches and parses it:
134
+
135
+ ```javascript
136
+ const resultFile = $vars.categorizeRows.output;
137
+ return { resultFile };
138
+ ```
139
+
140
+ To obtain rows as JSON, add a downstream step that fetches and parses the file. Batch Transform never materializes rows into `$vars`.
141
+
142
+ ## Validate
143
+
144
+ Run:
145
+
146
+ ```bash
147
+ uip maestro flow validate <FlowName>.flow --output json
148
+ ```
149
+
150
+ The validator checks that `attachment`, `prompt`, and `outputColumns` are present and non-empty, and that each `outputColumns` entry has `name` and `description`. It may not catch a bare attachment identifier; such mistakes can pass validation and fail at runtime.
151
+
152
+ ## Debug
153
+
154
+ | Error | Cause | Fix |
155
+ | --- | --- | --- |
156
+ | `Node type not found: uipath.pattern.batch-transform` | This CLI build predates Batch Transform support | Run `uip tools update`, then `uip maestro flow registry pull --force`; no tenant setting governs this, so there is no admin to escalate to |
157
+ | Validate rejects `outputColumns` | Wrong shape, such as a map `{ name: description }` or string array | Use `[{ "name": "...", "description": "..." }, ...]` |
158
+ | Runtime error `exceeded maxColumns` | More than 10 output columns | Reduce to ≤10 or split across two Batch Transform nodes chained on the output file |
159
+ | All rows produce blank values for a column | `description` is vague or references fields absent from the source CSV | Name the source column(s) in the description and test with a small sample |
160
+ | Latency spikes / higher cost than expected | `enableWebSearchGrounding: true` is unnecessary | Set it to false unless rows need facts the LLM cannot infer from the row itself |
161
+ | Output file has the original row count but no new columns | Requested transformations duplicate source columns, so the LLM skipped them | Ensure every `outputColumns[].name` is new and not already in the source CSV |
162
+
163
+ ## What not to do
164
+
165
+ - Do not hand-author `model.bindings`; Batch Transform has no process or connector binding. A `bindings` block may be stripped or cause validation errors.
166
+ - Do not pass `--source` to `uip maestro flow node add`; `--source` is only for inline agent nodes (`uipath.agent.autonomous`).
167
+ - Do not reshape `outputColumns` into a map; the array of `{name, description}` is contractual with the canvas property panel and BPMN `ECS.BatchTransform` serializer.
168
+ - Do not reference downstream rows inside the prompt; rows are processed independently and sibling rows are unavailable. Pre-aggregate or use [Summarize](../summarize/impl.md) on a synthesized document instead.
169
+ - Do not chain `$vars.{nodeId}.output` directly into a Script expecting rows; it is a file handle.
170
+ - Do not pass `attachment` as a bare string id, GUID, URL, or path. The runtime requires `{ ID, FullName, MimeType, Metadata }`, with uppercase `ID`; use a `type: "file"` flow `in` variable bound by `triggerNodeId` and reference it as `=js:$vars.<triggerId>.output.<fileVarId>` (see Key Inputs in `planning.md).
171
+ - Do not write `outputs.output.source: "=batchTransformResult"`; the canonical value is `"=response"`, as for every BPMN ServiceTask.
@@ -0,0 +1,72 @@
1
+ # Batch Transform Pattern Node — Planning
2
+
3
+ The Batch Transform node runs an LLM over every row of an attached CSV (or similar tabular file) and appends one or more **LLM-generated columns** to each row. Think "row-wise enrichment with a prompt" — classification, summarization, entity extraction, categorization. It lives in the **Tool** section of the add-node panel (between Script and Transform).
4
+
5
+ ## Node Type
6
+
7
+ `uipath.pattern.batch-transform`
8
+
9
+ This is a fixed OOTB node type — no registry suffix, one version. Whether it appears in `uip maestro flow registry list` is a property of the CLI build, not of the tenant: the CLI asks for a fixed set of OOTB node manifests, and the server only adds dynamic nodes on top — it never withholds an OOTB one. If the node is missing, upgrade the CLI.
10
+
11
+ ## When to Use
12
+
13
+ Use Batch Transform when the task is **"do this to every row"** and the per-row work requires natural-language reasoning that is impractical to express as code.
14
+
15
+ ### Selection Heuristics
16
+
17
+ | Situation | Use Batch Transform? |
18
+ | --- | --- |
19
+ | Add LLM-generated columns to each row of a CSV (category, sentiment, one-line summary) | Yes |
20
+ | Enrich rows with web-searched facts (e.g., look up a company's HQ city per row) | Yes — set `enableWebSearchGrounding: true` |
21
+ | Small ad-hoc data shape change (rename, filter, groupBy) on an in-memory array | No — use [Transform](../transform/planning.md) |
22
+ | Per-row side effects (API calls, DB writes) | No — use [Loop](../loop/planning.md) with the per-row action inside |
23
+ | Reason over a **single** document and produce a synthesis with citations | No — use [Summarize](../summarize/planning.md) |
24
+ | Row-count unknown but small (< 20) and the agent should decide how to reason | Consider [Agent](../agent/planning.md) with the collection in its context instead |
25
+
26
+ ### Anti-Patterns
27
+
28
+ - **Do not use Batch Transform for deterministic work.** If the new column is a formula, regex match, or date reformat, use [Transform](../transform/planning.md) or [Script](../script/planning.md) — the LLM adds cost and latency for no accuracy gain.
29
+ - **Do not use Batch Transform as a general loop.** It only produces new columns attached to the same rows; it cannot call APIs or perform side effects per row. Use [Loop](../loop/planning.md) for that.
30
+ - **Do not pass reasoning-heavy instructions that depend on the whole document.** Each row is processed with only its own values plus the prompt — it cannot "see" other rows or an external document. For cross-row reasoning, pre-aggregate with [Transform](../transform/planning.md) first, or use [Summarize](../summarize/planning.md) over a synthesized attachment.
31
+
32
+ ## Ports
33
+
34
+ | Port | Position | Direction | Use |
35
+ | --- | --- | --- | --- |
36
+ | `input` | left | target | Flow sequence input |
37
+ | `output` | right | source | Produced file handle with the new columns appended |
38
+ | `error` | right | source | Error handler (populated when the batch job fails) |
39
+
40
+ No artifact ports. Pattern-style nodes do not wire to resource files — the prompt and column definitions live on the node inputs.
41
+
42
+ ## Output Variables
43
+
44
+ - `$vars.{nodeId}.output` — the result file handle. The OOTB definition declares `outputDefinition.output.type: "file"` (no nested schema today), and `source: "=response"` — i.e. the BPMN engine returns its result wrapped under the `response` key. Pass `$vars.{nodeId}.output` to downstream nodes that consume files (e.g., another Batch Transform, a connector that uploads the result, a Script that fetches and parses).
45
+ - `$vars.{nodeId}.error` — populated on failure: `{ code, message, detail, category, status }`.
46
+
47
+ ## Key Inputs
48
+
49
+ | Input | Required | Type | Description |
50
+ | --- | --- | --- | --- |
51
+ | `attachment` | Yes | full Flow Attachment | The runtime engine wants the **full Flow Attachment object** `{ ID, FullName, MimeType, Metadata }` — keys are case-sensitive; `ID` is uppercase, not `Id`. Source it as a flow-level `in` variable of `type: "file"` bound to the trigger via `triggerNodeId: "<triggerId>"`. The variable's payload is populated by `uip maestro flow debug --attachment <fileVarId>=<path>` (repeatable; `<fileVarId>=` must match the variable's `id` — see [cli-commands.md — Pre-flight](../../../shared/cli-commands.md#pre-flight---attachment-binding)). Reference it on the Batch Transform node as `=js:$vars.<triggerId>.output.<fileVarId>` — that path resolves to the whole Attachment object at runtime. The OOTB `inputDefinition.attachment` declares `type: "string"` because Studio Web's file-picker form serializes the object into that string slot at save time; the engine deserializes it back. **Never** wire a bare GUID, URL, byte stream, file path, or `.ID`/`.FullName` subfield. |
52
+ | `prompt` | Yes | string | The instruction describing what each output column should contain. Can reference column names from the source via natural language ("summarize the `Description` field"). |
53
+ | `outputColumns` | Yes | array of `{ name, description }` | The columns to produce. Max 10. `name` is the column header; `description` tells the LLM what to put in it. |
54
+ | `enableWebSearchGrounding` | No | boolean | When `true`, the LLM can issue web searches per row to ground its answer. Slower and costlier — use only when rows need external facts. Default `false`. |
55
+
56
+ ### `outputColumns` shape
57
+
58
+ ```json
59
+ [
60
+ { "name": "Category", "description": "One of: Invoice, Receipt, Contract, Other" },
61
+ { "name": "Summary", "description": "One-line plain-English summary of the row" }
62
+ ]
63
+ ```
64
+
65
+ Do not reshape — the canvas editor writes exactly this `{ name, description }` shape, and downstream serialization (BPMN `ECS.BatchTransform` service task) depends on it.
66
+
67
+ ## Planning Annotation
68
+
69
+ In the architectural plan:
70
+
71
+ - `pattern: batch-transform — <one-line purpose>` with a placeholder for the attachment source (usually a `$vars.<upstream>.output.*` file handle) and the list of output column names.
72
+ - Call out `enableWebSearchGrounding` in **Open Questions** if the requirements hint at external lookups but are not explicit — the cost/latency jump warrants confirmation.