agent-web-os 0.3.0-beta.0 → 0.3.1

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.
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/almostnode-session.ts"],"sourcesContent":["import type { CommandContext, ExecResult } from \"just-bash/browser\"\nimport { posixPath as path } from \"./posix-path\"\nimport { PackageManager, Runtime, getServerBridge, VirtualFS, ViteDevServer } from \"almostnode\"\n\nimport {\n ObservableInMemoryFs,\n} from \"./observable-in-memory-fs\"\n\nconst ALMOSTNODE_INTERNAL_ROOT = \"/.almostnode\"\nconst ALMOSTNODE_NODE_VERSION = \"v20.0.0\"\nconst ALMOSTNODE_NPM_VERSION = \"9.6.4\"\nconst NODE_EXEC_PATH = \"/usr/local/bin/node\"\nconst GLOBAL_NODE_MODULES_ROOT = \"/usr/local/lib/node_modules\"\nconst DEFAULT_PATH = \"/usr/local/bin:/usr/bin:/bin:/node_modules/.bin\"\nconst NPM_USAGE = [\n \"Usage: npm <command>\",\n \"\",\n \"Commands:\",\n \" run <script> Run a script from package.json\",\n \" start Run the start script\",\n \" test Run the test script\",\n \" install [pkg] Install packages\",\n \" ls List installed packages\",\n].join(\"\\n\")\n\nconst STATIC_MIME_TYPES: Record<string, string> = {\n css: \"text/css; charset=utf-8\",\n cjs: \"application/javascript; charset=utf-8\",\n gif: \"image/gif\",\n htm: \"text/html; charset=utf-8\",\n html: \"text/html; charset=utf-8\",\n ico: \"image/x-icon\",\n jpeg: \"image/jpeg\",\n jpg: \"image/jpeg\",\n js: \"application/javascript; charset=utf-8\",\n json: \"application/json; charset=utf-8\",\n map: \"application/json; charset=utf-8\",\n md: \"text/markdown; charset=utf-8\",\n mjs: \"application/javascript; charset=utf-8\",\n otf: \"font/otf\",\n pdf: \"application/pdf\",\n png: \"image/png\",\n svg: \"image/svg+xml\",\n txt: \"text/plain; charset=utf-8\",\n wasm: \"application/wasm\",\n webp: \"image/webp\",\n woff: \"font/woff\",\n woff2: \"font/woff2\",\n}\n\ntype PackageJsonLike = {\n name?: string\n version?: string\n scripts?: Record<string, string>\n dependencies?: Record<string, string>\n devDependencies?: Record<string, string>\n optionalDependencies?: Record<string, string>\n peerDependencies?: Record<string, string>\n}\n\ntype BinCommandRegistrar = (name: string, handler: (args: string[], ctx: CommandContext) => Promise<ExecResult>) => void\ntype VitePreviewListener = (previewUrl: string | null) => void\ntype BatchFileLoader = (paths: string[]) => Promise<Map<string, Uint8Array>>\n\nexport interface AlmostNodeSessionVfs {\n existsSync(path: string): boolean\n statSync(path: string): { isDirectory(): boolean; isFile(): boolean }\n readFileSync(path: string, encoding?: string): any\n writeFileSync(path: string, data: string | Uint8Array): void\n mkdirSync(path: string, options?: { recursive?: boolean }): void\n readdirSync(path: string): string[]\n unlinkSync(path: string): void\n rmdirSync(path: string): void\n renameSync(oldPath: string, newPath: string): void\n}\n\ndeclare global {\n interface Window {\n __esbuild?: unknown\n __esbuildInitPromise?: Promise<void>\n }\n}\n\n/** Strip leading \"./\" from a path (e.g. \"./esm/index.js\" → \"esm/index.js\") */\nfunction stripDotSlash(p: string): string {\n return p.startsWith(\"./\") ? p.slice(2) : p\n}\n\nfunction getStaticMimeType(filePath: string): string {\n const extension = filePath.split(\".\").pop()?.toLowerCase() || \"\"\n return STATIC_MIME_TYPES[extension] || \"application/octet-stream\"\n}\n\nfunction getRequestPathname(requestUrl: string): string {\n return new URL(requestUrl, \"http://localhost\").pathname\n}\n\n/**\n * Detect CJS modules and wrap them in an ESM shim so the browser can\n * import them. Detects `require(`, `module.exports`, or `exports.` at\n * statement level. Already-ESM sources (containing `import ` or\n * `export `) are returned untouched.\n *\n * `require('pkg')` calls are hoisted into ESM `import` declarations so\n * that transitive CJS dependencies are loaded by the browser's module\n * loader (and themselves shimmed when served).\n */\nfunction wrapCjsAsEsm(code: string, virtualPrefix = \"\", requestPath = \"\"): string {\n // Strip strings and comments so keyword detection is accurate\n const stripped = code.replace(\n /(\"(?:[^\"\\\\]|\\\\.)*\"|'(?:[^'\\\\]|\\\\.)*'|`(?:[^`\\\\]|\\\\.)*`|\\/\\*[\\s\\S]*?\\*\\/|\\/\\/[^\\n]*)/g,\n (match) => \" \".repeat(match.length),\n )\n\n // Quick ESM check – if it already has import/export syntax, leave it alone\n if (/\\b(import\\s+|export\\s+|export\\s*\\{|export\\s+default\\b)/.test(stripped)) {\n return code\n }\n // Quick CJS check – must have at least one CJS indicator\n if (!/\\b(require\\s*\\(|module\\.exports|exports\\.)/.test(stripped)) {\n return code\n }\n\n // Compute the directory of the file being served so relative requires\n // (e.g. require('./cjs/react-is.development.js')) resolve correctly.\n // requestPath should be the *resolved* file path (with extension), so\n // dirname always gives the correct parent directory.\n const requestDir = requestPath ? path.dirname(requestPath) : \"\"\n\n // Collect require() calls and replace them with references to\n // imported shim variables. We only handle string-literal requires.\n // Build a comment-free view of the code so we don't match require()\n // inside comments. Strings must be preserved since require specifiers\n // live inside them. We reuse the same tokenizer but only blank comments.\n const commentFree = code.replace(\n /(\"(?:[^\"\\\\]|\\\\.)*\"|'(?:[^'\\\\]|\\\\.)*'|`(?:[^`\\\\]|\\\\.)*`|\\/\\*[\\s\\S]*?\\*\\/|\\/\\/[^\\n]*)/g,\n (m) => {\n if (m.startsWith(\"/*\") || m.startsWith(\"//\")) {\n return \" \".repeat(m.length)\n }\n return m\n },\n )\n\n const imports: string[] = []\n let counter = 0\n // Match on comment-free version but replace in original code at same offsets\n const requirePattern = /\\brequire\\s*\\(\\s*(['\"])([^'\"]+)\\1\\s*\\)/g\n let rewritten = \"\"\n let lastIndex = 0\n let match: RegExpExecArray | null\n while ((match = requirePattern.exec(commentFree)) !== null) {\n const specifier = match[2]\n const varName = `__cjs_req_${counter++}__`\n let resolvedSpec: string\n if (specifier.startsWith(\".\")) {\n resolvedSpec = `${virtualPrefix}${path.resolve(requestDir, specifier)}`\n } else {\n resolvedSpec = `${virtualPrefix}/node_modules/${specifier}`\n }\n imports.push(`import ${varName} from \"${resolvedSpec}\";`)\n rewritten += code.slice(lastIndex, match.index)\n rewritten += `(${varName} && ${varName}.__esModule ? ${varName}.default : ${varName})`\n lastIndex = match.index + match[0].length\n }\n rewritten += code.slice(lastIndex)\n\n // Detect CJS \"re-export\" patterns:\n // module.exports = require('./some-file') (unconditional)\n // if (NODE_ENV === 'production') { module.exports = require(A) }\n // else { module.exports = require(B) } (conditional)\n // Add `export * from \"...\"` so named imports flow through.\n // Only emit ONE export-star to avoid \"conflicting star exports\" when\n // multiple conditional branches re-export modules with the same names.\n // Since our process shim sets NODE_ENV='production', prefer the\n // production variant if present; otherwise take the first match.\n const reExportPattern = /module\\.exports\\s*=\\s*\\(__cjs_req_(\\d+)__\\s*&&\\s*__cjs_req_\\1__\\.__esModule\\s*\\?\\s*__cjs_req_\\1__\\.default\\s*:\\s*__cjs_req_\\1__\\)/g\n const reExportCandidates: string[] = []\n let reM: RegExpExecArray | null\n while ((reM = reExportPattern.exec(rewritten)) !== null) {\n const reExportVar = `__cjs_req_${reM[1]}__`\n const reExportImport = imports.find((i) => i.includes(reExportVar))\n if (reExportImport) {\n const specMatch = reExportImport.match(/from\\s+\"([^\"]+)\"/)\n if (specMatch) reExportCandidates.push(specMatch[1])\n }\n }\n if (reExportCandidates.length > 0) {\n // Prefer production build (matches our NODE_ENV shim)\n const picked = reExportCandidates.find((s) => /production|\\.prod[\\.\\b]/.test(s))\n ?? reExportCandidates[0]\n return [\n \"// [monospace CJS→ESM re-export]\",\n ...imports,\n \"var module = { exports: {} };\",\n \"var exports = module.exports;\",\n \"var process = { env: { NODE_ENV: 'production' } };\",\n rewritten,\n \"export default module.exports;\",\n `export * from \"${picked}\";`,\n ].join(\"\\n\")\n }\n\n // Extract named exports by scanning for `exports.NAME =` patterns in\n // the rewritten code. These become static ESM named exports.\n const namedExports = new Set<string>()\n const exportsPattern = /\\bexports\\.(\\w+)\\s*=/g\n let expMatch: RegExpExecArray | null\n while ((expMatch = exportsPattern.exec(rewritten)) !== null) {\n const name = expMatch[1]\n if (name !== \"__esModule\") namedExports.add(name)\n }\n\n const namedExportLines: string[] = []\n if (namedExports.size > 0) {\n const names = [...namedExports]\n // Use prefixed variable names to avoid clashing with identifiers\n // already declared in the original CJS code (e.g. `function typeOf`).\n for (const name of names) {\n namedExportLines.push(`var __cjs_e_${name}__ = module.exports.${name};`)\n }\n namedExportLines.push(\n `export { ${names.map((n) => `__cjs_e_${n}__ as ${n}`).join(\", \")} };`,\n )\n }\n\n return [\n \"// [monospace CJS→ESM shim]\",\n ...imports,\n \"var module = { exports: {} };\",\n \"var exports = module.exports;\",\n \"var process = { env: { NODE_ENV: 'production' } };\",\n rewritten,\n \"export default module.exports;\",\n ...namedExportLines,\n ].join(\"\\n\")\n}\n\nconst ESBUILD_WASM_VERSION = \"0.20.0\"\n\n/**\n * Pre-initialize esbuild-wasm before ViteDevServer is created.\n *\n * Turbopack statically analyses `import(CDN_URL)` inside almostnode's\n * vite-dev-server.ts, replaces the specifier with 'unknown' and breaks\n * the runtime import. By loading the module ourselves with a URL\n * constructed at runtime (invisible to Turbopack's static pass) and\n * setting `window.__esbuild`, the ViteDevServer's `initEsbuild()` finds\n * the singleton already in place and skips its own broken import().\n */\nasync function ensureEsbuildWasm(): Promise<void> {\n if (typeof window === \"undefined\") return\n if (window.__esbuild) return\n if (window.__esbuildInitPromise) {\n await window.__esbuildInitPromise\n return\n }\n\n window.__esbuildInitPromise = (async () => {\n // Build URLs at runtime so Turbopack cannot statically resolve them\n const esmUrl = `https://esm.sh/esbuild-wasm@${ESBUILD_WASM_VERSION}`\n const wasmUrl = `https://unpkg.com/esbuild-wasm@${ESBUILD_WASM_VERSION}/esbuild.wasm`\n\n // Use indirect import to prevent Turbopack static analysis\n const dynamicImport = new Function(\"url\", \"return import(url)\") as (url: string) => Promise<Record<string, unknown>>\n const mod = await dynamicImport(esmUrl)\n const esbuildMod = (mod.default || mod) as { initialize: (opts: { wasmURL: string }) => Promise<void> }\n\n try {\n await esbuildMod.initialize({ wasmURL: wasmUrl })\n } catch (err) {\n if (err instanceof Error && err.message.includes(\"Cannot call \\\"initialize\\\" more than once\")) {\n // already initialized\n } else {\n window.__esbuildInitPromise = undefined\n throw err\n }\n }\n\n window.__esbuild = esbuildMod\n })()\n\n await window.__esbuildInitPromise\n}\n\nfunction normalizePath(inputPath: string): string {\n return path.normalize(inputPath.trim() || \"/\") || \"/\"\n}\n\nfunction isInternalAlmostNodePath(targetPath: string): boolean {\n const normalizedPath = normalizePath(targetPath)\n return normalizedPath === ALMOSTNODE_INTERNAL_ROOT\n || normalizedPath.startsWith(`${ALMOSTNODE_INTERNAL_ROOT}/`)\n}\n\nfunction appendChunk(chunks: string[], value: string): void {\n if (!value) {\n return\n }\n\n chunks.push(value)\n}\n\nfunction getPackageJsonDependencyNames(pkgJson: PackageJsonLike): string[] {\n const dependencyNames: string[] = []\n const dependencySections = [\n pkgJson.dependencies,\n pkgJson.devDependencies,\n pkgJson.optionalDependencies,\n pkgJson.peerDependencies,\n ]\n\n for (const section of dependencySections) {\n if (!section || typeof section !== \"object\") {\n continue\n }\n\n for (const packageName of Object.keys(section)) {\n if (!dependencyNames.includes(packageName)) {\n dependencyNames.push(packageName)\n }\n }\n }\n\n return dependencyNames\n}\n\nfunction getCommandEnvironment(ctx: CommandContext): Record<string, string> {\n const environment: Record<string, string> = {}\n\n for (const [key, value] of ctx.env.entries()) {\n environment[key] = value\n }\n\n return environment\n}\n\nasync function ensureObservableDirectory(fs: ObservableInMemoryFs, directoryPath: string): Promise<void> {\n const normalizedPath = normalizePath(directoryPath)\n if (normalizedPath === \"/\") {\n return\n }\n\n if (await fs.exists(normalizedPath)) {\n return\n }\n\n await fs.mkdir(normalizedPath, { recursive: true })\n}\n\nfunction removeVirtualPath(vfs: VirtualFS, targetPath: string): void {\n const normalizedPath = normalizePath(targetPath)\n if (normalizedPath === \"/\" || isInternalAlmostNodePath(normalizedPath) || !vfs.existsSync(normalizedPath)) {\n return\n }\n\n const stat = vfs.statSync(normalizedPath)\n if (!stat.isDirectory()) {\n vfs.unlinkSync(normalizedPath)\n return\n }\n\n for (const childName of vfs.readdirSync(normalizedPath)) {\n removeVirtualPath(vfs, path.join(normalizedPath, childName))\n }\n\n vfs.rmdirSync(normalizedPath)\n}\n\nclass AlmostNodeVirtualFs extends VirtualFS {\n private suppressMirrorCount = 0\n\n constructor(private readonly session: AlmostNodeSession) {\n super()\n }\n\n withoutMirror<T>(operation: () => T): T {\n this.suppressMirrorCount += 1\n\n try {\n return operation()\n } finally {\n this.suppressMirrorCount -= 1\n }\n }\n\n private shouldMirror(targetPath: string): boolean {\n return this.suppressMirrorCount === 0 && !isInternalAlmostNodePath(targetPath)\n }\n\n override writeFileSync(targetPath: string, data: string | Uint8Array): void {\n super.writeFileSync(targetPath, data)\n\n if (this.shouldMirror(targetPath)) {\n void this.session.applyVirtualWrite(targetPath, data)\n }\n }\n\n override mkdirSync(targetPath: string, options?: { recursive?: boolean }): void {\n super.mkdirSync(targetPath, options)\n\n if (this.shouldMirror(targetPath)) {\n void this.session.applyVirtualMkdir(targetPath)\n }\n }\n\n override unlinkSync(targetPath: string): void {\n super.unlinkSync(targetPath)\n\n if (this.shouldMirror(targetPath)) {\n void this.session.applyVirtualRemove(targetPath, false)\n }\n }\n\n override rmdirSync(targetPath: string): void {\n super.rmdirSync(targetPath)\n\n if (this.shouldMirror(targetPath)) {\n void this.session.applyVirtualRemove(targetPath, true)\n }\n }\n\n override renameSync(previousPath: string, nextPath: string): void {\n super.renameSync(previousPath, nextPath)\n\n if (this.shouldMirror(previousPath) && this.shouldMirror(nextPath)) {\n void this.session.applyVirtualRename(previousPath, nextPath)\n }\n }\n}\n\nexport class AlmostNodeSession {\n private readonly _vfs = new AlmostNodeVirtualFs(this)\n get vfs(): AlmostNodeSessionVfs { return this._vfs }\n\n private readonly disposeObservableSubscription: () => void\n private initializePromise: Promise<void> | null = null\n private initialized = false\n private pendingOperations = new Set<Promise<void>>()\n private suppressObservableMirrorCount = 0\n private registeredBinCommands = new Set<string>()\n private binCommandRegistrar?: BinCommandRegistrar\n private batchFileLoader?: BatchFileLoader\n private stdoutWriter?: (data: string) => void\n private _stdinHandler: ((data: string) => void) | null = null\n private _terminalColumns = 80\n private _terminalRows = 24\n private viteServer?: ViteDevServer\n private vitePort: number | null = null\n private vitePreviewUrl: string | null = null\n private vitePreviewListener?: VitePreviewListener\n private parsedPackageJsonCache = new Map<string, { raw: string; value: Record<string, unknown> | null }>()\n private transformedTextCache = new Map<string, { source: string; transformed: string }>()\n\n constructor(private readonly fs: ObservableInMemoryFs) {\n this._vfs.mkdirSync(ALMOSTNODE_INTERNAL_ROOT, { recursive: true })\n\n // Shim the deprecated `constants` module (missing from almostnode's builtins).\n // Many npm packages still `require('constants')`.\n this._vfs.mkdirSync(\"/node_modules/constants\", { recursive: true })\n this._vfs.writeFileSync(\"/node_modules/constants/package.json\", JSON.stringify({\n name: \"constants\",\n version: \"0.0.1\",\n main: \"index.js\",\n }))\n this._vfs.writeFileSync(\"/node_modules/constants/index.js\", [\n \"// Node.js `constants` shim (os.constants + fs.constants)\",\n \"var os = require('os');\",\n \"var constants = {};\",\n \"if (os.constants) {\",\n \" if (os.constants.signals) Object.assign(constants, os.constants.signals);\",\n \" if (os.constants.errno) Object.assign(constants, os.constants.errno);\",\n \" if (os.constants.priority) Object.assign(constants, os.constants.priority);\",\n \"}\",\n \"// Common fs.constants used by npm packages\",\n \"constants.O_RDONLY = 0;\",\n \"constants.O_WRONLY = 1;\",\n \"constants.O_RDWR = 2;\",\n \"constants.O_CREAT = 64;\",\n \"constants.O_EXCL = 128;\",\n \"constants.O_TRUNC = 512;\",\n \"constants.O_APPEND = 1024;\",\n \"constants.O_DIRECTORY = 65536;\",\n \"constants.O_NOFOLLOW = 131072;\",\n \"constants.O_SYNC = 1052672;\",\n \"constants.O_SYMLINK = 2097152;\",\n \"constants.O_NONBLOCK = 2048;\",\n \"constants.S_IFMT = 61440;\",\n \"constants.S_IFREG = 32768;\",\n \"constants.S_IFDIR = 16384;\",\n \"constants.S_IFCHR = 8192;\",\n \"constants.S_IFBLK = 24576;\",\n \"constants.S_IFIFO = 4096;\",\n \"constants.S_IFLNK = 40960;\",\n \"constants.S_IFSOCK = 49152;\",\n \"constants.S_IRWXU = 448;\",\n \"constants.S_IRUSR = 256;\",\n \"constants.S_IWUSR = 128;\",\n \"constants.S_IXUSR = 64;\",\n \"constants.S_IRWXG = 56;\",\n \"constants.S_IRGRP = 32;\",\n \"constants.S_IWGRP = 16;\",\n \"constants.S_IXGRP = 8;\",\n \"constants.S_IRWXO = 7;\",\n \"constants.S_IROTH = 4;\",\n \"constants.S_IWOTH = 2;\",\n \"constants.S_IXOTH = 1;\",\n \"constants.F_OK = 0;\",\n \"constants.R_OK = 4;\",\n \"constants.W_OK = 2;\",\n \"constants.X_OK = 1;\",\n \"constants.COPYFILE_EXCL = 1;\",\n \"constants.COPYFILE_FICLONE = 2;\",\n \"constants.COPYFILE_FICLONE_FORCE = 4;\",\n \"constants.UV_FS_COPYFILE_EXCL = 1;\",\n \"constants.UV_FS_COPYFILE_FICLONE = 2;\",\n \"constants.UV_FS_COPYFILE_FICLONE_FORCE = 4;\",\n \"module.exports = constants;\",\n ].join(\"\\n\"))\n\n // Shim `stream/promises` subpath (missing from almostnode's builtins).\n // The stream module has .promises but it's not registered as a subpath.\n this._vfs.mkdirSync(\"/node_modules/stream\", { recursive: true })\n this._vfs.writeFileSync(\"/node_modules/stream/package.json\", JSON.stringify({\n name: \"stream\",\n version: \"0.0.1\",\n main: \"index.js\",\n }))\n this._vfs.writeFileSync(\"/node_modules/stream/index.js\",\n \"module.exports = require('stream');\")\n this._vfs.mkdirSync(\"/node_modules/stream/promises\", { recursive: true })\n this._vfs.writeFileSync(\"/node_modules/stream/promises/package.json\", JSON.stringify({\n name: \"stream-promises\",\n version: \"0.0.1\",\n main: \"index.js\",\n }))\n this._vfs.writeFileSync(\"/node_modules/stream/promises/index.js\",\n \"var stream = require('stream');\\nmodule.exports = stream.promises || {};\")\n\n // Shim `stream/web` subpath (missing from almostnode's builtins).\n // Re-exports the browser-native Web Streams API (ReadableStream, WritableStream, etc.)\n this._vfs.mkdirSync(\"/node_modules/stream/web\", { recursive: true })\n this._vfs.writeFileSync(\"/node_modules/stream/web/package.json\", JSON.stringify({\n name: \"stream-web\",\n version: \"0.0.1\",\n main: \"index.js\",\n }))\n this._vfs.writeFileSync(\"/node_modules/stream/web/index.js\", [\n \"// Web Streams API shim — re-exports browser globals\",\n \"module.exports = {\",\n \" ReadableStream: typeof ReadableStream !== 'undefined' ? ReadableStream : undefined,\",\n \" ReadableStreamDefaultReader: typeof ReadableStreamDefaultReader !== 'undefined' ? ReadableStreamDefaultReader : undefined,\",\n \" ReadableStreamBYOBReader: typeof ReadableStreamBYOBReader !== 'undefined' ? ReadableStreamBYOBReader : undefined,\",\n \" ReadableStreamDefaultController: typeof ReadableStreamDefaultController !== 'undefined' ? ReadableStreamDefaultController : undefined,\",\n \" ReadableByteStreamController: typeof ReadableByteStreamController !== 'undefined' ? ReadableByteStreamController : undefined,\",\n \" WritableStream: typeof WritableStream !== 'undefined' ? WritableStream : undefined,\",\n \" WritableStreamDefaultWriter: typeof WritableStreamDefaultWriter !== 'undefined' ? WritableStreamDefaultWriter : undefined,\",\n \" WritableStreamDefaultController: typeof WritableStreamDefaultController !== 'undefined' ? WritableStreamDefaultController : undefined,\",\n \" TransformStream: typeof TransformStream !== 'undefined' ? TransformStream : undefined,\",\n \" TransformStreamDefaultController: typeof TransformStreamDefaultController !== 'undefined' ? TransformStreamDefaultController : undefined,\",\n \" ByteLengthQueuingStrategy: typeof ByteLengthQueuingStrategy !== 'undefined' ? ByteLengthQueuingStrategy : undefined,\",\n \" CountQueuingStrategy: typeof CountQueuingStrategy !== 'undefined' ? CountQueuingStrategy : undefined,\",\n \"};\",\n ].join(\"\\n\"))\n\n this.disposeObservableSubscription = this.fs.subscribe((event) => {\n void this.trackOperation((async () => {\n if (!this.initialized || this.suppressObservableMirrorCount > 0) {\n return\n }\n\n const normalizedPath = normalizePath(event.path)\n if (isInternalAlmostNodePath(normalizedPath)) {\n return\n }\n\n if (event.event === \"unlink\" || event.event === \"unlinkDir\") {\n this._vfs.withoutMirror(() => {\n removeVirtualPath(this._vfs, normalizedPath)\n })\n return\n }\n\n await this.copyObservablePathIntoVirtualFs(normalizedPath)\n })())\n })\n }\n\n dispose(): void {\n this.disposeObservableSubscription()\n this.stopViteServer()\n }\n\n setBinCommandRegistrar(registrar: BinCommandRegistrar): void {\n this.binCommandRegistrar = registrar\n }\n\n setBatchFileLoader(loader: BatchFileLoader): void {\n this.batchFileLoader = loader\n }\n\n setStdoutWriter(writer: ((data: string) => void) | undefined): void {\n this.stdoutWriter = writer\n }\n\n /** Send data to the stdin of the currently running interactive process. */\n writeStdin(data: string): void {\n this._stdinHandler?.(data)\n }\n\n /** Update terminal dimensions (used for process.stdout.columns/rows). */\n setTerminalSize(columns: number, rows: number): void {\n this._terminalColumns = columns\n this._terminalRows = rows\n }\n\n setVitePreviewListener(listener: VitePreviewListener | undefined): void {\n this.vitePreviewListener = listener\n listener?.(this.vitePreviewUrl)\n }\n\n setViteHmrTarget(target: Window | null): void {\n if (!target || !this.viteServer) {\n return\n }\n\n this.viteServer.setHMRTarget(target)\n }\n\n /**\n * Resolve a bare module specifier (e.g. \"@mui/material\" or \"react\") to a\n * `/node_modules/...` URL path that the ViteDevServer can serve.\n *\n * Resolution order mirrors Node/bundler conventions:\n * 1. package.json \"exports\" (condition \"import\" → \"default\")\n * 2. package.json \"module\"\n * 3. package.json \"main\"\n * 4. index.js / index.mjs fallback\n *\n * For deep imports like \"@mui/material/Button\", we resolve from the\n * package directory directly.\n */\n private resolveBarePkgEntryCache = new Map<string, string | null>()\n\n private parseCachedPackageJson(packageJsonPath: string, raw: string): Record<string, unknown> | null {\n const cached = this.parsedPackageJsonCache.get(packageJsonPath)\n if (cached && cached.raw === raw) {\n return cached.value\n }\n\n try {\n const parsed = JSON.parse(raw) as Record<string, unknown>\n this.parsedPackageJsonCache.set(packageJsonPath, { raw, value: parsed })\n return parsed\n } catch {\n this.parsedPackageJsonCache.set(packageJsonPath, { raw, value: null })\n return null\n }\n }\n\n private transformTextWithCache(\n cacheKey: string,\n source: string,\n transform: (value: string) => string,\n ): string {\n const cached = this.transformedTextCache.get(cacheKey)\n if (cached && cached.source === source) {\n return cached.transformed\n }\n\n const transformed = transform(source)\n this.transformedTextCache.set(cacheKey, { source, transformed })\n return transformed\n }\n\n private resolveBarePkgEntry(specifier: string, root: string): string | null {\n const cacheKey = `${root}\\u0000${specifier}`\n const cached = this.resolveBarePkgEntryCache.get(cacheKey)\n if (cached !== undefined) return cached\n\n const result = this._resolveBarePkgEntry(specifier, root)\n this.resolveBarePkgEntryCache.set(cacheKey, result)\n return result\n }\n\n private _resolveBarePkgEntry(specifier: string, root: string): string | null {\n // Split specifier into package name + sub-path\n let pkgName: string\n let subPath: string\n\n if (specifier.startsWith(\"@\")) {\n // scoped: @scope/pkg or @scope/pkg/sub\n const parts = specifier.split(\"/\")\n pkgName = `${parts[0]}/${parts[1]}`\n subPath = parts.slice(2).join(\"/\")\n } else {\n const slashIdx = specifier.indexOf(\"/\")\n if (slashIdx === -1) {\n pkgName = specifier\n subPath = \"\"\n } else {\n pkgName = specifier.slice(0, slashIdx)\n subPath = specifier.slice(slashIdx + 1)\n }\n }\n\n const nodeModulesPath = `${root}/node_modules/${pkgName}`\n const pkgJsonPath = `${nodeModulesPath}/package.json`\n\n let pkgJson: Record<string, unknown> | null = null\n try {\n if (this.vfs.existsSync(pkgJsonPath)) {\n pkgJson = this.parseCachedPackageJson(pkgJsonPath, this.vfs.readFileSync(pkgJsonPath, \"utf8\"))\n }\n } catch {\n // malformed package.json\n }\n\n if (subPath) {\n // Deep import: @mui/material/Button → resolve via exports map or direct path\n if (pkgJson?.exports && typeof pkgJson.exports === \"object\") {\n const exportsMap = pkgJson.exports as Record<string, unknown>\n const entry = this.resolveExportsEntry(exportsMap, `./${subPath}`)\n ?? this.resolveWildcardExports(exportsMap, subPath)\n if (entry) return `/node_modules/${pkgName}/${stripDotSlash(entry)}`\n }\n\n // Try direct file paths\n const candidates = [\n `/node_modules/${pkgName}/${subPath}`,\n `/node_modules/${pkgName}/${subPath}.js`,\n `/node_modules/${pkgName}/${subPath}.mjs`,\n `/node_modules/${pkgName}/${subPath}/index.js`,\n `/node_modules/${pkgName}/${subPath}/index.mjs`,\n ]\n for (const candidate of candidates) {\n if (this.vfs.existsSync(`${root}${candidate}`)) return candidate\n }\n return `/node_modules/${pkgName}/${subPath}`\n }\n\n // Root import: resolve entry point\n if (pkgJson?.exports && typeof pkgJson.exports === \"object\") {\n const entry = this.resolveExportsEntry(pkgJson.exports as Record<string, unknown>, \".\")\n if (entry) return `/node_modules/${pkgName}/${stripDotSlash(entry)}`\n }\n\n // \"module\" field (ESM entry)\n if (typeof pkgJson?.module === \"string\") {\n return `/node_modules/${pkgName}/${stripDotSlash(pkgJson.module)}`\n }\n\n // \"main\" field\n if (typeof pkgJson?.main === \"string\") {\n return `/node_modules/${pkgName}/${stripDotSlash(pkgJson.main)}`\n }\n\n // Fallback\n const fallbacks = [\n `/node_modules/${pkgName}/index.js`,\n `/node_modules/${pkgName}/index.mjs`,\n ]\n for (const fb of fallbacks) {\n if (this.vfs.existsSync(`${root}${fb}`)) return fb\n }\n\n return `/node_modules/${pkgName}/index.js`\n }\n\n private resolveExportsEntry(exports: Record<string, unknown>, key: string): string | null {\n const entry = exports[key]\n if (!entry) {\n // If exports is a single string (shorthand for \".\")\n if (key === \".\" && typeof exports === \"string\") return exports as unknown as string\n return null\n }\n\n return this.resolveConditionValue(entry)\n }\n\n /**\n * Handle wildcard exports like \"./*\" → { \"default\": { \"default\": \"./esm/* /index.js\" } }\n */\n private resolveWildcardExports(exports: Record<string, unknown>, subPath: string): string | null {\n const wildcardKey = \"./*\"\n const wildcardEntry = exports[wildcardKey]\n if (!wildcardEntry) return null\n\n const resolved = this.resolveConditionValue(wildcardEntry)\n if (!resolved) return null\n\n // Replace * with the actual sub-path\n return resolved.replace(/\\*/g, subPath)\n }\n\n /**\n * Recursively resolve a condition value from an exports entry.\n * Handles: string, { import, module, default, require }, and nested conditions.\n * Skips \"types\" conditions since we need JS, not .d.ts files.\n *\n * Priority: browser > module > import > default > require\n * \"browser\" and \"module\" are preferred because they point to true ESM bundles.\n * \"import\" is deprioritised because some packages (e.g. @emotion/*) map it to\n * a CJS-to-ESM wrapper (.cjs.mjs) that uses require()/exports which fails\n * in a browser context.\n */\n private resolveConditionValue(value: unknown): string | null {\n if (typeof value === \"string\") return value\n if (typeof value !== \"object\" || value === null) return null\n\n const conditions = value as Record<string, unknown>\n for (const condition of [\"browser\", \"module\", \"import\", \"default\", \"require\"]) {\n const condValue = conditions[condition]\n if (condValue === undefined) continue\n // Skip types-only entries\n if (condition === \"types\") continue\n const resolved = this.resolveConditionValue(condValue)\n if (resolved && !resolved.endsWith(\".d.ts\") && !resolved.endsWith(\".d.cts\") && !resolved.endsWith(\".d.mts\")) {\n return resolved\n }\n }\n return null\n }\n\n /**\n * Rewrite bare import specifiers in JavaScript source to /node_modules/... paths.\n * When virtualPrefix is provided (e.g. \"/__virtual__/5173\"), prepends it to\n * resolved paths so the browser stays within the service-worker-routed URL\n * namespace and cascading relative imports keep going through the SW.\n */\n rewriteBareImports(code: string, root: string, virtualPrefix = \"\"): string {\n // Match: import ... from 'specifier' / import 'specifier' / export ... from 'specifier'\n // Also dynamic: import('specifier')\n // Must NOT match relative (./ ../) or absolute (/) or URLs (http:// https://)\n //\n // Strip comments (but NOT strings — specifiers live in strings) then\n // run the import/export regex. To avoid false matches inside string\n // literals (e.g. \"forgot to export from the file\"), we require the\n // import/export keyword to appear at statement level: preceded by\n // line-start, semicolon, or opening brace.\n // Build a comment-free copy (same length, offsets preserved) so\n // the import/export regex doesn't match inside comments. Strings\n // are kept intact because specifiers live inside them. Regex\n // literals are NOT handled — their `//` can be falsely blanked —\n // so we must match on commentFree but apply edits to the original\n // `code` using the same offsets.\n const commentFree = code.replace(\n /(\"(?:[^\"\\\\]|\\\\.)*\"|'(?:[^'\\\\]|\\\\.)*'|`(?:[^`\\\\]|\\\\.)*`|\\/\\*[\\s\\S]*?\\*\\/|\\/\\/[^\\n]*)/g,\n (m) => {\n if (m.startsWith(\"/*\") || m.startsWith(\"//\")) return \" \".repeat(m.length)\n return m\n },\n )\n\n // Find matches on commentFree, apply replacements to original code\n const importRe = /((?:^|[;\\n{])\\s*(?:import|export)\\s+(?:[\\s\\S]*?\\s+from\\s+|)|(?:import\\s*\\())(['\"])([^'\".\\\\/][^'\"]*)\\2/gm\n let result = code\n let offset = 0\n let m: RegExpExecArray | null\n while ((m = importRe.exec(commentFree)) !== null) {\n const [fullMatch, prefix, quote, specifier] = m\n // Skip URLs\n if (/^https?:\\/\\//.test(specifier)) continue\n // Skip already-resolved paths\n if (specifier.startsWith(\"/\")) continue\n\n const resolved = this.resolveBarePkgEntry(specifier, root)\n if (!resolved) continue\n\n const replacement = `${prefix}${quote}${virtualPrefix}${resolved}${quote}`\n const start = m.index + offset\n const end = start + fullMatch.length\n result = result.slice(0, start) + replacement + result.slice(end)\n offset += replacement.length - fullMatch.length\n }\n return result\n }\n\n private async serveExistingVirtualStaticFile<TBody extends { length: number }>(\n root: string,\n requestUrl: string,\n bufferCtor: { from(input: string | Uint8Array): TBody },\n ): Promise<{\n statusCode: number\n statusMessage: string\n headers: Record<string, string>\n body: TBody\n resolvedPath: string\n } | null> {\n const basePath = normalizePath(path.join(root, getRequestPathname(requestUrl)))\n\n // When the request has no file extension, try common JS extensions\n // and also resolve directory package.json entry points\n const hasExtension = /\\.[a-zA-Z0-9]+$/.test(path.basename(basePath))\n let candidates: string[]\n if (hasExtension) {\n candidates = [basePath]\n } else {\n candidates = [basePath, `${basePath}.js`, `${basePath}.mjs`, `${basePath}.jsx`, `${basePath}/index.js`, `${basePath}/index.mjs`]\n const pkgPath = `${basePath}/package.json`\n\n try {\n if (this.vfs.existsSync(pkgPath)) {\n const raw = this.vfs.readFileSync(pkgPath, \"utf8\")\n const pkg = this.parseCachedPackageJson(pkgPath, raw)\n const entry = pkg\n ? (typeof pkg.module === \"string\" && pkg.module) || (typeof pkg.main === \"string\" && pkg.main)\n : null\n if (entry) candidates.push(normalizePath(path.join(basePath, entry)))\n }\n } catch { /* ignore */ }\n\n try {\n if (await this.fs.exists(pkgPath)) {\n const raw = await this.fs.readFile(pkgPath, \"utf-8\")\n const pkg = this.parseCachedPackageJson(pkgPath, raw as string)\n const entry = pkg\n ? (typeof pkg.module === \"string\" && pkg.module) || (typeof pkg.main === \"string\" && pkg.main)\n : null\n if (entry) candidates.push(normalizePath(path.join(basePath, entry)))\n }\n } catch { /* ignore */ }\n }\n\n // Try VFS first (already-loaded files)\n for (const targetPath of candidates) {\n try {\n const stat = this.vfs.statSync(targetPath)\n if (stat.isDirectory()) {\n continue\n }\n\n const content = this.vfs.readFileSync(targetPath)\n const body = typeof content === \"string\"\n ? bufferCtor.from(content)\n : bufferCtor.from(content)\n\n return {\n statusCode: 200,\n statusMessage: \"OK\",\n headers: {\n \"Content-Type\": getStaticMimeType(targetPath),\n \"Content-Length\": String(body.length),\n \"Cache-Control\": \"no-cache\",\n },\n body,\n resolvedPath: targetPath,\n }\n } catch {\n // not in VFS – continue trying\n }\n }\n\n // On-demand: load from observable FS (lazy files hydrated from server)\n for (const targetPath of candidates) {\n try {\n if (!(await this.fs.exists(targetPath))) {\n continue\n }\n\n const stat = await this.fs.stat(targetPath)\n if (stat.isDirectory) {\n continue\n }\n\n const content = await this.fs.readFileBuffer(targetPath)\n\n // Populate VFS so subsequent requests are fast\n this._vfs.withoutMirror(() => {\n this._vfs.mkdirSync(path.dirname(targetPath), { recursive: true })\n this._vfs.writeFileSync(targetPath, content)\n })\n\n const body = bufferCtor.from(content)\n\n return {\n statusCode: 200,\n statusMessage: \"OK\",\n headers: {\n \"Content-Type\": getStaticMimeType(targetPath),\n \"Content-Length\": String(body.length),\n \"Cache-Control\": \"no-cache\",\n },\n body,\n resolvedPath: targetPath,\n }\n } catch {\n // continue trying next candidate\n }\n }\n\n return null\n }\n\n private stopViteServer(): void {\n if (this.viteServer) {\n this.viteServer.stop()\n this.viteServer = undefined\n }\n\n if (this.vitePort !== null) {\n try {\n getServerBridge().unregisterServer(this.vitePort)\n } catch {\n // ignore if not registered\n }\n }\n\n this.vitePort = null\n this.vitePreviewUrl = null\n this.vitePreviewListener?.(null)\n }\n\n private resolveBinFromPackageJson(\n binName: string,\n packageName: string,\n pkgJson: Record<string, unknown>,\n pkgDir: string,\n ): string | null {\n if (typeof pkgJson.bin === \"string\") {\n const inferredBinName = typeof pkgJson.name === \"string\"\n ? pkgJson.name.split(\"/\").pop() ?? pkgJson.name\n : packageName.split(\"/\").pop() ?? packageName\n\n if (binName === inferredBinName) {\n return normalizePath(path.join(pkgDir, pkgJson.bin))\n }\n }\n\n if (typeof pkgJson.bin === \"object\" && pkgJson.bin !== null && binName in pkgJson.bin) {\n const namedBins = pkgJson.bin as Record<string, string>\n return normalizePath(path.join(pkgDir, namedBins[binName]))\n }\n\n return null\n }\n\n private async resolveNpmBinPath(binName: string, cwd: string): Promise<string | null> {\n const candidatePackageNames = [binName]\n const packageJsonResult = await this.readPackageJson(cwd)\n\n if (\"pkgJson\" in packageJsonResult) {\n for (const packageName of getPackageJsonDependencyNames(packageJsonResult.pkgJson)) {\n if (!candidatePackageNames.includes(packageName)) {\n candidatePackageNames.push(packageName)\n }\n }\n }\n\n // Check local node_modules first\n for (const packageName of candidatePackageNames) {\n const pkgJsonPath = normalizePath(path.join(cwd, \"node_modules\", packageName, \"package.json\"))\n\n if (!(await this.fs.exists(pkgJsonPath))) {\n continue\n }\n\n try {\n const content = await this.fs.readFile(pkgJsonPath, \"utf-8\")\n const pkgJson = this.parseCachedPackageJson(pkgJsonPath, content as string)\n if (!pkgJson) {\n continue\n }\n\n const pkgDir = normalizePath(path.join(cwd, \"node_modules\", packageName))\n const result = this.resolveBinFromPackageJson(binName, packageName, pkgJson, pkgDir)\n if (result) return result\n } catch {\n // ignore parse errors\n }\n }\n\n // Fallback: check global node_modules\n const globalResult = await this.resolveGlobalBinPath(binName)\n if (globalResult) return globalResult\n\n return null\n }\n\n private async resolveGlobalBinPath(binName: string): Promise<string | null> {\n try {\n const globalModulesDir = GLOBAL_NODE_MODULES_ROOT\n if (!this._vfs.existsSync(globalModulesDir)) return null\n\n const globalPackages = this._vfs.readdirSync(globalModulesDir)\n for (const entry of globalPackages) {\n const packageName = entry\n const pkgJsonPath = normalizePath(path.join(globalModulesDir, packageName, \"package.json\"))\n\n if (!this._vfs.existsSync(pkgJsonPath)) {\n // Check for scoped packages\n if (entry.startsWith(\"@\")) {\n try {\n const scopeDir = normalizePath(path.join(globalModulesDir, entry))\n const scopedPackages = this._vfs.readdirSync(scopeDir)\n for (const scopedPkg of scopedPackages) {\n const scopedName = `${entry}/${scopedPkg}`\n const scopedPkgJsonPath = normalizePath(path.join(globalModulesDir, scopedName, \"package.json\"))\n if (!this._vfs.existsSync(scopedPkgJsonPath)) continue\n\n const raw = this._vfs.readFileSync(scopedPkgJsonPath, \"utf8\")\n const pkgJson = this.parseCachedPackageJson(scopedPkgJsonPath, raw)\n if (!pkgJson) continue\n\n const pkgDir = normalizePath(path.join(globalModulesDir, scopedName))\n const result = this.resolveBinFromPackageJson(binName, scopedName, pkgJson, pkgDir)\n if (result) return result\n }\n } catch { /* ignore */ }\n }\n continue\n }\n\n try {\n const raw = this._vfs.readFileSync(pkgJsonPath, \"utf8\")\n const pkgJson = this.parseCachedPackageJson(pkgJsonPath, raw)\n if (!pkgJson) continue\n\n const pkgDir = normalizePath(path.join(globalModulesDir, packageName))\n const result = this.resolveBinFromPackageJson(binName, packageName, pkgJson, pkgDir)\n if (result) return result\n } catch { /* ignore */ }\n }\n } catch { /* ignore */ }\n\n return null\n }\n\n /**\n * Replace lru-cache CJS entry points with a browser-safe implementation.\n *\n * lru-cache v11's minified CJS uses `require(\"node:diagnostics_channel\")`\n * and private class fields (`static #t`) which can fail inside the browser\n * WASM runtime's `eval()` context, leaving `exports.LRUCache` undefined\n * (\"TypeError: LRUCache is not a constructor\").\n *\n * The fix: overwrite the CJS entry with a clean Map-based LRU cache that\n * covers the full API surface used by lru-cache consumers (hosted-git-info,\n * path-scurry, glob, etc.) without any diagnostics_channel dependency or\n * private class fields.\n */\n private patchLruCacheInNodeModules(nodeModulesDir: string): void {\n const lruCacheShim = `\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LRUCache = void 0;\nvar LRUCache = (function () {\n function LRUCache(options) {\n if (typeof options === \"number\") options = { max: options };\n if (!options) options = {};\n this._max = options.max || Infinity;\n this._maxSize = options.maxSize || 0;\n this._sizeCalculation = options.sizeCalculation || null;\n this._dispose = options.dispose || null;\n this._allowStale = !!options.allowStale;\n this._ttl = options.ttl || 0;\n this._noUpdateTTL = !!options.noUpdateTTL;\n this._map = new Map();\n this._order = [];\n this._sizes = new Map();\n this._totalSize = 0;\n this._timers = new Map();\n }\n Object.defineProperty(LRUCache.prototype, \"size\", { get: function () { return this._map.size; } });\n Object.defineProperty(LRUCache.prototype, \"max\", { get: function () { return this._max; } });\n Object.defineProperty(LRUCache.prototype, \"maxSize\", { get: function () { return this._maxSize; } });\n Object.defineProperty(LRUCache.prototype, \"calculatedSize\", { get: function () { return this._totalSize; } });\n LRUCache.prototype._touch = function (key) {\n var idx = this._order.indexOf(key);\n if (idx > -1) this._order.splice(idx, 1);\n this._order.push(key);\n };\n LRUCache.prototype._evict = function () {\n while (this._order.length > 0 && (this._map.size > this._max || (this._maxSize > 0 && this._totalSize > this._maxSize))) {\n var oldest = this._order.shift();\n if (oldest !== undefined && this._map.has(oldest)) {\n var val = this._map.get(oldest);\n this._map.delete(oldest);\n if (this._sizes.has(oldest)) { this._totalSize -= this._sizes.get(oldest); this._sizes.delete(oldest); }\n if (this._timers.has(oldest)) { clearTimeout(this._timers.get(oldest)); this._timers.delete(oldest); }\n if (this._dispose) this._dispose(val, oldest, \"evict\");\n }\n }\n };\n LRUCache.prototype._isStale = function (key) {\n return false; // TTL timers handle expiry via delete\n };\n LRUCache.prototype.set = function (key, value, options) {\n if (value === undefined) { this.delete(key); return this; }\n var opts = options || {};\n var size = 0;\n if (this._maxSize > 0) {\n size = opts.size || 0;\n if (!size && this._sizeCalculation) size = this._sizeCalculation(value, key);\n if (size > this._maxSize) return this;\n }\n if (this._map.has(key)) {\n var old = this._map.get(key);\n if (this._sizes.has(key)) { this._totalSize -= this._sizes.get(key); }\n if (this._timers.has(key)) { clearTimeout(this._timers.get(key)); this._timers.delete(key); }\n if (this._dispose && !opts.noDisposeOnSet) this._dispose(old, key, \"set\");\n }\n this._map.set(key, value);\n this._touch(key);\n if (this._maxSize > 0 && size > 0) { this._sizes.set(key, size); this._totalSize += size; }\n var ttl = opts.ttl !== undefined ? opts.ttl : this._ttl;\n if (ttl > 0) {\n var self = this;\n this._timers.set(key, setTimeout(function () { self.delete(key); }, ttl));\n }\n this._evict();\n return this;\n };\n LRUCache.prototype.get = function (key, options) {\n if (!this._map.has(key)) return undefined;\n var value = this._map.get(key);\n this._touch(key);\n return value;\n };\n LRUCache.prototype.peek = function (key) {\n return this._map.get(key);\n };\n LRUCache.prototype.has = function (key) {\n return this._map.has(key);\n };\n LRUCache.prototype.delete = function (key) {\n if (!this._map.has(key)) return false;\n var val = this._map.get(key);\n this._map.delete(key);\n var idx = this._order.indexOf(key);\n if (idx > -1) this._order.splice(idx, 1);\n if (this._sizes.has(key)) { this._totalSize -= this._sizes.get(key); this._sizes.delete(key); }\n if (this._timers.has(key)) { clearTimeout(this._timers.get(key)); this._timers.delete(key); }\n if (this._dispose) this._dispose(val, key, \"delete\");\n return true;\n };\n LRUCache.prototype.clear = function () {\n var self = this;\n if (this._dispose) {\n this._map.forEach(function (val, key) { self._dispose(val, key, \"delete\"); });\n }\n this._timers.forEach(function (t) { clearTimeout(t); });\n this._map.clear();\n this._order.length = 0;\n this._sizes.clear();\n this._totalSize = 0;\n this._timers.clear();\n };\n LRUCache.prototype.keys = function () { return this._map.keys(); };\n LRUCache.prototype.values = function () { return this._map.values(); };\n LRUCache.prototype.entries = function () { return this._map.entries(); };\n LRUCache.prototype.find = function (fn, options) {\n for (var it = this._map.entries(), r; !(r = it.next()).done;) {\n if (fn(r.value[1], r.value[0], this)) return this.get(r.value[0], options);\n }\n };\n LRUCache.prototype.forEach = function (fn, thisArg) {\n var self = this;\n this._map.forEach(function (val, key) { fn.call(thisArg || self, val, key, self); });\n };\n LRUCache.prototype.dump = function () { return []; };\n LRUCache.prototype.load = function (arr) {\n this.clear();\n for (var i = 0; i < arr.length; i++) { this.set(arr[i][0], arr[i][1].value, arr[i][1]); }\n };\n LRUCache.prototype.pop = function () {\n if (this._order.length === 0) return undefined;\n var oldest = this._order[0];\n var val = this._map.get(oldest);\n this.delete(oldest);\n return val;\n };\n LRUCache.prototype.purgeStale = function () { return false; };\n LRUCache.prototype.getRemainingTTL = function (key) { return this._map.has(key) ? Infinity : 0; };\n LRUCache.prototype.info = function (key) {\n if (!this._map.has(key)) return undefined;\n return { value: this._map.get(key) };\n };\n LRUCache.prototype[Symbol.iterator] = function () { return this._map.entries(); };\n LRUCache.prototype[Symbol.toStringTag] = \"LRUCache\";\n return LRUCache;\n})();\nexports.LRUCache = LRUCache;\n`\n\n const patchDir = (lruDir: string) => {\n // Overwrite all possible CJS entry points\n const cjsPaths = [\n normalizePath(path.join(lruDir, \"dist\", \"commonjs\", \"index.min.js\")),\n normalizePath(path.join(lruDir, \"dist\", \"commonjs\", \"index.js\")),\n // Also try the package root index (lru-cache v7 style)\n normalizePath(path.join(lruDir, \"index.js\")),\n ]\n let patched = false\n for (const p of cjsPaths) {\n if (this._vfs.existsSync(p)) {\n this._vfs.writeFileSync(p, lruCacheShim)\n patched = true\n }\n }\n // If no known entry was found, check package.json for the actual main field\n if (!patched) {\n const pkgPath = normalizePath(path.join(lruDir, \"package.json\"))\n if (this._vfs.existsSync(pkgPath)) {\n try {\n const pkg = JSON.parse(this._vfs.readFileSync(pkgPath, \"utf8\") as string)\n const mainField = pkg.main || pkg.exports?.[\".\"]?.require?.default || pkg.exports?.[\".\"]?.require\n if (mainField && typeof mainField === \"string\") {\n const mainPath = normalizePath(path.join(lruDir, mainField))\n if (this._vfs.existsSync(mainPath)) {\n this._vfs.writeFileSync(mainPath, lruCacheShim)\n patched = true\n }\n }\n } catch { /* ignore parse errors */ }\n }\n }\n return patched\n }\n\n // Recursively find all lru-cache directories in node_modules\n let patchCount = 0\n const walkNodeModules = (nmDir: string) => {\n if (!this._vfs.existsSync(nmDir)) return\n let entries: string[]\n try {\n entries = this._vfs.readdirSync(nmDir)\n } catch { return }\n for (const entry of entries) {\n if (entry === \"lru-cache\") {\n const lruDir = normalizePath(path.join(nmDir, \"lru-cache\"))\n if (patchDir(lruDir)) patchCount++\n }\n // Scoped packages (@scope/pkg)\n if (entry.startsWith(\"@\")) {\n const scopeDir = normalizePath(path.join(nmDir, entry))\n try {\n for (const scopedEntry of this._vfs.readdirSync(scopeDir)) {\n // Check for lru-cache nested inside scoped package\n const nestedNm = normalizePath(path.join(scopeDir, scopedEntry, \"node_modules\"))\n if (this._vfs.existsSync(nestedNm)) {\n walkNodeModules(nestedNm)\n }\n }\n } catch { /* ignore */ }\n } else {\n // Check nested node_modules inside each package\n const nestedNm = normalizePath(path.join(nmDir, entry, \"node_modules\"))\n if (this._vfs.existsSync(nestedNm)) {\n walkNodeModules(nestedNm)\n }\n }\n }\n }\n\n walkNodeModules(nodeModulesDir)\n\n if (patchCount === 0) {\n console.warn(`[agent-web-os] lru-cache patch: no lru-cache found in ${nodeModulesDir}`)\n } else {\n console.log(`[agent-web-os] lru-cache patch: patched ${patchCount} installation(s) in ${nodeModulesDir}`)\n }\n }\n\n private async registerGlobalBinCommands(packageName: string): Promise<void> {\n if (!this.binCommandRegistrar) return\n\n const pkgJsonPath = normalizePath(path.join(GLOBAL_NODE_MODULES_ROOT, packageName, \"package.json\"))\n if (!this._vfs.existsSync(pkgJsonPath)) return\n\n try {\n const raw = this._vfs.readFileSync(pkgJsonPath, \"utf8\")\n const pkgJson = this.parseCachedPackageJson(pkgJsonPath, raw)\n if (!pkgJson) return\n\n let binNames: string[]\n if (typeof pkgJson.bin === \"string\") {\n const name = typeof pkgJson.name === \"string\"\n ? pkgJson.name.split(\"/\").pop() ?? \"\"\n : \"\"\n binNames = name ? [name] : []\n } else if (typeof pkgJson.bin === \"object\" && pkgJson.bin !== null) {\n binNames = Object.keys(pkgJson.bin)\n } else {\n binNames = []\n }\n\n for (const binName of binNames) {\n if (this.registeredBinCommands.has(binName)) continue\n this.registeredBinCommands.add(binName)\n\n this.binCommandRegistrar(binName, async (args, ctx) => {\n const resolvedPath = await this.resolveGlobalBinPath(binName)\n ?? await this.resolveNpmBinPath(binName, normalizePath(ctx.cwd))\n if (!resolvedPath) {\n return {\n stdout: \"\",\n stderr: `bash: ${binName}: command not found\\n`,\n exitCode: 127,\n }\n }\n\n return this.executeNode([resolvedPath, ...args], ctx)\n })\n }\n } catch { /* ignore */ }\n }\n\n private async resolveAndRegisterBinCommands(command: string, cwd: string): Promise<void> {\n if (!this.binCommandRegistrar) {\n return\n }\n\n const potentialBins = command.split(/&&|\\|\\||;|\\|/).flatMap((part) => {\n const words = part.trim().split(/\\s+/)\n for (const word of words) {\n if (!word || word.includes(\"=\") || word.startsWith(\"/\") || word.startsWith(\"./\") || word.startsWith(\"..\")) {\n continue\n }\n\n return [word]\n }\n\n return []\n })\n\n for (const binName of potentialBins) {\n if (this.registeredBinCommands.has(binName)) {\n continue\n }\n\n const binPath = await this.resolveNpmBinPath(binName, cwd)\n if (!binPath) {\n continue\n }\n\n this.registeredBinCommands.add(binName)\n\n if (binName === \"vite\") {\n this.binCommandRegistrar(binName, async (args, ctx) => {\n return this.executeVite(args, ctx)\n })\n continue\n }\n\n this.binCommandRegistrar(binName, async (args, ctx) => {\n const resolvedPath = await this.resolveNpmBinPath(binName, normalizePath(ctx.cwd))\n if (!resolvedPath) {\n return {\n stdout: \"\",\n stderr: `bash: ${binName}: command not found\\n`,\n exitCode: 127,\n }\n }\n\n return this.executeNode([resolvedPath, ...args], ctx)\n })\n }\n }\n\n private trackOperation(operation: Promise<void>): Promise<void> {\n this.pendingOperations.add(operation)\n\n return operation.finally(() => {\n this.pendingOperations.delete(operation)\n })\n }\n\n private async flushPendingOperations(): Promise<void> {\n while (this.pendingOperations.size > 0) {\n await Promise.all(Array.from(this.pendingOperations))\n }\n }\n\n private async withSuppressedObservableMirroring<T>(operation: () => Promise<T>): Promise<T> {\n this.suppressObservableMirrorCount += 1\n\n try {\n return await operation()\n } finally {\n this.suppressObservableMirrorCount -= 1\n }\n }\n\n private async copyObservablePathIntoVirtualFs(targetPath: string, options?: { force?: boolean }): Promise<void> {\n const normalizedPath = normalizePath(targetPath)\n if (isInternalAlmostNodePath(normalizedPath)) {\n return\n }\n\n if (!options?.force && this.fs.isPathLazy(normalizedPath)) {\n return\n }\n\n try {\n const stat = await this.fs.stat(normalizedPath)\n\n if (stat.isDirectory) {\n this._vfs.withoutMirror(() => {\n this._vfs.mkdirSync(normalizedPath, { recursive: true })\n })\n return\n }\n\n const content = await this.fs.readFileBuffer(normalizedPath)\n this._vfs.withoutMirror(() => {\n this._vfs.mkdirSync(path.dirname(normalizedPath), { recursive: true })\n this._vfs.writeFileSync(normalizedPath, content)\n })\n } catch {\n this._vfs.withoutMirror(() => {\n removeVirtualPath(this._vfs, normalizedPath)\n })\n }\n }\n\n private getNodeModulesPackageRoot(targetPath: string): string | null {\n const normalizedPath = normalizePath(targetPath)\n const nodeModulesMarker = \"/node_modules/\"\n const nodeModulesIndex = normalizedPath.indexOf(nodeModulesMarker)\n\n if (nodeModulesIndex === -1) {\n return null\n }\n\n const packageSegments = normalizedPath.slice(nodeModulesIndex + nodeModulesMarker.length).split(\"/\").filter(Boolean)\n if (packageSegments.length === 0) {\n return null\n }\n\n const packageNameSegments = packageSegments[0]?.startsWith(\"@\")\n ? packageSegments.slice(0, 2)\n : packageSegments.slice(0, 1)\n\n if (packageNameSegments.length === 0) {\n return null\n }\n\n return normalizePath(`${normalizedPath.slice(0, nodeModulesIndex + nodeModulesMarker.length)}${packageNameSegments.join(\"/\")}`)\n }\n\n private async hydrateObservablePackageIntoVirtualFs(packageRoot: string): Promise<void> {\n const normalizedPackageRoot = normalizePath(packageRoot)\n const packagePaths = Array.from(new Set(this.fs.getAllPaths().map((targetPath) => normalizePath(targetPath))))\n .filter((targetPath) => targetPath === normalizedPackageRoot || targetPath.startsWith(`${normalizedPackageRoot}/`))\n .sort((leftPath, rightPath) => leftPath.split(\"/\").length - rightPath.split(\"/\").length)\n\n await this.hydrateObservablePathsIntoVirtualFs(packagePaths)\n }\n\n private async hydrateObservablePathsIntoVirtualFs(targetPaths: string[]): Promise<void> {\n const normalizedPaths = Array.from(new Set(targetPaths.map((targetPath) => normalizePath(targetPath))))\n .sort((leftPath, rightPath) => leftPath.split(\"/\").length - rightPath.split(\"/\").length)\n\n const lazyFilePaths: string[] = []\n\n for (const targetPath of normalizedPaths) {\n try {\n if (this.fs.isPathLazy(targetPath)) {\n lazyFilePaths.push(targetPath)\n continue\n }\n\n const stat = await this.fs.stat(targetPath)\n\n if (stat.isDirectory) {\n this._vfs.withoutMirror(() => {\n this._vfs.mkdirSync(targetPath, { recursive: true })\n })\n continue\n }\n\n await this.copyObservablePathIntoVirtualFs(targetPath, { force: true })\n } catch {\n // ignore paths that disappear during hydration\n }\n }\n\n if (lazyFilePaths.length === 0) {\n return\n }\n\n if (this.batchFileLoader) {\n const contents = await this.batchFileLoader(lazyFilePaths)\n\n await this.fs.suppressObservability(async () => {\n for (const [filePath, content] of contents) {\n this.fs.writeFileSync(filePath, content)\n }\n })\n\n this._vfs.withoutMirror(() => {\n for (const [filePath, content] of contents) {\n this._vfs.mkdirSync(path.dirname(filePath), { recursive: true })\n this._vfs.writeFileSync(filePath, content)\n }\n })\n\n const missingPaths = lazyFilePaths.filter((lazyPath) => !contents.has(lazyPath))\n for (const missingPath of missingPaths) {\n await this.copyObservablePathIntoVirtualFs(missingPath, { force: true })\n }\n return\n }\n\n for (const lazyPath of lazyFilePaths) {\n await this.copyObservablePathIntoVirtualFs(lazyPath, { force: true })\n }\n }\n\n private async hydrateObservableDependencyPackagesIntoVirtualFs(cwd: string): Promise<void> {\n const packageJsonResult = await this.readPackageJson(cwd)\n if (\"error\" in packageJsonResult) {\n return\n }\n\n const dependencyPaths: string[] = []\n\n for (const packageName of getPackageJsonDependencyNames(packageJsonResult.pkgJson)) {\n const packageRoot = normalizePath(path.join(cwd, \"node_modules\", packageName))\n\n if (!(await this.fs.exists(packageRoot))) {\n continue\n }\n\n for (const targetPath of this.fs.getAllPaths()) {\n const normalizedPath = normalizePath(targetPath)\n if (normalizedPath === packageRoot || normalizedPath.startsWith(`${packageRoot}/`)) {\n dependencyPaths.push(normalizedPath)\n }\n }\n }\n\n await this.hydrateObservablePathsIntoVirtualFs(dependencyPaths)\n }\n\n private async hydrateObservableProjectIntoVirtualFs(cwd: string): Promise<void> {\n const normalizedCwd = normalizePath(cwd)\n const cwdPrefix = normalizedCwd.endsWith(\"/\") ? normalizedCwd : `${normalizedCwd}/`\n const projectPaths = Array.from(new Set(this.fs.getAllPaths().map((targetPath) => normalizePath(targetPath))))\n .filter((targetPath) => {\n if (isInternalAlmostNodePath(targetPath)) {\n return false\n }\n\n if (targetPath !== normalizedCwd && !targetPath.startsWith(cwdPrefix)) {\n return false\n }\n\n return !targetPath.startsWith(`${cwdPrefix}node_modules/`)\n })\n .sort((leftPath, rightPath) => leftPath.split(\"/\").length - rightPath.split(\"/\").length)\n\n await this.hydrateObservablePathsIntoVirtualFs(projectPaths)\n }\n\n async applyVirtualWrite(targetPath: string, data: string | Uint8Array): Promise<void> {\n return this.trackOperation((async () => {\n const normalizedPath = normalizePath(targetPath)\n if (isInternalAlmostNodePath(normalizedPath)) {\n return\n }\n\n await this.withSuppressedObservableMirroring(async () => {\n await ensureObservableDirectory(this.fs, path.dirname(normalizedPath))\n await this.fs.writeFile(normalizedPath, data)\n })\n })())\n }\n\n async applyVirtualMkdir(targetPath: string): Promise<void> {\n return this.trackOperation((async () => {\n const normalizedPath = normalizePath(targetPath)\n if (isInternalAlmostNodePath(normalizedPath)) {\n return\n }\n\n await this.withSuppressedObservableMirroring(async () => {\n await this.fs.mkdir(normalizedPath, { recursive: true })\n })\n })())\n }\n\n async applyVirtualRemove(targetPath: string, recursive: boolean): Promise<void> {\n return this.trackOperation((async () => {\n const normalizedPath = normalizePath(targetPath)\n if (isInternalAlmostNodePath(normalizedPath)) {\n return\n }\n\n await this.withSuppressedObservableMirroring(async () => {\n await this.fs.rm(normalizedPath, { force: true, recursive })\n })\n })())\n }\n\n async applyVirtualRename(previousPath: string, nextPath: string): Promise<void> {\n return this.trackOperation((async () => {\n const normalizedPreviousPath = normalizePath(previousPath)\n const normalizedNextPath = normalizePath(nextPath)\n if (isInternalAlmostNodePath(normalizedPreviousPath) || isInternalAlmostNodePath(normalizedNextPath)) {\n return\n }\n\n await this.withSuppressedObservableMirroring(async () => {\n await ensureObservableDirectory(this.fs, path.dirname(normalizedNextPath))\n await this.fs.mv(normalizedPreviousPath, normalizedNextPath)\n })\n })())\n }\n\n private async ensureInitialized(): Promise<void> {\n if (this.initialized) {\n return\n }\n\n if (!this.initializePromise) {\n this.initializePromise = (async () => {\n const allPaths = Array.from(new Set(this.fs.getAllPaths().map((targetPath) => normalizePath(targetPath))))\n .filter((targetPath) => !isInternalAlmostNodePath(targetPath))\n .sort((leftPath, rightPath) => leftPath.split(\"/\").length - rightPath.split(\"/\").length)\n\n for (const targetPath of allPaths) {\n await this.copyObservablePathIntoVirtualFs(targetPath)\n }\n\n this.initialized = true\n })()\n }\n\n await this.initializePromise\n }\n\n private async readPackageJson(cwd: string): Promise<{ pkgJson: PackageJsonLike } | { error: ExecResult }> {\n const packageJsonPath = normalizePath(path.join(cwd, \"package.json\"))\n\n if (!this.vfs.existsSync(packageJsonPath)) {\n await this.copyObservablePathIntoVirtualFs(packageJsonPath, { force: true })\n }\n\n if (!this.vfs.existsSync(packageJsonPath)) {\n return {\n error: {\n stdout: \"\",\n stderr: \"npm ERR! no package.json found\\n\",\n exitCode: 1,\n },\n }\n }\n\n try {\n return {\n pkgJson: (this.parseCachedPackageJson(packageJsonPath, this.vfs.readFileSync(packageJsonPath, \"utf8\")) ?? {}) as PackageJsonLike,\n }\n } catch {\n return {\n error: {\n stdout: \"\",\n stderr: \"npm ERR! Failed to parse package.json\\n\",\n exitCode: 1,\n },\n }\n }\n }\n\n private async runNpmScript(scriptName: string | undefined, cwd: string, ctx: CommandContext): Promise<ExecResult> {\n if (!scriptName) {\n const packageJsonResult = await this.readPackageJson(cwd)\n if (\"error\" in packageJsonResult) {\n return packageJsonResult.error\n }\n\n const scripts = packageJsonResult.pkgJson.scripts || {}\n const scriptNames = Object.keys(scripts)\n if (scriptNames.length === 0) {\n return { stdout: \"\", stderr: \"\", exitCode: 0 }\n }\n\n const lifecycleScripts = new Set([\n \"prestart\",\n \"start\",\n \"poststart\",\n \"pretest\",\n \"test\",\n \"posttest\",\n \"prestop\",\n \"stop\",\n \"poststop\",\n ])\n const lifecycleNames = scriptNames.filter((name) => lifecycleScripts.has(name))\n const customNames = scriptNames.filter((name) => !lifecycleScripts.has(name))\n\n let stdout = `Lifecycle scripts included in ${packageJsonResult.pkgJson.name || \"\"}:\\n`\n for (const listedScriptName of lifecycleNames) {\n stdout += ` ${listedScriptName}\\n ${scripts[listedScriptName]}\\n`\n }\n\n if (customNames.length > 0) {\n stdout += \"\\navailable via `npm run-script`:\\n\"\n for (const listedScriptName of customNames) {\n stdout += ` ${listedScriptName}\\n ${scripts[listedScriptName]}\\n`\n }\n }\n\n return { stdout, stderr: \"\", exitCode: 0 }\n }\n\n const packageJsonResult = await this.readPackageJson(cwd)\n if (\"error\" in packageJsonResult) {\n return packageJsonResult.error\n }\n\n const { pkgJson } = packageJsonResult\n const scripts = pkgJson.scripts || {}\n const scriptCommand = scripts[scriptName]\n if (!scriptCommand) {\n const availableScripts = Object.keys(scripts)\n let stderr = `npm ERR! Missing script: \"${scriptName}\"\\n`\n\n if (availableScripts.length > 0) {\n stderr += \"\\nnpm ERR! Available scripts:\\n\"\n for (const availableScript of availableScripts) {\n stderr += `npm ERR! ${availableScript}\\n`\n stderr += `npm ERR! ${scripts[availableScript]}\\n`\n }\n }\n\n return { stdout: \"\", stderr, exitCode: 1 }\n }\n\n if (!ctx.exec) {\n return {\n stdout: \"\",\n stderr: \"npm ERR! Script execution not available in this context\\n\",\n exitCode: 1,\n }\n }\n\n await this.resolveAndRegisterBinCommands(scriptCommand, cwd)\n\n const preScriptCommand = scripts[`pre${scriptName}`]\n if (preScriptCommand) {\n await this.resolveAndRegisterBinCommands(preScriptCommand, cwd)\n }\n\n const postScriptCommand = scripts[`post${scriptName}`]\n if (postScriptCommand) {\n await this.resolveAndRegisterBinCommands(postScriptCommand, cwd)\n }\n\n const execCommand = ctx.exec\n\n const baseEnv = getCommandEnvironment(ctx)\n const npmEnv: Record<string, string> = {\n ...baseEnv,\n npm_lifecycle_event: scriptName,\n PATH: Array.from(new Set([\n normalizePath(path.join(cwd, \"node_modules/.bin\")),\n \"/node_modules/.bin\",\n `${GLOBAL_NODE_MODULES_ROOT}/.bin`,\n ...(baseEnv.PATH?.trim() || DEFAULT_PATH).split(\":\").filter(Boolean),\n ])).join(\":\"),\n }\n\n if (pkgJson.name) {\n npmEnv.npm_package_name = pkgJson.name\n }\n\n if (pkgJson.version) {\n npmEnv.npm_package_version = pkgJson.version\n }\n\n let stdout = \"\"\n let stderr = \"\"\n const label = `${pkgJson.name || \"\"}@${pkgJson.version || \"\"}`\n\n const runScript = async (name: string, command: string) => {\n stderr += `\\n> ${label} ${name}\\n> ${command}\\n\\n`\n const result = await execCommand(command, { cwd, env: npmEnv })\n stdout += result.stdout\n stderr += result.stderr\n return result\n }\n\n if (preScriptCommand) {\n const preResult = await runScript(`pre${scriptName}`, preScriptCommand)\n if (preResult.exitCode !== 0) {\n return { stdout, stderr, exitCode: preResult.exitCode }\n }\n }\n\n const mainResult = await runScript(scriptName, scriptCommand)\n if (mainResult.exitCode !== 0) {\n return { stdout, stderr, exitCode: mainResult.exitCode }\n }\n\n if (postScriptCommand) {\n const postResult = await runScript(`post${scriptName}`, postScriptCommand)\n if (postResult.exitCode !== 0) {\n return { stdout, stderr, exitCode: postResult.exitCode }\n }\n }\n\n return { stdout, stderr, exitCode: 0 }\n }\n\n async executeNpm(args: string[], ctx: CommandContext): Promise<ExecResult> {\n const cwd = normalizePath(ctx.cwd)\n\n await this.ensureInitialized()\n await this.flushPendingOperations()\n\n const subcommand = args[0]\n let result: ExecResult\n\n switch (subcommand) {\n case undefined:\n case \"help\":\n case \"--help\":\n result = { stdout: `${NPM_USAGE}\\n`, stderr: \"\", exitCode: 0 }\n break\n case \"-v\":\n case \"--version\":\n result = { stdout: `${ALMOSTNODE_NPM_VERSION}\\n`, stderr: \"\", exitCode: 0 }\n break\n case \"run\":\n case \"run-script\":\n result = await this.runNpmScript(args[1], cwd, ctx)\n break\n case \"start\":\n result = await this.runNpmScript(\"start\", cwd, ctx)\n break\n case \"test\":\n case \"t\":\n case \"tst\":\n result = await this.runNpmScript(\"test\", cwd, ctx)\n break\n case \"install\":\n case \"i\":\n case \"add\": {\n const isGlobal = args.includes(\"-g\") || args.includes(\"--global\")\n const packageSpecs = args.slice(1).filter((arg) => !arg.startsWith(\"-\"))\n let stdout = \"\"\n\n try {\n if (isGlobal) {\n if (packageSpecs.length === 0) {\n result = { stdout: \"\", stderr: \"npm ERR! npm install -g requires a package name\\n\", exitCode: 1 }\n break\n }\n\n await ensureEsbuildWasm()\n\n // Ensure the global node_modules directory exists\n this._vfs.mkdirSync(GLOBAL_NODE_MODULES_ROOT, { recursive: true })\n await ensureObservableDirectory(this.fs, GLOBAL_NODE_MODULES_ROOT)\n\n // Ensure a minimal package.json exists at the global prefix\n const globalPkgJsonPath = normalizePath(path.join(GLOBAL_NODE_MODULES_ROOT, \"..\", \"package.json\"))\n if (!this._vfs.existsSync(globalPkgJsonPath)) {\n const minimalPkg = JSON.stringify({ name: \"global\", version: \"0.0.0\", private: true }, null, 2)\n this._vfs.mkdirSync(path.dirname(globalPkgJsonPath), { recursive: true })\n this._vfs.writeFileSync(globalPkgJsonPath, minimalPkg)\n await this.withSuppressedObservableMirroring(async () => {\n await ensureObservableDirectory(this.fs, path.dirname(globalPkgJsonPath))\n await this.fs.writeFile(globalPkgJsonPath, minimalPkg)\n })\n }\n\n const globalCwd = normalizePath(path.join(GLOBAL_NODE_MODULES_ROOT, \"..\"))\n const packageManager = new PackageManager(this.vfs as unknown as VirtualFS, { cwd: globalCwd })\n\n for (const packageSpec of packageSpecs) {\n const installResult = await packageManager.install(packageSpec, {\n save: true,\n onProgress: (message) => {\n const line = `${message}\\n`\n stdout += line\n this.stdoutWriter?.(line)\n },\n })\n stdout += `added ${installResult.added.length} packages\\n`\n\n // Register bin commands from the installed global package\n const installedPkgName = packageSpec.replace(/@[^/]*$/, \"\") || packageSpec\n await this.registerGlobalBinCommands(installedPkgName)\n\n // Also try to register by checking what was actually installed\n for (const added of installResult.added) {\n const addedName = typeof added === \"string\" ? String(added).replace(/@[^/]*$/, \"\") : (added as { name?: string })?.name\n if (addedName && addedName !== installedPkgName) {\n await this.registerGlobalBinCommands(addedName)\n }\n }\n }\n\n // Patch lru-cache to avoid diagnostics_channel crash in browser\n this.patchLruCacheInNodeModules(GLOBAL_NODE_MODULES_ROOT)\n\n result = { stdout, stderr: \"\", exitCode: 0 }\n } else {\n const packageJsonResult = await this.readPackageJson(cwd)\n if (\"error\" in packageJsonResult) {\n result = packageJsonResult.error\n break\n }\n\n await ensureEsbuildWasm()\n\n const packageManager = new PackageManager(this.vfs as unknown as VirtualFS, { cwd })\n\n if (packageSpecs.length === 0) {\n const installResult = await packageManager.installFromPackageJson({\n onProgress: (message) => {\n const line = `${message}\\n`\n stdout += line\n this.stdoutWriter?.(line)\n },\n })\n stdout += `added ${installResult.added.length} packages\\n`\n } else {\n for (const packageSpec of packageSpecs) {\n const installResult = await packageManager.install(packageSpec, {\n save: true,\n onProgress: (message) => {\n const line = `${message}\\n`\n stdout += line\n this.stdoutWriter?.(line)\n },\n })\n stdout += `added ${installResult.added.length} packages\\n`\n }\n }\n\n // Patch lru-cache to avoid diagnostics_channel crash in browser\n const localNodeModules = normalizePath(path.join(cwd, \"node_modules\"))\n this.patchLruCacheInNodeModules(localNodeModules)\n\n result = { stdout, stderr: \"\", exitCode: 0 }\n }\n } catch (error) {\n result = {\n stdout,\n stderr: `npm ERR! ${error instanceof Error ? error.message : String(error)}\\n`,\n exitCode: 1,\n }\n }\n break\n }\n case \"ls\":\n case \"list\": {\n const packageManager = new PackageManager(this.vfs as unknown as VirtualFS, { cwd })\n const packages = Object.entries(packageManager.list())\n\n if (packages.length === 0) {\n result = { stdout: \"(empty)\\n\", stderr: \"\", exitCode: 0 }\n break\n }\n\n result = {\n stdout: `${cwd}\\n${packages.map(([name, version]) => `+-- ${name}@${version}`).join(\"\\n\")}\\n`,\n stderr: \"\",\n exitCode: 0,\n }\n break\n }\n default:\n result = {\n stdout: \"\",\n stderr: `npm ERR! Unknown command: \"${subcommand}\"\\n`,\n exitCode: 1,\n }\n break\n }\n\n await this.flushPendingOperations()\n return result\n }\n\n async executeNode(args: string[], ctx: CommandContext): Promise<ExecResult> {\n const cwd = normalizePath(ctx.cwd)\n const invocation:\n | { kind: \"version\" }\n | { kind: \"eval\"; code: string; argv: string[]; filename: string }\n | { kind: \"run-file\"; scriptPath: string; argv: string[] }\n | { kind: \"error\"; message: string } = (() => {\n if (args.length === 0) {\n return {\n kind: \"error\",\n message: \"REPL mode is not supported in just-bash. Use node -e <code> or node <file>.\",\n }\n }\n\n const [firstArg, ...restArgs] = args\n\n if (firstArg === \"-v\" || firstArg === \"--version\") {\n return { kind: \"version\" }\n }\n\n if (firstArg === \"-h\" || firstArg === \"--help\") {\n return {\n kind: \"error\",\n message: \"Supported node modes in just-bash: node <file>, node -e <code>, node -p <expression>, node --version.\",\n }\n }\n\n if (firstArg === \"-e\" || firstArg === \"--eval\") {\n const code = restArgs[0]?.trim() || \"\"\n if (!code) {\n return { kind: \"error\", message: \"node -e requires inline code\" }\n }\n\n return {\n kind: \"eval\",\n code,\n argv: [\"node\", ...restArgs.slice(1)],\n filename: `${ALMOSTNODE_INTERNAL_ROOT}/eval.js`,\n }\n }\n\n if (firstArg === \"-p\" || firstArg === \"--print\") {\n const expression = restArgs[0]?.trim() || \"\"\n if (!expression) {\n return { kind: \"error\", message: \"node -p requires an expression\" }\n }\n\n return {\n kind: \"eval\",\n code: [\n `const __monospace_print_result = ((${expression}));`,\n \"if (typeof __monospace_print_result !== 'undefined') {\",\n \" process.stdout.write(String(__monospace_print_result) + '\\\\n')\",\n \"}\",\n ].join(\"\\n\"),\n argv: [\"node\", ...restArgs.slice(1)],\n filename: `${ALMOSTNODE_INTERNAL_ROOT}/print.js`,\n }\n }\n\n if (firstArg.startsWith(\"-\")) {\n return {\n kind: \"error\",\n message: `Unsupported node flag in just-bash: ${firstArg}`,\n }\n }\n\n const scriptPath = path.isAbsolute(firstArg)\n ? normalizePath(firstArg)\n : normalizePath(path.resolve(cwd, firstArg))\n\n return {\n kind: \"run-file\",\n scriptPath,\n argv: [\"node\", scriptPath, ...restArgs],\n }\n })()\n\n if (invocation.kind === \"error\") {\n return {\n stdout: \"\",\n stderr: `${invocation.message}\\n`,\n exitCode: 1,\n }\n }\n\n if (invocation.kind === \"version\") {\n return {\n stdout: `${ALMOSTNODE_NODE_VERSION}\\n`,\n stderr: \"\",\n exitCode: 0,\n }\n }\n\n await this.ensureInitialized()\n\n await this.flushPendingOperations()\n\n if (invocation.kind === \"run-file\") {\n if (!(await this.fs.exists(invocation.scriptPath))) {\n return {\n stdout: \"\",\n stderr: `Cannot find module '${invocation.scriptPath}'\\n`,\n exitCode: 1,\n }\n }\n\n const packageRoot = this.getNodeModulesPackageRoot(invocation.scriptPath)\n if (packageRoot) {\n await this.hydrateObservablePackageIntoVirtualFs(packageRoot)\n await this.hydrateObservableProjectIntoVirtualFs(cwd)\n await this.hydrateObservableDependencyPackagesIntoVirtualFs(cwd)\n } else {\n await this.copyObservablePathIntoVirtualFs(invocation.scriptPath, { force: true })\n }\n }\n\n const stdoutChunks: string[] = []\n const stderrChunks: string[] = []\n const runtimeEnv: Record<string, string> = {\n ...getCommandEnvironment(ctx),\n PWD: cwd,\n }\n\n const runtime = new Runtime(this.vfs as unknown as VirtualFS, {\n cwd,\n env: runtimeEnv,\n onStdout: (chunk) => {\n appendChunk(stdoutChunks, chunk)\n this.stdoutWriter?.(chunk)\n },\n onStderr: (chunk) => appendChunk(stderrChunks, chunk),\n onConsole: (method, consoleArgs) => {\n const formatted = consoleArgs.map((value) => {\n if (typeof value === \"string\") {\n return value\n }\n\n try {\n return JSON.stringify(value)\n } catch {\n return String(value)\n }\n }).join(\" \")\n if (\n !formatted\n || formatted.startsWith(\"[process] cwd() called\")\n || formatted.startsWith(\"[process] chdir called:\")\n || formatted.startsWith(\"[process] chdir result:\")\n ) {\n return\n }\n\n const chunk = `${formatted}\\n`\n if (method === \"error\" || method === \"warn\" || method === \"trace\") {\n appendChunk(stderrChunks, chunk)\n return\n }\n\n appendChunk(stdoutChunks, chunk)\n this.stdoutWriter?.(chunk)\n },\n })\n\n const process = runtime.getProcess()\n\n // Enable TTY mode so TUI applications detect a terminal\n process.stdout.isTTY = true\n process.stderr.isTTY = true\n if (process.stdin) {\n process.stdin.isTTY = true\n }\n const stdoutAny = process.stdout as unknown as Record<string, unknown>\n stdoutAny.columns = this._terminalColumns\n stdoutAny.rows = this._terminalRows\n stdoutAny.getWindowSize = () => [this._terminalColumns, this._terminalRows]\n\n // Shim stdin.setRawMode so TUI apps don't crash; track calls as\n // an interactivity signal for the exit-detection heuristic below.\n let rawModeRequested = false\n if (process.stdin) {\n const originalSetRawMode = process.stdin.setRawMode\n process.stdin.setRawMode = (mode: boolean) => {\n rawModeRequested = rawModeRequested || mode\n if (typeof originalSetRawMode === \"function\") {\n return originalSetRawMode.call(process.stdin, mode)\n }\n return process.stdin\n }\n }\n\n // Forward stdin from the host terminal into process.stdin\n this._stdinHandler = process.stdin\n ? (data: string) => { process.stdin.emit(\"data\", data) }\n : null\n\n const originalExit = process.exit\n let exitCalled = false\n let exitCode = 0\n let syncExecution = true\n let resolveExit: ((code: number) => void) | null = null\n const exitPromise = new Promise<number>((resolve) => {\n resolveExit = resolve\n })\n const previousConsole = {\n log: console.log,\n info: console.info,\n warn: console.warn,\n error: console.error,\n debug: console.debug,\n trace: console.trace,\n dir: console.dir,\n table: console.table,\n }\n\n console.log = () => undefined\n console.info = () => undefined\n console.warn = () => undefined\n console.error = () => undefined\n console.debug = () => undefined\n console.trace = () => undefined\n console.dir = () => undefined\n console.table = () => undefined\n\n process.exit = ((code = 0) => {\n if (!exitCalled) {\n exitCalled = true\n exitCode = code\n resolveExit?.(code)\n }\n\n if (syncExecution) {\n throw new Error(`Process exited with code ${code}`)\n }\n\n return undefined as never\n }) as typeof process.exit\n\n process.argv = invocation.argv\n process.argv0 = \"node\"\n process.execPath = NODE_EXEC_PATH\n\n // Shim process.pid and process.kill so TUI apps (e.g. pi-coding-agent)\n // that call process.kill(process.pid, signal) don't crash\n if (process.pid == null) {\n process.pid = 1\n }\n if (typeof (process as any).kill !== \"function\") {\n (process as any).kill = () => { /* no-op in browser */ }\n }\n\n const rejectionHandler = (event: PromiseRejectionEvent) => {\n const reason = event.reason\n if (reason instanceof Error && reason.message.startsWith(\"Process exited with code\")) {\n event.preventDefault()\n }\n }\n\n const canListenForUnhandledRejection = typeof globalThis.addEventListener === \"function\"\n && typeof globalThis.removeEventListener === \"function\"\n\n if (canListenForUnhandledRejection) {\n globalThis.addEventListener(\"unhandledrejection\", rejectionHandler)\n }\n\n try {\n if (invocation.kind === \"eval\") {\n runtime.execute(invocation.code, invocation.filename)\n } else {\n runtime.runFile(invocation.scriptPath)\n }\n\n syncExecution = false\n\n // If the process registered stdin listeners (interactive / TUI), keep\n // it alive until process.exit() is called instead of exiting after 0 ms.\n // Yield a tick first so async main() functions (like pi-coding-agent)\n // have a chance to register listeners / call setRawMode before we check.\n await new Promise<void>((resolve) => { setTimeout(resolve, 0) })\n\n const hasStdinListeners = process.stdin\n && (process.stdin.listenerCount(\"data\") > 0 || process.stdin.listenerCount(\"keypress\") > 0)\n const isInteractive = hasStdinListeners || rawModeRequested\n const asyncExitCode = isInteractive\n ? await exitPromise\n : await Promise.race<number | null>([\n exitPromise,\n new Promise<null>((resolve) => {\n setTimeout(() => resolve(null), 0)\n }),\n ])\n\n await this.flushPendingOperations()\n\n if (exitCalled || asyncExitCode !== null) {\n return {\n stdout: stdoutChunks.join(\"\"),\n stderr: stderrChunks.join(\"\"),\n exitCode: asyncExitCode ?? exitCode,\n }\n }\n\n return {\n stdout: stdoutChunks.join(\"\"),\n stderr: stderrChunks.join(\"\"),\n exitCode: 0,\n }\n } catch (error) {\n syncExecution = false\n await this.flushPendingOperations()\n\n if (error instanceof Error) {\n const match = /Process exited with code (\\d+)/.exec(error.message)\n if (match) {\n return {\n stdout: stdoutChunks.join(\"\"),\n stderr: stderrChunks.join(\"\"),\n exitCode: Number.parseInt(match[1] ?? \"\", 10),\n }\n }\n }\n\n appendChunk(stderrChunks, `${error instanceof Error ? (error.stack || error.message) : String(error)}\\n`)\n return {\n stdout: stdoutChunks.join(\"\"),\n stderr: stderrChunks.join(\"\"),\n exitCode: 1,\n }\n } finally {\n this._stdinHandler = null\n if (canListenForUnhandledRejection) {\n globalThis.removeEventListener(\"unhandledrejection\", rejectionHandler)\n }\n process.exit = originalExit\n console.log = previousConsole.log\n console.info = previousConsole.info\n console.warn = previousConsole.warn\n console.error = previousConsole.error\n console.debug = previousConsole.debug\n console.trace = previousConsole.trace\n console.dir = previousConsole.dir\n console.table = previousConsole.table\n }\n }\n\n async executeVite(args: string[], ctx: CommandContext): Promise<ExecResult> {\n const cwd = normalizePath(ctx.cwd)\n\n await this.ensureInitialized()\n await this.flushPendingOperations()\n\n const cwdPrefix = cwd.endsWith(\"/\") ? cwd : `${cwd}/`\n const allLazyPaths = this.fs.getAllPaths()\n .map((p) => normalizePath(p))\n .filter((p) => (p === cwd || p.startsWith(cwdPrefix)) && !isInternalAlmostNodePath(p) && this.fs.isPathLazy(p))\n\n // Eagerly hydrate the files Vite is likely to need immediately, but skip\n // declaration files, source maps, docs, and similar node_modules artifacts\n // that create unnecessary batch traffic during startup.\n const pathsToLoad = allLazyPaths.filter((targetPath) => {\n if (!targetPath.startsWith(`${cwdPrefix}node_modules/`)) {\n return true\n }\n\n const baseName = path.basename(targetPath).toLowerCase()\n if (baseName === \"package.json\") {\n return true\n }\n\n if (\n baseName.endsWith(\".d.ts\")\n || baseName.endsWith(\".d.mts\")\n || baseName.endsWith(\".d.cts\")\n || baseName.endsWith(\".map\")\n || baseName === \"readme\"\n || baseName.startsWith(\"readme.\")\n || baseName === \"license\"\n || baseName.startsWith(\"license.\")\n || baseName === \"changelog\"\n || baseName.startsWith(\"changelog.\")\n ) {\n return false\n }\n\n return /\\.(?:js|mjs|cjs|jsx|ts|tsx|json|css|scss|sass|less|wasm|svg)$/.test(baseName)\n })\n\n if (pathsToLoad.length > 0 && this.batchFileLoader) {\n const contents = await this.batchFileLoader(pathsToLoad)\n await this.fs.suppressObservability(async () => {\n for (const [filePath, content] of contents) {\n this.fs.writeFileSync(filePath, content)\n }\n })\n this._vfs.withoutMirror(() => {\n for (const [filePath, content] of contents) {\n this._vfs.mkdirSync(path.dirname(filePath), { recursive: true })\n this._vfs.writeFileSync(filePath, content)\n }\n })\n } else {\n for (const lazyPath of pathsToLoad) {\n await this.copyObservablePathIntoVirtualFs(lazyPath, { force: true })\n }\n }\n\n let port = 5173\n for (let i = 0; i < args.length; i++) {\n if (args[i] === \"--port\" && args[i + 1]) {\n const parsed = Number.parseInt(args[i + 1], 10)\n if (!Number.isNaN(parsed) && parsed > 0) {\n port = parsed\n }\n }\n }\n\n this.stopViteServer()\n\n const bridge = getServerBridge()\n\n await ensureEsbuildWasm()\n\n this.viteServer = new ViteDevServer(this.vfs as unknown as VirtualFS, { port, root: cwd })\n this.viteServer.start()\n\n await bridge.initServiceWorker()\n const virtualPrefix = `/__virtual__/${port}`\n bridge.registerServer({\n get listening() { return true },\n address: () => ({ port, address: \"127.0.0.1\", family: \"IPv4\" }),\n handleRequest: async (method, url, headers, body) => {\n let response = await this.viteServer!.handleRequest(method, url, headers, typeof body === \"string\" ? undefined : body)\n\n // almostnode's generic static file path goes through DevServer.serveFile(),\n // which resolves an already-resolved path a second time and can 404 files that\n // do exist in the session VFS. Fall back to serving the file directly when the\n // request path resolves to an existing workspace file.\n let resolvedFilePath = \"\"\n if (response.statusCode === 404 && response.body) {\n const BufferCtor = response.body.constructor as unknown as {\n from(input: string | Uint8Array): typeof response.body\n }\n const fallbackResponse = await this.serveExistingVirtualStaticFile(cwd, url, BufferCtor)\n if (fallbackResponse) {\n resolvedFilePath = fallbackResponse.resolvedPath.replace(cwd, \"\")\n response = fallbackResponse\n }\n }\n\n // Rewrite absolute paths in HTML responses so that resources\n // like /src/main.tsx resolve to /__virtual__/<port>/src/main.tsx.\n // Without this, the browser loads them from the Next.js origin\n // and the service worker's referer-based routing can't detect\n // they belong to the virtual server.\n const contentType = response.headers[\"Content-Type\"] || response.headers[\"content-type\"] || \"\"\n if (contentType.includes(\"text/html\") && response.body) {\n const rawHtml = response.body.toString(\"utf8\")\n const html = this.transformTextWithCache(\n `html:${virtualPrefix}:${url}`,\n rawHtml,\n (input) => input\n .replace(/<script\\s+type\\s*=\\s*[\"']importmap[\"'][^>]*>[\\s\\S]*?<\\/script>/gi, \"\")\n .replace(/(<script\\b[^>]*\\bsrc\\s*=\\s*[\"'])\\/((?!\\/)[^\"']*[\"'])/gi, `$1${virtualPrefix}/$2`)\n .replace(/(<link\\b[^>]*\\bhref\\s*=\\s*[\"'])\\/((?!\\/)[^\"']*[\"'])/gi, `$1${virtualPrefix}/$2`),\n )\n\n const BufferCtor = response.body.constructor as unknown as { from(s: string): typeof response.body }\n const newBody = BufferCtor.from(html)\n return {\n ...response,\n body: newBody,\n headers: {\n ...response.headers,\n \"Content-Length\": String(newBody.length),\n },\n }\n }\n\n // Rewrite bare import specifiers in JS responses so the browser\n // can resolve them to /__virtual__/<port>/node_modules/... paths\n // served by ViteDevServer through the service worker.\n // Also wrap CJS modules in an ESM shim so they can be imported.\n if (contentType.includes(\"javascript\") && response.body) {\n const requestPath = resolvedFilePath || getRequestPathname(url)\n const rawJs = response.body.toString(\"utf8\")\n const js = this.transformTextWithCache(\n `js:${virtualPrefix}:${requestPath}`,\n rawJs,\n (input) => {\n let transformed = this.rewriteBareImports(input, cwd, virtualPrefix)\n transformed = wrapCjsAsEsm(transformed, virtualPrefix, requestPath)\n if (/\\bprocess\\.env\\b/.test(transformed) && !/\\bvar\\s+process\\b/.test(transformed)) {\n transformed = `var process = { env: { NODE_ENV: \"production\" } };\\n${transformed}`\n }\n return transformed\n },\n )\n const BufferCtor = response.body.constructor as unknown as { from(s: string): typeof response.body }\n const newBody = BufferCtor.from(js)\n return {\n ...response,\n body: newBody,\n headers: {\n ...response.headers,\n \"Content-Length\": String(newBody.length),\n },\n }\n }\n\n return response\n },\n }, port)\n\n const serverUrl = bridge.getServerUrl(port)\n this.vitePort = port\n this.vitePreviewUrl = `${serverUrl}/`\n this.vitePreviewListener?.(this.vitePreviewUrl)\n\n return {\n stdout: [\n \"\",\n \" VITE ready\",\n \"\",\n ` ➜ Local: ${this.vitePreviewUrl}`,\n \"\",\n ].join(\"\\n\"),\n stderr: \"\",\n exitCode: 0,\n }\n }\n}\n\nexport function createAlmostNodeSession(fs: ObservableInMemoryFs): AlmostNodeSession {\n return new AlmostNodeSession(fs)\n}"],"mappings":"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","names":["match","m","packageJsonResult","scripts","stdout","stderr"]}