@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,175 +0,0 @@
1
- # Agent
2
-
3
- *Exact signatures, fields, and defaults: `agent()`.*
4
-
5
- Start a coded or low-code agent and wait for its output. The resource may be
6
- published in Orchestrator or registered as a sibling project in this solution.
7
-
8
- Signature: `agent({ key, name, folderPath?, location?, projectId?, inputs, returns?, flavour? })`
9
-
10
- ```ts
11
- .step('count',
12
- agent({
13
- key: 'BAADF00D-BAAD-F00D-BAAD-F00DBAADF00D',
14
- name: 'CountLetters',
15
- folderPath: 'Shared',
16
- inputs: { inputString: input('inputString') },
17
- returns: { count: 'integer' },
18
- flavour: 'coded'
19
- }))
20
- ```
21
-
22
- See [Orchestrator Processes](or-processes.md) and use the `Agent` process type to locate an agent process and determine its contract.
23
-
24
- ## General
25
-
26
- - *flavour* can be either "coded" or "lowcode". It does not affect the runtime contract, only presentation. There is no equivalent field returned from `uip or processes get`.
27
-
28
- `.onError(...)` is supported on agent steps.
29
-
30
- ## Reuse a published agent, or create one in the solution
31
-
32
- Two shapes, and the request decides which.
33
- When the request names an agent that may already exist, look for it first.
34
-
35
- ```bash
36
- uip maestro flow registry pull --force
37
- uip maestro flow registry search "uipath.core.agent" --output json
38
- uip maestro flow registry get "uipath.core.agent.<key>" --output json
39
- ```
40
-
41
- `registry get` is also how you learn the agent's own argument names and its
42
- return shape — `inputDefinition.properties` and `outputDefinition`.
43
-
44
- When the request asks for a coded agent to be CREATED in this solution,
45
- scaffold it as a sibling project instead; do not substitute an inline low-code
46
- agent.
47
- Creating one the tenant already publishes is duplication, and binding a
48
- pre-existing one when the request said to build it is a different task — so
49
- read the request, do not guess from what the registry happens to hold.
50
-
51
- **Never invent `key` or `projectId`.**
52
- Both are minted by the tooling and read back from it.
53
- If no source below yields one, stop on that field rather than supply a
54
- plausible GUID: `check` and `validate` both accept a well-formed GUID that
55
- resolves to nothing on the tenant, so a fabricated key fails at run time, not
56
- at author time.
57
-
58
- ## Task-created in-solution coded agent
59
-
60
- 1. Scaffold the solution and Flow project.
61
- 2. Scaffold and implement the coded agent as a sibling directory.
62
- 3. Register the sibling with `uip solution projects add`.
63
- 4. Read the two identifiers back, then author the Flow with `agent({
64
- location: 'in-solution', ... })`.
65
- 5. Compile into the nested Flow project, validate, refresh resources, and
66
- debug the Flow.
67
-
68
- ```bash
69
- uip solution init <SolutionName> --output json
70
- ( cd <SolutionName> && uip maestro flow init <FlowName> --output json )
71
-
72
- mkdir -p <SolutionName>/<AgentProject>
73
- ( cd <SolutionName>/<AgentProject> \
74
- && uv venv --python 3.13 \
75
- && uv pip install <framework-package> \
76
- && uip codedagent setup --force --output json \
77
- && uip codedagent new <AgentName> )
78
- ```
79
-
80
- **Install the framework package BEFORE `new`.**
81
- `new` defaults to `--type auto`, which picks the template from whichever
82
- framework package is installed in the active venv — so with none installed it
83
- scaffolds a coded FUNCTION instead, and nothing says so at the time.
84
-
85
- Verify the scaffold before going further: a `<framework>.json` beside `main.py`
86
- (`langgraph.json` for `uipath-langchain`) means the agent template was used.
87
- A `uipath.json` carrying a `functions` map and no `<framework>.json` is the
88
- function fallback — install the package, delete the generated files, and re-run
89
- `new`.
90
-
91
- Scaffold from INSIDE the agent directory.
92
- Run `codedagent new` from the solution root and it writes `main.py`,
93
- `pyproject.toml` and `<framework>.json` into the solution root, which then has
94
- to be cleaned up by hand.
95
-
96
- Implement the project, then from that directory:
97
-
98
- ```bash
99
- uv sync
100
- uip codedagent init
101
- uip codedagent review . --output json
102
- ```
103
-
104
- `uv sync` comes before `init` because `uip codedagent init` imports the
105
- entry-point graph, so it fails on any declared dependency the venv does not
106
- have yet — and a failed `init` leaves `uipath.json` scaffolded but with its
107
- entry-point map never filled in.
108
-
109
- **`uip codedagent run` is not part of this path.**
110
- It executes the graph, which needs `UIPATH_ACCESS_TOKEN` and reach to the LLM
111
- gateway.
112
- Where either is absent it fails at the platform client, and the import and
113
- virtualenv errors it emits on the way there are environment, not defects in the
114
- project — do not chase them.
115
- `uip codedagent review` is the offline rung: it checks the project without
116
- running the model.
117
-
118
- Register the sibling, refresh, then read both identifiers back:
119
-
120
- ```bash
121
- ( cd <SolutionName> && \
122
- uip solution projects add <AgentProject> <SolutionName>.uipx --output json )
123
- uip solution resources refresh --solution-folder <SolutionName> --output json
124
- uip maestro flow registry list --local --output json
125
- ```
126
-
127
- `registry list --local`, run from the Flow project directory, is the
128
- authoritative source for the minted key.
129
- The generated resource file carries the same pair:
130
-
131
- - `resource.key` → `key`
132
- - `resource.projectKey` → `projectId`
133
-
134
- **Find that file; do not assume its path.**
135
- `uip solution projects add` reads the project type out of the manifest, and a
136
- `uipath.json` with no `ProjectType` falls back to `Function` whenever it
137
- carries a `functions` map — including an empty one, which a scaffolded project
138
- has. So the resource can land under `process/function/<AgentProject>.json`
139
- rather than `process/agent/`. Glob for it instead of hard-coding either:
140
-
141
- ```bash
142
- ls <SolutionName>/resources/solution_folder/process/*/<AgentProject>.json
143
- ```
144
-
145
- `uip solution projects list --output json` reports the type the manifest
146
- resolved to.
147
- `Type: Function` on a coded agent is that fallback, not a mistake in your
148
- wiring: re-adding the project or hand-editing `uipath.json` will not change it,
149
- so read the identifiers and wire the Flow rather than trying to correct it
150
- first.
151
-
152
- ```ts
153
- .step('analyze', agent({
154
- key: localResourceKey,
155
- name: '<AgentProject>',
156
- location: 'in-solution',
157
- projectId: localProjectKey,
158
- inputs: { sentence: input('sentence') },
159
- returns: { result: 'integer' },
160
- flavour: 'coded',
161
- }))
162
- ```
163
-
164
- An in-solution agent intentionally has no `folderPath`. Its generated binding
165
- uses the bare local resource key, and its definition carries the sibling
166
- project id. The SDK checker rejects a missing project id or a published agent
167
- with a missing folder, so the two resource forms cannot silently collapse into
168
- one another.
169
-
170
- ## Evidence boundary
171
-
172
- A green live run proves that a real job received inputs and returned the
173
- declared shape. It does not prove the model's answer is correct. Preserve the
174
- job identity, input/output witnesses, and a scenario-specific semantic
175
- assertion; offline seeds should also rule out a hard-coded answer.
@@ -1,41 +0,0 @@
1
- # Agentic Process
2
-
3
- *Exact signatures, fields, and defaults: `agenticProcess()`.*
4
-
5
- Invoke a deployed Maestro agentic process.
6
-
7
- Signature: `agenticProcess({ key, name, folderPath, inputs?, returns? })`
8
-
9
- ```ts
10
- .step('intake',
11
- agenticProcess({
12
- key: 'BAADF00D-BAAD-F00D-BAAD-F00DBAADF00D',
13
- name: 'ProcurementProcess',
14
- folderPath: 'Shared',
15
- inputs: { productId: 1 },
16
- returns: { status: 'boolean' }
17
- }))
18
- ```
19
-
20
- See [Orchestrator Processes](or-processes.md) and use the `ProcessOrchestration`, `CaseManagement`, and/or `Flow` process types to locate an agentic process and determine its contract.
21
-
22
- ## General
23
-
24
- - Declared outputs can be returned as `null`
25
-
26
- ## Forms and fire-and-forget completion
27
-
28
- One `agenticProcess()` covers all three published forms; `form` selects the
29
- wire identity: `'bpmn'` (default — Maestro BPMN process orchestration),
30
- `'flow'` (published Maestro Flow), `'case'` (Case Management process).
31
-
32
- `completion: 'fire-and-forget'` dispatches the process and continues
33
- immediately: `returns` is forbidden, the step publishes no output (reading
34
- `$vars.<step>.output` is a check error), and only dispatch failures route
35
- through `.onError(...)`. Local replay treats it as dispatch-only.
36
-
37
- ```ts
38
- .step('launchReview', agenticProcess({ key: reviewKey, name: 'ClaimsReview',
39
- folderPath: 'Shared', form: 'flow', completion: 'fire-and-forget',
40
- inputs: { claimId: input('claimId') } }))
41
- ```
@@ -1,29 +0,0 @@
1
- # API Workflow
2
-
3
- *Exact signatures, fields, and defaults: `apiWorkflow()`.*
4
-
5
- Run a deployed coded API workflow as a serverless Orchestrator job.
6
-
7
- Signature: `apiWorkflow({ key, name, folderPath, inputs?, returns? })`.
8
-
9
- ```ts
10
- .step('age', apiWorkflow({ key: workflowKey,
11
- name: 'NameToAge', folderPath: 'Shared',
12
- inputs: { name: input('name') }, returns: { age: 'integer' } }))
13
- ```
14
-
15
- ## Tenant contract
16
-
17
- The workflow key, name, and folder must describe one deployed resource. Confirm
18
- its actual input/output names and casing from the tenant. See
19
- [Orchestrator Processes](or-processes.md) and use the `Api` process type for the
20
- shared, pagination-safe resource-discovery procedure.
21
-
22
- `.onError(...)` is supported on API workflow steps. Choose a handler only when
23
- the scenario wants recovery; otherwise a faulted job may need to fault the Flow.
24
-
25
- ## Evidence boundary
26
-
27
- Replay uses the authored contract. Live evidence should identify the real job,
28
- its input arguments, completion status, and returned output. Job completion does
29
- not by itself prove the coded workflow's business result is correct.
@@ -1,178 +0,0 @@
1
- # Author — build and edit a flow with the builder SDK
2
-
3
- Everything that happens on disk before a flow touches the cloud: scaffold the
4
- project, choose each node, write `<Name>.flow.ts`, and run the loop in
5
- [`CLI-LOOP.md`](CLI-LOOP.md) until the emitted `.flow` validates. Authoring ends
6
- at a valid artifact; publishing, running and debugging are
7
- [`operate.md`](operate.md), and a failed run is [`diagnose.md`](diagnose.md).
8
-
9
- The builder owns the `.flow` JSON. `compile` emits every node definition, the
10
- `variables.nodes[]` entries that make `$vars.<step>.output` resolve, the
11
- resource bindings, the connector `inputs.detail`, and the error flags, so none
12
- of that is hand-authored here. What stays with you is judgment the compiler
13
- cannot make: which node, which topology, what an output means, and what to ask.
14
-
15
- ## Critical rules
16
-
17
- 1. **Choose the node before writing it, from a search, never from a brand
18
- name.** For an external service run `uip maestro registry search
19
- '<service>'` and prefer, in order: a curated connector, managed HTTP in
20
- connector mode, manual HTTP for an API with no connector, and an RPA
21
- workflow only when there is no API at all (a desktop app, a terminal). For a
22
- tenant resource (agent, process, API workflow, IxP model) run the family's
23
- `uip maestro flow registry search`; it only returns published resources, so
24
- `uip maestro flow registry pull --force` first, and check the solution's own
25
- projects with `uip maestro flow registry list --local` before concluding a
26
- resource is missing. `mock()` marks a capability both searches proved
27
- absent; it is never a stand-in for one they found.
28
- 2. **Read the node's reference before writing the step.** The router table in
29
- [SKILL.md](../SKILL.md#supported-node-types) names one reference and one
30
- example per node. Copy identity fields (keys, model names, folder keys)
31
- from the tenant; never construct them.
32
- 3. **Read the Integration Service contract before any `uip is` call.** Both
33
- live in [/uipath:uipath-platform](/uipath:uipath-platform), under
34
- `references/integration-service/`. `connections.md` covers selection,
35
- folder scoping, BYOA filtering and empty-result recovery; if no healthy
36
- connection exists after its recovery flow, stop and report it as an open
37
- question. `resources.md` covers reference-field lookups; finish its
38
- pagination loop before reporting "not found".
39
- 4. **Edit the source, not the artifact.** Change `<Name>.flow.ts` and re-emit
40
- with `compile -o`. Never hand-edit the emitted `.flow`, `content/*.bpmn`,
41
- `bindings_v2.json`, `entry-points.json`, `operate.json` or
42
- `package-descriptor.json` — the CLI regenerates them, and the next compile
43
- silently undoes a hand edit. Brownfield JSON goes through `decompile`
44
- ([`brownfield.md`](brownfield.md)).
45
- 5. **Run the loop once the source is complete.** `check --source` is cheap, so
46
- use it freely while writing; `compile` and `validate` run on the finished
47
- source, and again after the last edit. Treat every `validate` warning as a
48
- failure unless the loop reference names it as reviewed.
49
- 6. **Bind every declared output on every path.** Each `.return({...})` must
50
- name every key in `.output({...})`. `check` does not catch a missing one:
51
- `compile` binds it to `$vars.<name>`, `validate` only warns
52
- (`EXPRESSION_DIAGNOSTIC`), and the run returns `undefined` for it.
53
- 7. **Handle an error only when the request says what should happen.** Add
54
- `.onError(...)` only for a stated failure ("if the call fails…", "return X
55
- for invalid input", "handle timeouts"); an unhandled failure must fault the
56
- run. A handler either genuinely recovers or reaches a terminal the caller
57
- can tell apart from success — a distinct `.return`, or `.terminate`.
58
- 8. **Never invent the business meaning of a named output — ask.** When a
59
- request names an output (`caseKey`, `severity`, `ticketId`) without saying
60
- how to derive it, whether it passes through or is reformatted is the
61
- user's rule. Ask, or state the assumption and confirm it. A guessed format
62
- compiles and validates and returns the wrong value.
63
- 9. **Present a finite decision as a list of options, with "Something else"
64
- last.** Which solution, which connector, which trigger, which resource to
65
- bind: ask with the enumerated choices, never as an open question. Without a
66
- structured-question tool, ask in chat as a numbered list. With nobody to ask
67
- (CI, headless), take the recommended option and record it prominently in
68
- the final report; if none is recommended, stop and report the open
69
- decision. Consent gates — destructive operations, tenant writes — are never
70
- auto-answered.
71
- 10. **Look for an existing solution before `uip solution init`.** Run
72
- `find . -maxdepth 2 -name '*.uipx'`. If one exists, ask which to use (one
73
- option per solution, "Create a new solution", then "Something else"); do
74
- not silently adopt, re-initialize, or repair it. The scaffold itself is in
75
- [SKILL.md](../SKILL.md#project-layout).
76
- 11. **Never invoke another skill on your own.** When the flow needs an RPA
77
- process, an agent, or an app that does not exist, name the gap and hand
78
- the user what they need to switch skills.
79
- 12. **Batch independent calls; chain dependent ones.** Scaffold, install and
80
- the registry search go in one turn; `check`, each `prepare` it names, the
81
- re-`check`, `compile` and `validate` chain in the next. Split only where a
82
- later step needs an earlier step's output.
83
-
84
- ## Journeys
85
-
86
- | Journey | Read |
87
- | --- | --- |
88
- | Create a new flow | [SKILL.md — Project layout](../SKILL.md#project-layout), then [`CLI-LOOP.md`](CLI-LOOP.md) |
89
- | Edit an existing flow (`.flow.ts` or raw `.flow`) | [`brownfield.md`](brownfield.md) |
90
- | Add or change one node | the node's row in [SKILL.md — Supported node types](../SKILL.md#supported-node-types) |
91
- | Connector with tenant-specific fields | [`connector-params.md`](connector-params.md) + [`bindings.md`](bindings.md) |
92
-
93
- ### Count what the request names before building
94
-
95
- Count the steps the request names: services, systems, documents, decisions,
96
- approvals, schedules, computations. A domain or an outcome ("shipment
97
- tracking", "our onboarding") is not a step, and neither is the project name.
98
-
99
- - **Zero steps: scaffold only.** Scaffold the project, compile the stub, and
100
- validate. Do not invent a pipeline from the domain word. Report what the flow
101
- should do as open questions; that is the finished deliverable.
102
- - **One or more steps: build all of them.** An outcome next to a step does not
103
- cancel the step. "Check the weather for the Bellevue office and tell me if
104
- it's a nice day" names a lookup and a threshold decision; build both.
105
-
106
- ### Plan first only when the flow is complex
107
-
108
- Plan before building when the flow has five or more nodes with branching or
109
- parallel paths, needs connector or resource discovery, or the requirements are
110
- ambiguous. Build directly for a single-node edit, a linear pipeline, or a
111
- topology the user already spelled out.
112
-
113
- Skipping the plan never skips the node choice. Two outcomes ("if … otherwise
114
- …") are a `.branch`, never a script ternary; three or more are a `.switch`; a
115
- named external service goes through rule 1.
116
-
117
- A plan states: a one-line summary, the node table (step name, node, why), the
118
- wiring, the inputs and outputs, every connector and its connection, and open
119
- questions. Get it approved before building (rule 9, with "proceed"
120
- recommended).
121
-
122
- **Is Maestro the right home?** A flow earns its place with several waits,
123
- branching or parallel paths, SLAs, cross-product composition, or per-case
124
- visibility. A single-wait, mostly linear process may be simpler as a queue plus
125
- Action Center; say so before designing topology.
126
-
127
- ## Anti-patterns
128
-
129
- - **Never replace a registered connector with `mock()` or a script because it
130
- cannot be configured yet.** Write the `connector(...)` step, run the
131
- `prepare` that `check` names, and if there is no live connection, report
132
- "prepare pending" as an open question. Reviewers and Studio Web need the real
133
- connector in the artifact.
134
- - **Never reuse a reference id from another flow or session** — a mailbox
135
- folder, a Slack channel, a Jira project. Ids are scoped to the account behind
136
- the connection: a reused one compiles, validates, and faults at run time.
137
- Resolve it again with a `lookup()` token and the `prepare` that `check`
138
- names.
139
- - **Never write a reference field you could not resolve.** If the lookup fails
140
- (401/403 on an expired grant, 5xx), you have no id: do not substitute the
141
- display name, an alias, or a remembered value. Stop and report the failed
142
- resolve.
143
- - **Never reference a parent's values inside a subflow.** A child flow has its
144
- own scope; pass values through the `subflow(child, {...})` inputs and read
145
- them with `input(...)`. `check` does not flag a child script that reads
146
- `$vars.start.output.*` from the parent — it compiles and resolves to nothing.
147
- - **Never use `console.log` in a script.** The script runtime has no
148
- `console`, and `check` does not flag it. Return the value to inspect:
149
- `return { debug: value }`.
150
- - **Never treat a green `validate` as proof of business correctness.** It
151
- checks structure. Named outputs, reference ids and connector field values
152
- are only proven by the evidence in [`CLI-LOOP.md`](CLI-LOOP.md#bounded-completion).
153
-
154
- ## Completion output
155
-
156
- When authoring is done, report:
157
-
158
- 1. **File paths** — the `.flow.ts` source and the emitted `.flow`.
159
- 2. **What was built** — steps, branches and outputs, in a sentence or two.
160
- 3. **Loop status** — the last `check`, `compile` and `validate` results,
161
- including any warning you judged acceptable and why.
162
- 4. **Placeholders** — each `mock()` and the capability it stands for.
163
- 5. **Missing connections or pending prepares** — per connector.
164
- 6. **Open questions** — every decision the request left open, each marked
165
- **[REQUIRED]** or **[OPTIONAL]**.
166
- 7. **What's next** — when the request did not already say, ask with rule 9:
167
- upload to Studio Web, debug the flow, deploy to Orchestrator, or "Something
168
- else". Each hands off to [`operate.md`](operate.md). A request that already
169
- named the next step ("publish it", "debug it") is the selection; act on it.
170
-
171
- ## Narration and progress
172
-
173
- Silent by default: surface decisions, failures, consent gates and the final
174
- result. Narrate each logical step in one plain-English line, and keep a
175
- step-level progress list, only when the user asks for it (verbose, show steps,
176
- track progress) or has a standing preference for it. A logical step is the
177
- smallest outcome the user cares about — "added the Slack step", not the three
178
- commands behind it.
@@ -1,23 +0,0 @@
1
- # Batch Transform
2
-
3
- *Exact signatures, fields, and defaults: `batchTransform()`.*
4
-
5
- Adds AI-generated columns to a CSV and returns a new file attachment.
6
-
7
- Signature: `batchTransform({ attachment, prompt, outputColumns, enableWebSearchGrounding? })`
8
-
9
- ```ts
10
- .step('categorizeRows',
11
- batchTransform({
12
- attachment: out('start', 'csvFile'),
13
- prompt: 'Classify each row by category and write a one-line summary.',
14
- outputColumns: [
15
- { name: 'Category', description: 'One of: Utility, Software, Travel, Other' },
16
- { name: 'Summary', description: 'Plain-English one-line summary of the row' },
17
- ],
18
- }))
19
- ```
20
-
21
- ## General
22
-
23
- - Error **460005** can be transient; retry it once before classifying the failure
@@ -1,178 +0,0 @@
1
- # Symbolic connector bindings
2
-
3
- `bindings.json` maps the short connection and folder names in authored
4
- TypeScript to tenant resource keys. It lives in the SDK's work directory,
5
- `.flow-sdk/`, beside the `<Name>.flow.ts` file.
6
-
7
- ## Project layout
8
-
9
- ```text
10
- .flow-sdk/
11
- <Name>.flow.ts
12
- bindings.json
13
- connectors/
14
- <connector-key>.ts
15
- connectors-local/
16
- <connector-key>.ts
17
- descriptors/
18
- <connector-key>/
19
- index.json
20
- ...generated descriptor data...
21
- ```
22
-
23
- `uip maestro registry prepare` writes `.flow-sdk/bindings.json` and prints the
24
- import for `./connectors-local/<connector-key>.ts`, relative to the source.
25
- The generated descriptor data lives below `connectors-local/descriptors/`; do
26
- not import it directly. `bindings.json` is independent of that descriptor
27
- overlay. Studio Web reads none of these files, and `uip solution pack`/`upload`
28
- leave `.flow-sdk/` out.
29
-
30
- ## Schema
31
-
32
- Use `schemaVersion: "1"` and a `bindings` array. Version `1` is the current
33
- authored-file format marker. The current loader does not branch on this value,
34
- but including it keeps the file explicit and compatible with shipped examples.
35
-
36
- Each connector entry should carry the complete shape below. Resolution needs a
37
- matching `name` or `id` and a `resourceKey` or `default`; the other fields keep
38
- the resource kind and emitted binding purpose explicit.
39
-
40
- | Field | Required for resolution | Meaning |
41
- |---|:---:|---|
42
- | `id` | one of `id` / `name` | Stable binding identifier; may be used as the symbolic source name. |
43
- | `name` | one of `id` / `name` | Symbolic name normally passed to `connection` or `folder`. |
44
- | `resource` | no | `"Connection"` for Integration Service connection and folder entries. |
45
- | `resourceKey` | one of `resourceKey` / `default` | Tenant connection id or folder key. This value wins when both value fields exist. |
46
- | `default` | one of `resourceKey` / `default` | Fallback when `resourceKey` is absent. Shipped examples repeat the resource key here. |
47
- | `propertyAttribute` | no | `"ConnectionId"` for a connection or `"FolderKey"` for a folder. |
48
-
49
- ## Where both values come from
50
-
51
- **Usually you do not fill these in at all.**
52
- `uip maestro registry prepare <connector-key> <action>` discovers the connection and writes both entries into `bindings.json` for you — see [connector-params.md](connector-params.md#resolving-connection-scoped-reference-values).
53
- Reach for the manual route below only when you are authoring bindings without
54
- running `prepare`.
55
-
56
- If you are doing it by hand: `uip is connections list --all-folders` returns the
57
- connection id **and its folder key** on the same record, so one call answers both.
58
- Always pass `--all-folders`: the default listing is your own folder only, and a
59
- connection shared from another folder (the usual case on a team tenant) is
60
- invisible without it — an empty or unrelated default listing is not evidence
61
- that the connection does not exist.
62
-
63
- ```bash
64
- uip is connections list --all-folders --output json
65
- ```
66
-
67
- ```text
68
- {
69
- "Name": "dustin.metzgar",
70
- "Id": "c03a1967-f702-47d2-9ede-917aed159805",
71
- "Folder": "dustin.metzgar@uipath.com's workspace",
72
- "FolderKey": "b53217ce-25b2-46cd-a6b0-b73c6ba5894c",
73
- "ConnectorKey": "uipath-salesforce-slack",
74
- "State": "Enabled"
75
- }
76
- ```
77
-
78
- `Id` is the connection binding's `resourceKey`; **`FolderKey` is the folder
79
- binding's**. Never fill either with a made-up GUID or with the binding's own
80
- name. `compile` refuses two shapes, and `check` reports both first: a binding
81
- whose `resourceKey` is its own name (`BINDING_SELF_NAME`), and a `connection:` /
82
- `folder:` label that a `bindings.json` with entries does not declare
83
- (`BINDING_UNDECLARED` — for example the source says `is-sandboxes` while the file
84
- declares `slack` and `shared`). It warns `CONNECTION_STUB` on an all-zero GUID,
85
- an `<angle-bracket>` placeholder or any other non-GUID value, and on a label when
86
- no `bindings.json` is loaded or it declares no entries (the run would fault at
87
- dispatch — `'Connection' has an invalid GUID value` or a `401 Invalid
88
- Organization or User secret`). A plausible-looking but wrong GUID still compiles
89
- and faults at run time. Only an id read from the tenant is right.
90
-
91
- Several connections often share one name (a team tenant can hold three Slack
92
- connections all named `is-sandboxes`, in different folders). A name then cannot
93
- pick one: `prepare … --connection <name>` lists each candidate with its
94
- `--connection-id <id>` and folder — pass the id of the one in the folder you mean,
95
- and `prepare` still writes both entries into `bindings.json`.
96
-
97
- **Do not go looking in Orchestrator for the folder.** `uip or folders list` is a
98
- different resource with different keys, and a folder binding wants the one the
99
- CONNECTION lives in — which you already have. Measured on the eval corpus: an
100
- agent that had already listed the connection went on to spend three to four
101
- further calls on `uip or --help`, `uip or folders --help` and `folders list`,
102
- searching for a folder matching the symbolic name in its prompt. The symbolic
103
- name (`slack`, `shared`) is just the label you pass to `connector()`; it is never
104
- something to search the tenant for.
105
-
106
- Copy this two-connector, one-folder example and replace all three placeholders
107
- with values from the connection listing above:
108
-
109
- ```json
110
- {
111
- "schemaVersion": "1",
112
- "bindings": [
113
- {
114
- "id": "slack",
115
- "name": "slack",
116
- "resource": "Connection",
117
- "resourceKey": "<slack-connection-id>",
118
- "default": "<slack-connection-id>",
119
- "propertyAttribute": "ConnectionId"
120
- },
121
- {
122
- "id": "jira",
123
- "name": "jira",
124
- "resource": "Connection",
125
- "resourceKey": "<jira-connection-id>",
126
- "default": "<jira-connection-id>",
127
- "propertyAttribute": "ConnectionId"
128
- },
129
- {
130
- "id": "shared",
131
- "name": "shared",
132
- "resource": "Connection",
133
- "resourceKey": "<folder-key>",
134
- "default": "<folder-key>",
135
- "propertyAttribute": "FolderKey"
136
- }
137
- ]
138
- }
139
- ```
140
-
141
- Use unique `id` and `name` values. The resolver takes the first entry whose
142
- `name` or `id` matches the authored symbol.
143
-
144
- ## Resolution and precedence
145
-
146
- The compile commands load `--bindings <file>` when supplied. Otherwise they
147
- load `.flow-sdk/bindings.json` under the current directory when it exists. A
148
- workspace laid out before `.flow-sdk/` existed, with only a root-level
149
- `./bindings.json`, keeps using that file; when both exist the `.flow-sdk/` one
150
- wins and stderr names the ignored root file. `emitFlow()` uses the same
151
- default unless `bindingsFile` or a `Bindings` instance is supplied.
152
-
153
- ```ts
154
- .step('notify', connector(SendMessage, {
155
- channel: 'C123',
156
- text: 'Ready',
157
- }, { connection: 'slack', folder: 'shared' }))
158
- ```
159
-
160
- During emission, `connection: 'slack'` matches the entry whose `name` or `id`
161
- is `slack`; `folder: 'shared'` is resolved the same way. For each match,
162
- `resourceKey` wins over `default`. An unmatched symbol is emitted unchanged, so
163
- do not treat a successful compile as proof that an invented id exists.
164
-
165
- Only compile/emission reads the authored file. `uip maestro flow validate`,
166
- solution resource refresh, and product debug read the emitted `.flow`, not
167
- `.flow-sdk/bindings.json`. A compile regenerates the artifact from the authored
168
- mapping. A later direct edit to the artifact remains in effect only until the
169
- next compile.
170
-
171
- ## Emitted-artifact bindings
172
-
173
- `uip maestro flow binding add` edits bindings inside an already emitted `.flow`;
174
- it does not create or update `.flow-sdk/bindings.json`. SDK-authored Integration
175
- Service actions and managed HTTP nodes should instead keep symbolic names in
176
- source plus `bindings.json`, so recompilation deterministically restores the
177
- same node detail and product bindings. Use direct artifact edits only for a
178
- brownfield `.flow` with no source representation.
@@ -1,18 +0,0 @@
1
- # Branch
2
-
3
- Branch makes a two-way runtime decision.
4
-
5
- Signature: `.branch(name, condition, thenFn, elseFn?)`. Each callback receives a
6
- sub-builder and may use `.label(text)` for its edge label.
7
-
8
- ```ts
9
- .branch('large', js`${input('amount')} > 1000`,
10
- (yes) => yes.step('review', script({ code: 'return "review";' })),
11
- (no) => no.step('approve', script({ code: 'return "approved";' })))
12
- ```
13
-
14
- Use Branch when the scenario has two paths. Whether each arm should end locally
15
- or fall through to shared work is a business-flow choice.
16
-
17
- The two sequence ports are `true` and `false`. Arm `.label(text)` values become
18
- `trueLabel` and `falseLabel`, defaulting to `True` and `False`.