feat: add ask_user interactive user input to frontend

Wire the sidecar user-input-requested protocol event through the main
process, IPC layer, and renderer UI so agents can ask the user
interactive questions with choices and freeform input.

- Add UserInputRequestedEvent and ResolveUserInputCommand to sidecar
  protocol types
- Add resolveUserInput method to SidecarClient and onUserInput callback
  to runTurn
- Create PendingUserInputRecord domain type and add pendingUserInput to
  SessionRecord
- Add handleUserInputRequested and resolveSessionUserInput to
  AryxAppService with handle management
- Register sessions:resolve-user-input IPC channel with preload bridge
- Create UserInputBanner component with choice buttons and freeform
  input
- Integrate UserInputBanner into ChatPane with header indicator

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
David Kaya
2026-03-26 17:45:27 +01:00
co-authored by Copilot
parent 2ae4bd01b4
commit f15b1aedb1
14 changed files with 356 additions and 12 deletions
+2
View File
@@ -16,6 +16,7 @@ describe('run turn pending helpers', () => {
onDelta: () => undefined,
onActivity: () => undefined,
onApproval: () => undefined,
onUserInput: () => undefined,
errored: false,
};
@@ -38,6 +39,7 @@ describe('run turn pending helpers', () => {
onDelta: () => undefined,
onActivity: () => undefined,
onApproval: () => undefined,
onUserInput: () => undefined,
errored: false,
};