@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,132 +0,0 @@
1
- # Inline Agent
2
-
3
- *Exact signatures, fields, and defaults: `inlineAgent()`.*
4
-
5
- An inline agent is defined inside this Flow project and may be connected to
6
- tenant context, callable tools, and human escalation resources.
7
-
8
- Signature:
9
- `inlineAgent({ model, systemPrompt, userPrompt, inputs?, returns?, source?, temperature?, maxTokenPerResponse?, modelMaxTokens?, maxIterations?, mode?, guardrails?, context?, tools?, escalation? })`.
10
-
11
- ```ts
12
- .step('triage', inlineAgent({ model: 'gpt-5.4',
13
- systemPrompt: 'Return a result conforming to the output schema. category: billing | technical | account.',
14
- userPrompt: 'Classify {{input.body}}', inputs: { body: input('body') },
15
- returns: { category: 'string' } }))
16
- ```
17
-
18
- ## Model and answer judgment
19
-
20
- Select a model currently available to the tenant (`uip agent model list`) and
21
- write prompts that make the requested decision and answer contract explicit.
22
- Static checks can establish wiring and output shape, never the semantic quality
23
- of the model's answer.
24
-
25
- `returns` is the answer contract: the agent runtime returns those fields as a
26
- typed object, so describe what each field holds ("Return a result conforming to
27
- the output schema. `<field>`: `<how to fill it>`.") and never ask for JSON text,
28
- which makes the model pack its whole answer into one string field.
29
-
30
- ## Context grounding
31
-
32
- Context signature:
33
- `{ name, id, folderPath?, folderKey?, query?, retrievalMode?, resultCount?, threshold?, fileExtension? }`.
34
-
35
- Resolve the index from the tenant.
36
- Know the name: use `solution resources list` below.
37
- Discovering what exists: use the `uip context-grounding` bridge, which reports every index with its folder.
38
- Not `uip maestro flow registry` (node manifests), not `uip maestro registry` (the connector library), not `uip or folders list`.
39
-
40
- ```bash
41
- uip solution resources list --kind Index --source remote --search "<index-name>" --output json
42
- ```
43
-
44
- Maps onto the signature as `Key` → `id`, `Name` → `name`, `Folder` → `folderPath`, `FolderKey` → `folderKey`.
45
- Give `folderPath`: the emitted resource carries no index id, so the folder is half of how the runtime finds the index.
46
-
47
- Local execution has no semantic retrieval service, so an inline-agent answer is ungrounded even when the resource wiring is present.
48
- Platform evidence must establish that the intended index was used and that its retrieved knowledge influenced the answer.
49
-
50
- The `uip context-grounding` bridge runs in the project's Python environment.
51
- Activate the existing environment and run setup once before list/search; setup
52
- is the command itself, not a `setup --help` probe:
53
-
54
- ```bash
55
- source .venv/bin/activate
56
- uip context-grounding setup
57
- uip context-grounding list --folder-path "<folder-path>" --format json
58
- uip context-grounding search \
59
- --index-name "<index-name>" --query "<one bounded evidence query>" \
60
- --folder-path "<folder-path>" --limit 5 --format json
61
- ```
62
-
63
- Use `--folder-key` instead of `--folder-path` when that is the known identity.
64
- The delegated command uses `--format json`; it does not use the outer CLI's
65
- `--output json` spelling. One search that answers the stated grounding claim is
66
- enough; do not repeat paraphrases solely for confidence.
67
-
68
- ## Tools
69
-
70
- Tool signatures:
71
-
72
- - `{ kind: 'builtin', tool: 'analyzefiles' | 'summarize' | 'batchtransform', ... }`
73
- - `{ kind: 'connector', connector, operation, connection, folder, version?, object?, name?, description? }`
74
- - `{ kind: 'process' | 'agent' | 'api' | 'flow' | 'maestro', key, name, folderPath, inputs?, returns? }`
75
- - `{ kind: 'ixp', projectId, name, description?, versionTag?, attachment? }`
76
-
77
- A connector tool needs `connection` and `folder`, `bindings.json` labels
78
- resolved like `connector()`'s (see [bindings.md](bindings.md)). Missing either
79
- is `INLINE_AGENT_TOOL_CONNECTOR_NO_CONNECTION` from `check`. `prepare` does not
80
- read a tool's labels from the source, so pass them:
81
- `uip maestro registry prepare <connector-key> --action <operation> --bind-connection <connection> --bind-folder <folder>`
82
- finds the connection and writes both entries under the tool's labels.
83
- `description` overrides the text the model is told the tool does; it defaults
84
- to the library's operation description.
85
-
86
- ```ts
87
- tools: [{
88
- kind: 'connector', connector: 'uipath-uipath-airdk', operation: 'web-search',
89
- connection: 'genai', folder: 'shared', // bindings.json labels
90
- }]
91
- ```
92
-
93
- A tool is invoked by the model, not by a control-flow edge. Local execution
94
- skips tool resources, so it proves their wiring but not that the model called
95
- them. A live test needs a tool-specific side effect or returned witness.
96
-
97
- ## Human escalation
98
-
99
- Escalation signature:
100
- `{ name, description?, app: { key, name, folderPath?, inputs?, outputs? }, recipients?, outcomes?, taskTitle?, priority?, labels? }`.
101
-
102
- Whether and when to escalate is model judgment, and completion additionally
103
- depends on a deployed app and a human. Local execution proves only resource and
104
- contract wiring; live evidence must show the task, reviewer outcome, and resumed
105
- agent behavior.
106
-
107
- ## Live-evidence limit
108
-
109
- Headless local live mode calls a real model but substitutes a reachable model
110
- and remains ungrounded; it has no tenant tool loop or human escalation. Treat it
111
- as evidence that a real prompt produced the declared shape. Product debug is
112
- the evidence for the actual configured model and cloud resources.
113
-
114
- Compile emits the node plus a stable `<source>/agent.json` sidecar. Prompt variables
115
- use `{{input.<name>}}`; `inputs` binds those names to flow references and `returns`
116
- declares what the agent hands back.
117
-
118
- ## Guardrails and harness mode
119
-
120
- `guardrails` is Agent Builder's own array, carried on the node and in the
121
- sidecar. Each rail is `$guardrailType: 'custom'` (with `rules`) or
122
- `'builtInValidator'` (with `validatorType` + `validatorParameters`), plus
123
- `id`, `name`, `selector: { scopes: ['Agent'|'Llm'|'Tool'] }`, an `action`
124
- (`block` with a reason, `filter` over fields, or `log` with a severity), and
125
- `enabledForEvals`. Custom rules are `$ruleType: 'word' | 'number' | 'boolean'`
126
- over a field selector, or `'always'`. A rail with no scopes or an empty rules
127
- array can never fire — `check` rejects both.
128
-
129
- `mode: 'standard' | 'advanced'` picks the harness; naming it selects the
130
- node's 1.3 definition (omitting it keeps 1.2 byte-identically) and lands on
131
- the sidecar's `settings.mode`. Guardrail/harness behavior is runtime-side:
132
- offline rungs prove the emitted shape only.
@@ -1,167 +0,0 @@
1
- # IxP Extraction
2
-
3
- *Exact signatures, fields, and defaults: `ixpExtract()`.*
4
-
5
- IxP extraction runs a published Intelligent eXtraction Platform project on a
6
- Flow attachment.
7
-
8
- Signature:
9
- `ixpExtract({ project, modelName, name, folderName, fileRef, pageRange?, versionTag?, folderPath?, description? })`.
10
-
11
- ```ts
12
- .step('extract', ixpExtract({ project: ixpNodeType,
13
- modelName: 'invoice-model', name: 'Invoice Extractor',
14
- folderName: 'Shared', fileRef: out('start', 'invoiceFile') }))
15
- ```
16
-
17
- ## Listing published models
18
-
19
- "What document extractors can I add to this flow?", "what IxP models can I use here?", "list published extractors", "what extraction nodes are in the registry?" — these ask what the tenant publishes.
20
- They are not build requests.
21
- One search answers them:
22
-
23
- ```bash
24
- uip login status --output json # without login, tenant IxP nodes are hidden
25
- uip maestro flow registry pull --force
26
- uip maestro flow registry search 'uipath.ixp' -f 'type:startsWith=uipath.ixp' --output json
27
- ```
28
-
29
- Each `Data[]` entry is one published model (a.k.a. runtime project) visible to the flow registry on this tenant.
30
- Present `DisplayName`, `NodeType` and `Version` as a table, and stop.
31
-
32
- Rules for the listing path:
33
-
34
- - **Do NOT call `registry get` on the search hits.** The search result already carries every field the answer needs. `registry get` resolves ONE node's authoring identity, so running it per hit turns a one-second answer into a call per published model — measured at 80 calls and 127 seconds on a tenant with 40 of them. Fan it out only when authoring a specific node, and then for that node alone.
35
- - **Do NOT scaffold a solution, run `uip maestro flow init`, or write a `.flow.ts` or `.flow` file.** Listing is read-only Q&A.
36
- - **Do NOT mock.** If `Data: []`, answer directly that no IxP models are published on this tenant. The `mock()` fallback is for build-time planning, not for listing-time Q&A.
37
- - **Do NOT log in for the user.** If `uip login status` shows logged-out, tell the user to run `uip login` and stop — listing without auth returns OOTB-only results and is misleading.
38
- - **Do NOT search by `runtime`, `document extractor`, `extractor`, or `IXP` (uppercase).** These return empty results or agent-tool variants, not extraction nodes. Use `uipath.ixp` (lowercase) only.
39
- - **Do NOT switch to the `uipath-ixp` skill.** `uip ixp projects ...` lists IxP-product projects, not what is wired up for Maestro.
40
- - **Do NOT use `uip maestro flow process list` or any Orchestrator folder iteration.** `flow process list` enumerates deployed flow process instances, not published models.
41
- - **Do NOT guess `uip maestro flow list-*` or `uip maestro ixp list-*` subcommands.** None exist; the CLI returns `unknown command` and there is no fallback path to pursue.
42
-
43
- A `uipath.agent.resource.tool.ixp.*` hit on a broader `ixp` search is the agent-tool variant, not a flow extraction node.
44
- Treat it as "no extraction model published", and stop searching after that one broader check — do not iterate on registry searches.
45
-
46
- ## Resource identity
47
-
48
- This is the AUTHORING path, for the one model a step will run.
49
- To answer "which models exist", see [Listing published models](#listing-published-models) instead — the search alone answers that, and `registry get` must not be fanned out across its hits.
50
-
51
- Refresh the registry first, then copy the complete node type and its companion
52
- defaults. The node type is tenant/version identity, not a string to reconstruct:
53
-
54
- ```bash
55
- uip maestro flow registry pull --force
56
- uip maestro flow registry search '<project hint>' \
57
- -f 'type:startsWith=uipath.ixp' \
58
- --output-filter '[?AvailableOnTenant].NodeType' --output json
59
- uip maestro flow registry get '<node-type>' \
60
- --output-filter '{project:Node.nodeType,modelName:Node.inputDefaults.modelName,folderName:Node.inputDefaults.folderName,folderPath:Node.inputDefaults.model.folderPath,versionTag:Node.inputDefaults.versionTag,taxonomyProject:Node.inputDefaults.projectName}' \
61
- --output json
62
- ```
63
-
64
- `registry get` is the authoring source of truth for ONE node. Copy `project`, `modelName`,
65
- `folderName`, `folderPath`, and `versionTag` from that response; do not switch to
66
- `uip ixp projects ...` or reconstruct the deployment through other IxP APIs.
67
- `--output-filter` runs against the response's `Data` field, so registry-get paths
68
- start at `Node`. The compact projection avoids materializing the full schema.
69
-
70
- When code must read selected extraction fields, inspect only the two result-item
71
- schemas:
72
-
73
- ```bash
74
- uip maestro flow registry get '<node-type>' \
75
- --output-filter '{scalarResultMembers:keys(Node.outputDefinition.output.schema.properties.ExtractionResult.properties.ResultsDocument.properties.Fields.items.properties),tableResultMembers:keys(Node.outputDefinition.output.schema.properties.ExtractionResult.properties.ResultsDocument.properties.Tables.items.properties)}' \
76
- --output json
77
- ```
78
-
79
- Scalar results are under `ExtractionResult.ResultsDocument.Fields[]`; table
80
- results are under `ExtractionResult.ResultsDocument.Tables[]`. In both arrays,
81
- `FieldName` identifies the model field and `Values` carries its extracted values.
82
-
83
- If the registry has no suitable published extractor, the requested acceptance
84
- bar determines the next step. For a runtime or published-model requirement,
85
- report the missing capability and stop. For a validate-only topology whose
86
- purpose is to show where extraction belongs, put `mock()` in the extraction
87
- position, complete and validate the surrounding flow, and report the placeholder
88
- as the capability gap. Do not block a validate-only topology on an unavailable
89
- extractor or downstream endpoint when placeholders preserve the requested graph.
90
- `pageRange` is a product string; examples such as `1-5` are illustrative because
91
- no local grammar is published.
92
-
93
- ## File input from a connector event
94
-
95
- Read the trigger's `outputResponseDefinition` and pass the exact file-reference
96
- field to `fileRef`. For example, a SharePoint-backed event that declares
97
- `ReferenceID` is wired as `fileRef: out('start', 'ReferenceID')`. This direct
98
- connector-event-to-IxP shape passes product validation; do not add a download
99
- action merely to change the shape for a validate-only flow.
100
-
101
- The SDK emits that `out(...)` handoff in the one envelope the IxP validator
102
- accepts — a plain expression string:
103
-
104
- ```json
105
- "fileRef": "=js:$vars.start.output.ReferenceID"
106
- ```
107
-
108
- Do not replace it with a `{ "type": "jsExpression", ... }` envelope or a
109
- hand-built attachment object. Add a download action only when the discovered
110
- trigger contract has no file-reference field and requested runtime behavior
111
- requires the file bytes.
112
-
113
- ## Joined document-event recipe
114
-
115
- `documentCreated` is the event subscription resolved from its live connection;
116
- `extractor` is the identity object copied from `registry get` as described above.
117
- The trigger field flows straight into extraction, and the whole result flows
118
- straight into delivery:
119
-
120
- ```ts
121
- const documentCreated = {
122
- connector: 'uipath-microsoft-onedrive', event: 'file-created',
123
- connection: 'documents', folder: 'documentsFolder',
124
- };
125
-
126
- export default flow('archive-card-intake')
127
- .trigger(onEvent(documentCreated))
128
- .step('extract', ixpExtract({
129
- ...extractor,
130
- fileRef: out('start', 'ReferenceID'),
131
- }))
132
- .step('deliver', http({
133
- method: 'POST', url: 'https://catalog.example.test/cards', managed: false,
134
- body: out('extract'), contentType: 'application/json',
135
- }))
136
- .build();
137
- ```
138
-
139
- ## Downstream output
140
-
141
- `out('<ixp-step>')` is the extraction result object and can be forwarded as a
142
- whole, including as an HTTP request body. Pass the expression directly; no
143
- serializer inspection or taxonomy lookup is needed for that shape. The joined
144
- recipe above shows the complete handoff.
145
-
146
- A model taxonomy is needed only when the flow must select named extracted
147
- fields. If the trained model version is already known, run
148
- `uip ixp deployments get-taxonomy '<taxonomyProject>' --version <number>` once.
149
- Retry the same command at most once, and only when the response says
150
- `RetryLater` or reports a transient 5xx failure. Do not retry validation errors
151
- or `RetryWillNotFix`, and do not explore `uip ixp projects ...` to reconstruct
152
- the deployment. If the one retry also fails, use defensive reads from the
153
- `Fields[]` or `Tables[]` paths above, state the assumed field names, and finish
154
- the compile/validation loop. This is interim guidance for
155
- [UiPath/cli#3512](https://github.com/UiPath/cli/issues/3512).
156
-
157
- ## Recovery and evidence
158
-
159
- Wire `.onError(...)` when unreadable documents or no-match results should follow
160
- a recovery path; otherwise failing loud may be the correct scenario behavior.
161
- Local execution uses an extraction fixture and proves wiring only. Product
162
- debug is required only when the acceptance bar asks for proof that the chosen
163
- model processed a real file or returned semantically correct fields. For a
164
- validate-only bar, green product validation plus the intended emitted wiring is
165
- complete.
166
-
167
- The compiler also emits the project's `ixpDeployment` bindings.
@@ -1,77 +0,0 @@
1
- # Loops
2
-
3
- Loop runs a body for every member of a collection.
4
-
5
- Signature: `.loop(name, collection, bodyFn, options?)`.
6
-
7
- ```ts
8
- .loop('eachOrder', input('orders'), (body) => body
9
- .step('handle', script({ code:
10
- 'return { id: $vars.eachOrder.currentItem.id };' })))
11
- ```
12
-
13
- The SDK does not expose mutation of a Flow variable on each iteration. Keep
14
- per-item dispatch and decisions in the body. If work after the loop needs a
15
- summary, compute it from data already available outside the loop or use a
16
- dedicated step whose contract supplies that aggregate.
17
-
18
- Use a one-armed branch to skip the rest of one iteration without terminating
19
- the run. When the condition is false, that iteration completes and the loop
20
- advances:
21
-
22
- ```ts
23
- .loop('eachRepo', input('repos'), (body) => body
24
- .step('fetch', http({ managed: false, url: 'https://example.test',
25
- returns: { name: 'string' } }))
26
- .branch('found', js`$vars.fetch.output.statusCode !== 404`,
27
- (yes) => yes.step('notify', script({
28
- code: 'return $vars.fetch.output.body.name;' }))))
29
- ```
30
-
31
- The loop runs sequentially (`parallel: false`). Inside the body, read
32
- `$vars.<loop>.currentItem` and `$vars.<loop>.currentIteration` — or
33
- `v('eachOrder.currentItem')` from the builder.
34
-
35
- `currentIndex` is the field name of the legacy loop 1.0.0. On the default 2.4
36
- loop it reads `undefined`, so `check` refuses it (`UNKNOWN_LOOP_FIELD`) and
37
- suggests `currentIteration - 1` for a 0-based index. Do not rely on the exact
38
- base of `currentIteration` yet: the 2.4 definition documents it as 1-based,
39
- but the local engine (`flow-debug`) currently reads 0 for the first item, and
40
- the cloud runtime is not yet verified
41
- ([flow-builder-sdk#874](https://github.com/UiPath/flow-builder-sdk/issues/874)).
42
- If a flow's result depends on the number, confirm it with a live
43
- `uip maestro flow debug` run.
44
-
45
- The item is named after the LOOP, not after the collection and not by a
46
- convention: **there is no `$vars.item`, `$vars.currentItem` or `$vars.<collection>`.**
47
- A branch or step that decides on the item has to name the loop, so a loop called
48
- `eachIssue` reads `$vars.eachIssue.currentItem.priority` — never
49
- `$vars.item.priority`, which resolves to nothing and takes the false arm on every
50
- iteration without erroring.
51
-
52
- ## Loop options
53
-
54
- Every `.loop()` emits the loop's 2.4 definition (inner `start`/`continue`/`break`
55
- handles), the version the registry serves and the designer authors. The legacy
56
- 1.0.0 shape (body from `output`, back-edge into `loopBack`, `currentIndex`) is
57
- emitted only for an explicit `{ version: '1.0.0' }`, which accepts none of the
58
- options below.
59
-
60
- - `parallel: true` — run iterations concurrently instead of sequentially.
61
- - `completionCondition` — an expression checked after each iteration; the loop
62
- stops early when it is true.
63
- - `body.break()` — exit the whole loop from inside an arm. Terminal on its
64
- path, like `.terminate()` but scoped to the loop; using it shows the loop's
65
- break handle automatically (`breakEnabled`).
66
-
67
- ```ts
68
- .var('found', types.string, '')
69
- .loop('scan', input('items'), (body) => body
70
- .step('probe', script({ code: 'return $vars.scan.currentItem;', returns: 'object' }),
71
- { updates: { found: js`$vars.probe.output.id` } })
72
- .branch('hit', js`$vars.probe.output.score > 90`, (t) => t.break()),
73
- { completionCondition: js`$vars.found !== ""` })
74
- ```
75
-
76
- Per-iteration flow-variable writes go through `{ updates }` on a body step —
77
- `{ updates: { seen: js`$vars.seen + 1` } }` — never through a mutation node.
@@ -1,39 +0,0 @@
1
- # Manual Trigger
2
-
3
- The manual trigger is the default start node. It represents an on-demand call
4
- from a person, test, API, or parent automation; there is no factory call.
5
-
6
- Signature: omit `.trigger(...)` and declare caller values with `.input(...)`.
7
-
8
- ```ts
9
- export default flow('lookup').input({ id: types.string }).output({ value: types.string })
10
- .step('read', script({ code: 'return $vars.start.output.id;' }))
11
- .return({ value: out('read') }).build();
12
- ```
13
-
14
- Choose this trigger only when something will supply each run's inputs. A local
15
- run is a valid execution of that contract, but it does not prove that any
16
- external caller or deployment integration exists.
17
-
18
- A flow's declared inputs are published as the trigger node's OUTPUT, so
19
- `input('name')` reads `$vars.start.output.name` — `out('start', 'name')` is the
20
- same reference spelled the long way. Both spellings run: the bare `$vars.name`
21
- resolves identically on the real runtime. Prefer the trigger form anyway — it is
22
- what the designer TYPES the expression scope as, so a bare read is the one the
23
- canvas reports as "Property 'name' does not exist".
24
-
25
- This holds for EVERY trigger kind, not just the manual one. A declared input is
26
- bound to whichever node starts the flow (that binding is the `triggerNodeId` on
27
- the emitted variable), so an `onEvent(...)` flow reads its inputs through its
28
- trigger too. The difference is only in what ELSE is there: an event trigger's
29
- output carries the connector's payload alongside the declared inputs, so
30
- `$vars.start.output.subject` and `$vars.start.output.queueName` can both be
31
- live references on the same node.
32
-
33
- The node's id is `start` by default and is addressable. Rename it with
34
- `.triggerId('intake')` and every input reference follows
35
- (`$vars.intake.output.name`).
36
-
37
- Inside a `subflow` body the same form addresses the CHILD's own start node,
38
- which the compiler names `<callerStepId>Start` — `input()` renders it for you,
39
- so this matters only if you hand-write a `$vars.…` string in a child script.
@@ -1,204 +0,0 @@
1
- # Operate — ship, run, and manage a deployed flow
2
-
3
- Everything that touches the cloud: upload, deploy, debug, trigger, inspect, and
4
- instance lifecycle. All of it needs `uip login`; check with
5
- `uip login status --output json`.
6
-
7
- Authoring is upstream. Do not ship a flow whose source has not been through the
8
- loop in [`CLI-LOOP.md`](CLI-LOOP.md) — `check` on the source, `compile` to emit,
9
- `validate` on the emitted `.flow`.
10
-
11
- ## Lay out the emitted flow first
12
-
13
- ```bash
14
- uip maestro flow format <Name>.flow --output json
15
- ```
16
-
17
- Layout is not an authoring concern — nothing upstream needs it, and `validate`
18
- passes without it. It becomes one here, the moment the emitted file is opened
19
- by something that draws it: `solution upload`, `flow debug`, or a person
20
- opening the project in a designer. Run `format` before any of those, on the
21
- artifact as last emitted.
22
-
23
- `compile` writes a placeholder `ui.position` on each node and no top-level
24
- `layout` block at all — and the canvas renders from `layout`. The placeholders
25
- are one flat row, so a four-armed switch arrives as a single 3,000px line with
26
- the arms in sequence rather than side by side. `format` builds `layout`, fans
27
- the arms onto their own rows, sizes each node by its canvas shape, and reports
28
- `NodesRepositioned`. Skipping it is the most common cause of misshapen nodes in
29
- Studio Web.
30
-
31
- ## Refresh solution resources first
32
-
33
- ```bash
34
- uip solution resources refresh --solution-folder <SolutionDir> --output json
35
- ```
36
-
37
- Run this before `solution upload`, `solution publish` or `flow debug`, every
38
- time. It syncs connection and process resource declarations from the project's
39
- `bindings_v2.json` into the solution, and a stale declaration fails at run time
40
- with a binding error even when the emitted `.flow` is correct — so the symptom
41
- never points at the cause.
42
-
43
- There is no positional solution argument. Omit `--solution-folder` only when the
44
- shell is already in the solution root.
45
-
46
- ## Publish
47
-
48
- "Publish", with no target named, means **Studio Web**:
49
-
50
- ```bash
51
- uip solution upload <SolutionDir> --output json
52
- ```
53
-
54
- Pass the solution root — the directory holding the `.uipx` — or `.` from inside
55
- it. From a nested project folder pass `..` or the absolute path, never the
56
- solution name again: that resolves to a child path which does not exist. Report
57
- the Studio Web URL when it succeeds.
58
-
59
- Orchestrator is a different path, and only on an explicit request for it,
60
- because it bypasses Studio Web and the flow cannot be visualised or edited
61
- there:
62
-
63
- ```bash
64
- uip maestro flow pack <project-path> <OutputDir>
65
- ```
66
-
67
- then `uip solution publish` — see the `uipath-solution` skill. When the target is
68
- genuinely ambiguous, ask before packing.
69
-
70
- ## Debug — a real end-to-end run
71
-
72
- ```bash
73
- UIP_LOG_LEVEL=info uip maestro flow debug <project-dir> --output json
74
- ```
75
-
76
- The argument is the PROJECT directory, the one holding `project.uiproj`.
77
-
78
- `flow debug` executes the flow for real: it sends the emails, posts the
79
- messages, calls the APIs. It is not a validation step — `validate` is. Run it
80
- when the request is for a flow that works; ask when the request stops at build
81
- or validate; and with nobody to ask, report the flow as unverified rather than
82
- letting a passing `validate` stand as the result. Never debug a solution this
83
- run did not scaffold: debug overwrites the Studio Web solution whose
84
- `SolutionId` matches the local `.uipx`.
85
-
86
- Operational constraints, each of which has its own failure:
87
-
88
- - **Foreground, with a tool timeout of 10 minutes or more.** It takes 1-5
89
- minutes and prints its JSON only at exit, so a shell that kills commands after
90
- 1-2 minutes loses the whole payload.
91
- - **Poll the same process if the tool reports it still running.** An empty output
92
- file means not finished, not failed.
93
- - **Never start a second debug while one is running.** It re-uploads and
94
- re-executes.
95
- - **Re-run only after changing the flow.** Never to re-read or reshape output the
96
- completed run already returned.
97
- - **`Debug polling timed out after <N>s` is not a failure.** The run continues
98
- server-side. Take `instanceId` from stderr and poll
99
- `uip maestro flow debug-instance status <INSTANCE_ID> --output json`.
100
- - **Do not pass `--folder-path` or `--folder-key`.** Debug provisions into your
101
- personal workspace; a shared folder fails `HTTP 500` at
102
- `Stage: prepare-custom-debug` with no instance started. Shared resources reach
103
- the run through `resources refresh`, not through the debug folder. Use the flag
104
- only when the account has no personal workspace, or the flow needs
105
- folder-scoped assets or queues.
106
-
107
- Inputs, for a flow with `.input(...)` parameters:
108
-
109
- ```bash
110
- UIP_LOG_LEVEL=info uip maestro flow debug <project-dir> --output json \
111
- --inputs '{"numberA": 5, "numberB": 7}'
112
- ```
113
-
114
- Build them from real records, never invented values: an invented key matches no
115
- record, the lookup returns `[]`, and the run faults on empty data. Read an entity
116
- id from `uip df entities list --output json`, then a live record from
117
- `uip df records list <ENTITY_ID> --output json`.
118
-
119
- A `types.file` input takes a local file instead, repeatable, and the left side is
120
- the input's own name:
121
-
122
- ```bash
123
- --attachment <inputName>=<localPath>
124
- ```
125
-
126
- At run time that variable is an OBJECT, not a path — a script reads the uploaded
127
- name as `$vars.<triggerNodeId>.output.<inputName>.FullName`.
128
-
129
- **A conversational flow cannot be debugged headlessly.** On a flow whose trigger
130
- is `conversationTrigger()`, debug uploads, returns
131
- `Code: FlowDebugStudioWebHandoff` with `Data.studioWebUrl`, and starts no run;
132
- `--timeout` does nothing. Chat from Studio Web (`--open-in-browser` opens it) or
133
- the Maestro VS Code extension.
134
-
135
- ### Reporting a debug run
136
-
137
- `Data.studioWebUrl` and `Data.instanceId` are the **first two lines** of any
138
- summary, before status text — they are what someone needs immediately, not after
139
- scrolling:
140
-
141
- ```text
142
- Studio Web URL: <url>
143
- Instance ID: <instanceId>
144
- ```
145
-
146
- Emit the label with `<not returned by CLI>` rather than dropping a line.
147
-
148
- `Data.finalStatus: "Faulted"` means the cause is already in that same response.
149
- Read it there rather than re-running. On a faulted run the CLI ignores
150
- `--output-filter` and prints the whole envelope, so redirect and search the file:
151
-
152
- ```bash
153
- UIP_LOG_LEVEL=info uip maestro flow debug <project-dir> --output json > /tmp/flow-debug.json
154
- ```
155
-
156
- ## Trigger a deployed process
157
-
158
- ```bash
159
- uip maestro flow process list --output json
160
- uip maestro flow process run <process-key> <folder-key> --output json \
161
- --inputs '{"numberA": 5}' --attachment <inputName>=<localPath>
162
- ```
163
-
164
- On `process run` only, `--attachment` overrides `--inputs` on a key collision,
165
- and `--validate` accepts pre-uploaded attachment references for file slots —
166
- they pass the JSON-schema check even though the slot's nominal type is `string`.
167
-
168
- ## Inspect a job
169
-
170
- ```bash
171
- uip maestro flow job status <job-key> --output json
172
- uip maestro flow job traces <job-key> --output json
173
- ```
174
-
175
- Traces are the full execution timeline and are verbose. They are a last resort,
176
- not a starting point.
177
-
178
- ## Instance lifecycle
179
-
180
- Every `instance` command needs `--folder-key` (`-f`) or it is rejected before
181
- reaching the API. Get one from `uip or folders list --output json`, or from the
182
- job or process context. The instance id comes from a debug run's
183
- `Data.instanceId`, a `job status` response, or `instance list`.
184
-
185
- ```bash
186
- uip maestro flow instance pause <INSTANCE_ID> -f <FOLDER_KEY> --output json
187
- uip maestro flow instance resume <INSTANCE_ID> -f <FOLDER_KEY> --output json
188
- uip maestro flow instance cancel <INSTANCE_ID> -f <FOLDER_KEY> --output json
189
- uip maestro flow instance retry <INSTANCE_ID> -f <FOLDER_KEY> --output json
190
- ```
191
-
192
- Never `retry` a faulted instance before reading why it faulted — the fault cause
193
- is in the debug response or the incident, and retrying without it repeats the
194
- failure. When each takes effect and what is recoverable is Orchestrator's
195
- lifecycle model, not this skill's; `uip maestro flow instance <sub> --help` has
196
- the flags.
197
-
198
- ## Evidence boundary
199
-
200
- A green `validate` proves the emitted `.flow` is well formed. Only a run proves
201
- the flow works, and only against the tenant it ran on: an upload that succeeds
202
- says nothing about whether the connections resolve, and a debug run that
203
- completes says nothing about whether the answer was right. Report the instance
204
- identity and the status the CLI returned, not an inference from either.