Lines 284-324javascript
284 // parse top-level await or return. Those programs retain the prior async
285 // block behavior; a syntax failure occurs before any user code executes.
286 if (!statementList || !(error instanceof SyntaxError)) throw error;
287 program = new Function('"use strict"; return (async () => {' + code + "\n})();");
288 value = await program();
290 const output = render(value);
291 return logs.length === 0 ? output : value === undefined ? logs.join("\n") : logs.join("\n") + "
293 function install(name, value) { Object.defineProperty(globalThis, name, { value, configurable: false, enumerable: false, writable: false }); }
294 install("browser", browser); install("context", context); install("page", page);
295 install("state", state); install("browserState", state);
296 install("a11y", a11y); install("view", view); install("routeFulfill", routeFulfill); install("console", replConsole);
297 install("__araHandsRepl", Object.freeze({ version, evaluate }));
299`.trim(),Hs=String.raw`
301 const bridge = globalThis.__araHandsRepl;
302 if (!bridge || typeof bridge.evaluate !== "function") throw new Error("Reason Hands browser bridge is not installed");
303 return await bridge.evaluate(typeof input === "string" ? input : input && input.code);
305`.trim();import{Buffer as At}from"buffer";import{randomUUID as Fc}from"crypto";class Ws extends Error{code;constructor(e){super(e==="hands_repl_private_profile_attribute_denied"?"Private browser attribute read denied.":e);this.code=e;this.name="HandsReplBrowserDispatcherError"}}var Fs=new Set(["__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__","__proto__","constructor","prototype"]),Bs=/^hands_[A-Za-z0-9_-]{8,128}$/,zc=2048,zs=32,Us=1e4,Uc=new Set(["href","src","alt","title","role","aria-label","aria-expanded","aria-checked","aria-selected","aria-disabled","placeholder ...
306`):V;w({status:M.statusCode??502,headers:C,body:Buffer.concat(Q)})})}),R=setTimeout(()=>F.destroy(Error("hands_browser_fetch_timeout")),Bd);F.once("close"
307`)}function An(e){try{Sd(e)}catch{}}async function ii(e){if(e.managedBrowser&&e.driverModuleDirectory!==void 0)throw Error("hands_browser_ambiguous_driver_configuration");let l=e.launch||e.targetContext?null:e.managedBrowser?await fo(e.managedBrowser,{executablePath:e.browserExecutablePath}):await en({executablePath:e.browserExecutablePath,driverModuleDirectory:e.driverModuleDirectory});if(l?.status==="unavailable")throw Error(`hands_browser_${l.reason}`);let f=l?.status==="resolved"?l.executablePath:e.browserExecutablePath;if(!f||!Zt(f))throw Error("hands_browser_unavailable");let g=e.launch? ...
308Viewing ${Ur} (${Gr.sourceWidth}x${Gr.sourceHeight} source, sent at ${Gr.width}x${Gr.height}, ${Math.round(gt.length/1024)}KB).`}if(Fr>640
309${Qe}`}catch{return`${br}
310Screen capture unavailable.`}}return br})(),Ye,_r=new Promise((br,Pr)=>{Ye=setTimeout(()=>Pr(Error("REPL evaluation timed out after 105 seconds")),Dd)});try{return await Promise.race([Ae,_r])}catch(br){if(br instanceof Error&&br.message.includes("timed out"))Ae.catch(()=>{return}),await ze.resetEvaluator(fe).catch(()=>{return});throw br}finally{if(Ye)clearTimeout(Ye)}},be=Promise.resolve(),Fe=new Set,qe=new Set;An(e.socketPath);let Be=_t.createServer((le)=>{Fe.add(le),le.once("close",()=>{Fe.delete(le),qe.delete(le)}),le.setEncoding("utf8");let fe="",Se=!1;le.on("data",(ze)=>{if(Se)return;if(f ...
311`);if(Ke===-1)return;Se=!0;let Ve=fe.slice(0,Ke);if(e.onControl)try{let Ae=JSON.parse(Ve);if(typeof Ae.action===
312`}catch{return!1}}var Jd=/^(\/.+)-sidechat-([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$/;function di(e){let l=Jd.exec(e.replace(/\/+$/,""));return l?`${l[1]}/repo`:null}import{randomUUID as Bl}from"crypto";import{spawn as Ml,spawnSync as jl}from"child_process";import{accessSync as Wl,chmodSync as dn,closeSync as Fl,constants as Wt,fchmodSync as zl,fstatSync as Ul,openSync as $l,copyFileSync as Kl,existsSync as To,lstatSync as Er,statSync as ht,mkdtempSync as Gl,mkdirSync as Ft,realpathSync as yr,renameSync as Ln,rmSync as Jl,writeFileSync as Nn}from"fs";import{homedir as Vl, ...
313const { writeSync } = require("node:fs");
314const { createRequire } = require("node:module");
315const { join } = require("node:path");
316const { createInterface } = require("node:readline");
317const { formatWithOptions, inspect } = require("node:util");
318const vm = require("node:vm");
320const timeoutMs = ${Oo};
321const maxLogChars = 524288;
322let activeOutput = [];
323let activeOutputChars = 0;
324function appendOutput(value) {
Long lines were clipped for display.