Skip to content

feat(agent): QuickForm escalation channel models#1686

Merged
cotovanu-cristian merged 3 commits into
mainfrom
feat/escalation-quick-form
Jun 9, 2026
Merged

feat(agent): QuickForm escalation channel models#1686
cotovanu-cristian merged 3 commits into
mainfrom
feat/escalation-quick-form

Conversation

@cotovanu-cristian

@cotovanu-cristian cotovanu-cristian commented May 27, 2026

Copy link
Copy Markdown
Collaborator

Summary

Agent-model support for QuickForm escalations on low-code agents. QuickForm is a channel variant of the standard escalation (told apart by channel type), not a separate resource type.

Changes (agent/models/agent.py)

  • AgentEscalationChannel stays the concrete Action Center channel (type actionCenter); AgentQuickFormEscalationChannel is the quick-form variant (actionCenterQuickForm). The channels field is typed as the EscalationChannel discriminated union (Field(discriminator="type") + case-insensitive normalization). An unrecognized channel type is rejected at parse time — the runtime cannot execute a channel it does not know, so there is deliberately no silent fallback.
  • AgentQuickFormChannelProperties carries the FormLib schema inline as form_schema (alias schema, with a schema_id accessor); AgentEscalationChannelProperties (Action Center) owns the app fields (app_name, app_version, folder_name, resource_key); the shared base keeps only the actionable-message fields.
  • Escalation resource union: AgentEscalationResourceConfig (escalationType=0, shared by app-task and QuickForm) and AgentIxpVsEscalationResourceConfig (escalationType=1).

Package bumped to 2.10.79.

Compatibility

AgentEscalationChannel remains a concrete, directly-instantiable model under its original name, so existing consumers that build AgentEscalationChannel(...) keep working (verified against the uipath-langchain cross-test). The only intentional break is that unknown/future channel types now raise on parse instead of falling back.

🤖 Generated with Claude Code

@github-actions github-actions Bot added test:uipath-langchain Triggers tests in the uipath-langchain-python repository test:uipath-integrations labels May 27, 2026
@cotovanu-cristian cotovanu-cristian force-pushed the feat/escalation-quick-form branch 6 times, most recently from 632f670 to 4e26bd0 Compare June 8, 2026 15:28
Introduce a discriminated-union hierarchy for escalation channels
(BaseEscalationChannelProperties, AgentActionCenterEscalationChannel,
AgentQuickFormEscalationChannel) so QuickForm escalations carry their
FormLib schema instead of an Action Center app reference.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@cotovanu-cristian cotovanu-cristian force-pushed the feat/escalation-quick-form branch from 4e26bd0 to dcceeaa Compare June 8, 2026 15:36
@github-actions

github-actions Bot commented Jun 8, 2026

Copy link
Copy Markdown

🚨 Heads up: uipath-integrations cross-tests are FAILING 🚨

Your changes may break one or more integrations in uipath-integrations-python:

  • uipath-openai-agents
  • uipath-google-adk
  • uipath-agent-framework
  • uipath-llamaindex
  • uipath-pydantic-ai

⚠️ These checks are NOT enforced by branch protection rules. Please review the failures before merging.

🔍 Inspect the failed run →

@cotovanu-cristian cotovanu-cristian changed the title feat(agent): QuickForm escalation + tasks-service create_quickform_async feat(agent): QuickForm escalation channel models Jun 8, 2026
@cotovanu-cristian cotovanu-cristian self-assigned this Jun 8, 2026
@cotovanu-cristian cotovanu-cristian marked this pull request as ready for review June 8, 2026 15:54
Copilot AI review requested due to automatic review settings June 8, 2026 15:54

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR extends the uipath.agent.models.agent model layer to represent QuickForm escalations as a channel variant of existing escalation resources, and updates tests + package versioning accordingly.

Changes:

  • Introduces explicit escalation channel variants (Action Center vs. QuickForm) with distinct properties models.
  • Refactors escalation channel parsing toward a discriminated union keyed by type, and updates tests around channel/property behavior.
  • Bumps the uipath package version to 2.10.79.

Reviewed changes

Copilot reviewed 3 out of 4 changed files in this pull request and generated 4 comments.

File Description
packages/uipath/src/uipath/agent/models/agent.py Adds QuickForm channel/property models and refactors escalation channel/resource discrimination.
packages/uipath/tests/agent/models/test_agent.py Updates channel model imports/usages and adds tests for QuickForm schema/schema_id behavior.
packages/uipath/pyproject.toml Bumps package version to 2.10.79.
packages/uipath/uv.lock Updates locked package version entry to 2.10.79.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread packages/uipath/src/uipath/agent/models/agent.py Outdated
Comment thread packages/uipath/src/uipath/agent/models/agent.py
Comment thread packages/uipath/src/uipath/agent/models/agent.py Outdated
Comment thread packages/uipath/src/uipath/agent/models/agent.py Outdated
@cotovanu-cristian

Copy link
Copy Markdown
Collaborator Author

updated the version needed by the tests in: UiPath/uipath-integrations-python#353

cotovanu-cristian and others added 2 commits June 8, 2026 19:26
…ield

Address PR review:
- Remove AgentUnknownEscalationChannel and the UNKNOWN channel-type enum
  member. The runtime cannot execute an unrecognized escalation channel, so
  an unknown type is now rejected at parse time rather than silently routed
  to a fallback (Field(discriminator="type") raises on unknown values).
- Rename AgentQuickFormChannelProperties.schema -> form_schema (alias
  "schema") to stop shadowing BaseModel.schema(); drops the type: ignore.
- Lock the intended break with a test asserting unknown channel types fail.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The channel refactor had renamed the concrete Action Center channel to
AgentActionCenterEscalationChannel and rebound AgentEscalationChannel to an
Annotated[Union[...]]. A typing.Union is not instantiable, so every consumer
that builds AgentEscalationChannel(...) directly broke — e.g. uipath-langchain
main's escalation test fixtures fail with "TypeError: Cannot instantiate
typing.Union" under the cross-repo test.

Restore AgentEscalationChannel as the concrete Action Center channel and move
the discriminated union to EscalationChannel (matching the existing
EscalationResourceConfig union-naming convention) for the channels field.
Runtime parsing, QuickForm routing, and unknown-type rejection are unchanged.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Jun 8, 2026

Copy link
Copy Markdown

🚨 Heads up: uipath-langchain cross-tests are FAILING 🚨

Your changes may break the uipath-langchain-python integration.

⚠️ These checks are NOT enforced by branch protection rules. Please review the failures before merging.

🔍 Inspect the failed run →

@sonarqubecloud

sonarqubecloud Bot commented Jun 8, 2026

Copy link
Copy Markdown

@cotovanu-cristian

Copy link
Copy Markdown
Collaborator Author

the failing test sends an invalid value to channel:type as action_center. will merge it this way and fix the test after the bump in uipath-langchain

class AgentEscalationChannelType(str, CaseInsensitiveEnum):
"""Agent escalation channel type enumeration."""

ACTION_CENTER = "actionCenter"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: maybe leave a comment that this refers to action center apps specifically

@cotovanu-cristian cotovanu-cristian merged commit 3825955 into main Jun 9, 2026
129 of 140 checks passed
@cotovanu-cristian cotovanu-cristian deleted the feat/escalation-quick-form branch June 9, 2026 06:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

test:uipath-integrations test:uipath-langchain Triggers tests in the uipath-langchain-python repository

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants