Spaces:
Running
Running
File size: 2,297 Bytes
dd87944 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | import { http } from "./api";
function frameFromResult(data) {
if (!data?.ok) return null;
return {
url: data.url,
title: data.title,
preview: data.text || data.preview,
screenshot_base64: data.screenshot_base64,
elements: data.elements || [],
session_id: data.session_id || "default",
action: data.action || "control",
viewport_width: data.viewport_width || 1280,
viewport_height: data.viewport_height || 900,
};
}
const FAST = { fast: true };
export async function browserOpen(url, sessionId = "default") {
const r = await http.post("/browser/open", { url, session_id: sessionId, ...FAST });
return frameFromResult(r.data);
}
export async function browserSnapshot(sessionId = "default") {
const r = await http.post("/browser/snapshot", { session_id: sessionId, ...FAST });
return frameFromResult(r.data);
}
export async function browserClick(ref, sessionId = "default") {
const r = await http.post("/browser/click", { ref, session_id: sessionId, ...FAST });
return frameFromResult(r.data);
}
export async function browserClickAt(x, y, sessionId = "default") {
const r = await http.post("/browser/click", { x, y, session_id: sessionId, ...FAST });
return frameFromResult(r.data);
}
export async function browserType(ref, text, sessionId = "default", { clear = false, pressEnter = false } = {}) {
const r = await http.post("/browser/type", {
ref,
text,
session_id: sessionId,
clear,
press_enter: pressEnter,
...FAST,
});
return frameFromResult(r.data);
}
export async function browserScroll(sessionId = "default", direction = "down", amount = 600) {
const r = await http.post("/browser/scroll", { session_id: sessionId, direction, amount, ...FAST });
return frameFromResult(r.data);
}
/** Touche sans capture — instantané côté serveur. */
export async function browserKeyFire(sessionId = "default", { key, text } = {}) {
await http.post("/browser/key", {
session_id: sessionId,
key,
text,
snapshot: false,
...FAST,
});
}
export async function browserKey(sessionId = "default", { key, text } = {}) {
const r = await http.post("/browser/key", {
session_id: sessionId,
key,
text,
snapshot: true,
...FAST,
});
return frameFromResult(r.data);
}
|