OPEN-SOURCE / AI AGENT TESTING
Test what your
agent actually did.
Approval decisions. Tool calls. Real side effects.
Bring them together in one repeatable test, with evidence you can inspect.
Real Chrome / Chromium. No model API key.
A denial you can verify.
- Approval decision
- Denied
- Tool starts
- 0
- Verified local effects
- 0
The completed ledger and independent resource probe agree.
01 / ASK BETTER QUESTIONS
A plausible answer
is only the beginning.
Did “deny” really mean no?
Compare the approval decision with the tool ledger and an independent resource probe.
Test approval flows 02Did the same thing happen twice?
Check business effects across call IDs. Catch duplicate execution and incomplete observations.
Test tool side effects 03Can you trust the final result?
Keep unknown execution, missing evidence, and unconfirmed cleanup visible in the report.
Understand the boundaries02 / THE REFERENCE FIXTURE
Good tests
catch bad behavior.
Four Cases. One deterministic agent. A real, owned browser for each run.
The two failures are intentional fixture faults. They stay red in the report. Expected showcase exit: 1.
- Passed
Denied. Nothing executed.
Zero starts. Zero effects. Complete evidence.
- Passed
Approved. Executed once.
One tool execution and one local effect.
- Failed
Denied. Still executed.
The ledger and resource expose the fault.
- Failed
Denied. Incomplete ledger.
A missing barrier cannot establish zero.
03 / FAMILIAR TOOLS. EXPLICIT BOUNDARIES.
Built around your tools. Grounded in evidence.
SurfaceLoom coordinates replaceable backends around AI agent behavior contracts: approval decisions, tool execution, actual side effects, and retained evidence.
For ordinary browser UI tests, Playwright may already cover your needs. SurfaceLoom adds agent behavior assertions and evidence coordination.
- Browser Playwright
- Live approval fixture
- Windows UI Automation
- Separate C# / UIA fixture
- macOS Accessibility
- Contract-tested
EXPERIMENTAL No stable API guarantee. Packages are not published to npm. No target-product validation is claimed. The TypeScript-to-native live path is not yet proven.
START SMALL. VERIFY SOMETHING REAL.
Your first test starts here.
Clone the source, run the fixture, and open the report.