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
// node --test web/asyncai/page.test.mjs (after `cargo wasm`; skips without Chrome)
// index.html as served, in headless Chrome: the form runs the real module in the page's wasm worker,
// against a stubbed Messages API (the custom backend, Anthropic's format), and the transcript shows the
// answer. @atproto/oauth-client-browser (esm.sh) is stubbed: signed out.
import assert from "node:assert/strict";
import { test } from "node:test";
import { browse, CHROME } from "../../../atlibs/docs/browser.mjs";
const ROOT = new URL("./", import.meta.url).pathname;
const CORS = [{ name: "access-control-allow-origin", value: "*" }, { name: "access-control-allow-headers", value: "*" }, { name: "access-control-allow-methods", value: "*" }];
test("the page runs the agent and shows the transcript; the key goes only to the inference origin", { skip: !CHROME && "no Chrome" }, () =>
browse(async ({ send, on, open, evaluate }) => {
const errors = [];
const keys = [];
on("Runtime.exceptionThrown", ({ exceptionDetails: e }) => errors.push(e.exception?.description ?? e.text));
on("Fetch.requestPaused", ({ requestId, request }) => {
if (request.url.startsWith("https://esm.sh/")) {
const stub = "export const BrowserOAuthClient = { load: async () => ({ init: async () => undefined }) }";
return send("Fetch.fulfillRequest", { requestId, responseCode: 200, responseHeaders: [{ name: "content-type", value: "text/javascript" }, ...CORS], body: Buffer.from(stub).toString("base64") });
}
if (request.method !== "OPTIONS") keys.push(request.headers["x-api-key"] ?? request.headers["X-Api-Key"]);
const body = request.method === "OPTIONS" ? "" : JSON.stringify({ content: [{ type: "text", text: "hello from the stub" }], stop_reason: "end_turn", usage: { input_tokens: 1, output_tokens: 1 } });
send("Fetch.fulfillRequest", { requestId, responseCode: 200, responseHeaders: [{ name: "content-type", value: "application/json" }, ...CORS], body: Buffer.from(body).toString("base64") });
});
await send("Runtime.enable");
await send("Fetch.enable", { patterns: [{ urlPattern: "https://inference.test/*" }, { urlPattern: "https://esm.sh/*" }] });
await open("/index.html");
await evaluate(`(() => { const f = document.getElementById("form"); f.prompt.value = "hi"; f.backend.value = "custom"; f.format.value = "anthropic"; f.endpoint.value = "https://inference.test"; f.apiKey.value = "PAGE-KEY"; f.mcp.value = "[]"; f.requestSubmit() })()`);
const until = async (expression) => {
for (const end = Date.now() + 15_000; Date.now() < end; await new Promise((ok) => setTimeout(ok, 100))) if (await evaluate(expression)) return;
assert.fail(`timed out: ${expression}\n${errors.join("\n")}\n${await evaluate(`document.getElementById("status").textContent`)}`);
};
await until(`document.getElementById("transcript").textContent.includes("hello from the stub")`);
assert.match(await evaluate(`document.getElementById("status").textContent`), /stop: end_turn, steps: 1/);
assert.deepEqual(keys, ["PAGE-KEY"]);
assert.deepEqual(errors, []);
}, { root: ROOT }));
test("co/core is the default backend and asks to sign in", { skip: !CHROME && "no Chrome" }, () =>
browse(async ({ send, on, open, evaluate }) => {
on("Fetch.requestPaused", ({ requestId }) => {
const stub = "export const BrowserOAuthClient = { load: async () => ({ init: async () => undefined }) }";
send("Fetch.fulfillRequest", { requestId, responseCode: 200, responseHeaders: [{ name: "content-type", value: "text/javascript" }, ...CORS], body: Buffer.from(stub).toString("base64") });
});
await send("Fetch.enable", { patterns: [{ urlPattern: "https://esm.sh/*" }] });
await open("/index.html");
for (const end = Date.now() + 15_000; Date.now() < end && (await evaluate(`document.getElementById("login").hidden`)); ) await new Promise((ok) => setTimeout(ok, 100));
assert.equal(await evaluate(`document.querySelector("#form").backend.value`), "cocore");
assert.equal(await evaluate(`document.getElementById("login").hidden`), false);
assert.equal(await evaluate(`document.getElementById("custom").hidden`), true);
await evaluate(`(() => { const f = document.getElementById("form"); f.prompt.value = "hi"; f.mcp.value = "[]"; f.requestSubmit() })()`);
for (const end = Date.now() + 15_000; Date.now() < end && !(await evaluate(`document.getElementById("status").textContent`)); ) await new Promise((ok) => setTimeout(ok, 100));
assert.match(await evaluate(`document.getElementById("status").textContent`), /co\/core runs as you: sign in first/);
}, { root: ROOT }));