@moxt-ai/mobius 0.0.195 → 0.0.196

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.
Files changed (60) hide show
  1. package/dist/acp/agent-connection.d.ts.map +1 -1
  2. package/dist/acp/agent-connection.js +4 -3
  3. package/dist/acp/agent-connection.js.map +1 -1
  4. package/dist/acp/codex/app-server-client.d.ts.map +1 -1
  5. package/dist/acp/codex/app-server-client.js +4 -2
  6. package/dist/acp/codex/app-server-client.js.map +1 -1
  7. package/dist/agent-catalog/acp-readiness-probe.d.ts.map +1 -1
  8. package/dist/agent-catalog/acp-readiness-probe.js +4 -3
  9. package/dist/agent-catalog/acp-readiness-probe.js.map +1 -1
  10. package/dist/cli.js +526 -290
  11. package/dist/cli.js.map +4 -4
  12. package/dist/daemon-manager.d.ts.map +1 -1
  13. package/dist/daemon-manager.js +7 -17
  14. package/dist/daemon-manager.js.map +1 -1
  15. package/dist/filesystem/path-error.d.ts +5 -0
  16. package/dist/filesystem/path-error.d.ts.map +1 -0
  17. package/dist/filesystem/path-error.js +8 -0
  18. package/dist/filesystem/path-error.js.map +1 -0
  19. package/dist/filesystem/private-path.d.ts +3 -0
  20. package/dist/filesystem/private-path.d.ts.map +1 -0
  21. package/dist/filesystem/private-path.js +550 -0
  22. package/dist/filesystem/private-path.js.map +7 -0
  23. package/dist/index.js +498 -253
  24. package/dist/index.js.map +4 -4
  25. package/dist/native-sessions/codex-history.d.ts.map +1 -1
  26. package/dist/native-sessions/codex-history.js +4 -3
  27. package/dist/native-sessions/codex-history.js.map +1 -1
  28. package/dist/platform/contracts.d.ts +21 -0
  29. package/dist/platform/contracts.d.ts.map +1 -1
  30. package/dist/platform/index.d.ts.map +1 -1
  31. package/dist/platform/index.js +5 -3
  32. package/dist/platform/index.js.map +1 -1
  33. package/dist/platform/linux.d.ts.map +1 -1
  34. package/dist/platform/linux.js +2 -1
  35. package/dist/platform/linux.js.map +1 -1
  36. package/dist/platform/macos.d.ts.map +1 -1
  37. package/dist/platform/macos.js +2 -1
  38. package/dist/platform/macos.js.map +1 -1
  39. package/dist/platform/posix.d.ts +28 -1
  40. package/dist/platform/posix.d.ts.map +1 -1
  41. package/dist/platform/posix.js +91 -1
  42. package/dist/platform/posix.js.map +1 -1
  43. package/dist/platform/windows.d.ts +3 -0
  44. package/dist/platform/windows.d.ts.map +1 -0
  45. package/dist/platform/windows.js +174 -0
  46. package/dist/platform/windows.js.map +1 -0
  47. package/dist/process/executable.d.ts +7 -5
  48. package/dist/process/executable.d.ts.map +1 -1
  49. package/dist/process/executable.js +844 -386
  50. package/dist/process/executable.js.map +7 -1
  51. package/dist/process/process-error.d.ts +5 -0
  52. package/dist/process/process-error.d.ts.map +1 -0
  53. package/dist/process/process-error.js +9 -0
  54. package/dist/process/process-error.js.map +1 -0
  55. package/dist/runtime.js +498 -253
  56. package/dist/runtime.js.map +4 -4
  57. package/dist/storage/runtime-installation-store.d.ts.map +1 -1
  58. package/dist/storage/runtime-installation-store.js +3 -0
  59. package/dist/storage/runtime-installation-store.js.map +1 -1
  60. package/package.json +72 -70
