fix(browser): accept fill fields without explicit type

Default missing fill field type to 'text' in /act route to avoid spurious 'fields are required' failures from relay/tool callers. Add regression test for fill payloads with ref+value only.
This commit is contained in:
Rick
2026-02-26 15:50:20 +01:00
committed by Peter Steinberger
parent 712e231725
commit a0b12f2ba7
2 changed files with 13 additions and 2 deletions

View File

@@ -192,8 +192,8 @@ export function registerBrowserAgentActRoutes(
}
const rec = field as Record<string, unknown>;
const ref = toStringOrEmpty(rec.ref);
const type = toStringOrEmpty(rec.type);
if (!ref || !type) {
const type = toStringOrEmpty(rec.type) || "text";
if (!ref) {
return null;
}
const value =

View File

@@ -69,6 +69,17 @@ describe("browser control server", () => {
fields: [{ ref: "6", type: "textbox", value: "hello" }],
});
const fillWithoutType = await postJson<{ ok: boolean }>(`${base}/act`, {
kind: "fill",
fields: [{ ref: "7", value: "world" }],
});
expect(fillWithoutType.ok).toBe(true);
expect(pwMocks.fillFormViaPlaywright).toHaveBeenCalledWith({
cdpUrl: state.cdpBaseUrl,
targetId: "abcd1234",
fields: [{ ref: "7", type: "text", value: "world" }],
});
const resize = await postJson<{ ok: boolean }>(`${base}/act`, {
kind: "resize",
width: 800,