@uipath/skills 1.201.0-preview.621 → 1.202.0-preview.635
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/.cursor-plugin/plugin.json +1 -1
- package/CODEOWNERS +41 -29
- package/README.md +1 -0
- package/assets/skill-status.json +13 -2
- package/assets/uip-catalog-snapshot.json +95 -46
- package/package.json +2 -1
- package/skills/uipath-admin/SKILL.md +107 -197
- package/skills/uipath-admin/references/audit-commands.md +69 -120
- package/skills/uipath-admin/references/audit-workflow-guide.md +101 -152
- package/skills/uipath-admin/references/authorization/authorization-commands.md +121 -210
- package/skills/uipath-admin/references/authorization/check-access.md +39 -63
- package/skills/uipath-admin/references/authorization/grant-permissions.md +38 -49
- package/skills/uipath-admin/references/authorization/permission-catalog.md +32 -34
- package/skills/uipath-admin/references/authorization/role-assignment-management.md +96 -99
- package/skills/uipath-admin/references/authorization/role-management.md +113 -142
- package/skills/uipath-admin/references/diagnose/CAPABILITY.md +13 -14
- package/skills/uipath-admin/references/diagnose/{references/failure-modes.md → failure-modes.md} +90 -46
- package/skills/uipath-admin/references/diagnose/{references/troubleshooting-guide.md → troubleshooting-guide.md} +21 -14
- package/skills/uipath-admin/references/external-app-management.md +42 -39
- package/skills/uipath-admin/references/identity-commands.md +72 -625
- package/skills/uipath-admin/references/identity-troubleshoot-guide.md +73 -95
- package/skills/uipath-admin/references/ip-restriction/bypass-rule-management.md +25 -54
- package/skills/uipath-admin/references/ip-restriction/enforcement-management.md +19 -31
- package/skills/uipath-admin/references/ip-restriction/ip-range-management.md +48 -45
- package/skills/uipath-admin/references/ip-restriction/ip-restriction-commands.md +89 -146
- package/skills/uipath-admin/references/key-concepts.md +24 -0
- package/skills/uipath-admin/references/organization-management.md +49 -70
- package/skills/uipath-admin/references/organizations-commands.md +39 -74
- package/skills/uipath-admin/references/pat-management.md +25 -38
- package/skills/uipath-admin/references/robot-account-management.md +16 -14
- package/skills/uipath-admin/references/smtp-management.md +19 -14
- package/skills/uipath-admin/references/tenant-management.md +1 -1
- package/skills/uipath-admin/references/tenants-commands.md +82 -148
- package/skills/uipath-admin/references/user-management.md +70 -56
- package/skills/uipath-agents/SKILL.md +4 -3
- package/skills/uipath-agents/references/authentication.md +4 -3
- package/skills/uipath-agents/references/coded/capabilities/datafabric.md +465 -0
- package/skills/uipath-agents/references/coded/capabilities/guardrails/guardrails-recommend.md +5 -0
- package/skills/uipath-agents/references/coded/capabilities/guardrails/guardrails.md +2 -0
- package/skills/uipath-agents/references/coded/capabilities/human-in-the-loop.md +12 -6
- package/skills/uipath-agents/references/coded/flow-integration.md +2 -2
- package/skills/uipath-agents/references/coded/frameworks/langgraph-integration.md +48 -16
- package/skills/uipath-agents/references/coded/frameworks/openai-agents-integration.md +1 -1
- package/skills/uipath-agents/references/coded/lifecycle/deployment.md +11 -1
- package/skills/uipath-agents/references/coded/quickstart.md +11 -8
- package/skills/uipath-agents/references/lowcode/capabilities/inline-in-flow/inline-in-flow.md +3 -3
- package/skills/uipath-agents/references/lowcode/capabilities/memory/memory.md +19 -2
- package/skills/uipath-agents/references/lowcode/evaluations/evaluate.md +2 -2
- package/skills/uipath-agents/references/lowcode/evaluations/orchestrator-eval-run.md +409 -155
- package/skills/uipath-agents/references/lowcode/evaluations/running-evaluations.md +2 -2
- package/skills/uipath-agents/references/lowcode/prompting/autonomous-agent-prompting-guide.md +1 -1
- package/skills/uipath-aops/SKILL.md +313 -0
- package/skills/uipath-aops/assets/templates/pipeline-dto-template.json +15 -0
- package/skills/uipath-aops/references/discovery-flow.md +312 -0
- package/skills/uipath-aops/references/migration-guide.md +146 -0
- package/skills/uipath-aops/references/pipeline-dto-guide.md +276 -0
- package/skills/uipath-aops/references/save-and-run-guide.md +156 -0
- package/skills/uipath-api-workflow/SKILL.md +48 -6
- package/skills/uipath-api-workflow/assets/templates/file-base64-roundtrip-example.json +154 -0
- package/skills/uipath-api-workflow/assets/templates/nested-control-flow-example.json +0 -1
- package/skills/uipath-api-workflow/references/cli-reference.md +20 -1
- package/skills/uipath-api-workflow/references/expressions-and-context.md +19 -0
- package/skills/uipath-api-workflow/references/files-and-base64.md +153 -0
- package/skills/uipath-api-workflow/references/operating-published-workflows.md +3 -2
- package/skills/uipath-api-workflow/references/task-types.md +89 -3
- package/skills/uipath-api-workflow/references/testing-and-evals.md +224 -0
- package/skills/uipath-api-workflow/references/troubleshooting.md +124 -4
- package/skills/uipath-coded-apps/SKILL.md +4 -2
- package/skills/uipath-coded-apps/assets/scripts/dashboards/build-dashboard.mjs +1 -1
- package/skills/uipath-coded-apps/references/dashboards/CAPABILITY.md +11 -1
- package/skills/uipath-coded-apps/references/dashboards/plugins/build/impl.md +5 -3
- package/skills/uipath-coded-apps/references/dashboards/plugins/deploy/impl.md +1 -0
- package/skills/uipath-coded-apps/references/oauth-client-setup.md +2 -0
- package/skills/uipath-coded-apps/references/pack-publish-deploy.md +18 -0
- package/skills/uipath-coded-apps/references/sdk/orchestrator.md +4 -0
- package/skills/uipath-connector-builder/SKILL.md +7 -5
- package/skills/uipath-connector-builder/references/debugging.md +5 -1
- package/skills/uipath-connector-builder/references/element-json.md +3 -1
- package/skills/uipath-connector-builder/references/standard-resources.md +37 -6
- package/skills/uipath-functions/SKILL.md +134 -222
- package/skills/uipath-functions/references/js/authoring-guide.md +141 -0
- package/skills/uipath-functions/references/js/bindings-guide.md +120 -0
- package/skills/uipath-functions/references/js/calling-uipath-apis-guide.md +112 -0
- package/skills/uipath-functions/references/js/coded-app-wiring-guide.md +103 -0
- package/skills/uipath-functions/references/js/deployment-guide.md +109 -0
- package/skills/uipath-functions/references/js/http-semantics-guide.md +80 -0
- package/skills/uipath-functions/references/js/job-mode-guide.md +114 -0
- package/skills/uipath-functions/references/js/local-dev-guide.md +107 -0
- package/skills/uipath-functions/references/python/workflow-guide.md +224 -0
- package/skills/uipath-governance/SKILL.md +9 -8
- package/skills/uipath-governance/references/compliance-pack/catalog/impl.md +36 -8
- package/skills/uipath-governance/references/compliance-pack/coverage/impl.md +14 -12
- package/skills/uipath-governance/references/compliance-pack/disable/impl.md +5 -3
- package/skills/uipath-governance/references/compliance-pack/full-apply/impl.md +7 -5
- package/skills/uipath-governance/references/compliance-pack/partial-apply/impl.md +14 -7
- package/skills/uipath-governance/references/compliance-pack/partial-apply/planning.md +3 -1
- package/skills/uipath-governance/references/compliance-pack/preview-gate.md +1 -1
- package/skills/uipath-governance/references/compliance-pack/query/impl.md +4 -2
- package/skills/uipath-governance/references/diagnose/CAPABILITY.md +12 -12
- package/skills/uipath-governance/references/diagnose/{references/failure-modes.md → failure-modes.md} +5 -5
- package/skills/uipath-governance/references/diagnose/{references/troubleshooting-guide.md → troubleshooting-guide.md} +2 -2
- package/skills/uipath-governance/references/disambiguation-guide.md +15 -7
- package/skills/uipath-human-in-the-loop/SKILL.md +107 -9
- package/skills/uipath-human-in-the-loop/references/hitl-casetask-action.md +413 -0
- package/skills/uipath-insights/SKILL.md +21 -14
- package/skills/uipath-insights/references/alerts-reads-guide.md +242 -0
- package/skills/uipath-insights/references/filter-discovery-guide.md +1 -1
- package/skills/uipath-insights/references/jobs-commands-guide.md +2 -2
- package/skills/uipath-ixp/references/cli-reference.md +1 -1
- package/skills/uipath-ixp/references/improve-prompts-guide.md +5 -6
- package/skills/uipath-maestro-bpmn/SKILL.md +87 -15
- package/skills/uipath-maestro-bpmn/references/diagnose/CAPABILITY.md +10 -10
- package/skills/uipath-maestro-bpmn/references/diagnose/{references/troubleshooting-guide.md → troubleshooting-guide.md} +1 -1
- package/skills/uipath-maestro-bpmn/references/expression-authoring.md +12 -2
- package/skills/uipath-maestro-bpmn/references/operate/CAPABILITY.md +12 -12
- package/skills/uipath-maestro-bpmn/references/operate/{references/run.md → run.md} +2 -2
- package/skills/uipath-maestro-bpmn/references/operate/{references/ship.md → ship.md} +3 -3
- package/skills/uipath-maestro-bpmn/references/patterns/ai-decision-review-guide.md +138 -0
- package/skills/uipath-maestro-bpmn/references/patterns/approval-chain-guide.md +136 -0
- package/skills/uipath-maestro-bpmn/references/patterns/composing-guide.md +113 -0
- package/skills/uipath-maestro-bpmn/references/patterns/external-wait-guide.md +145 -0
- package/skills/uipath-maestro-bpmn/references/patterns/failure-escalation-guide.md +103 -0
- package/skills/uipath-maestro-bpmn/references/patterns/high-volume-batch-guide.md +107 -0
- package/skills/uipath-maestro-bpmn/references/patterns/queue-distribution-guide.md +129 -0
- package/skills/uipath-maestro-bpmn/references/patterns/smart-triage-guide.md +129 -0
- package/skills/uipath-maestro-bpmn/references/registry-workflow.md +15 -0
- package/skills/uipath-maestro-bpmn/references/shared/local-metadata-regeneration-guide.md +67 -36
- package/skills/uipath-maestro-bpmn/references/shared/project-layout.md +6 -5
- package/skills/uipath-maestro-bpmn/references/structural-bpmn.md +23 -5
- package/skills/uipath-maestro-bpmn/validator/bpmn-spec.json +101 -53
- package/skills/uipath-maestro-case/SKILL.md +23 -24
- package/skills/uipath-maestro-case/references/bindings-and-expressions.md +30 -17
- package/skills/uipath-maestro-case/references/bindings-v2-sync.md +5 -5
- package/skills/uipath-maestro-case/references/brownfield.md +3 -3
- package/skills/uipath-maestro-case/references/case-commands.md +8 -4
- package/skills/uipath-maestro-case/references/case-editing-operations.md +19 -19
- package/skills/uipath-maestro-case/references/case-schema.md +17 -3
- package/skills/uipath-maestro-case/references/connector-integration.md +25 -16
- package/skills/uipath-maestro-case/references/connector-trigger-impl.md +15 -15
- package/skills/uipath-maestro-case/references/connector-trigger-planning.md +32 -29
- package/skills/uipath-maestro-case/references/entry-points-sync.md +2 -1
- package/skills/uipath-maestro-case/references/evals/evals.json +11 -11
- package/skills/uipath-maestro-case/references/implementation.md +74 -44
- package/skills/uipath-maestro-case/references/phased-execution.md +23 -21
- package/skills/uipath-maestro-case/references/placeholder-tasks.md +28 -23
- package/skills/uipath-maestro-case/references/planning.md +37 -252
- package/skills/uipath-maestro-case/references/plugins/case/impl-json.md +3 -3
- package/skills/uipath-maestro-case/references/plugins/case/planning.md +8 -6
- package/skills/uipath-maestro-case/references/plugins/conditions/case-exit-conditions/impl-json.md +3 -3
- package/skills/uipath-maestro-case/references/plugins/conditions/case-exit-conditions/planning.md +11 -10
- package/skills/uipath-maestro-case/references/plugins/conditions/stage-entry-conditions/impl-json.md +6 -6
- package/skills/uipath-maestro-case/references/plugins/conditions/stage-entry-conditions/planning.md +12 -12
- package/skills/uipath-maestro-case/references/plugins/conditions/stage-exit-conditions/impl-json.md +4 -4
- package/skills/uipath-maestro-case/references/plugins/conditions/stage-exit-conditions/planning.md +10 -9
- package/skills/uipath-maestro-case/references/plugins/conditions/task-entry-conditions/impl-json.md +5 -5
- package/skills/uipath-maestro-case/references/plugins/conditions/task-entry-conditions/planning.md +16 -14
- package/skills/uipath-maestro-case/references/plugins/logging/impl-json.md +3 -3
- package/skills/uipath-maestro-case/references/plugins/sla/impl-json.md +15 -15
- package/skills/uipath-maestro-case/references/plugins/sla/planning.md +20 -21
- package/skills/uipath-maestro-case/references/plugins/stages/impl-json.md +6 -6
- package/skills/uipath-maestro-case/references/plugins/stages/planning.md +9 -9
- package/skills/uipath-maestro-case/references/plugins/tasks/action/impl-json.md +9 -9
- package/skills/uipath-maestro-case/references/plugins/tasks/action/planning.md +38 -38
- package/skills/uipath-maestro-case/references/plugins/tasks/agent/impl-json.md +3 -3
- package/skills/uipath-maestro-case/references/plugins/tasks/agent/planning.md +24 -20
- package/skills/uipath-maestro-case/references/plugins/tasks/api-workflow/impl-json.md +3 -3
- package/skills/uipath-maestro-case/references/plugins/tasks/api-workflow/planning.md +24 -20
- package/skills/uipath-maestro-case/references/plugins/tasks/case-management/impl-json.md +4 -4
- package/skills/uipath-maestro-case/references/plugins/tasks/case-management/planning.md +25 -21
- package/skills/uipath-maestro-case/references/plugins/tasks/connector-activity/impl-json.md +30 -22
- package/skills/uipath-maestro-case/references/plugins/tasks/connector-activity/planning.md +44 -28
- package/skills/uipath-maestro-case/references/plugins/tasks/connector-trigger/impl-json.md +10 -10
- package/skills/uipath-maestro-case/references/plugins/tasks/connector-trigger/planning.md +27 -23
- package/skills/uipath-maestro-case/references/plugins/tasks/create-inline-common.md +3 -3
- package/skills/uipath-maestro-case/references/plugins/tasks/process/impl-json.md +3 -3
- package/skills/uipath-maestro-case/references/plugins/tasks/process/planning.md +25 -22
- package/skills/uipath-maestro-case/references/plugins/tasks/rpa/impl-json.md +3 -3
- package/skills/uipath-maestro-case/references/plugins/tasks/rpa/planning.md +25 -21
- package/skills/uipath-maestro-case/references/plugins/tasks/wait-for-timer/impl-json.md +4 -4
- package/skills/uipath-maestro-case/references/plugins/tasks/wait-for-timer/planning.md +5 -4
- package/skills/uipath-maestro-case/references/plugins/triggers/event/impl-json.md +9 -9
- package/skills/uipath-maestro-case/references/plugins/triggers/event/planning.md +30 -19
- package/skills/uipath-maestro-case/references/plugins/triggers/manual/impl-json.md +4 -4
- package/skills/uipath-maestro-case/references/plugins/triggers/manual/planning.md +8 -7
- package/skills/uipath-maestro-case/references/plugins/triggers/timer/impl-json.md +3 -3
- package/skills/uipath-maestro-case/references/plugins/triggers/timer/planning.md +5 -4
- package/skills/uipath-maestro-case/references/plugins/variables/bindings/impl-json.md +5 -5
- package/skills/uipath-maestro-case/references/plugins/variables/global-vars/impl-json.md +7 -7
- package/skills/uipath-maestro-case/references/plugins/variables/global-vars/planning.md +21 -17
- package/skills/uipath-maestro-case/references/plugins/variables/io-binding/impl-json.md +29 -21
- package/skills/uipath-maestro-case/references/plugins/variables/io-binding/planning.md +23 -21
- package/skills/uipath-maestro-case/references/registry-discovery.md +5 -5
- package/skills/uipath-maestro-flow/.maintenance/README.md +35 -28
- package/skills/uipath-maestro-flow/.maintenance/check-anchors.sh +19 -1
- package/skills/uipath-maestro-flow/.maintenance/check-links.sh +3 -0
- package/skills/uipath-maestro-flow/.maintenance/check-plugin-pairs.sh +2 -2
- package/skills/uipath-maestro-flow/SKILL.md +66 -76
- package/skills/uipath-maestro-flow/references/author/CAPABILITY.md +75 -72
- package/skills/uipath-maestro-flow/references/author/brownfield.md +90 -0
- package/skills/uipath-maestro-flow/references/author/{references/editing-operations-cli.md → editing-operations-cli.md} +9 -4
- package/skills/uipath-maestro-flow/references/author/editing-operations-json.md +373 -0
- package/skills/uipath-maestro-flow/references/author/editing-operations.md +103 -0
- package/skills/uipath-maestro-flow/references/author/{references/greenfield.md → greenfield.md} +32 -20
- package/skills/uipath-maestro-flow/references/author/planning-arch.md +342 -0
- package/skills/uipath-maestro-flow/references/author/planning-impl.md +283 -0
- package/skills/uipath-maestro-flow/references/author/plugins/agent/impl.md +227 -0
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/agent/planning.md +2 -2
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/agentic-process/impl.md +2 -2
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/agentic-process/planning.md +1 -1
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/api-workflow/impl.md +2 -2
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/api-workflow/planning.md +1 -1
- package/skills/uipath-maestro-flow/references/author/plugins/batch-transform/impl.md +171 -0
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/batch-transform/planning.md +1 -1
- package/skills/uipath-maestro-flow/references/author/plugins/connector/impl.md +449 -0
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/connector/planning.md +3 -3
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/connector-trigger/impl.md +20 -18
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/connector-trigger/planning.md +2 -2
- package/skills/uipath-maestro-flow/references/author/plugins/data-fabric/impl.md +427 -0
- package/skills/uipath-maestro-flow/references/author/plugins/data-fabric/planning.md +185 -0
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/decision/impl.md +5 -0
- package/skills/uipath-maestro-flow/references/author/plugins/delay/impl.md +38 -0
- package/skills/uipath-maestro-flow/references/author/plugins/end/impl.md +56 -0
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/flow/impl.md +2 -2
- package/skills/uipath-maestro-flow/references/author/plugins/hitl/impl.md +178 -0
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/hitl/planning.md +14 -1
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/http/impl-connector.md +4 -4
- package/skills/uipath-maestro-flow/references/author/plugins/http/impl-manual.md +68 -0
- package/skills/uipath-maestro-flow/references/author/plugins/http/impl.md +173 -0
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/http/planning.md +3 -3
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/inline-agent/impl.md +6 -6
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/inline-agent/planning.md +1 -1
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/inline-voice-agent/impl.md +4 -4
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/inline-voice-agent/planning.md +1 -1
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/ixp/impl.md +8 -8
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/loop/impl.md +1 -1
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/loop/planning.md +1 -1
- package/skills/uipath-maestro-flow/references/author/plugins/merge/impl.md +43 -0
- package/skills/uipath-maestro-flow/references/author/plugins/merge/planning.md +24 -0
- package/skills/uipath-maestro-flow/references/author/plugins/rpa/impl.md +117 -0
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/rpa/planning.md +1 -1
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/scheduled-trigger/impl.md +6 -8
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/script/impl.md +5 -5
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/script/planning.md +1 -1
- package/skills/uipath-maestro-flow/references/author/plugins/subflow/impl.md +164 -0
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/subflow/planning.md +1 -1
- package/skills/uipath-maestro-flow/references/author/plugins/summarize/impl.md +189 -0
- package/skills/uipath-maestro-flow/references/author/plugins/summarize/planning.md +66 -0
- package/skills/uipath-maestro-flow/references/author/plugins/switch/planning.md +34 -0
- package/skills/uipath-maestro-flow/references/author/plugins/terminate/impl.md +48 -0
- package/skills/uipath-maestro-flow/references/author/plugins/transform/impl.md +241 -0
- package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/transform/planning.md +1 -1
- package/skills/uipath-maestro-flow/references/diagnose/CAPABILITY.md +39 -37
- package/skills/uipath-maestro-flow/references/diagnose/{references/failure-modes.md → failure-modes.md} +22 -22
- package/skills/uipath-maestro-flow/references/diagnose/{references/troubleshooting-guide.md → troubleshooting-guide.md} +60 -1
- package/skills/uipath-maestro-flow/references/evaluate/CAPABILITY.md +27 -25
- package/skills/uipath-maestro-flow/references/evaluate/{references/commands-reference.md → commands-reference.md} +58 -7
- package/skills/uipath-maestro-flow/references/evaluate/eval-sets-guide.md +227 -0
- package/skills/uipath-maestro-flow/references/evaluate/upload-safety.md +94 -0
- package/skills/uipath-maestro-flow/references/operate/CAPABILITY.md +21 -21
- package/skills/uipath-maestro-flow/references/operate/{references/manage.md → manage.md} +4 -4
- package/skills/uipath-maestro-flow/references/operate/run.md +121 -0
- package/skills/uipath-maestro-flow/references/operate/{references/ship.md → ship.md} +5 -5
- package/skills/uipath-maestro-flow/references/shared/action-nodes.md +30 -22
- package/skills/uipath-maestro-flow/references/shared/cli-commands.md +76 -184
- package/skills/uipath-maestro-flow/references/shared/cli-conventions.md +49 -60
- package/skills/uipath-maestro-flow/references/shared/file-format.md +32 -11
- package/skills/uipath-maestro-flow/references/shared/node-output-wiring.md +49 -104
- package/skills/uipath-maestro-flow/references/shared/ux-narration-and-todos.md +66 -103
- package/skills/uipath-maestro-flow/references/shared/variables-and-expressions.md +4 -4
- package/skills/uipath-planner/SKILL.md +1 -1
- package/skills/uipath-planner/assets/templates/case/case-sdd-template.md +5 -3
- package/skills/uipath-planner/references/case/case-design-lane-guide.md +1 -1
- package/skills/uipath-planner/references/case/case-design-layers-guide.md +2 -2
- package/skills/uipath-planner/references/non-pdd-lane-guide.md +2 -1
- package/skills/uipath-planner/references/pdd-driven-lane-guide.md +3 -2
- package/skills/uipath-planner/references/sdd-generation-guide.md +1 -0
- package/skills/uipath-planner/scripts/case/audit_sdd.py +77 -1
- package/skills/uipath-platform/SKILL.md +6 -4
- package/skills/uipath-platform/references/integration-service/activities.md +7 -4
- package/skills/uipath-platform/references/integration-service/reference-resolution.md +28 -0
- package/skills/uipath-platform/references/integration-service/resources.md +11 -0
- package/skills/uipath-platform/references/integration-service/triggers.md +2 -2
- package/skills/uipath-platform/references/licensing/diagnose/CAPABILITY.md +80 -0
- package/skills/uipath-platform/references/licensing/diagnose/references/failure-modes.md +147 -0
- package/skills/uipath-platform/references/licensing/diagnose/references/troubleshooting-guide.md +125 -0
- package/skills/uipath-platform/references/licensing/licensing.md +3 -0
- package/skills/uipath-platform/references/licensing/user-licenses-allocations.md +5 -0
- package/skills/uipath-platform/references/orchestrator/run-jobs.md +11 -2
- package/skills/uipath-platform/references/traces/feedback.md +4 -4
- package/skills/uipath-platform/references/traces/traces.md +1 -1
- package/skills/uipath-process-mining/SKILL.md +6 -6
- package/skills/uipath-process-mining/references/lifecycle-and-rbac.md +10 -8
- package/skills/uipath-process-mining/references/model-editing.md +1 -1
- package/skills/uipath-process-mining/references/querying.md +4 -3
- package/skills/uipath-review/SKILL.md +171 -541
- package/skills/uipath-review/references/agents/agents-lowcode-rules.md +73 -92
- package/skills/uipath-review/references/agents/guardrails/coded-guardrails-review.md +4 -0
- package/skills/uipath-review/references/agents/guardrails/guardrails-review.md +73 -180
- package/skills/uipath-review/references/architecture-assessment-guide.md +93 -105
- package/skills/uipath-review/references/review-workflow-guide.md +1 -1
- package/skills/uipath-review/references/rpa/modern-studio-issues.md +44 -44
- package/skills/uipath-review/references/rpa/rpa-common-issues.md +251 -321
- package/skills/uipath-review/references/rpa/rpa-review-checklist.md +1 -1
- package/skills/uipath-review/references/rule-catalog-workflow.md +25 -45
- package/skills/uipath-review/references/rule-format.md +21 -21
- package/skills/uipath-rpa/.maintenance/pattern-card-maintenance.md +1 -1
- package/skills/uipath-rpa/CLAUDE.md +4 -5
- package/skills/uipath-rpa/SKILL.md +40 -246
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/FindText.md +2 -10
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/GetColorAtPosition.md +2 -10
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/GetCursorPosition.md +2 -10
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/GetField.md +13 -13
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/GetFieldAtPosition.md +2 -10
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/GetScreenArea.md +27 -8
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/GetText.md +2 -14
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/GetTextAtPosition.md +2 -10
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/MoveCursor.md +3 -11
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/MoveCursorToText.md +2 -10
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/SendControlKey.md +2 -8
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/SendKeys.md +2 -10
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/SendKeysSecure.md +2 -10
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/SetField.md +14 -13
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/SetFieldAtPosition.md +4 -7
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/TerminalSession/_common-options.md +29 -0
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/TerminalSession/authoring-paths.md +58 -0
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/TerminalSession.md +197 -11
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/WaitFieldText.md +2 -10
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/WaitScreenReady.md +9 -10
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/WaitScreenText.md +2 -14
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities/WaitTextAtPosition.md +2 -10
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/activities.json +271 -0
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/coded/coded-api.md +61 -3
- package/skills/uipath-rpa/references/activity-docs/UiPath.Terminal.Activities/2.10/overview.md +76 -0
- package/skills/uipath-rpa/references/cli-reference.md +63 -29
- package/skills/uipath-rpa/references/coded/codedworkflow-reference.md +59 -1
- package/skills/uipath-rpa/references/coded/operations-guide.md +2 -1
- package/skills/uipath-rpa/references/debugging.md +29 -12
- package/skills/uipath-rpa/references/environment-setup.md +54 -1
- package/skills/uipath-rpa/references/execution-maps-guide.md +10 -9
- package/skills/uipath-rpa/references/legacy/activity-docs/_INVOKE-CODE.md +1 -1
- package/skills/uipath-rpa/references/uia-starter-guide.md +46 -8
- package/skills/uipath-rpa/references/xaml/common-pitfalls.md +3 -4
- package/skills/uipath-rpa/references/xaml/csharp-activity-binding-guide.md +7 -8
- package/skills/uipath-rpa/references/xaml/xaml-basics-and-rules.md +132 -42
- package/skills/uipath-solution/SKILL.md +9 -6
- package/skills/uipath-solution/references/activate-and-manage.md +11 -6
- package/skills/uipath-solution/references/develop-solution.md +39 -28
- package/skills/uipath-solution/references/pack-and-deploy.md +49 -1
- package/skills/uipath-solution/references/scenarios/failure-modes.md +1 -1
- package/skills/uipath-solution/references/scenarios/intra-solution-references.md +3 -3
- package/skills/uipath-solution/references/scenarios/manual-edits.md +1 -1
- package/skills/uipath-solution/references/scenarios.md +2 -2
- package/skills/uipath-solution/references/solution-overview.md +15 -6
- package/skills/uipath-tasks/SKILL.md +11 -6
- package/skills/uipath-tasks/references/task-assignment.md +5 -0
- package/skills/uipath-tasks/references/task-catalogs.md +7 -4
- package/skills/uipath-tasks/references/task-completion.md +3 -1
- package/skills/uipath-tasks/references/task-data.md +3 -3
- package/skills/uipath-tasks/references/task-lifecycle.md +11 -0
- package/skills/uipath-tasks/references/task-metadata.md +4 -3
- package/skills/uipath-test/SKILL.md +13 -28
- package/skills/uipath-test/references/failure-triage-guide.md +90 -0
- package/skills/uipath-test/references/playwright-first-mile-guide.md +2 -2
- package/skills/uipath-test/references/publish-and-link-guide.md +0 -1
- package/skills/uipath-test/references/test-result-report-guide.md +1 -2
- package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/interpretations/healing-agent-data.md +1 -1
- package/skills/uipath-troubleshoot/references/presenting.md +1 -1
- package/skills/uipath-troubleshoot/references/products/maestro/playbooks/folder-not-accessible.md +1 -1
- package/skills/uipath-troubleshoot/references/products/maestro/playbooks/generic-error-400.md +4 -4
- package/skills/uipath-troubleshoot/references/products/maestro/playbooks/integration-service-400.md +2 -2
- package/skills/uipath-troubleshoot/references/products/maestro/playbooks/job-operation-timeout.md +1 -1
- package/skills/uipath-troubleshoot/references/products/maestro/playbooks/no-suitable-runtime-machine.md +1 -1
- package/version-manifest.json +2 -2
- package/skills/uipath-maestro-case/scripts/audit_plan.py +0 -231
- package/skills/uipath-maestro-flow/references/author/references/brownfield.md +0 -93
- package/skills/uipath-maestro-flow/references/author/references/editing-operations-json.md +0 -545
- package/skills/uipath-maestro-flow/references/author/references/editing-operations.md +0 -131
- package/skills/uipath-maestro-flow/references/author/references/planning-arch.md +0 -638
- package/skills/uipath-maestro-flow/references/author/references/planning-impl.md +0 -306
- package/skills/uipath-maestro-flow/references/author/references/plugins/agent/impl.md +0 -229
- package/skills/uipath-maestro-flow/references/author/references/plugins/batch-transform/impl.md +0 -174
- package/skills/uipath-maestro-flow/references/author/references/plugins/connector/impl.md +0 -741
- package/skills/uipath-maestro-flow/references/author/references/plugins/delay/impl.md +0 -75
- package/skills/uipath-maestro-flow/references/author/references/plugins/end/impl.md +0 -65
- package/skills/uipath-maestro-flow/references/author/references/plugins/hitl/impl.md +0 -204
- package/skills/uipath-maestro-flow/references/author/references/plugins/http/impl-manual.md +0 -65
- package/skills/uipath-maestro-flow/references/author/references/plugins/http/impl.md +0 -201
- package/skills/uipath-maestro-flow/references/author/references/plugins/merge/impl.md +0 -43
- package/skills/uipath-maestro-flow/references/author/references/plugins/merge/planning.md +0 -29
- package/skills/uipath-maestro-flow/references/author/references/plugins/rpa/impl.md +0 -121
- package/skills/uipath-maestro-flow/references/author/references/plugins/subflow/impl.md +0 -230
- package/skills/uipath-maestro-flow/references/author/references/plugins/summarize/impl.md +0 -198
- package/skills/uipath-maestro-flow/references/author/references/plugins/summarize/planning.md +0 -71
- package/skills/uipath-maestro-flow/references/author/references/plugins/switch/planning.md +0 -38
- package/skills/uipath-maestro-flow/references/author/references/plugins/terminate/impl.md +0 -48
- package/skills/uipath-maestro-flow/references/author/references/plugins/transform/impl.md +0 -287
- package/skills/uipath-maestro-flow/references/evaluate/references/eval-sets-guide.md +0 -226
- package/skills/uipath-maestro-flow/references/evaluate/references/upload-safety.md +0 -82
- package/skills/uipath-maestro-flow/references/operate/references/run.md +0 -99
- /package/skills/uipath-maestro-bpmn/references/diagnose/{references/failure-modes.md → failure-modes.md} +0 -0
- /package/skills/uipath-maestro-bpmn/references/operate/{references/manage.md → manage.md} +0 -0
- /package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/decision/planning.md +0 -0
- /package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/delay/planning.md +0 -0
- /package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/end/planning.md +0 -0
- /package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/flow/planning.md +0 -0
- /package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/ixp/planning.md +0 -0
- /package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/queue/impl.md +0 -0
- /package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/queue/planning.md +0 -0
- /package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/scheduled-trigger/planning.md +0 -0
- /package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/switch/impl.md +0 -0
- /package/skills/uipath-maestro-flow/references/author/{references/plugins → plugins}/terminate/planning.md +0 -0
- /package/skills/uipath-maestro-flow/references/evaluate/{references/evaluators-guide.md → evaluators-guide.md} +0 -0
- /package/skills/uipath-maestro-flow/references/evaluate/{references/running-guide.md → running-guide.md} +0 -0
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
# Pattern: `external-wait`
|
|
2
|
+
|
|
3
|
+
The process suspends until an outside party responds, nudges before the
|
|
4
|
+
deadline, and escalates when the deadline passes. Use it when a reply may take
|
|
5
|
+
hours or weeks and an SLA has to be enforced either way.
|
|
6
|
+
|
|
7
|
+
## Why it works
|
|
8
|
+
|
|
9
|
+
These five carry the shape. Change one and you are building something else.
|
|
10
|
+
|
|
11
|
+
- **A correlation key goes out with the request.** The reply carries it back,
|
|
12
|
+
which is how the engine finds the one suspended instance that was waiting.
|
|
13
|
+
Without it a reply cannot be matched and the wait never ends.
|
|
14
|
+
- **An event-based gateway makes the outcomes a race.** Reply, reminder, and
|
|
15
|
+
deadline are mutually exclusive: whichever fires first wins and the others are
|
|
16
|
+
discarded. Modelling them as parallel branches would let two fire.
|
|
17
|
+
- **The reminder loops back to the same gateway.** After nudging, the process
|
|
18
|
+
resumes waiting on the gateway it already has, so the wait exists once no
|
|
19
|
+
matter how many reminders go out.
|
|
20
|
+
- **Replies are validated before they are believed.** A malformed or
|
|
21
|
+
unmatched reply routes to a person instead of resuming the process on bad
|
|
22
|
+
data.
|
|
23
|
+
- **Both exits are named.** A reply received, or an escalation exhausted. A
|
|
24
|
+
wait that ends without a recorded reason is indistinguishable from one that
|
|
25
|
+
never ended.
|
|
26
|
+
|
|
27
|
+
## Shape
|
|
28
|
+
|
|
29
|
+
Single-channel is the base shape.
|
|
30
|
+
|
|
31
|
+
| Node | Element | Role |
|
|
32
|
+
| --- | --- | --- |
|
|
33
|
+
| `start` | `bpmn:startEvent` + message event definition | Entry |
|
|
34
|
+
| `compose` | `bpmn:serviceTask` | Mechanism · insertion point — embeds the correlation key |
|
|
35
|
+
| `send_request` | `bpmn:sendTask` | Placeholder |
|
|
36
|
+
| `wait` | `bpmn:eventBasedGateway` | Mechanism |
|
|
37
|
+
| `reply_received` | `bpmn:intermediateCatchEvent` + message event definition | Mechanism |
|
|
38
|
+
| `reminder_timer` | `bpmn:intermediateCatchEvent` + timer event definition | Mechanism |
|
|
39
|
+
| `send_reminder` | `bpmn:sendTask` | Placeholder |
|
|
40
|
+
| `sla_deadline` | `bpmn:intermediateCatchEvent` + timer event definition | Mechanism |
|
|
41
|
+
| `validate` | `bpmn:serviceTask` | Mechanism |
|
|
42
|
+
| `valid_gate` | `bpmn:exclusiveGateway` | Mechanism |
|
|
43
|
+
| `review_reply` | `bpmn:userTask` | Placeholder |
|
|
44
|
+
| `run_escalation` | `bpmn:serviceTask` | Placeholder |
|
|
45
|
+
| `end_received` | `bpmn:endEvent` | Mechanism |
|
|
46
|
+
| `end_escalated` | `bpmn:endEvent` | Mechanism |
|
|
47
|
+
|
|
48
|
+
Every outgoing sequence flow from `wait` must target an intermediate catch event
|
|
49
|
+
or a receive task — that is a rule of the gateway, not a choice. See
|
|
50
|
+
[structural-bpmn.md](../structural-bpmn.md#gateways).
|
|
51
|
+
|
|
52
|
+
| Sequence flow | Label | Condition |
|
|
53
|
+
| --- | --- | --- |
|
|
54
|
+
| `start` → `compose` → `send_request` → `wait` | | |
|
|
55
|
+
| `wait` → `reply_received` → `validate` | | |
|
|
56
|
+
| `wait` → `reminder_timer` → `send_reminder` → `wait` | | the reminder loop |
|
|
57
|
+
| `wait` → `sla_deadline` → `run_escalation` → `end_escalated` | | |
|
|
58
|
+
| `validate` → `valid_gate` | | |
|
|
59
|
+
| `valid_gate` → `end_received` | Valid | `=vars.responseValid == true` |
|
|
60
|
+
| `valid_gate` → `review_reply` | Invalid | default |
|
|
61
|
+
| `review_reply` → `end_received` | | |
|
|
62
|
+
|
|
63
|
+
| Variable | Type | Default | Holds |
|
|
64
|
+
| --- | --- | --- | --- |
|
|
65
|
+
| `correlationKey` | string | | Unique ID embedded in the request |
|
|
66
|
+
| `responseData` | jsonSchema | | The reply payload |
|
|
67
|
+
| `responseValid` | boolean | `false` | Did it pass validation |
|
|
68
|
+
| `validationIssue` | string | | Why it did not, shown to the reviewer |
|
|
69
|
+
| `reviewOutcome` | string | | `Accept` or `Submit Correction` |
|
|
70
|
+
| `reviewNote` | string | | Reviewer's note |
|
|
71
|
+
|
|
72
|
+
## Variants
|
|
73
|
+
|
|
74
|
+
| Variant | Question it answers | Delta |
|
|
75
|
+
| --- | --- | --- |
|
|
76
|
+
| Single-channel | — | The shape above |
|
|
77
|
+
| Multi-channel | Can they reply however they like? | One catch event per channel |
|
|
78
|
+
| First valid response wins | Can any of several parties fulfil it? | Fan out, first acceptable reply closes the rest |
|
|
79
|
+
| Long-running probe | Can the far system push at all? | Poll on a timer instead of waiting for an event |
|
|
80
|
+
|
|
81
|
+
**Multi-channel.** Replace `reply_received` with one
|
|
82
|
+
`bpmn:intermediateCatchEvent` per channel — email, webhook, portal — each an
|
|
83
|
+
outgoing target of `wait`, all converging on `validate`. The gateway already
|
|
84
|
+
makes them a race, so the first to arrive wins and the rest are dropped. Same
|
|
85
|
+
variables.
|
|
86
|
+
|
|
87
|
+
**First valid response wins.** Fan out with a `bpmn:parallelGateway` to one send
|
|
88
|
+
task per party, join, then open the response window and wait. An unacceptable
|
|
89
|
+
reply is discarded and the wait resumes; the first acceptable one triggers a
|
|
90
|
+
notification closing out the remaining parties.
|
|
91
|
+
|
|
92
|
+
Variables narrow to `correlationKey` (one per party), `responseData`, and
|
|
93
|
+
`replyAcceptable` (boolean, default `false`). Each request carries its own key,
|
|
94
|
+
or replies cannot be told apart.
|
|
95
|
+
|
|
96
|
+
**Long-running probe.** There is no event to catch, so there is no event-based
|
|
97
|
+
gateway. `send_request` leads to a timer, then a poll task, then a readiness
|
|
98
|
+
gateway; not-ready falls to a deadline gateway that either loops back to the
|
|
99
|
+
timer or escalates.
|
|
100
|
+
|
|
101
|
+
| Sequence flow | Label | Condition |
|
|
102
|
+
| --- | --- | --- |
|
|
103
|
+
| `ready_gate` → `end_received` | Ready | `=vars.resultReady == true` |
|
|
104
|
+
| `ready_gate` → `deadline_gate` | Not yet | default |
|
|
105
|
+
| `deadline_gate` → `run_escalation` | Yes | `=vars.deadlinePassed == true` |
|
|
106
|
+
| `deadline_gate` → `poll_timer` | No | default |
|
|
107
|
+
|
|
108
|
+
Variables are `responseData`, `resultReady` (boolean, `false`), and
|
|
109
|
+
`deadlinePassed` (boolean, `false`). The loop returns to the **timer**, not the
|
|
110
|
+
poll task — the wait between polls is the point. The deadline gateway is what
|
|
111
|
+
stops the loop running forever; without it this shape never terminates.
|
|
112
|
+
|
|
113
|
+
## What to bind
|
|
114
|
+
|
|
115
|
+
- **`compose`** — build the outbound payload and embed the correlation key.
|
|
116
|
+
- **`send_request`**, **`send_reminder`** — the outbound channel: email, portal
|
|
117
|
+
link, API call, EDI.
|
|
118
|
+
- **Reply catch events** — the inbound channel and the message each correlates
|
|
119
|
+
on.
|
|
120
|
+
- **Timer durations** — reminder cadence and the SLA deadline, as ISO 8601
|
|
121
|
+
durations on the timer event definitions.
|
|
122
|
+
- **`validate`** — correlation match, parseable content, acceptable values.
|
|
123
|
+
- **`review_reply`** — `Actions.HITL`.
|
|
124
|
+
- **`run_escalation`** — next-level contact, alternate channel, internal owner.
|
|
125
|
+
|
|
126
|
+
Fetch payloads through [registry-workflow.md](../registry-workflow.md); see
|
|
127
|
+
[structural-bpmn.md](../structural-bpmn.md#events-and-the-event-definition-matrix)
|
|
128
|
+
for event definition structure.
|
|
129
|
+
|
|
130
|
+
## Adapting it
|
|
131
|
+
|
|
132
|
+
Drop the reminder branch when there is no one to nudge — a machine counterpart
|
|
133
|
+
that either answers or does not. The deadline branch stays; that is the SLA.
|
|
134
|
+
|
|
135
|
+
Drop `review_reply` and route invalid replies straight to escalation when no
|
|
136
|
+
human can repair a malformed reply.
|
|
137
|
+
|
|
138
|
+
Add channels freely in the multi-channel variant: each is one more catch event
|
|
139
|
+
on the gateway, not a structural change.
|
|
140
|
+
|
|
141
|
+
## Composing
|
|
142
|
+
|
|
143
|
+
Nested inside `high-volume-batch` this becomes a per-item wait, giving each item
|
|
144
|
+
its own correlation key and deadline. Pair with `failure-escalation` for
|
|
145
|
+
failures in sending or escalation. See [composing-guide.md](composing-guide.md).
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# Pattern: `failure-escalation`
|
|
2
|
+
|
|
3
|
+
One error event subprocess that catches every unhandled activity failure in its
|
|
4
|
+
container, classifies it, and routes business errors to a person and system
|
|
5
|
+
failures to operations. Use it on any process where a failure must never
|
|
6
|
+
disappear silently.
|
|
7
|
+
|
|
8
|
+
## Why it works
|
|
9
|
+
|
|
10
|
+
These four carry the shape. Change one and you are building something else.
|
|
11
|
+
|
|
12
|
+
- **It covers by placement, not by wiring.** The net is an event subprocess with
|
|
13
|
+
no sequence flows in or out. Drop it into a container and every unhandled
|
|
14
|
+
activity failure inside routes to it, with nothing attached to any task.
|
|
15
|
+
- **The engine pre-seeds the error context.** `vars.Error` arrives populated,
|
|
16
|
+
so the classification gateway reads real values with no mapping authored.
|
|
17
|
+
- **It is interrupting and terminal, so outcomes must be named.** When the net
|
|
18
|
+
fires, the normal path stops and the instance records **Completed**, not
|
|
19
|
+
Faulted. Without an explicitly named end event on every branch, a handled
|
|
20
|
+
failure is indistinguishable from a success.
|
|
21
|
+
- **Code-specific nets match before the catch-all.** Both can sit in one
|
|
22
|
+
container, so a known error gets a precise response while everything else
|
|
23
|
+
still lands somewhere.
|
|
24
|
+
|
|
25
|
+
## Shape
|
|
26
|
+
|
|
27
|
+
This pattern has no Entry row: it is never wired into a path.
|
|
28
|
+
|
|
29
|
+
The net itself is a `bpmn:subProcess` with `triggeredByEvent="true"`, holding:
|
|
30
|
+
|
|
31
|
+
| Node | Element | Role |
|
|
32
|
+
| --- | --- | --- |
|
|
33
|
+
| `err_start` | `bpmn:startEvent` + error event definition | Mechanism |
|
|
34
|
+
| `classify` | `bpmn:exclusiveGateway` | Mechanism |
|
|
35
|
+
| `reviewer` | `bpmn:userTask` | Placeholder |
|
|
36
|
+
| `end_human` | `bpmn:endEvent` | Mechanism |
|
|
37
|
+
| `record_failure` | `bpmn:serviceTask` | Placeholder |
|
|
38
|
+
| `alert_oncall` | `bpmn:sendTask` | Placeholder |
|
|
39
|
+
| `end_ops` | `bpmn:endEvent` | Mechanism |
|
|
40
|
+
|
|
41
|
+
| Sequence flow | Label | Condition |
|
|
42
|
+
| --- | --- | --- |
|
|
43
|
+
| `err_start` → `classify` | | |
|
|
44
|
+
| `classify` → `reviewer` | Business error | `=vars.Error.category == "User"` |
|
|
45
|
+
| `reviewer` → `end_human` | | |
|
|
46
|
+
| `classify` → `record_failure` | System failure | default |
|
|
47
|
+
| `record_failure` → `alert_oncall` | | |
|
|
48
|
+
| `alert_oncall` → `end_ops` | | |
|
|
49
|
+
|
|
50
|
+
The pattern declares no process variables of its own. `vars.Error` is seeded by
|
|
51
|
+
the engine — capital `E`, lowercase fields: `code`, `message`, `detail`,
|
|
52
|
+
`category`, `status`, `traceId`, `response`, `element`. `category` is `User`,
|
|
53
|
+
`System`, or `Deployment`; business errors arrive as `User`. See
|
|
54
|
+
[expression-authoring.md](../expression-authoring.md#stored-expression-shape).
|
|
55
|
+
|
|
56
|
+
## Variants
|
|
57
|
+
|
|
58
|
+
| Variant | Question it answers | Delta |
|
|
59
|
+
| --- | --- | --- |
|
|
60
|
+
| Catch-all | What catches everything nothing else did? | The shape above |
|
|
61
|
+
| Code-specific | Does one known error deserve its own response? | Bound start, no classification |
|
|
62
|
+
|
|
63
|
+
**Code-specific.** Bind `err_start` to a single error code. The code already
|
|
64
|
+
identifies the failure, so there is no `classify` gateway: the bound start leads
|
|
65
|
+
straight to one response node and one named end event. It is the smaller net,
|
|
66
|
+
and it coexists with a catch-all in the same container.
|
|
67
|
+
|
|
68
|
+
## What to bind
|
|
69
|
+
|
|
70
|
+
- **`reviewer`** — `Actions.HITL`. Who works a business error: an operations
|
|
71
|
+
queue, the process owner.
|
|
72
|
+
- **`record_failure`** — where a system failure is durably recorded for someone
|
|
73
|
+
to work later: an exception queue, a task.
|
|
74
|
+
- **`alert_oncall`** — the notification channel.
|
|
75
|
+
- **The error code** on a code-specific net's `err_start`, via `errorRef` to a
|
|
76
|
+
declared `bpmn:error`.
|
|
77
|
+
|
|
78
|
+
See [structural-bpmn.md](../structural-bpmn.md#subprocess-call-activity-event-subprocess-registry-gap-for-structure)
|
|
79
|
+
for event subprocess structure, and
|
|
80
|
+
[registry-workflow.md](../registry-workflow.md) for the payloads.
|
|
81
|
+
|
|
82
|
+
## Adapting it
|
|
83
|
+
|
|
84
|
+
Collapse the two branches into one when the process has no meaningful business
|
|
85
|
+
errors — everything is a system failure and there is nobody to escalate to.
|
|
86
|
+
Keep the named end event.
|
|
87
|
+
|
|
88
|
+
Do not extend the net to resume the interrupted work. It cannot: the normal path
|
|
89
|
+
has already stopped. Work that should recover and continue belongs on an error
|
|
90
|
+
boundary event instead — see
|
|
91
|
+
[structural-bpmn.md](../structural-bpmn.md#choosing-an-error-handling-construct).
|
|
92
|
+
|
|
93
|
+
Two limits are worth knowing before relying on it. Only activities enter the
|
|
94
|
+
chain, so a gateway whose condition fails to evaluate raises an incident and
|
|
95
|
+
never reaches the net. And transient failures should not arrive here at all —
|
|
96
|
+
they are absorbed by `uipath:retry` on the node.
|
|
97
|
+
|
|
98
|
+
## Composing
|
|
99
|
+
|
|
100
|
+
Nested patterns are covered for free: one net catches failures in every
|
|
101
|
+
subprocess beneath it. For when a second net inside a batch iteration or a queue
|
|
102
|
+
performer earns its place, see
|
|
103
|
+
[composing-guide.md](composing-guide.md#scoping-the-failure-net).
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# Pattern: `high-volume-batch`
|
|
2
|
+
|
|
3
|
+
Many independent items processed in one run, fanned out in parallel, aggregated
|
|
4
|
+
at the end. Use it when volume makes sequential processing impractical, items do
|
|
5
|
+
not depend on each other, and some will fail without the run being a failure.
|
|
6
|
+
|
|
7
|
+
## Why it works
|
|
8
|
+
|
|
9
|
+
These four carry the shape. Change one and you are building something else.
|
|
10
|
+
|
|
11
|
+
- **Each item runs in its own subprocess instance.** A multi-instance marker on
|
|
12
|
+
a container, not a loop drawn on the canvas. The marker gives each item its own
|
|
13
|
+
scope and lets them run concurrently — it does **not** by itself stop one
|
|
14
|
+
item's failure ending the run. An unhandled failure propagates outward, so
|
|
15
|
+
containing it needs a `failure-escalation` net placed inside the iteration.
|
|
16
|
+
Isolation is the marker plus that net, never the marker alone.
|
|
17
|
+
- **Aggregation happens once, after the block completes.** The multi-instance
|
|
18
|
+
container does not exit until every instance has, which is what makes a single
|
|
19
|
+
aggregation step correct rather than a race.
|
|
20
|
+
- **The policy decision is separate from the aggregation.** Aggregating counts
|
|
21
|
+
results; the gateway decides whether those counts constitute success.
|
|
22
|
+
Best-effort, all-or-nothing, and quorum are then one condition apart.
|
|
23
|
+
- **The summary is sent before the verdict.** The report node sits ahead of the
|
|
24
|
+
policy gateway, so it runs on both outcomes. A failed batch is the one you
|
|
25
|
+
most need the numbers for.
|
|
26
|
+
|
|
27
|
+
## Shape
|
|
28
|
+
|
|
29
|
+
| Node | Element | Role |
|
|
30
|
+
| --- | --- | --- |
|
|
31
|
+
| `start` | `bpmn:startEvent` + message event definition | Entry |
|
|
32
|
+
| `fetch_batch` | `bpmn:serviceTask` | Placeholder · insertion point |
|
|
33
|
+
| `process_each` | `bpmn:subProcess`, multi-instance | Mechanism |
|
|
34
|
+
| `aggregate` | `bpmn:serviceTask` | Mechanism |
|
|
35
|
+
| `send_report` | `bpmn:sendTask` | Placeholder |
|
|
36
|
+
| `policy_gate` | `bpmn:exclusiveGateway` | Mechanism |
|
|
37
|
+
| `end_completed` | `bpmn:endEvent` | Mechanism |
|
|
38
|
+
| `end_failed` | `bpmn:endEvent` | Mechanism |
|
|
39
|
+
|
|
40
|
+
`process_each` holds a minimal body — a start event, one action node, an end
|
|
41
|
+
event — and carries the multi-instance marker. The action node is a
|
|
42
|
+
**Placeholder**.
|
|
43
|
+
|
|
44
|
+
| Sequence flow | Label | Condition |
|
|
45
|
+
| --- | --- | --- |
|
|
46
|
+
| `start` → `fetch_batch` → `process_each` → `aggregate` → `send_report` → `policy_gate` | | |
|
|
47
|
+
| `policy_gate` → `end_completed` | Yes | default |
|
|
48
|
+
| `policy_gate` → `end_failed` | No | `=vars.policySatisfied == false` |
|
|
49
|
+
|
|
50
|
+
| Variable | Type | Default | Holds |
|
|
51
|
+
| --- | --- | --- | --- |
|
|
52
|
+
| `batchItems` | jsonSchema | | The fetched items; bind as the multi-instance input collection |
|
|
53
|
+
| `batchSummary` | jsonSchema | | Totals, success count, failure breakdown |
|
|
54
|
+
| `policySatisfied` | boolean | `true` | Did the run meet the configured policy |
|
|
55
|
+
|
|
56
|
+
The multi-instance marker and its collection binding are a **registry gap** —
|
|
57
|
+
no template exists for them. Author them from the canvas contract in
|
|
58
|
+
[structural-bpmn.md](../structural-bpmn.md#multi-instance--loop-characteristics-registry-gap--canvas-supports-it),
|
|
59
|
+
and read the current item inside the body with `iterator[0].item` per
|
|
60
|
+
[expression-authoring.md](../expression-authoring.md).
|
|
61
|
+
|
|
62
|
+
## Variants
|
|
63
|
+
|
|
64
|
+
One shape. Parallel versus sequential is a property of the multi-instance
|
|
65
|
+
marker, not a different topology: set `isSequential` and optionally cap
|
|
66
|
+
concurrency. Choose sequential when the per-item action hits a rate-limited
|
|
67
|
+
system or items must be ordered.
|
|
68
|
+
|
|
69
|
+
## What to bind
|
|
70
|
+
|
|
71
|
+
- **`fetch_batch`** — the source: database query, file, API list, queue. Batch
|
|
72
|
+
size and filters are decided here.
|
|
73
|
+
- **The action node** inside `process_each` — a UiPath agent, an RPA job,
|
|
74
|
+
Document Understanding, an API call. Place and bind the node; the per-item
|
|
75
|
+
work happens at runtime, not while authoring.
|
|
76
|
+
- **`aggregate`** — apply the policy and set `policySatisfied`. Best-effort
|
|
77
|
+
always true; all-or-nothing true only with zero failures; quorum true above a
|
|
78
|
+
threshold. Evaluate it here, in a node, rather than as a
|
|
79
|
+
`bpmn:completionCondition` on the multi-instance marker. A completion
|
|
80
|
+
condition stops the block early, which is a different thing from judging the
|
|
81
|
+
run afterwards, and it cannot see the per-item results the policy needs.
|
|
82
|
+
- **`send_report`** — email, chat, dashboard, audit store.
|
|
83
|
+
|
|
84
|
+
Fetch payloads through [registry-workflow.md](../registry-workflow.md).
|
|
85
|
+
|
|
86
|
+
## Adapting it
|
|
87
|
+
|
|
88
|
+
Drop `fetch_batch` when the items arrive on the trigger rather than being
|
|
89
|
+
pulled — bind the multi-instance collection straight to the input variable.
|
|
90
|
+
That is the common case when this pattern is nested inside another.
|
|
91
|
+
|
|
92
|
+
Drop `policy_gate` and `end_failed` when every run succeeds by definition and
|
|
93
|
+
only the counts matter. Keep `send_report`.
|
|
94
|
+
|
|
95
|
+
Set each item's exit status inside the body — success, failure, skipped — or
|
|
96
|
+
`aggregate` has nothing to count.
|
|
97
|
+
|
|
98
|
+
## Composing
|
|
99
|
+
|
|
100
|
+
The per-item action is the usual nesting point: `ai-decision-review` or
|
|
101
|
+
`external-wait` becomes the body of `process_each`, giving every item its own
|
|
102
|
+
decision or its own wait.
|
|
103
|
+
|
|
104
|
+
Place a `failure-escalation` net **inside** `process_each` so a per-item failure
|
|
105
|
+
is handled per item and the run continues. A net at process level instead would
|
|
106
|
+
catch the first failure and end the whole instance. See
|
|
107
|
+
[composing-guide.md](composing-guide.md#scoping-the-failure-net).
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# Pattern: `queue-distribution`
|
|
2
|
+
|
|
3
|
+
An Orchestrator queue sits between work creation and work processing. Use it
|
|
4
|
+
when the two sides run in different runtimes, must scale independently, or when
|
|
5
|
+
the queue itself is needed as a durable tracking surface.
|
|
6
|
+
|
|
7
|
+
## Why it works
|
|
8
|
+
|
|
9
|
+
These four carry the shape. Change one and you are building something else.
|
|
10
|
+
|
|
11
|
+
- **The queue is the handover surface, not a message.** Priority, deferred
|
|
12
|
+
scheduling, deduplication, concurrency limits, and durable retry all come from
|
|
13
|
+
the queue and survive either side restarting. That is the reason to pay for a
|
|
14
|
+
queue instead of dispatching directly.
|
|
15
|
+
- **One queue item starts one performer instance.** There is no loop in the BPMN
|
|
16
|
+
and deliberately no get-next-item step. Each unit of work is isolated and
|
|
17
|
+
independently tracked, at the cost of one process instance per item — which is
|
|
18
|
+
the trade to weigh when volume is very high.
|
|
19
|
+
- **Every item ends by marking its transaction.** Successful, Failed, or
|
|
20
|
+
Postponed. An item whose instance ends without marking stays in-flight in the
|
|
21
|
+
queue and is invisible until something times it out.
|
|
22
|
+
- **The two sides are independent.** Whichever side is not Maestro can be an RPA
|
|
23
|
+
robot, an integration, a web app, or a person uploading a file. Neither side
|
|
24
|
+
assumes the other is a Maestro process.
|
|
25
|
+
|
|
26
|
+
## Shape
|
|
27
|
+
|
|
28
|
+
Two separate shapes. Which you author depends on which side of the queue Maestro
|
|
29
|
+
is on; author both when Maestro is on both.
|
|
30
|
+
|
|
31
|
+
### Dispatcher — Maestro creates the items
|
|
32
|
+
|
|
33
|
+
| Node | Element | Role |
|
|
34
|
+
| --- | --- | --- |
|
|
35
|
+
| `start` | `bpmn:startEvent` + message event definition | Entry |
|
|
36
|
+
| `fetch_source` | `bpmn:serviceTask` | Placeholder · insertion point |
|
|
37
|
+
| `bulk_add` | `bpmn:serviceTask` | Mechanism |
|
|
38
|
+
| `end_queued` | `bpmn:endEvent` | Mechanism |
|
|
39
|
+
|
|
40
|
+
Linear: `start` → `fetch_source` → `bulk_add` → `end_queued`. No conditions.
|
|
41
|
+
One variable, `sourceItems` (jsonSchema), bound as the bulk-add input.
|
|
42
|
+
|
|
43
|
+
Batches cap at 15,000 items and commit either all-or-nothing or per item. For
|
|
44
|
+
one-at-a-time dispatch use the single create-item activity instead — same shape,
|
|
45
|
+
different node.
|
|
46
|
+
|
|
47
|
+
### Performer — Maestro processes the items
|
|
48
|
+
|
|
49
|
+
The performer's start event **is** the queue trigger, so this shape always begins
|
|
50
|
+
the process. It cannot be inserted into an existing path or nested in a
|
|
51
|
+
subprocess, and it has no Entry row in the droppable sense.
|
|
52
|
+
|
|
53
|
+
| Node | Element | Role |
|
|
54
|
+
| --- | --- | --- |
|
|
55
|
+
| `start` | `bpmn:startEvent` + message event definition, bound to the queue trigger | Mechanism |
|
|
56
|
+
| `per_item_action` | `bpmn:serviceTask` | Placeholder |
|
|
57
|
+
| `outcome_gate` | `bpmn:exclusiveGateway` | Mechanism |
|
|
58
|
+
| `set_successful` | `bpmn:serviceTask` | Mechanism |
|
|
59
|
+
| `set_failed` | `bpmn:serviceTask` | Mechanism |
|
|
60
|
+
| `postpone` | `bpmn:serviceTask` | Mechanism |
|
|
61
|
+
| `end_succeeded` / `end_failed` / `end_postponed` | `bpmn:endEvent` | Mechanism |
|
|
62
|
+
|
|
63
|
+
| Sequence flow | Label | Condition |
|
|
64
|
+
| --- | --- | --- |
|
|
65
|
+
| `start` → `per_item_action` → `outcome_gate` | | |
|
|
66
|
+
| `outcome_gate` → `set_successful` | Success | default |
|
|
67
|
+
| `outcome_gate` → `set_failed` | Failure | `=vars.itemOutcome == "failure"` |
|
|
68
|
+
| `outcome_gate` → `postpone` | Defer | `=vars.itemOutcome == "defer"` |
|
|
69
|
+
| each status node → its end event | | |
|
|
70
|
+
|
|
71
|
+
| Variable | Type | Holds |
|
|
72
|
+
| --- | --- | --- |
|
|
73
|
+
| `queueItem` | jsonSchema | The triggering item's payload |
|
|
74
|
+
| `itemOutcome` | string | `success`, `failure`, or `defer` |
|
|
75
|
+
|
|
76
|
+
## Variants
|
|
77
|
+
|
|
78
|
+
Dispatcher and performer are not alternatives — they are the two halves, and
|
|
79
|
+
which you author is a question about your architecture rather than the shape.
|
|
80
|
+
|
|
81
|
+
| Maestro is | Author |
|
|
82
|
+
| --- | --- |
|
|
83
|
+
| The dispatcher; something else drains | Dispatcher shape |
|
|
84
|
+
| The performer, hooked to an existing queue | Performer shape |
|
|
85
|
+
| Both sides | Both shapes, as separate processes |
|
|
86
|
+
|
|
87
|
+
The performer is the brownfield entry point: it attaches Maestro to a queue that
|
|
88
|
+
already exists without touching whatever produces the items.
|
|
89
|
+
|
|
90
|
+
## What to bind
|
|
91
|
+
|
|
92
|
+
- **The queue** on every queue node. Never invent a queue name or key — it comes
|
|
93
|
+
from discovery or from the user (SKILL.md rule 2).
|
|
94
|
+
- **`fetch_source`** — the upstream source, and the shaping of each item's
|
|
95
|
+
payload, priority, deadline, and optional postpone date.
|
|
96
|
+
- **`per_item_action`** — the node that does the work at runtime: a UiPath
|
|
97
|
+
agent, Document Understanding, an API call, a HITL task, an RPA job, or a mix.
|
|
98
|
+
- **`set_failed`** — include error type, reason, and detail; that is what makes
|
|
99
|
+
a failed transaction diagnosable later.
|
|
100
|
+
- **`postpone`** — earliest reprocessing time, and a deadline if the item should
|
|
101
|
+
eventually stop being retried.
|
|
102
|
+
|
|
103
|
+
The queue activity types this shape needs are newer than the extension list
|
|
104
|
+
bundled with the validator, so do not assume the names. Resolve them with
|
|
105
|
+
`uip maestro bpmn registry list --output json` and fetch each template with
|
|
106
|
+
`registry get` before authoring — see
|
|
107
|
+
[registry-workflow.md](../registry-workflow.md).
|
|
108
|
+
|
|
109
|
+
## Adapting it
|
|
110
|
+
|
|
111
|
+
Use single-item creation instead of bulk when items arrive one at a time; the
|
|
112
|
+
dispatcher shape is otherwise unchanged.
|
|
113
|
+
|
|
114
|
+
Drop the `defer` branch when nothing about the work is worth retrying later.
|
|
115
|
+
Keep success and failure: those two are how the queue learns the item is done.
|
|
116
|
+
|
|
117
|
+
Add an in-flight progress update inside `per_item_action` when operators need to
|
|
118
|
+
watch long-running items move, rather than only seeing start and finish.
|
|
119
|
+
|
|
120
|
+
## Composing
|
|
121
|
+
|
|
122
|
+
Place `failure-escalation` **inside** the performer so a failure marks the
|
|
123
|
+
transaction Failed and ends that item's instance, leaving the queue free to
|
|
124
|
+
continue. Without it, a failure ends the instance without marking, and the item
|
|
125
|
+
stays in-flight.
|
|
126
|
+
|
|
127
|
+
The performer must be the outermost pattern in its process. Everything else it
|
|
128
|
+
needs — a review, a wait — is inserted into or nested inside it, never the
|
|
129
|
+
reverse. See [composing-guide.md](composing-guide.md).
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# Pattern: `smart-triage`
|
|
2
|
+
|
|
3
|
+
Heterogeneous inbound work is classified and dispatched to the right handling
|
|
4
|
+
for its category. Use it when volume is too high to sort by hand and the
|
|
5
|
+
downstream paths are well defined.
|
|
6
|
+
|
|
7
|
+
## Why it works
|
|
8
|
+
|
|
9
|
+
These four carry the shape. Change one and you are building something else.
|
|
10
|
+
|
|
11
|
+
- **The trigger normalizes the payload.** Everything downstream reads one shape,
|
|
12
|
+
so the same process serves email, tickets, forms, and webhooks. Routing never
|
|
13
|
+
learns where the item came from.
|
|
14
|
+
- **Classification returns a category and a confidence.** Two values, so one
|
|
15
|
+
gateway can decide whether to trust the answer and a second can act on it.
|
|
16
|
+
A classifier returning only a category leaves nothing to gate on.
|
|
17
|
+
- **The human fallback rejoins the same route gateway.** Low-confidence items go
|
|
18
|
+
to a person who picks the category, then dispatch through the identical exit.
|
|
19
|
+
One dispatch point, not two, so adding a category is one branch rather than
|
|
20
|
+
two.
|
|
21
|
+
- **Triage dispatches and ends.** Each category's real work lives in its own
|
|
22
|
+
process. Keeping handling out of triage is what lets one triage process serve
|
|
23
|
+
many downstreams without becoming all of them.
|
|
24
|
+
|
|
25
|
+
## Shape
|
|
26
|
+
|
|
27
|
+
AI-based is the base shape. Categories `A`/`B`/`C` are illustrative — one branch
|
|
28
|
+
per category the domain actually has.
|
|
29
|
+
|
|
30
|
+
| Node | Element | Role |
|
|
31
|
+
| --- | --- | --- |
|
|
32
|
+
| `start` | `bpmn:startEvent` + message event definition | Entry |
|
|
33
|
+
| `extract` | `bpmn:serviceTask` | Placeholder · insertion point |
|
|
34
|
+
| `classify` | `bpmn:serviceTask` | Mechanism |
|
|
35
|
+
| `conf_gate` | `bpmn:exclusiveGateway` | Mechanism |
|
|
36
|
+
| `manual_triage` | `bpmn:userTask` | Mechanism |
|
|
37
|
+
| `route_gate` | `bpmn:exclusiveGateway` | Mechanism |
|
|
38
|
+
| `handle_a..c` | `bpmn:serviceTask` | Placeholder |
|
|
39
|
+
| `routed_a..c` | `bpmn:endEvent` | Mechanism |
|
|
40
|
+
|
|
41
|
+
| Sequence flow | Label | Condition |
|
|
42
|
+
| --- | --- | --- |
|
|
43
|
+
| `start` → `extract` → `classify` → `conf_gate` | | |
|
|
44
|
+
| `conf_gate` → `route_gate` | Above floor | `=vars.aiConfidence >= 0.85` |
|
|
45
|
+
| `conf_gate` → `manual_triage` | Below floor | `=vars.aiConfidence < 0.85` |
|
|
46
|
+
| `manual_triage` → `route_gate` | | |
|
|
47
|
+
| `route_gate` → `handle_a` | Category A | `=vars.routeCategory == "Category A"` |
|
|
48
|
+
| `route_gate` → `handle_b` | Category B | `=vars.routeCategory == "Category B"` |
|
|
49
|
+
| `route_gate` → `handle_c` | Category C | `=vars.routeCategory == "Category C"` |
|
|
50
|
+
| `handle_a..c` → `routed_a..c` | | |
|
|
51
|
+
|
|
52
|
+
`0.85` is an illustrative floor. Set it from how costly a misroute is against
|
|
53
|
+
how much manual triage you can absorb.
|
|
54
|
+
|
|
55
|
+
| Variable | Type | Holds |
|
|
56
|
+
| --- | --- | --- |
|
|
57
|
+
| `itemData` | jsonSchema | The normalized item the classifier reads |
|
|
58
|
+
| `routeCategory` | string | The category to dispatch to |
|
|
59
|
+
| `aiConfidence` | double | Classifier confidence, 0–1 |
|
|
60
|
+
| `ruleMatched` | boolean | Rule-based and hybrid only |
|
|
61
|
+
| `triageNote` | string | The manual triager's note, if any |
|
|
62
|
+
|
|
63
|
+
## Variants
|
|
64
|
+
|
|
65
|
+
| Variant | Question it answers | Delta |
|
|
66
|
+
| --- | --- | --- |
|
|
67
|
+
| AI-based | — | The shape above |
|
|
68
|
+
| Rule-based | Are the categories decided by stable, auditable rules? | Business rule task and a match gateway |
|
|
69
|
+
| Hybrid | Can rules handle the clear cases cheaply? | Rules first, classifier catches the rest |
|
|
70
|
+
|
|
71
|
+
**Rule-based.** Replace `classify` and `conf_gate` with `apply_rules`
|
|
72
|
+
(`bpmn:businessRuleTask`) and `rule_gate` (`bpmn:exclusiveGateway`).
|
|
73
|
+
|
|
74
|
+
| Sequence flow | Label | Condition |
|
|
75
|
+
| --- | --- | --- |
|
|
76
|
+
| `rule_gate` → `route_gate` | Matched | `=vars.ruleMatched == true` |
|
|
77
|
+
| `rule_gate` → `manual_triage` | No match | default |
|
|
78
|
+
|
|
79
|
+
**Hybrid.** Keep both. Rules run first; an unmatched item falls through to the
|
|
80
|
+
classifier rather than straight to a person, so only what neither resolves
|
|
81
|
+
reaches manual triage.
|
|
82
|
+
|
|
83
|
+
| Sequence flow | Label | Condition |
|
|
84
|
+
| --- | --- | --- |
|
|
85
|
+
| `rule_gate` → `route_gate` | Matched | `=vars.ruleMatched == true` |
|
|
86
|
+
| `rule_gate` → `classify` | No match | default |
|
|
87
|
+
| `conf_gate` → `route_gate` | Above floor | as above |
|
|
88
|
+
| `conf_gate` → `manual_triage` | Below floor | as above |
|
|
89
|
+
|
|
90
|
+
## What to bind
|
|
91
|
+
|
|
92
|
+
- **`classify`** — the node that classifies at runtime, typically a UiPath agent
|
|
93
|
+
job. Place and bind it; never decide the categories or write classification
|
|
94
|
+
logic while authoring.
|
|
95
|
+
- **`apply_rules`** — `Orchestrator.BusinessRules`. The rules are authored and
|
|
96
|
+
uploaded to Orchestrator separately, and the BPMN references them; there is no
|
|
97
|
+
in-file rule authoring. This applies to the rule-based and hybrid variants
|
|
98
|
+
both.
|
|
99
|
+
- **`extract`** — Document Understanding, or any step that pulls the fields the
|
|
100
|
+
classifier needs out of an unstructured source.
|
|
101
|
+
- **`handle_a..c`** — see Adapting below; usually a message dispatch rather than
|
|
102
|
+
work done here.
|
|
103
|
+
- **`manual_triage`** — `Actions.HITL`. Bind the task's category output to
|
|
104
|
+
`routeCategory`, the same variable `route_gate` reads. Bound anywhere else,
|
|
105
|
+
low-confidence items dispatch on the classifier's original guess and the
|
|
106
|
+
review changes nothing.
|
|
107
|
+
|
|
108
|
+
Fetch payloads through [registry-workflow.md](../registry-workflow.md).
|
|
109
|
+
|
|
110
|
+
## Adapting it
|
|
111
|
+
|
|
112
|
+
Add or remove category branches to match the domain. Each is one condition on
|
|
113
|
+
`route_gate` plus its handler and end event.
|
|
114
|
+
|
|
115
|
+
Drop `extract` when the trigger already delivers structured fields.
|
|
116
|
+
|
|
117
|
+
The `handle_*` nodes are the pattern's main decision. Replacing each with a
|
|
118
|
+
message that starts a separate process keeps triage thin, which is the intent.
|
|
119
|
+
Filling them inline makes triage own the handling for every category it routes,
|
|
120
|
+
and that is what the shape is trying to avoid — but it is a legitimate choice for
|
|
121
|
+
one or two trivial categories.
|
|
122
|
+
|
|
123
|
+
## Composing
|
|
124
|
+
|
|
125
|
+
Each category's downstream is usually its own process, reached by message rather
|
|
126
|
+
than nested — see
|
|
127
|
+
[composing-guide.md](composing-guide.md#dispatched-by-message-to-a-separate-process).
|
|
128
|
+
`approval-chain` is a common downstream. Add `failure-escalation` so a
|
|
129
|
+
classifier or dispatch failure does not vanish.
|
|
@@ -99,6 +99,12 @@ discovery or the user.
|
|
|
99
99
|
`=bindings.<bindingId>`, and a `<uipath:binding>` of `resource="Connection"`
|
|
100
100
|
with `propertyAttribute="ConnectionId"` in the process-level
|
|
101
101
|
`<uipath:bindings>` holds the live connection id from `uip is connections list`.
|
|
102
|
+
The context field that carries the reference differs by node kind: activities
|
|
103
|
+
(`Intsvc.ActivityExecution`) use `connection`; connector **triggers and waits**
|
|
104
|
+
(`Intsvc.EventTrigger`, `Intsvc.WaitForEvent`) use `connectionId`. Either way
|
|
105
|
+
`uip maestro bpmn refresh` (and `pack`) materialize that binding into a
|
|
106
|
+
`Connection` resource in `bindings_v2.json` — without it the process passes
|
|
107
|
+
`validate` but faults at runtime with `Connection null` (error 102010).
|
|
102
108
|
|
|
103
109
|
Declare all bindings in a single process-level `<uipath:bindings version="v1">`
|
|
104
110
|
block. Each `<uipath:binding>` carries `id`, `resource`, `propertyAttribute`,
|
|
@@ -147,6 +153,15 @@ the CLI — the same enrichment path as `Intsvc.*` activities (§3). A hand-auth
|
|
|
147
153
|
trigger shell stays **draft** until the CLI supplies the concrete trigger
|
|
148
154
|
properties, connection binding, and schemas.
|
|
149
155
|
|
|
156
|
+
For `Intsvc.EventTrigger` / `Intsvc.WaitForEvent` the connection is referenced
|
|
157
|
+
from the node context as **`connectionId`** = `=bindings.<bindingId>` (activities
|
|
158
|
+
use `connection`); the timer trigger binds no connection. After authoring the
|
|
159
|
+
connection binding, run `uip maestro bpmn refresh <project>` so the binding is
|
|
160
|
+
materialized into a `Connection` resource in `bindings_v2.json` — a trigger whose
|
|
161
|
+
connection is not materialized passes `validate` but faults at runtime with a
|
|
162
|
+
null connection (error 102010). Use `refresh`, not the deprecated
|
|
163
|
+
`update-metadata`, which does not materialize connection bindings.
|
|
164
|
+
|
|
150
165
|
## Connectionless vs connector HTTP
|
|
151
166
|
|
|
152
167
|
- **Connector activity** (`Intsvc.ActivityExecution` / a connector-authenticated
|