@elizaos/plugin-computeruse 2.0.3-beta.3 → 2.0.3-beta.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -13,15 +13,15 @@
13
13
  "/**\n * WS7 — Actor (optional fine-grained grounding).\n *\n * The Actor is responsible for converting a Brain-issued reference\n * (\"click the Save button I see in this crop\") into concrete display-local\n * pixel coords.\n *\n * Primary path — deterministic (no model):\n * `OcrCoordinateGroundingActor` resolves a `ref: \"t<displayId>-<seq>\"`\n * (OCR id) or `ref: \"a<displayId>-<seq>\"` (AX id) directly from the\n * Scene. Click point is bbox-center. No VLM call, fully reproducible,\n * what 99% of the cascade should use.\n *\n * Optional secondary path — VLM:\n * `OsAtlasProActor` is a typed adapter for an operator-provided model-server\n * endpoint (e.g. an OS-Atlas-Pro vLLM service). Unless a deployment\n * registers that endpoint, the cascade uses the OCR/AX grounding above.\n *\n * Register the active Actor on the cascade via `setActor(actor)` (see\n * `cascade.ts`). If none is registered, the cascade uses the OCR/AX actor\n * automatically.\n */\n\nimport type { Scene, SceneAxNode, SceneOcrBox } from \"../scene/scene-types.js\";\nimport type { GroundingResult, ReferenceTarget } from \"./types.js\";\n\nexport interface ActorGroundArgs {\n /** Display the Brain wants to act on. */\n displayId: number;\n /**\n * Cropped image of the ROI at native resolution (PNG bytes). May be a\n * empty Buffer when the deterministic grounding doesn't need image bytes.\n */\n croppedImage: Buffer;\n /** Hint from the Brain: \"the Save button in the dialog footer\". */\n hint: string;\n /** Optional reference from `BrainProposedAction.ref`. */\n ref?: string;\n}\n\nexport interface Actor {\n readonly name: string;\n ground(args: ActorGroundArgs): Promise<GroundingResult>;\n}\n\n/* ── deterministic OCR/AX grounding (primary) ──────────────────────────── */\n\nexport class OcrCoordinateGroundingActor implements Actor {\n readonly name = \"ocr-ax-grounding\";\n\n constructor(private readonly getScene: () => Scene | null) {}\n\n async ground(args: ActorGroundArgs): Promise<GroundingResult> {\n const scene = this.getScene();\n if (!scene) {\n throw new Error(\n `[computeruse/actor] cannot ground without a current scene (ref=${args.ref ?? \"?\"})`,\n );\n }\n const target = resolveReference(scene, args.ref, args.hint, args.displayId);\n if (!target) {\n throw new Error(\n `[computeruse/actor] no OCR/AX target matched ref=${args.ref ?? \"?\"} hint=${JSON.stringify(args.hint)} on display ${args.displayId}`,\n );\n }\n const [x, y, w, h] = target.bbox;\n return {\n displayId: target.displayId,\n x: Math.round(x + w / 2),\n y: Math.round(y + h / 2),\n confidence: 1,\n reason: `Matched ${target.kind} id=${describe(target)} bbox=[${x},${y},${w},${h}]`,\n };\n }\n}\n\n/**\n * Look up a scene element by stable id, OR by case-insensitive label match\n * when an id is absent. Used by both the deterministic actor and the cascade\n * dispatcher to validate Brain output.\n */\nexport function resolveReference(\n scene: Scene,\n ref: string | undefined,\n hint: string,\n preferredDisplay: number,\n): ReferenceTarget | null {\n if (ref) {\n // OCR id format: t<displayId>-<seq>\n const ocrMatch = scene.ocr.find((b) => b.id === ref);\n if (ocrMatch) return toOcrTarget(ocrMatch);\n // AX id format: a<displayId>-<seq>\n const axMatch = scene.ax.find((n) => n.id === ref);\n if (axMatch) return toAxTarget(axMatch);\n }\n // Fall back to hint-based label match. Prefer the requested display.\n const lc = hint.trim().toLowerCase();\n if (lc.length === 0) return null;\n const ocrCandidates = scene.ocr\n .filter((b) => b.text.toLowerCase().includes(lc))\n .sort(\n (a, b) =>\n preferenceScore(b, preferredDisplay) -\n preferenceScore(a, preferredDisplay),\n );\n const bestOcr = ocrCandidates[0];\n if (bestOcr) return toOcrTarget(bestOcr);\n const axCandidates = scene.ax\n .filter((n) => (n.label ?? \"\").toLowerCase().includes(lc))\n .sort(\n (a, b) =>\n preferenceScoreAx(b, preferredDisplay) -\n preferenceScoreAx(a, preferredDisplay),\n );\n const bestAx = axCandidates[0];\n if (bestAx) return toAxTarget(bestAx);\n return null;\n}\n\nfunction toOcrTarget(box: SceneOcrBox): ReferenceTarget {\n return {\n displayId: box.displayId,\n bbox: box.bbox,\n kind: \"ocr\",\n label: box.text,\n source: box,\n };\n}\n\nfunction toAxTarget(node: SceneAxNode): ReferenceTarget {\n return {\n displayId: node.displayId,\n bbox: node.bbox,\n kind: \"ax\",\n label: node.label ?? node.role,\n source: node,\n };\n}\n\nfunction preferenceScore(box: SceneOcrBox, preferredDisplay: number): number {\n return (box.displayId === preferredDisplay ? 1000 : 0) + box.conf;\n}\n\nfunction preferenceScoreAx(\n node: SceneAxNode,\n preferredDisplay: number,\n): number {\n const area = (node.bbox[2] ?? 0) * (node.bbox[3] ?? 0);\n return (node.displayId === preferredDisplay ? 1_000_000 : 0) + area;\n}\n\nfunction describe(target: ReferenceTarget): string {\n return target.kind === \"ocr\"\n ? (target.source as SceneOcrBox).id\n : (target.source as SceneAxNode).id;\n}\n\n/* ── optional VLM adapter ──────────────────────────────────────────────── */\n\nexport interface OsAtlasProActorOptions {\n /** Endpoint of the model server, e.g. `http://localhost:8000/v1`. */\n endpoint: string;\n /** Optional auth header. */\n apiKey?: string;\n /** Model identifier on the server. */\n model?: string;\n /** Override the HTTP fetch (mostly for tests). */\n fetcher?: (\n input: string,\n init: { body: string; headers: Record<string, string> },\n ) => Promise<{ ok: boolean; status: number; text: () => Promise<string> }>;\n}\n\n/**\n * Adapter for a server-side OS-Atlas-Pro (or compatible) grounding model.\n * Not wired into the cascade by default. The contract: POST a JSON payload\n * with `{ image: base64, hint }`, expect `{ x, y, confidence }` in image\n * coordinates of the crop. The cascade is responsible for converting those\n * crop-local coords back to display-local before dispatch.\n */\nexport class OsAtlasProActor implements Actor {\n readonly name = \"osatlas-pro\";\n\n constructor(private readonly opts: OsAtlasProActorOptions) {\n if (!opts.endpoint) {\n throw new Error(\n \"[computeruse/actor] OsAtlasProActor requires an endpoint\",\n );\n }\n }\n\n async ground(args: ActorGroundArgs): Promise<GroundingResult> {\n const body = JSON.stringify({\n image: args.croppedImage.toString(\"base64\"),\n hint: args.hint,\n ref: args.ref,\n model: this.opts.model,\n });\n const headers: Record<string, string> = {\n \"content-type\": \"application/json\",\n };\n if (this.opts.apiKey) headers.authorization = `Bearer ${this.opts.apiKey}`;\n const fetcher =\n this.opts.fetcher ??\n (async (url, init) => {\n const resp = await fetch(url, {\n method: \"POST\",\n body: init.body,\n headers: init.headers,\n });\n return { ok: resp.ok, status: resp.status, text: () => resp.text() };\n });\n const resp = await fetcher(this.opts.endpoint, { body, headers });\n if (!resp.ok) {\n throw new Error(\n `[computeruse/actor] osatlas-pro returned ${resp.status}: ${await resp.text()}`,\n );\n }\n const text = await resp.text();\n let parsed: { x?: number; y?: number; confidence?: number };\n try {\n parsed = JSON.parse(text) as typeof parsed;\n } catch (err) {\n throw new Error(\n `[computeruse/actor] osatlas-pro emitted non-JSON: ${err instanceof Error ? err.message : String(err)}`,\n );\n }\n if (typeof parsed.x !== \"number\" || typeof parsed.y !== \"number\") {\n throw new Error(\n `[computeruse/actor] osatlas-pro response missing (x, y): ${text}`,\n );\n }\n return {\n displayId: args.displayId,\n x: parsed.x,\n y: parsed.y,\n confidence:\n typeof parsed.confidence === \"number\" ? parsed.confidence : 0.5,\n reason: `osatlas-pro grounded ${args.ref ?? args.hint}`,\n };\n }\n}\n",
14
14
  "/**\n * Difference-hash (dHash) implementation for cheap frame-level and\n * block-level change detection in the WS6 scene-builder.\n *\n * Why dHash:\n * - 64-bit integer, hammable in two cycles, vastly cheaper than a structural\n * similarity index.\n * - Robust to small re-encodings (cursor jitter, anti-alias seams) which\n * dominate \"no change\" frames in a real session.\n * - Tunable: we run an 8×8 whole-frame hash for the cheap \"did anything\n * happen?\" gate, and a 16×16 block grid (each block ~128×128 of source)\n * for dirty-block re-OCR.\n *\n * Implementation notes:\n * - The PNG decoder here is intentionally minimal — it handles the formats\n * produced by every screenshot path we ship (color type 2 = RGB, 6 =\n * RGBA, 8-bit depth, non-interlaced). Anything else returns `null` and\n * the caller falls back to a coarser whole-frame byte hash.\n * - Pure functions, no I/O. Safe to test deterministically.\n *\n * Block-grid contract:\n * - The image is gridded into N×N blocks (default 16) covering the whole\n * frame; remainder pixels go to the right/bottom edges.\n * - Each block gets its own 8-bit \"mini-hash\" derived from row-wise grayscale\n * differences sampled at four points per block. Two blocks compare equal\n * iff their hashes match. This is intentionally a much coarser test than\n * a full per-block dHash — the goal is just \"did this region change at\n * all?\" not \"how similar.\"\n */\n\nimport { inflateSync } from \"node:zlib\";\n\nconst PNG_SIGNATURE = Buffer.from([\n 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a,\n]);\n\nexport interface RawImage {\n width: number;\n height: number;\n /** RGBA scanline data, row-major, 4 bytes/pixel, length = width*height*4. */\n rgba: Buffer;\n}\n\n/**\n * Decode a PNG buffer to RGBA. Returns null for unsupported variants\n * (interlaced, palette-indexed, 16-bit depth) — caller handles that by\n * falling back to a non-block-grid hash strategy.\n */\nexport function decodePng(png: Buffer): RawImage | null {\n if (png.length < PNG_SIGNATURE.length) return null;\n for (let i = 0; i < PNG_SIGNATURE.length; i += 1) {\n if (png[i] !== PNG_SIGNATURE[i]) return null;\n }\n let offset = PNG_SIGNATURE.length;\n let width = 0;\n let height = 0;\n let bitDepth = 0;\n let colorType = 0;\n let interlace = 0;\n const idatChunks: Buffer[] = [];\n\n while (offset + 8 <= png.length) {\n const length = png.readUInt32BE(offset);\n const type = png.subarray(offset + 4, offset + 8).toString(\"ascii\");\n const dataStart = offset + 8;\n const dataEnd = dataStart + length;\n if (dataEnd > png.length) return null;\n if (type === \"IHDR\") {\n if (length < 13) return null;\n width = png.readUInt32BE(dataStart);\n height = png.readUInt32BE(dataStart + 4);\n bitDepth = png[dataStart + 8] ?? 0;\n colorType = png[dataStart + 9] ?? 0;\n interlace = png[dataStart + 12] ?? 0;\n } else if (type === \"IDAT\") {\n idatChunks.push(png.subarray(dataStart, dataEnd));\n } else if (type === \"IEND\") {\n break;\n }\n offset = dataEnd + 4; // skip CRC\n }\n\n if (width === 0 || height === 0) return null;\n if (bitDepth !== 8) return null;\n if (interlace !== 0) return null;\n if (colorType !== 2 && colorType !== 6) return null;\n if (idatChunks.length === 0) return null;\n\n const inflated = inflateSync(Buffer.concat(idatChunks));\n const bytesPerPixel = colorType === 6 ? 4 : 3;\n const stride = width * bytesPerPixel;\n const expected = (stride + 1) * height;\n if (inflated.length < expected) return null;\n\n const rgba = Buffer.alloc(width * height * 4);\n const prevRow = Buffer.alloc(stride);\n const curRow = Buffer.alloc(stride);\n\n for (let y = 0; y < height; y += 1) {\n const rowStart = y * (stride + 1);\n const filter = inflated[rowStart] ?? 0;\n const src = inflated.subarray(rowStart + 1, rowStart + 1 + stride);\n applyPngFilter(filter, src, prevRow, curRow, bytesPerPixel);\n const dstRowStart = y * width * 4;\n for (let x = 0; x < width; x += 1) {\n const sx = x * bytesPerPixel;\n const dx = dstRowStart + x * 4;\n rgba[dx] = curRow[sx] ?? 0;\n rgba[dx + 1] = curRow[sx + 1] ?? 0;\n rgba[dx + 2] = curRow[sx + 2] ?? 0;\n rgba[dx + 3] = bytesPerPixel === 4 ? (curRow[sx + 3] ?? 255) : 255;\n }\n curRow.copy(prevRow);\n }\n return { width, height, rgba };\n}\n\nfunction applyPngFilter(\n filter: number,\n src: Buffer,\n prev: Buffer,\n out: Buffer,\n bpp: number,\n): void {\n const len = src.length;\n for (let i = 0; i < len; i += 1) {\n const raw = src[i] ?? 0;\n const left = i >= bpp ? (out[i - bpp] ?? 0) : 0;\n const up = prev[i] ?? 0;\n const upLeft = i >= bpp ? (prev[i - bpp] ?? 0) : 0;\n let recon = 0;\n switch (filter) {\n case 0:\n recon = raw;\n break;\n case 1:\n recon = raw + left;\n break;\n case 2:\n recon = raw + up;\n break;\n case 3:\n recon = raw + ((left + up) >>> 1);\n break;\n case 4:\n recon = raw + paeth(left, up, upLeft);\n break;\n default:\n recon = raw;\n }\n out[i] = recon & 0xff;\n }\n}\n\nfunction paeth(a: number, b: number, c: number): number {\n const p = a + b - c;\n const pa = Math.abs(p - a);\n const pb = Math.abs(p - b);\n const pc = Math.abs(p - c);\n if (pa <= pb && pa <= pc) return a;\n if (pb <= pc) return b;\n return c;\n}\n\n/**\n * Compute a luminance value (0..255) for an RGBA pixel using\n * Rec. 601 coefficients.\n */\nfunction luminance(r: number, g: number, b: number): number {\n return (0.299 * r + 0.587 * g + 0.114 * b) | 0;\n}\n\n/**\n * Resample the image to a (cols+1) × rows grayscale grid using nearest-\n * neighbor sampling, then compare horizontal neighbors to form a (cols*rows)\n * bit hash. With cols=8, rows=8 this is the classic 64-bit dHash.\n */\nfunction dhashGrid(image: RawImage, cols: number, rows: number): bigint {\n const { width, height, rgba } = image;\n const samples = new Uint8Array((cols + 1) * rows);\n for (let y = 0; y < rows; y += 1) {\n const sy = Math.min(height - 1, Math.floor((y * height) / rows));\n for (let x = 0; x <= cols; x += 1) {\n const sx = Math.min(width - 1, Math.floor((x * width) / (cols + 1)));\n const idx = (sy * width + sx) * 4;\n samples[y * (cols + 1) + x] = luminance(\n rgba[idx] ?? 0,\n rgba[idx + 1] ?? 0,\n rgba[idx + 2] ?? 0,\n );\n }\n }\n let hash = 0n;\n for (let y = 0; y < rows; y += 1) {\n for (let x = 0; x < cols; x += 1) {\n const a = samples[y * (cols + 1) + x] ?? 0;\n const b = samples[y * (cols + 1) + x + 1] ?? 0;\n hash = (hash << 1n) | (a > b ? 1n : 0n);\n }\n }\n return hash;\n}\n\n/**\n * 64-bit dHash of the whole frame. Returns `null` if the PNG can't be\n * decoded; callers fall back to a byte-length comparison.\n */\nexport function frameDhash(png: Buffer): bigint | null {\n const decoded = decodePng(png);\n if (!decoded) return null;\n return dhashGrid(decoded, 8, 8);\n}\n\n/**\n * Hamming distance between two 64-bit dHashes. Two visually identical frames\n * report 0. We treat anything < 5 as \"no change\" for the idle gate.\n */\nexport function hamming(a: bigint, b: bigint): number {\n let x = a ^ b;\n let count = 0;\n while (x !== 0n) {\n x &= x - 1n;\n count += 1;\n }\n return count;\n}\n\nexport interface BlockGrid {\n /** Cols × Rows block-hash matrix. Index by `row * cols + col`. */\n hashes: Uint32Array;\n cols: number;\n rows: number;\n}\n\n/**\n * Split a frame into a `cols x rows` grid and return a tiny per-block hash.\n *\n * We don't use a full dHash per block — instead we sample 4 luminance points\n * per block and pack a 16-bit fingerprint. That's enough to spot \"this block\n * changed\" with very few false-negatives in practice, and stays cheap when\n * called every active-poll frame (4 Hz).\n */\nexport function blockGrid(png: Buffer, cols = 16, rows = 16): BlockGrid | null {\n const decoded = decodePng(png);\n if (!decoded) return null;\n return blockGridFromImage(decoded, cols, rows);\n}\n\nexport function blockGridFromImage(\n image: RawImage,\n cols = 16,\n rows = 16,\n): BlockGrid {\n const { width, height, rgba } = image;\n const hashes = new Uint32Array(cols * rows);\n for (let r = 0; r < rows; r += 1) {\n for (let c = 0; c < cols; c += 1) {\n const x0 = Math.floor((c * width) / cols);\n const x1 = Math.floor(((c + 1) * width) / cols);\n const y0 = Math.floor((r * height) / rows);\n const y1 = Math.floor(((r + 1) * height) / rows);\n const w = Math.max(1, x1 - x0);\n const h = Math.max(1, y1 - y0);\n // Four sample points: tl, tr, bl, br of the block interior.\n const samples = [\n sample(rgba, width, x0, y0),\n sample(rgba, width, x0 + w - 1, y0),\n sample(rgba, width, x0, y0 + h - 1),\n sample(rgba, width, x0 + w - 1, y0 + h - 1),\n ];\n // Pack four luminance values into 32 bits.\n const v0 = (samples[0] ?? 0) & 0xff;\n const v1 = (samples[1] ?? 0) & 0xff;\n const v2 = (samples[2] ?? 0) & 0xff;\n const v3 = (samples[3] ?? 0) & 0xff;\n hashes[r * cols + c] = ((v0 << 24) | (v1 << 16) | (v2 << 8) | v3) >>> 0;\n }\n }\n return { hashes, cols, rows };\n}\n\nfunction sample(rgba: Buffer, width: number, x: number, y: number): number {\n const idx = (y * width + x) * 4;\n return luminance(rgba[idx] ?? 0, rgba[idx + 1] ?? 0, rgba[idx + 2] ?? 0);\n}\n\nexport interface DirtyBlock {\n col: number;\n row: number;\n /** Pixel-space bbox `[x, y, w, h]` of this block in the source frame. */\n bbox: [number, number, number, number];\n}\n\n/**\n * Return the list of blocks whose hash changed between two grids.\n *\n * If `prev` is null (first frame) every block is dirty.\n * If `imageWidth/Height` are passed, the result includes a pixel-space bbox\n * for each dirty block so the caller can crop the source PNG to re-OCR only\n * the changed regions.\n */\nexport function diffBlocks(\n prev: BlockGrid | null,\n current: BlockGrid,\n imageWidth?: number,\n imageHeight?: number,\n): DirtyBlock[] {\n const dirty: DirtyBlock[] = [];\n const { cols, rows } = current;\n for (let r = 0; r < rows; r += 1) {\n for (let c = 0; c < cols; c += 1) {\n const i = r * cols + c;\n const same =\n prev !== null && prev.cols === cols && prev.rows === rows\n ? prev.hashes[i] === current.hashes[i]\n : false;\n if (same) continue;\n const bbox: [number, number, number, number] =\n imageWidth !== undefined && imageHeight !== undefined\n ? [\n Math.floor((c * imageWidth) / cols),\n Math.floor((r * imageHeight) / rows),\n Math.max(\n 1,\n Math.floor(((c + 1) * imageWidth) / cols) -\n Math.floor((c * imageWidth) / cols),\n ),\n Math.max(\n 1,\n Math.floor(((r + 1) * imageHeight) / rows) -\n Math.floor((r * imageHeight) / rows),\n ),\n ]\n : [c, r, 1, 1];\n dirty.push({ col: c, row: r, bbox });\n }\n }\n return dirty;\n}\n\n/**\n * Coalesce a list of dirty blocks into axis-aligned rectangles using a row-\n * sweep merge. Adjacent dirty blocks in the same row collapse into a single\n * horizontal strip, then strips in successive rows that fully overlap collapse\n * vertically. This keeps the OS region-capture count tiny in the common case\n * where a single text field or a banner area changes (1 region, not 12).\n *\n * Returns the rectangles in display-local pixel space when `imageWidth` /\n * `imageHeight` are provided; otherwise in `col, row, colspan, rowspan`\n * units (1,1,1,1 = a single block at grid position 0,0).\n */\nexport function coalesceDirtyBlocks(\n dirty: DirtyBlock[],\n grid: BlockGrid,\n imageWidth?: number,\n imageHeight?: number,\n): Array<{ bbox: [number, number, number, number] }> {\n if (dirty.length === 0) return [];\n // Build a sparse occupied set keyed by `${row}:${col}`.\n const occupied = new Set<string>();\n for (const b of dirty) occupied.add(`${b.row}:${b.col}`);\n\n // Row-sweep: merge horizontal runs first.\n const strips: Array<{ row: number; col0: number; col1: number }> = [];\n for (let r = 0; r < grid.rows; r += 1) {\n let c = 0;\n while (c < grid.cols) {\n if (!occupied.has(`${r}:${c}`)) {\n c += 1;\n continue;\n }\n let c1 = c;\n while (c1 + 1 < grid.cols && occupied.has(`${r}:${c1 + 1}`)) c1 += 1;\n strips.push({ row: r, col0: c, col1: c1 });\n c = c1 + 1;\n }\n }\n\n // Merge strips that share identical col extents in successive rows.\n const merged: Array<{\n row0: number;\n row1: number;\n col0: number;\n col1: number;\n }> = [];\n for (const strip of strips) {\n const last = merged[merged.length - 1];\n if (\n last &&\n last.col0 === strip.col0 &&\n last.col1 === strip.col1 &&\n last.row1 + 1 === strip.row\n ) {\n last.row1 = strip.row;\n continue;\n }\n merged.push({\n row0: strip.row,\n row1: strip.row,\n col0: strip.col0,\n col1: strip.col1,\n });\n }\n\n return merged.map(({ row0, row1, col0, col1 }) => {\n if (imageWidth !== undefined && imageHeight !== undefined) {\n const x0 = Math.floor((col0 * imageWidth) / grid.cols);\n const y0 = Math.floor((row0 * imageHeight) / grid.rows);\n const x1 = Math.floor(((col1 + 1) * imageWidth) / grid.cols);\n const y1 = Math.floor(((row1 + 1) * imageHeight) / grid.rows);\n return {\n bbox: [x0, y0, Math.max(1, x1 - x0), Math.max(1, y1 - y0)] as [\n number,\n number,\n number,\n number,\n ],\n };\n }\n return {\n bbox: [col0, row0, col1 - col0 + 1, row1 - row0 + 1] as [\n number,\n number,\n number,\n number,\n ],\n };\n });\n}\n\n/**\n * Read PNG dimensions without inflating IDAT. Cheap — only the IHDR chunk is\n * touched. Returns null if the buffer isn't a recognizable PNG.\n */\nexport function pngDimensions(\n png: Buffer,\n): { width: number; height: number } | null {\n if (png.length < PNG_SIGNATURE.length + 8 + 13) return null;\n for (let i = 0; i < PNG_SIGNATURE.length; i += 1) {\n if (png[i] !== PNG_SIGNATURE[i]) return null;\n }\n // IHDR follows immediately after the signature: length(4) + \"IHDR\"(4) + width(4) + height(4) + ...\n const ihdrStart = PNG_SIGNATURE.length + 4;\n if (png.subarray(ihdrStart, ihdrStart + 4).toString(\"ascii\") !== \"IHDR\")\n return null;\n const width = png.readUInt32BE(ihdrStart + 4);\n const height = png.readUInt32BE(ihdrStart + 8);\n if (\n !Number.isFinite(width) ||\n !Number.isFinite(height) ||\n width <= 0 ||\n height <= 0\n ) {\n return null;\n }\n return { width, height };\n}\n",
15
15
  "/**\n * Token-efficient Scene serializer.\n *\n * Used by the `scene` provider to render the current Scene into the agent\n * prompt. We deliberately cap lists by display so a 4k-monitor session\n * doesn't push the prompt to thousands of tokens:\n *\n * - displays : full list (small)\n * - focused_window : full (small)\n * - apps : pid, name, window count, top-2 window titles\n * - ocr : top-N most-confident lines per display\n * (default N = 24, configurable)\n * - ax : limited to the focused window's display subtree\n * (default cap = 24)\n * - vlm_scene / elements : passed through verbatim\n *\n * The output is fenced JSON for predictable downstream tokenization.\n */\n\nimport type { Scene } from \"./scene-types.js\";\n\nexport interface SerializeOptions {\n ocrTopN?: number;\n axMax?: number;\n appTopWindows?: number;\n /** Cap total apps emitted. Prefers apps with at least one visible window. */\n appMax?: number;\n}\n\nexport function serializeSceneForPrompt(\n scene: Scene,\n options: SerializeOptions = {},\n): string {\n const ocrTopN = options.ocrTopN ?? 24;\n const axMax = options.axMax ?? 24;\n const appTopWindows = options.appTopWindows ?? 2;\n const appMax = options.appMax ?? 32;\n\n // OCR: per-display, sorted by descending confidence, capped.\n const ocrByDisplay = new Map<number, typeof scene.ocr>();\n for (const box of scene.ocr) {\n const arr = ocrByDisplay.get(box.displayId) ?? [];\n arr.push(box);\n ocrByDisplay.set(box.displayId, arr);\n }\n const trimmedOcr: typeof scene.ocr = [];\n for (const [, arr] of ocrByDisplay) {\n arr.sort((a, b) => b.conf - a.conf);\n trimmedOcr.push(...arr.slice(0, ocrTopN));\n }\n\n // AX: prefer focused-window display subtree.\n const focusedDisplay =\n scene.focused_window?.displayId ?? scene.displays[0]?.id ?? 0;\n const focusedAx = scene.ax.filter((n) => n.displayId === focusedDisplay);\n const remaining = scene.ax.filter((n) => n.displayId !== focusedDisplay);\n const trimmedAx = [...focusedAx, ...remaining].slice(0, axMax);\n\n // Prefer apps with visible windows — those are the ones the planner can\n // act on. Background-only processes get clipped to keep the prompt\n // tractable on Linux hosts with 500+ processes.\n const appsByPriority = [...scene.apps].sort((a, b) => {\n const aw = a.windows.length;\n const bw = b.windows.length;\n if (aw !== bw) return bw - aw;\n return a.name.localeCompare(b.name);\n });\n const trimmedApps = appsByPriority.slice(0, appMax);\n const compactApps = trimmedApps.map((app) => ({\n name: app.name,\n pid: app.pid,\n window_count: app.windows.length,\n windows: app.windows.slice(0, appTopWindows).map((w) => ({\n id: w.id,\n title: w.title,\n displayId: w.displayId,\n })),\n }));\n\n const compact = {\n timestamp: scene.timestamp,\n displays: scene.displays.map((d) => ({\n id: d.id,\n name: d.name,\n bounds: d.bounds,\n primary: d.primary,\n scaleFactor: d.scaleFactor,\n })),\n focused_window: scene.focused_window,\n apps: compactApps,\n ocr: trimmedOcr.map((b) => ({\n id: b.id,\n text: b.text,\n bbox: b.bbox,\n conf: Number(b.conf.toFixed(3)),\n displayId: b.displayId,\n })),\n ax: trimmedAx.map((n) => ({\n id: n.id,\n role: n.role,\n label: n.label,\n bbox: n.bbox,\n actions: n.actions,\n displayId: n.displayId,\n })),\n vlm_scene: scene.vlm_scene,\n vlm_elements: scene.vlm_elements,\n truncation: {\n ocr_total: scene.ocr.length,\n ocr_kept: trimmedOcr.length,\n ax_total: scene.ax.length,\n ax_kept: trimmedAx.length,\n apps_total: scene.apps.length,\n apps_kept: trimmedApps.length,\n },\n };\n return [\"```json\", JSON.stringify(compact, null, 2), \"```\"].join(\"\\n\");\n}\n",
16
- "/**\n * WS7 — Brain (full-screen reasoning).\n *\n * Sends one image per display (each downscaled to ~1.3 MP, the OS-Atlas /\n * Qwen3-VL `max_pixels` convention) to `runtime.useModel(IMAGE_DESCRIPTION,\n * ...)`. The model is prompted to emit a JSON `BrainOutput` describing:\n * - the scene in one paragraph,\n * - which display to act on,\n * - up to N ROIs the Actor should zoom into,\n * - a single proposed action with rationale.\n *\n * The Brain itself doesn't dispatch — it just produces `BrainOutput`. The\n * cascade (\"ScreenSeekeR\") is the orchestrator that takes a `BrainOutput`,\n * optionally calls the Actor on cropped ROIs, and produces a concrete\n * `ProposedAction` for the dispatcher.\n *\n * Image transport contract: we pass `imageUrl` as a `data:image/png;base64,...`\n * URL. The WS2 MemoryArbiter intercepts at `ModelType.IMAGE_DESCRIPTION` and\n * routes through its content-hash cache, so identical frames don't burn\n * inference budget twice.\n *\n * Image policy (#9105): the compact scene already carries OCR text + AX boxes,\n * which can suffice to pick the next target, so the `\"on-escalation\"` policy\n * plans from that text-only context with NO image — routed through a TEXT model,\n * since every IMAGE_DESCRIPTION provider rejects an empty imageUrl — and\n * attaches the ~1.3 MP frame only when the planned target cannot be grounded\n * against the OCR/AX boxes. The DEFAULT is `\"always\"` (legacy: image on every\n * call) until a real-model CUA trajectory validates imageless planning accuracy;\n * operators opt into `\"on-escalation\"` via the `COMPUTERUSE_BRAIN_IMAGE_POLICY`\n * setting. `\"never\"` never attaches pixels.\n *\n * Parse strictness:\n * - We try to parse the response as JSON (either the literal string or\n * `result.description`).\n * - On first parse failure, retry once with a stricter prompt.\n * - On second failure, throw `BrainParseError` — the cascade surfaces this\n * as a structured `ActionResult.error` and aborts the turn cleanly.\n */\n\nimport {\n type IAgentRuntime,\n type ImageDescriptionResult,\n logger,\n ModelType,\n} from \"@elizaos/core\";\nimport type { DisplayCapture } from \"../platform/capture.js\";\nimport { frameDhash, hamming, pngDimensions } from \"../scene/dhash.js\";\nimport type { Scene } from \"../scene/scene-types.js\";\nimport { serializeSceneForPrompt } from \"../scene/serialize.js\";\nimport { resolveReference } from \"./actor.js\";\nimport type { BrainOutput, BrainProposedAction, BrainRoi } from \"./types.js\";\n\nexport const BRAIN_MAX_PIXELS = 1_310_720; // 1280 * 32 * 32 ≈ 1.3 MP cap\nexport const BRAIN_MAX_ROIS = 2;\n/** Bound on the per-Brain dHash→BrainOutput cache (LRU-ish, oldest evicted). */\nexport const BRAIN_DHASH_CACHE_MAX = 16;\n/**\n * dHash Hamming threshold for cached-plan reuse (#9581 continuous-understanding\n * tuning). Exact-equality (distance 0) re-burned the IMAGE_DESCRIPTION model on\n * cosmetically-identical frames — cursor jitter, a blinking caret, anti-aliasing,\n * and tiny scroll noise all flip a few dHash bits.\n *\n * This mirrors `SCREEN_STATE_HAMMING_THRESHOLD`: distances below the threshold\n * are unchanged; distances at or above it are changed and must re-plan.\n */\nexport const BRAIN_DHASH_HAMMING_THRESHOLD = 5;\n/**\n * Image-token estimate per source pixel for a vision model with the Qwen3-VL /\n * OS-Atlas `max_pixels` convention: one visual token ≈ a 28×28 (≈750 px) patch.\n * Used only to quantify the saving when a frame is *not* attached (#9105).\n */\nexport const BRAIN_PIXELS_PER_IMAGE_TOKEN = 750;\n\n/**\n * When to attach the raw screenshot to the planning model (#9105):\n * - `\"always\"` — attach the pixels on every call (legacy behaviour). Default.\n * - `\"on-escalation\"` — plan from the compact OCR/AX scene with no image\n * first (routed through a TEXT model); attach pixels\n * only when the planned target cannot be grounded\n * against the OCR/AX boxes or a strict-retry fires.\n * - `\"never\"` — never attach the screenshot; plan from the scene alone.\n */\nexport type BrainImagePolicy = \"always\" | \"on-escalation\" | \"never\";\n\n/**\n * Default is `\"always\"` (proven legacy behaviour). `\"on-escalation\"` cuts the\n * dominant per-frame image-token cost but plans the first pass blind to the\n * pixels, so it stays opt-in (via the `COMPUTERUSE_BRAIN_IMAGE_POLICY` runtime\n * setting / env var) until a real-model CUA trajectory validates its accuracy.\n */\nexport const DEFAULT_BRAIN_IMAGE_POLICY: BrainImagePolicy = \"always\";\n\n/**\n * Resolve the Brain image policy from the `COMPUTERUSE_BRAIN_IMAGE_POLICY`\n * runtime setting / env var, falling back to {@link DEFAULT_BRAIN_IMAGE_POLICY}.\n * The operator escape hatch to enable imageless planning without a code change\n * once it is validated against a real model.\n */\nexport function resolveBrainImagePolicy(\n runtime: IAgentRuntime | null,\n): BrainImagePolicy {\n const raw = runtime?.getSetting?.(\"COMPUTERUSE_BRAIN_IMAGE_POLICY\");\n const value = typeof raw === \"string\" ? raw.trim().toLowerCase() : undefined;\n if (value === \"always\" || value === \"on-escalation\" || value === \"never\") {\n return value;\n }\n return DEFAULT_BRAIN_IMAGE_POLICY;\n}\n\n/** Token-accounting snapshot for a Brain instance (#9105 M3). */\nexport interface BrainStats {\n /** IMAGE_DESCRIPTION model calls actually issued. */\n invocations: number;\n /** Describe calls served from the frame-dHash cache (no model call). */\n cacheHits: number;\n /**\n * Model calls issued with NO screenshot attached (the scene's OCR/AX text\n * sufficed). Each one saved roughly one full-frame image's worth of tokens.\n */\n imagelessCalls: number;\n /**\n * Estimated image tokens NOT sent because of imageless calls — the sum of\n * `(width * height) / BRAIN_PIXELS_PER_IMAGE_TOKEN` over every imageless\n * call, capped per frame at `BRAIN_MAX_PIXELS`.\n */\n estImageTokensSaved: number;\n}\n\n/**\n * Action kinds whose dispatch needs a grounded display-local coordinate. For\n * these, an imageless plan is only safe when its `ref`/rationale resolves to an\n * OCR/AX box; otherwise the Brain escalates to the pixels. The remaining kinds\n * (type/hotkey/key/wait/finish) carry everything in their args.\n */\nconst COORDINATE_ACTION_KINDS: ReadonlySet<BrainProposedAction[\"kind\"]> =\n new Set([\"click\", \"double_click\", \"right_click\", \"scroll\", \"drag\"]);\n\nfunction sceneCacheSignature(scene: Scene): string {\n return JSON.stringify({\n displays: scene.displays.map((display) => ({\n id: display.id,\n name: display.name,\n bounds: display.bounds,\n primary: display.primary,\n scaleFactor: display.scaleFactor,\n })),\n focused_window: scene.focused_window,\n apps: scene.apps.map((app) => ({\n name: app.name,\n pid: app.pid,\n windows: app.windows.map((window) => ({\n id: window.id,\n title: window.title,\n bounds: window.bounds,\n displayId: window.displayId,\n })),\n })),\n ocr: scene.ocr.map((box) => ({\n id: box.id,\n text: box.text,\n bbox: box.bbox,\n conf: Number(box.conf.toFixed(3)),\n displayId: box.displayId,\n })),\n ax: scene.ax.map((node) => ({\n id: node.id,\n role: node.role,\n label: node.label,\n bbox: node.bbox,\n actions: node.actions,\n displayId: node.displayId,\n })),\n vlm_scene: scene.vlm_scene,\n vlm_elements: scene.vlm_elements,\n });\n}\n\nexport class BrainParseError extends Error {\n constructor(\n message: string,\n public readonly raw: string,\n ) {\n super(message);\n this.name = \"BrainParseError\";\n }\n}\n\nexport interface BrainDeps {\n /** Optional override for tests — bypasses runtime.useModel. */\n invokeModel?: (args: {\n imageUrl: string;\n prompt: string;\n displayId: number;\n }) => Promise<string | ImageDescriptionResult>;\n /**\n * When to attach the raw screenshot to the planning model (#9105). Defaults\n * to `\"always\"` (legacy); see {@link resolveBrainImagePolicy} for the\n * operator opt-in to `\"on-escalation\"`.\n */\n imagePolicy?: BrainImagePolicy;\n}\n\nexport interface BrainInput {\n scene: Scene;\n goal: string;\n /**\n * Per-display capture buffers. If a display from `scene.displays` is\n * missing here, the Brain skips it. The cascade is responsible for\n * supplying these alongside the scene.\n */\n captures: Map<number, DisplayCapture>;\n}\n\n/**\n * Pure description of a \"Brain\" call. Created by `Cascade.runCascade` and\n * test fixtures.\n */\nexport class Brain {\n /**\n * Frame-dHash → BrainOutput cache. The WS2 MemoryArbiter only dedups the\n * IMAGE_DESCRIPTION call for LOCAL backends; the remote/cloud path bypasses\n * it, so an identical screen re-burns tokens every step. This call-site cache\n * skips the model entirely when the same frame is observed for the same goal,\n * cutting the dominant CUA-loop token cost regardless of backend (#9105 M3).\n */\n private readonly dhashCache: Array<{\n dh: bigint;\n goal: string;\n sceneSignature: string;\n output: BrainOutput;\n }> = [];\n private readonly imagePolicy: BrainImagePolicy;\n private invocations = 0;\n private cacheHits = 0;\n private imagelessCalls = 0;\n private estImageTokensSaved = 0;\n\n constructor(\n private readonly runtime: IAgentRuntime | null,\n private readonly deps: BrainDeps = {},\n ) {\n this.imagePolicy = deps.imagePolicy ?? DEFAULT_BRAIN_IMAGE_POLICY;\n }\n\n /** Token-accounting snapshot (model calls, cache hits, imageless savings). */\n getStats(): BrainStats {\n return {\n invocations: this.invocations,\n cacheHits: this.cacheHits,\n imagelessCalls: this.imagelessCalls,\n estImageTokensSaved: this.estImageTokensSaved,\n };\n }\n\n private cacheKey(\n frame: Buffer,\n goal: string,\n sceneSignature: string,\n ): { dh: bigint; goal: string; sceneSignature: string } | null {\n const dh = frameDhash(frame);\n return dh === null ? null : { dh, goal, sceneSignature };\n }\n\n /**\n * Return a cached plan for the same goal whose frame is within\n * `BRAIN_DHASH_HAMMING_THRESHOLD` bits of `dh` — a near-identical screen, not\n * just a byte-identical one. On a hit the entry is moved to the end (LRU), so\n * a steadily-evolving screen keeps its most-recent close match warm.\n */\n private findCached(\n dh: bigint,\n goal: string,\n sceneSignature: string,\n ): BrainOutput | null {\n for (let i = this.dhashCache.length - 1; i >= 0; i--) {\n const entry = this.dhashCache[i]!;\n if (\n entry.goal === goal &&\n entry.sceneSignature === sceneSignature &&\n hamming(entry.dh, dh) < BRAIN_DHASH_HAMMING_THRESHOLD\n ) {\n this.dhashCache.splice(i, 1);\n this.dhashCache.push(entry);\n return entry.output;\n }\n }\n return null;\n }\n\n private rememberOutput(\n key: { dh: bigint; goal: string; sceneSignature: string } | null,\n output: BrainOutput,\n ): BrainOutput {\n if (key) {\n // Evict oldest to bound memory.\n if (this.dhashCache.length >= BRAIN_DHASH_CACHE_MAX) {\n this.dhashCache.shift();\n }\n this.dhashCache.push({\n dh: key.dh,\n goal: key.goal,\n sceneSignature: key.sceneSignature,\n output,\n });\n }\n return output;\n }\n\n async observeAndPlan(input: BrainInput): Promise<BrainOutput> {\n if (input.captures.size === 0) {\n throw new Error(\"[computeruse/brain] no captures supplied\");\n }\n const compactScene = serializeSceneForPrompt(input.scene);\n const primaryDisplay =\n input.scene.focused_window?.displayId ??\n input.scene.displays.find((d) => d.primary)?.id ??\n input.scene.displays[0]?.id ??\n 0;\n const targetCapture =\n input.captures.get(primaryDisplay) ??\n input.captures.values().next().value;\n if (!targetCapture) {\n throw new Error(\"[computeruse/brain] could not pick a target capture\");\n }\n\n // Frame-dHash cache: a near-identical screen + same goal → reuse the prior\n // plan, skip the (possibly remote) IMAGE_DESCRIPTION call. Tolerant to a few\n // dHash bits so cosmetic churn (cursor, caret, anti-aliasing) still hits.\n const sceneSignature = sceneCacheSignature(input.scene);\n const key = this.cacheKey(\n targetCapture.frame,\n input.goal,\n sceneSignature,\n );\n if (key) {\n const cached = this.findCached(key.dh, key.goal, key.sceneSignature);\n if (cached) {\n this.cacheHits += 1;\n return cached;\n }\n }\n\n const displayId = targetCapture.display.id;\n const tryParse = (raw: string): BrainOutput | null => {\n try {\n return parseBrainOutput(raw);\n } catch {\n return null;\n }\n };\n const lightPrompt = brainPromptFor(\n compactScene,\n input.goal,\n /*strict*/ false,\n );\n const strictPrompt = brainPromptFor(\n compactScene,\n input.goal,\n /*strict*/ true,\n );\n\n // ── Pass 1: plan from the compact OCR/AX scene with NO image, unless the\n // policy demands the pixels up front (#9105). The compact scene already\n // carries the OCR text + AX boxes the planner needs to pick a target.\n if (this.imagePolicy !== \"always\") {\n this.invocations += 1;\n let imageless: string | ImageDescriptionResult | null = null;\n try {\n imageless = await this.invoke({\n imageUrl: \"\",\n prompt: lightPrompt,\n displayId,\n });\n } catch (err) {\n // \"never\" has no pixels to fall back to — surface the failure.\n if (this.imagePolicy === \"never\") throw err;\n // Otherwise degrade to the escalation (pixels) path rather than crash\n // the whole CUA loop if the text model is unavailable.\n logger.debug(\n `[computeruse/brain] imageless planning pass failed (${\n err instanceof Error ? err.message : String(err)\n }); escalating to pixels`,\n );\n }\n if (imageless !== null) {\n const parsedImageless = tryParse(extractText(imageless));\n if (parsedImageless) {\n const capped = enforceCaps(parsedImageless);\n // Keep the imageless plan when its target is grounded against the\n // OCR/AX boxes (or it needs no coordinate at all), OR when the policy\n // forbids ever attaching pixels. Otherwise fall through to escalation.\n if (\n this.imagePolicy === \"never\" ||\n this.resolvesWithoutImage(input.scene, capped)\n ) {\n this.recordImageless(targetCapture.frame);\n return this.rememberOutput(key, capped);\n }\n } else if (this.imagePolicy === \"never\") {\n // No pixels available to escalate to — strict-retry imageless once.\n this.invocations += 1;\n const strictImageless = await this.invoke({\n imageUrl: \"\",\n prompt: strictPrompt,\n displayId,\n });\n const rawStrict = extractText(strictImageless);\n const parsedStrict = tryParse(rawStrict);\n if (parsedStrict) {\n this.recordImageless(targetCapture.frame);\n return this.rememberOutput(key, enforceCaps(parsedStrict));\n }\n throw new BrainParseError(\n \"Brain output is not valid JSON conforming to BrainOutput after retry\",\n rawStrict,\n );\n }\n }\n }\n\n // ── Escalation: attach the pixels. Either policy === \"always\", or the\n // imageless plan could not be grounded / parsed. The existing encode +\n // strict-retry path runs from here unchanged.\n const dataUrl = await encodeForBrain(targetCapture.frame);\n this.invocations += 1;\n const first = await this.invoke({\n imageUrl: dataUrl,\n prompt: lightPrompt,\n displayId,\n });\n const parsed = tryParse(extractText(first));\n if (parsed) return this.rememberOutput(key, enforceCaps(parsed));\n // Strict retry — same image, stricter prompt.\n this.invocations += 1;\n const second = await this.invoke({\n imageUrl: dataUrl,\n prompt: strictPrompt,\n displayId,\n });\n const rawSecond = extractText(second);\n const parsedRetry = tryParse(rawSecond);\n if (parsedRetry) return this.rememberOutput(key, enforceCaps(parsedRetry));\n throw new BrainParseError(\n \"Brain output is not valid JSON conforming to BrainOutput after retry\",\n rawSecond,\n );\n }\n\n /**\n * True when the imageless plan needs no screenshot to dispatch: a\n * non-coordinate action (type/hotkey/key/wait/finish) carries everything in\n * its args, and a coordinate action is fine when its `ref`/rationale resolves\n * to a concrete OCR/AX box. When the target cannot be grounded we escalate to\n * the pixels — correctness over token saving.\n */\n private resolvesWithoutImage(scene: Scene, output: BrainOutput): boolean {\n const action: BrainProposedAction = output.proposed_action;\n if (!COORDINATE_ACTION_KINDS.has(action.kind)) return true;\n return (\n resolveReference(\n scene,\n action.ref,\n action.rationale,\n output.target_display_id,\n ) !== null\n );\n }\n\n private recordImageless(frame: Buffer): void {\n this.imagelessCalls += 1;\n this.estImageTokensSaved += estimateImageTokens(frame);\n }\n\n private async invoke(args: {\n imageUrl: string;\n prompt: string;\n displayId: number;\n }): Promise<string | ImageDescriptionResult> {\n if (this.deps.invokeModel) {\n return this.deps.invokeModel(args);\n }\n if (!this.runtime) {\n throw new Error(\n \"[computeruse/brain] no runtime + no invokeModel override; cannot call the planning model\",\n );\n }\n // Imageless planning (#9105): with no pixels to describe, route the\n // text-only plan through a TEXT model. The compact OCR/AX scene is already\n // in the prompt, and every IMAGE_DESCRIPTION provider (local-inference,\n // anthropic, …) hard-rejects an empty imageUrl, so an empty frame must NOT\n // be sent there.\n if (args.imageUrl.length === 0) {\n return this.runtime.useModel(ModelType.TEXT_LARGE, {\n prompt: args.prompt,\n });\n }\n return this.runtime.useModel(ModelType.IMAGE_DESCRIPTION, {\n imageUrl: args.imageUrl,\n prompt: args.prompt,\n });\n }\n}\n\n/* ── prompt + parser ───────────────────────────────────────────────────── */\n\nexport function brainPromptFor(\n compactSceneJson: string,\n goal: string,\n strict: boolean,\n): string {\n const header = strict\n ? \"You are the planning Brain inside an autonomous desktop agent. You MUST emit ONLY a JSON object — no prose, no markdown fence — matching the BrainOutput schema. Do not include any text before or after the JSON.\"\n : \"You are the planning Brain inside an autonomous desktop agent. Decide the single next action that makes the most progress toward the goal.\";\n return [\n header,\n \"\",\n `Goal: ${goal}`,\n \"\",\n \"Current scene context (display-local coords):\",\n compactSceneJson,\n \"\",\n \"Schema:\",\n \"{\",\n ' \"scene_summary\": \"one short paragraph\",',\n ' \"target_display_id\": number,',\n ' \"roi\": [',\n ' { \"displayId\": number, \"bbox\": [x, y, w, h], \"reason\": \"why\" }',\n \" ],\",\n ' \"proposed_action\": {',\n ' \"kind\": \"click|double_click|right_click|type|hotkey|key|scroll|drag|wait|finish\",',\n ' \"ref\": \"t<displayId>-<seq> or a<displayId>-<seq> (optional)\",',\n ' \"args\": { ... action-specific keys ... },',\n ' \"rationale\": \"why this action\"',\n \" }\",\n \"}\",\n \"\",\n `Cap ROIs to ${BRAIN_MAX_ROIS}. Use action kind \"finish\" when the goal is already accomplished, \"wait\" when the screen is mid-transition.`,\n strict\n ? \"Return raw JSON. No fences, no commentary, no extra fields.\"\n : \"Output JSON only (a single object). Markdown fences are optional but will be stripped.\",\n ].join(\"\\n\");\n}\n\nconst FENCE_RE = /```(?:json)?\\s*([\\s\\S]*?)\\s*```/i;\n\nexport function parseBrainOutput(raw: string): BrainOutput {\n const trimmed = raw.trim();\n let body = trimmed;\n const fenceMatch = FENCE_RE.exec(trimmed);\n if (fenceMatch) {\n const fencedBody = fenceMatch[1];\n if (fencedBody === undefined) {\n throw new BrainParseError(\"Brain response markdown fence was empty\", raw);\n }\n body = fencedBody.trim();\n }\n // Allow a leading prose paragraph by snipping to the first `{`.\n const firstBrace = body.indexOf(\"{\");\n if (firstBrace > 0) body = body.slice(firstBrace);\n const lastBrace = body.lastIndexOf(\"}\");\n if (lastBrace !== -1 && lastBrace < body.length - 1) {\n body = body.slice(0, lastBrace + 1);\n }\n let parsed: unknown;\n try {\n parsed = JSON.parse(body);\n } catch (err) {\n throw new BrainParseError(\n `Brain response was not valid JSON: ${err instanceof Error ? err.message : String(err)}`,\n raw,\n );\n }\n if (!parsed || typeof parsed !== \"object\") {\n throw new BrainParseError(\"Brain response is not an object\", raw);\n }\n const obj = parsed as Record<string, unknown>;\n const summary =\n typeof obj.scene_summary === \"string\" ? obj.scene_summary : \"\";\n const targetDisplay =\n typeof obj.target_display_id === \"number\" ? obj.target_display_id : 0;\n const rois = Array.isArray(obj.roi) ? obj.roi : [];\n const proposed = (obj.proposed_action ?? null) as Record<\n string,\n unknown\n > | null;\n if (!proposed || typeof proposed !== \"object\") {\n throw new BrainParseError(\"Brain response missing proposed_action\", raw);\n }\n const kind = proposed.kind;\n if (typeof kind !== \"string\") {\n throw new BrainParseError(\n \"proposed_action.kind missing or not a string\",\n raw,\n );\n }\n const rationale =\n typeof proposed.rationale === \"string\" ? proposed.rationale : \"\";\n const ref = typeof proposed.ref === \"string\" ? proposed.ref : undefined;\n const args =\n proposed.args && typeof proposed.args === \"object\"\n ? (proposed.args as Record<string, unknown>)\n : undefined;\n const validated: BrainOutput = {\n scene_summary: summary,\n target_display_id: targetDisplay,\n roi: rois\n .map((r): BrainRoi | null => {\n if (!r || typeof r !== \"object\") return null;\n const ro = r as Record<string, unknown>;\n const bb = ro.bbox;\n if (!Array.isArray(bb) || bb.length !== 4) return null;\n const nums = bb.map((n) => Number(n));\n if (!nums.every((n) => Number.isFinite(n))) return null;\n const [x, y, width, height] = nums;\n if (\n x === undefined ||\n y === undefined ||\n width === undefined ||\n height === undefined\n ) {\n return null;\n }\n return {\n displayId:\n typeof ro.displayId === \"number\" ? ro.displayId : targetDisplay,\n bbox: [x, y, width, height],\n reason: typeof ro.reason === \"string\" ? ro.reason : \"\",\n };\n })\n .filter((x): x is BrainRoi => x !== null),\n proposed_action: {\n kind: kind as BrainOutput[\"proposed_action\"][\"kind\"],\n ref,\n args,\n rationale,\n },\n };\n return validated;\n}\n\nfunction enforceCaps(out: BrainOutput): BrainOutput {\n if (out.roi.length > BRAIN_MAX_ROIS) {\n out.roi = out.roi.slice(0, BRAIN_MAX_ROIS);\n }\n return out;\n}\n\nfunction extractText(value: string | ImageDescriptionResult): string {\n if (typeof value === \"string\") return value;\n if (value && typeof value === \"object\") {\n if (typeof value.description === \"string\") return value.description;\n if (typeof value.title === \"string\") return value.title;\n }\n return String(value);\n}\n\n/**\n * Encode a PNG buffer for transport to the IMAGE_DESCRIPTION model. We don't\n * resize here — `runtime.useModel` adapters (and any vLLM backends behind\n * them) handle the `max_pixels` downscale. The constant `BRAIN_MAX_PIXELS`\n * is exported for the cascade so it can crop ROIs at the right native\n * resolution before invoking the Actor.\n */\nexport async function encodeForBrain(png: Buffer): Promise<string> {\n return `data:image/png;base64,${png.toString(\"base64\")}`;\n}\n\n/**\n * Estimate the visual tokens a frame would have cost the planning model, for\n * the \"tokens saved by going imageless\" telemetry (#9105). The backends apply a\n * `max_pixels` downscale, so the per-frame estimate is capped at\n * `BRAIN_MAX_PIXELS`. Falls back to the cap when the PNG header is unreadable —\n * an attached frame would have been downscaled to that ceiling regardless.\n */\nexport function estimateImageTokens(png: Buffer): number {\n const dims = pngDimensions(png);\n const pixels = dims\n ? Math.min(dims.width * dims.height, BRAIN_MAX_PIXELS)\n : BRAIN_MAX_PIXELS;\n return Math.round(pixels / BRAIN_PIXELS_PER_IMAGE_TOKEN);\n}\n",
16
+ "/**\n * WS7 — Brain (full-screen reasoning).\n *\n * Sends one image per display (each downscaled to ~1.3 MP, the local Gemma\n * vision / OS-Atlas image budget) to `runtime.useModel(IMAGE_DESCRIPTION, ...)`.\n * The model is prompted to emit a JSON `BrainOutput` describing:\n * - the scene in one paragraph,\n * - which display to act on,\n * - up to N ROIs the Actor should zoom into,\n * - a single proposed action with rationale.\n *\n * The Brain itself doesn't dispatch — it just produces `BrainOutput`. The\n * cascade (\"ScreenSeekeR\") is the orchestrator that takes a `BrainOutput`,\n * optionally calls the Actor on cropped ROIs, and produces a concrete\n * `ProposedAction` for the dispatcher.\n *\n * Image transport contract: we pass `imageUrl` as a `data:image/png;base64,...`\n * URL. The WS2 MemoryArbiter intercepts at `ModelType.IMAGE_DESCRIPTION` and\n * routes through its content-hash cache, so identical frames don't burn\n * inference budget twice.\n *\n * Image policy (#9105): the compact scene already carries OCR text + AX boxes,\n * which can suffice to pick the next target, so the `\"on-escalation\"` policy\n * plans from that text-only context with NO image — routed through a TEXT model,\n * since every IMAGE_DESCRIPTION provider rejects an empty imageUrl — and\n * attaches the ~1.3 MP frame only when the planned target cannot be grounded\n * against the OCR/AX boxes. The DEFAULT is `\"always\"` (legacy: image on every\n * call) until a real-model CUA trajectory validates imageless planning accuracy;\n * operators opt into `\"on-escalation\"` via the `COMPUTERUSE_BRAIN_IMAGE_POLICY`\n * setting. `\"never\"` never attaches pixels.\n *\n * Parse strictness:\n * - We try to parse the response as JSON (either the literal string or\n * `result.description`).\n * - On first parse failure, retry once with a stricter prompt.\n * - On second failure, throw `BrainParseError` — the cascade surfaces this\n * as a structured `ActionResult.error` and aborts the turn cleanly.\n */\n\nimport {\n type IAgentRuntime,\n type ImageDescriptionResult,\n logger,\n ModelType,\n} from \"@elizaos/core\";\nimport type { DisplayCapture } from \"../platform/capture.js\";\nimport { frameDhash, hamming, pngDimensions } from \"../scene/dhash.js\";\nimport type { Scene } from \"../scene/scene-types.js\";\nimport { serializeSceneForPrompt } from \"../scene/serialize.js\";\nimport { resolveReference } from \"./actor.js\";\nimport type { BrainOutput, BrainProposedAction, BrainRoi } from \"./types.js\";\n\nexport const BRAIN_MAX_PIXELS = 1_310_720; // 1280 * 32 * 32 ≈ 1.3 MP cap\nexport const BRAIN_MAX_ROIS = 2;\n/** Bound on the per-Brain dHash→BrainOutput cache (LRU-ish, oldest evicted). */\nexport const BRAIN_DHASH_CACHE_MAX = 16;\n/**\n * dHash Hamming threshold for cached-plan reuse (#9581 continuous-understanding\n * tuning). Exact-equality (distance 0) re-burned the IMAGE_DESCRIPTION model on\n * cosmetically-identical frames — cursor jitter, a blinking caret, anti-aliasing,\n * and tiny scroll noise all flip a few dHash bits.\n *\n * This mirrors `SCREEN_STATE_HAMMING_THRESHOLD`: distances below the threshold\n * are unchanged; distances at or above it are changed and must re-plan.\n */\nexport const BRAIN_DHASH_HAMMING_THRESHOLD = 5;\n/**\n * Image-token estimate per source pixel for the local Gemma vision / OS-Atlas\n * budget: one visual token ≈ a 28×28 (≈750 px) patch. Used only to quantify\n * the saving when a frame is *not* attached (#9105).\n */\nexport const BRAIN_PIXELS_PER_IMAGE_TOKEN = 750;\n\n/**\n * When to attach the raw screenshot to the planning model (#9105):\n * - `\"always\"` — attach the pixels on every call (legacy behaviour). Default.\n * - `\"on-escalation\"` — plan from the compact OCR/AX scene with no image\n * first (routed through a TEXT model); attach pixels\n * only when the planned target cannot be grounded\n * against the OCR/AX boxes or a strict-retry fires.\n * - `\"never\"` — never attach the screenshot; plan from the scene alone.\n */\nexport type BrainImagePolicy = \"always\" | \"on-escalation\" | \"never\";\n\n/**\n * Default is `\"always\"` (proven legacy behaviour). `\"on-escalation\"` cuts the\n * dominant per-frame image-token cost but plans the first pass blind to the\n * pixels, so it stays opt-in (via the `COMPUTERUSE_BRAIN_IMAGE_POLICY` runtime\n * setting / env var) until a real-model CUA trajectory validates its accuracy.\n */\nexport const DEFAULT_BRAIN_IMAGE_POLICY: BrainImagePolicy = \"always\";\n\n/**\n * Resolve the Brain image policy from the `COMPUTERUSE_BRAIN_IMAGE_POLICY`\n * runtime setting / env var, falling back to {@link DEFAULT_BRAIN_IMAGE_POLICY}.\n * The operator escape hatch to enable imageless planning without a code change\n * once it is validated against a real model.\n */\nexport function resolveBrainImagePolicy(\n runtime: IAgentRuntime | null,\n): BrainImagePolicy {\n const raw = runtime?.getSetting?.(\"COMPUTERUSE_BRAIN_IMAGE_POLICY\");\n const value = typeof raw === \"string\" ? raw.trim().toLowerCase() : undefined;\n if (value === \"always\" || value === \"on-escalation\" || value === \"never\") {\n return value;\n }\n return DEFAULT_BRAIN_IMAGE_POLICY;\n}\n\n/** Token-accounting snapshot for a Brain instance (#9105 M3). */\nexport interface BrainStats {\n /** IMAGE_DESCRIPTION model calls actually issued. */\n invocations: number;\n /** Describe calls served from the frame-dHash cache (no model call). */\n cacheHits: number;\n /**\n * Model calls issued with NO screenshot attached (the scene's OCR/AX text\n * sufficed). Each one saved roughly one full-frame image's worth of tokens.\n */\n imagelessCalls: number;\n /**\n * Estimated image tokens NOT sent because of imageless calls — the sum of\n * `(width * height) / BRAIN_PIXELS_PER_IMAGE_TOKEN` over every imageless\n * call, capped per frame at `BRAIN_MAX_PIXELS`.\n */\n estImageTokensSaved: number;\n}\n\n/**\n * Action kinds whose dispatch needs a grounded display-local coordinate. For\n * these, an imageless plan is only safe when its `ref`/rationale resolves to an\n * OCR/AX box; otherwise the Brain escalates to the pixels. The remaining kinds\n * (type/hotkey/key/wait/finish) carry everything in their args.\n */\nconst COORDINATE_ACTION_KINDS: ReadonlySet<BrainProposedAction[\"kind\"]> =\n new Set([\"click\", \"double_click\", \"right_click\", \"scroll\", \"drag\"]);\n\nfunction sceneCacheSignature(scene: Scene): string {\n return JSON.stringify({\n displays: scene.displays.map((display) => ({\n id: display.id,\n name: display.name,\n bounds: display.bounds,\n primary: display.primary,\n scaleFactor: display.scaleFactor,\n })),\n focused_window: scene.focused_window,\n apps: scene.apps.map((app) => ({\n name: app.name,\n pid: app.pid,\n windows: app.windows.map((window) => ({\n id: window.id,\n title: window.title,\n bounds: window.bounds,\n displayId: window.displayId,\n })),\n })),\n ocr: scene.ocr.map((box) => ({\n id: box.id,\n text: box.text,\n bbox: box.bbox,\n conf: Number(box.conf.toFixed(3)),\n displayId: box.displayId,\n })),\n ax: scene.ax.map((node) => ({\n id: node.id,\n role: node.role,\n label: node.label,\n bbox: node.bbox,\n actions: node.actions,\n displayId: node.displayId,\n })),\n vlm_scene: scene.vlm_scene,\n vlm_elements: scene.vlm_elements,\n });\n}\n\nexport class BrainParseError extends Error {\n constructor(\n message: string,\n public readonly raw: string,\n ) {\n super(message);\n this.name = \"BrainParseError\";\n }\n}\n\nexport interface BrainDeps {\n /** Optional override for tests — bypasses runtime.useModel. */\n invokeModel?: (args: {\n imageUrl: string;\n prompt: string;\n displayId: number;\n }) => Promise<string | ImageDescriptionResult>;\n /**\n * When to attach the raw screenshot to the planning model (#9105). Defaults\n * to `\"always\"` (legacy); see {@link resolveBrainImagePolicy} for the\n * operator opt-in to `\"on-escalation\"`.\n */\n imagePolicy?: BrainImagePolicy;\n}\n\nexport interface BrainInput {\n scene: Scene;\n goal: string;\n /**\n * Per-display capture buffers. If a display from `scene.displays` is\n * missing here, the Brain skips it. The cascade is responsible for\n * supplying these alongside the scene.\n */\n captures: Map<number, DisplayCapture>;\n}\n\n/**\n * Pure description of a \"Brain\" call. Created by `Cascade.runCascade` and\n * test fixtures.\n */\nexport class Brain {\n /**\n * Frame-dHash → BrainOutput cache. The WS2 MemoryArbiter only dedups the\n * IMAGE_DESCRIPTION call for LOCAL backends; the remote/cloud path bypasses\n * it, so an identical screen re-burns tokens every step. This call-site cache\n * skips the model entirely when the same frame is observed for the same goal,\n * cutting the dominant CUA-loop token cost regardless of backend (#9105 M3).\n */\n private readonly dhashCache: Array<{\n dh: bigint;\n goal: string;\n sceneSignature: string;\n output: BrainOutput;\n }> = [];\n private readonly imagePolicy: BrainImagePolicy;\n private invocations = 0;\n private cacheHits = 0;\n private imagelessCalls = 0;\n private estImageTokensSaved = 0;\n\n constructor(\n private readonly runtime: IAgentRuntime | null,\n private readonly deps: BrainDeps = {},\n ) {\n this.imagePolicy = deps.imagePolicy ?? DEFAULT_BRAIN_IMAGE_POLICY;\n }\n\n /** Token-accounting snapshot (model calls, cache hits, imageless savings). */\n getStats(): BrainStats {\n return {\n invocations: this.invocations,\n cacheHits: this.cacheHits,\n imagelessCalls: this.imagelessCalls,\n estImageTokensSaved: this.estImageTokensSaved,\n };\n }\n\n private cacheKey(\n frame: Buffer,\n goal: string,\n sceneSignature: string,\n ): { dh: bigint; goal: string; sceneSignature: string } | null {\n const dh = frameDhash(frame);\n return dh === null ? null : { dh, goal, sceneSignature };\n }\n\n /**\n * Return a cached plan for the same goal whose frame is within\n * `BRAIN_DHASH_HAMMING_THRESHOLD` bits of `dh` — a near-identical screen, not\n * just a byte-identical one. On a hit the entry is moved to the end (LRU), so\n * a steadily-evolving screen keeps its most-recent close match warm.\n */\n private findCached(\n dh: bigint,\n goal: string,\n sceneSignature: string,\n ): BrainOutput | null {\n for (let i = this.dhashCache.length - 1; i >= 0; i--) {\n const entry = this.dhashCache[i]!;\n if (\n entry.goal === goal &&\n entry.sceneSignature === sceneSignature &&\n hamming(entry.dh, dh) < BRAIN_DHASH_HAMMING_THRESHOLD\n ) {\n this.dhashCache.splice(i, 1);\n this.dhashCache.push(entry);\n return entry.output;\n }\n }\n return null;\n }\n\n private rememberOutput(\n key: { dh: bigint; goal: string; sceneSignature: string } | null,\n output: BrainOutput,\n ): BrainOutput {\n if (key) {\n // Evict oldest to bound memory.\n if (this.dhashCache.length >= BRAIN_DHASH_CACHE_MAX) {\n this.dhashCache.shift();\n }\n this.dhashCache.push({\n dh: key.dh,\n goal: key.goal,\n sceneSignature: key.sceneSignature,\n output,\n });\n }\n return output;\n }\n\n async observeAndPlan(input: BrainInput): Promise<BrainOutput> {\n if (input.captures.size === 0) {\n throw new Error(\"[computeruse/brain] no captures supplied\");\n }\n const compactScene = serializeSceneForPrompt(input.scene);\n const primaryDisplay =\n input.scene.focused_window?.displayId ??\n input.scene.displays.find((d) => d.primary)?.id ??\n input.scene.displays[0]?.id ??\n 0;\n const targetCapture =\n input.captures.get(primaryDisplay) ??\n input.captures.values().next().value;\n if (!targetCapture) {\n throw new Error(\"[computeruse/brain] could not pick a target capture\");\n }\n\n // Frame-dHash cache: a near-identical screen + same goal → reuse the prior\n // plan, skip the (possibly remote) IMAGE_DESCRIPTION call. Tolerant to a few\n // dHash bits so cosmetic churn (cursor, caret, anti-aliasing) still hits.\n const sceneSignature = sceneCacheSignature(input.scene);\n const key = this.cacheKey(targetCapture.frame, input.goal, sceneSignature);\n if (key) {\n const cached = this.findCached(key.dh, key.goal, key.sceneSignature);\n if (cached) {\n this.cacheHits += 1;\n return cached;\n }\n }\n\n const displayId = targetCapture.display.id;\n const tryParse = (raw: string): BrainOutput | null => {\n try {\n return parseBrainOutput(raw);\n } catch {\n return null;\n }\n };\n const lightPrompt = brainPromptFor(\n compactScene,\n input.goal,\n /*strict*/ false,\n );\n const strictPrompt = brainPromptFor(\n compactScene,\n input.goal,\n /*strict*/ true,\n );\n\n // ── Pass 1: plan from the compact OCR/AX scene with NO image, unless the\n // policy demands the pixels up front (#9105). The compact scene already\n // carries the OCR text + AX boxes the planner needs to pick a target.\n if (this.imagePolicy !== \"always\") {\n this.invocations += 1;\n let imageless: string | ImageDescriptionResult | null = null;\n try {\n imageless = await this.invoke({\n imageUrl: \"\",\n prompt: lightPrompt,\n displayId,\n });\n } catch (err) {\n // \"never\" has no pixels to fall back to — surface the failure.\n if (this.imagePolicy === \"never\") throw err;\n // Otherwise degrade to the escalation (pixels) path rather than crash\n // the whole CUA loop if the text model is unavailable.\n logger.debug(\n `[computeruse/brain] imageless planning pass failed (${\n err instanceof Error ? err.message : String(err)\n }); escalating to pixels`,\n );\n }\n if (imageless !== null) {\n const parsedImageless = tryParse(extractText(imageless));\n if (parsedImageless) {\n const capped = enforceCaps(parsedImageless);\n // Keep the imageless plan when its target is grounded against the\n // OCR/AX boxes (or it needs no coordinate at all), OR when the policy\n // forbids ever attaching pixels. Otherwise fall through to escalation.\n if (\n this.imagePolicy === \"never\" ||\n this.resolvesWithoutImage(input.scene, capped)\n ) {\n this.recordImageless(targetCapture.frame);\n return this.rememberOutput(key, capped);\n }\n } else if (this.imagePolicy === \"never\") {\n // No pixels available to escalate to — strict-retry imageless once.\n this.invocations += 1;\n const strictImageless = await this.invoke({\n imageUrl: \"\",\n prompt: strictPrompt,\n displayId,\n });\n const rawStrict = extractText(strictImageless);\n const parsedStrict = tryParse(rawStrict);\n if (parsedStrict) {\n this.recordImageless(targetCapture.frame);\n return this.rememberOutput(key, enforceCaps(parsedStrict));\n }\n throw new BrainParseError(\n \"Brain output is not valid JSON conforming to BrainOutput after retry\",\n rawStrict,\n );\n }\n }\n }\n\n // ── Escalation: attach the pixels. Either policy === \"always\", or the\n // imageless plan could not be grounded / parsed. The existing encode +\n // strict-retry path runs from here unchanged.\n const dataUrl = await encodeForBrain(targetCapture.frame);\n this.invocations += 1;\n const first = await this.invoke({\n imageUrl: dataUrl,\n prompt: lightPrompt,\n displayId,\n });\n const parsed = tryParse(extractText(first));\n if (parsed) return this.rememberOutput(key, enforceCaps(parsed));\n // Strict retry — same image, stricter prompt.\n this.invocations += 1;\n const second = await this.invoke({\n imageUrl: dataUrl,\n prompt: strictPrompt,\n displayId,\n });\n const rawSecond = extractText(second);\n const parsedRetry = tryParse(rawSecond);\n if (parsedRetry) return this.rememberOutput(key, enforceCaps(parsedRetry));\n throw new BrainParseError(\n \"Brain output is not valid JSON conforming to BrainOutput after retry\",\n rawSecond,\n );\n }\n\n /**\n * True when the imageless plan needs no screenshot to dispatch: a\n * non-coordinate action (type/hotkey/key/wait/finish) carries everything in\n * its args, and a coordinate action is fine when its `ref`/rationale resolves\n * to a concrete OCR/AX box. When the target cannot be grounded we escalate to\n * the pixels — correctness over token saving.\n */\n private resolvesWithoutImage(scene: Scene, output: BrainOutput): boolean {\n const action: BrainProposedAction = output.proposed_action;\n if (!COORDINATE_ACTION_KINDS.has(action.kind)) return true;\n return (\n resolveReference(\n scene,\n action.ref,\n action.rationale,\n output.target_display_id,\n ) !== null\n );\n }\n\n private recordImageless(frame: Buffer): void {\n this.imagelessCalls += 1;\n this.estImageTokensSaved += estimateImageTokens(frame);\n }\n\n private async invoke(args: {\n imageUrl: string;\n prompt: string;\n displayId: number;\n }): Promise<string | ImageDescriptionResult> {\n if (this.deps.invokeModel) {\n return this.deps.invokeModel(args);\n }\n if (!this.runtime) {\n throw new Error(\n \"[computeruse/brain] no runtime + no invokeModel override; cannot call the planning model\",\n );\n }\n // Imageless planning (#9105): with no pixels to describe, route the\n // text-only plan through a TEXT model. The compact OCR/AX scene is already\n // in the prompt, and every IMAGE_DESCRIPTION provider (local-inference,\n // anthropic, …) hard-rejects an empty imageUrl, so an empty frame must NOT\n // be sent there.\n if (args.imageUrl.length === 0) {\n return this.runtime.useModel(ModelType.TEXT_LARGE, {\n prompt: args.prompt,\n });\n }\n return this.runtime.useModel(ModelType.IMAGE_DESCRIPTION, {\n imageUrl: args.imageUrl,\n prompt: args.prompt,\n });\n }\n}\n\n/* ── prompt + parser ───────────────────────────────────────────────────── */\n\nexport function brainPromptFor(\n compactSceneJson: string,\n goal: string,\n strict: boolean,\n): string {\n const header = strict\n ? \"You are the planning Brain inside an autonomous desktop agent. You MUST emit ONLY a JSON object — no prose, no markdown fence — matching the BrainOutput schema. Do not include any text before or after the JSON.\"\n : \"You are the planning Brain inside an autonomous desktop agent. Decide the single next action that makes the most progress toward the goal.\";\n return [\n header,\n \"\",\n `Goal: ${goal}`,\n \"\",\n \"Current scene context (display-local coords):\",\n compactSceneJson,\n \"\",\n \"Schema:\",\n \"{\",\n ' \"scene_summary\": \"one short paragraph\",',\n ' \"target_display_id\": number,',\n ' \"roi\": [',\n ' { \"displayId\": number, \"bbox\": [x, y, w, h], \"reason\": \"why\" }',\n \" ],\",\n ' \"proposed_action\": {',\n ' \"kind\": \"click|double_click|right_click|type|hotkey|key|scroll|drag|wait|finish\",',\n ' \"ref\": \"t<displayId>-<seq> or a<displayId>-<seq> (optional)\",',\n ' \"args\": { ... action-specific keys ... },',\n ' \"rationale\": \"why this action\"',\n \" }\",\n \"}\",\n \"\",\n `Cap ROIs to ${BRAIN_MAX_ROIS}. Use action kind \"finish\" when the goal is already accomplished, \"wait\" when the screen is mid-transition.`,\n strict\n ? \"Return raw JSON. No fences, no commentary, no extra fields.\"\n : \"Output JSON only (a single object). Markdown fences are optional but will be stripped.\",\n ].join(\"\\n\");\n}\n\nconst FENCE_RE = /```(?:json)?\\s*([\\s\\S]*?)\\s*```/i;\n\nexport function parseBrainOutput(raw: string): BrainOutput {\n const trimmed = raw.trim();\n let body = trimmed;\n const fenceMatch = FENCE_RE.exec(trimmed);\n if (fenceMatch) {\n const fencedBody = fenceMatch[1];\n if (fencedBody === undefined) {\n throw new BrainParseError(\"Brain response markdown fence was empty\", raw);\n }\n body = fencedBody.trim();\n }\n // Allow a leading prose paragraph by snipping to the first `{`.\n const firstBrace = body.indexOf(\"{\");\n if (firstBrace > 0) body = body.slice(firstBrace);\n const lastBrace = body.lastIndexOf(\"}\");\n if (lastBrace !== -1 && lastBrace < body.length - 1) {\n body = body.slice(0, lastBrace + 1);\n }\n let parsed: unknown;\n try {\n parsed = JSON.parse(body);\n } catch (err) {\n throw new BrainParseError(\n `Brain response was not valid JSON: ${err instanceof Error ? err.message : String(err)}`,\n raw,\n );\n }\n if (!parsed || typeof parsed !== \"object\") {\n throw new BrainParseError(\"Brain response is not an object\", raw);\n }\n const obj = parsed as Record<string, unknown>;\n const summary =\n typeof obj.scene_summary === \"string\" ? obj.scene_summary : \"\";\n const targetDisplay =\n typeof obj.target_display_id === \"number\" ? obj.target_display_id : 0;\n const rois = Array.isArray(obj.roi) ? obj.roi : [];\n const proposed = (obj.proposed_action ?? null) as Record<\n string,\n unknown\n > | null;\n if (!proposed || typeof proposed !== \"object\") {\n throw new BrainParseError(\"Brain response missing proposed_action\", raw);\n }\n const kind = proposed.kind;\n if (typeof kind !== \"string\") {\n throw new BrainParseError(\n \"proposed_action.kind missing or not a string\",\n raw,\n );\n }\n const rationale =\n typeof proposed.rationale === \"string\" ? proposed.rationale : \"\";\n const ref = typeof proposed.ref === \"string\" ? proposed.ref : undefined;\n const args =\n proposed.args && typeof proposed.args === \"object\"\n ? (proposed.args as Record<string, unknown>)\n : undefined;\n const validated: BrainOutput = {\n scene_summary: summary,\n target_display_id: targetDisplay,\n roi: rois\n .map((r): BrainRoi | null => {\n if (!r || typeof r !== \"object\") return null;\n const ro = r as Record<string, unknown>;\n const bb = ro.bbox;\n if (!Array.isArray(bb) || bb.length !== 4) return null;\n const nums = bb.map((n) => Number(n));\n if (!nums.every((n) => Number.isFinite(n))) return null;\n const [x, y, width, height] = nums;\n if (\n x === undefined ||\n y === undefined ||\n width === undefined ||\n height === undefined\n ) {\n return null;\n }\n return {\n displayId:\n typeof ro.displayId === \"number\" ? ro.displayId : targetDisplay,\n bbox: [x, y, width, height],\n reason: typeof ro.reason === \"string\" ? ro.reason : \"\",\n };\n })\n .filter((x): x is BrainRoi => x !== null),\n proposed_action: {\n kind: kind as BrainOutput[\"proposed_action\"][\"kind\"],\n ref,\n args,\n rationale,\n },\n };\n return validated;\n}\n\nfunction enforceCaps(out: BrainOutput): BrainOutput {\n if (out.roi.length > BRAIN_MAX_ROIS) {\n out.roi = out.roi.slice(0, BRAIN_MAX_ROIS);\n }\n return out;\n}\n\nfunction extractText(value: string | ImageDescriptionResult): string {\n if (typeof value === \"string\") return value;\n if (value && typeof value === \"object\") {\n if (typeof value.description === \"string\") return value.description;\n if (typeof value.title === \"string\") return value.title;\n }\n return String(value);\n}\n\n/**\n * Encode a PNG buffer for transport to the IMAGE_DESCRIPTION model. We don't\n * resize here — `runtime.useModel` adapters (and any vLLM backends behind\n * them) handle the `max_pixels` downscale. The constant `BRAIN_MAX_PIXELS`\n * is exported for the cascade so it can crop ROIs at the right native\n * resolution before invoking the Actor.\n */\nexport async function encodeForBrain(png: Buffer): Promise<string> {\n return `data:image/png;base64,${png.toString(\"base64\")}`;\n}\n\n/**\n * Estimate the visual tokens a frame would have cost the planning model, for\n * the \"tokens saved by going imageless\" telemetry (#9105). The backends apply a\n * `max_pixels` downscale, so the per-frame estimate is capped at\n * `BRAIN_MAX_PIXELS`. Falls back to the cap when the PNG header is unreadable —\n * an attached frame would have been downscaled to that ceiling regardless.\n */\nexport function estimateImageTokens(png: Buffer): number {\n const dims = pngDimensions(png);\n const pixels = dims\n ? Math.min(dims.width * dims.height, BRAIN_MAX_PIXELS)\n : BRAIN_MAX_PIXELS;\n return Math.round(pixels / BRAIN_PIXELS_PER_IMAGE_TOKEN);\n}\n",
17
17
  "/**\n * WS7 — ScreenSeekeR cascade.\n *\n * Step 1: Brain looks at the full-screen scene for `target_display_id`.\n * Step 2: For each ROI (up to BRAIN_MAX_ROIS), crop the *native resolution*\n * region from the captured PNG and hand it to the Actor for\n * fine grounding. The Actor returns display-local coords.\n * Step 3: Combine the Brain's proposed action with the Actor's coordinates\n * (or fall back to the OCR/AX deterministic actor on `ref`) and\n * produce a single `ProposedAction` for the dispatcher.\n *\n * Cropping notes:\n * - We do NOT decode the PNG. The cropped buffer is what we hand to the\n * Actor. For the built-in OCR/AX actor, the crop is just a pass-through.\n * - When a real PNG cropper is wired in (sharp / native module), this\n * module is the place to add it: `cropPngToRoi(frame, bbox)`.\n * - The cascade tests use the actual frame bytes; assertions are on the\n * resolved coords and the order of Actor calls.\n */\n\nimport { logger } from \"@elizaos/core\";\nimport type { DisplayCapture } from \"../platform/capture.js\";\nimport type { Scene } from \"../scene/scene-types.js\";\nimport type { Actor, ActorGroundArgs } from \"./actor.js\";\nimport { resolveReference } from \"./actor.js\";\nimport { BRAIN_MAX_ROIS, type Brain } from \"./brain.js\";\nimport type {\n BrainOutput,\n BrainRoi,\n CascadeResult,\n ProposedAction,\n} from \"./types.js\";\n\nexport interface CascadeDeps {\n brain: Brain;\n actor?: Actor | null;\n /** Cropper override (mostly tests). Returns a Buffer for the bbox region. */\n crop?: (frame: Buffer, bbox: [number, number, number, number]) => Buffer;\n}\n\nexport interface CascadeInput {\n scene: Scene;\n goal: string;\n /** Per-display PNG captures, keyed by displayId. */\n captures: Map<number, DisplayCapture>;\n}\n\n/** Grounding-cache accounting (#9105 M5). */\nexport interface CascadeGroundStats {\n /** Grounding resolutions served from the per-Scene cache. */\n hits: number;\n /** Grounding resolutions that ran the full resolve (OCR/AX + optional actor). */\n misses: number;\n}\n\nexport class Cascade {\n /**\n * Per-Scene grounding cache (predict/ground split, #9105 M5). Grounding the\n * same target (ref or rationale) on the same Scene is deterministic, so the\n * cheap GROUND step is memoized — re-grounding within a turn skips a repeat\n * `resolveReference` (OCR/AX) scan and a repeat (possibly model-backed)\n * `actor.ground` call. Keyed by Scene timestamp so a new screen invalidates.\n */\n private readonly groundCache = new Map<\n string,\n { displayId: number; x: number; y: number }\n >();\n private groundStats: CascadeGroundStats = { hits: 0, misses: 0 };\n\n constructor(private readonly deps: CascadeDeps) {}\n\n /** Grounding cache hit/miss snapshot for token/work accounting. */\n getGroundStats(): CascadeGroundStats {\n return { ...this.groundStats };\n }\n\n async run(input: CascadeInput): Promise<CascadeResult> {\n const brainOut = await this.deps.brain.observeAndPlan({\n scene: input.scene,\n goal: input.goal,\n captures: input.captures,\n });\n return this.resolveBrainOutput(input, brainOut);\n }\n\n /**\n * Grounding-only entry (the `predict_click` half of the predict/ground split,\n * #9105 M5 / #9170 M10). Resolves a `ref` (OCR/AX id) or free-form\n * `instruction` to a display-local coordinate WITHOUT running the Brain —\n * agent loops that do their own step planning (Anthropic / OpenAI\n * computer-use) call this to reuse our deterministic OCR/AX + actor grounding\n * and its per-Scene cache. Returns `null` when nothing can be grounded.\n */\n async groundTarget(args: {\n scene: Scene;\n captures: Map<number, DisplayCapture>;\n targetDisplayId: number;\n ref?: string;\n instruction?: string;\n /** Optional ROI to ground inside when no `ref` is available. */\n roi?: BrainRoi;\n }): Promise<{ displayId: number; x: number; y: number } | null> {\n const brainOut: BrainOutput = {\n scene_summary: \"\",\n target_display_id: args.targetDisplayId,\n roi: args.roi ? [args.roi] : [],\n proposed_action: {\n kind: \"click\",\n ref: args.ref,\n rationale: args.instruction ?? \"\",\n },\n };\n return this.resolveCoords(\n {\n scene: args.scene,\n goal: args.instruction ?? \"\",\n captures: args.captures,\n },\n brainOut,\n /*allowMissing*/ true,\n );\n }\n\n private async resolveBrainOutput(\n input: CascadeInput,\n brainOut: BrainOutput,\n ): Promise<CascadeResult> {\n const action = brainOut.proposed_action;\n const targetDisplay = brainOut.target_display_id;\n\n // Non-coordinate actions short-circuit grounding.\n if (action.kind === \"wait\" || action.kind === \"finish\") {\n return {\n scene_summary: brainOut.scene_summary,\n rois: brainOut.roi.slice(0, BRAIN_MAX_ROIS),\n proposed: {\n kind: action.kind,\n displayId: targetDisplay,\n rationale: action.rationale,\n ref: action.ref,\n },\n };\n }\n if (action.kind === \"type\") {\n const text = stringOrUndef(action.args?.text);\n if (typeof text !== \"string\") {\n throw new Error(\n `[computeruse/cascade] proposed_action.kind=\"type\" requires args.text`,\n );\n }\n return {\n scene_summary: brainOut.scene_summary,\n rois: brainOut.roi.slice(0, BRAIN_MAX_ROIS),\n proposed: {\n kind: \"type\",\n displayId: targetDisplay,\n text,\n rationale: action.rationale,\n },\n };\n }\n if (action.kind === \"hotkey\") {\n const keys = action.args?.keys;\n if (!Array.isArray(keys) || keys.some((k) => typeof k !== \"string\")) {\n throw new Error(\n `[computeruse/cascade] proposed_action.kind=\"hotkey\" requires args.keys: string[]`,\n );\n }\n return {\n scene_summary: brainOut.scene_summary,\n rois: brainOut.roi.slice(0, BRAIN_MAX_ROIS),\n proposed: {\n kind: \"hotkey\",\n displayId: targetDisplay,\n keys: keys as string[],\n rationale: action.rationale,\n },\n };\n }\n if (action.kind === \"key\") {\n const key = stringOrUndef(action.args?.key);\n if (typeof key !== \"string\") {\n throw new Error(\n `[computeruse/cascade] proposed_action.kind=\"key\" requires args.key`,\n );\n }\n return {\n scene_summary: brainOut.scene_summary,\n rois: brainOut.roi.slice(0, BRAIN_MAX_ROIS),\n proposed: {\n kind: \"key\",\n displayId: targetDisplay,\n key,\n rationale: action.rationale,\n },\n };\n }\n if (action.kind === \"scroll\") {\n const dx = Number(action.args?.dx ?? 0);\n const dy = Number(action.args?.dy ?? 0);\n // Anchor scroll on the ROI if present, else display center.\n const anchor = await this.resolveCoords(\n input,\n brainOut,\n /*allowMissing*/ true,\n );\n const display = input.scene.displays.find((d) => d.id === targetDisplay);\n const cx = anchor?.x ?? Math.round((display?.bounds[2] ?? 0) / 2);\n const cy = anchor?.y ?? Math.round((display?.bounds[3] ?? 0) / 2);\n return {\n scene_summary: brainOut.scene_summary,\n rois: brainOut.roi.slice(0, BRAIN_MAX_ROIS),\n proposed: {\n kind: \"scroll\",\n displayId: targetDisplay,\n x: cx,\n y: cy,\n dx,\n dy,\n rationale: action.rationale,\n },\n };\n }\n if (action.kind === \"drag\") {\n const from = action.args?.from as { x?: number; y?: number } | undefined;\n const to = action.args?.to as { x?: number; y?: number } | undefined;\n const start =\n (await this.coordsForRef(input, brainOut, action.ref, /*from*/ true)) ??\n from;\n const end = (await this.resolveCoords(input, brainOut, false)) ?? to;\n if (\n !start ||\n !end ||\n typeof start.x !== \"number\" ||\n typeof end.x !== \"number\"\n ) {\n throw new Error(\n `[computeruse/cascade] drag requires args.from and args.to (or a ref + endpoint)`,\n );\n }\n return {\n scene_summary: brainOut.scene_summary,\n rois: brainOut.roi.slice(0, BRAIN_MAX_ROIS),\n proposed: {\n kind: \"drag\",\n displayId: targetDisplay,\n startX: Math.round(start.x),\n startY: Math.round(start.y ?? 0),\n x: Math.round(end.x),\n y: Math.round(end.y ?? 0),\n rationale: action.rationale,\n },\n };\n }\n // click / double_click / right_click — all need a single point.\n const coords = await this.resolveCoords(input, brainOut, false);\n if (!coords) {\n throw new Error(\n `[computeruse/cascade] could not resolve coordinates for action.kind=\"${action.kind}\"`,\n );\n }\n return {\n scene_summary: brainOut.scene_summary,\n rois: brainOut.roi.slice(0, BRAIN_MAX_ROIS),\n proposed: {\n kind: action.kind,\n displayId: coords.displayId,\n x: coords.x,\n y: coords.y,\n ref: action.ref,\n rationale: action.rationale,\n },\n };\n }\n\n private async resolveCoords(\n input: CascadeInput,\n brainOut: BrainOutput,\n allowMissing: boolean,\n ): Promise<{ displayId: number; x: number; y: number } | null> {\n // GROUND fast-path: a target already grounded on this Scene is reused.\n const action0 = brainOut.proposed_action;\n const cacheKey = `${input.scene.timestamp}::${brainOut.target_display_id}::${\n action0.ref ?? action0.rationale ?? \"\"\n }`;\n const cached = this.groundCache.get(cacheKey);\n if (cached) {\n this.groundStats.hits += 1;\n return cached;\n }\n const resolved = await this.resolveCoordsUncached(\n input,\n brainOut,\n allowMissing,\n );\n if (resolved) {\n this.groundStats.misses += 1;\n this.rememberGround(input.scene.timestamp, cacheKey, resolved);\n }\n return resolved;\n }\n\n /** Drop cache entries from any Scene other than `timestamp`, then store. */\n private rememberGround(\n timestamp: number,\n key: string,\n value: { displayId: number; x: number; y: number },\n ): void {\n const prefix = `${timestamp}::`;\n for (const k of this.groundCache.keys()) {\n if (!k.startsWith(prefix)) this.groundCache.delete(k);\n }\n this.groundCache.set(key, value);\n }\n\n private async resolveCoordsUncached(\n input: CascadeInput,\n brainOut: BrainOutput,\n allowMissing: boolean,\n ): Promise<{ displayId: number; x: number; y: number } | null> {\n // Strategy 1: if Brain emitted a ref, the OCR/AX grounding (or any\n // registered actor) resolves it directly.\n const action = brainOut.proposed_action;\n if (action.ref) {\n const grounded = await this.groundReference(input, brainOut, action.ref);\n if (grounded) return grounded;\n }\n // Strategy 2: fine grounding on the first ROI via the registered actor.\n if (this.deps.actor && brainOut.roi.length > 0) {\n const roi = brainOut.roi.slice(0, BRAIN_MAX_ROIS)[0];\n if (!roi) return null;\n const grounded = await this.groundRoi(input, brainOut, roi);\n if (grounded) return grounded;\n }\n // Strategy 3: ROI center fallback (deterministic).\n if (brainOut.roi.length > 0) {\n const roi = brainOut.roi[0];\n if (!roi) return null;\n const [x, y, w, h] = roi.bbox;\n return {\n displayId: roi.displayId,\n x: Math.round(x + w / 2),\n y: Math.round(y + h / 2),\n };\n }\n if (allowMissing) return null;\n return null;\n }\n\n private async coordsForRef(\n input: CascadeInput,\n brainOut: BrainOutput,\n ref: string | undefined,\n _isStart: boolean,\n ): Promise<{ displayId: number; x: number; y: number } | null> {\n if (!ref) return null;\n return this.groundReference(input, brainOut, ref);\n }\n\n private async groundReference(\n input: CascadeInput,\n brainOut: BrainOutput,\n ref: string,\n ): Promise<{ displayId: number; x: number; y: number } | null> {\n const target = resolveReference(\n input.scene,\n ref,\n brainOut.proposed_action.rationale,\n brainOut.target_display_id,\n );\n if (!target) return null;\n const [bx, by, bw, bh] = target.bbox;\n const cx = Math.round(bx + bw / 2);\n const cy = Math.round(by + bh / 2);\n // If a real Actor is registered, give it a chance to refine. We still\n // crop the ROI from the native PNG, so the Actor sees real pixels.\n if (this.deps.actor) {\n const capture = input.captures.get(target.displayId);\n if (capture) {\n const cropped = this.cropFrame(capture.frame, [bx, by, bw, bh]);\n try {\n const refined = await this.deps.actor.ground({\n displayId: target.displayId,\n croppedImage: cropped,\n hint: brainOut.proposed_action.rationale,\n ref,\n });\n if (\n refined &&\n Number.isFinite(refined.x) &&\n Number.isFinite(refined.y)\n ) {\n return {\n displayId: target.displayId,\n x: Math.round(refined.x),\n y: Math.round(refined.y),\n };\n }\n } catch (err) {\n logger.warn(\n `[computeruse/cascade] actor.ground failed for ref=${ref}: ${err instanceof Error ? err.message : String(err)} — using bbox center`,\n );\n }\n }\n }\n return { displayId: target.displayId, x: cx, y: cy };\n }\n\n private async groundRoi(\n input: CascadeInput,\n brainOut: BrainOutput,\n roi: BrainRoi,\n ): Promise<{ displayId: number; x: number; y: number } | null> {\n if (!this.deps.actor) return null;\n const capture = input.captures.get(roi.displayId);\n if (!capture) return null;\n const cropped = this.cropFrame(capture.frame, roi.bbox);\n const args: ActorGroundArgs = {\n displayId: roi.displayId,\n croppedImage: cropped,\n hint: brainOut.proposed_action.rationale,\n ref: brainOut.proposed_action.ref,\n };\n try {\n const grounded = await this.deps.actor.ground(args);\n if (!Number.isFinite(grounded.x) || !Number.isFinite(grounded.y)) {\n return null;\n }\n return {\n displayId: roi.displayId,\n x: Math.round(grounded.x),\n y: Math.round(grounded.y),\n };\n } catch (err) {\n logger.warn(\n `[computeruse/cascade] actor.ground threw for ROI: ${err instanceof Error ? err.message : String(err)}`,\n );\n return null;\n }\n }\n\n private cropFrame(\n frame: Buffer,\n bbox: [number, number, number, number],\n ): Buffer {\n if (this.deps.crop) {\n return this.deps.crop(frame, bbox);\n }\n // No native PNG cropper in-tree. We pass the full frame through; the\n // built-in OcrCoordinateGroundingActor ignores the image anyway. When\n // a real Actor lands, the deps.crop callback should be injected.\n return frame;\n }\n}\n\nfunction stringOrUndef(v: unknown): string | undefined {\n return typeof v === \"string\" ? v : undefined;\n}\n\n/** Registry: register an Actor for the cascade to use globally. */\nlet _registeredActor: Actor | null = null;\nexport function setActor(actor: Actor | null): void {\n _registeredActor = actor;\n}\nexport function getRegisteredActor(): Actor | null {\n return _registeredActor;\n}\n",
18
18
  "/**\n * Agent-loop registry (#9170 M10).\n *\n * trycua/cua selects an agent *loop* from a model string: an `anthropic/...`\n * model routes to the Claude computer-use loop, `openai/computer-use-preview`\n * routes to the OpenAI operator loop, an OmniParser/grounder string routes to a\n * local set-of-marks loop, etc. Each loop implements the same two-call seam —\n * `predict_step` (observe + plan the next action) and `predict_click` (ground a\n * target to a coordinate) — so the runner is decoupled from *how* a step is\n * produced.\n *\n * elizaOS shipped a single hardcoded Brain→Cascade (ScreenSeekeR). This module\n * replaces that hardcoding with a registry:\n * - `AgentLoop` — the `predictStep` / `predictClick` seam.\n * - `registerAgentLoop` — register a loop keyed by a model-string matcher.\n * - `createAgentLoop(modelString, deps)` — pick the highest-priority matching\n * loop and instantiate it.\n *\n * The built-in `local-grounder` loop wraps the existing Brain→Cascade and\n * exposes the M5 grounding cache through `predictClick`. Anthropic / OpenAI\n * computer-use loops are *pluggable*: a provider plugin calls\n * `registerAgentLoop` with `matchesModelFamily(\"anthropic\")` (etc.) and its own\n * `predictStep`. With none registered, every model string falls through to the\n * local grounder (which always matches at the lowest priority).\n */\n\nimport type { IAgentRuntime } from \"@elizaos/core\";\nimport type { DisplayCapture } from \"../platform/capture.js\";\nimport type { Scene } from \"../scene/scene-types.js\";\nimport { type Actor, OcrCoordinateGroundingActor } from \"./actor.js\";\nimport { Brain, resolveBrainImagePolicy } from \"./brain.js\";\nimport { Cascade, getRegisteredActor } from \"./cascade.js\";\nimport type { CascadeResult, GroundingResult } from \"./types.js\";\n\n/** Default loop model-string — the local OCR/AX + actor grounder. */\nexport const DEFAULT_AGENT_LOOP_MODEL = \"local-grounder\";\n\n/** Setting / env key the runner reads to choose a loop. */\nexport const AGENT_LOOP_SETTING = \"COMPUTER_USE_AGENT_LOOP\";\n\nexport interface AgentStepInput {\n scene: Scene;\n goal: string;\n captures: Map<number, DisplayCapture>;\n}\n\nexport interface PredictClickInput {\n scene: Scene;\n captures: Map<number, DisplayCapture>;\n targetDisplayId: number;\n /** OCR/AX id to ground (`t<d>-<n>` / `a<d>-<n>`). */\n ref?: string;\n /** Free-form instruction when no ref is available. */\n instruction?: string;\n}\n\n/**\n * The two-call seam every loop implements. `predictStep` plans the next\n * concrete action; `predictClick` grounds a target to a coordinate (used by\n * loops that plan elsewhere but reuse our grounding, and by callers that want\n * grounding without a full step).\n */\n/**\n * Per-run model-call accounting (#9105). `invocations` counts the token-bearing\n * model calls a loop actually issued; `cacheHits` counts calls served without a\n * model round-trip. Reported once per run as `evt:\"computeruse.agent.tokens\"`.\n */\nexport interface AgentLoopStats {\n /** Token-bearing model calls actually issued during the run. */\n invocations: number;\n /** Calls served from cache (no model call, no tokens). */\n cacheHits: number;\n /** Model calls issued with no screenshot attached (#9105). */\n imagelessCalls: number;\n /** Estimated image tokens not sent because of imageless calls (#9105). */\n estImageTokensSaved: number;\n}\n\nexport interface AgentLoop {\n readonly name: string;\n predictStep(input: AgentStepInput): Promise<CascadeResult>;\n predictClick(input: PredictClickInput): Promise<GroundingResult | null>;\n /** Per-run model-call accounting, when the loop tracks it (#9105). */\n getStats?(): AgentLoopStats;\n}\n\nexport interface AgentLoopDeps {\n runtime: IAgentRuntime | null;\n /** Latest-scene accessor for the default actor. */\n getScene: () => Scene | null;\n /** Brain override (mostly tests). */\n brain?: Brain;\n /** Actor override (mostly tests). */\n actor?: Actor | null;\n}\n\nexport interface AgentLoopRegistration {\n /** Stable id for telemetry + explicit selection. */\n readonly name: string;\n /** True when this loop handles `modelString`. */\n matches: (modelString: string) => boolean;\n /** Instantiate the loop for a run. */\n create: (deps: AgentLoopDeps) => AgentLoop;\n /** Higher wins when multiple registrations match. Default 0. */\n priority?: number;\n}\n\n// ── Built-in: local OCR/AX + actor grounder (Brain → Cascade) ────────────────\n\n/**\n * Wraps the existing ScreenSeekeR (Brain → Cascade). `predictStep` is the full\n * observe→plan→ground cascade; `predictClick` calls the cascade's grounding-only\n * path so the M5 per-Scene grounding cache is shared across both.\n */\nexport class LocalGrounderLoop implements AgentLoop {\n readonly name = DEFAULT_AGENT_LOOP_MODEL;\n private readonly cascade: Cascade;\n private readonly brain: Brain;\n\n constructor(deps: AgentLoopDeps) {\n const brain =\n deps.brain ??\n new Brain(deps.runtime, {\n imagePolicy: resolveBrainImagePolicy(deps.runtime),\n });\n this.brain = brain;\n const actor =\n deps.actor ??\n getRegisteredActor() ??\n new OcrCoordinateGroundingActor(deps.getScene);\n this.cascade = new Cascade({ brain, actor });\n }\n\n predictStep(input: AgentStepInput): Promise<CascadeResult> {\n return this.cascade.run(input);\n }\n\n async predictClick(\n input: PredictClickInput,\n ): Promise<GroundingResult | null> {\n const coords = await this.cascade.groundTarget({\n scene: input.scene,\n captures: input.captures,\n targetDisplayId: input.targetDisplayId,\n ref: input.ref,\n instruction: input.instruction,\n });\n if (!coords) return null;\n return {\n displayId: coords.displayId,\n x: coords.x,\n y: coords.y,\n confidence: 1,\n reason: input.ref ?? input.instruction ?? \"grounded\",\n };\n }\n\n /** Grounding cache hit/miss snapshot (delegates to the wrapped cascade). */\n getGroundStats() {\n return this.cascade.getGroundStats();\n }\n\n /** Model-call accounting from the wrapped Brain (#9105). */\n getStats(): AgentLoopStats {\n return this.brain.getStats();\n }\n}\n\n// ── Model-string helpers ─────────────────────────────────────────────────────\n\n/**\n * A matcher for a provider family — `anthropic`, `openai`, `google`, … A\n * pluggable loop registers with `matches: matchesModelFamily(\"anthropic\")` so a\n * model string like `anthropic/claude-...` or `claude-3-7-sonnet` routes to it.\n */\nexport function matchesModelFamily(\n family: string,\n): (modelString: string) => boolean {\n const f = family.trim().toLowerCase();\n return (modelString: string): boolean => {\n const m = modelString.trim().toLowerCase();\n return (\n m === f ||\n m.startsWith(`${f}/`) ||\n m.startsWith(`${f}-`) ||\n m.includes(`/${f}/`) ||\n m.includes(f)\n );\n };\n}\n\n// ── Registry ─────────────────────────────────────────────────────────────────\n\nconst REGISTRY = new Map<string, AgentLoopRegistration>();\n\n/** Register (or replace, by name) an agent-loop. */\nexport function registerAgentLoop(registration: AgentLoopRegistration): void {\n REGISTRY.set(registration.name, registration);\n}\n\nexport function unregisterAgentLoop(name: string): void {\n REGISTRY.delete(name);\n}\n\nexport function listAgentLoops(): readonly AgentLoopRegistration[] {\n return [...REGISTRY.values()].sort(\n (a, b) => (b.priority ?? 0) - (a.priority ?? 0),\n );\n}\n\n/**\n * The built-in local grounder. Registered at module load with the lowest\n * priority and a match-anything predicate, so it is always the fallback.\n */\nconst LOCAL_GROUNDER_REGISTRATION: AgentLoopRegistration = {\n name: DEFAULT_AGENT_LOOP_MODEL,\n // Matches the explicit name plus common local/grounder aliases; also the\n // universal fallback (every string) because its priority is the floor.\n matches: (modelString: string): boolean => {\n const m = modelString.trim().toLowerCase();\n return (\n m === \"\" ||\n m === DEFAULT_AGENT_LOOP_MODEL ||\n m === \"local\" ||\n m === \"omniparser\" ||\n m === \"screenseeker\" ||\n true\n );\n },\n create: (deps) => new LocalGrounderLoop(deps),\n priority: Number.NEGATIVE_INFINITY,\n};\nregisterAgentLoop(LOCAL_GROUNDER_REGISTRATION);\n\n/**\n * Pick the registration for a model string: the highest-priority one whose\n * `matches` returns true. The local grounder's match-anything floor guarantees\n * a result, so this never throws.\n */\nexport function selectAgentLoopRegistration(\n modelString: string,\n): AgentLoopRegistration {\n let best: AgentLoopRegistration | null = null;\n let bestPriority = Number.NEGATIVE_INFINITY;\n for (const reg of REGISTRY.values()) {\n if (!reg.matches(modelString)) continue;\n const p = reg.priority ?? 0;\n // Strictly-greater keeps the first registrant on ties — but the local\n // grounder sits at -Infinity so any real loop outranks it.\n if (best === null || p > bestPriority) {\n best = reg;\n bestPriority = p;\n }\n }\n // The local grounder always matches, so `best` is non-null here.\n return best ?? LOCAL_GROUNDER_REGISTRATION;\n}\n\n/** Resolve + instantiate the loop for a model string. */\nexport function createAgentLoop(\n modelString: string,\n deps: AgentLoopDeps,\n): AgentLoop {\n return selectAgentLoopRegistration(modelString).create(deps);\n}\n\n/** Test helper — restore the registry to just the built-in local grounder. */\nexport function _resetAgentLoopsForTests(): void {\n REGISTRY.clear();\n registerAgentLoop(LOCAL_GROUNDER_REGISTRATION);\n}\n",
19
19
  "/**\n * Multi-monitor display enumeration (WS5).\n *\n * Returns the live set of physical displays attached to the host, in a\n * single, OS-agnostic shape:\n *\n * { id, bounds: [x, y, w, h], scaleFactor, primary, name }\n *\n * Notes on `id`:\n * - macOS — `CGDirectDisplayID` (32-bit unsigned). Stable across reboots.\n * - Windows — `Screen.DeviceName` hash → small integer. We expose a 0-based\n * index because PowerShell `System.Windows.Forms.Screen` does\n * not surface a kernel handle, and the device name (e.g.\n * `\\\\.\\DISPLAY1`) is a string. The index is stable for a given\n * process but may shift across hot-plug events.\n * - Linux X — `xrandr --listmonitors` ordinal. Stable per process.\n * - Linux W — compositor-specific output id (Hyprland/Sway). Best effort.\n *\n * Coordinate space:\n * `bounds` is in OS-global pixel space. On macOS, that means scaled\n * \"points\" by default — we record the backing-store scale factor in\n * `scaleFactor` so callers can translate to pixel-perfect coords when\n * composing captures.\n *\n * This module never executes input. It is read-only.\n */\n\nimport { execFileSync, execSync } from \"node:child_process\";\nimport { currentPlatform } from \"./helpers.js\";\nimport { psHostAvailable, runPsHost } from \"./ps-host.js\";\n\nexport interface DisplayInfo {\n /** OS-stable identifier or a 0-based fallback index. */\n id: number;\n /** [x, y, width, height] in OS-global pixel space. */\n bounds: [number, number, number, number];\n /** Backing-store scale factor. 1 on Linux, 1..N on HiDPI macOS/Windows. */\n scaleFactor: number;\n /** Whether this is the primary display. */\n primary: boolean;\n /** Human-readable name (e.g. `eDP-1`, `Built-in Retina Display`). */\n name: string;\n}\n\n/**\n * Error thrown when the host has no usable display surface. Headless Linux\n * (no `DISPLAY` and no `WAYLAND_DISPLAY`), CI containers without an X\n * server, and macOS/Windows hosts that report zero active displays all\n * surface as this typed error so callers can distinguish \"no monitors\" from\n * a transient enumeration failure.\n */\nexport class NoDisplayError extends Error {\n readonly code = \"NO_DISPLAY\" as const;\n constructor(message: string) {\n super(message);\n this.name = \"NoDisplayError\";\n }\n}\n\nlet cached: DisplayInfo[] | null = null;\nlet cachedAt = 0;\n// Display topology is stable for the life of a session in the overwhelming\n// majority of cases (hot-plug mid-task is rare), and enumeration shells out —\n// on Windows a cold `powershell.exe` spawn is ~10-16s under Defender (#9581),\n// and it sits on the capture hot path (`captureDisplay` → `findDisplay` →\n// `listDisplays` every turn, plus a burst per dirty-region capture). A 2s TTL\n// re-spawned that probe constantly. A longer TTL collapses it to ~once per\n// window; `refreshDisplays()` forces a fresh read when a caller knows the\n// layout changed. Override with `COMPUTERUSE_DISPLAYS_CACHE_MS`.\nconst CACHE_MS = (() => {\n const raw = Number(process.env.COMPUTERUSE_DISPLAYS_CACHE_MS);\n return Number.isFinite(raw) && raw >= 0 ? raw : 30_000;\n})();\n\n/**\n * List all attached displays. Cached to avoid spamming xrandr / PowerShell on\n * burst calls (provider runs every turn; see {@link CACHE_MS}).\n *\n * Returns a single-display fallback when the OS reports nothing — most\n * callers want a sensible default, not an empty array. Use `isHeadless()`\n * or `assertHasDisplays()` to distinguish the truly-headless case from a\n * single attached monitor.\n */\nexport function listDisplays(): DisplayInfo[] {\n const now = Date.now();\n if (cached && now - cachedAt < CACHE_MS) return cached;\n const real = enumerateDisplays();\n const fresh = real.length > 0 ? real : [fallbackPrimary()];\n cached = fresh;\n cachedAt = now;\n return fresh;\n}\n\n/** Force a fresh enumeration, ignoring cache. */\nexport function refreshDisplays(): DisplayInfo[] {\n cached = null;\n return listDisplays();\n}\n\n/** Convenience: the primary display, or the first one if none is flagged. */\nexport function getPrimaryDisplay(): DisplayInfo {\n const all = listDisplays();\n if (all.length === 0) {\n return fallbackPrimary();\n }\n const first = all[0];\n if (!first) {\n return fallbackPrimary();\n }\n return all.find((d) => d.primary) ?? first;\n}\n\n/** Look up a display by id, or null if unknown. */\nexport function findDisplay(id: number): DisplayInfo | null {\n return listDisplays().find((d) => d.id === id) ?? null;\n}\n\n/**\n * Detect a truly headless host. Returns true when:\n * - Linux: neither `DISPLAY` nor `WAYLAND_DISPLAY` is set, AND no\n * compositor / X server enumeration tool reports anything.\n * - macOS / Windows: enumeration via system_profiler / PowerShell yields\n * zero displays.\n * The single-display fallback returned by `listDisplays()` does NOT count as\n * a real display for this check.\n */\nexport function isHeadless(): boolean {\n const os = currentPlatform();\n if (os === \"linux\") {\n const hasX = (process.env.DISPLAY ?? \"\").length > 0;\n const hasWayland = (process.env.WAYLAND_DISPLAY ?? \"\").length > 0;\n if (!hasX && !hasWayland) return true;\n }\n return enumerateDisplays().length === 0;\n}\n\n/**\n * Capture-path guard: throws `NoDisplayError` on a truly headless host.\n * Callers that hit \"no monitor\" should surface this typed error rather than\n * returning an empty buffer or a generic `Error`.\n */\nexport function assertHasDisplays(): void {\n if (isHeadless()) {\n throw new NoDisplayError(\n \"[displays] No attached display. Headless host detected — set DISPLAY/WAYLAND_DISPLAY or run on a desktop session.\",\n );\n }\n}\n\n/**\n * Run the platform-specific enumeration. Returns an empty array when nothing\n * is attached or the OS returned no displays — callers wanting the legacy\n * single-display fallback should call `listDisplays()` instead.\n */\nfunction enumerateDisplays(): DisplayInfo[] {\n const os = currentPlatform();\n if (os === \"linux\") return enumerateLinux();\n if (os === \"darwin\") return enumerateDarwin();\n if (os === \"win32\") return enumerateWindows();\n return [];\n}\n\nfunction fallbackPrimary(): DisplayInfo {\n return {\n id: 0,\n bounds: [0, 0, 1920, 1080],\n scaleFactor: 1,\n primary: true,\n name: \"primary\",\n };\n}\n\n// ── Linux: X11 ──────────────────────────────────────────────────────────────\n//\n// `xrandr --listmonitors` produces:\n// Monitors: N\n// i: <prefix>name w/mm_x h/mm+xoff+yoff name\n// where <prefix> is `+*` for primary, `+` for secondary.\n//\n// Example:\n// 0: +*eDP-1 2560/390x1600/240+0+0 eDP-1\n// 1: +HDMI-0 3840/600x2160/340+2560+0 HDMI-0\n\nconst XRANDR_LINE =\n /^\\s*(\\d+):\\s*\\+(\\*?)\\S*\\s+(\\d+)\\/\\d+x(\\d+)\\/\\d+([+-]\\d+)([+-]\\d+)\\s+(\\S+)/;\n\nexport function parseXrandrMonitors(output: string): DisplayInfo[] {\n const displays: DisplayInfo[] = [];\n for (const rawLine of output.split(/\\r?\\n/)) {\n const m = rawLine.match(XRANDR_LINE);\n if (!m) continue;\n const idText = m[1];\n const widthText = m[3];\n const heightText = m[4];\n const xText = m[5];\n const yText = m[6];\n const name = m[7];\n if (!idText || !widthText || !heightText || !xText || !yText || !name) {\n continue;\n }\n const id = Number.parseInt(idText, 10);\n const primary = m[2] === \"*\";\n const width = Number.parseInt(widthText, 10);\n const height = Number.parseInt(heightText, 10);\n // m[5] / m[6] include the explicit sign (e.g. \"-1920\" or \"+0\").\n const x = Number.parseInt(xText, 10);\n const y = Number.parseInt(yText, 10);\n if (![id, width, height, x, y].every((n) => Number.isFinite(n))) continue;\n displays.push({\n id,\n bounds: [x, y, width, height],\n scaleFactor: 1,\n primary,\n name,\n });\n }\n return ensurePrimary(displays);\n}\n\nfunction enumerateLinux(): DisplayInfo[] {\n const hasX = (process.env.DISPLAY ?? \"\").length > 0;\n const hasWayland = (process.env.WAYLAND_DISPLAY ?? \"\").length > 0;\n if (!hasX && !hasWayland) return [];\n const sessionType = (process.env.XDG_SESSION_TYPE ?? \"\").toLowerCase();\n if (sessionType === \"wayland\" || hasWayland) {\n const w = enumerateWayland();\n if (w.length > 0) return w;\n }\n // X11 — preferred path. Works under XWayland too.\n try {\n const output = execFileSync(\"xrandr\", [\"--listmonitors\"], {\n timeout: 3000,\n encoding: \"utf-8\",\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n });\n const parsed = parseXrandrMonitors(output);\n if (parsed.length > 0) return parsed;\n } catch {\n /* xrandr unavailable — fall through to empty */\n }\n return [];\n}\n\nfunction enumerateWayland(): DisplayInfo[] {\n // Hyprland\n try {\n const output = execFileSync(\"hyprctl\", [\"monitors\", \"-j\"], {\n timeout: 3000,\n encoding: \"utf-8\",\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n });\n const parsed = parseHyprlandMonitors(output);\n if (parsed.length > 0) return parsed;\n } catch {\n /* try sway */\n }\n // Sway\n try {\n const output = execFileSync(\"swaymsg\", [\"-t\", \"get_outputs\"], {\n timeout: 3000,\n encoding: \"utf-8\",\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n });\n const parsed = parseSwayOutputs(output);\n if (parsed.length > 0) return parsed;\n } catch {\n /* fall through to xrandr/xwayland */\n }\n return [];\n}\n\ninterface HyprlandMonitor {\n id?: number;\n name?: string;\n x?: number;\n y?: number;\n width?: number;\n height?: number;\n scale?: number;\n focused?: boolean;\n}\n\nexport function parseHyprlandMonitors(output: string): DisplayInfo[] {\n let raw: unknown;\n try {\n raw = JSON.parse(output);\n } catch {\n return [];\n }\n if (!Array.isArray(raw)) return [];\n const displays: DisplayInfo[] = [];\n let idx = 0;\n for (const item of raw as HyprlandMonitor[]) {\n if (!item || typeof item !== \"object\") continue;\n const w = Number(item.width);\n const h = Number(item.height);\n const x = Number(item.x);\n const y = Number(item.y);\n if (![w, h, x, y].every((n) => Number.isFinite(n))) continue;\n displays.push({\n id: Number.isFinite(Number(item.id)) ? Number(item.id) : idx,\n bounds: [x, y, w, h],\n scaleFactor: Number.isFinite(Number(item.scale)) ? Number(item.scale) : 1,\n primary: Boolean(item.focused) || idx === 0,\n name: typeof item.name === \"string\" ? item.name : `output-${idx}`,\n });\n idx += 1;\n }\n return ensurePrimary(displays);\n}\n\ninterface SwayOutput {\n name?: string;\n focused?: boolean;\n primary?: boolean;\n rect?: { x?: number; y?: number; width?: number; height?: number };\n scale?: number;\n}\n\nexport function parseSwayOutputs(output: string): DisplayInfo[] {\n let raw: unknown;\n try {\n raw = JSON.parse(output);\n } catch {\n return [];\n }\n if (!Array.isArray(raw)) return [];\n const displays: DisplayInfo[] = [];\n let idx = 0;\n for (const item of raw as SwayOutput[]) {\n if (!item || typeof item !== \"object\") continue;\n const rect = item.rect ?? {};\n const w = Number(rect.width);\n const h = Number(rect.height);\n const x = Number(rect.x);\n const y = Number(rect.y);\n if (![w, h, x, y].every((n) => Number.isFinite(n))) continue;\n displays.push({\n id: idx,\n bounds: [x, y, w, h],\n scaleFactor: Number.isFinite(Number(item.scale)) ? Number(item.scale) : 1,\n primary: Boolean(item.primary || item.focused) || idx === 0,\n name: typeof item.name === \"string\" ? item.name : `output-${idx}`,\n });\n idx += 1;\n }\n return ensurePrimary(displays);\n}\n\n// ── macOS ───────────────────────────────────────────────────────────────────\n//\n// We avoid shipping a Swift sidecar for v1. CoreGraphics is reachable via\n// `osascript -l JavaScript` (JXA) — the same path the existing single-display\n// code uses. JXA gives us `CGGetActiveDisplayList` + `CGDisplayBounds`, plus\n// `CGDisplayScreenSize` and `CGDisplayPixelsWide/High` for the scale factor.\n//\n// For macOS 14+ a native ScreenCaptureKit binary will yield richer metadata\n// (name, refresh rate, color space). That's a follow-up — the interface here\n// is shaped to absorb it without breaking callers.\n\ninterface JXADisplay {\n id?: number;\n bounds?: { x?: number; y?: number; width?: number; height?: number };\n pixelWidth?: number;\n pixelHeight?: number;\n primary?: boolean;\n name?: string;\n}\n\nexport function parseDarwinDisplays(output: string): DisplayInfo[] {\n let raw: unknown;\n try {\n raw = JSON.parse(output);\n } catch {\n return [];\n }\n if (!Array.isArray(raw)) return [];\n const displays: DisplayInfo[] = [];\n let idx = 0;\n for (const item of raw as JXADisplay[]) {\n if (!item || typeof item !== \"object\") continue;\n const b = item.bounds ?? {};\n const w = Number(b.width);\n const h = Number(b.height);\n const x = Number(b.x);\n const y = Number(b.y);\n if (![w, h, x, y].every((n) => Number.isFinite(n))) continue;\n const pixelW = Number(item.pixelWidth);\n const pixelH = Number(item.pixelHeight);\n let scale = 1;\n if (Number.isFinite(pixelW) && w > 0) {\n scale = pixelW / w;\n } else if (Number.isFinite(pixelH) && h > 0) {\n scale = pixelH / h;\n }\n displays.push({\n id: Number.isFinite(Number(item.id)) ? Number(item.id) : idx,\n bounds: [x, y, w, h],\n scaleFactor: Number.isFinite(scale) && scale > 0 ? scale : 1,\n primary: Boolean(item.primary) || idx === 0,\n name:\n typeof item.name === \"string\" && item.name.length > 0\n ? item.name\n : `display-${idx}`,\n });\n idx += 1;\n }\n return ensurePrimary(displays);\n}\n\nfunction enumerateDarwin(): DisplayInfo[] {\n // JXA's pointer manipulation for CGGetActiveDisplayList is brittle. Use a\n // simpler shell-out path: `system_profiler SPDisplaysDataType -json` lists\n // every display with resolution, but no per-display origin. For origin we\n // fall back to AppleScript `tell app \"System Events\" to get displays` (10.15+)\n // or accept primary-only when origin is missing.\n try {\n const output = execSync(\"system_profiler SPDisplaysDataType -json\", {\n timeout: 5000,\n encoding: \"utf-8\",\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n });\n const parsed = parseSystemProfilerDisplays(output);\n if (parsed.length > 0) return parsed;\n } catch {\n /* fall through */\n }\n // Last-resort: CGMainDisplay bounds + scale via osascript JXA.\n try {\n const output = execSync(\n `osascript -l JavaScript -e 'ObjC.import(\"CoreGraphics\"); const id=$.CGMainDisplayID(); const b=$.CGDisplayBounds(id); const pw=$.CGDisplayPixelsWide(id); const ph=$.CGDisplayPixelsHigh(id); JSON.stringify({id:Number(id), x:b.origin.x, y:b.origin.y, w:b.size.width, h:b.size.height, pw:pw, ph:ph});'`,\n { timeout: 4000, encoding: \"utf-8\" },\n );\n const j = JSON.parse(output) as {\n id: number;\n x: number;\n y: number;\n w: number;\n h: number;\n pw: number;\n ph: number;\n };\n const scale = j.w > 0 ? j.pw / j.w : 1;\n return [\n {\n id: Number.isFinite(j.id) ? j.id : 0,\n bounds: [\n Math.round(j.x),\n Math.round(j.y),\n Math.round(j.w),\n Math.round(j.h),\n ],\n scaleFactor: Number.isFinite(scale) && scale > 0 ? scale : 1,\n primary: true,\n name: \"main\",\n },\n ];\n } catch {\n return [fallbackPrimary()];\n }\n}\n\ninterface SPDisplay {\n _name?: string;\n _spdisplays_resolution?: string;\n spdisplays_resolution?: string;\n _spdisplays_pixelresolution?: string;\n spdisplays_pixelresolution?: string;\n spdisplays_main?: string; // \"spdisplays_yes\" when primary\n}\n\ninterface SPDisplaysCard {\n spdisplays_ndrvs?: SPDisplay[];\n}\n\ninterface SPDisplaysRoot {\n SPDisplaysDataType?: SPDisplaysCard[];\n}\n\nconst SP_RES = /(\\d+)\\s*[x×]\\s*(\\d+)/i;\n\nexport function parseSystemProfilerDisplays(output: string): DisplayInfo[] {\n let parsed: SPDisplaysRoot;\n try {\n parsed = JSON.parse(output) as SPDisplaysRoot;\n } catch {\n return [];\n }\n const cards = parsed.SPDisplaysDataType;\n if (!Array.isArray(cards)) return [];\n const displays: DisplayInfo[] = [];\n let idx = 0;\n // Best-effort: system_profiler omits origins. We lay each display out\n // horizontally starting at x=0. Callers needing accurate origins should\n // fall back to the JXA path or supply explicit positions via env.\n let xCursor = 0;\n for (const card of cards) {\n const drivers = card.spdisplays_ndrvs;\n if (!Array.isArray(drivers)) continue;\n for (const d of drivers) {\n const logicalText =\n d.spdisplays_resolution ?? d._spdisplays_resolution ?? \"\";\n const pixelText =\n d.spdisplays_pixelresolution ?? d._spdisplays_pixelresolution ?? \"\";\n const logicalMatch = SP_RES.exec(logicalText);\n const pixelMatch = SP_RES.exec(pixelText);\n if (!logicalMatch && !pixelMatch) continue;\n const logicalWidthText = logicalMatch?.[1] ?? pixelMatch?.[1];\n const logicalHeightText = logicalMatch?.[2] ?? pixelMatch?.[2];\n if (!logicalWidthText || !logicalHeightText) continue;\n const logicalW = Number.parseInt(logicalWidthText, 10);\n const logicalH = Number.parseInt(logicalHeightText, 10);\n const pixelW = pixelMatch?.[1]\n ? Number.parseInt(pixelMatch[1], 10)\n : logicalW;\n let scale = logicalW > 0 ? pixelW / logicalW : 1;\n if (!Number.isFinite(scale) || scale <= 0) scale = 1;\n const primary = d.spdisplays_main === \"spdisplays_yes\" || idx === 0;\n displays.push({\n id: idx,\n bounds: [xCursor, 0, logicalW, logicalH],\n scaleFactor: scale,\n primary,\n name: typeof d._name === \"string\" ? d._name : `display-${idx}`,\n });\n xCursor += logicalW;\n idx += 1;\n }\n }\n return ensurePrimary(displays);\n}\n\n// ── Windows ─────────────────────────────────────────────────────────────────\n//\n// PowerShell + System.Windows.Forms.Screen gives bounds and primary flag for\n// every monitor. It does NOT give a per-monitor DPI; for that we'd need a\n// native binding to `GetDpiForMonitor` (shcore.dll) or to enumerate via\n// `EnumDisplayMonitors`. v1 reports scaleFactor=1 and the app manifest must\n// declare PerMonitorV2 dpi awareness so coordinates are in pixels.\n\ninterface WinScreen {\n DeviceName?: string;\n Primary?: boolean;\n Bounds?: { X?: number; Y?: number; Width?: number; Height?: number };\n}\n\nexport function parseWindowsScreens(output: string): DisplayInfo[] {\n let raw: unknown;\n try {\n raw = JSON.parse(output);\n } catch {\n return [];\n }\n const items: WinScreen[] = Array.isArray(raw)\n ? (raw as WinScreen[])\n : [raw as WinScreen];\n const displays: DisplayInfo[] = [];\n let idx = 0;\n for (const s of items) {\n if (!s || typeof s !== \"object\") continue;\n const b = s.Bounds ?? {};\n const w = Number(b.Width);\n const h = Number(b.Height);\n const x = Number(b.X);\n const y = Number(b.Y);\n if (![w, h, x, y].every((n) => Number.isFinite(n))) continue;\n displays.push({\n id: idx,\n bounds: [x, y, w, h],\n scaleFactor: 1,\n primary: Boolean(s.Primary) || idx === 0,\n name:\n typeof s.DeviceName === \"string\" && s.DeviceName.length > 0\n ? s.DeviceName\n : `display-${idx}`,\n });\n idx += 1;\n }\n return ensurePrimary(displays);\n}\n\nfunction ensurePrimary(displays: DisplayInfo[]): DisplayInfo[] {\n if (displays.length === 0 || displays.some((display) => display.primary)) {\n return displays;\n }\n const first = displays[0];\n if (first) {\n first.primary = true;\n }\n return displays;\n}\n\nconst WIN_ENUM_PS =\n \"Add-Type -AssemblyName System.Windows.Forms; \" +\n \"[System.Windows.Forms.Screen]::AllScreens | \" +\n \"Select-Object DeviceName,Primary,Bounds | \" +\n \"ConvertTo-Json -Compress -Depth 4\";\n\nfunction enumerateWindows(): DisplayInfo[] {\n try {\n const output = execSync(`powershell -NoProfile -Command \"${WIN_ENUM_PS}\"`, {\n timeout: 5000,\n encoding: \"utf-8\",\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n });\n const parsed = parseWindowsScreens(output);\n if (parsed.length > 0) return parsed;\n } catch {\n /* fall through */\n }\n return [fallbackPrimary()];\n}\n\n/**\n * Asynchronously populate the display cache via the warm PowerShell host\n * (Windows only). Lets the service pre-seed the cache at init without the\n * blocking ~10-16s cold `powershell.exe` spawn that the sync\n * {@link listDisplays} path would otherwise pay on the first turn. No-op (and\n * never throws) when the host is unavailable — the sync path remains the\n * fallback. Override the resulting TTL with `COMPUTERUSE_DISPLAYS_CACHE_MS`.\n */\nexport async function warmDisplaysCache(): Promise<void> {\n if (currentPlatform() !== \"win32\" || !psHostAvailable()) return;\n try {\n const output = await runPsHost(WIN_ENUM_PS, 15_000);\n const parsed = parseWindowsScreens(output);\n if (parsed.length > 0) {\n cached = parsed;\n cachedAt = Date.now();\n }\n } catch {\n /* leave cache untouched; sync enumeration remains the fallback */\n }\n}\n",
20
20
  "import { execFileSync } from \"node:child_process\";\nimport type { PermissionType } from \"../types.js\";\n\ntype PermissionErrorOptions = {\n permissionType: PermissionType;\n operation: string;\n message: string;\n details?: string;\n};\n\nexport type PermissionDeniedError = Error & {\n permissionDenied: true;\n permissionType: PermissionType;\n operation: string;\n details?: string;\n};\n\nfunction toMessage(error: unknown): string {\n if (error instanceof Error) {\n return error.message;\n }\n return String(error);\n}\n\n// ── Windows permission classifiers ───────────────────────────────────────────\n//\n// Windows surfaces privacy denials through a small set of recognizable error\n// shapes:\n// - \"Access is denied\" / HRESULT 0x80070005 (E_ACCESSDENIED) — generic Win32\n// - \"Class not registered\" + Get-AppxPackage missing → camera/screen privacy\n// blocks expressed as the COM facade returning failure (Windows 10/11\n// returns this when the Settings → Privacy → Camera switch is off for\n// Win32 apps).\n// - \"ConsentStore\" — UWP camera/microphone consent store entries when\n// enumerated through PowerShell registry queries.\n// - \"BlockedByPolicy\" — Group Policy disabled the device.\n\nfunction matchesWindowsPrivacyDeniedError(message: string): boolean {\n return /access(?:\\s+is)?\\s+denied|0x80070005|class not registered|consentstore|blockedbypolicy|the device is not ready|element not found.*camera|element not found.*microphone|requestedaccess.*denied/i.test(\n message,\n );\n}\n\nfunction matchesWindowsScreenCaptureDenied(message: string): boolean {\n return /screen capture.*denied|graphicscapturesession|capture is not supported|displaymanagement.*denied|monitor info.*access/i.test(\n message,\n );\n}\n\nexport function createPermissionDeniedError(\n options: PermissionErrorOptions,\n): PermissionDeniedError {\n const error = new Error(options.message) as PermissionDeniedError;\n error.name = \"PermissionDeniedError\";\n error.permissionDenied = true;\n error.permissionType = options.permissionType;\n error.operation = options.operation;\n if (options.details) {\n error.details = options.details;\n }\n return error;\n}\n\nexport function isPermissionDeniedError(\n value: unknown,\n): value is PermissionDeniedError {\n return (\n value instanceof Error &&\n \"permissionDenied\" in value &&\n value.permissionDenied === true &&\n \"permissionType\" in value &&\n typeof value.permissionType === \"string\"\n );\n}\n\nfunction matchesAccessibilityPermissionError(message: string): boolean {\n return /accessibility|assistive access|not authorized to send apple events|osascript.*not allowed|osascript.*etimedout|spawnsync osascript etimedout|system events got an error|not permitted to send keystrokes|control.*not allowed/i.test(\n message,\n );\n}\n\nfunction matchesScreenRecordingPermissionError(message: string): boolean {\n return /screen recording|screen capture|not authorized|permission denied|could not create image from display|screencapture.*empty|cgwindowlistcreateimage|capture failed/i.test(\n message,\n );\n}\n\nexport function classifyPermissionDeniedError(\n error: unknown,\n fallback: {\n permissionType: PermissionType;\n operation: string;\n },\n): PermissionDeniedError | null {\n if (isPermissionDeniedError(error)) {\n return error;\n }\n\n const message = toMessage(error);\n const platform = process.platform;\n\n if (\n fallback.permissionType === \"accessibility\" &&\n matchesAccessibilityPermissionError(message)\n ) {\n return createPermissionDeniedError({\n permissionType: \"accessibility\",\n operation: fallback.operation,\n message:\n \"Desktop automation requires macOS Accessibility permission. Grant access in System Settings > Privacy & Security > Accessibility, then retry.\",\n details: message,\n });\n }\n\n if (\n fallback.permissionType === \"screen_recording\" &&\n matchesScreenRecordingPermissionError(message)\n ) {\n return createPermissionDeniedError({\n permissionType: \"screen_recording\",\n operation: fallback.operation,\n message:\n \"Screenshots require macOS Screen Recording permission. Grant access in System Settings > Privacy & Security > Screen Recording, then retry.\",\n details: message,\n });\n }\n\n // Windows privacy classifier — matches Windows 10/11 surface forms.\n // PARITY: code-complete; not runtime-tested against a real Windows host.\n if (platform === \"win32\") {\n if (\n fallback.permissionType === \"screen_recording\" &&\n (matchesWindowsScreenCaptureDenied(message) ||\n matchesWindowsPrivacyDeniedError(message))\n ) {\n return createPermissionDeniedError({\n permissionType: \"screen_recording\",\n operation: fallback.operation,\n message:\n \"Screen capture is blocked by Windows privacy settings or Group Policy. Open Settings > Privacy & Security > Screen recording and enable access for this app, then retry.\",\n details: message,\n });\n }\n if (\n (fallback.permissionType === \"camera\" ||\n fallback.permissionType === \"microphone\") &&\n matchesWindowsPrivacyDeniedError(message)\n ) {\n const deviceLabel =\n fallback.permissionType === \"camera\" ? \"Camera\" : \"Microphone\";\n return createPermissionDeniedError({\n permissionType: fallback.permissionType,\n operation: fallback.operation,\n message: `${deviceLabel} access is denied by Windows privacy settings or Group Policy. Open Settings > Privacy & Security > ${deviceLabel} and enable access for this app, then retry.`,\n details: message,\n });\n }\n if (\n fallback.permissionType === \"accessibility\" &&\n matchesWindowsPrivacyDeniedError(message)\n ) {\n // Windows does not require an accessibility permission for SendInput,\n // but UAC and protected-process targets surface the same denial shape.\n return createPermissionDeniedError({\n permissionType: \"accessibility\",\n operation: fallback.operation,\n message:\n \"Input dispatch was refused by Windows. The target window is likely an elevated (UAC) or protected process; restart the host with matching elevation or target a different window.\",\n details: message,\n });\n }\n }\n\n return null;\n}\n\n// ── Probe helpers ────────────────────────────────────────────────────────────\n//\n// Best-effort, side-effect-free permission probes. They never throw — callers\n// use the returned `granted` field plus `details` to drive UX. macOS is the\n// only platform with a real privacy DB we can read without prompting; Windows\n// inspects the Capability Access Manager registry; Linux has no equivalent.\n\nexport interface PermissionProbeResult {\n /** True if the OS reports the permission is granted for this process. */\n readonly granted: boolean;\n /**\n * `null` when the OS doesn't expose a probe (Linux desktop, headless, etc.)\n * — caller should treat this as \"unknown, attempt the operation and rely on\n * runtime classification\".\n */\n readonly probed: boolean;\n readonly details?: string;\n}\n\nfunction probeWindowsCapabilityAccess(\n capability: \"webcam\" | \"microphone\" | \"graphicsCaptureProgrammatic\",\n): PermissionProbeResult {\n // Windows stores per-capability consent under\n // HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\CapabilityAccessManager\\ConsentStore\\<capability>\n // The `Value` REG_SZ is \"Allow\" / \"Deny\". This is read-only and never\n // triggers a consent prompt.\n // PARITY: code-complete; not runtime-tested against a real Windows host.\n const { execFileSync } = require(\"node:child_process\") as {\n execFileSync: (\n cmd: string,\n args: string[],\n opts?: { encoding?: string; timeout?: number; stdio?: unknown },\n ) => string;\n };\n const command = `try { (Get-ItemProperty -ErrorAction Stop -Path 'HKCU:\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\CapabilityAccessManager\\\\ConsentStore\\\\${capability}').Value } catch { 'Unknown' }`;\n const stdout = execFileSync(\n \"powershell\",\n [\"-NoProfile\", \"-Command\", command],\n {\n encoding: \"utf8\",\n timeout: 4000,\n stdio: [\"ignore\", \"pipe\", \"ignore\"],\n },\n );\n const value = String(stdout).trim();\n return {\n granted: /^allow$/i.test(value),\n probed: value.length > 0 && !/^unknown$/i.test(value),\n details: `CapabilityAccessManager.${capability}=${value || \"<empty>\"}`,\n };\n}\n\nexport function probePermission(\n permissionType: PermissionType,\n): PermissionProbeResult {\n if (process.platform !== \"win32\") {\n return { granted: false, probed: false };\n }\n if (permissionType === \"camera\") {\n try {\n return probeWindowsCapabilityAccess(\"webcam\");\n } catch (err) {\n return { granted: false, probed: false, details: toMessage(err) };\n }\n }\n if (permissionType === \"microphone\") {\n try {\n return probeWindowsCapabilityAccess(\"microphone\");\n } catch (err) {\n return { granted: false, probed: false, details: toMessage(err) };\n }\n }\n if (permissionType === \"screen_recording\") {\n try {\n return probeWindowsCapabilityAccess(\"graphicsCaptureProgrammatic\");\n } catch (err) {\n return { granted: false, probed: false, details: toMessage(err) };\n }\n }\n // accessibility / shell — Windows has no per-app gate; treat as granted.\n return { granted: true, probed: false };\n}\n",
21
21
  "import { execFileSync } from \"node:child_process\";\nimport { copyFileSync } from \"node:fs\";\nimport { fileURLToPath } from \"node:url\";\nimport { commandExists } from \"./helpers.js\";\nimport { createPermissionDeniedError } from \"./permissions.js\";\n\nconst PORTAL_BUS_NAME = \"org.freedesktop.portal.Desktop\";\nconst PORTAL_OBJECT_PATH = \"/org/freedesktop/portal/desktop\";\nconst PORTAL_SCREENSHOT_METHOD = \"org.freedesktop.portal.Screenshot.Screenshot\";\nconst DEFAULT_TIMEOUT_MS = 15000;\n\nconst WAYLAND_PORTAL_HELPER = String.raw`\nimport os\nimport re\nimport select\nimport subprocess\nimport sys\nimport time\nimport uuid\n\nbus_name = \"org.freedesktop.portal.Desktop\"\nobject_path = \"/org/freedesktop/portal/desktop\"\nmethod = \"org.freedesktop.portal.Screenshot.Screenshot\"\ntimeout_ms = int(os.environ.get(\"ELIZA_WAYLAND_PORTAL_TIMEOUT_MS\", \"15000\"))\ninteractive = os.environ.get(\"ELIZA_WAYLAND_PORTAL_INTERACTIVE\", \"0\") == \"1\"\ntoken = \"eliza_\" + str(os.getpid()) + \"_\" + uuid.uuid4().hex\noptions = \"{'handle_token': <'\" + token + \"'>, 'interactive': <\" + (\"true\" if interactive else \"false\") + \">}\"\n\nmonitor = subprocess.Popen(\n [\"gdbus\", \"monitor\", \"--session\", \"--dest\", bus_name],\n stdout=subprocess.PIPE,\n stderr=subprocess.PIPE,\n text=True,\n bufsize=1,\n)\n\ntry:\n time.sleep(0.05)\n call = subprocess.run(\n [\n \"gdbus\",\n \"call\",\n \"--session\",\n \"--dest\",\n bus_name,\n \"--object-path\",\n object_path,\n \"--method\",\n method,\n \"\",\n options,\n ],\n capture_output=True,\n text=True,\n timeout=max(1, timeout_ms / 1000),\n )\n if call.returncode != 0:\n print(call.stderr.strip() or call.stdout.strip() or \"portal screenshot call failed\", file=sys.stderr)\n sys.exit(2)\n\n match = re.search(r\"objectpath '([^']+)'\", call.stdout)\n if not match:\n print(\"portal screenshot call did not return a request handle: \" + call.stdout.strip(), file=sys.stderr)\n sys.exit(3)\n\n handle = match.group(1)\n deadline = time.monotonic() + (timeout_ms / 1000)\n buffer = \"\"\n\n while time.monotonic() < deadline:\n remaining = max(0, min(0.5, deadline - time.monotonic()))\n ready, _, _ = select.select([monitor.stdout], [], [], remaining)\n if not ready:\n continue\n line = monitor.stdout.readline()\n if not line:\n continue\n buffer += line\n if len(buffer) > 65536:\n buffer = buffer[-65536:]\n if handle not in buffer:\n continue\n tail = buffer[buffer.rfind(handle):]\n response = re.search(r\"uint32\\s+(\\d+)\", tail)\n if not response:\n continue\n response_code = int(response.group(1))\n if response_code != 0:\n print(\"portal screenshot request was denied or cancelled (response=%d)\" % response_code, file=sys.stderr)\n sys.exit(10 + response_code)\n uri = re.search(r\"['\\\"]uri['\\\"]\\s*:\\s*<['\\\"]([^'\\\"]+)['\\\"]>\", tail)\n if uri:\n print(uri.group(1))\n sys.exit(0)\n\n print(\"timed out waiting for portal screenshot response\", file=sys.stderr)\n sys.exit(4)\nfinally:\n monitor.terminate()\n try:\n monitor.wait(timeout=1)\n except Exception:\n monitor.kill()\n`;\n\nexport interface WaylandPortalCaptureOptions {\n readonly interactive?: boolean;\n readonly timeoutMs?: number;\n}\n\nexport interface PortalScreenshotResponse {\n readonly responseCode: number;\n readonly uri?: string;\n}\n\ninterface WaylandSessionEnv {\n readonly WAYLAND_DISPLAY?: string;\n readonly XDG_SESSION_TYPE?: string;\n}\n\nexport function isWaylandSession(env?: WaylandSessionEnv): boolean {\n const sessionType = (env?.XDG_SESSION_TYPE ?? process.env.XDG_SESSION_TYPE)\n ?.trim()\n .toLowerCase();\n const waylandDisplay =\n (env?.WAYLAND_DISPLAY ?? process.env.WAYLAND_DISPLAY)?.trim() ?? \"\";\n return sessionType === \"wayland\" || waylandDisplay.length > 0;\n}\n\nexport function canUseWaylandScreenshotPortal(): boolean {\n return (\n isWaylandSession() && commandExists(\"python3\") && commandExists(\"gdbus\")\n );\n}\n\nexport function captureWaylandPortalScreenshot(\n tmpFile: string,\n options: WaylandPortalCaptureOptions = {},\n): void {\n if (!isWaylandSession()) {\n throw new Error(\n \"Wayland screenshot portal requested outside a Wayland session.\",\n );\n }\n if (!commandExists(\"python3\") || !commandExists(\"gdbus\")) {\n throw new Error(\n \"Wayland screenshot portal requires python3 and gdbus on PATH.\",\n );\n }\n\n const timeoutMs = options.timeoutMs ?? DEFAULT_TIMEOUT_MS;\n let uri: string;\n try {\n uri = execFileSync(\"python3\", [\"-c\", WAYLAND_PORTAL_HELPER], {\n encoding: \"utf-8\",\n timeout: timeoutMs + 2000,\n env: {\n ...process.env,\n ELIZA_WAYLAND_PORTAL_INTERACTIVE: options.interactive ? \"1\" : \"0\",\n ELIZA_WAYLAND_PORTAL_TIMEOUT_MS: String(timeoutMs),\n },\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n }).trim();\n } catch (error) {\n const message = commandErrorMessage(error);\n if (/denied|cancelled|canceled/i.test(message)) {\n throw createPermissionDeniedError({\n permissionType: \"screen_recording\",\n operation: \"screenshot_capture\",\n message:\n \"Wayland screenshot permission was denied or cancelled by the portal.\",\n details: message,\n });\n }\n throw error;\n }\n\n const sourcePath = portalFileUriToPath(uri);\n copyFileSync(sourcePath, tmpFile);\n}\n\nfunction commandErrorMessage(error: unknown): string {\n if (!error || typeof error !== \"object\") return String(error);\n const parts: string[] = [];\n const candidate = error as {\n message?: unknown;\n stderr?: unknown;\n stdout?: unknown;\n };\n for (const value of [candidate.message, candidate.stderr, candidate.stdout]) {\n if (typeof value === \"string\" && value.length > 0) {\n parts.push(value);\n } else if (Buffer.isBuffer(value) && value.length > 0) {\n parts.push(value.toString(\"utf-8\"));\n }\n }\n return parts.join(\"\\n\") || String(error);\n}\n\nexport function parsePortalRequestHandle(output: string): string | null {\n return output.match(/objectpath '([^']+)'/)?.[1] ?? null;\n}\n\nexport function parsePortalScreenshotResponse(\n output: string,\n handle?: string,\n): PortalScreenshotResponse | null {\n const source =\n handle && output.includes(handle)\n ? output.slice(output.lastIndexOf(handle))\n : output;\n const responseCodeText = source.match(/uint32\\s+(\\d+)/)?.[1];\n if (!responseCodeText) return null;\n\n const responseCode = Number.parseInt(responseCodeText, 10);\n const uri = source.match(/['\"]uri['\"]\\s*:\\s*<['\"]([^'\"]+)['\"]>/)?.[1];\n return Number.isFinite(responseCode)\n ? { responseCode, ...(uri ? { uri } : {}) }\n : null;\n}\n\nexport function portalFileUriToPath(uri: string): string {\n if (!uri.startsWith(\"file://\")) {\n throw new Error(\n `Wayland screenshot portal returned a non-file URI: ${uri}`,\n );\n }\n return fileURLToPath(uri);\n}\n\nexport const WAYLAND_PORTAL_DBUS_TARGET = {\n busName: PORTAL_BUS_NAME,\n objectPath: PORTAL_OBJECT_PATH,\n method: PORTAL_SCREENSHOT_METHOD,\n} as const;\n",
22
22
  "/**\n * Structured screenshot error contract (issue #9105, M3.5).\n *\n * Capture can fail for several distinct reasons, and a caller (the CUA Brain,\n * the GET_SCREEN op, the approval/telemetry layer) wants to react differently\n * to each: a missing OS permission needs a \"grant access\" prompt; a missing CLI\n * tool needs an \"install scrot/ImageMagick\" hint; an empty buffer or a timeout\n * is a transient retry. Before this contract, those were indistinguishable —\n * callers had to regex the human-readable message.\n *\n * This module adds a machine-readable {@link ScreenshotErrorCode} **additively**:\n * `tagScreenshotError` annotates the *existing* thrown error object with a code\n * rather than replacing it, so a `PermissionDeniedError` keeps its identity\n * (`isPermissionDeniedError` stays true) while also gaining a\n * `screenshotErrorCode` of `\"permission_denied\"`. No existing caller breaks; new\n * callers can switch on the code.\n */\n\nimport { isPermissionDeniedError } from \"./permissions.js\";\n\nexport type ScreenshotErrorCode =\n /** An OS privacy permission (Screen Recording / Accessibility) is denied. */\n | \"permission_denied\"\n /** No screenshot CLI tool is installed (e.g. Linux without scrot/import). */\n | \"tool_missing\"\n /** The capture tool ran but produced an empty/zero-byte image. */\n | \"empty_output\"\n /** The capture command exceeded its timeout. */\n | \"timeout\"\n /** Any other capture failure. */\n | \"capture_failed\";\n\n/** An `Error` carrying a machine-readable {@link ScreenshotErrorCode}. */\nexport interface ScreenshotError extends Error {\n readonly screenshotErrorCode: ScreenshotErrorCode;\n /** The capture operation that failed (e.g. `screenshot_capture`). */\n readonly operation: string;\n /** Underlying error message, when this wraps a lower-level failure. */\n readonly details?: string;\n}\n\ntype Mutable<T> = { -readonly [K in keyof T]: T[K] };\n\nfunction toMessage(error: unknown): string {\n return error instanceof Error ? error.message : String(error);\n}\n\nexport function isScreenshotError(value: unknown): value is ScreenshotError {\n return (\n value instanceof Error &&\n \"screenshotErrorCode\" in value &&\n typeof (value as { screenshotErrorCode?: unknown }).screenshotErrorCode ===\n \"string\"\n );\n}\n\nexport function createScreenshotError(\n code: ScreenshotErrorCode,\n operation: string,\n message: string,\n details?: string,\n): ScreenshotError {\n const error = new Error(message) as Mutable<ScreenshotError>;\n error.name = \"ScreenshotError\";\n error.screenshotErrorCode = code;\n error.operation = operation;\n if (details !== undefined) error.details = details;\n return error;\n}\n\n/**\n * Map any thrown value to a {@link ScreenshotErrorCode} by inspecting its type\n * and message. Permission denials win first (they are typed); the rest are\n * recognized from the well-known message shapes the capture functions throw.\n * Pure — exported so the mapping has a single, testable source of truth.\n */\nexport function classifyScreenshotErrorCode(\n error: unknown,\n): ScreenshotErrorCode {\n if (isPermissionDeniedError(error)) return \"permission_denied\";\n if (isScreenshotError(error)) return error.screenshotErrorCode;\n\n const message = toMessage(error).toLowerCase();\n if (\n /no screenshot tool|install (imagemagick|scrot|gnome-screenshot)|command not found|\\benoent\\b|not recognized as (?:the name of )?an? (?:internal|cmdlet)/.test(\n message,\n )\n ) {\n return \"tool_missing\";\n }\n if (\n /empty (?:file|output|image|buffer)|zero[- ]?byte|returned an empty/.test(\n message,\n )\n ) {\n return \"empty_output\";\n }\n if (/timed out|timeout|\\betimedout\\b/.test(message)) {\n return \"timeout\";\n }\n return \"capture_failed\";\n}\n\n/**\n * Annotate `error` with a {@link ScreenshotErrorCode} and return it. Additive:\n * an `Error` (including a `PermissionDeniedError`) is mutated in place so its\n * identity and existing fields are preserved; a non-`Error` value is wrapped in\n * a fresh {@link ScreenshotError}. Idempotent — an already-tagged error is\n * returned unchanged.\n */\nexport function tagScreenshotError(\n error: unknown,\n operation: string,\n): ScreenshotError {\n if (isScreenshotError(error)) return error;\n\n const code = classifyScreenshotErrorCode(error);\n if (error instanceof Error) {\n const tagged = error as Mutable<ScreenshotError>;\n tagged.screenshotErrorCode = code;\n if (typeof tagged.operation !== \"string\") tagged.operation = operation;\n return tagged;\n }\n return createScreenshotError(code, operation, toMessage(error));\n}\n",
23
- "/**\n * Cross-platform screenshot capture.\n *\n * Ported from:\n * - coasty-ai/open-computer-use screenshot.ts (Apache 2.0)\n * - eliza sandbox-routes.ts captureScreenshot()\n *\n * Uses native CLI tools — no Electron dependency.\n * Full logical resolution is preserved (critical for accurate coordinate mapping).\n */\n\nimport { execSync } from \"node:child_process\";\nimport { readFileSync, unlinkSync } from \"node:fs\";\nimport { tmpdir } from \"node:os\";\nimport { join } from \"node:path\";\nimport type { ScreenRegion } from \"../types.js\";\nimport { commandExists, currentPlatform, runCommandBuffer } from \"./helpers.js\";\nimport {\n classifyPermissionDeniedError,\n createPermissionDeniedError,\n isPermissionDeniedError,\n} from \"./permissions.js\";\nimport { tagScreenshotError } from \"./screenshot-errors.js\";\nimport {\n canUseWaylandScreenshotPortal,\n captureWaylandPortalScreenshot,\n isWaylandSession,\n} from \"./wayland-portal.js\";\n\nconst SCREEN_RECORDING_OPERATION_MESSAGE =\n \"macOS Screen Recording permission is required for screenshots. Grant access in System Settings > Privacy & Security > Screen Recording, then retry.\";\n\n/**\n * Capture a screenshot of the entire screen (or a region) and return as a Buffer (PNG).\n */\nexport function captureScreenshot(region?: ScreenRegion): Buffer {\n const os = currentPlatform();\n const tmpFile = join(tmpdir(), `computeruse-screenshot-${Date.now()}.png`);\n\n try {\n if (os === \"darwin\") {\n captureDarwin(tmpFile, region);\n } else if (os === \"linux\") {\n captureLinux(tmpFile, region);\n } else if (os === \"win32\") {\n captureWindows(tmpFile, region);\n }\n\n const data = readFileSync(tmpFile);\n if (os === \"darwin\" && data.length === 0) {\n throw createPermissionDeniedError({\n permissionType: \"screen_recording\",\n operation: \"screenshot_capture\",\n message: SCREEN_RECORDING_OPERATION_MESSAGE,\n details: \"screencapture returned an empty file.\",\n });\n }\n\n try {\n unlinkSync(tmpFile);\n } catch {\n /* cleanup best effort */\n }\n return data;\n } catch (err) {\n try {\n unlinkSync(tmpFile);\n } catch {\n /* ignore */\n }\n\n const operation = region ? \"screenshot_region\" : \"screenshot_capture\";\n\n if (isPermissionDeniedError(err)) {\n throw tagScreenshotError(err, operation);\n }\n\n const permissionError = classifyPermissionDeniedError(err, {\n permissionType: \"screen_recording\",\n operation,\n });\n if (permissionError) {\n throw tagScreenshotError(permissionError, operation);\n }\n\n throw tagScreenshotError(err, operation);\n }\n}\n\n// ── macOS ───────────────────────────────────────────────────────────────────\n\nfunction captureDarwin(tmpFile: string, region?: ScreenRegion): void {\n try {\n if (region) {\n runCommandBuffer(\n \"screencapture\",\n [\n `-R${region.x},${region.y},${region.width},${region.height}`,\n \"-x\",\n tmpFile,\n ],\n 10000,\n );\n } else {\n // -x suppresses the shutter sound\n runCommandBuffer(\"screencapture\", [\"-x\", tmpFile], 10000);\n }\n } catch (error) {\n const permissionError = classifyPermissionDeniedError(error, {\n permissionType: \"screen_recording\",\n operation: region ? \"screenshot_region\" : \"screenshot_capture\",\n });\n if (permissionError) {\n throw permissionError;\n }\n throw error;\n }\n}\n\n// ── Linux ───────────────────────────────────────────────────────────────────\n\nfunction captureLinux(tmpFile: string, region?: ScreenRegion): void {\n if (!region && tryCaptureWaylandPortal(tmpFile)) return;\n\n // Try tools in preference order\n if (commandExists(\"import\")) {\n if (region) {\n runCommandBuffer(\n \"import\",\n [\n \"-window\",\n \"root\",\n \"-crop\",\n `${region.width}x${region.height}+${region.x}+${region.y}`,\n tmpFile,\n ],\n 10000,\n );\n } else {\n runCommandBuffer(\"import\", [\"-window\", \"root\", tmpFile], 10000);\n }\n } else if (commandExists(\"scrot\")) {\n runCommandBuffer(\"scrot\", [tmpFile], 10000);\n } else if (commandExists(\"gnome-screenshot\")) {\n runCommandBuffer(\"gnome-screenshot\", [\"-f\", tmpFile], 10000);\n } else {\n throw new Error(\n isWaylandSession()\n ? \"No screenshot tool available. Install xdg-desktop-portal with gdbus/python3 for Wayland, or ImageMagick (import), scrot, or gnome-screenshot for X11 fallback.\"\n : \"No screenshot tool available. Install ImageMagick (import), scrot, or gnome-screenshot.\",\n );\n }\n}\n\nfunction tryCaptureWaylandPortal(tmpFile: string): boolean {\n if (!canUseWaylandScreenshotPortal()) return false;\n try {\n captureWaylandPortalScreenshot(tmpFile);\n return true;\n } catch (error) {\n if (isPermissionDeniedError(error)) throw error;\n return false;\n }\n}\n\n// ── Windows ─────────────────────────────────────────────────────────────────\n\nfunction captureWindows(tmpFile: string, _region?: ScreenRegion): void {\n const escapedPath = tmpFile.replace(/\\//g, \"\\\\\");\n const psCmd = [\n \"Add-Type -AssemblyName System.Windows.Forms\",\n \"$screen = [System.Windows.Forms.Screen]::PrimaryScreen.Bounds\",\n \"$bitmap = New-Object System.Drawing.Bitmap($screen.Width, $screen.Height)\",\n \"$graphics = [System.Drawing.Graphics]::FromImage($bitmap)\",\n \"$graphics.CopyFromScreen($screen.Location, [System.Drawing.Point]::Empty, $screen.Size)\",\n `$bitmap.Save('${escapedPath}')`,\n \"$graphics.Dispose()\",\n \"$bitmap.Dispose()\",\n ].join(\"; \");\n\n execSync(`powershell -Command \"${psCmd}\"`, {\n timeout: 15000,\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n });\n}\n",
24
- "/**\n * Per-display capture (WS5).\n *\n * Canonical capture entry point. Replaces `screenshot.ts` for any caller that\n * cares about multi-monitor or DPI. The legacy `captureScreenshot()` keeps\n * working (single-display, primary only) for back-compat.\n *\n * Returned `frame` is a PNG buffer at backing-store resolution:\n * - macOS retina — 2× the logical bounds (e.g. 5120×2880 for a 2560×1440\n * display reported as scaleFactor 2).\n * - Windows/Linux — pixel-equivalent to logical bounds.\n *\n * Implementation notes:\n * - macOS uses `screencapture -D <displayIndex+1>` to pick a specific\n * display (1-indexed). For ScreenCaptureKit follow-up, replace this\n * dispatch with the Swift sidecar.\n * - Linux/Wayland prefers the xdg-desktop-portal screenshot sidecar. X11\n * uses `import` (ImageMagick) or `scrot` cropped to the display's xrandr\n * rect.\n * - Windows uses PowerShell + System.Drawing to crop the virtual desktop\n * to the screen bounds.\n *\n * Every code path is conditional on the current platform — a Linux test host\n * can exercise the Linux paths; macOS / Windows paths are typechecked but\n * exercised only in CI on those OSes.\n */\n\nimport { execFileSync, execSync } from \"node:child_process\";\nimport { readFileSync, unlinkSync } from \"node:fs\";\nimport { tmpdir } from \"node:os\";\nimport { join } from \"node:path\";\nimport type { ScreenRegion } from \"../types.js\";\nimport type { DisplayInfo } from \"./displays.js\";\nimport { findDisplay, getPrimaryDisplay, listDisplays } from \"./displays.js\";\nimport { commandExists, currentPlatform, runCommandBuffer } from \"./helpers.js\";\nimport {\n classifyPermissionDeniedError,\n createPermissionDeniedError,\n isPermissionDeniedError,\n} from \"./permissions.js\";\nimport { psHostAvailable, runPsHost } from \"./ps-host.js\";\nimport {\n canUseWaylandScreenshotPortal,\n captureWaylandPortalScreenshot,\n isWaylandSession,\n} from \"./wayland-portal.js\";\n\nconst SCREEN_RECORDING_OPERATION_MESSAGE =\n \"macOS Screen Recording permission is required for screenshots. Grant access in System Settings > Privacy & Security > Screen Recording, then retry.\";\n\nexport interface DisplayCapture {\n display: DisplayInfo;\n /** PNG bytes at backing-store resolution. */\n frame: Buffer;\n}\n\n/**\n * Capture every attached display in parallel. Returns one entry per display.\n * Errors on any display are surfaced as rejected promises — caller decides\n * whether to retry or partial-fail.\n */\nexport async function captureAllDisplays(): Promise<DisplayCapture[]> {\n const displays = listDisplays();\n return Promise.all(displays.map((d) => captureDisplay(d.id)));\n}\n\n/**\n * Capture a specific display by id.\n */\nexport async function captureDisplay(\n displayId: number,\n): Promise<DisplayCapture> {\n const display = findDisplay(displayId);\n if (!display) {\n throw new Error(\n `Unknown displayId ${displayId}. Known: ${listDisplays()\n .map((d) => d.id)\n .join(\", \")}`,\n );\n }\n const os = currentPlatform();\n const tmpFile = join(\n tmpdir(),\n `computeruse-display-${displayId}-${Date.now()}.png`,\n );\n try {\n if (os === \"darwin\") captureDisplayDarwin(tmpFile, display);\n else if (os === \"linux\") captureDisplayLinux(tmpFile, display);\n else if (os === \"win32\") await captureDisplayWindows(tmpFile, display);\n\n const data = readFileSync(tmpFile);\n if (os === \"darwin\" && data.length === 0) {\n throw createPermissionDeniedError({\n permissionType: \"screen_recording\",\n operation: \"screenshot_capture\",\n message: SCREEN_RECORDING_OPERATION_MESSAGE,\n details: \"screencapture returned an empty file.\",\n });\n }\n return { display, frame: data };\n } catch (err) {\n if (isPermissionDeniedError(err)) throw err;\n const permissionError = classifyPermissionDeniedError(err, {\n permissionType: \"screen_recording\",\n operation: \"screenshot_capture\",\n });\n if (permissionError) throw permissionError;\n throw err;\n } finally {\n try {\n unlinkSync(tmpFile);\n } catch {\n /* best effort */\n }\n }\n}\n\n/**\n * Capture a region within a specific display. Region coordinates are LOCAL\n * to that display.\n */\nexport async function captureDisplayRegion(\n displayId: number,\n region: ScreenRegion,\n): Promise<DisplayCapture> {\n const display = findDisplay(displayId);\n if (!display) {\n throw new Error(`Unknown displayId ${displayId}.`);\n }\n const globalRegion: ScreenRegion = {\n x: display.bounds[0] + region.x,\n y: display.bounds[1] + region.y,\n width: region.width,\n height: region.height,\n };\n const os = currentPlatform();\n const tmpFile = join(\n tmpdir(),\n `computeruse-region-${displayId}-${Date.now()}.png`,\n );\n try {\n if (os === \"darwin\") captureRegionDarwin(tmpFile, globalRegion);\n else if (os === \"linux\") captureRegionLinux(tmpFile, globalRegion);\n else if (os === \"win32\") await captureRegionWindows(tmpFile, globalRegion);\n const data = readFileSync(tmpFile);\n return { display, frame: data };\n } finally {\n try {\n unlinkSync(tmpFile);\n } catch {\n /* best effort */\n }\n }\n}\n\n/**\n * Convenience: capture the primary display.\n */\nexport async function capturePrimaryDisplay(): Promise<DisplayCapture> {\n return captureDisplay(getPrimaryDisplay().id);\n}\n\n// ── macOS ───────────────────────────────────────────────────────────────────\n\nfunction captureDisplayDarwin(tmpFile: string, display: DisplayInfo): void {\n // `screencapture -D N` selects display N (1-based). Display ids reported\n // by CG are 32-bit handles; we map our 0-based index to the -D argument.\n const ordinal = displayOrdinal(display);\n try {\n runCommandBuffer(\n \"screencapture\",\n [\"-D\", String(ordinal + 1), \"-x\", tmpFile],\n 10000,\n );\n } catch (error) {\n const permissionError = classifyPermissionDeniedError(error, {\n permissionType: \"screen_recording\",\n operation: \"screenshot_capture\",\n });\n if (permissionError) throw permissionError;\n throw error;\n }\n}\n\nfunction captureRegionDarwin(tmpFile: string, region: ScreenRegion): void {\n runCommandBuffer(\n \"screencapture\",\n [\n `-R${region.x},${region.y},${region.width},${region.height}`,\n \"-x\",\n tmpFile,\n ],\n 10000,\n );\n}\n\n// ── Linux ───────────────────────────────────────────────────────────────────\n\nfunction captureDisplayLinux(tmpFile: string, display: DisplayInfo): void {\n const [x, y, w, h] = display.bounds;\n if (tryCaptureWaylandPortal(tmpFile)) return;\n if (commandExists(\"import\")) {\n runCommandBuffer(\n \"import\",\n [\"-window\", \"root\", \"-crop\", `${w}x${h}+${x}+${y}`, tmpFile],\n 10000,\n );\n return;\n }\n if (commandExists(\"scrot\")) {\n runCommandBuffer(\"scrot\", [\"-a\", `${x},${y},${w},${h}`, tmpFile], 10000);\n return;\n }\n if (commandExists(\"gnome-screenshot\")) {\n // gnome-screenshot doesn't crop precisely — fall back to whole screen.\n runCommandBuffer(\"gnome-screenshot\", [\"-f\", tmpFile], 10000);\n return;\n }\n throw new Error(\n isWaylandSession()\n ? \"No screenshot tool available. Install xdg-desktop-portal with gdbus/python3 for Wayland, or ImageMagick (import), scrot, or gnome-screenshot for X11 fallback.\"\n : \"No screenshot tool available. Install ImageMagick (import), scrot, or gnome-screenshot.\",\n );\n}\n\nfunction captureRegionLinux(tmpFile: string, region: ScreenRegion): void {\n if (commandExists(\"import\")) {\n runCommandBuffer(\n \"import\",\n [\n \"-window\",\n \"root\",\n \"-crop\",\n `${region.width}x${region.height}+${region.x}+${region.y}`,\n tmpFile,\n ],\n 10000,\n );\n return;\n }\n if (commandExists(\"scrot\")) {\n runCommandBuffer(\n \"scrot\",\n [\n \"-a\",\n `${region.x},${region.y},${region.width},${region.height}`,\n tmpFile,\n ],\n 10000,\n );\n return;\n }\n throw new Error(\"No screenshot tool available for region capture.\");\n}\n\nfunction tryCaptureWaylandPortal(tmpFile: string): boolean {\n if (!canUseWaylandScreenshotPortal()) return false;\n try {\n captureWaylandPortalScreenshot(tmpFile);\n return true;\n } catch (error) {\n if (isPermissionDeniedError(error)) throw error;\n return false;\n }\n}\n\n// ── Windows ─────────────────────────────────────────────────────────────────\n\n/**\n * Coerce a capture region to integer pixels and reject empty/degenerate sizes.\n *\n * `New-Object System.Drawing.Bitmap(w, h)` throws an opaque \"Parameter is not\n * valid\" GDI+ error for a zero/negative/non-integer width or height, so we\n * validate up front and surface a clear message. `x`/`y` may legitimately be\n * negative — secondary monitors placed left of / above the primary live in the\n * negative quadrant of the Windows virtual-desktop coordinate space — so only\n * the dimensions are bounds-checked. Exported for cross-platform unit tests.\n */\nexport function normalizeCaptureRegion(region: ScreenRegion): ScreenRegion {\n const width = Math.round(region.width);\n const height = Math.round(region.height);\n if (!Number.isFinite(width) || !Number.isFinite(height)) {\n throw new Error(\n `Invalid capture region: width/height must be finite numbers (got ${region.width}x${region.height}).`,\n );\n }\n if (width <= 0 || height <= 0) {\n throw new Error(\n `Invalid capture region: width and height must be positive (got ${width}x${height}).`,\n );\n }\n return {\n x: Math.round(region.x),\n y: Math.round(region.y),\n width,\n height,\n };\n}\n\nasync function captureDisplayWindows(\n tmpFile: string,\n display: DisplayInfo,\n): Promise<void> {\n const [x, y, w, h] = display.bounds;\n await captureRegionWindows(tmpFile, { x, y, width: w, height: h });\n}\n\nasync function captureRegionWindows(\n tmpFile: string,\n region: ScreenRegion,\n): Promise<void> {\n const safe = normalizeCaptureRegion(region);\n const escapedPath = tmpFile.replace(/\\//g, \"\\\\\");\n const psCmd = [\n \"Add-Type -AssemblyName System.Windows.Forms,System.Drawing\",\n `$bitmap = New-Object System.Drawing.Bitmap(${safe.width}, ${safe.height})`,\n \"$graphics = [System.Drawing.Graphics]::FromImage($bitmap)\",\n `$origin = New-Object System.Drawing.Point(${safe.x}, ${safe.y})`,\n `$size = New-Object System.Drawing.Size(${safe.width}, ${safe.height})`,\n \"$graphics.CopyFromScreen($origin, [System.Drawing.Point]::Empty, $size)\",\n `$bitmap.Save('${escapedPath}')`,\n \"$graphics.Dispose()\",\n \"$bitmap.Dispose()\",\n ].join(\"; \");\n // Prefer the warm PowerShell host — a cold `powershell.exe` spawn is ~10-16s\n // on Defender-heavy hosts, and capture runs every turn (full frame + each\n // dirty region). The host runs the SAME script in an already-warm process\n // (sub-second). Any host failure falls through to the one-shot spawn so\n // behavior is unchanged, only faster.\n if (psHostAvailable()) {\n try {\n await runPsHost(psCmd, 15000);\n return;\n } catch {\n /* warm host unavailable/errored — fall back to one-shot spawn */\n }\n }\n execSync(`powershell -NoProfile -Command \"${psCmd}\"`, {\n timeout: 15000,\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n });\n}\n\n// ── helpers ─────────────────────────────────────────────────────────────────\n\nfunction displayOrdinal(display: DisplayInfo): number {\n const all = listDisplays();\n const idx = all.findIndex((d) => d.id === display.id);\n return idx >= 0 ? idx : 0;\n}\n\n// Re-export the legacy single-display API so that screenshot.ts callers work.\nexport { captureScreenshot } from \"./screenshot.js\";\n\n// Suppress unused-import lint when execFileSync isn't reached on every build.\nvoid execFileSync;\n",
23
+ "/**\n * Cross-platform screenshot capture.\n *\n * Ported from:\n * - coasty-ai/open-computer-use screenshot.ts (Apache 2.0)\n * - eliza sandbox-routes.ts captureScreenshot()\n *\n * Uses native CLI tools — no Electron dependency.\n * Full logical resolution is preserved (critical for accurate coordinate mapping).\n */\n\nimport { execSync } from \"node:child_process\";\nimport { readFileSync, unlinkSync } from \"node:fs\";\nimport { tmpdir } from \"node:os\";\nimport { join } from \"node:path\";\nimport type { ScreenRegion } from \"../types.js\";\nimport { commandExists, currentPlatform, runCommandBuffer } from \"./helpers.js\";\nimport {\n classifyPermissionDeniedError,\n createPermissionDeniedError,\n isPermissionDeniedError,\n} from \"./permissions.js\";\nimport { tagScreenshotError } from \"./screenshot-errors.js\";\nimport {\n canUseWaylandScreenshotPortal,\n captureWaylandPortalScreenshot,\n isWaylandSession,\n} from \"./wayland-portal.js\";\n\nconst SCREEN_RECORDING_OPERATION_MESSAGE =\n \"macOS Screen Recording permission is required for screenshots. Grant access in System Settings > Privacy & Security > Screen Recording, then retry.\";\n\n/**\n * Capture a screenshot of the entire screen (or a region) and return as a Buffer (PNG).\n */\nexport function captureScreenshot(region?: ScreenRegion): Buffer {\n const os = currentPlatform();\n const tmpFile = join(tmpdir(), `computeruse-screenshot-${Date.now()}.png`);\n\n try {\n if (os === \"darwin\") {\n captureDarwin(tmpFile, region);\n } else if (os === \"linux\") {\n captureLinux(tmpFile, region);\n } else if (os === \"win32\") {\n captureWindows(tmpFile, region);\n }\n\n const data = readFileSync(tmpFile);\n if (os === \"darwin\" && data.length === 0) {\n throw createPermissionDeniedError({\n permissionType: \"screen_recording\",\n operation: \"screenshot_capture\",\n message: SCREEN_RECORDING_OPERATION_MESSAGE,\n details: \"screencapture returned an empty file.\",\n });\n }\n\n try {\n unlinkSync(tmpFile);\n } catch {\n /* cleanup best effort */\n }\n return data;\n } catch (err) {\n try {\n unlinkSync(tmpFile);\n } catch {\n /* ignore */\n }\n\n const operation = region ? \"screenshot_region\" : \"screenshot_capture\";\n\n if (isPermissionDeniedError(err)) {\n throw tagScreenshotError(err, operation);\n }\n\n const permissionError = classifyPermissionDeniedError(err, {\n permissionType: \"screen_recording\",\n operation,\n });\n if (permissionError) {\n throw tagScreenshotError(permissionError, operation);\n }\n\n throw tagScreenshotError(err, operation);\n }\n}\n\n// ── macOS ───────────────────────────────────────────────────────────────────\n\nfunction captureDarwin(tmpFile: string, region?: ScreenRegion): void {\n try {\n if (region) {\n runCommandBuffer(\n \"screencapture\",\n [\n `-R${region.x},${region.y},${region.width},${region.height}`,\n \"-x\",\n tmpFile,\n ],\n 10000,\n );\n } else {\n // -x suppresses the shutter sound\n runCommandBuffer(\"screencapture\", [\"-x\", tmpFile], 10000);\n }\n } catch (error) {\n const permissionError = classifyPermissionDeniedError(error, {\n permissionType: \"screen_recording\",\n operation: region ? \"screenshot_region\" : \"screenshot_capture\",\n });\n if (permissionError) {\n throw permissionError;\n }\n throw error;\n }\n}\n\n// ── Linux ───────────────────────────────────────────────────────────────────\n\nfunction captureLinux(tmpFile: string, region?: ScreenRegion): void {\n if (!region && tryCaptureWaylandPortal(tmpFile)) return;\n\n // Try tools in preference order\n if (commandExists(\"import\")) {\n if (region) {\n runCommandBuffer(\n \"import\",\n [\n \"-window\",\n \"root\",\n \"-crop\",\n `${region.width}x${region.height}+${region.x}+${region.y}`,\n tmpFile,\n ],\n 10000,\n );\n } else {\n runCommandBuffer(\"import\", [\"-window\", \"root\", tmpFile], 10000);\n }\n } else if (commandExists(\"scrot\")) {\n runCommandBuffer(\"scrot\", [tmpFile], 10000);\n } else if (commandExists(\"gnome-screenshot\")) {\n runCommandBuffer(\"gnome-screenshot\", [\"-f\", tmpFile], 10000);\n } else if (commandExists(\"ffmpeg\")) {\n // x11grab fallback for X11 hosts that ship ffmpeg but none of the dedicated\n // screenshot tools (common on dev/server boxes). Writes a single PNG frame.\n const display = process.env.DISPLAY || \":0\";\n const size = region\n ? `${region.width}x${region.height}`\n : detectX11ScreenSize();\n const input = region ? `${display}+${region.x},${region.y}` : display;\n runCommandBuffer(\n \"ffmpeg\",\n [\n \"-y\",\n \"-loglevel\",\n \"error\",\n \"-f\",\n \"x11grab\",\n \"-video_size\",\n size,\n \"-i\",\n input,\n \"-frames:v\",\n \"1\",\n tmpFile,\n ],\n 10000,\n );\n } else {\n throw new Error(\n isWaylandSession()\n ? \"No screenshot tool available. Install xdg-desktop-portal with gdbus/python3 for Wayland, or ImageMagick (import), scrot, gnome-screenshot, or ffmpeg for X11 fallback.\"\n : \"No screenshot tool available. Install ImageMagick (import), scrot, gnome-screenshot, or ffmpeg.\",\n );\n }\n}\n\nfunction tryCaptureWaylandPortal(tmpFile: string): boolean {\n if (!canUseWaylandScreenshotPortal()) return false;\n try {\n captureWaylandPortalScreenshot(tmpFile);\n return true;\n } catch (error) {\n if (isPermissionDeniedError(error)) throw error;\n return false;\n }\n}\n\n/** Full X11 screen size (\"WxH\") from xdpyinfo; a sane default if unavailable. */\nfunction detectX11ScreenSize(): string {\n try {\n const out = execSync(\"xdpyinfo\", { encoding: \"utf8\", timeout: 5000 });\n const m = out.match(/dimensions:\\s+(\\d+)x(\\d+)/);\n if (m) return `${m[1]}x${m[2]}`;\n } catch {\n // fall through to the default below\n }\n return \"1920x1080\";\n}\n\n// ── Windows ─────────────────────────────────────────────────────────────────\n\nfunction captureWindows(tmpFile: string, _region?: ScreenRegion): void {\n const escapedPath = tmpFile.replace(/\\//g, \"\\\\\");\n const psCmd = [\n \"Add-Type -AssemblyName System.Windows.Forms\",\n \"$screen = [System.Windows.Forms.Screen]::PrimaryScreen.Bounds\",\n \"$bitmap = New-Object System.Drawing.Bitmap($screen.Width, $screen.Height)\",\n \"$graphics = [System.Drawing.Graphics]::FromImage($bitmap)\",\n \"$graphics.CopyFromScreen($screen.Location, [System.Drawing.Point]::Empty, $screen.Size)\",\n `$bitmap.Save('${escapedPath}')`,\n \"$graphics.Dispose()\",\n \"$bitmap.Dispose()\",\n ].join(\"; \");\n\n execSync(`powershell -Command \"${psCmd}\"`, {\n timeout: 15000,\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n });\n}\n",
24
+ "/**\n * Per-display capture (WS5).\n *\n * Canonical capture entry point. Replaces `screenshot.ts` for any caller that\n * cares about multi-monitor or DPI. The legacy `captureScreenshot()` keeps\n * working (single-display, primary only) for back-compat.\n *\n * Returned `frame` is a PNG buffer at backing-store resolution:\n * - macOS retina — 2× the logical bounds (e.g. 5120×2880 for a 2560×1440\n * display reported as scaleFactor 2).\n * - Windows/Linux — pixel-equivalent to logical bounds.\n *\n * Implementation notes:\n * - macOS uses `screencapture -D <displayIndex+1>` to pick a specific\n * display (1-indexed). For ScreenCaptureKit follow-up, replace this\n * dispatch with the Swift sidecar.\n * - Linux/Wayland prefers the xdg-desktop-portal screenshot sidecar. X11\n * uses `import` (ImageMagick) or `scrot` cropped to the display's xrandr\n * rect.\n * - Windows uses PowerShell + System.Drawing to crop the virtual desktop\n * to the screen bounds.\n *\n * Every code path is conditional on the current platform — a Linux test host\n * can exercise the Linux paths; macOS / Windows paths are typechecked but\n * exercised only in CI on those OSes.\n */\n\nimport { execFileSync, execSync } from \"node:child_process\";\nimport { readFileSync, unlinkSync } from \"node:fs\";\nimport { tmpdir } from \"node:os\";\nimport { join } from \"node:path\";\nimport type { ScreenRegion } from \"../types.js\";\nimport type { DisplayInfo } from \"./displays.js\";\nimport { findDisplay, getPrimaryDisplay, listDisplays } from \"./displays.js\";\nimport { commandExists, currentPlatform, runCommandBuffer } from \"./helpers.js\";\nimport {\n classifyPermissionDeniedError,\n createPermissionDeniedError,\n isPermissionDeniedError,\n} from \"./permissions.js\";\nimport { psHostAvailable, runPsHost } from \"./ps-host.js\";\nimport {\n canUseWaylandScreenshotPortal,\n captureWaylandPortalScreenshot,\n isWaylandSession,\n} from \"./wayland-portal.js\";\n\nconst SCREEN_RECORDING_OPERATION_MESSAGE =\n \"macOS Screen Recording permission is required for screenshots. Grant access in System Settings > Privacy & Security > Screen Recording, then retry.\";\n\nexport interface DisplayCapture {\n display: DisplayInfo;\n /** PNG bytes at backing-store resolution. */\n frame: Buffer;\n}\n\n/**\n * Capture every attached display in parallel. Returns one entry per display.\n * Errors on any display are surfaced as rejected promises — caller decides\n * whether to retry or partial-fail.\n */\nexport async function captureAllDisplays(): Promise<DisplayCapture[]> {\n const displays = listDisplays();\n return Promise.all(displays.map((d) => captureDisplay(d.id)));\n}\n\n/**\n * Capture a specific display by id.\n */\nexport async function captureDisplay(\n displayId: number,\n): Promise<DisplayCapture> {\n const display = findDisplay(displayId);\n if (!display) {\n throw new Error(\n `Unknown displayId ${displayId}. Known: ${listDisplays()\n .map((d) => d.id)\n .join(\", \")}`,\n );\n }\n const os = currentPlatform();\n const tmpFile = join(\n tmpdir(),\n `computeruse-display-${displayId}-${Date.now()}.png`,\n );\n try {\n if (os === \"darwin\") captureDisplayDarwin(tmpFile, display);\n else if (os === \"linux\") captureDisplayLinux(tmpFile, display);\n else if (os === \"win32\") await captureDisplayWindows(tmpFile, display);\n\n const data = readFileSync(tmpFile);\n if (os === \"darwin\" && data.length === 0) {\n throw createPermissionDeniedError({\n permissionType: \"screen_recording\",\n operation: \"screenshot_capture\",\n message: SCREEN_RECORDING_OPERATION_MESSAGE,\n details: \"screencapture returned an empty file.\",\n });\n }\n return { display, frame: data };\n } catch (err) {\n if (isPermissionDeniedError(err)) throw err;\n const permissionError = classifyPermissionDeniedError(err, {\n permissionType: \"screen_recording\",\n operation: \"screenshot_capture\",\n });\n if (permissionError) throw permissionError;\n throw err;\n } finally {\n try {\n unlinkSync(tmpFile);\n } catch {\n /* best effort */\n }\n }\n}\n\n/**\n * Capture a region within a specific display. Region coordinates are LOCAL\n * to that display.\n */\nexport async function captureDisplayRegion(\n displayId: number,\n region: ScreenRegion,\n): Promise<DisplayCapture> {\n const display = findDisplay(displayId);\n if (!display) {\n throw new Error(`Unknown displayId ${displayId}.`);\n }\n const globalRegion: ScreenRegion = {\n x: display.bounds[0] + region.x,\n y: display.bounds[1] + region.y,\n width: region.width,\n height: region.height,\n };\n const os = currentPlatform();\n const tmpFile = join(\n tmpdir(),\n `computeruse-region-${displayId}-${Date.now()}.png`,\n );\n try {\n if (os === \"darwin\") captureRegionDarwin(tmpFile, globalRegion);\n else if (os === \"linux\") captureRegionLinux(tmpFile, globalRegion);\n else if (os === \"win32\") await captureRegionWindows(tmpFile, globalRegion);\n const data = readFileSync(tmpFile);\n return { display, frame: data };\n } finally {\n try {\n unlinkSync(tmpFile);\n } catch {\n /* best effort */\n }\n }\n}\n\n/**\n * Convenience: capture the primary display.\n */\nexport async function capturePrimaryDisplay(): Promise<DisplayCapture> {\n return captureDisplay(getPrimaryDisplay().id);\n}\n\n// ── macOS ───────────────────────────────────────────────────────────────────\n\nfunction captureDisplayDarwin(tmpFile: string, display: DisplayInfo): void {\n // `screencapture -D N` selects display N (1-based). Display ids reported\n // by CG are 32-bit handles; we map our 0-based index to the -D argument.\n const ordinal = displayOrdinal(display);\n try {\n runCommandBuffer(\n \"screencapture\",\n [\"-D\", String(ordinal + 1), \"-x\", tmpFile],\n 10000,\n );\n } catch (error) {\n const permissionError = classifyPermissionDeniedError(error, {\n permissionType: \"screen_recording\",\n operation: \"screenshot_capture\",\n });\n if (permissionError) throw permissionError;\n throw error;\n }\n}\n\nfunction captureRegionDarwin(tmpFile: string, region: ScreenRegion): void {\n runCommandBuffer(\n \"screencapture\",\n [\n `-R${region.x},${region.y},${region.width},${region.height}`,\n \"-x\",\n tmpFile,\n ],\n 10000,\n );\n}\n\n// ── Linux ───────────────────────────────────────────────────────────────────\n\nfunction captureDisplayLinux(tmpFile: string, display: DisplayInfo): void {\n const [x, y, w, h] = display.bounds;\n if (tryCaptureWaylandPortal(tmpFile)) return;\n if (commandExists(\"import\")) {\n runCommandBuffer(\n \"import\",\n [\"-window\", \"root\", \"-crop\", `${w}x${h}+${x}+${y}`, tmpFile],\n 10000,\n );\n return;\n }\n if (commandExists(\"scrot\")) {\n runCommandBuffer(\"scrot\", [\"-a\", `${x},${y},${w},${h}`, tmpFile], 10000);\n return;\n }\n if (commandExists(\"gnome-screenshot\")) {\n // gnome-screenshot doesn't crop precisely — fall back to whole screen.\n runCommandBuffer(\"gnome-screenshot\", [\"-f\", tmpFile], 10000);\n return;\n }\n if (commandExists(\"ffmpeg\")) {\n const displayEnv = process.env.DISPLAY || \":0\";\n runCommandBuffer(\n \"ffmpeg\",\n [\n \"-y\",\n \"-loglevel\",\n \"error\",\n \"-f\",\n \"x11grab\",\n \"-video_size\",\n `${w}x${h}`,\n \"-i\",\n `${displayEnv}+${x},${y}`,\n \"-frames:v\",\n \"1\",\n tmpFile,\n ],\n 10000,\n );\n return;\n }\n throw new Error(\n isWaylandSession()\n ? \"No screenshot tool available. Install xdg-desktop-portal with gdbus/python3 for Wayland, or ImageMagick (import), scrot, gnome-screenshot, or ffmpeg for X11 fallback.\"\n : \"No screenshot tool available. Install ImageMagick (import), scrot, gnome-screenshot, or ffmpeg.\",\n );\n}\n\nfunction captureRegionLinux(tmpFile: string, region: ScreenRegion): void {\n if (commandExists(\"import\")) {\n runCommandBuffer(\n \"import\",\n [\n \"-window\",\n \"root\",\n \"-crop\",\n `${region.width}x${region.height}+${region.x}+${region.y}`,\n tmpFile,\n ],\n 10000,\n );\n return;\n }\n if (commandExists(\"scrot\")) {\n runCommandBuffer(\n \"scrot\",\n [\n \"-a\",\n `${region.x},${region.y},${region.width},${region.height}`,\n tmpFile,\n ],\n 10000,\n );\n return;\n }\n if (commandExists(\"ffmpeg\")) {\n const display = process.env.DISPLAY || \":0\";\n runCommandBuffer(\n \"ffmpeg\",\n [\n \"-y\",\n \"-loglevel\",\n \"error\",\n \"-f\",\n \"x11grab\",\n \"-video_size\",\n `${region.width}x${region.height}`,\n \"-i\",\n `${display}+${region.x},${region.y}`,\n \"-frames:v\",\n \"1\",\n tmpFile,\n ],\n 10000,\n );\n return;\n }\n throw new Error(\"No screenshot tool available for region capture.\");\n}\n\nfunction tryCaptureWaylandPortal(tmpFile: string): boolean {\n if (!canUseWaylandScreenshotPortal()) return false;\n try {\n captureWaylandPortalScreenshot(tmpFile);\n return true;\n } catch (error) {\n if (isPermissionDeniedError(error)) throw error;\n return false;\n }\n}\n\n// ── Windows ─────────────────────────────────────────────────────────────────\n\n/**\n * Coerce a capture region to integer pixels and reject empty/degenerate sizes.\n *\n * `New-Object System.Drawing.Bitmap(w, h)` throws an opaque \"Parameter is not\n * valid\" GDI+ error for a zero/negative/non-integer width or height, so we\n * validate up front and surface a clear message. `x`/`y` may legitimately be\n * negative — secondary monitors placed left of / above the primary live in the\n * negative quadrant of the Windows virtual-desktop coordinate space — so only\n * the dimensions are bounds-checked. Exported for cross-platform unit tests.\n */\nexport function normalizeCaptureRegion(region: ScreenRegion): ScreenRegion {\n const width = Math.round(region.width);\n const height = Math.round(region.height);\n if (!Number.isFinite(width) || !Number.isFinite(height)) {\n throw new Error(\n `Invalid capture region: width/height must be finite numbers (got ${region.width}x${region.height}).`,\n );\n }\n if (width <= 0 || height <= 0) {\n throw new Error(\n `Invalid capture region: width and height must be positive (got ${width}x${height}).`,\n );\n }\n return {\n x: Math.round(region.x),\n y: Math.round(region.y),\n width,\n height,\n };\n}\n\nasync function captureDisplayWindows(\n tmpFile: string,\n display: DisplayInfo,\n): Promise<void> {\n const [x, y, w, h] = display.bounds;\n await captureRegionWindows(tmpFile, { x, y, width: w, height: h });\n}\n\nasync function captureRegionWindows(\n tmpFile: string,\n region: ScreenRegion,\n): Promise<void> {\n const safe = normalizeCaptureRegion(region);\n const escapedPath = tmpFile.replace(/\\//g, \"\\\\\");\n const psCmd = [\n \"Add-Type -AssemblyName System.Windows.Forms,System.Drawing\",\n `$bitmap = New-Object System.Drawing.Bitmap(${safe.width}, ${safe.height})`,\n \"$graphics = [System.Drawing.Graphics]::FromImage($bitmap)\",\n `$origin = New-Object System.Drawing.Point(${safe.x}, ${safe.y})`,\n `$size = New-Object System.Drawing.Size(${safe.width}, ${safe.height})`,\n \"$graphics.CopyFromScreen($origin, [System.Drawing.Point]::Empty, $size)\",\n `$bitmap.Save('${escapedPath}')`,\n \"$graphics.Dispose()\",\n \"$bitmap.Dispose()\",\n ].join(\"; \");\n // Prefer the warm PowerShell host — a cold `powershell.exe` spawn is ~10-16s\n // on Defender-heavy hosts, and capture runs every turn (full frame + each\n // dirty region). The host runs the SAME script in an already-warm process\n // (sub-second). Any host failure falls through to the one-shot spawn so\n // behavior is unchanged, only faster.\n if (psHostAvailable()) {\n try {\n await runPsHost(psCmd, 15000);\n return;\n } catch {\n /* warm host unavailable/errored — fall back to one-shot spawn */\n }\n }\n execSync(`powershell -NoProfile -Command \"${psCmd}\"`, {\n timeout: 15000,\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n });\n}\n\n// ── helpers ─────────────────────────────────────────────────────────────────\n\nfunction displayOrdinal(display: DisplayInfo): number {\n const all = listDisplays();\n const idx = all.findIndex((d) => d.id === display.id);\n return idx >= 0 ? idx : 0;\n}\n\n// Re-export the legacy single-display API so that screenshot.ts callers work.\nexport { captureScreenshot } from \"./screenshot.js\";\n\n// Suppress unused-import lint when execFileSync isn't reached on every build.\nvoid execFileSync;\n",
25
25
  "/**\n * Cross-platform desktop automation — mouse, keyboard, scroll, drag.\n *\n * Ported from coasty-ai/open-computer-use desktop-automation.ts (Apache 2.0)\n * and eliza sandbox-routes.ts performClick/performType/performKeypress.\n *\n * Platform backends:\n * macOS — cliclick (preferred, brew install cliclick) or AppleScript fallback\n * Linux — xdotool (required: sudo apt install xdotool)\n * Windows — PowerShell with user32.dll P/Invoke\n *\n * All coordinate inputs are validated via validateInt() to prevent injection.\n */\n\nimport {\n canonicalKeyName,\n commandExists,\n currentPlatform,\n escapeAppleScript,\n runCommand,\n safeXdotoolKey,\n toCliclickKeyName,\n toWindowsSendKey,\n toXdotoolKeyName,\n validateInt,\n validateKeypress,\n validateText,\n} from \"./helpers.js\";\nimport {\n classifyPermissionDeniedError,\n isPermissionDeniedError,\n} from \"./permissions.js\";\n\nfunction _toAppleScriptModifier(key: string): string {\n const normalized = key.trim().toLowerCase();\n const mapping: Record<string, string> = {\n cmd: \"command\",\n command: \"command\",\n meta: \"command\",\n super: \"command\",\n ctrl: \"control\",\n control: \"control\",\n alt: \"option\",\n option: \"option\",\n shift: \"shift\",\n fn: \"function\",\n };\n const modifier = mapping[normalized];\n if (!modifier) {\n throw new Error(`Unsupported modifier key: \"${key}\"`);\n }\n return modifier;\n}\n\nfunction _toAppleScriptKeyCode(key: string): number | null {\n const canonical = canonicalKeyName(key);\n const keyCodes: Record<string, number> = {\n enter: 36,\n return: 36,\n tab: 48,\n space: 49,\n escape: 53,\n delete: 51,\n backspace: 51,\n left: 123,\n right: 124,\n down: 125,\n up: 126,\n home: 115,\n end: 119,\n pageup: 116,\n pagedown: 121,\n f1: 122,\n f2: 120,\n f3: 99,\n f4: 118,\n f5: 96,\n f6: 97,\n f7: 98,\n f8: 100,\n f9: 101,\n f10: 109,\n f11: 103,\n f12: 111,\n };\n return keyCodes[canonical] ?? null;\n}\n\nfunction runDarwinJxa(script: string, timeoutMs = 5000): void {\n runCommand(\"osascript\", [\"-l\", \"JavaScript\", \"-e\", script], timeoutMs);\n}\n\nfunction _moveMouseDarwin(x: number, y: number): void {\n runDarwinJxa(\n `\nObjC.import(\"ApplicationServices\");\nconst point = $.CGPointMake(${x}, ${y});\nconst event = $.CGEventCreateMouseEvent(\n null,\n $.kCGEventMouseMoved,\n point,\n $.kCGMouseButtonLeft\n);\n$.CGEventPost($.kCGHIDEventTap, event);\n`,\n );\n}\n\nfunction _clickDarwinWithCoreGraphics(\n x: number,\n y: number,\n button: \"left\" | \"right\",\n clickCount = 1,\n): void {\n const downEvent =\n button === \"right\" ? \"$.kCGEventRightMouseDown\" : \"$.kCGEventLeftMouseDown\";\n const upEvent =\n button === \"right\" ? \"$.kCGEventRightMouseUp\" : \"$.kCGEventLeftMouseUp\";\n const mouseButton =\n button === \"right\" ? \"$.kCGMouseButtonRight\" : \"$.kCGMouseButtonLeft\";\n runDarwinJxa(\n `\nObjC.import(\"ApplicationServices\");\nconst point = $.CGPointMake(${x}, ${y});\nfor (let clickIndex = 1; clickIndex <= ${clickCount}; clickIndex += 1) {\n const down = $.CGEventCreateMouseEvent(null, ${downEvent}, point, ${mouseButton});\n $.CGEventSetIntegerValueField(down, $.kCGMouseEventClickState, clickIndex);\n $.CGEventPost($.kCGHIDEventTap, down);\n const up = $.CGEventCreateMouseEvent(null, ${upEvent}, point, ${mouseButton});\n $.CGEventSetIntegerValueField(up, $.kCGMouseEventClickState, clickIndex);\n $.CGEventPost($.kCGHIDEventTap, up);\n}\n`,\n );\n}\n\nfunction _scrollDarwin(\n x: number,\n y: number,\n direction: \"up\" | \"down\" | \"left\" | \"right\",\n amount: number,\n): void {\n const vertical =\n direction === \"up\" ? amount : direction === \"down\" ? -amount : 0;\n const horizontal =\n direction === \"left\" ? amount : direction === \"right\" ? -amount : 0;\n runDarwinJxa(\n `\nObjC.import(\"ApplicationServices\");\nconst point = $.CGPointMake(${x}, ${y});\nconst moveEvent = $.CGEventCreateMouseEvent(\n null,\n $.kCGEventMouseMoved,\n point,\n $.kCGMouseButtonLeft\n);\n$.CGEventPost($.kCGHIDEventTap, moveEvent);\nconst scrollEvent = $.CGEventCreateScrollWheelEvent(\n null,\n $.kCGScrollEventUnitLine,\n 2,\n ${vertical},\n ${horizontal}\n);\n$.CGEventPost($.kCGHIDEventTap, scrollEvent);\n`,\n );\n}\n\n// ── Cursor query ────────────────────────────────────────────────────────────\n\n/**\n * Read the current OS cursor position (legacy shell driver). Returns global\n * logical pixels. Windows uses `System.Windows.Forms.Cursor` (must Add-Type the\n * assembly first or the type is unresolved); macOS uses `cliclick p:.`; Linux\n * uses `xdotool getmouselocation`.\n */\nexport function legacyGetCursorPosition(): { x: number; y: number } {\n const os = currentPlatform();\n if (os === \"win32\") {\n const out = runCommand(\n \"powershell\",\n [\n \"-NoProfile\",\n \"-Command\",\n 'Add-Type -AssemblyName System.Windows.Forms; $p=[System.Windows.Forms.Cursor]::Position; \"$($p.X),$($p.Y)\"',\n ],\n 5000,\n );\n const [x, y] = out.trim().split(\",\").map(Number);\n return { x: validateInt(x), y: validateInt(y) };\n }\n if (os === \"darwin\") {\n const out = runCommand(\"cliclick\", [\"p:.\"], 5000); // prints \"x,y\"\n const [x, y] = out.trim().split(\",\").map(Number);\n return { x: validateInt(x), y: validateInt(y) };\n }\n // Linux / X11\n const out = runCommand(\"xdotool\", [\"getmouselocation\", \"--shell\"], 5000);\n const mx = /X=(-?\\d+)/.exec(out);\n const my = /Y=(-?\\d+)/.exec(out);\n return {\n x: mx ? validateInt(Number(mx[1])) : 0,\n y: my ? validateInt(Number(my[1])) : 0,\n };\n}\n\n// ── Mouse Click ─────────────────────────────────────────────────────────────\n\nexport function desktopClick(x: number, y: number): void {\n runWithAccessibilityPermission(\n \"desktop_click\",\n () => {\n const sx = validateInt(x);\n const sy = validateInt(y);\n const os = currentPlatform();\n\n if (os === \"darwin\") {\n if (commandExists(\"cliclick\")) {\n runCommand(\"cliclick\", [`c:${sx},${sy}`], 5000);\n } else {\n runCommand(\n \"osascript\",\n [\n \"-e\",\n `tell application \"System Events\" to click at {${sx}, ${sy}}`,\n ],\n 5000,\n );\n }\n } else if (os === \"linux\") {\n requireXdotool();\n runCommand(\n \"xdotool\",\n [\"mousemove\", String(sx), String(sy), \"click\", \"1\"],\n 5000,\n );\n } else if (os === \"win32\") {\n const ps = [\n \"Add-Type -AssemblyName System.Windows.Forms\",\n `[System.Windows.Forms.Cursor]::Position = New-Object System.Drawing.Point(${sx},${sy})`,\n `Add-Type -MemberDefinition '[DllImport(\"user32.dll\")] public static extern void mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo);' -Name Win32Mouse -Namespace Win32`,\n \"[Win32.Win32Mouse]::mouse_event(0x0002, 0, 0, 0, 0); [Win32.Win32Mouse]::mouse_event(0x0004, 0, 0, 0, 0)\",\n ].join(\"; \");\n runCommand(\"powershell\", [\"-Command\", ps], 5000);\n }\n },\n \"desktop_click\",\n );\n}\n\nexport function desktopClickWithModifiers(\n x: number,\n y: number,\n modifiers: string[],\n): void {\n runWithAccessibilityPermission(\n \"desktop_click_with_modifiers\",\n () => {\n const sx = validateInt(x);\n const sy = validateInt(y);\n const os = currentPlatform();\n const normalizedModifiers = normalizeModifiers(modifiers);\n\n if (normalizedModifiers.length === 0) {\n desktopClick(sx, sy);\n return;\n }\n\n if (os === \"darwin\") {\n const flagMap: Record<string, string> = {\n cmd: \".maskCommand\",\n command: \".maskCommand\",\n meta: \".maskCommand\",\n super: \".maskCommand\",\n ctrl: \".maskControl\",\n control: \".maskControl\",\n alt: \".maskAlternate\",\n option: \".maskAlternate\",\n shift: \".maskShift\",\n };\n const flags = normalizedModifiers\n .map((modifier) => flagMap[modifier])\n .filter(Boolean);\n const flagExpr = flags.length > 0 ? `[${flags.join(\", \")}]` : \"[]\";\n const swiftScript = `\nimport Cocoa\nlet point = CGPoint(x: ${sx}, y: ${sy})\nlet flags: CGEventFlags = ${flagExpr}\nlet down = CGEvent(mouseEventSource: nil, mouseType: .leftMouseDown, mouseCursorPosition: point, mouseButton: .left)\ndown?.flags = flags\ndown?.post(tap: .cghidEventTap)\nlet up = CGEvent(mouseEventSource: nil, mouseType: .leftMouseUp, mouseCursorPosition: point, mouseButton: .left)\nup?.flags = flags\nup?.post(tap: .cghidEventTap)\n`;\n runCommand(\"swift\", [\"-e\", swiftScript], 10000);\n return;\n }\n\n if (os === \"linux\") {\n requireXdotool();\n const modMap: Record<string, string> = {\n cmd: \"super\",\n command: \"super\",\n meta: \"super\",\n super: \"super\",\n ctrl: \"ctrl\",\n control: \"ctrl\",\n alt: \"alt\",\n option: \"alt\",\n shift: \"shift\",\n };\n const keys = normalizedModifiers.map(\n (modifier) => modMap[modifier] ?? modifier,\n );\n runCommand(\n \"xdotool\",\n [\n ...keys.flatMap((key) => [\"keydown\", key]),\n \"mousemove\",\n String(sx),\n String(sy),\n \"click\",\n \"1\",\n ...[...keys].reverse().flatMap((key) => [\"keyup\", key]),\n ],\n 5000,\n );\n return;\n }\n\n if (os === \"win32\") {\n const vkMap: Record<string, number> = {\n cmd: 0x5b,\n command: 0x5b,\n meta: 0x5b,\n super: 0x5b,\n ctrl: 0x11,\n control: 0x11,\n alt: 0x12,\n option: 0x12,\n shift: 0x10,\n };\n const keyDown = normalizedModifiers\n .map((modifier) => vkMap[modifier])\n .filter((code): code is number => Number.isFinite(code))\n .map(\n (code) => `[Win32.Win32Keyboard]::keybd_event(${code}, 0, 0, 0)`,\n );\n const keyUp = [...normalizedModifiers]\n .reverse()\n .map((modifier) => vkMap[modifier])\n .filter((code): code is number => Number.isFinite(code))\n .map(\n (code) => `[Win32.Win32Keyboard]::keybd_event(${code}, 0, 2, 0)`,\n );\n const ps = [\n \"Add-Type -AssemblyName System.Windows.Forms\",\n `[System.Windows.Forms.Cursor]::Position = New-Object System.Drawing.Point(${sx},${sy})`,\n `Add-Type -MemberDefinition '[DllImport(\"user32.dll\")] public static extern void mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo); [DllImport(\"user32.dll\")] public static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);' -Name Win32Keyboard -Namespace Win32`,\n ...keyDown,\n \"[Win32.Win32Keyboard]::mouse_event(0x0002, 0, 0, 0, 0); [Win32.Win32Keyboard]::mouse_event(0x0004, 0, 0, 0, 0)\",\n ...keyUp,\n ].join(\"; \");\n runCommand(\"powershell\", [\"-Command\", ps], 5000);\n }\n },\n \"desktop_click_with_modifiers\",\n );\n}\n\n// ── Double Click ────────────────────────────────────────────────────────────\n\nexport function desktopDoubleClick(x: number, y: number): void {\n runWithAccessibilityPermission(\n \"desktop_double_click\",\n () => {\n const sx = validateInt(x);\n const sy = validateInt(y);\n const os = currentPlatform();\n\n if (os === \"darwin\") {\n if (commandExists(\"cliclick\")) {\n runCommand(\"cliclick\", [`dc:${sx},${sy}`], 5000);\n } else {\n const swiftScript = `\nimport Cocoa\nlet point = CGPoint(x: ${sx}, y: ${sy})\nlet down1 = CGEvent(mouseEventSource: nil, mouseType: .leftMouseDown, mouseCursorPosition: point, mouseButton: .left)\ndown1?.setIntegerValueField(.mouseEventClickState, value: 1)\ndown1?.post(tap: .cghidEventTap)\nlet up1 = CGEvent(mouseEventSource: nil, mouseType: .leftMouseUp, mouseCursorPosition: point, mouseButton: .left)\nup1?.setIntegerValueField(.mouseEventClickState, value: 1)\nup1?.post(tap: .cghidEventTap)\nusleep(50000)\nlet down2 = CGEvent(mouseEventSource: nil, mouseType: .leftMouseDown, mouseCursorPosition: point, mouseButton: .left)\ndown2?.setIntegerValueField(.mouseEventClickState, value: 2)\ndown2?.post(tap: .cghidEventTap)\nlet up2 = CGEvent(mouseEventSource: nil, mouseType: .leftMouseUp, mouseCursorPosition: point, mouseButton: .left)\nup2?.setIntegerValueField(.mouseEventClickState, value: 2)\nup2?.post(tap: .cghidEventTap)\n`;\n runCommand(\"swift\", [\"-e\", swiftScript], 10000);\n }\n } else if (os === \"linux\") {\n requireXdotool();\n runCommand(\n \"xdotool\",\n [\"mousemove\", String(sx), String(sy), \"click\", \"--repeat\", \"2\", \"1\"],\n 5000,\n );\n } else if (os === \"win32\") {\n const ps = [\n \"Add-Type -AssemblyName System.Windows.Forms\",\n `[System.Windows.Forms.Cursor]::Position = New-Object System.Drawing.Point(${sx},${sy})`,\n `Add-Type -MemberDefinition '[DllImport(\"user32.dll\")] public static extern void mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo);' -Name Win32Mouse -Namespace Win32`,\n \"[Win32.Win32Mouse]::mouse_event(0x0002, 0, 0, 0, 0); [Win32.Win32Mouse]::mouse_event(0x0004, 0, 0, 0, 0)\",\n \"[Win32.Win32Mouse]::mouse_event(0x0002, 0, 0, 0, 0); [Win32.Win32Mouse]::mouse_event(0x0004, 0, 0, 0, 0)\",\n ].join(\"; \");\n runCommand(\"powershell\", [\"-Command\", ps], 5000);\n }\n },\n \"desktop_double_click\",\n );\n}\n\n// ── Right Click ─────────────────────────────────────────────────────────────\n\nexport function desktopRightClick(x: number, y: number): void {\n runWithAccessibilityPermission(\n \"desktop_right_click\",\n () => {\n const sx = validateInt(x);\n const sy = validateInt(y);\n const os = currentPlatform();\n\n if (os === \"darwin\") {\n if (commandExists(\"cliclick\")) {\n runCommand(\"cliclick\", [`rc:${sx},${sy}`], 5000);\n } else {\n const swiftScript = `\nimport Cocoa\nlet point = CGPoint(x: ${sx}, y: ${sy})\nCGEvent(mouseEventSource: nil, mouseType: .rightMouseDown, mouseCursorPosition: point, mouseButton: .right)?.post(tap: .cghidEventTap)\nCGEvent(mouseEventSource: nil, mouseType: .rightMouseUp, mouseCursorPosition: point, mouseButton: .right)?.post(tap: .cghidEventTap)\n`;\n runCommand(\"swift\", [\"-e\", swiftScript], 10000);\n }\n } else if (os === \"linux\") {\n requireXdotool();\n runCommand(\n \"xdotool\",\n [\"mousemove\", String(sx), String(sy), \"click\", \"3\"],\n 5000,\n );\n } else if (os === \"win32\") {\n const ps = [\n \"Add-Type -AssemblyName System.Windows.Forms\",\n `[System.Windows.Forms.Cursor]::Position = New-Object System.Drawing.Point(${sx},${sy})`,\n `Add-Type -MemberDefinition '[DllImport(\"user32.dll\")] public static extern void mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo);' -Name Win32Mouse -Namespace Win32`,\n \"[Win32.Win32Mouse]::mouse_event(0x0008, 0, 0, 0, 0); [Win32.Win32Mouse]::mouse_event(0x0010, 0, 0, 0, 0)\",\n ].join(\"; \");\n runCommand(\"powershell\", [\"-Command\", ps], 5000);\n }\n },\n \"desktop_right_click\",\n );\n}\n\n// ── Mouse Move ──────────────────────────────────────────────────────────────\n\nexport function desktopMouseMove(x: number, y: number): void {\n runWithAccessibilityPermission(\n \"desktop_mouse_move\",\n () => {\n const sx = validateInt(x);\n const sy = validateInt(y);\n const os = currentPlatform();\n\n if (os === \"darwin\") {\n if (commandExists(\"cliclick\")) {\n runCommand(\"cliclick\", [`m:${sx},${sy}`], 5000);\n } else {\n // JXA (JavaScript for Automation) CoreGraphics fallback — no deps.\n const jxa = `ObjC.import('CoreGraphics'); const e = $.CGEventCreateMouseEvent($(), $.kCGEventMouseMoved, {x:${sx}, y:${sy}}, $.kCGMouseButtonLeft); $.CGEventPost($.kCGHIDEventTap, e);`;\n runCommand(\"osascript\", [\"-l\", \"JavaScript\", \"-e\", jxa], 5000);\n }\n } else if (os === \"linux\") {\n requireXdotool();\n runCommand(\"xdotool\", [\"mousemove\", String(sx), String(sy)], 5000);\n } else if (os === \"win32\") {\n const ps = [\n \"Add-Type -AssemblyName System.Windows.Forms\",\n `[System.Windows.Forms.Cursor]::Position = New-Object System.Drawing.Point(${sx},${sy})`,\n ].join(\"; \");\n runCommand(\"powershell\", [\"-Command\", ps], 5000);\n }\n },\n \"desktop_mouse_move\",\n );\n}\n\n// ── Drag ────────────────────────────────────────────────────────────────────\n\nexport function desktopDrag(\n x1: number,\n y1: number,\n x2: number,\n y2: number,\n): void {\n runWithAccessibilityPermission(\n \"desktop_drag\",\n () => {\n const sx1 = validateInt(x1);\n const sy1 = validateInt(y1);\n const sx2 = validateInt(x2);\n const sy2 = validateInt(y2);\n const os = currentPlatform();\n\n if (os === \"darwin\") {\n if (commandExists(\"cliclick\")) {\n runCommand(\n \"cliclick\",\n [`dd:${sx1},${sy1}`, `du:${sx2},${sy2}`],\n 10000,\n );\n } else {\n // AppleScript drag is limited; best-effort\n const script = [\n `tell application \"System Events\"`,\n ` click at {${sx1}, ${sy1}}`,\n ` delay 0.1`,\n ` click at {${sx2}, ${sy2}}`,\n `end tell`,\n ].join(\"\\n\");\n runCommand(\"osascript\", [\"-e\", script], 10000);\n }\n } else if (os === \"linux\") {\n requireXdotool();\n runCommand(\n \"xdotool\",\n [\n \"mousemove\",\n String(sx1),\n String(sy1),\n \"mousedown\",\n \"1\",\n \"mousemove\",\n \"--sync\",\n String(sx2),\n String(sy2),\n \"mouseup\",\n \"1\",\n ],\n 10000,\n );\n } else if (os === \"win32\") {\n const ps = [\n \"Add-Type -AssemblyName System.Windows.Forms\",\n `Add-Type -MemberDefinition '[DllImport(\"user32.dll\")] public static extern void mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo);' -Name Win32Mouse -Namespace Win32`,\n `[System.Windows.Forms.Cursor]::Position = New-Object System.Drawing.Point(${sx1},${sy1})`,\n \"Start-Sleep -Milliseconds 50\",\n \"[Win32.Win32Mouse]::mouse_event(0x0002, 0, 0, 0, 0)\", // left down\n \"Start-Sleep -Milliseconds 50\",\n `[System.Windows.Forms.Cursor]::Position = New-Object System.Drawing.Point(${sx2},${sy2})`,\n \"Start-Sleep -Milliseconds 50\",\n \"[Win32.Win32Mouse]::mouse_event(0x0004, 0, 0, 0, 0)\", // left up\n ].join(\"; \");\n runCommand(\"powershell\", [\"-Command\", ps], 10000);\n }\n },\n \"desktop_drag\",\n );\n}\n\n// ── Scroll ──────────────────────────────────────────────────────────────────\n\nexport function desktopScroll(\n x: number,\n y: number,\n direction: \"up\" | \"down\" | \"left\" | \"right\",\n amount = 3,\n): void {\n runWithAccessibilityPermission(\n \"desktop_scroll\",\n () => {\n const sx = validateInt(x);\n const sy = validateInt(y);\n const clicks = Math.max(1, Math.min(validateInt(amount), 20));\n const os = currentPlatform();\n\n if (os === \"darwin\") {\n // JXA CGEventCreateScrollWheelEvent — works without cliclick.\n // For vertical scrolls, positive Y deltas scroll up, negative scrolls down.\n // For horizontal, positive X deltas scroll right, negative scrolls left.\n const axis =\n direction === \"left\" || direction === \"right\"\n ? \"horizontal\"\n : \"vertical\";\n const delta =\n direction === \"up\" || direction === \"left\" ? clicks : -clicks;\n const jxa =\n axis === \"vertical\"\n ? `ObjC.import('CoreGraphics'); const e = $.CGEventCreateScrollWheelEvent($(), $.kCGScrollEventUnitLine, 1, ${delta}); $.CGEventPost($.kCGHIDEventTap, e);`\n : `ObjC.import('CoreGraphics'); const e = $.CGEventCreateScrollWheelEvent($(), $.kCGScrollEventUnitLine, 2, 0, ${delta}); $.CGEventPost($.kCGHIDEventTap, e);`;\n runCommand(\"osascript\", [\"-l\", \"JavaScript\", \"-e\", jxa], 5000);\n } else if (os === \"linux\") {\n requireXdotool();\n // Move to position first\n runCommand(\"xdotool\", [\"mousemove\", String(sx), String(sy)], 3000);\n // xdotool: button 4=scroll up, 5=scroll down, 6=scroll left, 7=scroll right\n const button =\n direction === \"up\"\n ? \"4\"\n : direction === \"down\"\n ? \"5\"\n : direction === \"left\"\n ? \"6\"\n : \"7\";\n for (let i = 0; i < clicks; i++) {\n runCommand(\"xdotool\", [\"click\", button], 2000);\n }\n } else if (os === \"win32\") {\n // MOUSEEVENTF_WHEEL = 0x0800, positive = up, negative = down\n // Each wheel click is 120 units\n const wheelDelta =\n (direction === \"up\" || direction === \"left\" ? 1 : -1) * 120 * clicks;\n const ps = [\n \"Add-Type -AssemblyName System.Windows.Forms\",\n `[System.Windows.Forms.Cursor]::Position = New-Object System.Drawing.Point(${sx},${sy})`,\n `Add-Type -MemberDefinition '[DllImport(\"user32.dll\")] public static extern void mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo);' -Name Win32Mouse -Namespace Win32`,\n `[Win32.Win32Mouse]::mouse_event(0x0800, 0, 0, ${wheelDelta}, 0)`,\n ].join(\"; \");\n runCommand(\"powershell\", [\"-Command\", ps], 5000);\n }\n },\n \"desktop_scroll\",\n );\n}\n\n// ── Type Text ───────────────────────────────────────────────────────────────\n\nexport function desktopType(text: string): void {\n runWithAccessibilityPermission(\n \"desktop_type\",\n () => {\n const safeText = validateText(text);\n const os = currentPlatform();\n\n if (os === \"darwin\") {\n if (commandExists(\"cliclick\")) {\n runCommand(\"cliclick\", [`t:${safeText}`], 10000);\n } else {\n runCommand(\n \"osascript\",\n [\n \"-e\",\n `tell application \"System Events\" to keystroke ${escapeAppleScript(safeText)}`,\n ],\n 10000,\n );\n }\n } else if (os === \"linux\") {\n requireXdotool();\n runCommand(\"xdotool\", [\"type\", \"--\", safeText], 10000);\n } else if (os === \"win32\") {\n const escaped = safeText.replace(/'/g, \"''\");\n runCommand(\n \"powershell\",\n [\n \"-Command\",\n `Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.SendKeys]::SendWait('${escaped}')`,\n ],\n 10000,\n );\n }\n },\n \"desktop_type\",\n );\n}\n\n// ── Key Press ───────────────────────────────────────────────────────────────\n\n/**\n * Press a single key by name (e.g. \"Return\", \"Tab\", \"Escape\", \"F5\").\n */\nexport function desktopKeyPress(key: string): void {\n runWithAccessibilityPermission(\n \"desktop_key_press\",\n () => {\n const safeKey = validateKeypress(key);\n const os = currentPlatform();\n\n if (os === \"darwin\") {\n if (commandExists(\"cliclick\")) {\n runCommand(\"cliclick\", [`kp:${toCliclickKeyName(safeKey)}`], 5000);\n } else {\n // Map common key names to macOS key codes\n const keyCodes: Record<string, number> = {\n return: 36,\n enter: 36,\n tab: 48,\n space: 49,\n escape: 53,\n esc: 53,\n delete: 51,\n backspace: 51,\n forwarddelete: 117,\n left: 123,\n right: 124,\n down: 125,\n up: 126,\n home: 115,\n end: 119,\n pageup: 116,\n pagedown: 121,\n f1: 122,\n f2: 120,\n f3: 99,\n f4: 118,\n f5: 96,\n f6: 97,\n f7: 98,\n f8: 100,\n f9: 101,\n f10: 109,\n f11: 103,\n f12: 111,\n };\n const normalized = safeKey.trim().toLowerCase();\n const code = keyCodes[normalized];\n if (code !== undefined) {\n runCommand(\n \"osascript\",\n [\"-e\", `tell application \"System Events\" to key code ${code}`],\n 5000,\n );\n } else {\n runCommand(\n \"osascript\",\n [\n \"-e\",\n `tell application \"System Events\" to keystroke ${escapeAppleScript(safeKey)}`,\n ],\n 5000,\n );\n }\n }\n } else if (os === \"linux\") {\n requireXdotool();\n const xKey = safeXdotoolKey(safeKey);\n runCommand(\"xdotool\", [\"key\", xKey], 5000);\n } else if (os === \"win32\") {\n const escaped = safeKey.replace(/'/g, \"''\");\n runCommand(\n \"powershell\",\n [\n \"-Command\",\n `Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.SendKeys]::SendWait('${escaped}')`,\n ],\n 5000,\n );\n }\n },\n \"desktop_key_press\",\n );\n}\n\n// ── Key Combo ───────────────────────────────────────────────────────────────\n\n/**\n * Press a key combination like \"ctrl+c\", \"cmd+shift+s\", \"alt+F4\".\n * Modifier names: ctrl, shift, alt, cmd/meta/super.\n *\n * Ported from open-computer-use desktopKeyCombo().\n */\nexport function desktopKeyCombo(combo: string): void {\n runWithAccessibilityPermission(\n \"desktop_key_combo\",\n () => {\n const safeCombo = validateKeypress(combo);\n const parts = safeCombo.split(\"+\").map((p) => p.trim().toLowerCase());\n const os = currentPlatform();\n\n if (os === \"darwin\") {\n // Map modifier names to AppleScript \"using\" clauses\n const modifierMap: Record<string, string> = {\n cmd: \"command down\",\n command: \"command down\",\n meta: \"command down\",\n super: \"command down\",\n ctrl: \"control down\",\n control: \"control down\",\n shift: \"shift down\",\n alt: \"option down\",\n option: \"option down\",\n };\n const macKeyCodes: Record<string, number> = {\n return: 36,\n enter: 36,\n tab: 48,\n space: 49,\n escape: 53,\n esc: 53,\n delete: 51,\n backspace: 51,\n forwarddelete: 117,\n left: 123,\n right: 124,\n down: 125,\n up: 126,\n home: 115,\n end: 119,\n pageup: 116,\n pagedown: 121,\n f1: 122,\n f2: 120,\n f3: 99,\n f4: 118,\n f5: 96,\n f6: 97,\n f7: 98,\n f8: 100,\n f9: 101,\n f10: 109,\n f11: 103,\n f12: 111,\n };\n const modifiers: string[] = [];\n let key = \"\";\n for (const part of parts) {\n if (modifierMap[part]) {\n modifiers.push(modifierMap[part]);\n } else {\n key = part;\n }\n }\n const using =\n modifiers.length > 0 ? ` using {${modifiers.join(\", \")}}` : \"\";\n const canonical = canonicalKeyName(key);\n const keyCode = macKeyCodes[canonical];\n const command =\n keyCode !== undefined\n ? `tell application \"System Events\" to key code ${keyCode}${using}`\n : `tell application \"System Events\" to keystroke ${escapeAppleScript(key)}${using}`;\n runCommand(\"osascript\", [\"-e\", command], 5000);\n } else if (os === \"linux\") {\n requireXdotool();\n // xdotool key combo: \"ctrl+c\" → \"ctrl+c\" (xdotool understands this directly)\n const xParts = parts.map((p) => {\n const xMap: Record<string, string> = {\n cmd: \"super\",\n command: \"super\",\n meta: \"super\",\n ctrl: \"ctrl\",\n control: \"ctrl\",\n };\n return xMap[p] ?? toXdotoolKeyName(p);\n });\n runCommand(\"xdotool\", [\"key\", xParts.join(\"+\")], 5000);\n } else if (os === \"win32\") {\n // PowerShell SendKeys: ^ = Ctrl, + = Shift, % = Alt\n const psModMap: Record<string, string> = {\n ctrl: \"^\",\n control: \"^\",\n shift: \"+\",\n alt: \"%\",\n cmd: \"^\",\n command: \"^\",\n meta: \"^\",\n super: \"^\", // Map cmd → ctrl on Windows\n };\n let prefix = \"\";\n let key = \"\";\n for (const part of parts) {\n if (psModMap[part]) {\n prefix += psModMap[part];\n } else {\n key = part;\n }\n }\n const mappedKey = toWindowsSendKey(key);\n const sendKey = `${prefix}${mappedKey}`.replace(/'/g, \"''\");\n runCommand(\n \"powershell\",\n [\n \"-Command\",\n `Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.SendKeys]::SendWait('${sendKey}')`,\n ],\n 5000,\n );\n }\n },\n \"desktop_key_combo\",\n );\n}\n\nfunction runWithAccessibilityPermission<T>(\n operation: string,\n handler: () => T,\n _command?: string,\n): T {\n try {\n return handler();\n } catch (error) {\n if (isPermissionDeniedError(error)) {\n throw error;\n }\n const permissionError = classifyPermissionDeniedError(error, {\n permissionType: \"accessibility\",\n operation,\n });\n if (permissionError) {\n throw permissionError;\n }\n throw error;\n }\n}\n\n// ── Helpers ─────────────────────────────────────────────────────────────────\n\nfunction normalizeModifiers(modifiers: string[]): string[] {\n const normalized = modifiers\n .map((modifier) => modifier.trim().toLowerCase())\n .filter(Boolean);\n\n for (const modifier of normalized) {\n if (\n ![\n \"cmd\",\n \"command\",\n \"meta\",\n \"super\",\n \"ctrl\",\n \"control\",\n \"alt\",\n \"option\",\n \"shift\",\n ].includes(modifier)\n ) {\n throw new Error(`Unsupported modifier key: ${modifier}`);\n }\n }\n\n return normalized;\n}\n\nfunction requireXdotool(): void {\n if (!commandExists(\"xdotool\")) {\n throw new Error(\n \"xdotool is required for mouse/keyboard control on Linux. Install via: sudo apt install xdotool\",\n );\n }\n}\n\n// ── Set value (a11y write) ────────────────────────────────────────────────────\n\n/**\n * Windows fast-path for `set_value` (#9170 — trycua/cua `set_value`): use UI\n * Automation `ValuePattern.SetValue` on the element under (x,y) to set its value\n * directly, without synthesizing keystrokes. Returns `true` if the element\n * exposed ValuePattern and was set; `false` (incl. on any error) so the caller\n * falls back to the universal focus → select-all → type path.\n *\n * Uses `Add-Type -AssemblyName` (signed framework assemblies), not a\n * runtime-compiled inline class. Real actuation is exercised by the interactive\n * real-driver lane; this box's session can't host a ValuePattern control to\n * probe it (see #9170).\n */\nexport function win32TrySetValueByPattern(\n x: number,\n y: number,\n value: string,\n): boolean {\n if (currentPlatform() !== \"win32\") return false;\n const sx = validateInt(x);\n const sy = validateInt(y);\n const escaped = validateText(value).replace(/'/g, \"''\");\n const ps = [\n \"Add-Type -AssemblyName UIAutomationClient,UIAutomationTypes,WindowsBase\",\n `$pt = New-Object System.Windows.Point(${sx}, ${sy})`,\n \"$el = [System.Windows.Automation.AutomationElement]::FromPoint($pt)\",\n \"if ($el -eq $null) { 'NO_ELEMENT'; exit 0 }\",\n \"$hasVal = $el.GetCurrentPropertyValue([System.Windows.Automation.AutomationElement]::IsValuePatternAvailableProperty)\",\n \"if (-not $hasVal) { 'NO_PATTERN'; exit 0 }\",\n \"$vp = $el.GetCurrentPattern([System.Windows.Automation.ValuePattern]::Pattern)\",\n `$vp.SetValue('${escaped}')`,\n \"'VALUE_SET'\",\n ].join(\"; \");\n try {\n const out = runCommand(\"powershell\", [\"-Command\", ps], 10000);\n return out.includes(\"VALUE_SET\");\n } catch {\n return false;\n }\n}\n",
26
26
  "/**\n * Cross-platform desktop driver backed by @nut-tree-fork/nut-js.\n *\n * Wraps native libnut bindings into the same input surface exposed by\n * the legacy per-OS shell drivers in `desktop.ts` and `screenshot.ts`.\n * Selected at runtime via `ELIZA_COMPUTERUSE_DRIVER=nutjs` (default) — the\n * legacy shell drivers remain the fallback when the env var is set to\n * `legacy` or when the native module fails to load.\n *\n * Native module loading: nut-js ships prebuilt binaries via `libnut`. We\n * load it eagerly at module init and surface a clean diagnostic if the\n * binary is missing for the current arch (`isAvailable()` reports false).\n */\n\nimport { readFileSync, unlinkSync } from \"node:fs\";\nimport { createRequire } from \"node:module\";\nimport { tmpdir } from \"node:os\";\nimport { join } from \"node:path\";\nimport type {} from \"@nut-tree-fork/nut-js\";\nimport type { ScreenRegion } from \"../types.js\";\nimport { canonicalKeyName, validateInt, validateText } from \"./helpers.js\";\n\nconst requireFromHere = createRequire(import.meta.url);\n\ninterface NutModule {\n mouse: {\n config: { mouseSpeed: number; autoDelayMs: number };\n setPosition: (point: { x: number; y: number }) => Promise<unknown>;\n getPosition: () => Promise<{ x: number; y: number }>;\n move: (path: Promise<unknown> | unknown) => Promise<unknown>;\n click: (button: number) => Promise<unknown>;\n doubleClick: (button: number) => Promise<unknown>;\n pressButton: (button: number) => Promise<unknown>;\n releaseButton: (button: number) => Promise<unknown>;\n scrollUp: (amount: number) => Promise<unknown>;\n scrollDown: (amount: number) => Promise<unknown>;\n scrollLeft: (amount: number) => Promise<unknown>;\n scrollRight: (amount: number) => Promise<unknown>;\n };\n keyboard: {\n config: { autoDelayMs: number };\n type: (input: string) => Promise<unknown>;\n pressKey: (...keys: number[]) => Promise<unknown>;\n releaseKey: (...keys: number[]) => Promise<unknown>;\n };\n screen: {\n width: () => Promise<number>;\n height: () => Promise<number>;\n capture: (\n fileName: string,\n fileFormat: number,\n filePath?: string,\n ) => Promise<string>;\n captureRegion: (\n fileName: string,\n region: { left: number; top: number; width: number; height: number },\n fileFormat: number,\n filePath?: string,\n ) => Promise<string>;\n };\n Button: { LEFT: number; MIDDLE: number; RIGHT: number };\n Key: Record<string, number>;\n Point: new (x: number, y: number) => { x: number; y: number };\n straightTo: (target: { x: number; y: number }) => Promise<unknown> | unknown;\n FileType: { PNG: number; JPG: number };\n}\n\nlet cachedModule: NutModule | null = null;\nlet loadError: Error | null = null;\n\nfunction loadNut(): NutModule | null {\n if (cachedModule !== null) return cachedModule;\n if (loadError !== null) return null;\n try {\n const mod = requireFromHere(\"@nut-tree-fork/nut-js\") as NutModule;\n mod.mouse.config.mouseSpeed = 1000;\n mod.mouse.config.autoDelayMs = 0;\n mod.keyboard.config.autoDelayMs = 0;\n cachedModule = mod;\n return mod;\n } catch (err) {\n loadError = err instanceof Error ? err : new Error(String(err));\n return null;\n }\n}\n\nexport function isAvailable(): boolean {\n return loadNut() !== null;\n}\n\nexport function loadFailureReason(): string | null {\n if (cachedModule) return null;\n loadNut();\n return loadError ? loadError.message : null;\n}\n\nfunction nut(): NutModule {\n const m = loadNut();\n if (!m) {\n throw new Error(\n `nutjs driver unavailable: ${loadError?.message ?? \"module did not load\"}`,\n );\n }\n return m;\n}\n\nconst MODIFIER_KEYS: Record<string, string[]> = {\n cmd: [\"LeftSuper\"],\n command: [\"LeftSuper\"],\n meta: [\"LeftSuper\"],\n super: [\"LeftSuper\"],\n win: [\"LeftSuper\"],\n ctrl: [\"LeftControl\"],\n control: [\"LeftControl\"],\n alt: [\"LeftAlt\"],\n option: [\"LeftAlt\"],\n shift: [\"LeftShift\"],\n};\n\nconst NAMED_KEY_TO_NUT: Record<string, string> = {\n enter: \"Return\",\n return: \"Return\",\n tab: \"Tab\",\n space: \"Space\",\n escape: \"Escape\",\n esc: \"Escape\",\n backspace: \"Backspace\",\n delete: \"Delete\",\n forwarddelete: \"Delete\",\n left: \"Left\",\n right: \"Right\",\n up: \"Up\",\n down: \"Down\",\n home: \"Home\",\n end: \"End\",\n pageup: \"PageUp\",\n pagedown: \"PageDown\",\n};\n\nfunction resolveKeyCode(key: string): number {\n const m = nut();\n const canonical = canonicalKeyName(key);\n // Function keys F1..F24\n const fnMatch = canonical.match(/^f(\\d{1,2})$/);\n if (fnMatch) {\n const name = `F${fnMatch[1]}`;\n const code = m.Key[name];\n if (code !== undefined) return code;\n }\n const mapped = NAMED_KEY_TO_NUT[canonical];\n if (mapped !== undefined) {\n const code = m.Key[mapped];\n if (code !== undefined) return code;\n }\n // Modifier names (shift / ctrl / alt / cmd / meta / super / win) — needed so\n // key_down/key_up can hold a bare modifier. These live in MODIFIER_KEYS as\n // nutjs Key names (e.g. \"LeftShift\"); resolve to the left-hand variant.\n const modifierNames = MODIFIER_KEYS[canonical] ?? MODIFIER_KEYS[key.trim().toLowerCase()];\n if (modifierNames && modifierNames.length > 0) {\n const code = m.Key[modifierNames[0]];\n if (code !== undefined) return code;\n }\n // Single character — map A-Z / 0-9 directly via Key enum\n if (key.length === 1) {\n const upper = key.toUpperCase();\n if (m.Key[upper] !== undefined) return m.Key[upper];\n const digitName = `Num${key}`;\n if (m.Key[digitName] !== undefined) return m.Key[digitName];\n }\n // Last resort: lookup by raw name as-typed\n const raw = m.Key[key];\n if (raw !== undefined) return raw;\n throw new Error(`Unsupported key for nutjs driver: \"${key}\"`);\n}\n\n/** Resolve a POSIX-style button name to the nutjs `Button` enum value. Pure-ish\n * (reads the loaded module). Throws on an unknown button. */\nfunction resolveButton(button: \"left\" | \"middle\" | \"right\"): number {\n const m = nut();\n switch (button) {\n case \"left\":\n return m.Button.LEFT;\n case \"middle\":\n return m.Button.MIDDLE;\n case \"right\":\n return m.Button.RIGHT;\n default:\n throw new Error(`Unsupported mouse button: \"${button}\"`);\n }\n}\n\nfunction resolveModifierCodes(modifier: string): number[] {\n const m = nut();\n const names = MODIFIER_KEYS[modifier.trim().toLowerCase()];\n if (!names) {\n throw new Error(`Unsupported modifier: \"${modifier}\"`);\n }\n return names.map((name) => {\n const code = m.Key[name];\n if (code === undefined) {\n throw new Error(`nutjs Key enum missing entry for \"${name}\"`);\n }\n return code;\n });\n}\n\n// ── Mouse ───────────────────────────────────────────────────────────────────\n\nexport async function nutClick(x: number, y: number): Promise<void> {\n const m = nut();\n const sx = validateInt(x);\n const sy = validateInt(y);\n await m.mouse.setPosition(new m.Point(sx, sy));\n await m.mouse.click(m.Button.LEFT);\n}\n\nexport async function nutClickWithModifiers(\n x: number,\n y: number,\n modifiers: string[],\n): Promise<void> {\n const m = nut();\n const sx = validateInt(x);\n const sy = validateInt(y);\n const modCodes = modifiers.flatMap((mod) => resolveModifierCodes(mod));\n await m.mouse.setPosition(new m.Point(sx, sy));\n if (modCodes.length === 0) {\n await m.mouse.click(m.Button.LEFT);\n return;\n }\n await m.keyboard.pressKey(...modCodes);\n try {\n await m.mouse.click(m.Button.LEFT);\n } finally {\n await m.keyboard.releaseKey(...modCodes.reverse());\n }\n}\n\nexport async function nutDoubleClick(x: number, y: number): Promise<void> {\n const m = nut();\n await m.mouse.setPosition(new m.Point(validateInt(x), validateInt(y)));\n await m.mouse.doubleClick(m.Button.LEFT);\n}\n\nexport async function nutRightClick(x: number, y: number): Promise<void> {\n const m = nut();\n await m.mouse.setPosition(new m.Point(validateInt(x), validateInt(y)));\n await m.mouse.click(m.Button.RIGHT);\n}\n\nexport async function nutMiddleClick(x: number, y: number): Promise<void> {\n const m = nut();\n await m.mouse.setPosition(new m.Point(validateInt(x), validateInt(y)));\n await m.mouse.click(m.Button.MIDDLE);\n}\n\nexport async function nutMouseMove(x: number, y: number): Promise<void> {\n const m = nut();\n await m.mouse.setPosition(new m.Point(validateInt(x), validateInt(y)));\n}\n\n/**\n * Press (and hold) a mouse button at `(x, y)` without releasing it. Pairs with\n * `nutMouseUp` to express hold-drags, marquee selection, and press-and-hold\n * gestures that a single `click` cannot. The caller is responsible for the\n * matching release.\n */\nexport async function nutMouseDown(\n x: number,\n y: number,\n button: \"left\" | \"middle\" | \"right\" = \"left\",\n): Promise<void> {\n const m = nut();\n await m.mouse.setPosition(new m.Point(validateInt(x), validateInt(y)));\n await m.mouse.pressButton(resolveButton(button));\n}\n\n/** Release a previously-held mouse button at `(x, y)`. See {@link nutMouseDown}. */\nexport async function nutMouseUp(\n x: number,\n y: number,\n button: \"left\" | \"middle\" | \"right\" = \"left\",\n): Promise<void> {\n const m = nut();\n await m.mouse.setPosition(new m.Point(validateInt(x), validateInt(y)));\n await m.mouse.releaseButton(resolveButton(button));\n}\n\n/** Inter-notch / inter-step pacing (ms) — small, just enough to defeat event\n * coalescing in fast consumers (e.g. Chromium's MouseWheelEventQueue) without\n * making input feel sluggish. */\nconst SCROLL_NOTCH_DELAY_MS = 8;\nconst DRAG_STEP_DELAY_MS = 8;\nconst DRAG_STEPS = 20;\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => {\n setTimeout(resolve, ms);\n });\n}\n\n/** Clamp a requested scroll amount to a safe per-notch count (1..20). Pure. */\nexport function clampScrollNotches(amount: number): number {\n return Math.max(1, Math.min(validateInt(amount), 20));\n}\n\n/**\n * Interpolated integer waypoints from (x1,y1) to (x2,y2) over `steps` moves\n * (excludes the start, includes the end). Pure — exported for unit tests.\n */\nexport function interpolateDragSteps(\n x1: number,\n y1: number,\n x2: number,\n y2: number,\n steps: number = DRAG_STEPS,\n): Array<{ x: number; y: number }> {\n const n = Math.max(1, Math.floor(steps));\n const points: Array<{ x: number; y: number }> = [];\n for (let i = 1; i <= n; i += 1) {\n const t = i / n;\n points.push({\n x: Math.round(x1 + (x2 - x1) * t),\n y: Math.round(y1 + (y2 - y1) * t),\n });\n }\n return points;\n}\n\nasync function manualDragMove(\n m: NutModule,\n x1: number,\n y1: number,\n x2: number,\n y2: number,\n): Promise<void> {\n // Interpolated move with the button held — fallback for libnut builds whose\n // `mouse.move(straightTo)` does not carry a real button-down on Windows.\n const points = interpolateDragSteps(x1, y1, x2, y2);\n for (let i = 0; i < points.length; i += 1) {\n await m.mouse.setPosition(new m.Point(points[i].x, points[i].y));\n if (i < points.length - 1) await sleep(DRAG_STEP_DELAY_MS);\n }\n}\n\nexport async function nutDrag(\n x1: number,\n y1: number,\n x2: number,\n y2: number,\n): Promise<void> {\n const m = nut();\n const sx1 = validateInt(x1);\n const sy1 = validateInt(y1);\n const sx2 = validateInt(x2);\n const sy2 = validateInt(y2);\n await m.mouse.setPosition(new m.Point(sx1, sy1));\n await m.mouse.pressButton(m.Button.LEFT);\n try {\n try {\n await m.mouse.move(m.straightTo(new m.Point(sx2, sy2)));\n } catch {\n await manualDragMove(m, sx1, sy1, sx2, sy2);\n }\n } finally {\n await m.mouse.releaseButton(m.Button.LEFT);\n }\n}\n\n/**\n * Densify a polyline by interpolating integer waypoints along every segment so\n * a held-button drag traces curves/corners instead of teleporting corner to\n * corner. Includes the very first point and every segment endpoint. Pure —\n * exported for unit tests.\n *\n * `perSegmentSteps` controls how many intermediate points are inserted between\n * consecutive vertices (≥1; the endpoint is always included).\n */\nexport function densifyDragPath(\n path: Array<{ x: number; y: number }>,\n perSegmentSteps: number = DRAG_STEPS,\n): Array<{ x: number; y: number }> {\n if (path.length === 0) return [];\n const first = { x: validateInt(path[0].x), y: validateInt(path[0].y) };\n const out: Array<{ x: number; y: number }> = [first];\n for (let i = 1; i < path.length; i += 1) {\n const a = out[out.length - 1];\n const b = { x: validateInt(path[i].x), y: validateInt(path[i].y) };\n out.push(...interpolateDragSteps(a.x, a.y, b.x, b.y, perSegmentSteps));\n }\n return out;\n}\n\n/**\n * Press the left button at the first point, move through every interpolated\n * waypoint with the button held, then release at the last point. Backs\n * multi-point `drag(path)` and AOSP swipe paths. Requires ≥2 points.\n */\nexport async function nutDragPath(\n path: Array<{ x: number; y: number }>,\n): Promise<void> {\n if (path.length < 2) {\n throw new Error(\"nutDragPath requires at least two points\");\n }\n const m = nut();\n const points = densifyDragPath(path);\n const start = points[0];\n const end = points[points.length - 1];\n await m.mouse.setPosition(new m.Point(start.x, start.y));\n await m.mouse.pressButton(m.Button.LEFT);\n try {\n for (let i = 1; i < points.length; i += 1) {\n await m.mouse.setPosition(new m.Point(points[i].x, points[i].y));\n if (i < points.length - 1) await sleep(DRAG_STEP_DELAY_MS);\n }\n } finally {\n await m.mouse.setPosition(new m.Point(end.x, end.y));\n await m.mouse.releaseButton(m.Button.LEFT);\n }\n}\n\nexport async function nutGetCursorPosition(): Promise<{\n x: number;\n y: number;\n}> {\n const m = nut();\n const p = await m.mouse.getPosition();\n return { x: Math.round(p.x), y: Math.round(p.y) };\n}\n\nexport async function nutScroll(\n x: number,\n y: number,\n direction: \"up\" | \"down\" | \"left\" | \"right\",\n amount: number,\n): Promise<void> {\n const m = nut();\n const sx = validateInt(x);\n const sy = validateInt(y);\n const clicks = clampScrollNotches(amount);\n await m.mouse.setPosition(new m.Point(sx, sy));\n // Emit one wheel notch at a time so coalescing consumers register each notch.\n for (let i = 0; i < clicks; i += 1) {\n if (direction === \"up\") await m.mouse.scrollUp(1);\n else if (direction === \"down\") await m.mouse.scrollDown(1);\n else if (direction === \"left\") await m.mouse.scrollLeft(1);\n else await m.mouse.scrollRight(1);\n if (i < clicks - 1) await sleep(SCROLL_NOTCH_DELAY_MS);\n }\n}\n\n// ── Keyboard ────────────────────────────────────────────────────────────────\n\nexport async function nutType(text: string): Promise<void> {\n const m = nut();\n const safe = validateText(text);\n await m.keyboard.type(safe);\n}\n\nexport async function nutKeyPress(key: string): Promise<void> {\n const m = nut();\n const code = resolveKeyCode(key);\n await m.keyboard.pressKey(code);\n await m.keyboard.releaseKey(code);\n}\n\n/** Press (and hold) a single key without releasing it. Pairs with `nutKeyUp`\n * to express press-and-hold (e.g. holding Shift while issuing other input). */\nexport async function nutKeyDown(key: string): Promise<void> {\n const m = nut();\n await m.keyboard.pressKey(resolveKeyCode(key));\n}\n\n/** Release a previously-held key. See {@link nutKeyDown}. */\nexport async function nutKeyUp(key: string): Promise<void> {\n const m = nut();\n await m.keyboard.releaseKey(resolveKeyCode(key));\n}\n\nexport async function nutKeyCombo(combo: string): Promise<void> {\n const m = nut();\n const parts = combo.split(\"+\").map((p) => p.trim());\n const modifierCodes: number[] = [];\n let mainKey: string | null = null;\n for (const part of parts) {\n const lower = part.toLowerCase();\n if (MODIFIER_KEYS[lower]) {\n modifierCodes.push(...resolveModifierCodes(lower));\n } else {\n mainKey = part;\n }\n }\n if (!mainKey) {\n throw new Error(\n `Combo \"${combo}\" must include at least one non-modifier key`,\n );\n }\n const mainCode = resolveKeyCode(mainKey);\n if (modifierCodes.length > 0) {\n await m.keyboard.pressKey(...modifierCodes);\n }\n try {\n await m.keyboard.pressKey(mainCode);\n await m.keyboard.releaseKey(mainCode);\n } finally {\n if (modifierCodes.length > 0) {\n await m.keyboard.releaseKey(...modifierCodes.reverse());\n }\n }\n}\n\n// ── Screenshot ──────────────────────────────────────────────────────────────\n\nexport async function nutCaptureScreenshot(\n region?: ScreenRegion,\n): Promise<Buffer> {\n const m = nut();\n const fileName = `computeruse-nutjs-${Date.now()}.png`;\n const dir = tmpdir();\n let absolutePath = \"\";\n try {\n if (region) {\n const r = {\n left: validateInt(region.x),\n top: validateInt(region.y),\n width: validateInt(region.width),\n height: validateInt(region.height),\n };\n absolutePath = await m.screen.captureRegion(\n fileName,\n r,\n m.FileType.PNG,\n dir,\n );\n } else {\n absolutePath = await m.screen.capture(fileName, m.FileType.PNG, dir);\n }\n if (!absolutePath) absolutePath = join(dir, fileName);\n return readFileSync(absolutePath);\n } finally {\n if (absolutePath) {\n try {\n unlinkSync(absolutePath);\n } catch {\n /* best effort */\n }\n }\n }\n}\n\nexport async function nutScreenSize(): Promise<{\n width: number;\n height: number;\n}> {\n const m = nut();\n const [width, height] = await Promise.all([\n m.screen.width(),\n m.screen.height(),\n ]);\n return { width, height };\n}\n",
27
27
  "/**\n * Driver-selection seam for desktop input + screenshot capture.\n *\n * Default = `nutjs` (cross-platform native bindings via @nut-tree-fork/nut-js).\n * Set `ELIZA_COMPUTERUSE_DRIVER=legacy` to fall back to the per-OS shell\n * drivers (cliclick/xdotool/PowerShell). The legacy drivers also activate\n * automatically when the nutjs native module fails to load.\n *\n * Each exported function dispatches to the chosen backend. Callers (the\n * service, actions, tests) use these wrappers; the underlying `desktop.ts`\n * and `screenshot.ts` modules remain importable for the legacy code path.\n */\n\nimport type { ScreenRegion } from \"../types.js\";\nimport {\n desktopClick,\n desktopClickWithModifiers,\n desktopDoubleClick,\n desktopDrag,\n desktopKeyCombo,\n desktopKeyPress,\n desktopMouseMove,\n desktopRightClick,\n desktopScroll,\n desktopType,\n legacyGetCursorPosition,\n win32TrySetValueByPattern,\n} from \"./desktop.js\";\nimport {\n loadFailureReason,\n isAvailable as nutAvailable,\n nutCaptureScreenshot,\n nutClick,\n nutClickWithModifiers,\n nutDoubleClick,\n nutDrag,\n nutDragPath,\n nutGetCursorPosition,\n nutKeyCombo,\n nutKeyDown,\n nutKeyPress,\n nutKeyUp,\n nutMiddleClick,\n nutMouseDown,\n nutMouseMove,\n nutMouseUp,\n nutRightClick,\n nutScroll,\n nutType,\n} from \"./nut-driver.js\";\nimport { captureScreenshot as legacyCaptureScreenshot } from \"./screenshot.js\";\n\nexport type DriverName = \"nutjs\" | \"legacy\";\n\nlet warned = false;\n\nexport function selectedDriver(): DriverName {\n const requested = (process.env.ELIZA_COMPUTERUSE_DRIVER ?? \"nutjs\")\n .trim()\n .toLowerCase();\n if (requested === \"legacy\") return \"legacy\";\n if (requested !== \"nutjs\") {\n if (!warned) {\n // eslint-disable-next-line no-console\n console.warn(\n `[computeruse] Unknown ELIZA_COMPUTERUSE_DRIVER=${requested}; falling back to legacy.`,\n );\n warned = true;\n }\n return \"legacy\";\n }\n if (!nutAvailable()) {\n if (!warned) {\n // eslint-disable-next-line no-console\n console.warn(\n `[computeruse] nutjs driver unavailable (${loadFailureReason()}); falling back to legacy shell drivers.`,\n );\n warned = true;\n }\n return \"legacy\";\n }\n return \"nutjs\";\n}\n\n// ── Mouse ───────────────────────────────────────────────────────────────────\n\nexport async function driverClick(x: number, y: number): Promise<void> {\n if (selectedDriver() === \"nutjs\") return nutClick(x, y);\n desktopClick(x, y);\n}\n\nexport async function driverClickWithModifiers(\n x: number,\n y: number,\n modifiers: string[],\n): Promise<void> {\n if (selectedDriver() === \"nutjs\")\n return nutClickWithModifiers(x, y, modifiers);\n desktopClickWithModifiers(x, y, modifiers);\n}\n\nexport async function driverDoubleClick(x: number, y: number): Promise<void> {\n if (selectedDriver() === \"nutjs\") return nutDoubleClick(x, y);\n desktopDoubleClick(x, y);\n}\n\nexport async function driverRightClick(x: number, y: number): Promise<void> {\n if (selectedDriver() === \"nutjs\") return nutRightClick(x, y);\n desktopRightClick(x, y);\n}\n\n/** The legacy shell drivers (cliclick/xdotool/PowerShell) do not expose the\n * granular press/hold primitives below. Throw a clear, actionable error rather\n * than silently no-op'ing — set `ELIZA_COMPUTERUSE_DRIVER=nutjs` to use them. */\nfunction requireNutForGranular(verb: string): never {\n throw new Error(\n `[computeruse] \"${verb}\" requires the nutjs driver (granular press/hold ` +\n `is not available on the legacy shell drivers). The nutjs native module ` +\n `is unavailable (${loadFailureReason() ?? \"unknown reason\"}). ` +\n `Set ELIZA_COMPUTERUSE_DRIVER=nutjs once the native binding loads.`,\n );\n}\n\nexport async function driverMiddleClick(x: number, y: number): Promise<void> {\n if (selectedDriver() === \"nutjs\") return nutMiddleClick(x, y);\n return requireNutForGranular(\"middle_click\");\n}\n\nexport async function driverMouseDown(\n x: number,\n y: number,\n button: \"left\" | \"middle\" | \"right\" = \"left\",\n): Promise<void> {\n if (selectedDriver() === \"nutjs\") return nutMouseDown(x, y, button);\n return requireNutForGranular(\"mouse_down\");\n}\n\nexport async function driverMouseUp(\n x: number,\n y: number,\n button: \"left\" | \"middle\" | \"right\" = \"left\",\n): Promise<void> {\n if (selectedDriver() === \"nutjs\") return nutMouseUp(x, y, button);\n return requireNutForGranular(\"mouse_up\");\n}\n\nexport async function driverMouseMove(x: number, y: number): Promise<void> {\n if (selectedDriver() === \"nutjs\") return nutMouseMove(x, y);\n desktopMouseMove(x, y);\n}\n\nexport async function driverGetCursorPosition(): Promise<{\n x: number;\n y: number;\n}> {\n // nutjs `mouse.getPosition()` returns a stale/constant value on Windows\n // (empirically verified), so always use the reliable OS query there\n // (System.Windows.Forms.Cursor). Elsewhere prefer nutjs when it is active.\n if (process.platform === \"win32\") return legacyGetCursorPosition();\n if (selectedDriver() === \"nutjs\") return nutGetCursorPosition();\n return legacyGetCursorPosition();\n}\n\nexport async function driverDrag(\n x1: number,\n y1: number,\n x2: number,\n y2: number,\n): Promise<void> {\n if (selectedDriver() === \"nutjs\") return nutDrag(x1, y1, x2, y2);\n desktopDrag(x1, y1, x2, y2);\n}\n\nexport async function driverDragPath(\n path: Array<{ x: number; y: number }>,\n): Promise<void> {\n if (selectedDriver() === \"nutjs\") return nutDragPath(path);\n // Legacy fallback: collapse the polyline to a straight start→end drag.\n if (path.length < 2) {\n throw new Error(\"[computeruse] drag path requires at least two points\");\n }\n const start = path[0];\n const end = path[path.length - 1];\n desktopDrag(start.x, start.y, end.x, end.y);\n}\n\nexport async function driverScroll(\n x: number,\n y: number,\n direction: \"up\" | \"down\" | \"left\" | \"right\",\n amount = 3,\n): Promise<void> {\n if (selectedDriver() === \"nutjs\") return nutScroll(x, y, direction, amount);\n desktopScroll(x, y, direction, amount);\n}\n\n// ── Keyboard ────────────────────────────────────────────────────────────────\n\nexport async function driverType(text: string): Promise<void> {\n if (selectedDriver() === \"nutjs\") return nutType(text);\n desktopType(text);\n}\n\nexport async function driverKeyPress(key: string): Promise<void> {\n if (selectedDriver() === \"nutjs\") return nutKeyPress(key);\n desktopKeyPress(key);\n}\n\n/**\n * Set the value of the UI element at (x,y) (#9170 — trycua/cua `set_value`).\n * On Windows, first try UI Automation `ValuePattern.SetValue` (direct, no\n * keystrokes — best for text inputs / combo boxes). Universal fallback (all\n * platforms, incl. elements without ValuePattern): click to focus, select-all,\n * then type the value — composed of the already-verified click/key-combo/type\n * primitives. `value` is validated by the underlying type primitive.\n */\nexport async function driverSetValue(\n x: number,\n y: number,\n value: string,\n): Promise<void> {\n if (process.platform === \"win32\" && win32TrySetValueByPattern(x, y, value)) {\n return;\n }\n await driverClick(x, y);\n await driverKeyCombo(process.platform === \"darwin\" ? \"cmd+a\" : \"ctrl+a\");\n await driverType(value);\n}\n\nexport async function driverKeyCombo(combo: string): Promise<void> {\n if (selectedDriver() === \"nutjs\") return nutKeyCombo(combo);\n desktopKeyCombo(combo);\n}\n\nexport async function driverKeyDown(key: string): Promise<void> {\n if (selectedDriver() === \"nutjs\") return nutKeyDown(key);\n return requireNutForGranular(\"key_down\");\n}\n\nexport async function driverKeyUp(key: string): Promise<void> {\n if (selectedDriver() === \"nutjs\") return nutKeyUp(key);\n return requireNutForGranular(\"key_up\");\n}\n\n// ── Screenshot ──────────────────────────────────────────────────────────────\n\nexport async function driverCaptureScreenshot(\n region?: ScreenRegion,\n): Promise<Buffer> {\n if (selectedDriver() === \"nutjs\") {\n try {\n return await nutCaptureScreenshot(region);\n } catch {\n return legacyCaptureScreenshot(region);\n }\n }\n return legacyCaptureScreenshot(region);\n}\n",
@@ -38,7 +38,7 @@
38
38
  "/** GHSA-rcvr-766c-4phv: arbitrary page.evaluate + AsyncFunction must not run agent-supplied code. */\n\nexport const BROWSER_EXECUTE_DISABLED_MESSAGE =\n \"Arbitrary browser JavaScript execution is disabled for security (GHSA-rcvr-766c-4phv). \" +\n \"Use browser DOM, clickables, click, type, navigate, screenshot, and wait actions instead.\";\n\nexport class BrowserExecuteDisabledError extends Error {\n readonly code = \"browser_execute_disabled\" as const;\n\n constructor(message = BROWSER_EXECUTE_DISABLED_MESSAGE) {\n super(message);\n this.name = \"BrowserExecuteDisabledError\";\n }\n}\n\nexport function assertBrowserExecuteAllowed(): never {\n throw new BrowserExecuteDisabledError();\n}\n\nexport function isBrowserExecuteAllowed(): boolean {\n return false;\n}\n",
39
39
  "import { inflateSync } from \"node:zlib\";\n\ntype PngColorType = 0 | 2 | 6;\n\nexport interface ScreenshotQuality {\n width: number;\n height: number;\n sampledPixels: number;\n colorBuckets: number;\n dominantRatio: number;\n}\n\nconst PNG_SIGNATURE = Buffer.from([\n 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a,\n]);\n\nfunction bytesPerPixel(colorType: PngColorType): number {\n if (colorType === 0) return 1;\n if (colorType === 2) return 3;\n return 4;\n}\n\nfunction paeth(left: number, up: number, upLeft: number): number {\n const estimate = left + up - upLeft;\n const leftDistance = Math.abs(estimate - left);\n const upDistance = Math.abs(estimate - up);\n const upLeftDistance = Math.abs(estimate - upLeft);\n if (leftDistance <= upDistance && leftDistance <= upLeftDistance) {\n return left;\n }\n return upDistance <= upLeftDistance ? up : upLeft;\n}\n\nfunction unfilterScanline(\n filter: number,\n current: Buffer,\n previous: Buffer,\n bpp: number,\n): Buffer<ArrayBufferLike> {\n const output = Buffer.alloc(current.length);\n for (let index = 0; index < current.length; index += 1) {\n const left = index >= bpp ? output[index - bpp] : 0;\n const up = previous[index] ?? 0;\n const upLeft = index >= bpp ? previous[index - bpp] : 0;\n const raw = current[index];\n if (filter === 0) {\n output[index] = raw;\n } else if (filter === 1) {\n output[index] = (raw + left) & 0xff;\n } else if (filter === 2) {\n output[index] = (raw + up) & 0xff;\n } else if (filter === 3) {\n output[index] = (raw + Math.floor((left + up) / 2)) & 0xff;\n } else if (filter === 4) {\n output[index] = (raw + paeth(left, up, upLeft)) & 0xff;\n } else {\n throw new Error(`unsupported PNG filter ${filter}`);\n }\n }\n return output;\n}\n\nexport function analyzePngScreenshot(buffer: Buffer): ScreenshotQuality {\n if (!buffer.subarray(0, PNG_SIGNATURE.length).equals(PNG_SIGNATURE)) {\n throw new Error(\"screenshot is not a PNG\");\n }\n\n let offset = PNG_SIGNATURE.length;\n let width = 0;\n let height = 0;\n let bitDepth = 0;\n let colorType: PngColorType | null = null;\n const idatChunks: Buffer[] = [];\n\n while (offset + 12 <= buffer.length) {\n const length = buffer.readUInt32BE(offset);\n const type = buffer.subarray(offset + 4, offset + 8).toString(\"ascii\");\n const data = buffer.subarray(offset + 8, offset + 8 + length);\n offset += 12 + length;\n\n if (type === \"IHDR\") {\n width = data.readUInt32BE(0);\n height = data.readUInt32BE(4);\n bitDepth = data[8];\n const rawColorType = data[9];\n if (rawColorType === 0 || rawColorType === 2 || rawColorType === 6) {\n colorType = rawColorType;\n }\n } else if (type === \"IDAT\") {\n idatChunks.push(data);\n } else if (type === \"IEND\") {\n break;\n }\n }\n\n if (!width || !height || colorType === null || bitDepth !== 8) {\n throw new Error(\n `unsupported PNG format: width=${width}, height=${height}, bitDepth=${bitDepth}, colorType=${colorType}`,\n );\n }\n\n const bpp = bytesPerPixel(colorType);\n const stride = width * bpp;\n const inflated = inflateSync(Buffer.concat(idatChunks));\n const buckets = new Map<string, number>();\n let previous: Buffer<ArrayBufferLike> = Buffer.alloc(stride);\n let cursor = 0;\n\n for (let row = 0; row < height; row += 1) {\n const filter = inflated[cursor];\n const scanline = inflated.subarray(cursor + 1, cursor + 1 + stride);\n const unfiltered = unfilterScanline(filter, scanline, previous, bpp);\n cursor += stride + 1;\n previous = unfiltered;\n\n for (let column = 0; column < width; column += 1) {\n const pixel = column * bpp;\n const r = unfiltered[pixel];\n const g = colorType === 0 ? r : unfiltered[pixel + 1];\n const b = colorType === 0 ? r : unfiltered[pixel + 2];\n const a = colorType === 6 ? unfiltered[pixel + 3] : 255;\n const key = [\n Math.round(r / 16),\n Math.round(g / 16),\n Math.round(b / 16),\n Math.round(a / 16),\n ].join(\",\");\n buckets.set(key, (buckets.get(key) ?? 0) + 1);\n }\n }\n\n const sampledPixels = width * height;\n const dominantCount = Math.max(0, ...buckets.values());\n return {\n width,\n height,\n sampledPixels,\n colorBuckets: buckets.size,\n dominantRatio: sampledPixels === 0 ? 1 : dominantCount / sampledPixels,\n };\n}\n\nexport function screenshotQualityIssues(\n label: string,\n quality: ScreenshotQuality,\n): string[] {\n const issues: string[] = [];\n if (quality.sampledPixels === 0) {\n issues.push(`${label}: screenshot is empty`);\n }\n if (quality.colorBuckets <= 1) {\n issues.push(`${label}: screenshot is one color`);\n } else if (quality.colorBuckets <= 2 && quality.dominantRatio > 0.995) {\n issues.push(\n `${label}: screenshot is effectively one color (${quality.colorBuckets} color buckets, ${\n Math.round(quality.dominantRatio * 1000) / 10\n }% dominant)`,\n );\n }\n return issues;\n}\n\nexport function assertScreenshotBase64NotBlank(\n screenshot: string | undefined,\n label: string,\n minBytes = 100,\n): void {\n if (!screenshot) {\n throw new Error(`${label}: screenshot base64 should exist`);\n }\n const buffer = Buffer.from(screenshot, \"base64\");\n const quality = analyzePngScreenshot(buffer);\n const issues = screenshotQualityIssues(label, quality);\n if (buffer.length <= minBytes) {\n issues.unshift(\n `${label}: decoded PNG byte length ${buffer.length} <= ${minBytes}`,\n );\n }\n if (issues.length > 0) {\n throw new Error(\n `${label}: screenshot quality failed: ${issues.join(\"; \")}; metrics=${JSON.stringify({\n byteLength: buffer.length,\n ...quality,\n })}`,\n );\n }\n}\n",
40
40
  "/**\n * Browser automation via Puppeteer Core + Chrome DevTools Protocol.\n *\n * Ported from coasty-ai/open-computer-use browser-automation.ts (Apache 2.0).\n *\n * Uses puppeteer-core (not full puppeteer) to avoid bundling Chromium.\n * Auto-detects installed Chrome, Edge, or Brave at launch.\n * Each session uses a temp user data directory to prevent conflicts.\n */\n\nimport { execFileSync } from \"node:child_process\";\nimport { existsSync } from \"node:fs\";\nimport { mkdtemp, rm } from \"node:fs/promises\";\nimport { tmpdir } from \"node:os\";\nimport { join } from \"node:path\";\nimport type {\n BrowserInfo,\n BrowserState,\n BrowserTab,\n ClickableElement,\n} from \"../types.js\";\nimport { assertBrowserExecuteAllowed } from \"../security/browser-script-policy.js\";\nimport { currentPlatform } from \"./helpers.js\";\nimport { assertScreenshotBase64NotBlank } from \"./screenshot-quality.js\";\n\n// Lazy-load puppeteer-core so the plugin still loads if it's not installed\nlet puppeteer: typeof import(\"puppeteer-core\") | null = null;\ntype Browser = import(\"puppeteer-core\").Browser;\ntype Page = import(\"puppeteer-core\").Page;\n\nasync function getPuppeteer() {\n if (!puppeteer) {\n try {\n puppeteer = await import(\"puppeteer-core\");\n } catch {\n throw new Error(\n \"puppeteer-core is required for browser automation. Install via: bun add puppeteer-core\",\n );\n }\n }\n return puppeteer;\n}\n\n// ── State ───────────────────────────────────────────────────────────────────\n\nlet browser: Browser | null = null;\nlet activePage: Page | null = null;\nlet tempUserDataDir: string | null = null;\nlet browserHeadless = false;\nconst BROWSER_LAUNCH_ATTEMPTS = 3;\n\nexport function setBrowserRuntimeOptions(options: {\n headless?: boolean;\n}): void {\n if (typeof options.headless === \"boolean\") {\n browserHeadless = options.headless;\n }\n}\n\nfunction _envFlagEnabled(value: string | undefined): boolean {\n if (!value) return false;\n const normalized = value.trim().toLowerCase();\n return normalized === \"1\" || normalized === \"true\" || normalized === \"yes\";\n}\n\n// ── Browser Detection ───────────────────────────────────────────────────────\n\nfunction detectBrowserPath(): string | null {\n const os = currentPlatform();\n const candidates: string[] = [];\n\n if (os === \"darwin\") {\n candidates.push(\n \"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome\",\n \"/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge\",\n \"/Applications/Brave Browser.app/Contents/MacOS/Brave Browser\",\n \"/Applications/Chromium.app/Contents/MacOS/Chromium\",\n );\n } else if (os === \"linux\") {\n candidates.push(\n \"/usr/bin/google-chrome\",\n \"/usr/bin/google-chrome-stable\",\n \"/usr/bin/chromium-browser\",\n \"/usr/bin/chromium\",\n \"/usr/bin/microsoft-edge\",\n \"/usr/bin/brave-browser\",\n \"/snap/bin/chromium\",\n );\n } else if (os === \"win32\") {\n const programFiles = process.env.PROGRAMFILES || \"C:\\\\Program Files\";\n const programFilesX86 =\n process.env[\"PROGRAMFILES(X86)\"] || \"C:\\\\Program Files (x86)\";\n const localAppData = process.env.LOCALAPPDATA || \"\";\n candidates.push(\n join(programFiles, \"Google\\\\Chrome\\\\Application\\\\chrome.exe\"),\n join(programFilesX86, \"Google\\\\Chrome\\\\Application\\\\chrome.exe\"),\n join(localAppData, \"Google\\\\Chrome\\\\Application\\\\chrome.exe\"),\n join(programFiles, \"Microsoft\\\\Edge\\\\Application\\\\msedge.exe\"),\n join(programFilesX86, \"Microsoft\\\\Edge\\\\Application\\\\msedge.exe\"),\n join(\n programFiles,\n \"BraveSoftware\\\\Brave-Browser\\\\Application\\\\brave.exe\",\n ),\n );\n }\n\n for (const path of candidates) {\n if (existsSync(path)) {\n return path;\n }\n }\n\n const lookup = os === \"win32\" ? \"where\" : \"which\";\n for (const candidate of [\n \"google-chrome\",\n \"google-chrome-stable\",\n \"chromium-browser\",\n \"chromium\",\n \"microsoft-edge\",\n \"brave-browser\",\n \"chrome.exe\",\n \"msedge.exe\",\n ]) {\n try {\n const output = execFileSync(lookup, [candidate], {\n encoding: \"utf8\",\n timeout: 3000,\n });\n const match = output\n .split(/\\r?\\n/)\n .map((value) => value.trim())\n .find((value) => value && existsSync(value));\n if (match) {\n return match;\n }\n } catch {\n // Ignore PATH misses.\n }\n }\n\n return null;\n}\n\n/**\n * Check if a Chromium-based browser is available.\n */\nexport function isBrowserAvailable(): boolean {\n return detectBrowserPath() !== null;\n}\n\n// ── Lifecycle ───────────────────────────────────────────────────────────────\n\nasync function ensureBrowser(): Promise<Page> {\n if (browser && activePage) {\n try {\n await activePage.evaluate(\"1\");\n return activePage;\n } catch {\n // Page disconnected, reset\n browser = null;\n activePage = null;\n }\n }\n throw new Error(\"Browser not open. Use the open action first.\");\n}\n\nexport async function openBrowser(url?: string): Promise<BrowserState> {\n const pup = await getPuppeteer();\n const executablePath = detectBrowserPath();\n if (!executablePath) {\n throw new Error(\n \"No Chromium-based browser found. Install Chrome, Edge, or Brave.\",\n );\n }\n\n // Close existing browser if any\n if (browser) {\n await closeBrowser();\n }\n\n const isCi =\n process.env.CI === \"true\" || process.env.GITHUB_ACTIONS === \"true\";\n const launchArgs = [\n \"--no-first-run\",\n \"--no-default-browser-check\",\n \"--disable-infobars\",\n `--window-size=1280,900`,\n ];\n if (isCi) {\n launchArgs.push(\n \"--no-sandbox\",\n \"--disable-setuid-sandbox\",\n \"--disable-dev-shm-usage\",\n \"--disable-gpu\",\n );\n }\n let lastError: unknown = null;\n\n for (let attempt = 1; attempt <= BROWSER_LAUNCH_ATTEMPTS; attempt += 1) {\n tempUserDataDir = await mkdtemp(join(tmpdir(), \"computeruse-browser-\"));\n\n try {\n browser = await pup.default.launch({\n executablePath,\n headless: browserHeadless,\n userDataDir: tempUserDataDir,\n args: launchArgs,\n defaultViewport: { width: 1280, height: 900 },\n });\n\n const pages = await browser.pages();\n activePage = pages[0] ?? (await browser.newPage());\n\n if (url) {\n await activePage.goto(url, {\n waitUntil: \"domcontentloaded\",\n timeout: 30000,\n });\n }\n\n return {\n url: activePage.url(),\n title: await activePage.title(),\n isOpen: true,\n is_open: true,\n };\n } catch (error) {\n lastError = error;\n await closeBrowser();\n if (attempt < BROWSER_LAUNCH_ATTEMPTS) {\n await new Promise((resolve) => setTimeout(resolve, attempt * 500));\n }\n }\n }\n\n const message =\n lastError instanceof Error ? lastError.message : String(lastError);\n throw new Error(`Failed to launch browser after retries: ${message}`);\n}\n\nexport async function closeBrowser(): Promise<void> {\n if (browser) {\n try {\n await browser.close();\n } catch {\n /* ignore */\n }\n browser = null;\n activePage = null;\n }\n\n if (tempUserDataDir) {\n try {\n await rm(tempUserDataDir, { recursive: true, force: true });\n } catch {\n /* ignore */\n }\n tempUserDataDir = null;\n }\n}\n\n// ── Navigation ──────────────────────────────────────────────────────────────\n\nexport async function navigateBrowser(url: string): Promise<BrowserState> {\n const page = await ensureBrowser();\n await page.goto(url, { waitUntil: \"domcontentloaded\", timeout: 30000 });\n return {\n url: page.url(),\n title: await page.title(),\n isOpen: true,\n is_open: true,\n };\n}\n\n// ── Click ───────────────────────────────────────────────────────────────────\n\nexport async function clickBrowser(\n selector?: string,\n coordinate?: [number, number],\n text?: string,\n): Promise<void> {\n const page = await ensureBrowser();\n\n if (selector) {\n await page.click(selector);\n } else if (coordinate) {\n await page.mouse.click(coordinate[0], coordinate[1]);\n } else if (text) {\n const el = await page.evaluateHandle((t) => {\n const walker = document.createTreeWalker(\n document.body,\n NodeFilter.SHOW_TEXT,\n );\n while (walker.nextNode()) {\n const node = walker.currentNode;\n if (node.textContent?.includes(t)) {\n return node.parentElement;\n }\n }\n return null;\n }, text);\n const element = el.asElement() as\n | import(\"puppeteer-core\").ElementHandle<Element>\n | null;\n if (!element) {\n await el.dispose();\n throw new Error(`Element with text \"${text}\" not found`);\n }\n await element.click();\n await el.dispose();\n } else {\n throw new Error(\n \"selector, coordinate, or text is required for browser click\",\n );\n }\n}\n\n// ── Type ────────────────────────────────────────────────────────────────────\n\nexport async function typeBrowser(\n text: string,\n selector?: string,\n): Promise<void> {\n const page = await ensureBrowser();\n\n if (selector) {\n await page.click(selector);\n await page.type(selector, text);\n } else {\n await page.keyboard.type(text);\n }\n}\n\n// ── Scroll ──────────────────────────────────────────────────────────────────\n\nexport async function scrollBrowser(\n direction: \"up\" | \"down\",\n amount = 300,\n): Promise<void> {\n const page = await ensureBrowser();\n const delta = direction === \"up\" ? -amount : amount;\n await page.evaluate((d) => window.scrollBy(0, d), delta);\n}\n\n// ── State ───────────────────────────────────────────────────────────────────\n\nexport async function getBrowserState(): Promise<BrowserState> {\n const page = await ensureBrowser();\n return {\n url: page.url(),\n title: await page.title(),\n isOpen: true,\n is_open: true,\n };\n}\n\nexport async function getBrowserContext(): Promise<BrowserState> {\n return getBrowserState();\n}\n\nexport async function getBrowserInfo(): Promise<BrowserInfo> {\n try {\n const state = await getBrowserState();\n return {\n success: true,\n isOpen: true,\n is_open: true,\n ...state,\n };\n } catch (error) {\n return {\n success: false,\n isOpen: false,\n is_open: false,\n url: \"\",\n title: \"\",\n error: error instanceof Error ? error.message : String(error),\n };\n }\n}\n\n// ── DOM ─────────────────────────────────────────────────────────────────────\n\nexport async function getBrowserDom(): Promise<string> {\n const page = await ensureBrowser();\n const html = await page.content();\n // Limit to first 5000 chars to prevent context overflow\n return html.slice(0, 5000);\n}\n\n// ── Clickable Elements ──────────────────────────────────────────────────────\n\nexport async function getBrowserClickables(): Promise<ClickableElement[]> {\n const page = await ensureBrowser();\n return page.evaluate(() => {\n const selectors =\n \"a, button, input, select, textarea, [role='button'], [role='link'], [onclick]\";\n const elements = document.querySelectorAll(selectors);\n const result: Array<{\n tag: string;\n text: string;\n selector: string;\n type?: string;\n href?: string;\n ariaLabel?: string;\n }> = [];\n\n for (const el of elements) {\n if (result.length >= 50) break;\n const tag = el.tagName.toLowerCase();\n const text = el.textContent.trim().slice(0, 100);\n const id = el.id ? `#${el.id}` : \"\";\n const cls =\n el.className && typeof el.className === \"string\"\n ? `.${el.className.split(\" \").filter(Boolean).join(\".\")}`\n : \"\";\n result.push({\n tag,\n text,\n selector: id || `${tag}${cls}`,\n type: (el as HTMLInputElement).type || undefined,\n href: (el as HTMLAnchorElement).href || undefined,\n ariaLabel: el.getAttribute(\"aria-label\") || undefined,\n });\n }\n return result;\n });\n}\n\n// ── Screenshot ──────────────────────────────────────────────────────────────\n\nexport async function screenshotBrowser(): Promise<string> {\n const page = await ensureBrowser();\n const buffer = await page.screenshot({ encoding: \"base64\", type: \"png\" });\n assertScreenshotBase64NotBlank(buffer as string, \"browser screenshot\");\n return buffer as string;\n}\n\n// ── Execute JavaScript (disabled — GHSA-rcvr-766c-4phv) ─────────────────────\n\nexport async function executeBrowser(_code: string): Promise<string> {\n assertBrowserExecuteAllowed();\n}\n\nfunction renderPlainData(value: unknown, indent = 0): string {\n const prefix = \" \".repeat(indent);\n if (value === null || value === undefined) {\n return \"none\";\n }\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return \"items[0]:\";\n }\n return [\n `items[${value.length}]:`,\n ...value.map((item) => `${prefix}- ${renderPlainData(item, indent + 1)}`),\n ].join(\"\\n\");\n }\n if (typeof value === \"object\") {\n return Object.entries(value as Record<string, unknown>)\n .map(([key, nestedValue]) => {\n if (nestedValue && typeof nestedValue === \"object\") {\n return `${key}:\\n${renderPlainData(nestedValue, indent + 1)}`;\n }\n return `${key}: ${renderPlainData(nestedValue, indent + 1)}`;\n })\n .join(\"\\n\");\n }\n return String(value);\n}\n\n// ── Wait ────────────────────────────────────────────────────────────────────\n\nexport async function waitBrowser(\n selector?: string,\n text?: string,\n timeout = 5000,\n): Promise<void> {\n const page = await ensureBrowser();\n if (selector) {\n await page.waitForSelector(selector, { timeout });\n } else if (text) {\n await page.waitForFunction(\n (t) => document.body.textContent.includes(t),\n { timeout },\n text,\n );\n } else {\n await new Promise((resolve) =>\n setTimeout(resolve, Math.min(timeout, 5000)),\n );\n }\n}\n\nexport async function browserWait(\n selector?: string,\n text?: string,\n timeout = 5000,\n): Promise<{ success: boolean; message?: string; error?: string }> {\n try {\n await waitBrowser(selector, text, timeout);\n if (selector) {\n return { success: true, message: `Element \"${selector}\" found` };\n }\n if (text) {\n return { success: true, message: `Text \"${text}\" found on page` };\n }\n return { success: true, message: `Waited ${Math.min(timeout, 5000)}ms` };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n}\n\n// ── Tab Management ──────────────────────────────────────────────────────────\n\nexport async function listBrowserTabs(): Promise<BrowserTab[]> {\n if (!browser) throw new Error(\"Browser not open.\");\n const pages = await browser.pages();\n const tabs: BrowserTab[] = [];\n for (const [i, page] of pages.entries()) {\n tabs.push({\n id: String(i),\n url: page.url(),\n title: await page.title(),\n active: page === activePage,\n });\n }\n return tabs;\n}\n\nexport async function openBrowserTab(url?: string): Promise<BrowserTab> {\n if (!browser) throw new Error(\"Browser not open.\");\n const page = await browser.newPage();\n activePage = page;\n if (url) {\n await page.goto(url, { waitUntil: \"domcontentloaded\", timeout: 30000 });\n }\n const pages = await browser.pages();\n return {\n id: String(pages.indexOf(page)),\n url: page.url(),\n title: await page.title(),\n active: true,\n };\n}\n\nexport async function closeBrowserTab(tabId: string): Promise<void> {\n if (!browser) throw new Error(\"Browser not open.\");\n const pages = await browser.pages();\n const idx = Number.parseInt(tabId, 10);\n const page = pages[idx];\n if (!page) throw new Error(`Tab ${tabId} not found.`);\n if (page === activePage) {\n // Switch to another tab before closing\n activePage = pages.find((p) => p !== page) ?? null;\n }\n await page.close();\n}\n\nexport async function switchBrowserTab(tabId: string): Promise<BrowserState> {\n if (!browser) throw new Error(\"Browser not open.\");\n const pages = await browser.pages();\n const idx = Number.parseInt(tabId, 10);\n const page = pages[idx];\n if (!page) throw new Error(`Tab ${tabId} not found.`);\n activePage = page;\n await page.bringToFront();\n return {\n url: page.url(),\n title: await page.title(),\n isOpen: true,\n is_open: true,\n };\n}\n\nexport const browser_open = openBrowser;\nexport const browser_connect = openBrowser;\nexport const browser_navigate = navigateBrowser;\nexport const browser_click = clickBrowser;\nexport const browser_type = typeBrowser;\nexport const browser_scroll = scrollBrowser;\nexport const browser_close = closeBrowser;\nexport const browser_execute = executeBrowser;\nexport const browser_screenshot = screenshotBrowser;\nexport const browser_dom = getBrowserDom;\nexport const browser_get_dom = getBrowserDom;\nexport const browser_get_clickables = getBrowserClickables;\nexport const browser_state = getBrowserState;\nexport const browser_get_context = getBrowserContext;\nexport const browser_info = getBrowserInfo;\nexport const browser_wait = browserWait;\nexport const browser_list_tabs = listBrowserTabs;\nexport const browser_open_tab = openBrowserTab;\nexport const browser_close_tab = closeBrowserTab;\nexport const browser_switch_tab = switchBrowserTab;\n",
41
- "import type { PlatformCapabilities } from \"../types.js\";\nimport type { PlatformOS } from \"./helpers.js\";\n\nexport interface CapabilityDetectionOptions {\n osName: PlatformOS;\n commandExists: (command: string) => boolean;\n isBrowserAvailable: () => boolean;\n shell?: string;\n}\n\n/**\n * Per-capability parity classification, kept in lock-step with\n * `plugins/plugin-computeruse/src/mobile/parity-status.md`.\n *\n * verified — exercised on real hardware (Linux/macOS in CI today)\n * code-parity — feature-equivalent code path exists, runtime untested\n * unavailable — surface present but not available in this delivery model\n * blocked — OS does not allow the operation in our delivery model\n *\n * iOS / Android live in `mobile/parity-status.md`; they are not desktop OSes\n * and don't pass through `detectPlatformCapabilities`.\n */\nexport type ParityStatus =\n | \"verified\"\n | \"code-parity\"\n | \"unavailable\"\n | \"blocked\";\n\nexport interface ParityNote {\n readonly status: ParityStatus;\n readonly note?: string;\n}\n\n/**\n * Static parity table for desktop targets, derived from the per-file audit.\n * Linux is the reference implementation.\n */\nexport const DESKTOP_PARITY: Readonly<\n Record<PlatformOS, Readonly<Record<keyof PlatformCapabilities, ParityNote>>>\n> = {\n linux: {\n screenshot: { status: \"verified\" },\n computerUse: { status: \"verified\" },\n windowList: { status: \"verified\" },\n browser: { status: \"verified\" },\n terminal: { status: \"verified\" },\n fileSystem: { status: \"verified\" },\n clipboard: { status: \"verified\", note: \"wl-clipboard / xclip / xsel\" },\n },\n darwin: {\n screenshot: { status: \"code-parity\", note: \"screencapture (built-in)\" },\n computerUse: {\n status: \"code-parity\",\n note: \"cliclick + AppleScript / Swift fallbacks\",\n },\n windowList: { status: \"code-parity\", note: \"AppleScript System Events\" },\n browser: {\n status: \"code-parity\",\n note: \"Chrome / Edge / Brave / Brave Beta / Arc / Vivaldi detection\",\n },\n terminal: { status: \"code-parity\", note: \"/bin/bash via execFile\" },\n fileSystem: { status: \"verified\" },\n clipboard: { status: \"code-parity\", note: \"pbpaste / pbcopy (built-in)\" },\n },\n win32: {\n screenshot: { status: \"code-parity\", note: \"PowerShell System.Drawing\" },\n computerUse: { status: \"code-parity\", note: \"PowerShell user32.dll\" },\n windowList: {\n status: \"code-parity\",\n note: \"PowerShell Get-Process MainWindowTitle + ProcessName\",\n },\n browser: {\n status: \"code-parity\",\n note: \"Chrome / Edge / Brave / Arc / Vivaldi detection\",\n },\n terminal: {\n status: \"code-parity\",\n note: \"powershell.exe -NoProfile -Command + Win-specific blocklist\",\n },\n fileSystem: { status: \"verified\" },\n clipboard: { status: \"code-parity\", note: \"PowerShell Get-Clipboard\" },\n },\n};\n\nexport function parityFor(\n osName: PlatformOS,\n capability: keyof PlatformCapabilities,\n): ParityNote {\n return DESKTOP_PARITY[osName][capability];\n}\n\nexport function detectPlatformCapabilities(\n options: CapabilityDetectionOptions,\n): PlatformCapabilities {\n const caps: PlatformCapabilities = {\n screenshot: { available: false, tool: \"none\" },\n computerUse: { available: false, tool: \"none\" },\n windowList: { available: false, tool: \"none\" },\n browser: { available: false, tool: \"none\" },\n terminal: { available: false, tool: \"none\" },\n fileSystem: { available: true, tool: \"node:fs\" },\n clipboard: { available: false, tool: \"none\" },\n };\n\n if (options.osName === \"darwin\") {\n caps.screenshot = { available: true, tool: \"screencapture (built-in)\" };\n caps.computerUse = options.commandExists(\"cliclick\")\n ? { available: true, tool: \"cliclick\" }\n : {\n available: true,\n tool: \"AppleScript / Swift fallbacks (mouse_move requires cliclick)\",\n };\n caps.windowList = {\n available: true,\n tool: \"AppleScript System Events\",\n };\n caps.clipboard = { available: true, tool: \"pbpaste / pbcopy (built-in)\" };\n } else if (options.osName === \"linux\") {\n if (options.commandExists(\"import\")) {\n caps.screenshot = { available: true, tool: \"ImageMagick import\" };\n } else if (options.commandExists(\"scrot\")) {\n caps.screenshot = { available: true, tool: \"scrot\" };\n } else if (options.commandExists(\"gnome-screenshot\")) {\n caps.screenshot = { available: true, tool: \"gnome-screenshot\" };\n } else {\n caps.screenshot = {\n available: false,\n tool: \"none (install ImageMagick, scrot, or gnome-screenshot)\",\n };\n }\n\n caps.computerUse = options.commandExists(\"xdotool\")\n ? { available: true, tool: \"xdotool\" }\n : { available: false, tool: \"none (install xdotool)\" };\n\n if (options.commandExists(\"wmctrl\")) {\n caps.windowList = { available: true, tool: \"wmctrl\" };\n } else if (options.commandExists(\"xdotool\")) {\n caps.windowList = { available: true, tool: \"xdotool\" };\n } else {\n caps.windowList = {\n available: false,\n tool: \"none (install wmctrl or xdotool)\",\n };\n }\n\n if (options.commandExists(\"wl-paste\")) {\n caps.clipboard = { available: true, tool: \"wl-clipboard\" };\n } else if (options.commandExists(\"xclip\")) {\n caps.clipboard = { available: true, tool: \"xclip\" };\n } else if (options.commandExists(\"xsel\")) {\n caps.clipboard = { available: true, tool: \"xsel\" };\n } else {\n caps.clipboard = {\n available: false,\n tool: \"none (install wl-clipboard, xclip, or xsel)\",\n };\n }\n } else if (options.osName === \"win32\") {\n caps.screenshot = { available: true, tool: \"PowerShell System.Drawing\" };\n caps.computerUse = { available: true, tool: \"PowerShell user32.dll\" };\n caps.windowList = { available: true, tool: \"PowerShell Get-Process\" };\n caps.clipboard = { available: true, tool: \"PowerShell Get-Clipboard\" };\n }\n\n caps.browser = options.isBrowserAvailable()\n ? { available: true, tool: \"puppeteer-core (Chromium detected)\" }\n : { available: false, tool: \"none (no Chrome/Edge/Brave found)\" };\n\n caps.terminal =\n options.osName === \"win32\"\n ? { available: true, tool: \"powershell.exe\" }\n : options.commandExists(options.shell ?? \"/bin/bash\")\n ? { available: true, tool: options.shell ?? \"/bin/bash\" }\n : { available: true, tool: options.shell ?? \"/bin/sh\" };\n\n return caps;\n}\n",
41
+ "import type { PlatformCapabilities } from \"../types.js\";\nimport type { PlatformOS } from \"./helpers.js\";\n\nexport interface CapabilityDetectionOptions {\n osName: PlatformOS;\n commandExists: (command: string) => boolean;\n isBrowserAvailable: () => boolean;\n shell?: string;\n}\n\n/**\n * Per-capability parity classification, kept in lock-step with\n * `plugins/plugin-computeruse/src/mobile/parity-status.md`.\n *\n * verified — exercised on real hardware (Linux/macOS in CI today)\n * code-parity — feature-equivalent code path exists, runtime untested\n * unavailable — surface present but not available in this delivery model\n * blocked — OS does not allow the operation in our delivery model\n *\n * iOS / Android live in `mobile/parity-status.md`; they are not desktop OSes\n * and don't pass through `detectPlatformCapabilities`.\n */\nexport type ParityStatus =\n | \"verified\"\n | \"code-parity\"\n | \"unavailable\"\n | \"blocked\";\n\nexport interface ParityNote {\n readonly status: ParityStatus;\n readonly note?: string;\n}\n\n/**\n * Static parity table for desktop targets, derived from the per-file audit.\n * Linux is the reference implementation.\n */\nexport const DESKTOP_PARITY: Readonly<\n Record<PlatformOS, Readonly<Record<keyof PlatformCapabilities, ParityNote>>>\n> = {\n linux: {\n screenshot: { status: \"verified\" },\n computerUse: { status: \"verified\" },\n windowList: { status: \"verified\" },\n browser: { status: \"verified\" },\n terminal: { status: \"verified\" },\n fileSystem: { status: \"verified\" },\n clipboard: { status: \"verified\", note: \"wl-clipboard / xclip / xsel\" },\n },\n darwin: {\n screenshot: { status: \"code-parity\", note: \"screencapture (built-in)\" },\n computerUse: {\n status: \"code-parity\",\n note: \"cliclick + AppleScript / Swift fallbacks\",\n },\n windowList: { status: \"code-parity\", note: \"AppleScript System Events\" },\n browser: {\n status: \"code-parity\",\n note: \"Chrome / Edge / Brave / Brave Beta / Arc / Vivaldi detection\",\n },\n terminal: { status: \"code-parity\", note: \"/bin/bash via execFile\" },\n fileSystem: { status: \"verified\" },\n clipboard: { status: \"code-parity\", note: \"pbpaste / pbcopy (built-in)\" },\n },\n win32: {\n screenshot: { status: \"code-parity\", note: \"PowerShell System.Drawing\" },\n computerUse: { status: \"code-parity\", note: \"PowerShell user32.dll\" },\n windowList: {\n status: \"code-parity\",\n note: \"PowerShell Get-Process MainWindowTitle + ProcessName\",\n },\n browser: {\n status: \"code-parity\",\n note: \"Chrome / Edge / Brave / Arc / Vivaldi detection\",\n },\n terminal: {\n status: \"code-parity\",\n note: \"powershell.exe -NoProfile -Command + Win-specific blocklist\",\n },\n fileSystem: { status: \"verified\" },\n clipboard: { status: \"code-parity\", note: \"PowerShell Get-Clipboard\" },\n },\n};\n\nexport function parityFor(\n osName: PlatformOS,\n capability: keyof PlatformCapabilities,\n): ParityNote {\n return DESKTOP_PARITY[osName][capability];\n}\n\nexport function detectPlatformCapabilities(\n options: CapabilityDetectionOptions,\n): PlatformCapabilities {\n const caps: PlatformCapabilities = {\n screenshot: { available: false, tool: \"none\" },\n computerUse: { available: false, tool: \"none\" },\n windowList: { available: false, tool: \"none\" },\n browser: { available: false, tool: \"none\" },\n terminal: { available: false, tool: \"none\" },\n fileSystem: { available: true, tool: \"node:fs\" },\n clipboard: { available: false, tool: \"none\" },\n };\n\n if (options.osName === \"darwin\") {\n caps.screenshot = { available: true, tool: \"screencapture (built-in)\" };\n caps.computerUse = options.commandExists(\"cliclick\")\n ? { available: true, tool: \"cliclick\" }\n : {\n available: true,\n tool: \"AppleScript / Swift fallbacks (mouse_move requires cliclick)\",\n };\n caps.windowList = {\n available: true,\n tool: \"AppleScript System Events\",\n };\n caps.clipboard = { available: true, tool: \"pbpaste / pbcopy (built-in)\" };\n } else if (options.osName === \"linux\") {\n if (options.commandExists(\"import\")) {\n caps.screenshot = { available: true, tool: \"ImageMagick import\" };\n } else if (options.commandExists(\"scrot\")) {\n caps.screenshot = { available: true, tool: \"scrot\" };\n } else if (options.commandExists(\"gnome-screenshot\")) {\n caps.screenshot = { available: true, tool: \"gnome-screenshot\" };\n } else if (options.commandExists(\"ffmpeg\")) {\n caps.screenshot = { available: true, tool: \"ffmpeg x11grab\" };\n } else {\n caps.screenshot = {\n available: false,\n tool: \"none (install ImageMagick, scrot, gnome-screenshot, or ffmpeg)\",\n };\n }\n\n caps.computerUse = options.commandExists(\"xdotool\")\n ? { available: true, tool: \"xdotool\" }\n : { available: false, tool: \"none (install xdotool)\" };\n\n if (options.commandExists(\"wmctrl\")) {\n caps.windowList = { available: true, tool: \"wmctrl\" };\n } else if (options.commandExists(\"xdotool\")) {\n caps.windowList = { available: true, tool: \"xdotool\" };\n } else {\n caps.windowList = {\n available: false,\n tool: \"none (install wmctrl or xdotool)\",\n };\n }\n\n if (options.commandExists(\"wl-paste\")) {\n caps.clipboard = { available: true, tool: \"wl-clipboard\" };\n } else if (options.commandExists(\"xclip\")) {\n caps.clipboard = { available: true, tool: \"xclip\" };\n } else if (options.commandExists(\"xsel\")) {\n caps.clipboard = { available: true, tool: \"xsel\" };\n } else {\n caps.clipboard = {\n available: false,\n tool: \"none (install wl-clipboard, xclip, or xsel)\",\n };\n }\n } else if (options.osName === \"win32\") {\n caps.screenshot = { available: true, tool: \"PowerShell System.Drawing\" };\n caps.computerUse = { available: true, tool: \"PowerShell user32.dll\" };\n caps.windowList = { available: true, tool: \"PowerShell Get-Process\" };\n caps.clipboard = { available: true, tool: \"PowerShell Get-Clipboard\" };\n }\n\n caps.browser = options.isBrowserAvailable()\n ? { available: true, tool: \"puppeteer-core (Chromium detected)\" }\n : { available: false, tool: \"none (no Chrome/Edge/Brave found)\" };\n\n caps.terminal =\n options.osName === \"win32\"\n ? { available: true, tool: \"powershell.exe\" }\n : options.commandExists(options.shell ?? \"/bin/bash\")\n ? { available: true, tool: options.shell ?? \"/bin/bash\" }\n : { available: true, tool: options.shell ?? \"/bin/sh\" };\n\n return caps;\n}\n",
42
42
  "/**\n * Coordinate translation between display-local and OS-global pixel space (WS5).\n *\n * Contract:\n * - Every public mouse-bearing action accepts `{displayId, x, y}` where\n * `(x, y)` is LOCAL to that display (top-left = 0,0, units = pixels of the\n * display's logical bounds).\n * - This module translates to the OS-global space the input drivers expect.\n *\n * Why local-first:\n * - The model sees each display independently (one capture, no virtual\n * desktop stitching). Local coords match what the model just looked at.\n * - Virtual-desktop coords are a perpetual DPI / negative-origin bug source.\n *\n * Per-OS behavior of the input drivers we wrap (nutjs / xdotool / cliclick /\n * PowerShell `SetCursorPos`):\n * - Linux/X11: drivers expect global pixel coords matching xrandr origins.\n * Translation = display.x + local.x. No DPI conversion.\n * - Windows: `SetCursorPos` and nutjs both take physical pixel coords\n * when the process is PerMonitorV2 DPI aware. Translation = display.x +\n * local.x. No multiplier here — caller is responsible for declaring\n * dpiAwareness.\n * - macOS: Quartz event coords are in points (logical), not backing-\n * store pixels. Translation = display.x + local.x with no scale multiply\n * IF the local coords are also in points. We document the local coord\n * space as \"logical pixels\" matching the capture's render at logical\n * resolution; for retina captures the screenshot is upsampled to backing-\n * store pixels and the model is expected to scale clicks back down\n * before sending. The translator divides by scaleFactor when local\n * coords were sourced from a backing-store-resolution screenshot.\n */\n\nimport type { DisplayInfo } from \"./displays.js\";\nimport { findDisplay, getPrimaryDisplay, listDisplays } from \"./displays.js\";\nimport { currentPlatform } from \"./helpers.js\";\n\nexport interface LocalPoint {\n displayId: number;\n x: number;\n y: number;\n}\n\nexport interface GlobalPoint {\n x: number;\n y: number;\n}\n\n/**\n * Resolve a LocalPoint to a GlobalPoint the input driver can act on.\n *\n * `coordSource` describes the coordinate reference:\n * - `\"logical\"` (default) — local coords are in logical pixels matching the\n * display's `bounds[2..3]`. No scale conversion is applied.\n * - `\"backing\"` — local coords were taken against a capture rendered at\n * `bounds * scaleFactor` (e.g. raw retina PNG). They are divided by\n * scaleFactor before translation. macOS-only relevant.\n */\nexport function localToGlobal(\n point: LocalPoint,\n coordSource: \"logical\" | \"backing\" = \"logical\",\n): GlobalPoint {\n const display = findDisplay(point.displayId);\n if (!display) {\n throw new Error(\n `Unknown displayId ${point.displayId}. Known displays: ${listDisplays()\n .map((d) => `${d.id}(${d.name})`)\n .join(\", \")}`,\n );\n }\n return translate(display, point.x, point.y, coordSource);\n}\n\n/**\n * As `localToGlobal`, but tolerates a missing displayId by defaulting to the\n * primary display. Logs nothing — callers should warn before using this.\n */\nexport function localToGlobalDefault(\n point: { displayId?: number; x: number; y: number },\n coordSource: \"logical\" | \"backing\" = \"logical\",\n): GlobalPoint {\n if (point.displayId === undefined) {\n const primary = getPrimaryDisplay();\n return translate(primary, point.x, point.y, coordSource);\n }\n return localToGlobal(\n { displayId: point.displayId, x: point.x, y: point.y },\n coordSource,\n );\n}\n\nfunction translate(\n display: DisplayInfo,\n localX: number,\n localY: number,\n coordSource: \"logical\" | \"backing\",\n): GlobalPoint {\n let lx = localX;\n let ly = localY;\n if (coordSource === \"backing\" && currentPlatform() === \"darwin\") {\n const s = display.scaleFactor || 1;\n if (s > 0) {\n lx = localX / s;\n ly = localY / s;\n }\n }\n return {\n x: Math.round(display.bounds[0] + lx),\n y: Math.round(display.bounds[1] + ly),\n };\n}\n\n/**\n * Inverse: given an OS-global point, return the (displayId, x, y) of the\n * display containing it. Returns null if no display contains the point.\n * Useful for translating OS-reported cursor positions back to local coords.\n */\nexport function globalToLocal(point: GlobalPoint): LocalPoint | null {\n for (const d of listDisplays()) {\n const [x, y, w, h] = d.bounds;\n if (point.x >= x && point.x < x + w && point.y >= y && point.y < y + h) {\n return { displayId: d.id, x: point.x - x, y: point.y - y };\n }\n }\n return null;\n}\n\n/**\n * Validate a local point is inside its display's bounds. Returns the clamped\n * point — never throws. Use this before sending to drivers that crash on\n * out-of-bounds coords on some Linux versions.\n */\nexport function clampToDisplay(point: LocalPoint): LocalPoint {\n const display = findDisplay(point.displayId);\n if (!display) return point;\n const [, , w, h] = display.bounds;\n return {\n displayId: point.displayId,\n x: Math.max(0, Math.min(point.x, Math.max(0, w - 1))),\n y: Math.max(0, Math.min(point.y, Math.max(0, h - 1))),\n };\n}\n",
43
43
  "import fs from \"node:fs\";\nimport { lstat, realpath } from \"node:fs/promises\";\nimport os from \"node:os\";\nimport path from \"node:path\";\n\nexport interface PathValidationResult {\n allowed: boolean;\n reason?: string;\n}\n\nexport interface CommandRiskResult {\n blocked: boolean;\n reason?: string;\n}\n\ninterface LabelledPattern {\n pattern: RegExp;\n label: string;\n}\n\ninterface DangerousPattern {\n pattern: RegExp;\n reason: string;\n}\n\nconst CREDENTIAL_PATTERNS: LabelledPattern[] = [\n {\n pattern: /^\\/\\.ssh\\/(?:id_|.*\\.pem$|authorized_keys$|config$)/i,\n label: \"SSH key/config\",\n },\n { pattern: /^\\/\\.gnupg\\//i, label: \"GPG keyring\" },\n { pattern: /^\\/\\.aws\\/credentials$/i, label: \"AWS credentials\" },\n {\n pattern: /^\\/\\.config\\/gcloud\\/application_default_credentials\\.json$/i,\n label: \"GCP credentials\",\n },\n { pattern: /^\\/\\.docker\\/config\\.json$/i, label: \"Docker credentials\" },\n { pattern: /^\\/\\.kube\\/config$/i, label: \"Kubernetes config\" },\n { pattern: /^\\/\\.netrc$/i, label: \"netrc credentials\" },\n { pattern: /^\\/\\.npmrc$/i, label: \"npm credentials\" },\n { pattern: /^\\/\\.git-credentials$/i, label: \"Git stored credentials\" },\n { pattern: /^\\/Library\\/Keychains\\//i, label: \"macOS Keychain\" },\n {\n pattern:\n /\\/(?:Google\\/Chrome|Microsoft\\/Edge|BraveSoftware\\/Brave-Browser)\\/.*\\/Login Data$/i,\n label: \"browser password database\",\n },\n {\n pattern:\n /\\/(?:Google\\/Chrome|Microsoft\\/Edge|BraveSoftware\\/Brave-Browser)\\/.*\\/Cookies$/i,\n label: \"browser cookie database\",\n },\n {\n pattern:\n /\\/\\.mozilla\\/firefox\\/.*\\/(?:logins\\.json|key[34]\\.db|cookies\\.sqlite)$/i,\n label: \"Firefox credential/cookie store\",\n },\n];\n\nconst SYSTEM_DIR_PATTERNS_WIN32: LabelledPattern[] = [\n { pattern: /^[A-Z]:\\/Windows\\//i, label: \"Windows system directory\" },\n { pattern: /^[A-Z]:\\/Program Files/i, label: \"Program Files directory\" },\n { pattern: /^[A-Z]:\\/ProgramData\\//i, label: \"ProgramData directory\" },\n {\n pattern: /^[A-Z]:\\/PROGRA~[1-4]\\//i,\n label: \"Program Files (8.3 short name)\",\n },\n];\n\nconst SYSTEM_DIR_PATTERNS_UNIX: LabelledPattern[] = [\n { pattern: /^\\/boot\\//i, label: \"boot directory\" },\n { pattern: /^\\/sbin\\//i, label: \"system binary directory\" },\n { pattern: /^\\/usr\\/sbin\\//i, label: \"system admin binary directory\" },\n { pattern: /^\\/usr\\/lib\\//i, label: \"system library directory\" },\n {\n pattern: /^\\/etc\\/(?:shadow|sudoers|pam\\.d|master\\.passwd)/i,\n label: \"system auth config\",\n },\n { pattern: /^\\/System\\//i, label: \"macOS System directory\" },\n {\n pattern: /^\\/private\\/var\\/db\\/dslocal/i,\n label: \"macOS Directory Services\",\n },\n { pattern: /^\\/dev\\//i, label: \"device node\" },\n { pattern: /^\\/proc\\//i, label: \"proc filesystem\" },\n { pattern: /^\\/sys\\//i, label: \"sys filesystem\" },\n];\n\nconst WINDOWS_DEVICE_NAME = /^(CON|PRN|AUX|NUL|COM\\d|LPT\\d)(\\..+)?$/i;\n\nconst STRIP_EXACT_ENV = new Set([\n \"INTERNAL_API_KEY\",\n \"CSRF_SECRET\",\n \"ENCRYPTION_KEY\",\n \"SUPABASE_SERVICE_ROLE\",\n \"STRIPE_API_KEY\",\n \"STRIPE_WEBHOOK_SECRET\",\n \"POSTHOG_API_KEY\",\n]);\n\nconst STRIP_PATTERN_ENV: RegExp[] = [\n /^SUPABASE_.*(?:SERVICE_ROLE|SECRET)/i,\n /^STRIPE_.*(?:SECRET|WEBHOOK)/i,\n /^ELIZA_.*(?:SECRET|KEY|TOKEN)/i,\n // LLM provider + connector credentials must not leak into spawned commands.\n /^(?:ANTHROPIC|OPENAI|OPENROUTER|GROQ|XAI|GOOGLE|GEMINI|GOOGLE_GENERATIVE_AI|ELEVENLABS|DEEPGRAM|MISTRAL|COHERE|DISCORD|TELEGRAM|SLACK|FARCASTER|TWITTER|AWS)_.*(?:KEY|TOKEN|SECRET|PASSWORD)/i,\n // Catch-all for credential-suffixed keys from any other provider/connector.\n /_(?:API_KEY|SECRET|TOKEN|PASSWORD|PRIVATE_KEY)$/i,\n];\n\nconst DANGEROUS_COMMAND_PATTERNS: DangerousPattern[] = [\n {\n pattern: /\\brm\\s+-[^\\n;|&]*r[^\\n;|&]*\\s+\\/(\\s*$|\\s*;|\\s*&|\\s*\\|)/im,\n reason: \"Recursive deletion of the root filesystem (rm -rf /).\",\n },\n {\n pattern: /\\brm\\s+-[^\\n;|&]*r[^\\n;|&]*\\s+\\/\\*/im,\n reason: \"Recursive deletion of all root contents (rm -rf /*).\",\n },\n {\n pattern: /\\brm\\s+-[^\\n;|&]*r[^\\n;|&]*\\s+~\\/?(\\s|$|;|&|\\|)/im,\n reason: \"Recursive deletion of the entire home directory.\",\n },\n {\n pattern:\n /\\bRemove-Item\\b(?=[^;|&]*-Recurse)(?=[^;|&]*[\\s'\"][A-Z]:[\\\\/](?=[^a-zA-Z0-9]|$))/im,\n reason: \"PowerShell recursive deletion of drive root.\",\n },\n {\n pattern:\n /\\bRemove-Item\\b(?=[^;|&]*-Recurse)(?=[^;|&]*[\\s'\"]\\/{1,2}['\"\\s])/im,\n reason: \"PowerShell recursive deletion of filesystem root.\",\n },\n {\n pattern:\n /\\b(?:powershell|pwsh)(?:\\.exe)?\\b[^|]*-(?:enc|encodedcommand)\\b/im,\n reason: \"Encoded PowerShell command.\",\n },\n {\n pattern: /\\bmkfs(?:\\.\\w+)?\\s/i,\n reason: \"Filesystem format command (mkfs).\",\n },\n {\n pattern: /\\bdd\\s+[^;|&]*\\bof=\\/dev\\/[hs]d/i,\n reason: \"Raw disk write (dd of=/dev/sdX).\",\n },\n {\n pattern: /:\\(\\)\\s*\\{[^}]*:\\s*\\|\\s*:/,\n reason: \"Fork bomb detected.\",\n },\n {\n pattern: /\\breg\\s+delete\\s+HKLM\\\\/i,\n reason: \"System registry deletion.\",\n },\n];\n\n/**\n * Build the set of \"home-relative\" candidate strings a credential pattern is\n * tested against. The anchored CREDENTIAL_PATTERNS (e.g. `^/.ssh/...`) expect a\n * path with the home root stripped, so we strip the agent's own home plus any\n * `/root` or `/home/<user>` prefix. The full normalized path is always included\n * so the non-anchored browser-store patterns continue to match anywhere.\n */\nfunction credentialRelativePaths(normalized: string): string[] {\n const candidates = new Set<string>([normalized]);\n\n const home = os.homedir().replace(/\\\\/g, \"/\");\n if (home && normalized.startsWith(`${home}/`)) {\n candidates.add(normalized.slice(home.length));\n }\n\n // /root/... and /home/<user>/... — strip the home root so reads of other\n // users' (and root's) credential files are caught regardless of os.homedir().\n const otherHomeMatch = normalized.match(\n /^\\/root(?=\\/)|^\\/home\\/[^/]+(?=\\/)/i,\n );\n if (otherHomeMatch) {\n candidates.add(normalized.slice(otherHomeMatch[0].length));\n }\n\n // /Users/<user>/... (macOS) home root.\n const macHomeMatch = normalized.match(/^\\/Users\\/[^/]+(?=\\/)/i);\n if (macHomeMatch) {\n candidates.add(normalized.slice(macHomeMatch[0].length));\n }\n\n // C:/Users/<user>/... (Windows) home root. The optional leading path segment\n // lets POSIX test runners exercise Windows-style paths after path.resolve().\n const windowsHomeMatch = normalized.match(\n /(?:^|\\/)[A-Z]:\\/Users\\/[^/]+(?=\\/)/i,\n );\n if (windowsHomeMatch) {\n const root = windowsHomeMatch[0].startsWith(\"/\")\n ? windowsHomeMatch[0].slice(1)\n : windowsHomeMatch[0];\n const rootIndex = normalized.indexOf(root);\n if (rootIndex >= 0) {\n candidates.add(normalized.slice(rootIndex + root.length));\n }\n }\n\n return [...candidates];\n}\n\nexport function validateFilePath(\n filePath: string,\n operation: \"read\" | \"write\" | \"delete\",\n): PathValidationResult {\n if (!filePath || typeof filePath !== \"string\") {\n return { allowed: false, reason: \"No file path provided.\" };\n }\n\n if (filePath.includes(\"\\0\")) {\n return {\n allowed: false,\n reason: \"Path contains null bytes (possible injection attack).\",\n };\n }\n\n let resolved = path.resolve(filePath);\n if (resolved.startsWith(\"\\\\\\\\\")) {\n return {\n allowed: false,\n reason: \"Network (UNC) paths are blocked. Only local files are allowed.\",\n };\n }\n\n if (process.platform === \"win32\" && /~\\d/.test(resolved)) {\n try {\n const expanded = fs.realpathSync.native(resolved);\n if (expanded !== resolved) {\n resolved = expanded;\n }\n } catch {\n // Ignore nonexistent paths; the static blocklists still apply.\n }\n }\n\n const normalized = resolved.replace(/\\\\/g, \"/\");\n\n if (process.platform === \"win32\" && operation !== \"read\") {\n const basename = path.basename(resolved);\n if (WINDOWS_DEVICE_NAME.test(basename)) {\n return {\n allowed: false,\n reason: `Blocked: \"${basename}\" is a Windows reserved device name.`,\n };\n }\n }\n\n // Evaluate credential patterns against the path relative to ANY user's home\n // (the agent's own home, /root, and /home/<user>), not just the current home,\n // so reads of e.g. /root/.ssh/id_rsa or /home/other/.aws/credentials are\n // still blocked. The anchored patterns expect a \"/.ssh/...\" style suffix.\n for (const relativeToHome of credentialRelativePaths(normalized)) {\n for (const { pattern, label } of CREDENTIAL_PATTERNS) {\n if (pattern.test(relativeToHome)) {\n return {\n allowed: false,\n reason: `Blocked: \"${path.basename(resolved)}\" is a ${label} file.`,\n };\n }\n }\n }\n\n // Sensitive UNIX system paths (/etc/shadow, /proc, /sys, /dev, …) are blocked\n // for EVERY operation, including reads, so they cannot be exfiltrated via a\n // read. The Windows program-directory patterns stay write/delete-only because\n // reading config/log files there is a legitimate use case.\n if (process.platform !== \"win32\") {\n for (const { pattern, label } of SYSTEM_DIR_PATTERNS_UNIX) {\n if (pattern.test(normalized)) {\n return {\n allowed: false,\n reason: `Blocked: cannot ${operation} in ${label}.`,\n };\n }\n }\n }\n\n if (operation !== \"read\") {\n if (process.platform === \"win32\") {\n for (const { pattern, label } of SYSTEM_DIR_PATTERNS_WIN32) {\n if (pattern.test(normalized)) {\n return {\n allowed: false,\n reason: `Blocked: cannot ${operation} in ${label}.`,\n };\n }\n }\n }\n\n if (/^[A-Z]:\\/?$/i.test(normalized) || normalized === \"/\") {\n return {\n allowed: false,\n reason: `Blocked: cannot ${operation} the filesystem root.`,\n };\n }\n }\n\n return { allowed: true };\n}\n\nexport type SafeFileTargetResult = PathValidationResult & {\n resolvedPath?: string;\n};\n\nfunction errnoCode(error: unknown): string {\n return error && typeof error === \"object\" && \"code\" in error\n ? String((error as NodeJS.ErrnoException).code)\n : \"\";\n}\n\n/**\n * Resolve and re-validate file paths after lstat/realpath to reduce TOCTOU /\n * symlink escapes (GHSA-qmf5-p9x5-9xr5).\n */\nexport async function resolveSafeFileTarget(\n filePath: string,\n operation: \"read\" | \"write\" | \"delete\",\n): Promise<SafeFileTargetResult> {\n const check = validateFilePath(filePath, operation);\n if (!check.allowed) {\n return check;\n }\n\n const resolved = path.resolve(filePath);\n\n try {\n const stat = await lstat(resolved);\n if (stat.isSymbolicLink()) {\n return {\n allowed: false,\n reason: \"Symbolic links are not allowed for file operations.\",\n };\n }\n const canonical = await realpath(resolved);\n const recheck = validateFilePath(canonical, operation);\n if (!recheck.allowed) {\n return recheck;\n }\n return { allowed: true, resolvedPath: canonical };\n } catch (error) {\n if (errnoCode(error) === \"ENOENT\" && operation === \"read\") {\n const fallback = validateFilePath(resolved, operation);\n if (!fallback.allowed) {\n return fallback;\n }\n return { allowed: true, resolvedPath: resolved };\n }\n\n if (errnoCode(error) === \"ENOENT\" && operation === \"write\") {\n const parent = path.dirname(resolved);\n try {\n const parentStat = await lstat(parent);\n if (parentStat.isSymbolicLink()) {\n return {\n allowed: false,\n reason: \"Parent path is a symbolic link.\",\n };\n }\n const parentReal = await realpath(parent);\n const target = path.join(parentReal, path.basename(resolved));\n const parentCheck = validateFilePath(target, operation);\n if (!parentCheck.allowed) {\n return parentCheck;\n }\n return { allowed: true, resolvedPath: target };\n } catch (parentError) {\n if (errnoCode(parentError) === \"ENOENT\") {\n const fallback = validateFilePath(resolved, operation);\n if (!fallback.allowed) {\n return fallback;\n }\n return { allowed: true, resolvedPath: resolved };\n }\n return {\n allowed: false,\n reason:\n parentError instanceof Error\n ? parentError.message\n : String(parentError),\n };\n }\n }\n\n return {\n allowed: false,\n reason: error instanceof Error ? error.message : String(error),\n };\n }\n}\n\nexport function sanitizeChildEnv(): Record<string, string | undefined> {\n const env = { ...process.env };\n for (const key of Object.keys(env)) {\n if (STRIP_EXACT_ENV.has(key)) {\n delete env[key];\n continue;\n }\n for (const pattern of STRIP_PATTERN_ENV) {\n if (pattern.test(key)) {\n delete env[key];\n break;\n }\n }\n }\n return env;\n}\n\nexport function checkDangerousCommand(command: string): CommandRiskResult {\n if (!command || typeof command !== \"string\") {\n return { blocked: false };\n }\n\n const trimmed = command.trim();\n for (const { pattern, reason } of DANGEROUS_COMMAND_PATTERNS) {\n if (pattern.test(trimmed)) {\n return {\n blocked: true,\n reason:\n `Command blocked: ${reason}\\n` +\n \"If you genuinely need to run this, execute it manually in a terminal.\",\n };\n }\n }\n\n return { blocked: false };\n}\n",
44
44
  "import fs from \"node:fs/promises\";\nimport path from \"node:path\";\nimport type { FileActionResult, FileEntry } from \"../types.js\";\nimport { resolveSafeFileTarget } from \"./security.js\";\n\nexport async function readFile(\n targetPath: string,\n encoding: BufferEncoding = \"utf8\",\n): Promise<FileActionResult> {\n const check = await resolveSafeFileTarget(targetPath, \"read\");\n if (!check.allowed || !check.resolvedPath) {\n return { success: false, error: check.reason ?? \"Path not allowed.\" };\n }\n\n try {\n const content = await fs.readFile(check.resolvedPath, { encoding });\n return {\n success: true,\n path: check.resolvedPath,\n content: String(content).slice(0, 10000),\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n}\n\nexport async function writeFile(\n targetPath: string,\n content: string,\n): Promise<FileActionResult> {\n const check = await resolveSafeFileTarget(targetPath, \"write\");\n if (!check.allowed || !check.resolvedPath) {\n return { success: false, error: check.reason ?? \"Path not allowed.\" };\n }\n\n try {\n await fs.mkdir(path.dirname(check.resolvedPath), { recursive: true });\n await fs.writeFile(check.resolvedPath, content, \"utf8\");\n return {\n success: true,\n path: check.resolvedPath,\n message: \"File written.\",\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n}\n\nexport async function editFile(\n targetPath: string,\n oldText: string,\n newText: string,\n): Promise<FileActionResult> {\n const check = await resolveSafeFileTarget(targetPath, \"write\");\n if (!check.allowed || !check.resolvedPath) {\n return { success: false, error: check.reason ?? \"Path not allowed.\" };\n }\n\n try {\n const content = await fs.readFile(check.resolvedPath, \"utf8\");\n if (!content.includes(oldText)) {\n return {\n success: false,\n error: \"Old text not found in file.\",\n };\n }\n await fs.writeFile(\n check.resolvedPath,\n content.replace(oldText, newText),\n \"utf8\",\n );\n return {\n success: true,\n path: check.resolvedPath,\n message: \"File edited.\",\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n}\n\nexport async function appendFile(\n targetPath: string,\n content: string,\n): Promise<FileActionResult> {\n const check = await resolveSafeFileTarget(targetPath, \"write\");\n if (!check.allowed || !check.resolvedPath) {\n return { success: false, error: check.reason ?? \"Path not allowed.\" };\n }\n\n try {\n await fs.mkdir(path.dirname(check.resolvedPath), { recursive: true });\n await fs.appendFile(check.resolvedPath, content, \"utf8\");\n return {\n success: true,\n path: check.resolvedPath,\n message: \"Content appended.\",\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n}\n\nexport async function deleteFile(\n targetPath: string,\n): Promise<FileActionResult> {\n const check = await resolveSafeFileTarget(targetPath, \"delete\");\n if (!check.allowed || !check.resolvedPath) {\n return { success: false, error: check.reason ?? \"Path not allowed.\" };\n }\n\n try {\n await fs.unlink(check.resolvedPath);\n return {\n success: true,\n path: check.resolvedPath,\n message: \"File deleted.\",\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n}\n\nexport async function fileExists(\n targetPath: string,\n): Promise<FileActionResult> {\n const check = await resolveSafeFileTarget(targetPath, \"read\");\n if (!check.allowed || !check.resolvedPath) {\n return { success: false, error: check.reason ?? \"Path not allowed.\" };\n }\n\n try {\n await fs.access(check.resolvedPath);\n const stat = await fs.stat(check.resolvedPath);\n return {\n success: true,\n path: check.resolvedPath,\n exists: true,\n isFile: stat.isFile(),\n isDirectory: stat.isDirectory(),\n is_file: stat.isFile(),\n is_directory: stat.isDirectory(),\n size: stat.size,\n };\n } catch {\n return {\n success: true,\n path: check.resolvedPath,\n exists: false,\n isFile: false,\n isDirectory: false,\n is_file: false,\n is_directory: false,\n size: 0,\n };\n }\n}\n\nexport async function listDirectory(\n targetPath: string,\n): Promise<FileActionResult> {\n const check = await resolveSafeFileTarget(targetPath, \"read\");\n if (!check.allowed || !check.resolvedPath) {\n return { success: false, error: check.reason ?? \"Path not allowed.\" };\n }\n const resolvedPath = check.resolvedPath;\n\n try {\n const entries = await fs.readdir(resolvedPath, { withFileTypes: true });\n const items: FileEntry[] = entries.map((entry) => ({\n name: entry.name,\n type: entry.isDirectory() ? \"directory\" : \"file\",\n path: path.join(resolvedPath, entry.name),\n }));\n return {\n success: true,\n path: resolvedPath,\n items,\n count: items.length,\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n}\n\nexport async function deleteDirectory(\n targetPath: string,\n): Promise<FileActionResult> {\n const check = await resolveSafeFileTarget(targetPath, \"delete\");\n if (!check.allowed || !check.resolvedPath) {\n return { success: false, error: check.reason ?? \"Path not allowed.\" };\n }\n\n try {\n await fs.rm(check.resolvedPath, { recursive: true, force: true });\n return {\n success: true,\n path: check.resolvedPath,\n message: \"Directory deleted.\",\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n}\n\nfunction fileOpError(error: unknown): FileActionResult {\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n}\n\n/**\n * Read raw bytes as base64 (#9170 — cua `read_bytes`). Optional byte `offset` /\n * `length` window for chunked transfer of a sandbox guest file. Unlike `readFile`\n * (text, truncated to 10k chars) this is binary-safe and returns the exact bytes.\n */\nexport async function readBytes(\n targetPath: string,\n offset?: number,\n length?: number,\n): Promise<FileActionResult> {\n const check = await resolveSafeFileTarget(targetPath, \"read\");\n if (!check.allowed || !check.resolvedPath) {\n return { success: false, error: check.reason ?? \"Path not allowed.\" };\n }\n try {\n let buf = await fs.readFile(check.resolvedPath);\n if (typeof offset === \"number\" || typeof length === \"number\") {\n const start = Math.max(0, Math.floor(offset ?? 0));\n const end =\n typeof length === \"number\"\n ? start + Math.max(0, Math.floor(length))\n : undefined;\n buf = buf.subarray(start, end);\n }\n return {\n success: true,\n path: check.resolvedPath,\n bytes: buf.toString(\"base64\"),\n size: buf.length,\n };\n } catch (error) {\n return fileOpError(error);\n }\n}\n\n/**\n * Write base64-encoded bytes to a file (#9170 — cua `write_bytes`), creating\n * parent directories. Binary-safe counterpart to `writeFile`.\n */\nexport async function writeBytes(\n targetPath: string,\n base64: string,\n): Promise<FileActionResult> {\n const check = await resolveSafeFileTarget(targetPath, \"write\");\n if (!check.allowed || !check.resolvedPath) {\n return { success: false, error: check.reason ?? \"Path not allowed.\" };\n }\n try {\n const buf = Buffer.from(base64 ?? \"\", \"base64\");\n await fs.mkdir(path.dirname(check.resolvedPath), { recursive: true });\n await fs.writeFile(check.resolvedPath, buf);\n return {\n success: true,\n path: check.resolvedPath,\n size: buf.length,\n message: `Wrote ${buf.length} bytes.`,\n };\n } catch (error) {\n return fileOpError(error);\n }\n}\n\n/** Create a directory (recursive) (#9170 — cua `create_dir`). */\nexport async function createDirectory(\n targetPath: string,\n): Promise<FileActionResult> {\n const check = await resolveSafeFileTarget(targetPath, \"write\");\n if (!check.allowed || !check.resolvedPath) {\n return { success: false, error: check.reason ?? \"Path not allowed.\" };\n }\n try {\n await fs.mkdir(check.resolvedPath, { recursive: true });\n return {\n success: true,\n path: check.resolvedPath,\n is_directory: true,\n isDirectory: true,\n message: \"Directory created.\",\n };\n } catch (error) {\n return fileOpError(error);\n }\n}\n\n/** Whether a path exists AND is a directory (#9170 — cua `directory_exists`). */\nexport async function directoryExists(\n targetPath: string,\n): Promise<FileActionResult> {\n const check = await resolveSafeFileTarget(targetPath, \"read\");\n if (!check.allowed || !check.resolvedPath) {\n return { success: false, error: check.reason ?? \"Path not allowed.\" };\n }\n try {\n const stat = await fs.stat(check.resolvedPath);\n const isDir = stat.isDirectory();\n return {\n success: true,\n path: check.resolvedPath,\n exists: isDir,\n is_directory: isDir,\n isDirectory: isDir,\n };\n } catch {\n return {\n success: true,\n path: check.resolvedPath,\n exists: false,\n is_directory: false,\n isDirectory: false,\n };\n }\n}\n\n/** File/dir size in bytes (#9170 — cua `get_file_size`). */\nexport async function getFileSize(\n targetPath: string,\n): Promise<FileActionResult> {\n const check = await resolveSafeFileTarget(targetPath, \"read\");\n if (!check.allowed || !check.resolvedPath) {\n return { success: false, error: check.reason ?? \"Path not allowed.\" };\n }\n try {\n const stat = await fs.stat(check.resolvedPath);\n return {\n success: true,\n path: check.resolvedPath,\n size: stat.size,\n is_file: stat.isFile(),\n isFile: stat.isFile(),\n is_directory: stat.isDirectory(),\n isDirectory: stat.isDirectory(),\n };\n } catch (error) {\n return fileOpError(error);\n }\n}\n",
@@ -65,7 +65,7 @@
65
65
  "/**\n * @elizaos/plugin-computeruse\n *\n * Desktop automation plugin for elizaOS agents — screenshots, mouse/keyboard\n * control, browser CDP automation, and window management.\n *\n * File operations belong on the FILE action; shell/terminal access belongs on\n * the SHELL action. They are not exposed by this plugin.\n *\n * Deeply ported from coasty-ai/open-computer-use (Apache 2.0).\n *\n * Enable via:\n * - Config: features.computeruse: true\n * - Env: COMPUTER_USE_ENABLED=1\n *\n * Platform requirements:\n * macOS — screencapture (built-in), cliclick (brew install cliclick), AppleScript\n * Linux — xdotool (sudo apt install xdotool), ImageMagick/scrot for screenshots\n * Windows — PowerShell (built-in)\n * Browser — puppeteer-core + Chrome/Edge/Brave installed\n *\n * @module @elizaos/plugin-computeruse\n */\n\nimport type { Plugin, Route } from \"@elizaos/core\";\nimport { promoteSubactionsToActions } from \"@elizaos/core\";\nimport { clipboardAction } from \"./actions/clipboard.js\";\nimport { useComputerAction } from \"./actions/use-computer.js\";\nimport { computerUseAgentAction } from \"./actions/use-computer-agent.js\";\nimport { windowAction } from \"./actions/window.js\";\nimport { computerStateProvider } from \"./providers/computer-state.js\";\nimport { sceneProvider } from \"./providers/scene.js\";\nimport { computerUseRouteHandler } from \"./routes/computer-use-compat-routes.js\";\nimport { ComputerUseService } from \"./services/computer-use-service.js\";\nimport { VisionContextProvider } from \"./services/vision-context-provider.js\";\n\nconst computerUseRoutes: Route[] = [\n {\n type: \"GET\",\n path: \"/api/computer-use/approvals\",\n rawPath: true,\n handler: computerUseRouteHandler(),\n },\n {\n type: \"GET\",\n path: \"/api/computer-use/approvals/stream\",\n rawPath: true,\n public: true,\n name: \"computeruse-approvals-stream\",\n handler: computerUseRouteHandler(),\n },\n {\n type: \"POST\",\n path: \"/api/computer-use/approval-mode\",\n rawPath: true,\n handler: computerUseRouteHandler(),\n },\n {\n // Dynamic `:id` segment — handler decodes the id from req.url itself.\n type: \"POST\",\n path: \"/api/computer-use/approvals/:id\",\n rawPath: true,\n handler: computerUseRouteHandler(),\n },\n];\n\nexport const computerUsePlugin: Plugin = {\n name: \"@elizaos/plugin-computeruse\",\n description:\n \"Desktop automation — take screenshots, control mouse and keyboard, \" +\n \"automate web browsers via CDP, and manage desktop windows. \" +\n \"Ported from open-computer-use (Apache 2.0).\",\n\n services: [ComputerUseService, VisionContextProvider],\n\n async dispose(runtime) {\n const svc = runtime.getService<ComputerUseService>(\n ComputerUseService.serviceType,\n );\n await svc?.stop();\n },\n\n // COMPUTER_USE (canonical desktop interaction: screenshot/click/key/etc.)\n // and WINDOW (window management: list/focus/switch/arrange/move/...) stay\n // registered as distinct top-level actions — they cover different surfaces.\n // Each umbrella's subactions are promoted to virtual top-level actions\n // (e.g. COMPUTER_USE_CLICK, WINDOW_FOCUS) so the planner can pick a\n // specific verb directly from the action catalogue.\n actions: [\n ...promoteSubactionsToActions(useComputerAction),\n ...promoteSubactionsToActions(windowAction),\n // CLIPBOARD (read/write the host clipboard) — a core computer-use capability\n // (trycua/cua parity). Promoted to CLIPBOARD_READ / CLIPBOARD_WRITE.\n ...promoteSubactionsToActions(clipboardAction),\n computerUseAgentAction,\n ],\n\n providers: [computerStateProvider, sceneProvider],\n\n routes: computerUseRoutes,\n\n autoEnable: {\n envKeys: [\"COMPUTER_USE_ENABLED\"],\n },\n};\n\nexport const computerusePlugin = computerUsePlugin;\n\nexport default computerUsePlugin;\n\nexport {\n type ComputerUseAgentParams,\n type ComputerUseAgentReport,\n computerUseAgentAction,\n runComputerUseAgentLoop,\n} from \"./actions/use-computer-agent.js\";\n// WS7: Brain / Actor / Cascade / Dispatch — autonomous desktop loop.\nexport * from \"./actor/index.js\";\n// iOS computer-use surface. See `docs/IOS_CONSTRAINTS.md` for the honest scope.\nexport * from \"./mobile/index.js\";\nexport {\n listProcesses,\n type ProcessInfo,\n parsePsOutput,\n parseWindowsProcessJson,\n} from \"./platform/process-list.js\";\nexport { sceneProvider } from \"./providers/scene.js\";\nexport { handleComputerUseRoutes } from \"./routes/computer-use-routes.js\";\nexport { handleSandboxRoute } from \"./routes/sandbox-routes.js\";\nexport {\n type AccessibilityProvider,\n DarwinAccessibilityProvider,\n LinuxAccessibilityProvider,\n NullAccessibilityProvider,\n parseHyprlandClients,\n parseSwayTree,\n resolveAccessibilityProvider,\n setAccessibilityProvider,\n WindowsAccessibilityProvider,\n} from \"./scene/a11y-provider.js\";\nexport { enumerateApps, joinAppsAndWindows } from \"./scene/apps.js\";\nexport {\n type BlockGrid,\n blockGrid,\n type DirtyBlock,\n decodePng,\n diffBlocks,\n frameDhash,\n hamming,\n} from \"./scene/dhash.js\";\n// WS6: scene-builder surface — consumed by WS7 (Brain) and WS10 verifiers.\nexport {\n _resetDefaultSceneBuilderForTests,\n getDefaultSceneBuilder,\n SceneBuilder,\n type SceneBuilderDeps,\n type SceneUpdateEvent,\n} from \"./scene/scene-builder.js\";\nexport type {\n Scene,\n SceneApp,\n SceneAppWindow,\n SceneAxNode,\n SceneFocusedWindow,\n SceneOcrBox,\n SceneVlmElement,\n} from \"./scene/scene-types.js\";\nexport { serializeSceneForPrompt } from \"./scene/serialize.js\";\nexport { ComputerUseService } from \"./services/computer-use-service.js\";\nexport type {\n DesktopControlCapabilities,\n DesktopControlCapability,\n DesktopInputButton,\n DesktopScreenshotRegion,\n DesktopWindowInfo,\n} from \"./services/desktop-control.js\";\nexport {\n captureDesktopScreenshot,\n commandExists,\n detectDesktopControlCapabilities,\n getDesktopPlatformName,\n isHeadfulGuiAvailable,\n listDesktopWindows,\n performDesktopClick,\n performDesktopDoubleClick,\n performDesktopKeypress,\n performDesktopMouseMove,\n performDesktopScroll,\n performDesktopTextInput,\n} from \"./services/desktop-control.js\";\nexport {\n VISION_CONTEXT_SERVICE_TYPE,\n VISION_CONTEXT_TASK_GOAL_CACHE_KEY,\n type VisionContext,\n type VisionContextBBox,\n type VisionContextFocusedWindow,\n VisionContextProvider,\n type VisionContextRecentAction,\n} from \"./services/vision-context-provider.js\";\n// Re-export types for consumers\nexport type {\n ActionHistoryEntry,\n ApprovalMode,\n ApprovalResolution,\n ApprovalSnapshot,\n BrowserActionParams,\n BrowserActionResult,\n BrowserActionType,\n BrowserInfo,\n BrowserState,\n BrowserTab,\n ClickableElement,\n ComputerActionResult,\n ComputerUseConfig,\n ComputerUseResult,\n DesktopActionParams,\n DesktopActionType,\n FileActionParams,\n FileActionResult,\n FileActionType,\n FileEntry,\n PendingApproval,\n PermissionType,\n PlatformCapabilities,\n ScreenRegion,\n ScreenSize,\n TerminalActionParams,\n TerminalActionResult,\n TerminalActionType,\n WindowActionParams,\n WindowActionResult,\n WindowActionType,\n WindowInfo,\n} from \"./types.js\";\n",
66
66
  "import { registerAppRoutePluginLoader } from \"@elizaos/core\";\n\nregisterAppRoutePluginLoader(\"@elizaos/plugin-computeruse\", async () => {\n const { computerUsePlugin } = await import(\"./index.js\");\n return computerUsePlugin;\n});\n"
67
67
  ],
68
- "mappings": "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",
69
- "debugId": "1F27588390FBE82264756E2164756E21",
68
+ "mappings": "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",
69
+ "debugId": "35042180BEEE0C9064756E2164756E21",
70
70
  "names": []
71
71
  }