@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
|
@@ -1,73 +1,57 @@
|
|
|
1
1
|
# UX — Narration and Todos
|
|
2
2
|
|
|
3
|
-
Two **opt-in** rules govern
|
|
3
|
+
Two **opt-in** rules govern communication during work. They are **off by default**. Engage them when the user requests narration/progress tracking or signals a verbosity preference. Once engaged, they apply across every capability (Author, Operate, Diagnose, Evaluate), journey, and action type (`uip` CLI, shell builtins, Read/Write/Edit, Glob/Grep).
|
|
4
4
|
|
|
5
|
-
> Inherits from [SKILL.md](../../SKILL.md).
|
|
5
|
+
> Inherits from [SKILL.md](../../SKILL.md). These rules are canonical; capability indexes and journey docs reference this file.
|
|
6
6
|
|
|
7
7
|
## When to engage
|
|
8
8
|
|
|
9
|
-
Engage narration
|
|
9
|
+
Engage narration and todos if any condition holds:
|
|
10
10
|
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
11
|
+
- The user explicitly asks to narrate, show steps, keep a todo list, track progress, explain as work proceeds, be verbose, or be detailed.
|
|
12
|
+
- The user has a standing verbosity preference in-session or in recalled memory.
|
|
13
|
+
- The user asks a question requiring running commentary, such as what is happening or where work stands.
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
Otherwise use **silent mode**: work quietly and surface only decisions, failures, consent gates (`flow debug`), and the final result. Do not provide per-step narration or a user-facing todo list. Private todos remain optional for large journeys.
|
|
16
16
|
|
|
17
17
|
## The two rules
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
Once engaged:
|
|
20
20
|
|
|
21
|
-
1. **Narrate every logical step in plain English
|
|
22
|
-
2. **Maintain a granular progress list** for
|
|
21
|
+
1. **Narrate every logical step in plain English.** Give one short line before each step explaining what is being done and why in user terms; do not require knowledge of `bash`, `uip` flags, or `.flow` JSON.
|
|
22
|
+
2. **Maintain a granular progress list** for every journey above the trivial threshold: one todo per logical step, kept current. Standard journeys usually have 10+ items; complex flows have more. Do not target a count; derive it from the actual steps.
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
### Logical steps
|
|
25
25
|
|
|
26
|
-
A logical step is the smallest user-meaningful
|
|
27
|
-
|
|
28
|
-
| Step intent | Actions inside |
|
|
29
|
-
| --- | --- |
|
|
30
|
-
| Discover and add the Slack node | `registry search` + `registry get` + `flow node add` + Edit to wire outputs |
|
|
31
|
-
| Confirm project layout | `ls` + `cat <project>.flow` + `Glob` for nested files |
|
|
32
|
-
| Update a script body | `Read` of `.flow` + `Edit` on the script node's `inputs.code` |
|
|
33
|
-
| Validate the flow | `flow validate` (one call, but still a step) |
|
|
34
|
-
| Triage a fault | `instance asset` + `incident list` + `incident get` |
|
|
35
|
-
|
|
36
|
-
Bash plumbing inside a step is invisible to the user — the step's narration line covers it.
|
|
26
|
+
A logical step is the smallest user-meaningful outcome, usually 1–5 actions grouped by intent across tools. Examples include discovering and adding a node, confirming project layout, updating a script body, validating a flow, or triaging a fault. Bash plumbing inside a step is covered by its narration.
|
|
37
27
|
|
|
38
28
|
## Narration cadence
|
|
39
29
|
|
|
40
30
|
| Situation | Rule |
|
|
41
|
-
|
|
42
|
-
| Start of
|
|
43
|
-
| Multiple actions within
|
|
44
|
-
| Step
|
|
45
|
-
| Decision point |
|
|
46
|
-
| Failure
|
|
47
|
-
| Trivial probe (`uip --version`, repeated `login status` in same minute) | Skip |
|
|
48
|
-
| Non-`uip` shell
|
|
49
|
-
| File reads/edits inside a step | Skip
|
|
50
|
-
|
|
51
|
-
## Narration
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
## Phrasing register
|
|
60
|
-
|
|
61
|
-
Reference table — adapt to context. Add subject (what's being acted on) when scope is ambiguous.
|
|
62
|
-
|
|
63
|
-
| Logical step | Narration |
|
|
64
|
-
| --- | --- |
|
|
31
|
+
|---|---|
|
|
32
|
+
| Start of logical step | Narrate one short line in plain English. |
|
|
33
|
+
| Multiple actions within a step | Do not add narration. |
|
|
34
|
+
| Step transition | Narrate the next step. |
|
|
35
|
+
| Decision point | Give a brief line before asking the user; explain the decision's consequence. |
|
|
36
|
+
| Failure/retry | Always narrate what failed and what will be tried next, even in silent mode. |
|
|
37
|
+
| Trivial probe (`uip --version`, repeated `login status` in the same minute) | Skip. |
|
|
38
|
+
| Non-`uip` shell plumbing (`ls`, `cat`, `mkdir`, `cd`) | Skip; the step line covers it. |
|
|
39
|
+
| File reads/edits inside a step | Skip; the step line covers them. |
|
|
40
|
+
|
|
41
|
+
## Narration lines
|
|
42
|
+
|
|
43
|
+
Keep each line to approximately 15 words or fewer, as one sentence or fragment. Use system voice, not first person. Use user terms rather than commands, flags, or JSON internals. State the actual subject when scope is ambiguous, convey new information, and avoid ceremony, recaps, and repetition.
|
|
44
|
+
|
|
45
|
+
Use or adapt these patterns:
|
|
46
|
+
|
|
47
|
+
| Step | Narration |
|
|
48
|
+
|---|---|
|
|
65
49
|
| Login probe | "Checking whether you're logged in to the UiPath tenant…" |
|
|
66
50
|
| Solution scaffold | "Scaffolding a new solution at `<path>` so the Flow project has a parent." |
|
|
67
51
|
| Flow init | "Initializing the Flow project. This creates the `.flow` file you'll edit." |
|
|
68
52
|
| Verify project layout | "Confirming the solution/project layout is correct before continuing." |
|
|
69
53
|
| Registry discovery | "Looking up `<node-type>` in the registry so I can wire its inputs correctly…" |
|
|
70
|
-
| Node add
|
|
54
|
+
| Node add | "Adding the `<node-type>` node and copying its registry definition into the file…" |
|
|
71
55
|
| Edit flow JSON | "Editing the flow JSON to add the `<thing>`." |
|
|
72
56
|
| Edge wiring | "Wiring `<from>` → `<to>` so data flows in the right order." |
|
|
73
57
|
| Variable mapping | "Mapping output variables on the End node — every reachable End needs them." |
|
|
@@ -89,62 +73,41 @@ Reference table — adapt to context. Add subject (what's being acted on) when s
|
|
|
89
73
|
| Incident fetch | "Fetching the incident record — this is the structured error report from the failed run." |
|
|
90
74
|
| Variable inspection | "Reading the runtime variable state at the moment of failure…" |
|
|
91
75
|
| Flow correlation | "Mapping the faulting element ID back to a node in your `.flow` file…" |
|
|
92
|
-
| Traces
|
|
93
|
-
|
|
94
|
-
##
|
|
95
|
-
|
|
96
|
-
This
|
|
97
|
-
|
|
98
|
-
| Journey
|
|
99
|
-
|
|
100
|
-
| Single edit
|
|
101
|
-
| Small edit
|
|
102
|
-
| Standard
|
|
103
|
-
| Complex
|
|
104
|
-
|
|
105
|
-
## Todo
|
|
106
|
-
|
|
107
|
-
A todo
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
-
|
|
119
|
-
|
|
120
|
-
- Root cause classified
|
|
121
|
-
|
|
122
|
-
**Does NOT count as a todo (invisible plumbing):**
|
|
123
|
-
- Single `registry get` for schema lookup
|
|
124
|
-
- `ls` / `cat` / `Glob` to confirm a path
|
|
125
|
-
- Reading a file before editing it
|
|
126
|
-
- Re-running the same `validate` after a one-character fix (same todo, just not yet checked)
|
|
127
|
-
- Parsing JSON output
|
|
128
|
-
|
|
129
|
-
## Pivot rules
|
|
130
|
-
|
|
131
|
-
If the user redirects scope mid-journey ("skip the connector — use HTTP instead"):
|
|
132
|
-
|
|
133
|
-
1. Narrate the pivot — "Switching from connector to HTTP node. Updating todos."
|
|
134
|
-
2. Update the progress list:
|
|
135
|
-
- Mark obsolete in-flight todos as cancelled and drop them from the list.
|
|
136
|
-
- Insert new todos for the new direction at the right spot.
|
|
137
|
-
- Leave completed todos in place — they're history, not work.
|
|
138
|
-
3. Continue from the new in-progress todo.
|
|
76
|
+
| Traces, last resort | "Pulling traces. Last resort — the previous steps weren't enough." |
|
|
77
|
+
|
|
78
|
+
## Progress-list threshold
|
|
79
|
+
|
|
80
|
+
This applies only when narration/todos are engaged. In silent mode, journey size never creates a user-facing list.
|
|
81
|
+
|
|
82
|
+
| Journey | Narration | Progress list |
|
|
83
|
+
|---|---|---|
|
|
84
|
+
| Single edit: 1–2 actions, no decisions | One line | None |
|
|
85
|
+
| Small edit: 3–5 actions or one decision | One line per step | Optional |
|
|
86
|
+
| Standard: greenfield, multi-node brownfield, ship, or full diagnose | One line per step | Required and granular |
|
|
87
|
+
| Complex: 10+ nodes, multiple resource bindings, or planning phase | Denser cadence | Required, granular, with sub-todos |
|
|
88
|
+
|
|
89
|
+
## Todo rules
|
|
90
|
+
|
|
91
|
+
A todo represents a state-changing outcome the user cares about; roughly one logical step. Multiple tool actions may form one todo.
|
|
92
|
+
|
|
93
|
+
Valid todos include: solution scaffolded; Flow project created; node added and wired; edges connected; variables defined and mapped; validate green; format applied; resources refreshed; uploaded to Studio Web; incident fetched and read; root cause classified.
|
|
94
|
+
|
|
95
|
+
Do not create todos for registry lookup, `ls`/`cat`/`Glob` path checks, pre-edit reads, parsing JSON, or rerunning the same `validate` after a one-character fix. Keep such plumbing invisible.
|
|
96
|
+
|
|
97
|
+
## Pivots
|
|
98
|
+
|
|
99
|
+
When scope changes:
|
|
100
|
+
|
|
101
|
+
1. Narrate the pivot, for example: "Switching from connector to HTTP node. Updating todos."
|
|
102
|
+
2. Mark obsolete in-flight todos cancelled and remove them; insert todos for the new direction in the correct position; retain completed todos as history.
|
|
103
|
+
3. Continue with the new in-progress todo.
|
|
139
104
|
|
|
140
105
|
## Anti-patterns
|
|
141
106
|
|
|
142
|
-
-
|
|
143
|
-
-
|
|
144
|
-
-
|
|
145
|
-
-
|
|
146
|
-
-
|
|
147
|
-
-
|
|
148
|
-
-
|
|
149
|
-
- **Never use first-person filler.** "Let me…", "I'll go ahead and…", "I'm going to…" — drop. Lead with the verb.
|
|
150
|
-
- **Never repeat the prior line's content.** If the previous narration said "Adding the Slack node and wiring its inputs", the next line is *not* "Adding the Slack node now" — it's the next step.
|
|
107
|
+
- Never narrate every command, Read, Edit, or shell action; narrate logical outcomes.
|
|
108
|
+
- Never recap flags or JSON structure.
|
|
109
|
+
- Never show narration or a user-facing todo list without an engagement trigger.
|
|
110
|
+
- When engaged, never omit narration at a step transition or the required list for a standard journey.
|
|
111
|
+
- Never create a todo per bash call.
|
|
112
|
+
- Never use first-person filler such as "Let me", "I'll go ahead", or "I'm going to".
|
|
113
|
+
- Never repeat the previous narration; move to the next logical step.
|
|
@@ -6,7 +6,7 @@ Complete reference for declaring variables, writing expressions, and managing da
|
|
|
6
6
|
>
|
|
7
7
|
> `flow validate` catches the structural expression-reference errors:
|
|
8
8
|
>
|
|
9
|
-
> - Missing `=js:` prefix on `$vars`/`$metadata`/`$self`
|
|
9
|
+
> - Missing `=js:` prefix on `$vars`/`$metadata`/`$self`
|
|
10
10
|
> - Invented `nodes.<id>.output` syntax
|
|
11
11
|
> - References to unknown variables or node IDs
|
|
12
12
|
> - Output-path walks that descend into declared primitives or schemas closed with `additionalProperties: false`
|
|
@@ -417,7 +417,7 @@ Every `$vars` / `$metadata` / `$self` reference inside `inputs.detail.bodyParame
|
|
|
417
417
|
| `"recordId": "{vars.createEntityRecord1.output.Id}"` | `"recordId": "=js:$vars.createEntityRecord1.output.Id"` |
|
|
418
418
|
| `"recordId": "=js:createEntityRecord1.output.Id"` | `"recordId": "=js:$vars.createEntityRecord1.output.Id"` |
|
|
419
419
|
|
|
420
|
-
The serializer rewrites `$vars` → `vars` whether or not `=js:` is present, so a missing prefix yields a confusing failure: the runtime field is bound to the literal string `"vars.X.output.Id"` (which looks like an unevaluated expression). The last row above is the opposite mistake — `=js:` is present but the `$vars.` prefix on the node reference is missing, so the expression evaluates a bare (undefined) identifier instead of the node's output. `flow validate` catches this (cli-side `expression-prefix-validator`, error with remediation hint) — older cli versions without the validator still let it through to `flow debug`. See [node-output-wiring.md](node-output-wiring.md) for the full per-node-type field reference
|
|
420
|
+
The serializer rewrites `$vars` → `vars` whether or not `=js:` is present, so a missing prefix yields a confusing failure: the runtime field is bound to the literal string `"vars.X.output.Id"` (which looks like an unevaluated expression). The last row above is the opposite mistake — `=js:` is present but the `$vars.` prefix on the node reference is missing, so the expression evaluates a bare (undefined) identifier instead of the node's output. `flow validate` catches this (cli-side `expression-prefix-validator`, error with remediation hint) — older cli versions without the validator still let it through to `flow debug`. See [node-output-wiring.md](node-output-wiring.md) for the full per-node-type field reference.
|
|
421
421
|
|
|
422
422
|
### Comparison
|
|
423
423
|
|
|
@@ -598,7 +598,7 @@ Where `<loopId>` is the loop node's `id` (e.g., `$vars.loop1.currentItem`).
|
|
|
598
598
|
|
|
599
599
|
> **Important:** Loop body nodes must have `"parentId": "<loopId>"` set in their JSON. Without this, the runtime does not know the node is inside the loop and `$vars.<loopId>.currentItem` will be undefined.
|
|
600
600
|
|
|
601
|
-
After loop completion, `$vars.<loopId>.output` holds one entry per iteration — **each entry keyed by body node id, with that node's outputs nested underneath**, NOT the body node's bare return value. See [loop/impl.md § Aggregated loop output](../author/
|
|
601
|
+
After loop completion, `$vars.<loopId>.output` holds one entry per iteration — **each entry keyed by body node id, with that node's outputs nested underneath**, NOT the body node's bare return value. See [loop/impl.md § Aggregated loop output](../author/plugins/loop/impl.md#aggregated-loop-output-varsloopidoutput).
|
|
602
602
|
|
|
603
603
|
### Subflow Scope
|
|
604
604
|
|
|
@@ -618,7 +618,7 @@ Subflows have their own variable scope. Parent variables are **not** automatical
|
|
|
618
618
|
| `uip maestro flow variable list <flow> --output json` | Check what the flow already declares |
|
|
619
619
|
| `uip maestro flow variable remove <flow> <id>` | Drop a declared global |
|
|
620
620
|
|
|
621
|
-
See [evaluate/
|
|
621
|
+
See [evaluate/eval-sets-guide.md](../evaluate/eval-sets-guide.md).
|
|
622
622
|
|
|
623
623
|
> **`variable add --direction in` binds the variable to a trigger** by writing `triggerNodeId`. That binding is what puts the input in the packed entry point's contract — without it `flow pack` emits an empty `input.properties` while `validate` and `format` stay green. The CLI infers the flow's single trigger; if a flow has more than one, it fails and asks for `--trigger-node-id <nodeId>` to say which entry point the input belongs to. Hand-authored globals need the same field — see [Workflow Variables](#workflow-variables).
|
|
624
624
|
|
|
@@ -145,7 +145,7 @@ High-level view of what each specialist owns. **Do not describe internal flows o
|
|
|
145
145
|
| `uipath-rpa` | RPA workflows (XAML and C# coded): create, edit, build, run, debug. Owns **all** UI automation authoring end-to-end, including live-app exploration and probing. | No (relies on Studio) | **No** — defer to `uipath-solution` for `.uipx` multi-project, `uipath-platform` for single non-solution packages |
|
|
146
146
|
| `uipath-agents` | AI agents — code-based (LangGraph / LlamaIndex / OpenAI Agents) and low-code (`agent.json`) | Yes (`uip login`) | **Yes** — end-to-end |
|
|
147
147
|
| `uipath-coded-apps` | Web apps (`.uipath/` dir): build, sync, package, publish, deploy | Yes (`uip login`) | **Yes** — end-to-end |
|
|
148
|
-
| `uipath-functions` | Coded Functions —
|
|
148
|
+
| `uipath-functions` | Coded Functions — Python (`uip function new -l py`; Pydantic typed I/O) or TypeScript/JavaScript (`-l ts / js`, TypeScript default; `defineFunction` + schema-first typed I/O) — atomic deterministic logic: transforms, custom-auth API calls, ERP/IS-connection queries. Runs serverless or on an RPA robot; a JS/TS function is delivered as a run-as-job function or an HTTP endpoint (Coded App backends) — one calling mode per function. Invoked from Maestro (Flow/BPMN), agents-as-tools, Orchestrator API, or its HTTP trigger. No LLM/agent loop (that → `uipath-agents`) | Yes (`uip login`) | **Yes** — `uip function pack/publish` |
|
|
149
149
|
| `uipath-maestro-flow` | `.flow` files orchestrating RPA, agents, apps | Yes (`uip login`) | **Partial** — Orchestrator deploy of `.uipx`-wrapped solutions → `uipath-solution`; non-solution single package → `uipath-platform` |
|
|
150
150
|
| `uipath-maestro-bpmn` | `.bpmn` files — standards-based BPMN 2.0 process orchestration (gateways, events, boundary timeouts, subprocesses, multi-instance) over RPA, agents, APIs, HITL. Authors its own inline userTask/HITL nodes. | Yes (`uip login`) | **Yes** — packages, uploads, publishes/deploys, and runs via `uip maestro bpmn`; Orchestrator deploy of `.uipx`-wrapped solutions → `uipath-solution` |
|
|
151
151
|
| `uipath-maestro-case` | Case Management authoring — `caseplan.json` from an SDD (`case pack` compiles it to `caseplan.json.bpmn`; authoring `.bpmn` directly is `uipath-maestro-bpmn`) | Yes (`uip login`) | **Partial** — publishes to Studio Web and Orchestrator itself; `.uipx` solution deploy → `uipath-solution` |
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
| **Project SDD role** | child |
|
|
30
30
|
| **Independently executable** | no — Lane A derives tasks only via the Solution root |
|
|
31
31
|
| **Project list section** | §2: Stages & Tasks + §4: Integrations |
|
|
32
|
-
| **
|
|
32
|
+
| **Build handoff** | this SDD is the build skill's contract — `uipath-maestro-case` resolves resources into `tasks/registry-resolved.json` and writes `caseplan.json` directly; the case build has no tasks file |
|
|
33
33
|
| **Generated by** | uipath-planner |
|
|
34
34
|
| **Generation date** | <YYYY-MM-DD> |
|
|
35
35
|
| **Template validation** | <pending \| passed — set to passed with the ready flip> |
|
|
@@ -137,7 +137,9 @@ duration and points here; nothing restates a response.
|
|
|
137
137
|
| <case \| stage: <StageName> \| task: <TaskName>> | <that target's SLA Title> | <At-Risk \| Breached> | <notify-only \| start-task \| enter-stage \| exit-stage \| exit-case> | <— for notify-only; else the task name / stage name / produced exit row> | <— for notify-only and for every start-task; else Yes \| No matching the produced stage-entry row> | <why this response fits the source> |
|
|
138
138
|
|
|
139
139
|
<!-- Section required whenever ANY SLA exists (case, stage, or action task); omit only in a case with no
|
|
140
|
-
SLA at all.
|
|
140
|
+
SLA at all. The case-level Scope cell is the bare word `case` — not `case: root` and not the case
|
|
141
|
+
name; only the stage and task scopes take a `: <name>` qualifier. One row per (Scope, SLA, Status),
|
|
142
|
+
at-risk and breached separately. Source states no response
|
|
141
143
|
-> both statuses notify-only with Target and Interrupting `—`; never invent a stage, task, or routing
|
|
142
144
|
change to carry a notification. Legal Response values and the Interrupting value each implies:
|
|
143
145
|
case-design-layers-guide.md § Choosing the response. Two-way closure against the SDD's
|
|
@@ -578,7 +580,7 @@ Load `uipath-planner` with this SDD path to derive the task list:
|
|
|
578
580
|
|
|
579
581
|
> Load `uipath-planner`. SDD path: `<this-file>`.
|
|
580
582
|
|
|
581
|
-
The planner detects the `## Planner Handoff` header, parses Section 2: Stages & Tasks and Section 4: Integrations, derives the per-skill task list,
|
|
583
|
+
The planner detects the `## Planner Handoff` header, parses Section 2: Stages & Tasks and Section 4: Integrations, derives the per-skill task list, and emits live `TaskCreate` calls. If `Execution autonomy: interactive`, it enters plan mode for task review before execution.
|
|
582
584
|
|
|
583
585
|
Implementation tasks **do not live in this SDD** — they live in the planner's output.
|
|
584
586
|
|
|
@@ -10,7 +10,7 @@ Case knowledge is split three ways. Read all three to begin, in parallel, **at m
|
|
|
10
10
|
| [case-design-layers-guide.md](case-design-layers-guide.md) | the case model and every design **Default** — skeleton, gates, data, SLAs, naming, the closure checklist |
|
|
11
11
|
| [`case-sdd-template.md`](../../assets/templates/case/case-sdd-template.md) | the render contract — skeleton, cell rules inline, validation footer |
|
|
12
12
|
|
|
13
|
-
That is the COMPLETE design reading set. NEVER read `scripts/case/audit_sdd.py` — scripts are RUN, and their findings are the interface. Do NOT read the generic Phase D references (pdd-analysis, product-selection beyond the Constraint Gate): scope is already decided. Reference paths resolve against this skill's base directory, given at invocation — never hunt with `find` / global `ls`. Everything after the SDD (
|
|
13
|
+
That is the COMPLETE design reading set. NEVER read `scripts/case/audit_sdd.py` — scripts are RUN, and their findings are the interface. Do NOT read the generic Phase D references (pdd-analysis, product-selection beyond the Constraint Gate): scope is already decided. Reference paths resolve against this skill's base directory, given at invocation — never hunt with `find` / global `ls`. Everything after the SDD (caseplan.json, validate, publish) belongs to `uipath-maestro-case`.
|
|
14
14
|
|
|
15
15
|
**Draft finalization reads less (hard):** this file's §Resumption + §Terminal step, `sdd.draft.md`, and the template (its validation footer is the gate) — once each. NOT the layers guide: finalization normalizes structure, it does not redesign. No subagents, no background tasks, no tenant discovery unless identities are needed and a session exists.
|
|
16
16
|
|
|
@@ -427,12 +427,12 @@ Comparison exact — case-sensitive, untrimmed. Never normalize external lookup
|
|
|
427
427
|
|
|
428
428
|
## Layer closure — the design checklist
|
|
429
429
|
|
|
430
|
-
ONE checklist. Settle every item by assumption during Sketch; re-walk at Confirm (fix failures silently — authoring defects, not user decisions; unfixable → Review Flags). Mechanical shape/contract checks are NOT here — `scripts/case/audit_sdd.py` owns them (enforcement list: template § Validation); run it on the written file.
|
|
430
|
+
ONE checklist. Settle every item by assumption during Sketch; re-walk at Confirm — and when the request is save-a-draft-and-stop there IS no Confirm, so re-walk it immediately BEFORE the write instead; a draft skips the confirmation, never the closure walk (fix failures silently — authoring defects, not user decisions; unfixable → Review Flags). Mechanical shape/contract checks are NOT here — `scripts/case/audit_sdd.py` owns them (enforcement list: template § Validation); run it on the written file.
|
|
431
431
|
|
|
432
432
|
**Blocking — the design is unbuildable or unreviewable until fixed:**
|
|
433
433
|
|
|
434
434
|
1. **Other-path trigger source** — every modeled path's entry shape matches its trigger source (§ Secondary-lane entry shapes); interrupting flags set on the stage AND on every entry row; terminal `exit-only` vs returning `return-to-origin` chosen; a warning-only escalation stays a notification; an SLA response needing case work carries ONE `sla-status-change` entry with declared target + titles; never duplicate a global-event entry or exit across primary stages.
|
|
435
|
-
2. **Reachability walk** — every stage reachable from a trigger or SLA source
|
|
435
|
+
2. **Reachability walk** — every stage reachable from a trigger or SLA source: walk entries forward, and walk every conditional entry's FALSE branch too. A stage that does not enter never completes, so a downstream stage keying solely off its completion is unreachable on that branch — when a rule SKIPS a stage and the case continues, the bypass is an explicit extra entry row on the downstream stage (its own condition, negated); when the rule ENDS the case, that branch needs a terminal lane. Never write that a skipped stage "auto-completes" or "counts as complete" — that is an assertion, not a route, and the path stays dead. Every primary stage's completion consumed downstream, referenced by another entry, or feeding a lane; ≥ 1 primary stage `Required: Yes`; `adhoc` never a stage entry. Decision-reachable lanes and duplicate-entry ambiguity per § Secondary-lane entry shapes.
|
|
436
436
|
3. **Entry producer** — every non-start entry names its concrete producer (source stage/task, connector event, paired `wait-for-user` exit, declared SLA reference); at-risk rows name the escalation, breach rows the SLA alone.
|
|
437
437
|
4. **Decision-routing closure** — every decision outcome routes somewhere: no dead-end status values; an outcome targeting a lane keys that lane's entry; every routing button's variable+value is consumed downstream or a declared terminal; a fully-orphaned decision variable on a decision task is blocking.
|
|
438
438
|
5. **Gate reads the producer** — no condition whose WHEN names a task reads a case variable that task writes (§ Gate on the producer).
|
|
@@ -13,7 +13,7 @@ All sub-steps are non-interactive. Run them first; their outputs drive the Step
|
|
|
13
13
|
1. **Provided context document** — if the entry guard classified a document as "Other context", read it now. Any question its content answers counts as resolved; its content feeds the plan.
|
|
14
14
|
|
|
15
15
|
2. **Filesystem detection** — use `Glob` / `Read` / `Grep` (cross-platform) in current directory, then in the parent, NEVER shell-specific pipelines (`ls` globs, `grep` over pipes, `/dev/null` fail on native PowerShell):
|
|
16
|
-
- `Glob`: `project.json`, `*.xaml`, `*.cs`, `*.flow`, `flow_files/*.flow`, `*.bpmn`, `caseplan.json`, `agent.json`, `pyproject.toml`, `.uipath/*`, `app.config.json`, `*.uipx`, `element.json`, `*.py`.
|
|
16
|
+
- `Glob`: `project.json`, `*.xaml`, `*.cs`, `*.flow`, `flow_files/*.flow`, `*.bpmn`, `caseplan.json`, `agent.json`, `pyproject.toml`, `uipath.json`, `package.json`, `.uipath/*`, `app.config.json`, `*.uipx`, `element.json`, `*.py`.
|
|
17
17
|
- `project.json` found → `Read` it and check `targetFramework` and dependencies structurally (no regex-over-cat).
|
|
18
18
|
- `pyproject.toml` found → `Read` it and disambiguate: an agent-framework dependency (`langgraph`, `llamaindex`, `openai-agents`) or a sibling `agent.json` → **Agents**; a sibling `uipath.json` with a `functions` map (or `entry-points.json` from `uip function init`) → **Functions**; a bare `uipath` dependency with neither → inspect further or ask (a `.venv/` directory is NOT required and proves nothing).
|
|
19
19
|
- Root-level `*.json` with none of the above → `Grep` for `"document.dsl"` (API Workflow project).
|
|
@@ -27,6 +27,7 @@ All sub-steps are non-interactive. Run them first; their outputs drive the Step
|
|
|
27
27
|
| `agent.json` | `uipath-agents` (low-code) |
|
|
28
28
|
| `pyproject.toml` + agent-framework dependency (langgraph / llamaindex / openai-agents) | `uipath-agents` (coded) |
|
|
29
29
|
| `pyproject.toml` + `uipath.json` with a `functions` map | `uipath-functions` |
|
|
30
|
+
| `package.json` + `uipath.json` with a `functions` map | `uipath-functions` |
|
|
30
31
|
| JSON containing `document.dsl` | `uipath-api-workflow` |
|
|
31
32
|
| `.uipath/` or `app.config.json` | `uipath-coded-apps` |
|
|
32
33
|
| `element.json` (+ `element-metadata.json`) | `uipath-connector-builder` |
|
|
@@ -23,10 +23,11 @@ Read these fields:
|
|
|
23
23
|
| **SDD scope** | `single-product` → one SDD file owns one task list. `solution` → one solution-overview SDD plus one per-project SDD; tasks span all projects. |
|
|
24
24
|
| **Project list section** | Tells the planner where to find the unified project list (e.g., `§10` for RPA, `§3 + §7` for Flow, `Project Inventory` for solution overview). |
|
|
25
25
|
| **Tasks file** | Where to write `<process>-tasks.md`. Phase D proposes a path; Lane A respects it. |
|
|
26
|
+
| **Build handoff** | Case SDDs carry this prose row INSTEAD of `Tasks file` — the case build writes `caseplan.json` directly and has no tasks file. Informational only; Lane A parses it for provenance and never resolves it to a path. |
|
|
26
27
|
| **Generated by** | `uipath-planner`. Used in the summary output to tell the user the SDD's provenance. |
|
|
27
28
|
| **Generation date** | `YYYY-MM-DD`. Shown to the user in the summary. |
|
|
28
29
|
|
|
29
|
-
**Missing or malformed fields:** default `Execution autonomy` to `interactive` (safer), default `Delivery model` to `unspecified` (no constraint propagated — pre-existing SDDs lack the field), default `SDD scope` to `single-product`, infer `Project list section` from the template type, default `Tasks file` to `<sdd-basename-without-sdd>-tasks.md
|
|
30
|
+
**Missing or malformed fields:** default `Execution autonomy` to `interactive` (safer), default `Delivery model` to `unspecified` (no constraint propagated — pre-existing SDDs lack the field), default `SDD scope` to `single-product`, infer `Project list section` from the template type, default `Tasks file` to `<sdd-basename-without-sdd>-tasks.md` (EXCEPT when the header carries `Build handoff` — that is a Case SDD, where `Tasks file` is absent by design: default it silently and do NOT report it as a defaulted field). **Track each defaulted field** in a session-local list — Step 8 surfaces them in the user-facing summary so the human reviewer can correct the SDD before tasks are emitted. Do not silently swallow the defaults.
|
|
30
31
|
|
|
31
32
|
**Autonomy override on resume:** if the user's resume message explicitly requests review or interactive handling, honour the message over the header's `Execution autonomy` value (do not re-ask).
|
|
32
33
|
|
|
@@ -99,7 +100,7 @@ Based on the project list, pick the matching pattern from [multi-skill-patterns-
|
|
|
99
100
|
| Case Management with §4 integrations that reference unbuilt resources | Build external components first, then `uipath-maestro-case`; inline `action`, connector, timer, and child-case task details stay with the Case specialist |
|
|
100
101
|
| Case Management whose §4 integrations are pre-existing or unresolved portable intent | `uipath-maestro-case` build task first; unresolved IDs/folders travel as review items for the Case specialist's registry discovery |
|
|
101
102
|
| Any SDD with a filled "IXP / Document Understanding Models" table | Add an IXP model build + validation task via `uipath-ixp` per model, ordered before its consumer's build tasks |
|
|
102
|
-
| Any SDD with a filled "Coded Functions" table | Add a Function build + validation task via `uipath-functions
|
|
103
|
+
| Any SDD with a filled "Coded Functions" table | Add a Function build + validation task per function via `uipath-functions`, ordered before its consumer's build tasks |
|
|
103
104
|
| Agent with RPA tools in §3 Tools | Pattern 5 |
|
|
104
105
|
| Coded App | Coded App build + `uipath-solution` deploy + testing (when wrapped in `.uipx`); otherwise `uipath-coded-apps` self-deploys |
|
|
105
106
|
| API Workflow | API Workflow build + `uipath-solution` publish + testing |
|
|
@@ -471,6 +471,7 @@ This step runs in BOTH Autonomous and Interactive modes — it is a hard blocker
|
|
|
471
471
|
| **Independently executable** | no ← children only; Lane A refuses to derive tasks from a child directly
|
|
472
472
|
| **Project list section** | §11 / §10 + §11 / Project Inventory ← template-specific (RPA single: §11; RPA Master: §10 + §11; Flow: §3 + §7; BPMN: §4 + §9; Case: §2 + §4; etc.)
|
|
473
473
|
| **Tasks file** | `<PROCESS_NAME_KEBAB>-tasks.md` ← planner writes here on first run. Solution scope: root AND every child carry the SAME canonical `<SOLUTION_NAME_KEBAB>-tasks.md` — exactly one tasks file per solution, never one per project
|
|
474
|
+
| **Build handoff** | <prose — Case template ONLY> ← the Case template emits this row INSTEAD of `Tasks file`: the case build writes `caseplan.json` directly and has no tasks file, so there is no path to carry. Every other template emits `Tasks file`; never emit both
|
|
474
475
|
| **Generated by** | uipath-planner
|
|
475
476
|
| **Generation date** | <YYYY-MM-DD>
|
|
476
477
|
| **Template validation** | pending → passed ← set to `passed` together with the `ready` flip (item 8)
|
|
@@ -353,13 +353,37 @@ def model_findings(text: str, facts: dict, carried_names: frozenset[str] = froze
|
|
|
353
353
|
return findings
|
|
354
354
|
|
|
355
355
|
|
|
356
|
-
|
|
357
356
|
EXIT_TYPES_YES = {"exit-only", "return-to-origin", "wait-for-user"}
|
|
358
357
|
EXIT_TYPES_NO = {"exit-only", "wait-for-user"}
|
|
359
358
|
RECIPIENT_PREFIX = re.compile(r"^(Role|User|UserGroup|Email|Expression):")
|
|
360
359
|
FORBIDDEN_VOCAB = ["groupOperator", "savedFilterTrees", "io-binding", "auto-mint", "originalVar", "inputOutputs["]
|
|
361
360
|
|
|
362
361
|
|
|
362
|
+
def decision_routed_behaviors(text: str) -> list[str]:
|
|
363
|
+
"""`Behavior` prose from decision buttons that map a variable to a value.
|
|
364
|
+
|
|
365
|
+
A decision task's `**Actions:**` table routes outcomes:
|
|
366
|
+
|
|
367
|
+
| Button | Maps To | Behavior |
|
|
368
|
+
| Reject | reviewDecision = "Reject" | ... the Application Rejected lane |
|
|
369
|
+
|
|
370
|
+
A row whose `Maps To` carries an assignment is a deterministic route, so the
|
|
371
|
+
lane it names cannot be keyed on `user-selected-stage` (a picker is for a lane
|
|
372
|
+
a PERSON launches). Kept in code rather than in the template: the design
|
|
373
|
+
lane's reading budget is saturated, and prose that was long enough to land
|
|
374
|
+
this repair cost a passing task while prose short enough to be safe left the
|
|
375
|
+
agent churning without producing an SDD.
|
|
376
|
+
"""
|
|
377
|
+
out: list[str] = []
|
|
378
|
+
for chunk in re.split(r"(?=\*\*Actions:\*\*)", text):
|
|
379
|
+
if not chunk.startswith("**Actions:**"):
|
|
380
|
+
continue
|
|
381
|
+
for _, cells in table_rows(chunk):
|
|
382
|
+
if len(cells) >= 3 and "=" in cells[1]:
|
|
383
|
+
out.append(cells[2])
|
|
384
|
+
return out
|
|
385
|
+
|
|
386
|
+
|
|
363
387
|
def section_slice(text: str, heading: str) -> str:
|
|
364
388
|
"""Body of a `### {heading}` section up to the next heading of any level."""
|
|
365
389
|
match = re.search(rf"^### {re.escape(heading)}\s*$(.*?)(?=^#{{1,5}} |\Z)", text, re.M | re.S)
|
|
@@ -414,6 +438,37 @@ def declared_sla_titles(text: str) -> dict[str, set[str]]:
|
|
|
414
438
|
return titles
|
|
415
439
|
|
|
416
440
|
|
|
441
|
+
AMBIGUOUS_PERSONA = re.compile(r"^[A-Z][A-Za-z/ ]{2,40}\s+or\s+[A-Za-z][A-Za-z/ ]{2,40}$")
|
|
442
|
+
PERSONA_HEADER = re.compile(r"^(assignee|owner|performer|responsible|persona|role)s?$", re.I)
|
|
443
|
+
|
|
444
|
+
|
|
445
|
+
def ambiguous_personas(text: str) -> list[str]:
|
|
446
|
+
"""Persona cells naming two roles — an unresolved conditional, not an owner.
|
|
447
|
+
|
|
448
|
+
A task runs as exactly one persona. "Underwriter or Credit Analyst" is a
|
|
449
|
+
routing rule the author stated but never modelled: the reader cannot tell
|
|
450
|
+
who owns the task, and no guard picks between them at run time.
|
|
451
|
+
"""
|
|
452
|
+
found: list[str] = []
|
|
453
|
+
cols: list[int] | None = None
|
|
454
|
+
for line in text.splitlines():
|
|
455
|
+
stripped = line.strip()
|
|
456
|
+
if not stripped.startswith("|"):
|
|
457
|
+
cols = None
|
|
458
|
+
continue
|
|
459
|
+
if re.match(r"^[\s\-:|]+$", stripped.strip("|")):
|
|
460
|
+
continue
|
|
461
|
+
cells = [c.strip() for c in stripped.strip("|").split("|")]
|
|
462
|
+
header = [i for i, c in enumerate(cells) if PERSONA_HEADER.match(c)]
|
|
463
|
+
if header:
|
|
464
|
+
cols = header
|
|
465
|
+
continue
|
|
466
|
+
if cols:
|
|
467
|
+
for i in cols:
|
|
468
|
+
if i < len(cells) and AMBIGUOUS_PERSONA.match(cells[i]):
|
|
469
|
+
found.append(cells[i])
|
|
470
|
+
return sorted(dict.fromkeys(found))
|
|
471
|
+
|
|
417
472
|
def contract_findings(text: str, facts: dict) -> list[str]:
|
|
418
473
|
"""Deterministic contract checks beyond template shape: gate-slot WHEN legality,
|
|
419
474
|
exit-type pairing, SLA title closure, uniqueness, recipients, buttons, Out producers,
|
|
@@ -436,6 +491,27 @@ def contract_findings(text: str, facts: dict) -> list[str]:
|
|
|
436
491
|
if has_uss_entry and not has_wfu_exit:
|
|
437
492
|
findings.append("user-selected-stage entry with no wait-for-user exit anywhere — validate fails with 'will never be met'")
|
|
438
493
|
|
|
494
|
+
for persona in ambiguous_personas(text):
|
|
495
|
+
findings.append(
|
|
496
|
+
f"task persona {persona!r} names two roles — a task runs as exactly one "
|
|
497
|
+
"persona, so an either/or cell is a routing rule stated but not modelled: "
|
|
498
|
+
"assign the role the case actually uses and put the condition in a guard, "
|
|
499
|
+
"or split it into two guarded task variants"
|
|
500
|
+
)
|
|
501
|
+
|
|
502
|
+
routed = " || ".join(decision_routed_behaviors(text)).casefold()
|
|
503
|
+
if routed:
|
|
504
|
+
for kind, name, block in stage_blocks(text):
|
|
505
|
+
if kind != "Secondary Stage" or "user-selected-stage" not in block:
|
|
506
|
+
continue
|
|
507
|
+
if name.casefold() in routed:
|
|
508
|
+
findings.append(
|
|
509
|
+
f"stage {name!r} is entered by user-selected-stage but a decision button routes to it "
|
|
510
|
+
"— a picker rule cannot carry a deterministic route: key the entry on the decision "
|
|
511
|
+
'(selected-stage-completed("<origin>") + IF on the fact) and give the origin the '
|
|
512
|
+
"matching Marks Stage Complete: No diverting exit"
|
|
513
|
+
)
|
|
514
|
+
|
|
439
515
|
# Case Exit Conditions: >= 1 completing row
|
|
440
516
|
case_exit = section_slice(text, "Case Exit Conditions")
|
|
441
517
|
if case_exit and not any("Yes" in cells for _, cells in table_rows(case_exit)):
|
|
@@ -107,10 +107,11 @@ If the user names a profile, check that profile explicitly:
|
|
|
107
107
|
uip login status --profile dev --output json
|
|
108
108
|
```
|
|
109
109
|
|
|
110
|
-
**Interactive login (browser OAuth2):** `uip login` opens a browser window on the user's machine and blocks until they complete it.
|
|
111
|
-
```
|
|
112
|
-
uip login
|
|
110
|
+
**Interactive login (browser OAuth2):** `uip login` opens a browser window on the user's machine and blocks until they complete it. **Never run an interactive login through your own shell tool — with or without `--no-browser`.** Run by an agent, the person who must sign in sees only a spinner: the printed URL and the blocking wait live in your tool output, not in front of them. `--no-browser` does not make the command agent-runnable — it exists for automation that opens the URL *itself*; it still blocks until the sign-in callback arrives, and relaying the printed URL by copy/paste is fragile (a line-wrapped or truncated copy is rejected by the identity server with an opaque browser-side error). Instead, ask the user to run the command directly in their own terminal — in Claude Code, prefixing it with `!` runs it inside the session:
|
|
111
|
+
```text
|
|
112
|
+
! uip login
|
|
113
113
|
```
|
|
114
|
+
Then confirm with `uip login status --output json` once they say it's done. If a retry fails with `EADDRINUSE` / "Port 8104 is already in use", an abandoned earlier attempt is still holding the callback port — it releases itself within 5 minutes, or the user can end the stale `uip login` process.
|
|
114
115
|
|
|
115
116
|
For a named interactive login:
|
|
116
117
|
```bash
|
|
@@ -181,6 +182,7 @@ Choose the appropriate operation from the Task Navigation table below. For `uip
|
|
|
181
182
|
| **Assign user/group license bundles** | [references/licensing/user-licenses-allocations.md](references/licensing/user-licenses-allocations.md) |
|
|
182
183
|
| **Report on license consumption** | [references/licensing/consumables-report.md](references/licensing/consumables-report.md) |
|
|
183
184
|
| **Understand licensing concepts** | [references/licensing/licensing.md](references/licensing/licensing.md) |
|
|
185
|
+
| **Diagnose a licensing symptom** | [references/licensing/diagnose/CAPABILITY.md](references/licensing/diagnose/CAPABILITY.md) |
|
|
184
186
|
| **Full CLI command reference** | [references/uip-commands.md](references/uip-commands.md) |
|
|
185
187
|
| **Build/run/validate coded workflows** | [/uipath:uipath-rpa](/uipath:uipath-rpa) |
|
|
186
188
|
|
|
@@ -313,7 +315,7 @@ Every `uip` command accepts:
|
|
|
313
315
|
- **[Data Fabric](references/data-fabric/data-fabric.md)** — Entity schemas, records CRUD, query filters and aggregates, choice sets, file attachments, CSV bulk import, folder scoping
|
|
314
316
|
- **[LLM Gateway — BYO Connections](references/llmgateway/byo-connections.md)** — Register tenant-owned LLM keys against UiPath products
|
|
315
317
|
- **[Guardrails — BYOG Configurations](references/guardrails/byo-configurations.md)** — Manage tenant-registered bring-your-own guardrail (BYOG) configurations and diagnose their underlying Integration Service connections
|
|
316
|
-
- **[Licensing](references/licensing/licensing.md)** — Tenant allocations, user/group bundles, consumables reporting
|
|
318
|
+
- **[Licensing](references/licensing/licensing.md)** — Tenant allocations, user/group bundles, consumables reporting, [diagnose](references/licensing/diagnose/CAPABILITY.md)
|
|
317
319
|
- **[Coded Workflows](/uipath:uipath-rpa)** — Building coded automation projects
|
|
318
320
|
|
|
319
321
|
> **Trouble?** If something didn't work as expected, use `/uipath-feedback` to send a report.
|
|
@@ -66,6 +66,8 @@ The **Operation** field on trigger activities indicates the trigger type:
|
|
|
66
66
|
|
|
67
67
|
Some IS activities — most notably **List All Records** and other list/query operations — accept a server-side filter expressed in **CEQL** (Connector Expression Query Language). As with trigger filters (which compile to JMESPath), CEQL filters are authored as a **structured filter tree** and the CLI compiles them to a CEQL string. Authoring as a tree keeps the CLI and Studio Web in lockstep so the activity round-trips cleanly when re-opened in SW.
|
|
68
68
|
|
|
69
|
+
**Never hand-write the CEQL string.** The tree is the only authored form; the grammar below describes what the compiler emits, so you can read a compiled query and recognize a malformed one. For a connector node in a Maestro flow, follow the filter-tree step in [uipath-maestro-flow — connector/impl.md Step 6a](../../../uipath-maestro-flow/references/author/plugins/connector/impl.md), which discovers the FilterBuilder parameter name from the node registry.
|
|
70
|
+
|
|
69
71
|
### Contract — three signals from IS metadata
|
|
70
72
|
|
|
71
73
|
The CLI reads the live IS metadata response and uses three signals to wire the filter:
|
|
@@ -96,7 +98,7 @@ Identical to the trigger filter tree — the same `FilterTree` / `Filter` / `Wor
|
|
|
96
98
|
"value": {
|
|
97
99
|
"value": <typed value>, // string / number / boolean / ISO-8601 date-time / array
|
|
98
100
|
"rawString": "\"...\"", // verbatim user-entered text (with quotes for strings)
|
|
99
|
-
"isLiteral": true //
|
|
101
|
+
"isLiteral": true // false for a runtime expression operand
|
|
100
102
|
}
|
|
101
103
|
}
|
|
102
104
|
],
|
|
@@ -190,7 +192,7 @@ Logical operators between siblings:
|
|
|
190
192
|
4. For each leaf, pick an operator from the field's `searchableOperators` list (when present). Date-time fields take ISO-8601 strings; enums take the literal enum value.
|
|
191
193
|
5. Use the field's `name` as the leaf `id`. The CLI rewrites it to `searchableNames[0]` when emitting CEQL if the connector declares one — you don't need to use the alias yourself.
|
|
192
194
|
6. Build one leaf per condition; place multiple conditions under the same `groupOperator` (0 for AND, 1 for OR). Use nested `groups` for mixed AND/OR.
|
|
193
|
-
7. Wrap values in a `WorkflowValue` object with `value`, `rawString`, `isLiteral`. Strings, numbers, booleans, dates, and arrays are all valid `value` types
|
|
195
|
+
7. Wrap values in a `WorkflowValue` object with `value`, `rawString`, `isLiteral`. Strings, numbers, booleans, dates, and arrays are all valid `value` types. Set `isLiteral: false` for a runtime operand — the compiler emits a placeholder for it, so a runtime value never needs a hand-written query string.
|
|
194
196
|
|
|
195
197
|
### What NOT to generate
|
|
196
198
|
|
|
@@ -202,14 +204,15 @@ Logical operators between siblings:
|
|
|
202
204
|
| `{ "value": "Active" }` on a leaf | Bare string — must be wrapped in the `WorkflowValue` object. | `{ "value": { "value": "Active", "rawString": "\"Active\"", "isLiteral": true } }` |
|
|
203
205
|
| `{ "id": "fields.Status", ... }` | `fields.` prefix — use the bare field name from `is resources describe`. | `{ "id": "Status", ... }` |
|
|
204
206
|
| `{ "id": "<field without searchable: true>", ... }` | The CLI checks `searchable` on the IS metadata entry; non-searchable fields are rejected even if their type looks filterable. | Pick a field where `searchable: true`. |
|
|
205
|
-
| `"queryParameters": { "where": "..." }` alongside `filter` | Hardcoding `where` assumes that's the FilterBuilder param name — it isn't always (Salesforce uses `q`,
|
|
207
|
+
| `"queryParameters": { "where": "..." }` alongside `filter` | Hardcoding `where` assumes that's the FilterBuilder param name — it isn't always (Salesforce uses `q`, Data Service uses `queryExpression`). | Pass `filter` only; the CLI discovers the right param name from `design.component === "FilterBuilder"`. |
|
|
208
|
+
| `"queryParameters": { "<filterParam>": "=js:\"Name = '\" + …" }` | A hand-written CEQL string. Validation cannot read it, and the design-time tree stays empty. | Structured tree under `filter`, with `isLiteral: false` on any runtime operand. |
|
|
206
209
|
| `In` operator with a single value not in a list | `In` expects an array `value`. | Use `Equals`, or pass `value: ["one"]`. |
|
|
207
210
|
|
|
208
211
|
## Custom Fields (`objectActions[ActionType=Api]`)
|
|
209
212
|
|
|
210
213
|
Connectors with extensible/custom fields (Jira project+issuetype → custom Jira fields, Mailchimp list_id → audience merge fields, Salesforce custom objects) expose `Api`-type entries under `objectActions[]`. Each entry's `apiConfiguration.url`/`body` carries `{token}` placeholders naming the parent fields. The runtime replays the ObjectAction with cached parent values to fetch the connector-specific custom-field schema.
|
|
211
214
|
|
|
212
|
-
**For Maestro flows**, this lives on the activity node as `essentialConfiguration.customFieldsRequestDetails`. Authoring contract → [uipath-maestro-flow connector/impl.md Step 6c](../../../uipath-maestro-flow/references/author/
|
|
215
|
+
**For Maestro flows**, this lives on the activity node as `essentialConfiguration.customFieldsRequestDetails`. Authoring contract → [uipath-maestro-flow connector/impl.md Step 6c](../../../uipath-maestro-flow/references/author/plugins/connector/impl.md).
|
|
213
216
|
|
|
214
217
|
Shape:
|
|
215
218
|
|