feat: add confirmToolCall support to CAS chat bridge [JAR-8666]#1558
Open
JoshParkSJ wants to merge 2 commits intomainfrom
Open
feat: add confirmToolCall support to CAS chat bridge [JAR-8666]#1558JoshParkSJ wants to merge 2 commits intomainfrom
JoshParkSJ wants to merge 2 commits intomainfrom
Conversation
4f34984 to
93415af
Compare
6df4f17 to
cc0be81
Compare
f07a4c1 to
9b20567
Compare
d41a431 to
1dbe8ff
Compare
1dbe8ff to
319a5e6
Compare
JoshParkSJ
commented
Apr 15, 2026
| ``interrupt("do you want to continue?")``). Nothing uses that today | ||
| and it's not a near-term requirement — the method is kept for | ||
| generic flexibility. | ||
| """ |
Contributor
Author
There was a problem hiding this comment.
I still believe for conversational experience we won't ever need to support this type of generic interrupt. This type of interrupt("...") is really for workflow type / autonomous agent experience. But Pufu's suggestion was that there's no cost of keeping this runtime protocol here as a no-op and potential flexibility. So keeping it here. For CAS code though, removing interrupt simplifies our codebase significantly - so doing a rip-and-replace makes sense
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed?
Tool confirmation is no longer modeled as an interrupt — it is now a first-class property of the tool call itself.
The old model
The old flow used a separate interrupt mechanism: when a tool needed user approval, the bridge emitted a
startInterruptevent (carrying tool-call metadata), waited for a matchingendInterruptevent keyed on aninterrupt_id, then resumed the agent with the approval result. Tool confirmation was a passenger inside a general-purpose interrupt envelope.The new model
startToolCallnow carriesrequireConfirmation: trueandinputSchemadirectly, so CAS sees immediately — at tool invocation time — that this call needs user approval. The user's decision comes back as aconfirmToolCallevent on the same tool call, with{ approved, input }. No interrupt envelope, no ID matching, no parallel event streams.This is a tighter fit: confirmation is a property of the tool call, so it lives on the tool call event.
What this means in practice
uipath-core):interrupt.pydeleted entirely. Confirmation state (requireConfirmation,inputSchema,confirmation) moves onto the tool call models. A newUiPathConversationToolCallConfirmationEventcarries the user's approve/reject decision._bridge.py): Drops the interrupt-ID-matching logic. Now just watches forconfirmToolCallon incoming tool call events and sets the resume event.emit_interrupt_event()is kept as a documented no-op to satisfy theUiPathChatProtocolcontract — it has no work to do in this flow.interruptsfield removed from message models;interruptfield removed fromUiPathConversationMessageEvent. All call sites updated.Testing
Manual end-to-end with tc-1 agent: Accept, Cancel, Modify+Accept, and empty required field validation all verified working for low code and coded agents
Companion PRs