feat: add a-route uia send connector

This commit is contained in:
zhaoyilun
2026-07-11 11:16:53 +08:00
parent 456ef44e8e
commit 8aa952a491
15 changed files with 941 additions and 19 deletions

View File

@@ -0,0 +1,30 @@
# A-route UIA Send Implementation Note
Date: 2026-07-11
Branch: `codex/a-route-rpa-send`
## Decision
The A-route fallback is now function-first. It does not introduce an approval ID gate inside the MCP tool or connector. Digital employee policy can decide when to call `execution_mode="production"`; the connector focuses on performing the UI action when explicitly configured.
## Implemented local-safe proof
- `SendMessageConnectorRequest` now carries `ContentText` to the connector only.
- `internal/tools/send_message_uia_adapter.go` maps production send requests to helper op `uia_send_message`.
- `native/ISphereWinHelper/UiaSendAction.cs` sets the send editor text and invokes the send button by UI Automation / Win32 fallback.
- `scripts/verify-win-helper.ps1` uses a synthetic WinForms window to prove write + button invoke without requiring iSphere login.
## Runtime configuration
```powershell
$env:ISPHERE_SEND_CONNECTOR_MODE = "uia_rpa"
$env:ISPHERE_SEND_UIA_HWND = "0x001A0B2C"
$env:ISPHERE_SEND_UIA_EDITOR_AUTOMATION_ID = "rtbSendMessage"
$env:ISPHERE_SEND_UIA_BUTTON_AUTOMATION_ID = "btnSend"
```
Then call `isphere_send_message` with `execution_mode="production"`.
## Remaining real-environment work
The local environment still cannot log in to iSphere. The code path is implemented and locally proven against synthetic UIA, but real iSphere success still needs a logged-in window handle and one real run in the online environment.