@@ -1 +1,7 @@
1
- {"version":3,"file":"executable.js","sourceRoot":"","sources":["../../src/process/executable.ts"],"names":[],"mappings":"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"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/process/executable.ts", "../../src/platform/linux.ts", "../../src/platform/posix.ts", "../../src/filesystem/path-error.ts", "../../src/platform/macos.ts", "../../src/platform/windows.ts", "../../src/process/process-error.ts", "../../src/platform/index.ts"],
4
+ "sourcesContent": ["import { spawn } from \"node:child_process\";\nimport { stat } from \"node:fs/promises\";\nimport { join, resolve } from \"node:path\";\n\nimport type { ProcessLaunch, ProcessTableEntry, ProcessTreeIdentity } from \"../platform/contracts.ts\";\nimport { platformSupportFor } from \"../platform/index.ts\";\n\nimport { ProcessExecutionError } from \"./process-error.ts\";\n\nexport type { ProcessTreeIdentity } from \"../platform/contracts.ts\";\nexport { ProcessExecutionError } from \"./process-error.ts\";\n\nconst hostPlatform = platformSupportFor(process.platform);\n\nconst DEFAULT_OUTPUT_LIMIT_BYTES = 16 * 1024;\nconst PROCESS_GRACEFUL_STOP_TIMEOUT_MILLISECONDS = 1_000;\nconst PROCESS_FORCED_STOP_TIMEOUT_MILLISECONDS = 5_000;\nconst PROCESS_EXIT_CHECK_ATTEMPTS = 16;\nconst GRACEFUL_STOP_SIGNAL = 15;\nconst FORCED_STOP_SIGNAL = 9;\n\nexport class ExecutableIdentity {\n readonly changedAtMilliseconds: number;\n readonly device: number;\n readonly inode: number;\n readonly realPath: string;\n readonly requestedPath: string;\n readonly size: number;\n\n constructor(\n requestedPath: string,\n realPath_: string,\n device: number,\n inode: number,\n size: number,\n changedAtMilliseconds: number,\n ) {\n this.changedAtMilliseconds = changedAtMilliseconds;\n this.device = device;\n this.inode = inode;\n this.realPath = realPath_;\n this.requestedPath = requestedPath;\n this.size = size;\n }\n\n readonly matches = (candidate: ExecutableIdentity): boolean =>\n this.requestedPath === candidate.requestedPath &&\n this.realPath === candidate.realPath &&\n this.device === candidate.device &&\n this.inode === candidate.inode &&\n this.size === candidate.size &&\n this.changedAtMilliseconds === candidate.changedAtMilliseconds;\n}\n\nexport class ResolvedExecutable {\n readonly identity: ExecutableIdentity;\n readonly path: string;\n\n constructor(identity: ExecutableIdentity) {\n this.identity = identity;\n this.path = identity.realPath;\n }\n}\n\nexport class ProcessResult {\n readonly stderr: string;\n readonly stdout: string;\n\n constructor(stdout: string, stderr: string) {\n this.stderr = stderr;\n this.stdout = stdout;\n }\n}\n\nexport interface RunProcessOptions {\n readonly arguments: readonly string[];\n readonly command: string;\n readonly cwd: string;\n readonly environment: Readonly<NodeJS.ProcessEnv>;\n readonly outputLimitBytes?: number;\n readonly signal: AbortSignal;\n readonly timeoutMilliseconds: number;\n}\n\nexport async function resolveExecutablePath(\n requestedPath: string,\n platform: NodeJS.Platform = process.platform,\n): Promise<ResolvedExecutable | null> {\n const absoluteRequestedPath = resolve(requestedPath);\n try {\n const resolvedPath = await platformSupportFor(platform).resolveExecutableTarget(absoluteRequestedPath);\n const metadata = await stat(resolvedPath);\n if (!metadata.isFile()) {\n return null;\n }\n return new ResolvedExecutable(\n new ExecutableIdentity(\n absoluteRequestedPath,\n resolvedPath,\n metadata.dev,\n metadata.ino,\n metadata.size,\n metadata.ctimeMs,\n ),\n );\n } catch {\n return null;\n }\n}\n\nexport async function findExecutableOnPath(\n executableName: string,\n environment: Readonly<NodeJS.ProcessEnv>,\n platform: NodeJS.Platform = process.platform,\n): Promise<ResolvedExecutable | null> {\n const support = platformSupportFor(platform);\n const encodedPath = support.environmentValue(environment, \"PATH\") ?? \"\";\n const separator = support.pathDelimiter;\n const extensions = support.executableExtensions(executableName, environment);\n for (const entry of encodedPath.split(separator)) {\n if (entry.length === 0) {\n continue;\n }\n for (const extension of extensions) {\n const requestedPath = resolve(join(entry, `${executableName}${extension}`));\n const executable = await resolveExecutablePath(requestedPath, platform);\n if (executable !== null) {\n return executable;\n }\n }\n }\n return null;\n}\n\nexport async function revalidateExecutable(\n identity: ExecutableIdentity,\n platform: NodeJS.Platform = process.platform,\n): Promise<boolean> {\n const current = await resolveExecutablePath(identity.requestedPath, platform);\n return current !== null && identity.matches(current.identity);\n}\n\nfunction appendBounded(chunks: Buffer[], chunk: Buffer, currentBytes: number, limitBytes: number): number {\n const nextBytes = currentBytes + chunk.byteLength;\n if (nextBytes > limitBytes) {\n throw new ProcessExecutionError(\"process_output_limit\", \"The executable produced too much output\");\n }\n chunks.push(chunk);\n return nextBytes;\n}\n\nfunction readProcessTable(): Promise<readonly ProcessTableEntry[]> {\n return hostPlatform.readProcessTable();\n}\n\nfunction selectProcessTree(\n entries: readonly ProcessTableEntry[],\n rootProcessId: number,\n): readonly ProcessTreeIdentity[] {\n const processIds = new Set([rootProcessId]);\n for (const entry of entries) {\n if (entry.processGroupId === rootProcessId) {\n processIds.add(entry.processId);\n }\n }\n let previousSize = 0;\n while (previousSize !== processIds.size) {\n previousSize = processIds.size;\n for (const entry of entries) {\n if (processIds.has(entry.parentProcessId)) {\n processIds.add(entry.processId);\n }\n }\n }\n return entries\n .filter((entry) => processIds.has(entry.processId))\n .map((entry) => ({\n processGroupId: entry.processGroupId,\n processId: entry.processId,\n }));\n}\n\nfunction mergeProcessTrees(\n captured: readonly ProcessTreeIdentity[],\n current: readonly ProcessTreeIdentity[],\n): readonly ProcessTreeIdentity[] {\n const processes = new Map<number, ProcessTreeIdentity>();\n for (const identity of captured) {\n processes.set(identity.processId, identity);\n }\n for (const identity of current) {\n processes.set(identity.processId, identity);\n }\n return [...processes.values()];\n}\n\nexport async function captureProcessTree(child: ReturnType<typeof spawn>): Promise<readonly ProcessTreeIdentity[]> {\n if (child.pid === undefined) {\n return [];\n }\n const entries = hostPlatform.readProcessTableSynchronously();\n if (entries.length > 0) {\n return selectProcessTree(entries, child.pid);\n }\n return selectProcessTree(await readProcessTable(), child.pid);\n}\n\nasync function waitForCapturedProcessesExit(\n processes: readonly ProcessTreeIdentity[],\n rootProcessId: number,\n): Promise<boolean> {\n const processIds = processes\n .map((identity) => identity.processId)\n .filter((processId) => processId !== rootProcessId);\n for (let attempt = 0; attempt < PROCESS_EXIT_CHECK_ATTEMPTS; attempt += 1) {\n if (processIds.every((processId) => !hostPlatform.processExists(processId))) {\n return true;\n }\n await readProcessTable();\n }\n return processIds.every((processId) => !hostPlatform.processExists(processId));\n}\n\nexport async function stopProcessTree(\n child: ReturnType<typeof spawn>,\n capturedProcesses: readonly ProcessTreeIdentity[] = [],\n): Promise<void> {\n const childProcessId = child.pid;\n if (childProcessId === undefined) {\n return;\n }\n const childExited = child.exitCode !== null || child.signalCode !== null;\n const processes = mergeProcessTrees(capturedProcesses, await captureProcessTree(child));\n if (childExited && processes.length === 0) {\n return;\n }\n hostPlatform.signalCapturedProcesses(processes, childProcessId, GRACEFUL_STOP_SIGNAL);\n hostPlatform.terminateProcess(child, \"SIGTERM\");\n const [exitedAfterTermination, descendantsExitedAfterTermination] = await Promise.all([\n waitForProcessExit(child, PROCESS_GRACEFUL_STOP_TIMEOUT_MILLISECONDS),\n waitForCapturedProcessesExit(processes, childProcessId),\n ]);\n if (exitedAfterTermination && descendantsExitedAfterTermination) {\n return;\n }\n hostPlatform.signalCapturedProcesses(processes, childProcessId, FORCED_STOP_SIGNAL);\n hostPlatform.terminateProcess(child, \"SIGKILL\");\n const [exitedAfterForce, descendantsExitedAfterForce] = await Promise.all([\n waitForProcessExit(child, PROCESS_FORCED_STOP_TIMEOUT_MILLISECONDS),\n waitForCapturedProcessesExit(processes, childProcessId),\n ]);\n if (!exitedAfterForce || !descendantsExitedAfterForce) {\n throw new ProcessExecutionError(\"process_termination_timeout\", \"The executable process could not be stopped\");\n }\n}\n\nfunction waitForProcessExit(child: ReturnType<typeof spawn>, timeoutMilliseconds: number): Promise<boolean> {\n if (child.exitCode !== null || child.signalCode !== null) {\n return Promise.resolve(true);\n }\n return new Promise<boolean>((resolveExit) => {\n let settled = false;\n const finish = (exited: boolean): void => {\n if (settled) {\n return;\n }\n settled = true;\n clearTimeout(timeout);\n child.removeListener(\"exit\", handleExit);\n resolveExit(exited);\n };\n const handleExit = (): void => finish(true);\n const timeout = setTimeout(() => finish(false), timeoutMilliseconds);\n child.once(\"exit\", handleExit);\n if (child.exitCode !== null || child.signalCode !== null) {\n finish(true);\n }\n });\n}\n\nexport async function runBoundedProcess(options: RunProcessOptions): Promise<ProcessResult> {\n options.signal.throwIfAborted();\n const outputLimitBytes = options.outputLimitBytes ?? DEFAULT_OUTPUT_LIMIT_BYTES;\n const launch = executableLaunch(options.command, options.arguments);\n const child = spawn(launch.command, [...launch.arguments], {\n cwd: options.cwd,\n ...hostPlatform.spawnOptions,\n env: { ...options.environment },\n shell: false,\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n });\n const stdout: Buffer[] = [];\n const stderr: Buffer[] = [];\n let stdoutBytes = 0;\n let stderrBytes = 0;\n let interruptionFailure: ProcessExecutionError | null = null;\n let interruptionCleanupFailure: ProcessExecutionError | null = null;\n let stopping = false;\n const interrupted = Promise.withResolvers<void>();\n\n const interrupt = (failure: ProcessExecutionError): void => {\n if (stopping) {\n return;\n }\n stopping = true;\n interruptionFailure = failure;\n const stop = async (): Promise<void> => {\n try {\n await stopProcessTree(child);\n } catch (error) {\n interruptionCleanupFailure =\n error instanceof ProcessExecutionError\n ? error\n : new ProcessExecutionError(\n \"process_termination_failed\",\n \"The executable process could not be stopped\",\n { cause: error },\n );\n } finally {\n interrupted.resolve();\n }\n };\n void stop();\n };\n\n const collectStdout = (chunk: Buffer): void => {\n if (interruptionFailure !== null) {\n return;\n }\n try {\n stdoutBytes = appendBounded(stdout, chunk, stdoutBytes, outputLimitBytes);\n } catch (error) {\n const failure =\n error instanceof ProcessExecutionError\n ? error\n : new ProcessExecutionError(\"process_output_limit\", \"The executable produced too much output\", {\n cause: error,\n });\n interrupt(failure);\n }\n };\n const collectStderr = (chunk: Buffer): void => {\n if (interruptionFailure !== null) {\n return;\n }\n try {\n stderrBytes = appendBounded(stderr, chunk, stderrBytes, outputLimitBytes);\n } catch (error) {\n const failure =\n error instanceof ProcessExecutionError\n ? error\n : new ProcessExecutionError(\"process_output_limit\", \"The executable produced too much output\", {\n cause: error,\n });\n interrupt(failure);\n }\n };\n child.stdout?.on(\"data\", collectStdout);\n child.stderr?.on(\"data\", collectStderr);\n\n const timeout = setTimeout(() => {\n interrupt(new ProcessExecutionError(\"process_timeout\", \"The executable probe timed out\"));\n }, options.timeoutMilliseconds);\n const abort = (): void =>\n interrupt(\n new ProcessExecutionError(\"process_cancelled\", \"The executable probe was cancelled\", {\n cause: options.signal.reason,\n }),\n );\n options.signal.addEventListener(\"abort\", abort, { once: true });\n if (options.signal.aborted) {\n abort();\n }\n\n try {\n const exit = new Promise<number>((resolveExit, rejectExit) => {\n child.once(\"error\", rejectExit);\n child.once(\"exit\", (code) => resolveExit(code ?? 1));\n });\n const exitCode = await Promise.race([exit, interrupted.promise.then(() => -1)]);\n if (interruptionCleanupFailure !== null) {\n throw interruptionCleanupFailure;\n }\n if (interruptionFailure !== null) {\n throw interruptionFailure;\n }\n if (exitCode !== 0) {\n throw new ProcessExecutionError(\"process_exit_failed\", \"The executable probe failed\");\n }\n return new ProcessResult(Buffer.concat(stdout).toString(\"utf8\"), Buffer.concat(stderr).toString(\"utf8\"));\n } catch (error) {\n if (error instanceof ProcessExecutionError) {\n throw error;\n }\n throw new ProcessExecutionError(\"process_spawn_failed\", \"The executable could not be started\", {\n cause: error,\n });\n } finally {\n clearTimeout(timeout);\n options.signal.removeEventListener(\"abort\", abort);\n child.stdout?.removeListener(\"data\", collectStdout);\n child.stderr?.removeListener(\"data\", collectStderr);\n if (stopping) {\n await interrupted.promise;\n } else {\n await stopProcessTree(child);\n }\n }\n}\n\nexport function executableLaunch(command: string, args: readonly string[]): ProcessLaunch {\n return hostPlatform.executableLaunch(command, args);\n}\n\nexport const platformSpawnOptions = hostPlatform.spawnOptions;\n", "import { constants, readdirSync, readFileSync } from \"node:fs\";\nimport { access, readdir, readFile, realpath, stat } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport type { PlatformSupport, ProcessTableEntry } from \"./contracts.ts\";\nimport { posixOperations, processExists as posixProcessExists, readProcessTableWithPs } from \"./posix.ts\";\n\nfunction appendLinuxProcessTableEntry(entries: ProcessTableEntry[], processId: number, encoded: string): void {\n const closingParenthesis = encoded.lastIndexOf(\")\");\n if (!encoded.startsWith(`${processId.toString()} (`) || closingParenthesis < 0) {\n return;\n }\n const fields = encoded\n .slice(closingParenthesis + 1)\n .trim()\n .split(/\\s+/);\n const parentProcessId = Number(fields[1]);\n const processGroupId = Number(fields[2]);\n if (\n !Number.isSafeInteger(parentProcessId) ||\n parentProcessId < 0 ||\n !Number.isSafeInteger(processGroupId) ||\n processGroupId <= 0\n ) {\n return;\n }\n entries.push({ parentProcessId, processGroupId, processId });\n}\n\nasync function readLinuxProcessTable(): Promise<readonly ProcessTableEntry[]> {\n const entries: ProcessTableEntry[] = [];\n try {\n const directories = await readdir(\"/proc\", { withFileTypes: true });\n for (const directory of directories) {\n if (!directory.isDirectory() || !/^\\d+$/.test(directory.name)) {\n continue;\n }\n const processId = Number(directory.name);\n if (!Number.isSafeInteger(processId) || processId <= 0) {\n continue;\n }\n try {\n appendLinuxProcessTableEntry(\n entries,\n processId,\n await readFile(join(\"/proc\", directory.name, \"stat\"), \"utf8\"),\n );\n } catch {\n // Processes can exit while procfs is being enumerated.\n }\n }\n } catch {\n // A restricted Linux runtime may not mount procfs; the fixed ps fallback runs below.\n }\n return entries;\n}\n\nfunction readLinuxProcessTableSynchronously(): readonly ProcessTableEntry[] {\n const entries: ProcessTableEntry[] = [];\n try {\n const directories = readdirSync(\"/proc\", { withFileTypes: true });\n for (const directory of directories) {\n if (!directory.isDirectory() || !/^\\d+$/.test(directory.name)) {\n continue;\n }\n const processId = Number(directory.name);\n if (!Number.isSafeInteger(processId) || processId <= 0) {\n continue;\n }\n try {\n appendLinuxProcessTableEntry(\n entries,\n processId,\n readFileSync(join(\"/proc\", directory.name, \"stat\"), \"utf8\"),\n );\n } catch {\n // Processes can exit while procfs is being enumerated.\n }\n }\n } catch {\n // A restricted Linux runtime may not mount procfs; the asynchronous fallback runs below.\n }\n return entries;\n}\n\nasync function readLinuxProcessTableWithFallback(): Promise<readonly ProcessTableEntry[]> {\n const procfsEntries = await readLinuxProcessTable();\n if (procfsEntries.length > 0) {\n return procfsEntries;\n }\n for (const candidate of [\"/usr/bin/ps\", \"/bin/ps\", \"/run/current-system/sw/bin/ps\"]) {\n try {\n const resolvedPath = await realpath(candidate);\n if (!(await stat(resolvedPath)).isFile()) {\n continue;\n }\n await access(resolvedPath, constants.X_OK);\n } catch {\n continue;\n }\n const entries = await readProcessTableWithPs(candidate);\n if (entries.length > 0) {\n return entries;\n }\n }\n return [];\n}\n\nfunction processExists(processId: number): boolean {\n try {\n const encoded = readFileSync(join(\"/proc\", processId.toString(), \"stat\"), \"utf8\");\n const closingParenthesis = encoded.lastIndexOf(\")\");\n if (closingParenthesis >= 0) {\n const processState = encoded\n .slice(closingParenthesis + 1)\n .trimStart()\n .charAt(0);\n if (processState === \"Z\" || processState === \"X\") {\n return false;\n }\n }\n } catch {\n // Fall through so restricted procfs mounts still use the portable signal probe.\n }\n return posixProcessExists(processId);\n}\n\nexport const linuxPlatform: PlatformSupport = {\n ...posixOperations,\n readProcessTable: readLinuxProcessTableWithFallback,\n readProcessTableSynchronously: readLinuxProcessTableSynchronously,\n processExists,\n workBuddyExecutablePaths: () => [],\n openCodeArchives: {\n arm64: {\n asset: \"opencode-linux-arm64.tar.gz\",\n sha256: \"70baf769395ca4e7a68924026530c390eace194f3b7e4919d4efcb2aa2eed3c0\",\n format: \"tar.gz\",\n },\n x64: {\n asset: \"opencode-linux-x64.tar.gz\",\n sha256: \"ea800b7ff56226b70952126c9fc1e2517ca4c4b5682fd9d3f9e87449697a1194\",\n format: \"tar.gz\",\n },\n },\n grokDependencies: {\n arm64: {\n name: \"@xai-official/grok-linux-arm64\",\n integrity:\n \"sha512-Jlwz9XtZPNKz/V/ydifC8OVu3hIZz7pmoStt8c4KCqkSWjWiZ/PBIC0iJiq8rvByhx5Z0EdSyq8ZXVwtocceGA==\",\n tarballUrl: \"https://registry.npmjs.org/@xai-official/grok-linux-arm64/-/grok-linux-arm64-1.0.21.tgz\",\n },\n x64: {\n name: \"@xai-official/grok-linux-x64\",\n integrity:\n \"sha512-AjDV5ifEz5LFG2Jt5IlhAeEkJati/wOvCchVbR4eIj2ogjvmXoXlzBrYRXuAJpXBy5q0se/Yuez5FxDU9Ju81w==\",\n tarballUrl: \"https://registry.npmjs.org/@xai-official/grok-linux-x64/-/grok-linux-x64-1.0.21.tgz\",\n },\n },\n};\n", "import { type ChildProcess, execFile } from \"node:child_process\";\nimport { constants } from \"node:fs\";\nimport { access, chmod, lstat, realpath, unlink } from \"node:fs/promises\";\nimport { tmpdir } from \"node:os\";\nimport { join } from \"node:path\";\nimport { LocalPathError } from \"../filesystem/path-error.ts\";\nimport type { PlatformSupport, ProcessTableEntry, ProcessTreeIdentity } from \"./contracts.ts\";\n\nconst PROCESS_TABLE_TIMEOUT_MILLISECONDS = 1_000;\nconst PROCESS_TABLE_OUTPUT_LIMIT_BYTES = 1024 * 1024;\n\nexport function parseProcessTable(output: string): readonly ProcessTableEntry[] {\n const entries: ProcessTableEntry[] = [];\n for (const line of output.split(\"\\n\")) {\n const groups = /^\\s*(?<pid>\\d+)\\s+(?<ppid>\\d+)\\s+(?<pgid>\\d+)\\s*$/.exec(line)?.groups;\n if (groups === undefined) {\n continue;\n }\n const processId = Number(groups[\"pid\"]);\n const parentProcessId = Number(groups[\"ppid\"]);\n const processGroupId = Number(groups[\"pgid\"]);\n if (\n !Number.isSafeInteger(processId) ||\n processId <= 0 ||\n !Number.isSafeInteger(parentProcessId) ||\n parentProcessId < 0 ||\n !Number.isSafeInteger(processGroupId) ||\n processGroupId <= 0\n ) {\n continue;\n }\n entries.push({ parentProcessId, processGroupId, processId });\n }\n return entries;\n}\n\nexport function readProcessTableWithPs(executable: string): Promise<readonly ProcessTableEntry[]> {\n return new Promise((resolveTable) => {\n execFile(\n executable,\n [\"-axo\", \"pid=,ppid=,pgid=\"],\n {\n encoding: \"utf8\",\n maxBuffer: PROCESS_TABLE_OUTPUT_LIMIT_BYTES,\n signal: AbortSignal.timeout(PROCESS_TABLE_TIMEOUT_MILLISECONDS),\n timeout: PROCESS_TABLE_TIMEOUT_MILLISECONDS,\n },\n (error, stdout) => {\n resolveTable(error === null ? parseProcessTable(stdout) : []);\n },\n );\n });\n}\n\nexport function processExists(processId: number): boolean {\n try {\n process.kill(processId, 0);\n return true;\n } catch {\n return false;\n }\n}\n\nexport function signalCapturedProcesses(\n processes: readonly ProcessTreeIdentity[],\n rootProcessId: number,\n signal: number,\n): void {\n const processIds = new Set(processes.map((identity) => identity.processId));\n const signalledGroups = new Set<number>();\n for (const identity of processes) {\n const isRootProcessGroup = identity.processGroupId === rootProcessId;\n if (\n (!isRootProcessGroup && !processIds.has(identity.processGroupId)) ||\n signalledGroups.has(identity.processGroupId)\n ) {\n continue;\n }\n try {\n process.kill(-identity.processGroupId, signal);\n signalledGroups.add(identity.processGroupId);\n } catch {\n // A concurrently exited group no longer needs cleanup.\n }\n }\n for (const identity of processes) {\n if (\n identity.processId === rootProcessId ||\n identity.processGroupId === rootProcessId ||\n signalledGroups.has(identity.processGroupId)\n ) {\n continue;\n }\n try {\n process.kill(identity.processId, signal);\n } catch {\n // A concurrently exited process no longer needs cleanup.\n }\n }\n}\n\nfunction terminateProcess(child: ChildProcess, signal: NodeJS.Signals): void {\n if (child.exitCode !== null || child.signalCode !== null || child.pid === undefined) {\n return;\n }\n try {\n process.kill(-child.pid, signal);\n return;\n } catch {\n // Fall through when the child did not create a process group.\n }\n child.kill(signal);\n}\n\nasync function removeControlSocket(path: string): Promise<void> {\n try {\n await unlink(path);\n } catch (cause) {\n if (!(cause instanceof Error) || !(\"code\" in cause) || cause.code !== \"ENOENT\") {\n throw cause;\n }\n }\n}\n\nexport const posixOperations = {\n controlSocketPath: (installationHash: string) => join(tmpdir(), `mobius-${installationHash}.sock`),\n prepareControlSocket: removeControlSocket,\n secureControlSocket: async (path: string) => {\n await chmod(path, 0o600);\n },\n removeControlSocket,\n\n pathDelimiter: \":\",\n environmentValue: (environment: Readonly<NodeJS.ProcessEnv>, name: string) => environment[name],\n executableExtensions: () => [\"\"],\n resolveExecutableTarget: async (path: string) => {\n const target = await realpath(path);\n await access(target, constants.X_OK);\n return target;\n },\n executableLaunch: (command: string, args: readonly string[]) => ({ command, arguments: args }),\n spawnOptions: { detached: true, windowsHide: true },\n signalCapturedProcesses,\n terminateProcess,\n validatePathPermissions: async (path: string, directory: boolean, privateAccess: boolean, signal: AbortSignal) => {\n signal.throwIfAborted();\n const metadata = await lstat(path);\n if (process.getuid === undefined || metadata.uid !== process.getuid()) {\n throw new LocalPathError(\"Path is not user-owned\");\n }\n if (privateAccess) {\n await chmod(path, directory ? 0o700 : 0o600);\n }\n signal.throwIfAborted();\n },\n} satisfies Pick<\n PlatformSupport,\n | \"controlSocketPath\"\n | \"prepareControlSocket\"\n | \"secureControlSocket\"\n | \"removeControlSocket\"\n | \"pathDelimiter\"\n | \"environmentValue\"\n | \"executableExtensions\"\n | \"resolveExecutableTarget\"\n | \"executableLaunch\"\n | \"spawnOptions\"\n | \"signalCapturedProcesses\"\n | \"terminateProcess\"\n | \"validatePathPermissions\"\n>;\n", "export class LocalPathError extends Error {\n readonly code = \"unsafe_local_path\";\n\n constructor(message: string, options: ErrorOptions = {}) {\n super(message, options);\n this.name = \"LocalPathError\";\n }\n}\n", "import { isAbsolute, join } from \"node:path\";\nimport type { PlatformSupport } from \"./contracts.ts\";\nimport { posixOperations, processExists, readProcessTableWithPs } from \"./posix.ts\";\n\nconst WORKBUDDY_MACOS_EXECUTABLE_PATH = Object.freeze([\n \"WorkBuddy.app\",\n \"Contents\",\n \"Resources\",\n \"app.asar.unpacked\",\n \"cli\",\n \"bin\",\n \"codebuddy\",\n]);\n\nexport const macosPlatform: PlatformSupport = {\n ...posixOperations,\n readProcessTable: () => readProcessTableWithPs(\"/bin/ps\"),\n readProcessTableSynchronously: () => [],\n processExists,\n workBuddyExecutablePaths: (environment) => {\n const paths = [join(\"/Applications\", ...WORKBUDDY_MACOS_EXECUTABLE_PATH)];\n const homeDirectory = environment[\"HOME\"];\n if (homeDirectory !== undefined && isAbsolute(homeDirectory)) {\n paths.unshift(join(homeDirectory, \"Applications\", ...WORKBUDDY_MACOS_EXECUTABLE_PATH));\n }\n return paths;\n },\n openCodeArchives: {\n arm64: {\n asset: \"opencode-darwin-arm64.zip\",\n sha256: \"fe764f7f360c584a83e18dd5f23fb1a6b2725f5ee8854b0252fe558f7798e946\",\n format: \"zip\",\n },\n x64: {\n asset: \"opencode-darwin-x64.zip\",\n sha256: \"9858853e7bacdbbd22c2d70c377e009dc4b354dd04f5588705411e7afb89fd2d\",\n format: \"zip\",\n },\n },\n grokDependencies: {\n arm64: {\n name: \"@xai-official/grok-darwin-arm64\",\n integrity:\n \"sha512-I4pKZGnR6Mv4MJOJsB9B/i2o0ODF4eZtp4jHN5feoTqKIeAUVg38OzBtE8aN/wZa7Xg+qhnf6Jd1tcAFvMoFtQ==\",\n tarballUrl: \"https://registry.npmjs.org/@xai-official/grok-darwin-arm64/-/grok-darwin-arm64-1.0.21.tgz\",\n },\n x64: {\n name: \"@xai-official/grok-darwin-x64\",\n integrity:\n \"sha512-h0nFj3NZ9Kz8w6fQ6UDxxeSIhC1WjwwoRE92iNbG//tZy6YGkppR3s7oRVtt4Xl0CJANKUt0EusyIYnnAvKLzw==\",\n tarballUrl: \"https://registry.npmjs.org/@xai-official/grok-darwin-x64/-/grok-darwin-x64-1.0.21.tgz\",\n },\n },\n};\n", "import { type ChildProcess, execFile } from \"node:child_process\";\nimport { readFile, realpath } from \"node:fs/promises\";\nimport { dirname, extname, join, resolve } from \"node:path\";\nimport { promisify } from \"node:util\";\nimport { LocalPathError } from \"../filesystem/path-error.ts\";\nimport { ProcessExecutionError } from \"../process/process-error.ts\";\nimport type { PlatformSupport, ProcessLaunch, ProcessTableEntry, ProcessTreeIdentity } from \"./contracts.ts\";\nimport { parseProcessTable, processExists } from \"./posix.ts\";\n\nconst execute = promisify(execFile);\n\nfunction environmentValue(environment: Readonly<NodeJS.ProcessEnv>, name: string): string | undefined {\n return Object.entries(environment).find(([key]) => key.toUpperCase() === name.toUpperCase())?.[1];\n}\n\nfunction executableExtensions(executableName: string, environment: Readonly<NodeJS.ProcessEnv>): readonly string[] {\n if (/\\.[a-zA-Z0-9]+$/.test(executableName)) {\n return [\"\"];\n }\n const configured = environmentValue(environment, \"PATHEXT\") ?? \".COM;.EXE;.BAT;.CMD\";\n const extensions = configured\n .split(\";\")\n .map((extension) => extension.trim())\n .filter((extension) => extension.length > 0)\n .map((extension) => (extension.startsWith(\".\") ? extension : `.${extension}`));\n return extensions.length > 0 ? extensions : [\".EXE\"];\n}\n\nasync function resolveExecutableTarget(path: string): Promise<string> {\n let resolvedPath: string;\n try {\n resolvedPath = await realpath(extname(path) === \"\" ? `${path}.cmd` : path);\n } catch (cause) {\n if (extname(path) !== \"\" || !(cause instanceof Error) || !(\"code\" in cause) || cause.code !== \"ENOENT\") {\n throw cause;\n }\n resolvedPath = await realpath(path);\n }\n if (extname(resolvedPath).toLowerCase() === \".cmd\") {\n // npm cmd-shim entrypoints are Node scripts. Resolve the script instead of\n // handing untrusted arguments to cmd.exe's command language.\n const shim = await readFile(resolvedPath, \"utf8\");\n const script = /\"%_prog%\"\\s+\"%dp0%[\\\\/]([^\"\\r\\n]+\\.(?:js|mjs|cjs))\"\\s+%\\*/iu.exec(shim)?.[1];\n if (script !== undefined && shim.includes(\"SET dp0=%~dp0\")) {\n resolvedPath = await realpath(resolve(dirname(resolvedPath), script));\n } else {\n const pnpmScript = /^\\s*node\\s+\"%~dp0[\\\\/]([^\"\\r\\n]+\\.(?:js|mjs|cjs))\"\\s+%\\*\\s*$/imu.exec(shim)?.[1];\n if (pnpmScript === undefined || !shim.includes(\"@SETLOCAL\")) {\n throw new ProcessExecutionError(\n \"process_unsupported_script\",\n \"Use a native executable or a verified Node entrypoint\",\n );\n }\n resolvedPath = await realpath(resolve(dirname(resolvedPath), pnpmScript));\n }\n }\n return resolvedPath;\n}\n\nfunction executableLaunch(command: string, args: readonly string[]): ProcessLaunch {\n if (/\\.(?:js|mjs|cjs)$/iu.test(command)) {\n return { command: process.execPath, arguments: [command, ...args] };\n }\n if (/\\.(?:cmd|bat)$/iu.test(command)) {\n throw new ProcessExecutionError(\n \"process_unsupported_script\",\n \"Use a native executable or a verified Node entrypoint\",\n );\n }\n return { command, arguments: args };\n}\n\nfunction readProcessTable(): Promise<readonly ProcessTableEntry[]> {\n const systemRoot = environmentValue(process.env, \"SystemRoot\");\n if (systemRoot === undefined) {\n return Promise.resolve([]);\n }\n return new Promise((resolveTable) => {\n execFile(\n join(systemRoot, \"System32\", \"WindowsPowerShell\", \"v1.0\", \"powershell.exe\"),\n [\n \"-NoLogo\",\n \"-NoProfile\",\n \"-NonInteractive\",\n \"-Command\",\n \"Get-CimInstance Win32_Process | ForEach-Object { '{0} {1} {0}' -f $_.ProcessId, $_.ParentProcessId }\",\n ],\n {\n encoding: \"utf8\",\n windowsHide: true,\n timeout: 10000,\n signal: AbortSignal.timeout(10000),\n maxBuffer: 1024 * 1024,\n },\n (error, stdout) => resolveTable(error === null ? parseProcessTable(stdout) : []),\n );\n });\n}\n\nfunction signalCapturedProcesses(\n processes: readonly ProcessTreeIdentity[],\n _rootProcessId: number,\n signal: number,\n): void {\n for (const identity of [...processes].reverse()) {\n try {\n process.kill(identity.processId, signal);\n } catch {\n // A concurrently exited process no longer needs cleanup.\n }\n }\n}\n\nfunction terminateProcess(child: ChildProcess, signal: NodeJS.Signals): void {\n if (child.exitCode !== null || child.signalCode !== null || child.pid === undefined) {\n return;\n }\n child.kill(signal);\n}\n\n// The path is data in the environment, never interpolated into PowerShell source.\nconst windowsPermissions = `\n$ErrorActionPreference = 'Stop'\nImport-Module (Join-Path $PSHOME 'Modules/Microsoft.PowerShell.Security/Microsoft.PowerShell.Security.psd1')\n$item = Get-Item -LiteralPath $env:MOBIUS_PERMISSION_PATH -Force\nif (($item.Attributes -band [IO.FileAttributes]::ReparsePoint) -ne 0) { throw 'Unsafe path' }\n$sid = [Security.Principal.WindowsIdentity]::GetCurrent().User\n$acl = Get-Acl -LiteralPath $item.FullName\n$owner = $acl.GetOwner([Security.Principal.SecurityIdentifier])\nif ($owner -ne $sid -and -not ($owner.Value -eq 'S-1-5-32-544' -and ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator))) { throw 'Path is not user-owned' }\nif ($env:MOBIUS_PERMISSION_PRIVATE -eq '1') {\n if ($item.PSIsContainer) {\n $private = New-Object Security.AccessControl.DirectorySecurity\n $rule = New-Object Security.AccessControl.FileSystemAccessRule($sid, 'FullControl', 'ContainerInherit,ObjectInherit', 'None', 'Allow')\n } else {\n $private = New-Object Security.AccessControl.FileSecurity\n $rule = New-Object Security.AccessControl.FileSystemAccessRule($sid, 'FullControl', 'Allow')\n }\n $private.SetOwner($sid)\n $private.SetAccessRuleProtection($true, $false)\n $private.AddAccessRule($rule)\n Set-Acl -LiteralPath $item.FullName -AclObject $private\n}\n`;\n\nasync function validatePathPermissions(\n path: string,\n _directory: boolean,\n privateAccess: boolean,\n signal: AbortSignal,\n): Promise<void> {\n signal.throwIfAborted();\n const systemRoot = environmentValue(process.env, \"SystemRoot\");\n if (systemRoot === undefined) {\n throw new LocalPathError(\"Windows system directory is unavailable\");\n }\n try {\n await execute(\n join(systemRoot, \"System32\", \"WindowsPowerShell\", \"v1.0\", \"powershell.exe\"),\n [\n \"-NoLogo\",\n \"-NoProfile\",\n \"-NonInteractive\",\n \"-EncodedCommand\",\n Buffer.from(windowsPermissions, \"utf16le\").toString(\"base64\"),\n ],\n {\n env: {\n ...process.env,\n MOBIUS_PERMISSION_PATH: path,\n MOBIUS_PERMISSION_PRIVATE: privateAccess ? \"1\" : \"0\",\n },\n windowsHide: true,\n signal: AbortSignal.any([signal, AbortSignal.timeout(10000)]),\n timeout: 10000,\n maxBuffer: 16384,\n },\n );\n } catch (cause) {\n signal.throwIfAborted();\n throw new LocalPathError(\"The local path permissions could not be secured\", { cause });\n }\n}\n\nexport const windowsPlatform: PlatformSupport = {\n controlSocketPath: (installationHash) => `\\\\\\\\.\\\\pipe\\\\mobius-${installationHash}`,\n prepareControlSocket: async () => {},\n secureControlSocket: async () => {},\n removeControlSocket: async () => {},\n\n pathDelimiter: \";\",\n environmentValue,\n executableExtensions,\n resolveExecutableTarget,\n executableLaunch,\n spawnOptions: { detached: false, windowsHide: true },\n signalCapturedProcesses,\n terminateProcess,\n validatePathPermissions,\n readProcessTable,\n readProcessTableSynchronously: () => [],\n processExists,\n workBuddyExecutablePaths: () => [],\n openCodeArchives: {},\n grokDependencies: {},\n};\n", "export class ProcessExecutionError extends Error {\n readonly code: string;\n\n constructor(code: string, message: string, options: ErrorOptions = {}) {\n super(message, options);\n this.code = code;\n this.name = \"ProcessExecutionError\";\n }\n}\n", "import type { PlatformSupport } from \"./contracts.ts\";\nimport { linuxPlatform } from \"./linux.ts\";\nimport { macosPlatform } from \"./macos.ts\";\nimport { posixOperations, processExists, readProcessTableWithPs } from \"./posix.ts\";\nimport { windowsPlatform } from \"./windows.ts\";\n\n// Preserve the existing fallback for other POSIX hosts.\nconst fallbackPlatform: PlatformSupport = {\n ...posixOperations,\n readProcessTable: () => readProcessTableWithPs(\"/usr/bin/ps\"),\n readProcessTableSynchronously: () => [],\n processExists,\n workBuddyExecutablePaths: () => [],\n openCodeArchives: {},\n grokDependencies: {},\n};\nconst platforms: ReadonlyMap<NodeJS.Platform, PlatformSupport> = new Map([\n [\"linux\", linuxPlatform],\n [\"darwin\", macosPlatform],\n [\"win32\", windowsPlatform],\n]);\n\nexport function platformSupportFor(platform: NodeJS.Platform): PlatformSupport {\n return platforms.get(platform) ?? fallbackPlatform;\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["stat", "join", "resolve", "constants", "access", "realpath", "join", "join", "realpath", "access", "constants", "processExists", "join", "join", "execFile", "readFile", "realpath", "join", "execFile", "realpath", "readFile", "join", "signalCapturedProcesses", "terminateProcess", "resolve", "stat", "join", "readProcessTable", "executableLaunch"]
7
+ }
@@ -0,0 +1,5 @@
1
+ export declare class ProcessExecutionError extends Error {
2
+ readonly code: string;
3
+ constructor(code: string, message: string, options?: ErrorOptions);
4
+ }
5
+ //# sourceMappingURL=process-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-error.d.ts","sourceRoot":"","sources":["../../src/process/process-error.ts"],"names":[],"mappings":"AAAA,qBAAa,qBAAsB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,YAAY,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,EAIpE;CACJ"}
@@ -0,0 +1,9 @@
1
+ export class ProcessExecutionError extends Error {
2
+ code;
3
+ constructor(code, message, options = {}) {
4
+ super(message, options);
5
+ this.code = code;
6
+ this.name = "ProcessExecutionError";
7
+ }
8
+ }
9
+ //# sourceMappingURL=process-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-error.js","sourceRoot":"","sources":["../../src/process/process-error.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IACnC,IAAI,CAAS;IAEtB,YAAY,IAAY,EAAE,OAAe,EAAE,OAAO,GAAiB,EAAE;QACjE,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACxC,CAAC;CACJ"}