Lines 32-72javascript
34 getHeader: (name) => c.req.header(name),
37 customRouteAuthConfig,
39 rawRequest: c.req.raw,
41 buildAuthorizeContext: () => c
43 if (result.action === "next") {
46 return c.json(result.body, result.status);
49async function setupBrowserStream(app, config) {
50 let createNodeWebSocket;
52 const mod = "@hono/node-ws";
53 const honoNodeWs = await import(
54 /* @vite-ignore */
MediumDynamic Require
Package source references dynamic require/import behavior.
dist/index.jsView on unpkg · L52 55 /* webpackIgnore: true */
58 createNodeWebSocket = honoNodeWs.createNodeWebSocket;
62 const { injectWebSocket, upgradeWebSocket } = createNodeWebSocket({ app });
63 const registry = new ViewerRegistry();
64 const rawPrefix = config.apiPrefix ?? "/api";
65 const trimmed = rawPrefix.endsWith("/") ? rawPrefix.slice(0, -1) : rawPrefix;
66 const apiPrefix = trimmed || "/api";
68 "/browser/:agentId/stream",
69 upgradeWebSocket((c) => {
70 const agentId = c.req.param("agentId");
71 const threadId = c.req.query("threadId");
72 const viewerKey = threadId ? `${agentId}:${threadId}` : agentId;