@uipath/skills 1.196.0 → 1.197.0-preview.0
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/CODEOWNERS +17 -4
- package/README.md +13 -1
- package/assets/skill-status.json +9 -1
- package/assets/uip-catalog-snapshot.json +13 -2
- package/hooks/hooks.json +12 -0
- package/hooks/send-telemetry.sh +421 -0
- package/hooks/suggest-permissions.sh +6 -0
- package/hooks/validate-skill-descriptions.sh +0 -0
- package/package.json +1 -1
- package/skills/uipath-admin/SKILL.md +24 -4
- package/skills/uipath-admin/references/audit-commands.md +25 -21
- package/skills/uipath-admin/references/audit-workflow-guide.md +26 -25
- package/skills/uipath-admin/references/diagnose/CAPABILITY.md +74 -0
- package/skills/uipath-admin/references/diagnose/references/failure-modes.md +228 -0
- package/skills/uipath-admin/references/diagnose/references/troubleshooting-guide.md +106 -0
- package/skills/uipath-admin/references/identity-troubleshoot-guide.md +251 -0
- package/skills/uipath-agents/SKILL.md +7 -4
- package/skills/uipath-agents/references/coded/capabilities/context-grounding.md +2 -0
- package/skills/uipath-agents/references/coded/capabilities/conversational-agents.md +2 -0
- package/skills/uipath-agents/references/coded/capabilities/guardrails/guardrails-recommend.md +7 -4
- package/skills/uipath-agents/references/coded/capabilities/guardrails/guardrails.md +141 -1
- package/skills/uipath-agents/references/coded/capabilities/human-in-the-loop.md +2 -0
- package/skills/uipath-agents/references/coded/capabilities/integration-service.md +19 -33
- package/skills/uipath-agents/references/coded/lifecycle/bindings-reference.md +54 -22
- package/skills/uipath-agents/references/coded/lifecycle/evaluations/evaluation-sets.md +5 -1
- package/skills/uipath-agents/references/coded/lifecycle/setup.md +2 -0
- package/skills/uipath-agents/references/coded/quickstart.md +4 -4
- package/skills/uipath-agents/references/coded-vs-lowcode-guide.md +1 -0
- package/skills/uipath-agents/references/context-grounding-patterns.md +1 -1
- package/skills/uipath-agents/references/lowcode/agent-definition.md +97 -12
- package/skills/uipath-agents/references/lowcode/capabilities/built-in-tools/analyze-attachments.md +2 -2
- package/skills/uipath-agents/references/lowcode/capabilities/built-in-tools/batch-transform/impl-json.md +40 -14
- package/skills/uipath-agents/references/lowcode/capabilities/built-in-tools/built-in-tools.md +4 -3
- package/skills/uipath-agents/references/lowcode/capabilities/built-in-tools/deeprag/impl-json.md +38 -6
- package/skills/uipath-agents/references/lowcode/capabilities/context/attachments.md +1 -1
- package/skills/uipath-agents/references/lowcode/capabilities/context/context.md +1 -1
- package/skills/uipath-agents/references/lowcode/capabilities/context/datafabric.md +1 -1
- package/skills/uipath-agents/references/lowcode/capabilities/context/index.md +7 -3
- package/skills/uipath-agents/references/lowcode/capabilities/escalation/escalation.md +49 -38
- package/skills/uipath-agents/references/lowcode/capabilities/guardrails/guardrails.md +45 -45
- package/skills/uipath-agents/references/lowcode/capabilities/inline-in-flow/inline-in-flow.md +11 -11
- package/skills/uipath-agents/references/lowcode/capabilities/integration-service/integration-service.md +1 -1
- package/skills/uipath-agents/references/lowcode/capabilities/memory/memory.md +2 -0
- package/skills/uipath-agents/references/lowcode/capabilities/process/process.md +2 -2
- package/skills/uipath-agents/references/lowcode/capabilities/process/solution-files.md +1 -1
- package/skills/uipath-agents/references/lowcode/critical-rules/autonomous-critical-rules.md +15 -0
- package/skills/uipath-agents/references/lowcode/critical-rules/conversational-critical-rules.md +19 -0
- package/skills/uipath-agents/references/lowcode/{critical-rules.md → critical-rules/critical-rules.md} +25 -27
- package/skills/uipath-agents/references/lowcode/debug.md +6 -3
- package/skills/uipath-agents/references/lowcode/evaluations/evaluate.md +2 -0
- package/skills/uipath-agents/references/lowcode/lowcode.md +29 -6
- package/skills/uipath-agents/references/lowcode/model-selection-guide.md +4 -1
- package/skills/uipath-agents/references/lowcode/project-lifecycle.md +11 -8
- package/skills/uipath-agents/references/lowcode/prompting/agent-prompting-guide.md +17 -0
- package/skills/uipath-agents/references/lowcode/{agent-prompting-guide.md → prompting/autonomous-agent-prompting-guide.md} +9 -11
- package/skills/uipath-agents/references/lowcode/prompting/conversational-agent-prompting-guide.md +123 -0
- package/skills/uipath-agents/references/lowcode/solution-resources.md +1 -1
- package/skills/uipath-api-workflow/SKILL.md +1 -1
- package/skills/uipath-api-workflow/references/cli-reference.md +8 -5
- package/skills/uipath-api-workflow/references/connector-activity-discovery.md +43 -4
- package/skills/uipath-api-workflow/references/troubleshooting.md +7 -2
- package/skills/uipath-coded-apps/SKILL.md +3 -0
- package/skills/uipath-coded-apps/assets/templates/action-app/app-template.css +9 -0
- package/skills/uipath-coded-apps/assets/templates/action-app/document-tab-template.css +139 -0
- package/skills/uipath-coded-apps/assets/templates/action-app/form-template.css +442 -0
- package/skills/uipath-coded-apps/assets/templates/action-app/index-template.css +111 -0
- package/skills/uipath-coded-apps/assets/templates/action-app-template.md +357 -152
- package/skills/uipath-coded-apps/references/create-action-app.md +284 -195
- package/skills/uipath-coded-apps/references/create-web-app.md +2 -0
- package/skills/uipath-coded-apps/references/oauth-scopes.md +20 -0
- package/skills/uipath-coded-apps/references/pack-publish-deploy.md +2 -0
- package/skills/uipath-coded-apps/references/sdk/action-center.md +32 -6
- package/skills/uipath-coded-apps/references/sdk/orchestrator.md +6 -2
- package/skills/uipath-coded-apps/references/widgets/validation-station.md +308 -0
- package/skills/uipath-coded-apps/scripts/validate-action-schema.js +241 -0
- package/skills/uipath-connector-builder/SKILL.md +192 -0
- package/skills/uipath-connector-builder/references/auth.md +171 -0
- package/skills/uipath-connector-builder/references/configuration.md +130 -0
- package/skills/uipath-connector-builder/references/debugging.md +80 -0
- package/skills/uipath-connector-builder/references/element-json.md +148 -0
- package/skills/uipath-connector-builder/references/events.md +132 -0
- package/skills/uipath-connector-builder/references/hooks.md +198 -0
- package/skills/uipath-connector-builder/references/overview.md +78 -0
- package/skills/uipath-connector-builder/references/standard-resources.md +111 -0
- package/skills/uipath-connector-builder/references/system-resources.md +85 -0
- package/skills/uipath-feedback/SKILL.md +43 -29
- package/skills/uipath-governance/SKILL.md +13 -1
- package/skills/uipath-governance/references/aops-policy/aops-policy-commands.md +10 -10
- package/skills/uipath-governance/references/aops-policy/aops-policy-deploy-guide.md +7 -7
- package/skills/uipath-governance/references/diagnose/CAPABILITY.md +71 -0
- package/skills/uipath-governance/references/diagnose/references/failure-modes.md +201 -0
- package/skills/uipath-governance/references/diagnose/references/troubleshooting-guide.md +137 -0
- package/skills/uipath-ixp/SKILL.md +119 -0
- package/skills/uipath-ixp/references/cli-reference.md +121 -0
- package/skills/uipath-ixp/references/improve-prompts-guide.md +283 -0
- package/skills/uipath-ixp/references/label-documents-guide.md +205 -0
- package/skills/uipath-ixp/references/project-setup-guide.md +90 -0
- package/skills/uipath-maestro-bpmn/SKILL.md +167 -68
- package/skills/uipath-maestro-bpmn/references/cli-conventions.md +47 -0
- package/skills/uipath-maestro-bpmn/references/diagnose/CAPABILITY.md +6 -6
- package/skills/uipath-maestro-bpmn/references/operate/CAPABILITY.md +3 -3
- package/skills/uipath-maestro-bpmn/references/registry-workflow.md +199 -0
- package/skills/uipath-maestro-bpmn/references/structural-bpmn.md +500 -0
- package/skills/uipath-maestro-bpmn/validator/README.md +214 -0
- package/skills/uipath-maestro-bpmn/validator/bpmn-spec.json +2473 -0
- package/skills/uipath-maestro-bpmn/validator/model.mjs +419 -0
- package/skills/uipath-maestro-bpmn/validator/package.json +17 -0
- package/skills/uipath-maestro-bpmn/validator/rules.mjs +1403 -0
- package/skills/uipath-maestro-bpmn/validator/samples/invalid-conditional-and-variable.bpmn +25 -0
- package/skills/uipath-maestro-bpmn/validator/samples/valid-baseline.bpmn +52 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/A.2.0.bpmn +157 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/A.2.1.bpmn +333 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/B.1.0.bpmn +598 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/B.2.0.bpmn +1709 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.2.0.bpmn +564 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.3.0.bpmn +671 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.4.0.bpmn +1045 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.5.0.bpmn +1176 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.6.0.bpmn +670 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.7.0.bpmn +466 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Can_Parse_Complex_Process_With_Task_Gateway_BoundaryEvent_etc.bpmn +74 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/ExclusiveGatewayDefaultFlow.bpmn +32 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/ExternalAgentWorkflow.bpmn +62 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Golden_Scenario.initial.bpmn +361 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/InclusiveJoinRouteAwayBranch.bpmn +62 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Parse_AsyncExecution_And_Create_CorrectModel.bpmn +74 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Parse_IXP_ExtractionValidation_And_Create_CorrectModel.bpmn +35 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Parse_IXP_Extraction_FileUpload_And_Create_CorrectModel.bpmn +33 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Parse_IXP_Extraction_JobAttachment_And_Create_CorrectModel.bpmn +35 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Parse_SubProcess_With_Multiple_Element_Types.bpmn +76 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/StartEventWithOutputs.bpmn +36 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/StartGatewayEnd.bpmn +44 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/all elements.bpmn +516 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/all_sequence_flow_types.bpmn +173 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/demo.bpmn +181 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/subprocess-example-001-collapsed.bpmn +126 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/subprocess-example-001-expanded.bpmn +122 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/subprocess-example-003-collapsed_deeply-nested.bpmn +438 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/A.1.0.bpmn +87 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/A.3.0.bpmn +165 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ApiWorkflow.bpmn +39 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/BpmnNestedSubProcessTests.bpmn +102 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/BpmnTimerBoundaryEvents.bpmn +160 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/BpmnXmlWithCatchAllErrorEventSubProcess.bpmn +45 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/BpmnXmlWithSpecificErrorEventSubProcess.bpmn +46 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/CaseManagementWithConstantIdentifier.bpmn +218 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ErrorBoundary.bpmn +78 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ErrorPropagationInEventSubprocess.bpmn +340 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/EventBasedGatewayFirstCatcherWins.bpmn +56 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Example-EventBasedGateway.bpmn +117 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ExclusiveGatewayConditional.bpmn +45 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ExclusiveGatewaySharedEndEvent.bpmn +45 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ExclusiveWithParallelGateway.bpmn +68 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/FourScriptTasks.bpmn +84 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/HitlTaskOnly.bpmn +55 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/InclusiveGatewayForkJoin.bpmn +69 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Parse_BPMN_Elements_And_Create_CorrectModel.bpmn +20 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Parse_HttpRequest_ServiceTask_And_Create_Correct_Model.bpmn +34 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Parse_MessageBoundaryEvent_And_Create_CorrectModel.bpmn +87 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Parse_Script_Task_V2_And_Create_Correct_Model.bpmn +31 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Parse_Sets_Containers_Properly.bpmn +129 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ScriptWritesVariableThenGatewayBranches.bpmn +55 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/boundaryevent.bpmn +30 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/collapsed-subprocess.bpmn +83 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/connectable-types.bpmn +85 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/extensions-orchestrator-start-job.bpmn +80 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/multiparticipantpool.bpmn +77 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/nestedsubprocess.bpmn +36 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/simple.bpmn +59 -0
- package/skills/uipath-maestro-bpmn/validator/test/integration.test.mjs +146 -0
- package/skills/uipath-maestro-bpmn/validator/test/model-helpers.mjs +42 -0
- package/skills/uipath-maestro-bpmn/validator/test/ported-rule-tests.mjs +983 -0
- package/skills/uipath-maestro-bpmn/validator/test/run-tests.mjs +530 -0
- package/skills/uipath-maestro-bpmn/validator/uipath-moddle.v1.json +715 -0
- package/skills/uipath-maestro-bpmn/validator/validate-bpmn.mjs +164 -0
- package/skills/uipath-maestro-case/SKILL.md +5 -1
- package/skills/uipath-maestro-case/assets/templates/sdd-template-examples.md +10 -0
- package/skills/uipath-maestro-case/assets/templates/sdd-template.md +89 -17
- package/skills/uipath-maestro-case/references/bindings-and-expressions.md +26 -0
- package/skills/uipath-maestro-case/references/case-editing-operations.md +3 -0
- package/skills/uipath-maestro-case/references/implementation.md +11 -4
- package/skills/uipath-maestro-case/references/phase-0-interview.md +8 -7
- package/skills/uipath-maestro-case/references/phased-execution.md +2 -1
- package/skills/uipath-maestro-case/references/plugins/conditions/stage-exit-conditions/impl-json.md +21 -0
- package/skills/uipath-maestro-case/references/plugins/conditions/stage-exit-conditions/planning.md +2 -0
- package/skills/uipath-maestro-case/references/plugins/variables/global-vars/impl-json.md +15 -9
- package/skills/uipath-maestro-case/references/plugins/variables/io-binding/impl-json.md +131 -4
- package/skills/uipath-maestro-case/references/sdd-generation-rules.md +94 -17
- package/skills/uipath-maestro-flow/.maintenance/check-all.sh +0 -0
- package/skills/uipath-maestro-flow/.maintenance/check-anchors.sh +0 -0
- package/skills/uipath-maestro-flow/.maintenance/check-depth.sh +0 -0
- package/skills/uipath-maestro-flow/.maintenance/check-link-text.sh +0 -0
- package/skills/uipath-maestro-flow/.maintenance/check-links.sh +0 -0
- package/skills/uipath-maestro-flow/.maintenance/check-orphans.sh +0 -0
- package/skills/uipath-maestro-flow/.maintenance/check-plugin-pairs.sh +0 -0
- package/skills/uipath-maestro-flow/.maintenance/check-template.sh +0 -0
- package/skills/uipath-maestro-flow/.maintenance/check-uip-commands.sh +0 -0
- package/skills/uipath-maestro-flow/.maintenance/check-versions.sh +0 -0
- package/skills/uipath-maestro-flow/references/author/references/plugins/http/impl-connector.md +4 -1
- package/skills/uipath-maestro-flow/references/author/references/plugins/inline-agent/impl.md +73 -48
- package/skills/uipath-maestro-flow/references/author/references/plugins/inline-agent/planning.md +16 -4
- package/skills/uipath-maestro-flow/references/evaluate/references/commands-reference.md +8 -8
- package/skills/uipath-maestro-flow/references/evaluate/references/running-guide.md +3 -3
- package/skills/uipath-planner/SKILL.md +16 -7
- package/skills/uipath-planner/assets/templates/agent-sdd-template.md +14 -0
- package/skills/uipath-planner/assets/templates/api-workflow-sdd-template.md +14 -0
- package/skills/uipath-planner/assets/templates/case-sdd-template.md +14 -0
- package/skills/uipath-planner/assets/templates/coded-app-sdd-template.md +14 -0
- package/skills/uipath-planner/assets/templates/flow-sdd-template.md +14 -0
- package/skills/uipath-planner/assets/templates/rpa-sdd-template.md +25 -5
- package/skills/uipath-planner/references/multi-skill-patterns-guide.md +2 -0
- package/skills/uipath-planner/references/non-pdd-lane-guide.md +2 -0
- package/skills/uipath-planner/references/pdd-analysis-guide.md +23 -1
- package/skills/uipath-planner/references/pdd-driven-lane-guide.md +6 -2
- package/skills/uipath-planner/references/plan-and-tasks-format.md +2 -0
- package/skills/uipath-planner/references/platform-availability-guide.md +44 -0
- package/skills/uipath-planner/references/product-selection-guide.md +20 -0
- package/skills/uipath-planner/references/sdd-generation-guide.md +84 -21
- package/skills/uipath-planner/references/tenant-library-search-guide.md +5 -1
- package/skills/uipath-planner/scripts/docx-extract.sh +54 -0
- package/skills/uipath-planner/scripts/sdd-to-docx.sh +77 -0
- package/skills/uipath-platform/SKILL.md +54 -6
- package/skills/uipath-platform/references/context-grounding/index-management.md +123 -0
- package/skills/{uipath-data-fabric/references → uipath-platform/references/data-fabric}/bulk-import.md +15 -4
- package/skills/{uipath-data-fabric/references → uipath-platform/references/data-fabric}/choice-sets.md +27 -11
- package/skills/uipath-platform/references/data-fabric/data-fabric.md +303 -0
- package/skills/{uipath-data-fabric/references → uipath-platform/references/data-fabric}/entity-schema.md +94 -37
- package/skills/uipath-platform/references/data-fabric/file-attachments.md +122 -0
- package/skills/{uipath-data-fabric/references → uipath-platform/references/data-fabric}/filter-platform-contract.md +3 -3
- package/skills/{uipath-data-fabric/references → uipath-platform/references/data-fabric}/records-query.md +46 -10
- package/skills/uipath-platform/references/integration-service/http-request.md +15 -1
- package/skills/uipath-platform/references/integration-service/vendor-docs-registry.json +173 -0
- package/skills/uipath-platform/references/uip-commands.md +12 -3
- package/skills/uipath-review/SKILL.md +53 -12
- package/skills/uipath-review/references/agents/agent-common-issues.md +1 -1
- package/skills/uipath-review/references/agents/agent-grading-rubric.md +133 -0
- package/skills/uipath-review/references/agents/agent-review-checklist.md +23 -3
- package/skills/uipath-review/references/agents/agents-coded-rules.md +7 -0
- package/skills/uipath-review/references/agents/agents-lowcode-rules.md +13 -3
- package/skills/uipath-review/references/agents/guardrails/guardrails-review.md +198 -0
- package/skills/uipath-review/references/architecture-assessment-guide.md +2 -0
- package/skills/uipath-review/references/review-workflow-guide.md +9 -5
- package/skills/uipath-review/references/rule-catalog-workflow.md +3 -3
- package/skills/uipath-rpa/SKILL.md +7 -4
- package/skills/uipath-rpa/references/cli-reference.md +29 -1
- package/skills/uipath-rpa/references/connector-capabilities.md +2 -0
- package/skills/uipath-rpa/references/data-manipulation-guide.md +311 -0
- package/skills/uipath-rpa/references/environment-setup.md +0 -2
- package/skills/uipath-rpa/references/is-connector-xaml-guide.md +127 -11
- package/skills/uipath-rpa/references/ui-automation-guide.md +129 -18
- package/skills/uipath-rpa/references/uia-configure-target-workflows.md +22 -1
- package/skills/uipath-rpa/references/uia-elements-interaction-guide.md +93 -0
- package/skills/uipath-rpa/references/xaml/canvas-layout-guide.md +41 -4
- package/skills/uipath-rpa/references/xaml/common-pitfalls.md +12 -3
- package/skills/uipath-rpa/references/xaml/flowchart-guide.md +113 -0
- package/skills/uipath-rpa/references/xaml/xaml-basics-and-rules.md +5 -9
- package/skills/uipath-solution/SKILL.md +11 -8
- package/skills/uipath-solution/references/pack-and-deploy.md +18 -1
- package/skills/uipath-solution/references/solution-overview.md +3 -0
- package/skills/uipath-test/SKILL.md +2 -1
- package/skills/uipath-troubleshoot/SKILL.md +24 -26
- package/skills/uipath-troubleshoot/agents/depth-verifier.md +24 -25
- package/skills/uipath-troubleshoot/agents/hypothesis-generator.md +8 -4
- package/skills/uipath-troubleshoot/agents/hypothesis-tester.md +85 -38
- package/skills/uipath-troubleshoot/agents/presenter.md +7 -7
- package/skills/uipath-troubleshoot/agents/scope-checker.md +3 -6
- package/skills/uipath-troubleshoot/agents/shared.md +26 -21
- package/skills/uipath-troubleshoot/agents/triage.md +117 -49
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/investigation_guide.md +43 -0
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/overview.md +57 -0
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-action-failed-after-find.md +100 -0
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-cell-targeting-failures.md +111 -0
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-element-not-found.md +125 -0
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-get-text-empty-or-wrong-result.md +117 -0
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-invalid-descriptor.md +102 -0
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-scope-setup-failures.md +136 -0
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-scroll-search-failures.md +114 -0
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-server-auth-throttling-network.md +95 -0
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-silent-failures-and-false-results.md +124 -0
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/presentation.md +8 -0
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/summary.md +15 -0
- package/skills/uipath-troubleshoot/references/activity-packages/database-activities/investigation_guide.md +42 -0
- package/skills/uipath-troubleshoot/references/activity-packages/database-activities/overview.md +41 -0
- package/skills/uipath-troubleshoot/references/activity-packages/database-activities/playbooks/connect-to-database-failures.md +104 -0
- package/skills/uipath-troubleshoot/references/activity-packages/database-activities/playbooks/execute-non-query-failures.md +97 -0
- package/skills/uipath-troubleshoot/references/activity-packages/database-activities/playbooks/execute-query-failures.md +134 -0
- package/skills/uipath-troubleshoot/references/activity-packages/database-activities/playbooks/start-transaction-failures.md +94 -0
- package/skills/uipath-troubleshoot/references/activity-packages/database-activities/presentation.md +10 -0
- package/skills/uipath-troubleshoot/references/activity-packages/database-activities/summary.md +10 -0
- package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/investigation_guide.md +27 -9
- package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/overview.md +51 -10
- package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/playbooks/append-range-failures.md +146 -0
- package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/playbooks/delete-range-failures.md +126 -0
- package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/playbooks/excel-application-card-failures.md +139 -0
- package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/playbooks/excel-application-scope-failures.md +118 -0
- package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/playbooks/execute-macro-failures.md +149 -0
- package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/playbooks/write-range-failures.md +145 -0
- package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/presentation.md +12 -7
- package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/summary.md +6 -0
- package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/investigation_guide.md +1 -0
- package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/overview.md +12 -4
- package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/playbooks/connection-and-auth-failures.md +55 -0
- package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/playbooks/drive-file-not-found.md +18 -10
- package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/playbooks/get-newest-email-not-found.md +9 -8
- package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/playbooks/invalid-or-null-input.md +68 -0
- package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/playbooks/transient-and-timeout-errors.md +52 -0
- package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/playbooks/upload-storage-quota-exceeded.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/summary.md +5 -2
- package/skills/uipath-troubleshoot/references/activity-packages/mail-activities/overview.md +28 -0
- package/skills/uipath-troubleshoot/references/activity-packages/mail-activities/playbooks/delete-outlook-mail-failures.md +105 -0
- package/skills/uipath-troubleshoot/references/activity-packages/mail-activities/playbooks/get-outlook-mail-failures.md +109 -0
- package/skills/uipath-troubleshoot/references/activity-packages/mail-activities/playbooks/move-outlook-mail-failures.md +97 -0
- package/skills/uipath-troubleshoot/references/activity-packages/mail-activities/playbooks/send-outlook-mail-failures.md +95 -0
- package/skills/uipath-troubleshoot/references/activity-packages/mail-activities/summary.md +8 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/investigation_guide.md +23 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/overview.md +9 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/application-scope-misconfigured.md +49 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/authentication-token-invalid.md +53 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/copy-item-argument-null.md +34 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/create-folder-invalid-path.md +36 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/download-file-conversion-or-destination.md +40 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/drive-item-not-found.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/email-trigger-connection-event-failure.md +45 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/insufficient-graph-scope.md +44 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/legacy-mail-null-reference.md +43 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/mail-folder-not-found.md +4 -3
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/mail-invalid-odata-query.md +43 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/mail-message-not-found.md +45 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/request-throttled.md +45 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/send-mail-rejected.md +52 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/transient-service-error.md +48 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/upload-file-quota-or-size.md +47 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/summary.md +15 -1
- package/skills/uipath-troubleshoot/references/activity-packages/python-activities/investigation_guide.md +32 -0
- package/skills/uipath-troubleshoot/references/activity-packages/python-activities/overview.md +38 -0
- package/skills/uipath-troubleshoot/references/activity-packages/python-activities/playbooks/invoke-method-failures.md +57 -0
- package/skills/uipath-troubleshoot/references/activity-packages/python-activities/playbooks/invoke-python-method-pipe-is-broken.md +44 -0
- package/skills/uipath-troubleshoot/references/activity-packages/python-activities/playbooks/load-script-failures.md +62 -0
- package/skills/uipath-troubleshoot/references/activity-packages/python-activities/playbooks/python-path-not-valid.md +39 -0
- package/skills/uipath-troubleshoot/references/activity-packages/python-activities/playbooks/python-scope-architecture-version-mismatch.md +41 -0
- package/skills/uipath-troubleshoot/references/activity-packages/python-activities/playbooks/working-folder-relative-path.md +34 -0
- package/skills/uipath-troubleshoot/references/activity-packages/python-activities/presentation.md +9 -0
- package/skills/uipath-troubleshoot/references/activity-packages/python-activities/summary.md +12 -0
- package/skills/uipath-troubleshoot/references/activity-packages/system-activities/playbooks/get-asset-activity-bug-silent-failure.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/system-activities/playbooks/get-asset-robot-not-authenticated.md +29 -22
- package/skills/uipath-troubleshoot/references/activity-packages/system-activities/summary.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/investigation_guide.md +30 -0
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/overview.md +36 -0
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/deserialize-malformed-input.md +36 -0
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/deserialize-null-input.md +35 -0
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/deserialize-type-mismatch.md +40 -0
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/http-client-null-reference.md +34 -0
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/http-request-connection-failure.md +48 -0
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/http-request-timeout.md +40 -0
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/net-http-request-aggregate-failure.md +38 -0
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/summary.md +13 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/investigation_guide.md +55 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/overview.md +82 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/add-picture-failures.md +51 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/append-text-missing-container.md +31 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/append-text-zero-byte-file.md +32 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/export-pdf-com-hang.md +46 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/export-pdf-missing-output-dir.md +32 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/export-pdf-output-path-format.md +35 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/read-text-doc-format.md +30 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/read-text-missing-container.md +29 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/read-text-protected-view.md +32 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/replace-text-com-busy.md +35 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/replace-text-file-locked.md +33 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/replace-text-headers-textboxes-skipped.md +30 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/replace-text-length-limit.md +30 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/replace-text-loop-template-overwrite.md +31 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/replace-text-multiline-formatting.md +31 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/replace-text-silent-no-substitution.md +32 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/replace-text-version-mismatch.md +30 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/word-com-interop-failures.md +52 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/word-com-start-background-session0.md +50 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/word-export-pdf-com-wrong-thread.md +46 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/word-open-sharepoint-url-com-command-failed.md +45 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/word-scope-cannot-create-unknown-type.md +30 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/word-scope-com-not-installed.md +35 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/word-scope-file-corrupted.md +34 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/word-scope-file-path-not-found.md +36 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/word-scope-hangs-background-prompt.md +34 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/presentation.md +11 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/summary.md +38 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/investigation_guide.md +9 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/overview.md +7 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connection-invalid.md +9 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connector-aggregate-exception.md +30 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connector-general-exception.md +43 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connector-null-reference.md +36 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connector-remote-exception.md +31 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connector-runtime-exception.md +40 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/summary.md +5 -0
- package/skills/uipath-troubleshoot/references/products/maestro/investigation_guide.md +2 -1
- package/skills/uipath-troubleshoot/references/products/orchestrator/investigation_guide.md +105 -10
- package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/job-faulted-logon-failure.md +1 -1
- package/skills/uipath-troubleshoot/references/summary.md +59 -3
- package/skills/uipath-troubleshoot/schemas/evidence.schema.md +48 -0
- package/skills/uipath-troubleshoot/schemas/hypotheses.schema.md +22 -7
- package/skills/uipath-troubleshoot/schemas/scope-check.schema.md +1 -1
- package/skills/uipath-troubleshoot/schemas/state.schema.md +81 -6
- package/version-manifest.json +2 -2
- package/skills/uipath-data-fabric/SKILL.md +0 -239
- package/skills/uipath-data-fabric/references/file-attachments.md +0 -65
- package/skills/uipath-maestro-bpmn/.maintenance/README.md +0 -241
- package/skills/uipath-maestro-bpmn/.maintenance/check-all.sh +0 -41
- package/skills/uipath-maestro-bpmn/.maintenance/check-anchors.sh +0 -83
- package/skills/uipath-maestro-bpmn/.maintenance/check-depth.sh +0 -132
- package/skills/uipath-maestro-bpmn/.maintenance/check-link-text.sh +0 -123
- package/skills/uipath-maestro-bpmn/.maintenance/check-links.sh +0 -70
- package/skills/uipath-maestro-bpmn/.maintenance/check-orphans.sh +0 -93
- package/skills/uipath-maestro-bpmn/.maintenance/check-plugin-pairs.sh +0 -39
- package/skills/uipath-maestro-bpmn/.maintenance/check-real-pack.sh +0 -79
- package/skills/uipath-maestro-bpmn/.maintenance/check-template.sh +0 -42
- package/skills/uipath-maestro-bpmn/.maintenance/check-uip-commands.sh +0 -266
- package/skills/uipath-maestro-bpmn/.maintenance/check-validation-fixtures.py +0 -1255
- package/skills/uipath-maestro-bpmn/.maintenance/check-validation-fixtures.sh +0 -8
- package/skills/uipath-maestro-bpmn/fixtures/validation/README.md +0 -94
- package/skills/uipath-maestro-bpmn/fixtures/validation/agent-invocation/agent-invocation.bpmn +0 -62
- package/skills/uipath-maestro-bpmn/fixtures/validation/agent-invocation/bindings_v2.json +0 -37
- package/skills/uipath-maestro-bpmn/fixtures/validation/agent-invocation/entry-points.json +0 -21
- package/skills/uipath-maestro-bpmn/fixtures/validation/agent-invocation/operate.json +0 -9
- package/skills/uipath-maestro-bpmn/fixtures/validation/agent-invocation/package-descriptor.json +0 -10
- package/skills/uipath-maestro-bpmn/fixtures/validation/agent-invocation/project.uiproj +0 -7
- package/skills/uipath-maestro-bpmn/fixtures/validation/contract-variants/bindings_v2.json +0 -68
- package/skills/uipath-maestro-bpmn/fixtures/validation/contract-variants/contract-variants.bpmn +0 -270
- package/skills/uipath-maestro-bpmn/fixtures/validation/contract-variants/entry-points.json +0 -25
- package/skills/uipath-maestro-bpmn/fixtures/validation/contract-variants/operate.json +0 -9
- package/skills/uipath-maestro-bpmn/fixtures/validation/contract-variants/package-descriptor.json +0 -10
- package/skills/uipath-maestro-bpmn/fixtures/validation/contract-variants/project.uiproj +0 -7
- package/skills/uipath-maestro-bpmn/fixtures/validation/gateway-boundary-error/bindings_v2.json +0 -19
- package/skills/uipath-maestro-bpmn/fixtures/validation/gateway-boundary-error/entry-points.json +0 -25
- package/skills/uipath-maestro-bpmn/fixtures/validation/gateway-boundary-error/gateway-boundary-error.bpmn +0 -91
- package/skills/uipath-maestro-bpmn/fixtures/validation/gateway-boundary-error/operate.json +0 -9
- package/skills/uipath-maestro-bpmn/fixtures/validation/gateway-boundary-error/package-descriptor.json +0 -10
- package/skills/uipath-maestro-bpmn/fixtures/validation/gateway-boundary-error/project.uiproj +0 -7
- package/skills/uipath-maestro-bpmn/fixtures/validation/imported-brownfield-preservation/bindings_v2.json +0 -4
- package/skills/uipath-maestro-bpmn/fixtures/validation/imported-brownfield-preservation/entry-points.json +0 -25
- package/skills/uipath-maestro-bpmn/fixtures/validation/imported-brownfield-preservation/imported-brownfield-preservation.bpmn +0 -63
- package/skills/uipath-maestro-bpmn/fixtures/validation/imported-brownfield-preservation/operate.json +0 -9
- package/skills/uipath-maestro-bpmn/fixtures/validation/imported-brownfield-preservation/package-descriptor.json +0 -10
- package/skills/uipath-maestro-bpmn/fixtures/validation/imported-brownfield-preservation/project.uiproj +0 -7
- package/skills/uipath-maestro-bpmn/fixtures/validation/integration-service-enriched/bindings_v2.json +0 -52
- package/skills/uipath-maestro-bpmn/fixtures/validation/integration-service-enriched/entry-points.json +0 -21
- package/skills/uipath-maestro-bpmn/fixtures/validation/integration-service-enriched/integration-service-enriched.bpmn +0 -65
- package/skills/uipath-maestro-bpmn/fixtures/validation/integration-service-enriched/operate.json +0 -9
- package/skills/uipath-maestro-bpmn/fixtures/validation/integration-service-enriched/package-descriptor.json +0 -10
- package/skills/uipath-maestro-bpmn/fixtures/validation/integration-service-enriched/project.uiproj +0 -7
- package/skills/uipath-maestro-bpmn/fixtures/validation/linear-process/bindings_v2.json +0 -4
- package/skills/uipath-maestro-bpmn/fixtures/validation/linear-process/entry-points.json +0 -25
- package/skills/uipath-maestro-bpmn/fixtures/validation/linear-process/linear-process.bpmn +0 -55
- package/skills/uipath-maestro-bpmn/fixtures/validation/linear-process/operate.json +0 -9
- package/skills/uipath-maestro-bpmn/fixtures/validation/linear-process/package-descriptor.json +0 -10
- package/skills/uipath-maestro-bpmn/fixtures/validation/linear-process/project.uiproj +0 -7
- package/skills/uipath-maestro-bpmn/fixtures/validation/registry-coverage-matrix/bindings_v2.json +0 -20
- package/skills/uipath-maestro-bpmn/fixtures/validation/registry-coverage-matrix/entry-points.json +0 -17
- package/skills/uipath-maestro-bpmn/fixtures/validation/registry-coverage-matrix/operate.json +0 -9
- package/skills/uipath-maestro-bpmn/fixtures/validation/registry-coverage-matrix/package-descriptor.json +0 -10
- package/skills/uipath-maestro-bpmn/fixtures/validation/registry-coverage-matrix/project.uiproj +0 -7
- package/skills/uipath-maestro-bpmn/fixtures/validation/registry-coverage-matrix/registry-coverage-matrix.bpmn +0 -207
- package/skills/uipath-maestro-bpmn/fixtures/validation/subprocess-multi-instance/bindings_v2.json +0 -4
- package/skills/uipath-maestro-bpmn/fixtures/validation/subprocess-multi-instance/entry-points.json +0 -33
- package/skills/uipath-maestro-bpmn/fixtures/validation/subprocess-multi-instance/operate.json +0 -9
- package/skills/uipath-maestro-bpmn/fixtures/validation/subprocess-multi-instance/package-descriptor.json +0 -10
- package/skills/uipath-maestro-bpmn/fixtures/validation/subprocess-multi-instance/project.uiproj +0 -7
- package/skills/uipath-maestro-bpmn/fixtures/validation/subprocess-multi-instance/subprocess-multi-instance.bpmn +0 -94
- package/skills/uipath-maestro-bpmn/fixtures/validation/wrapper-family-contract/bindings_v2.json +0 -124
- package/skills/uipath-maestro-bpmn/fixtures/validation/wrapper-family-contract/entry-points.json +0 -25
- package/skills/uipath-maestro-bpmn/fixtures/validation/wrapper-family-contract/operate.json +0 -9
- package/skills/uipath-maestro-bpmn/fixtures/validation/wrapper-family-contract/package-descriptor.json +0 -10
- package/skills/uipath-maestro-bpmn/fixtures/validation/wrapper-family-contract/project.uiproj +0 -7
- package/skills/uipath-maestro-bpmn/fixtures/validation/wrapper-family-contract/wrapper-family-contract.bpmn +0 -151
- package/skills/uipath-maestro-bpmn/references/author/CAPABILITY.md +0 -141
- package/skills/uipath-maestro-bpmn/references/author/references/brownfield.md +0 -48
- package/skills/uipath-maestro-bpmn/references/author/references/editing-operations.md +0 -75
- package/skills/uipath-maestro-bpmn/references/author/references/greenfield.md +0 -41
- package/skills/uipath-maestro-bpmn/references/author/references/planning-arch.md +0 -82
- package/skills/uipath-maestro-bpmn/references/author/references/planning-impl.md +0 -104
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/agents/impl.md +0 -34
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/agents/planning.md +0 -38
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/api-workflows/impl.md +0 -37
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/api-workflows/planning.md +0 -28
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/business-rules/impl.md +0 -36
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/business-rules/planning.md +0 -29
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/call-activity-subprocess/impl.md +0 -67
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/call-activity-subprocess/planning.md +0 -29
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/connectors/impl.md +0 -29
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/connectors/planning.md +0 -33
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/gateways/impl.md +0 -32
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/gateways/planning.md +0 -34
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/hitl/impl.md +0 -42
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/hitl/planning.md +0 -30
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/integration-service/impl.md +0 -134
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/integration-service/planning.md +0 -67
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/multi-instance/impl.md +0 -50
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/multi-instance/planning.md +0 -29
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/queues/impl.md +0 -29
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/queues/planning.md +0 -29
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/rpa-jobs/impl.md +0 -35
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/rpa-jobs/planning.md +0 -29
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/script/impl.md +0 -118
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/script/planning.md +0 -30
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/sequence-flows/impl.md +0 -30
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/sequence-flows/planning.md +0 -30
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/service-tasks/impl.md +0 -33
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/service-tasks/planning.md +0 -31
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/signals/impl.md +0 -33
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/signals/planning.md +0 -46
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/start-end-events/impl.md +0 -59
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/start-end-events/planning.md +0 -37
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/waits-triggers/impl.md +0 -40
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/waits-triggers/planning.md +0 -34
- package/skills/uipath-maestro-bpmn/references/author/references/supported-elements.md +0 -123
- package/skills/uipath-maestro-bpmn/references/author/references/task-recipes/README.md +0 -29
- package/skills/uipath-maestro-bpmn/references/author/references/task-recipes/agent-job.md +0 -36
- package/skills/uipath-maestro-bpmn/references/author/references/task-recipes/api-workflow.md +0 -29
- package/skills/uipath-maestro-bpmn/references/author/references/task-recipes/business-rule.md +0 -18
- package/skills/uipath-maestro-bpmn/references/author/references/task-recipes/call-activity.md +0 -56
- package/skills/uipath-maestro-bpmn/references/author/references/task-recipes/hitl.md +0 -17
- package/skills/uipath-maestro-bpmn/references/author/references/task-recipes/http-request.md +0 -119
- package/skills/uipath-maestro-bpmn/references/author/references/task-recipes/queue.md +0 -21
- package/skills/uipath-maestro-bpmn/references/author/references/task-recipes/rpa-job.md +0 -23
- package/skills/uipath-maestro-bpmn/references/author/references/validation.md +0 -118
- package/skills/uipath-maestro-bpmn/references/shared/bpmn-xml-contract.md +0 -197
- package/skills/uipath-maestro-bpmn/references/shared/cli-conventions.md +0 -46
- package/skills/uipath-maestro-bpmn/references/shared/error-handling.md +0 -82
- package/skills/uipath-maestro-bpmn/references/shared/variables-bindings-expressions.md +0 -150
- package/skills/uipath-maestro-bpmn/references/shared/wrapper-shells.md +0 -554
- /package/skills/uipath-maestro-bpmn/references/{shared/expression-authoring.md → expression-authoring.md} +0 -0
- /package/skills/uipath-maestro-bpmn/references/{shared/public-safety.md → public-safety.md} +0 -0
|
@@ -4,6 +4,8 @@ Add guardrails to a Python coded agent (LangChain/LangGraph) in two styles: **mi
|
|
|
4
4
|
|
|
5
5
|
> **The user tells you which guardrail to add. You derive the full list of available guardrails and their configuration from the official documentation — fetch it at the start of every task.**
|
|
6
6
|
|
|
7
|
+
> **Validating or fixing an EXISTING guardrail? Start elsewhere.** If the task is to check / diagnose whether a guardrail is configured correctly, or to fix a misplaced / misconfigured one (even if you will also edit code), follow [guardrails-recommend.md § Validate Mode](guardrails-recommend.md) FIRST — that workflow is mandatory for diagnosis. This page covers adding a **new** guardrail.
|
|
8
|
+
|
|
7
9
|
---
|
|
8
10
|
|
|
9
11
|
## Step 0 — Fetch Official Documentation
|
|
@@ -22,6 +24,15 @@ Add guardrails to a Python coded agent (LangChain/LangGraph) in two styles: **mi
|
|
|
22
24
|
- Entity type names or their allowed values
|
|
23
25
|
- Import paths
|
|
24
26
|
|
|
27
|
+
When available, the `langchain/guardrails/` page documents three actions — **`LogAction`**, **`BlockAction`**, and
|
|
28
|
+
**`EscalateAction`** (human-in-the-loop). Treat the fetched page as the source of truth for `EscalateAction`'s
|
|
29
|
+
parameters, supported scopes, and stages; the operational wiring it doesn't cover (the suspend->resume UX, the
|
|
30
|
+
Action-App prerequisite, `bindings.json`, recipient routing) is in [Escalation action (HITL)](#escalation-action-human-in-the-loop) below.
|
|
31
|
+
|
|
32
|
+
If the fetched SDK docs do **not** expose `EscalateAction` or its constructor parameters, stop and report that the
|
|
33
|
+
installed/published SDK documentation does not currently support HITL guardrail escalation. Do not generate
|
|
34
|
+
`EscalateAction` code from memory or from this operational section alone.
|
|
35
|
+
|
|
25
36
|
---
|
|
26
37
|
|
|
27
38
|
## Check Tenant Availability (mandatory for built-in AI validators)
|
|
@@ -87,13 +98,16 @@ Before writing the import line, identify the framework by reading the agent code
|
|
|
87
98
|
```python
|
|
88
99
|
from uipath_langchain.guardrails import (
|
|
89
100
|
guardrail,
|
|
90
|
-
BlockAction, LogAction,
|
|
101
|
+
BlockAction, LogAction, EscalateAction,
|
|
91
102
|
PIIValidator, PIIDetectionEntity, PIIDetectionEntityType,
|
|
92
103
|
HarmfulContentValidator, HarmfulContentEntity, HarmfulContentEntityType,
|
|
93
104
|
UserPromptAttacksValidator,
|
|
94
105
|
GuardrailExecutionStage,
|
|
95
106
|
# ...only the names you actually use
|
|
96
107
|
)
|
|
108
|
+
from uipath.core.guardrails import GuardrailScope
|
|
109
|
+
# Only when routing an EscalateAction task to a specific reviewer:
|
|
110
|
+
from uipath.platform.action_center.tasks import TaskRecipient, TaskRecipientType
|
|
97
111
|
```
|
|
98
112
|
|
|
99
113
|
❌ `from uipath.platform.guardrails import guardrail, PIIValidator, ...` in a LangChain agent — type-checks but the LangChain adapter never registers; guardrails silently no-op.
|
|
@@ -140,6 +154,49 @@ When the fetched docs show a middleware supports TOOL scope, it requires passing
|
|
|
140
154
|
),
|
|
141
155
|
```
|
|
142
156
|
|
|
157
|
+
### LLM- / Agent-scoped middleware
|
|
158
|
+
|
|
159
|
+
Pass `scopes=[GuardrailScope.LLM]` or `[GuardrailScope.AGENT]`. No `tools=`.
|
|
160
|
+
|
|
161
|
+
```python
|
|
162
|
+
*SomeMiddlewareClass(
|
|
163
|
+
name="...",
|
|
164
|
+
scopes=[GuardrailScope.LLM], # or GuardrailScope.AGENT
|
|
165
|
+
action=...,
|
|
166
|
+
),
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
`scopes` is required on most middleware. Exceptions: LLM-only validators (`UiPathUserPromptAttacksMiddleware`, `UiPathPromptInjectionMiddleware`) make `scopes` optional — it defaults to LLM. Passing `scopes=[GuardrailScope.LLM]` and omitting it are equivalent; AGENT/TOOL are rejected.
|
|
170
|
+
|
|
171
|
+
### Stage is fixed by the validator — no `stage=` on middleware
|
|
172
|
+
|
|
173
|
+
Middleware classes take **no `stage` argument**. Each validator's stage is fixed: input validators (`user_prompt_attacks`, `prompt_injection`, input PII) run PRE; `intellectual_property` runs POST (output-only). Adding `stage=GuardrailExecutionStage....` to a middleware call raises `TypeError`. Only the **decorator** (`@guardrail`) accepts `stage=`.
|
|
174
|
+
|
|
175
|
+
### Intellectual property (output-only) middleware
|
|
176
|
+
|
|
177
|
+
> **`scopes=` is REQUIRED** on `UiPathIntellectualPropertyMiddleware` (and on PII / harmful-content middleware). It has no default — omitting it raises `TypeError: missing 1 required positional argument: 'scopes'`. Always pass `scopes=[GuardrailScope.LLM]` or `[GuardrailScope.AGENT]` (Tool not supported).
|
|
178
|
+
|
|
179
|
+
```python
|
|
180
|
+
from uipath_langchain.guardrails import (
|
|
181
|
+
BlockAction,
|
|
182
|
+
UiPathIntellectualPropertyMiddleware,
|
|
183
|
+
IntellectualPropertyEntityType,
|
|
184
|
+
)
|
|
185
|
+
from uipath.core.guardrails import GuardrailScope
|
|
186
|
+
|
|
187
|
+
*UiPathIntellectualPropertyMiddleware(
|
|
188
|
+
name="Intellectual property",
|
|
189
|
+
scopes=[GuardrailScope.LLM], # REQUIRED — LLM or AGENT; Tool not supported
|
|
190
|
+
action=BlockAction(),
|
|
191
|
+
entities=[
|
|
192
|
+
IntellectualPropertyEntityType.TEXT,
|
|
193
|
+
IntellectualPropertyEntityType.CODE,
|
|
194
|
+
],
|
|
195
|
+
),
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
Runs at POST (checks the LLM's output) — fixed by the validator, not a parameter.
|
|
199
|
+
|
|
143
200
|
---
|
|
144
201
|
|
|
145
202
|
## Decorator Style — Code Patterns
|
|
@@ -203,6 +260,83 @@ If `create_agent()` is called directly at module level (not in a function), wrap
|
|
|
203
260
|
|
|
204
261
|
---
|
|
205
262
|
|
|
263
|
+
## Escalation action (human-in-the-loop)
|
|
264
|
+
|
|
265
|
+
`EscalateAction` is a third action (beside `LogAction` / `BlockAction`) that turns a violation into a **human
|
|
266
|
+
review step**: it suspends the run via `interrupt(CreateEscalation(...))`, creates a review task in a UiPath
|
|
267
|
+
**Action App**, and resumes when a human **Approves** (optionally editing the flagged content — the reviewer's
|
|
268
|
+
`ReviewedInputs` at PRE / `ReviewedOutputs` at POST is substituted back) or **Rejects** (raises → terminates,
|
|
269
|
+
like `BlockAction`). Get the exact parameters / supported scopes / stages from the fetched
|
|
270
|
+
`langchain/guardrails/` page; this section is the operational wiring that page doesn't cover.
|
|
271
|
+
|
|
272
|
+
**The same `EscalateAction` works in both styles** — pass it as the `action`:
|
|
273
|
+
|
|
274
|
+
```python
|
|
275
|
+
# Middleware (no stage= — fixed by the validator)
|
|
276
|
+
*UiPathPIIDetectionMiddleware(
|
|
277
|
+
name="PII escalation",
|
|
278
|
+
scopes=[GuardrailScope.AGENT],
|
|
279
|
+
action=EscalateAction(
|
|
280
|
+
app_name="Guardrail.Escalation.Action.App",
|
|
281
|
+
app_folder_path="Shared",
|
|
282
|
+
# optional — route the task; default assignment otherwise
|
|
283
|
+
recipient=TaskRecipient(type=TaskRecipientType.EMAIL, value="reviewer@example.com"),
|
|
284
|
+
),
|
|
285
|
+
entities=[PIIDetectionEntity(PIIDetectionEntityType.EMAIL, 0.5)],
|
|
286
|
+
),
|
|
287
|
+
|
|
288
|
+
# Decorator — identical action, on a @tool / LLM factory / agent factory
|
|
289
|
+
@guardrail(
|
|
290
|
+
validator=PIIValidator(entities=[PIIDetectionEntity(PIIDetectionEntityType.EMAIL, 0.5)]),
|
|
291
|
+
action=EscalateAction(app_name="Guardrail.Escalation.Action.App", app_folder_path="Shared"),
|
|
292
|
+
name="PII escalation",
|
|
293
|
+
stage=GuardrailExecutionStage.PRE,
|
|
294
|
+
)
|
|
295
|
+
def create_my_agent(): ...
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
`EscalateAction` is **action-only** — it works with any validator, including deterministic
|
|
299
|
+
`CustomValidator(...)` rules (no AI-validator / tenant dependency for the validator itself).
|
|
300
|
+
|
|
301
|
+
### Prerequisite — the Action App must exist and be declared in `bindings.json`
|
|
302
|
+
|
|
303
|
+
Unlike Block/Log, escalation needs a **deployed Action App** in the tenant, referenced by `app_name` +
|
|
304
|
+
`app_folder_path`. This is the **correct design** (not env vars):
|
|
305
|
+
|
|
306
|
+
1. Discover the deployed app: `uip solution resources list --kind App --search "<app-name>" --output json`
|
|
307
|
+
(filter `"Type": "Workflow Action"`); note its `Name` and `Folder`. If it isn't deployed, tell the user — the
|
|
308
|
+
escalation fails at runtime otherwise. If multiple deployed Workflow Action apps share the same `Name` in
|
|
309
|
+
different folders, ask which folder to use.
|
|
310
|
+
2. Pass those literal values to `EscalateAction(app_name=..., app_folder_path=...)`.
|
|
311
|
+
3. Verify the app exposes the guardrail escalation action-schema contract before claiming it is runtime-ready:
|
|
312
|
+
inputs `GuardrailName`, `GuardrailDescription`, `TenantName`, `AgentTrace`, `Tool`, `ExecutionStage`,
|
|
313
|
+
`ToolInputs`, `ToolOutputs`; outputs `ReviewedInputs`, `ReviewedOutputs`, `Reason`; outcomes `Approve`,
|
|
314
|
+
`Reject`. If tenant/API access is unavailable in a local smoke task, author the structural code only when the
|
|
315
|
+
user supplied the exact app name/folder, and report that the deployed app schema was not verified.
|
|
316
|
+
4. Sync the project's **`bindings.json`** with the code using
|
|
317
|
+
[../../lifecycle/bindings-reference.md](../../lifecycle/bindings-reference.md). Coded-agent bindings are derived
|
|
318
|
+
from resource-bearing code and must not be hand-authored ad hoc. The result must include a `resource: "app"`
|
|
319
|
+
entry so Studio/deploy can resolve and override the Action App (locally the literals are used). Canonical
|
|
320
|
+
examples: `samples/joke-agent/` (middleware) and `samples/joke-agent-decorator/` (decorator) in the
|
|
321
|
+
uipath-langchain repo — each ships a `bindings.json` with the escalation app and the literal
|
|
322
|
+
`app_name`/`app_folder_path` in code.
|
|
323
|
+
|
|
324
|
+
### Escalation Action UX
|
|
325
|
+
|
|
326
|
+
`EscalateAction` does **not** raise on violation (unlike `BlockAction`) — it **suspends** the run. Under local
|
|
327
|
+
`uip codedagent run` a violation prints a `CreateEscalation` interrupt and the run pauses (no traceback); resume after
|
|
328
|
+
acting on the task in Action Center:
|
|
329
|
+
|
|
330
|
+
```bash
|
|
331
|
+
uip codedagent run <ENTRYPOINT> --resume
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
On resume: **Approve** continues (with the reviewer's optional edit applied); **Reject** raises
|
|
335
|
+
`AgentRuntimeError` and terminates the run. This is expected — distinct from `BlockAction` (immediate raise) and
|
|
336
|
+
`LogAction` (logs, no control-flow change).
|
|
337
|
+
|
|
338
|
+
---
|
|
339
|
+
|
|
206
340
|
## Verify Guardrails Are Actually Wired (mandatory after writing)
|
|
207
341
|
|
|
208
342
|
**Syntactically valid ≠ active.** Because importing from the wrong module bypasses the framework adapter and makes guardrails silently no-op (see [Imports Pattern](#imports-pattern)), `ast.parse` passing tells you nothing about whether a single guardrail will ever fire. After writing, prove the wiring at runtime.
|
|
@@ -224,6 +358,8 @@ If either check fails, the most likely cause is importing guardrail symbols from
|
|
|
224
358
|
For non-LangChain frameworks, there is no published adapter yet, so the decorator/middleware mechanism does not produce a `_Guarded*` wrap. Verify by invoking the validator directly on a known-violating input and confirming it raises / logs.
|
|
225
359
|
|
|
226
360
|
> A smoke run that deliberately triggers a violation (e.g. feed a PII-bearing input and confirm it blocks) is the strongest verification when the environment is authenticated against the tenant.
|
|
361
|
+
>
|
|
362
|
+
> **For an `EscalateAction` guardrail the outcome differs:** a violating input **suspends** the run with a `CreateEscalation` interrupt — it does not block. Verify by confirming the run suspends and a review task is created, then that `uip codedagent run <ENTRYPOINT> --resume` continues after Approve / terminates after Reject. Don't expect a block/traceback.
|
|
227
363
|
|
|
228
364
|
---
|
|
229
365
|
|
|
@@ -248,3 +384,7 @@ For non-LangChain frameworks, there is no published adapter yet, so the decorato
|
|
|
248
384
|
11. **Deterministic guardrails run locally** — no backend API call, no tenant availability check needed.
|
|
249
385
|
12. **Do not duplicate existing guardrails** — read the agent code first and skip if the same guardrail is already configured.
|
|
250
386
|
13. **Do not delegate the import-source decision (or guardrail authoring) to a subagent.** A dispatched subagent does not carry this skill's context and will report the module where the symbols physically live (`uipath.platform.guardrails`) — the no-op path for LangChain agents (Rule 8). It looks authoritative and silently overrides the correct `uipath_langchain.guardrails` choice. Fetch the docs and write the imports inline, where this skill's import rule still applies.
|
|
387
|
+
14. **`EscalateAction` must come from the fetched SDK docs** — if the docs do not expose the class or constructor parameters, stop and report that HITL guardrail escalation is not available in the current SDK docs/runtime. Never invent the class, import path, or arguments.
|
|
388
|
+
15. **`EscalateAction` requires a deployed Action App** referenced by `app_name` + `app_folder_path` and declared as an `app` resource in **`bindings.json`** — discover it with `uip solution resources list --kind App`, resolve duplicate names by folder, pass the literal name/folder in code (not env vars), and sync bindings with [../../lifecycle/bindings-reference.md](../../lifecycle/bindings-reference.md). Route the task with `TaskRecipient` when the user names a reviewer. See [Escalation action (HITL)](#escalation-action-human-in-the-loop).
|
|
389
|
+
16. **Verify the escalation app schema when tenant access is available** — the app must expose the guardrail review inputs/outputs/outcomes listed in the prerequisite section. If the schema cannot be verified in a local smoke task, say that runtime readiness is unverified.
|
|
390
|
+
17. **A HITL guardrail suspends, it doesn't block.** On violation `EscalateAction` suspends via `interrupt(CreateEscalation(...))`; it terminates **only on Reject** (Approve resumes). Verify by confirming the run suspends + a task is created — never expect a "block" for an escalation guardrail (Rule for the [verification step](#verify-guardrails-are-actually-wired-mandatory-after-writing)).
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Pause agent execution for human approval, external processes, or job monitoring.
|
|
4
4
|
|
|
5
|
+
> **Guardrail-triggered escalation is separate.** If the human review should fire automatically on a *guardrail violation* (e.g. PII/harmful-content detected → send to a reviewer), use `EscalateAction` as a guardrail action — see [guardrails § Escalation action (HITL)](guardrails/guardrails.md#escalation-action-human-in-the-loop). This page covers **manual** pause points you place in agent code via `interrupt(...)`.
|
|
6
|
+
|
|
5
7
|
## Pause Patterns
|
|
6
8
|
|
|
7
9
|
**HITL pattern selection MUST be an interactive question unless the user named a specific pattern.** "Human in the loop", "approval", "confirmation", "review", "escalation" alone do NOT name a pattern.
|
|
@@ -34,7 +34,7 @@ Then, as needed:
|
|
|
34
34
|
Coded-specific layers:
|
|
35
35
|
|
|
36
36
|
1. **Reuse before discover** — grep cwd for existing `ActivityMetadata` constants before re-running describe.
|
|
37
|
-
2. **Present concrete options, then echo every pick.** At each stop point
|
|
37
|
+
2. **Present concrete options, then echo every pick.** At each stop point ask the user, presenting the actual candidates as concrete options (one per candidate: short label + one-line description, per the option-label format in the `uipath-platform` skill's `connectors.md`). Recommend the safest default; let the user choose. Never ask open-ended — derive options from the discovery output. After the pick, echo the chosen option back before the next step. Ambiguous answer or "other" → follow up to narrow; do not infer.
|
|
38
38
|
- **Stop points:** connector (multi-hit on `connectors list --filter`), curated-vs-raw object, ambiguous operation verb (`Update` vs `Replace`), parent-field `-f` values, custom-field-by-name with >1 candidate.
|
|
39
39
|
- Silent inference produces wrong-connector / wrong-form / wrong-customfield writes.
|
|
40
40
|
|
|
@@ -139,10 +139,10 @@ from uipath.platform.connections import ActivityMetadata, ActivityParameterLocat
|
|
|
139
139
|
|
|
140
140
|
def post_to_slack(channel: str, message: str) -> dict:
|
|
141
141
|
sdk = UiPath()
|
|
142
|
-
#
|
|
143
|
-
#
|
|
144
|
-
#
|
|
145
|
-
connection = sdk.connections.retrieve("
|
|
142
|
+
# The connection id (the `Id` from `uip is connections list`) — the same
|
|
143
|
+
# value as bindings.json `ConnectionId.defaultValue`. Let it raise; don't
|
|
144
|
+
# wrap in try/except.
|
|
145
|
+
connection = sdk.connections.retrieve("<connection_id>")
|
|
146
146
|
return sdk.connections.invoke_activity(
|
|
147
147
|
activity_metadata=SLACK_SEND_MESSAGE,
|
|
148
148
|
connection_id=connection.id,
|
|
@@ -151,7 +151,7 @@ def post_to_slack(channel: str, message: str) -> dict:
|
|
|
151
151
|
```
|
|
152
152
|
|
|
153
153
|
- **`activity_input` is the single bucket** for query, path, header, multipart, and body values. SDK routes by `parameter_location_info`. No `query=`/`path=`/`header=` kwarg exists.
|
|
154
|
-
- **`invoke_activity` calls `retrieve()` internally** (`_connections_service.py:675`)
|
|
154
|
+
- **`invoke_activity` calls `retrieve()` internally** (`_connections_service.py:675`). The pattern above (explicit retrieve, then pass `connection.id`) is preferred because it gives the agent a typed `Connection` for `metadata()` / `retrieve_token()`; one-shots can pass the connection id straight to `invoke_activity(connection_id="<connection_id>", ...)`.
|
|
155
155
|
- **Return value** is `response.json()` — keys mirror `responseFields[].name`. Flat connectors return top-level; some wrap in `Data` / `result`. Auto-traced via `@traced`; see [tracing.md](tracing.md).
|
|
156
156
|
- **Silent drops** — `None` values and any key not in `parameter_location_info` are skipped (`_connections_service.py:753-770`). Mistyped keys never surface as errors; echo-check writes per Error Handling § "Silent rename / typo".
|
|
157
157
|
|
|
@@ -198,7 +198,7 @@ Wrap `invoke_activity_async` in the framework's tool primitive — runtime body
|
|
|
198
198
|
|
|
199
199
|
## Connection Resolution — `bindings.json`
|
|
200
200
|
|
|
201
|
-
|
|
201
|
+
Write the connection's id (the `Id` from `uip is connections list`, a GUID) as the `retrieve()` argument in code AND as `ConnectionId.defaultValue` in `bindings.json` — the two must match. That way it resolves locally (no override) and `bindings.json` lets users rebind the resource per environment when deployed. `uip codedagent init` writes `resources: []` — author the connection entry after picking the connection.
|
|
202
202
|
|
|
203
203
|
Minimal connection entry (`uip codedagent init` writes `resources: []`; add this). The entry-type field is **`resource`** (NOT `type`) — the CLI bindings schema is `{ resource, key, value, metadata }`:
|
|
204
204
|
|
|
@@ -220,42 +220,28 @@ Full JSON schema lives in [`../lifecycle/bindings-reference.md`](../lifecycle/bi
|
|
|
220
220
|
|
|
221
221
|
- Entry type field is `resource` (`"resource": "connection"`), never `type` — matches every other binding entry.
|
|
222
222
|
- `key` is just `<CONNECTION_KEY>` (no `<NAME>.<FOLDER>` dot suffix used by other resources). Same string passed positionally to `retrieve()`.
|
|
223
|
-
- `value.ConnectionId.defaultValue` is the
|
|
223
|
+
- `value.ConnectionId.defaultValue` is the connection id — the same value passed to `retrieve()` in code (and the binding `key`). Capital-C `ConnectionId` (other resources use `name`); no `folderPath`.
|
|
224
224
|
- `metadata.UseConnectionService: "True"` is mandatory; `Connector: ""` (empty); `BindingsVersion: "2.2"` is the per-resource rev and is independent of the top-level envelope `version: "2.0"`.
|
|
225
225
|
- `uip codedagent deploy` repackages as `content/bindings_v2.json` — never hand-author that path.
|
|
226
226
|
|
|
227
|
-
###
|
|
227
|
+
### Connection value: code and bindings must match
|
|
228
228
|
|
|
229
|
-
|
|
229
|
+
Write the **same connection id** in code and in `bindings.json`:
|
|
230
230
|
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
"functions": { "main": "main.py:main" },
|
|
234
|
-
"runtime": {
|
|
235
|
-
"internalArguments": {
|
|
236
|
-
"resourceOverwrites": {
|
|
237
|
-
"connection.slack-triage": {
|
|
238
|
-
"connectionId": "<Id from `uip is connections list`>",
|
|
239
|
-
"folderKey": "<FolderKey from `uip is connections list`>"
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
```
|
|
231
|
+
- In code, pass it to `retrieve()` — `sdk.connections.retrieve("<connection_id>")`.
|
|
232
|
+
- In `bindings.json`, use it as the connection's `ConnectionId.defaultValue` (and the binding `key`).
|
|
246
233
|
|
|
247
|
-
|
|
234
|
+
Because they match, the agent resolves the connection both **locally** (run uses the code value directly, no override) and **when deployed** (`bindings.json` lets Studio Web / Orchestrator override the resource per environment). Get the connection id from the `Id` field of `uip is connections list --output json` (a GUID).
|
|
248
235
|
|
|
249
|
-
|
|
236
|
+
`Connection.element_instance_id` (needed for `sdk.connections.metadata()` calls) comes from the live IS API response after `retrieve()` — never hardcode it.
|
|
237
|
+
|
|
238
|
+
**Required outputs — every coded IS agent ships these three:**
|
|
250
239
|
|
|
251
240
|
| File | Read by | Must contain |
|
|
252
241
|
|---|---|---|
|
|
253
|
-
| `main.py` | runtime | lazy `UiPath()` (not module-scope), inline `ActivityMetadata` literal, `retrieve(<
|
|
254
|
-
| `bindings.json` | `uip codedagent deploy` | connection resource, `key
|
|
242
|
+
| `main.py` | runtime | lazy `UiPath()` (not module-scope), inline `ActivityMetadata` literal, `retrieve("<connection_id>")` + `invoke_activity` |
|
|
243
|
+
| `bindings.json` | `uip codedagent deploy` | connection resource, `key` + `ConnectionId.defaultValue` = the same connection id, `UseConnectionService: "True"` |
|
|
255
244
|
| `uipath.json` | `uip` pack/deploy | `functions`, `packOptions` |
|
|
256
|
-
| `__uipath/uipath.json` | `uipath run` (local) | `runtime.internalArguments.resourceOverwrites["connection.<KEY>"]` = `connectionId` + `folderKey` |
|
|
257
|
-
|
|
258
|
-
Omitting `__uipath/uipath.json` means the agent cannot run locally — incomplete, not optional. Personal-workspace connections also need `UIPATH_FOLDER_KEY=<KEY>` (`FolderKey` from `uip is connections list`) in the environment at local run.
|
|
259
245
|
|
|
260
246
|
## Error Handling
|
|
261
247
|
|
|
@@ -274,7 +260,7 @@ Network / 5xx are retried with exponential backoff by `BaseService.request`; onl
|
|
|
274
260
|
|
|
275
261
|
These six are the ones the SDK / IS / vendor will NOT tell you about. Positive guidance for everything else lives in the relevant section above; do not pad this list.
|
|
276
262
|
|
|
277
|
-
1. **
|
|
263
|
+
1. **Hardcoding `element_instance_id`.** The `element_instance_id` needed for `sdk.connections.metadata()` comes from the live `Connection.element_instance_id` after `retrieve()` — never hardcode it.
|
|
278
264
|
2. **Hand-authoring `object_path` / `method_name` / `body_fields`.** Curated activities rename fields silently between connector versions. Always source from `uip is resources describe` and re-run after upgrades. Sidecar-JSON literals also drift — keep `ActivityMetadata` literals inline in a `.py` file; `pack` bundles them and mypy / pyright catch shape errors at edit time.
|
|
279
265
|
3. **Typos and unknown keys in `activity_input`.** Anything not in `parameter_location_info` is silently dropped (`_connections_service.py:753-770`); the request goes out missing the field, vendor returns 2xx, the data is just gone. Echo-check writes by reading back the created object (see Error Handling § "Silent rename / typo").
|
|
280
266
|
4. **`invoke_activity` for trigger payloads.** IS-triggered jobs receive `EventArguments` as input — unwrap with `sdk.connections.retrieve_event_payload(event_args)` (`_connections_service.py:421`). Calling `invoke_activity` to "receive" anything is a category error.
|
|
@@ -51,11 +51,12 @@ Bindable resource types:
|
|
|
51
51
|
| `.context_grounding.*` (all methods: `retrieve`, `search`, `add_to_index`, `create_index`, etc.) | `(name="name", folder_path="folder")` | `index` | `name` or `index_name` |
|
|
52
52
|
| `.connections.retrieve` / `.retrieve_async` | `("connection_key")` | `connection` | `key` (positional) |
|
|
53
53
|
| `.mcp.retrieve` / `.retrieve_async` | `(slug="slug", folder_path="folder")` | `mcpServer` | `slug` |
|
|
54
|
+
| `EscalateAction(...)` (guardrail HITL action) | `(app_name="name", app_folder_path="folder", recipient=...)` | `app` | `app_name` |
|
|
54
55
|
| `interrupt(InvokeProcess(...))` (LangGraph HITL) | `(name="name", process_folder_path="folder", input_arguments={...})` | `process` | `name` |
|
|
55
56
|
| `interrupt(CreateTask(...))` (LangGraph HITL) | `(app_name="name", app_folder_path="folder", title="...", data={...})` | `app` | `app_name` |
|
|
56
57
|
| `interrupt(CreateEscalation(...))` (LangGraph HITL) | `(app_name="name", app_folder_path="folder", title="...", data={...})` | `app` | `app_name` |
|
|
57
58
|
|
|
58
|
-
> **
|
|
59
|
+
> **Guardrail and interrupt-based patterns also produce bindings.** Guardrail HITL escalation uses `EscalateAction(app_name=..., app_folder_path=...)`; LangGraph agents pause and delegate work via `interrupt(InvokeProcess|CreateTask|CreateEscalation(...))` imported from `uipath.platform.common`. These produce the **same binding entries** as their `sdk.processes.invoke` / `sdk.tasks.create` counterparts — same `resource` type, same key format, same `ActivityName`. Scan for the class/action names (`EscalateAction`, `InvokeProcess`, `CreateTask`, `CreateEscalation`) in addition to the `sdk.*` method calls. Note: `InvokeProcess` uses `process_folder_path` (not `folder_path`).
|
|
59
60
|
|
|
60
61
|
Use Grep to find calls matching these patterns across all project Python files. Then read the surrounding code to extract the literal string values for resource name and folder path.
|
|
61
62
|
|
|
@@ -65,7 +66,7 @@ Use Grep to find calls matching these patterns across all project Python files.
|
|
|
65
66
|
|
|
66
67
|
First check the project's pinned `uipath` version (see **SubType Metadata → Version-detection rule**). If `uipath < 2.10.58`, **skip SubType entirely** — emit no `SubType` for any binding, including `retrieve_credential*`.
|
|
67
68
|
|
|
68
|
-
If `uipath >= 2.10.58`, then for `retrieve_credential` / `retrieve_credential_async` calls always emit `"SubType": "credentialAsset"` — the method name is definitive. For all other calls, follow the full lookup procedure in the **SubType Metadata** section below: fetch metadata → filter by kind → disambiguate from code →
|
|
69
|
+
If `uipath >= 2.10.58`, then for `retrieve_credential` / `retrieve_credential_async` calls always emit `"SubType": "credentialAsset"` — the method name is definitive. For all other calls, follow the full lookup procedure in the **SubType Metadata** section below: fetch metadata → filter by kind → disambiguate from code → ask the user → omit `SubType` if the user skips or can't be asked. Omitting `SubType` is always safe — `uip codedagent push` still creates a virtual placeholder for supported kinds, just with the base `kind` only.
|
|
69
70
|
|
|
70
71
|
### Step 3: Compare with Existing Bindings
|
|
71
72
|
|
|
@@ -89,7 +90,7 @@ Each resource can optionally be linked to an entrypoint from `entry-points.json`
|
|
|
89
90
|
|
|
90
91
|
**Workflow:**
|
|
91
92
|
1. **Single entrypoint** — If `entry-points.json` contains exactly one entrypoint, automatically bind all resources to it. Add `EntryPointUniqueId` (preferred) or `EntryPointPath` (fallback). No need to ask the user.
|
|
92
|
-
2. **Multiple entrypoints** —
|
|
93
|
+
2. **Multiple entrypoints** — Ask the user once, presenting all detected resources and the entrypoint choices. Suggested phrasing:
|
|
93
94
|
|
|
94
95
|
> Which entrypoint should each of these resources be bound to? Choose one per resource, or `None` to leave it unbound.
|
|
95
96
|
> Resources: `<list: name + type>`
|
|
@@ -114,7 +115,7 @@ For the exact JSON structure of each resource type, see § bindings.json Referen
|
|
|
114
115
|
- Each resource entry has `resource`, `key`, `value`, and `metadata` fields
|
|
115
116
|
- The `key` is `<name>.<folder_path>` for most types, just `<connection_key>` for connections. When `folder_path` is empty, omit the dot separator — the key is just `<name>`
|
|
116
117
|
- `ActivityName` in metadata always uses the `_async` variant name
|
|
117
|
-
- Connection entries use a `ConnectionId` field in their binding `value` (other resource types use `name`) and have no `folderPath`. The `ConnectionId`'s `defaultValue` is the connection
|
|
118
|
+
- Connection entries use a `ConnectionId` field in their binding `value` (other resource types use `name`) and have no `folderPath`. The `ConnectionId`'s `defaultValue` is the connection's **id**.
|
|
118
119
|
- The `app` resource type uses the app name as `DisplayLabel`; all others use `"FullName"`
|
|
119
120
|
- `SubType` is an optional metadata field — see the **SubType Metadata** section for the full lookup procedure and the `retrieve_credential*` shortcut.
|
|
120
121
|
- Entrypoint fields (`EntryPointUniqueId`, `EntryPointPath`) are optional in any resource's `value` block, but when present must include a `displayName` set to the entrypoint's `filePath` from `entry-points.json`
|
|
@@ -149,8 +150,8 @@ After writing the updated `bindings.json`:
|
|
|
149
150
|
| Duplicate key in resources array | Same resource scanned from multiple code paths | Deduplicate — keep one entry per unique key |
|
|
150
151
|
| Missing project root | No `pyproject.toml` or `uipath.json` found | Verify the working directory is a UiPath agent project |
|
|
151
152
|
| Stale entries after refactor | Old resource calls removed but bindings.json not updated | Run the full sync workflow to detect and remove orphaned entries |
|
|
152
|
-
| Push creates wrong asset type as virtual resource | Missing `SubType` in metadata for a `retrieve_credential*` call | Add `"SubType": "credentialAsset"` to the asset's metadata and re-run `
|
|
153
|
-
| Push warns "was not found" for connection/mcpServer/index | These kinds do not support virtual-resource fallback | Create the resource in Orchestrator / Integration Service before running `
|
|
153
|
+
| Push creates wrong asset type as virtual resource | Missing `SubType` in metadata for a `retrieve_credential*` call | Add `"SubType": "credentialAsset"` to the asset's metadata and re-run `uip codedagent push` |
|
|
154
|
+
| Push warns "was not found" for connection/mcpServer/index | These kinds do not support virtual-resource fallback | Create the resource in Orchestrator / Integration Service before running `uip codedagent push` |
|
|
154
155
|
|
|
155
156
|
## Additional Instructions
|
|
156
157
|
|
|
@@ -253,7 +254,7 @@ When the SDK call is `retrieve_credential` or `retrieve_credential_async`, add `
|
|
|
253
254
|
}
|
|
254
255
|
```
|
|
255
256
|
|
|
256
|
-
This SubType is required for `
|
|
257
|
+
This SubType is required for `uip codedagent push` to create a credential-asset placeholder (rather than a plain string asset) when the asset doesn't yet exist in Orchestrator.
|
|
257
258
|
|
|
258
259
|
---
|
|
259
260
|
|
|
@@ -456,7 +457,27 @@ task = sdk.tasks.create(title="...", data={...}, app_name="app_name", app_folder
|
|
|
456
457
|
- `app_name` — keyword argument `app_name=`
|
|
457
458
|
- `app_folder_path` — keyword argument `app_folder_path=`
|
|
458
459
|
|
|
459
|
-
**Note:** The `DisplayLabel` in metadata uses the literal app name value, not `"FullName"`.
|
|
460
|
+
**Note:** The `DisplayLabel` in metadata uses the literal app name value, not `"FullName"`. Action Center tasks, manual escalations, and guardrail `EscalateAction` use this resource type — `CreateEscalation` extends `CreateTask` with the same `app_name`/`app_folder_path` fields, and `EscalateAction` references the same deployed Action App.
|
|
461
|
+
|
|
462
|
+
**Guardrail-action variant — `EscalateAction(...)`:**
|
|
463
|
+
|
|
464
|
+
Guardrail HITL escalation references an Action Center app directly from the guardrail action:
|
|
465
|
+
|
|
466
|
+
```python
|
|
467
|
+
from uipath_langchain.guardrails import EscalateAction
|
|
468
|
+
|
|
469
|
+
action = EscalateAction(
|
|
470
|
+
app_name="Guardrail.Escalation.Action.App",
|
|
471
|
+
app_folder_path="Shared",
|
|
472
|
+
recipient=recipient,
|
|
473
|
+
)
|
|
474
|
+
```
|
|
475
|
+
|
|
476
|
+
Binding entry is **identical** to `sdk.tasks.create` — same `resource: "app"`, same `key` (`<app_name>.<app_folder_path>`), same `ActivityName: "create_async"`, same `DisplayLabel: <app_name>`.
|
|
477
|
+
|
|
478
|
+
**Parameter extraction:**
|
|
479
|
+
- `app_name` — keyword argument `app_name=` to `EscalateAction(...)`
|
|
480
|
+
- `app_folder_path` — keyword argument `app_folder_path=`
|
|
460
481
|
|
|
461
482
|
**Interrupt-based variant — `interrupt(CreateTask(...))` / `interrupt(CreateEscalation(...))`:**
|
|
462
483
|
|
|
@@ -569,7 +590,7 @@ connection = sdk.connections.retrieve("connection_key")
|
|
|
569
590
|
**Key construction:** Just `<connection_key>` (no folder path, no dot).
|
|
570
591
|
|
|
571
592
|
**Parameter extraction:**
|
|
572
|
-
-
|
|
593
|
+
- The connection id is the first positional argument to `retrieve_async()` / `retrieve()`, and the same value is used as the binding `key` and `ConnectionId.defaultValue` — all three match.
|
|
573
594
|
|
|
574
595
|
**Differences from other resource types:**
|
|
575
596
|
- No `folderPath` in `value`
|
|
@@ -625,15 +646,15 @@ server = sdk.mcp.retrieve(slug="mcp_server_slug", folder_path="folder_path")
|
|
|
625
646
|
|
|
626
647
|
## SubType Metadata
|
|
627
648
|
|
|
628
|
-
The `SubType` field in a resource's `metadata` block specifies a sub-classification of the resource `kind`. It is **optional** but should be emitted when determinable, so `
|
|
649
|
+
The `SubType` field in a resource's `metadata` block specifies a sub-classification of the resource `kind`. It is **optional** but should be emitted when determinable, so `uip codedagent push` can create the correct virtual-resource placeholder when the resource isn't found in the catalog (see `Virtual Resource Fallback on uip codedagent push` below).
|
|
629
650
|
|
|
630
|
-
> **Minimum `uipath` version: 2.10.58 ([PyPI](https://pypi.org/project/uipath/)).** Below that version, **omit `SubType` entirely** — older `
|
|
651
|
+
> **Minimum `uipath` version: 2.10.58 ([PyPI](https://pypi.org/project/uipath/)).** Below that version, **omit `SubType` entirely** — older `uip codedagent push` releases ignore the field, so emitting it gives no benefit and just adds noise to `bindings.json`.
|
|
631
652
|
>
|
|
632
653
|
> **Version-detection rule (run before the lookup procedure):**
|
|
633
654
|
>
|
|
634
655
|
> 1. Read the project's `pyproject.toml` (or `requirements.txt` / `uv.lock`) and extract the resolved `uipath` version.
|
|
635
656
|
> 2. If the version is **`>= 2.10.58`**, follow the full lookup procedure.
|
|
636
|
-
> 3. If the version is **`< 2.10.58`** (or unspecified / unresolvable), **ask the user** before falling back. Do **not** run the upgrade command yourself.
|
|
657
|
+
> 3. If the version is **`< 2.10.58`** (or unspecified / unresolvable), **ask the user** before falling back. Do **not** run the upgrade command yourself. Ask with the warning prefix and two options:
|
|
637
658
|
>
|
|
638
659
|
> - **Question:** `⚠️ uipath is pinned to <version>. SubType support requires uipath >= 2.10.58 — without it every binding will be written with no SubType. Do you want to upgrade?`
|
|
639
660
|
> - **Option A — Yes, upgrade `uipath`** — print the upgrade command for the user to run themselves and stop the workflow. Tell them to re-run the bindings task after the upgrade lands. Suggested commands (do **not** execute them):
|
|
@@ -642,7 +663,7 @@ The `SubType` field in a resource's `metadata` block specifies a sub-classificat
|
|
|
642
663
|
> # Poetry: poetry add 'uipath@^2.10.58'
|
|
643
664
|
> # pip: pip install --upgrade 'uipath>=2.10.58'
|
|
644
665
|
> ```
|
|
645
|
-
> - **Option B — No, continue with current version** — skip the entire SubType lookup, do **not**
|
|
666
|
+
> - **Option B — No, continue with current version** — skip the entire SubType lookup, do **not** ask about sub-types, and write every binding with no `SubType` in `metadata` (including `retrieve_credential*`). Tell the user once: *"`uipath` is pinned to `<version>`; SubType emission is disabled."*
|
|
646
667
|
|
|
647
668
|
### Authoritative source for valid SubType values
|
|
648
669
|
|
|
@@ -701,10 +722,7 @@ For each binding, follow these steps:
|
|
|
701
722
|
4. **Choose a SubType:**
|
|
702
723
|
- **No candidates** (all entries lack `type`) → omit `SubType`.
|
|
703
724
|
- **One candidate** → emit it as `SubType`.
|
|
704
|
-
- **Multiple candidates** → try code-based disambiguation first (see rules below). If no rule matches, ask the user.
|
|
705
|
-
- **≤ 3 candidates** → call `AskUserQuestion` with each candidate as an `option` (`label` = the `type` string). `AskUserQuestion`'s `options` array is capped at 4 entries, and one slot is reserved for the trailing `skip`. The harness presents a picker UI and returns the chosen `label` directly — no numbered list needed in the prompt body.
|
|
706
|
-
- **≥ 4 candidates** → emit a plain-text **numbered list** (one per line, `N. <type>`) ending with a final numbered `skip` line. The user replies with just the number; map it back to the `type` string. Do not use `AskUserQuestion` here — the list won't fit.
|
|
707
|
-
Either way, include the resource name and folder in the prompt for context. If the user picks `skip` (or its number), omit `SubType`.
|
|
725
|
+
- **Multiple candidates** → try code-based disambiguation first (see rules below). If no rule matches, ask the user — present each candidate `type` as a concrete option plus a `skip` option. Include the resource name and folder for context. If the user picks `skip` or cannot be asked (non-interactive), omit `SubType`.
|
|
708
726
|
|
|
709
727
|
**Numbered-list rules** (plain-text path only):
|
|
710
728
|
- One candidate per line, prefixed with `N. ` (1-indexed).
|
|
@@ -728,7 +746,7 @@ curl -s -H "Authorization: Bearer <TOKEN>" \
|
|
|
728
746
|
|
|
729
747
|
### Known code-based disambiguation rules
|
|
730
748
|
|
|
731
|
-
Apply these rules in order. Only fall through to the
|
|
749
|
+
Apply these rules in order. Only fall through to asking the user if none of them produces a confident match.
|
|
732
750
|
|
|
733
751
|
| Kind | Rule | SubType | Confidence |
|
|
734
752
|
|------|------|---------|------------|
|
|
@@ -747,7 +765,7 @@ Apply these rules in order. Only fall through to the `AskUserQuestion` prompt if
|
|
|
747
765
|
- Used in arithmetic, compared numerically → `integerAsset`.
|
|
748
766
|
- Used in `if x:` as a truth check where Orchestrator stores it as boolean → `booleanAsset`.
|
|
749
767
|
4. Check the variable name and surrounding context against sensitive patterns (`password`, `pwd`, `api_key`, `secret`, `token`, `credential`). If a match is found, prompt the user to choose between `credentialAsset` and `secretAsset` (they differ in how Orchestrator exposes the value).
|
|
750
|
-
5. If the heuristic is inconclusive or produces only medium confidence, fall through to the
|
|
768
|
+
5. If the heuristic is inconclusive or produces only medium confidence, fall through to asking the user with the heuristic's best guess pre-highlighted.
|
|
751
769
|
|
|
752
770
|
### Asking the user (example prompts)
|
|
753
771
|
|
|
@@ -821,9 +839,23 @@ Always include a final `skip` option — it means "I don't know, emit no SubType
|
|
|
821
839
|
|
|
822
840
|
---
|
|
823
841
|
|
|
824
|
-
##
|
|
842
|
+
## What `uip codedagent push` does with bindings
|
|
843
|
+
|
|
844
|
+
`uip codedagent push` uploads the source files, then (unless `--ignore-resources`) resolves every `bindings.json` entry against the Resource Catalog. It searches by the binding's identity: most kinds by **`name` + `folderPath`** (both must match an existing resource in that folder — a wrong/missing `folderPath` causes a miss), `connection` by its **`ConnectionId`** (the connection id) — a value that doesn't match a real connection is a common miss.
|
|
845
|
+
|
|
846
|
+
Each binding: **found** → imported as a reference; **not found, virtual-capable kind** → placeholder created, project still deploys; **not found, non-virtual kind** (`connection`, `mcpServer`, `index`) → warned and **skipped entirely**.
|
|
847
|
+
|
|
848
|
+
> ⚠️ **A "was not found" warning is NEVER "expected".** For a non-virtual kind the binding is dropped from the deployed project. The agent may still run (it can resolve to in-code defaults), but the resource is **not overridable from Studio Web** — so the solution cannot be cleanly promoted/deployed to another tenant. Treat every "not found" as a defect to resolve before reporting push successful.
|
|
849
|
+
|
|
850
|
+
### When push reports a resource was not found
|
|
851
|
+
|
|
852
|
+
1. **Diagnose the miss** — the binding's identity matched no catalog resource. Check: wrong `folderPath` (resource exists in another folder), wrong `name`/`ConnectionId` (typo or stale value), or resource genuinely doesn't exist.
|
|
853
|
+
2. **Resolve, then re-push** — fix the binding's `name`/`folderPath`/`ConnectionId`, or have the user create the missing resource, then re-run `uip codedagent push` and confirm the warning is gone.
|
|
854
|
+
3. **If unresolvable, state it plainly** — e.g. *"Code uploaded, but connection `<key>` was not imported (no IS connection with that key/folder; connections cannot be auto-created), so it cannot be overridden in Studio Web."* Do not report push as done.
|
|
855
|
+
|
|
856
|
+
## Virtual Resource Fallback on uip codedagent push
|
|
825
857
|
|
|
826
|
-
Starting with `uipath` 2.10.52, `
|
|
858
|
+
Starting with `uipath` 2.10.52, `uip codedagent push` creates a virtual resource placeholder when a binding's resource isn't found in the Resource Catalog — the project can be deployed before its dependencies exist. The fallback only works for a subset of kinds.
|
|
827
859
|
|
|
828
860
|
The push command fetches the supported-kinds list from `/studio_/backend/api/resourcebuilder/metadata` at push time. The static fallback (used when that endpoint is unreachable) is `app, asset, bucket, process, queue, taskCatalog, trigger`.
|
|
829
861
|
|
|
@@ -836,7 +868,7 @@ The push command fetches the supported-kinds list from `/studio_/backend/api/res
|
|
|
836
868
|
### Implications for binding generation
|
|
837
869
|
|
|
838
870
|
1. **Emit `SubType` only when `uipath >= 2.10.58`.** Below that version, omit `SubType` from every binding — see **SubType Metadata → Version-detection rule**. When the version gate is met, always emit `"SubType": "credentialAsset"` for `retrieve_credential*` asset calls; without it the virtual-resource fallback creates a plain string asset placeholder, causing runtime failures when the agent expects a credential.
|
|
839
|
-
2. **Warn the user about non-fallback kinds.** For `connection`, `mcpServer`, and `index` bindings, the referenced resource must exist in Orchestrator before `
|
|
871
|
+
2. **Warn the user about non-fallback kinds.** For `connection`, `mcpServer`, and `index` bindings, the referenced resource must exist in Orchestrator before `uip codedagent push`. If it doesn't, the binding is skipped with a warning and the agent will fail at runtime. Flag this to the user when generating such bindings.
|
|
840
872
|
3. **Optional `SubType` for bucket.** The bucket's backing storage is not inferable from code. Consider asking the user which storage type their buckets use, so virtual-resource fallback creates the correct kind.
|
|
841
873
|
|
|
842
874
|
---
|
|
@@ -126,7 +126,7 @@ evaluations/eval-sets/
|
|
|
126
126
|
```json
|
|
127
127
|
"mockingStrategy": {
|
|
128
128
|
"type": "mockito",
|
|
129
|
-
"
|
|
129
|
+
"config": [
|
|
130
130
|
{
|
|
131
131
|
"function": "external_api_call",
|
|
132
132
|
"arguments": {
|
|
@@ -144,6 +144,10 @@ evaluations/eval-sets/
|
|
|
144
144
|
}
|
|
145
145
|
```
|
|
146
146
|
|
|
147
|
+
- Behaviors key is `config` (SDK alias; `behaviors` also accepted).
|
|
148
|
+
- `function` matches the `@mockable`-decorated function's `__name__` (bare name, not qualified). Decorate the target in `main.py` with `@mockable` for the mock to bind.
|
|
149
|
+
- `arguments` optional — omit to match any call.
|
|
150
|
+
|
|
147
151
|
**Mock Behavior Types:**
|
|
148
152
|
- `type: "return"` - Return a value
|
|
149
153
|
- `type: "raise"` - Throw an exception
|
|
@@ -44,6 +44,8 @@ uip codedagent init
|
|
|
44
44
|
|
|
45
45
|
`uipath-dev` is added to the dev dependency group during scaffold so `uip codedagent dev` works later without a second install pass. Skipping it causes `uip codedagent dev` to fail with *"The 'uipath-dev' package is required to use the dev command"*.
|
|
46
46
|
|
|
47
|
+
**What `uip codedagent setup` does:** locates a Python that has `uipath` installed and caches its path, so later commands (`init`/`run`/`eval`/`pack`) can invoke the Python SDK. It searches PATH (`python3.x`, `python3`, `python`) and uses your `.venv` only when activated. So when using uv, always `uv sync` then activate the venv before the `setup` command.
|
|
48
|
+
|
|
47
49
|
## Coded Function Agents
|
|
48
50
|
|
|
49
51
|
`uipath.json` carries the entrypoint mapping:
|
|
@@ -78,7 +78,7 @@ When the user asks to create and deploy an agent end-to-end, follow these steps
|
|
|
78
78
|
|
|
79
79
|
**IMPORTANT: Do NOT stop between steps to ask "would you like me to continue?" or list next steps. Execute the entire flow automatically.** Pause only when (a) you hit an **architectural fork** — a step with multiple valid implementations (framework choice, HITL pattern, evaluator type, deploy target, conversational vs not, etc.) — or (b) you need data only the user has (credentials, project ID). At a fork, apply **infer-or-ask**: if the prompt or context names the choice, infer it and continue; otherwise output ONLY the choice question as your entire response, then STOP and wait. For missing data, output ONLY the data request. After getting the answer, resume immediately. Forks for each step are documented in that step's referenced file — read the reference when you reach the step; do not guess.
|
|
80
80
|
|
|
81
|
-
Steps 8 and 9 are mandatory stops **for greenfield**: always ask, even if the user only said "build".
|
|
81
|
+
Steps 8 and 9 are mandatory stops **for greenfield**: always ask the user, even if the user only said "build". They are **automatically resolved** for `local-workspace` (auto-sync) and for `existing-coded` with `has_project_id == true` (push) — see steps 8 and 9 for the branch logic.
|
|
82
82
|
|
|
83
83
|
1. **Framework** — **Skip if `framework != none`** (already chosen — verify the right `<framework>.json` is present and continue). Else select per the [Framework Selection](#framework-selection) section below.
|
|
84
84
|
2. **Setup** — Idempotent by `project_state` and `has_venv`:
|
|
@@ -165,7 +165,7 @@ Then STOP and wait. On reply, run the matching one-shot login from [../authentic
|
|
|
165
165
|
**Finally**, run `uip codedagent eval <ENTRYPOINT> evaluations/eval-sets/smoke-test.json --no-report` (use the entrypoint name from `entry-points.json`).
|
|
166
166
|
8. **Delivery target.** Single branch point. **Evaluate branches in order — Local Workspace projects also have `UIPATH_PROJECT_ID` set in `.env`, so the `local-workspace` check MUST come before the `has_project_id` check, or Local Workspace will incorrectly fall into the push branch:**
|
|
167
167
|
|
|
168
|
-
- **(1) `project_state == local-workspace`** → Studio Web auto-syncs saves to the remote SW project, so options A and B (manual push / solution upload) are skipped — they would be redundant or break sync identity. The user may still want a local dev console. Stop and ask
|
|
168
|
+
- **(1) `project_state == local-workspace`** → Studio Web auto-syncs saves to the remote SW project, so options A and B (manual push / solution upload) are skipped — they would be redundant or break sync identity. The user may still want a local dev console. Stop and ask the user (single choice, "Delivery"):
|
|
169
169
|
|
|
170
170
|
**Question:** *Studio Web is auto-syncing this workspace. Do you want a local dev console too?*
|
|
171
171
|
|
|
@@ -180,7 +180,7 @@ Then STOP and wait. On reply, run the matching one-shot login from [../authentic
|
|
|
180
180
|
|
|
181
181
|
Do **not** run `uip codedagent push` for this branch (that's recovery only — see [lifecycle/local-workspace.md](lifecycle/local-workspace.md) § Studio-Web-Auto-Sync). Do **not** present options A or B.
|
|
182
182
|
- **(2) `has_project_id == true` (cloud workspace, project ID already set)** → Run `uip codedagent push` to upload local edits, then continue to step 9. No fork question — the delivery choice was made in a prior session.
|
|
183
|
-
- **(3) Else (greenfield / cloud workspace not yet wired)** → Stop and ask
|
|
183
|
+
- **(3) Else (greenfield / cloud workspace not yet wired)** → Stop and ask the user (single choice, "Delivery").
|
|
184
184
|
|
|
185
185
|
**Question:** *How do you want to use the agent next?*
|
|
186
186
|
|
|
@@ -206,7 +206,7 @@ Then STOP and wait. On reply, run the matching one-shot login from [../authentic
|
|
|
206
206
|
- **C** → run `uip codedagent dev` in the background; surface the URL (default `http://localhost:8080`). Prereq: `uipath-dev` (added during scaffold). **STOP — do NOT proceed to step 9.** Local dev is a terminal choice.
|
|
207
207
|
- **Skip** → continue to step 9.
|
|
208
208
|
|
|
209
|
-
9. **Deploy.** Reachable from any `project_state` after option **Skip** at step 8 (greenfield or local-workspace), after the auto-push in branch (2), or after options **A** / **B** in greenfield. After option **C** at step 8, the run ends — do not ask. Stop and ask
|
|
209
|
+
9. **Deploy.** Reachable from any `project_state` after option **Skip** at step 8 (greenfield or local-workspace), after the auto-push in branch (2), or after options **A** / **B** in greenfield. After option **C** at step 8, the run ends — do not ask. Stop and ask the user (single choice, "Deploy target").
|
|
210
210
|
|
|
211
211
|
**Question:** *Do you want to deploy the agent? If yes, which target?*
|
|
212
212
|
|
|
@@ -19,6 +19,7 @@ Reference for comparing **coded** (Python) and **low-code** (agent.json) agents.
|
|
|
19
19
|
| Full runtime control over LLM prompts | ❌ | ✅ |
|
|
20
20
|
| Multi-model / multi-framework strategies | ❌ | ✅ |
|
|
21
21
|
| Fastest path to first working agent | ✅ | ❌ |
|
|
22
|
+
| Conversational (chat-style, multi-turn) use-cases | ✅ | currently not recommended for production, use low-code |
|
|
22
23
|
| Embed inline in a flow project | ✅ | ❌ |
|
|
23
24
|
| Embed as sibling project in same solution | ✅ | ✅ |
|
|
24
25
|
| Invoke as published agent node in a flow | ✅ | ✅ |
|
|
@@ -27,7 +27,7 @@ Route by file type first, signal second:
|
|
|
27
27
|
|---|---|---|---|
|
|
28
28
|
| `.csv` | "add columns" / "classify every row" / "enrich vendor addresses" / "MCC categorization" / "1000 rows of structured output" | **BatchTransform** | Coded: [coded/capabilities/batch-transform/planning.md](coded/capabilities/batch-transform/planning.md). Low-code: [lowcode/capabilities/built-in-tools/batch-transform/planning.md](lowcode/capabilities/built-in-tools/batch-transform/planning.md). |
|
|
29
29
|
| `.pdf` / `.txt` | "summarize" / "research across these docs" / "one narrative answer" | **DeepRAG** | Coded: [coded/capabilities/deeprag/planning.md](coded/capabilities/deeprag/planning.md). Low-code: [lowcode/capabilities/built-in-tools/deeprag/planning.md](lowcode/capabilities/built-in-tools/deeprag/planning.md). |
|
|
30
|
-
| pre-built index, no file upload | "search the policy KB" / "look up X in our docs" | **Index search** | `sdk.context_grounding.unified_search_async` or low-code Context tool — see [coded/capabilities/context-grounding.md](coded/capabilities/context-grounding.md). |
|
|
30
|
+
| pre-built index, no file upload | "search the policy KB" / "look up X in our docs" | **Index search** | Consume: `sdk.context_grounding.unified_search_async` or low-code Context tool — see [coded/capabilities/context-grounding.md](coded/capabilities/context-grounding.md). Create / ingest / inspect the index from the CLI: [uipath-platform/references/context-grounding/index-management.md](../../uipath-platform/references/context-grounding/index-management.md). |
|
|
31
31
|
|
|
32
32
|
## Surface Selection
|
|
33
33
|
|