WorkFrameHub’s jev-cu-win connects Jev to Windows UI Automation, the accessibility interface that exposes buttons and text fields. It sends text descriptions to TypeSafe’s API, then uses local PowerShell code to click or type.
Give the model a bounded menu
- Read the current window and rank its actionable controls against the user’s goal.
- Ask Jev for a target, an action type, completion probability, and risk probability.
- Check the decision in local code before passing it to the Windows driver.
- Supply text, keys, and coordinates from the caller; Jev selects among actions.
The default is dry-run. Explicit execution enables writes, and sensitive labels or model-reported risk trigger confirmation. The label check removes invisible formatting characters and uses the selected label before the API wrapper’s shortening step.
Check completion against the screen
The project supports --done-when, which looks for caller-specified text in the observed interface. It also blocks repeated insertion of the same text and rereads the screen after typing.
These mechanisms make the loop inspectable. They still depend on the accessibility tree being complete and the caller choosing a meaningful completion condition. Browsers can exceed the tree limit, and custom-drawn applications may expose little usable information.
Check the command that will actually run
Local execution passed the repository’s 26 offline tests, using saved interface trees and fake drivers. Additional mocked probes found two limits:
- A decision targeting a neutral editor label can pass the gate and dispatch the caller’s
deletekey. The gate receives the action type, but never the concrete key. - A sensitive-label decision with missing probabilities enters confirmation before numeric validation. Simulated approval then lets it reach the fake driver.
The loop can also turn an approved editor click into click-and-type after the policy check. Approval should cover the final target, key, text, and coordinates, with required fields validated before confirmation.
Treat this as an integration to test
Keep execution supervised and avoid --yes, which automatically approves confirmation requests. Test selection accuracy separately from local control flow: the included fixture evaluator calls the real API, whereas the passing unit tests substitute decisions.
Typed output is not a correct decision, and a recognized application name does not make every action harmless.
Caveat: source inspected and mocked tests run on Linux; Windows execution and live Jev decision quality remain untested. This was not a security audit.