alchemylab-opencode 1.0.4 → 1.0.6
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.
- package/build.mjs +31 -2
- package/dist/{chunk-KMHCMDYS.js → chunk-ANDTK76Q.js} +14 -4
- package/dist/{chunk-KMHCMDYS.js.map → chunk-ANDTK76Q.js.map} +1 -1
- package/dist/{chunk-CMAI7CAJ.js → chunk-B3FN2B2N.js} +14 -4
- package/dist/{chunk-CMAI7CAJ.js.map → chunk-B3FN2B2N.js.map} +1 -1
- package/dist/chunk-BI5OUHTQ.js +31 -0
- package/dist/{chunk-P44FI4UK.js.map → chunk-BI5OUHTQ.js.map} +1 -1
- package/dist/{chunk-FPPWDLO7.js → chunk-CR6IREZA.js} +12 -2
- package/dist/{chunk-FPPWDLO7.js.map → chunk-CR6IREZA.js.map} +1 -1
- package/dist/{chunk-K4ME3WTI.js → chunk-CYXMV3J3.js} +18 -8
- package/dist/{chunk-K4ME3WTI.js.map → chunk-CYXMV3J3.js.map} +1 -1
- package/dist/{chunk-NBI23JB4.js → chunk-DSPC5QIG.js} +24 -14
- package/dist/{chunk-NBI23JB4.js.map → chunk-DSPC5QIG.js.map} +1 -1
- package/dist/{chunk-7JG6KCBC.js → chunk-HORZKFCR.js} +11 -1
- package/dist/{chunk-SM4I7RU4.js → chunk-MCWTARFP.js} +15 -5
- package/dist/{chunk-SM4I7RU4.js.map → chunk-MCWTARFP.js.map} +1 -1
- package/dist/{chunk-WCK3PNT7.js → chunk-UWZSRZHA.js} +20 -10
- package/dist/{chunk-WCK3PNT7.js.map → chunk-UWZSRZHA.js.map} +1 -1
- package/dist/mcp-VAU4RMWH.js +22 -0
- package/dist/pty.node-RHOAUGH6.js +40 -0
- package/dist/{pty.node-IR7ZMJYY.js.map → pty.node-RHOAUGH6.js.map} +1 -1
- package/dist/registry-PYMN6L3G.js +23 -0
- package/dist/{run-HRWKT4NL.js → run-YFVCQJQM.js} +20 -10
- package/dist/{run-HRWKT4NL.js.map → run-YFVCQJQM.js.map} +1 -1
- package/dist/run-service-LHEVFBIU.js +22 -0
- package/dist/run.js +11 -1
- package/dist/run.js.map +1 -1
- package/dist/schema-32EBFLEO.js +24 -0
- package/dist/serve.js +11 -1
- package/dist/serve.js.map +1 -1
- package/dist/server-K3UGWASP.js +26 -0
- package/dist/session-HJFWTM7C.js +23 -0
- package/dist/share-next-55VCIMUH.js +24 -0
- package/dist/{worktree-E5I74P2A.js → worktree-6GGDLADY.js} +19 -9
- package/dist/{worktree-E5I74P2A.js.map → worktree-6GGDLADY.js.map} +1 -1
- package/package.json +2 -8
- package/dist/chunk-P44FI4UK.js +0 -21
- package/dist/mcp-6ID7DRNS.js +0 -12
- package/dist/pty.node-IR7ZMJYY.js +0 -30
- package/dist/registry-O4THPVFS.js +0 -13
- package/dist/run-service-23VXHTA6.js +0 -12
- package/dist/schema-YARWYUAH.js +0 -14
- package/dist/server-MHSLBRNZ.js +0 -16
- package/dist/session-3UEFY5NC.js +0 -13
- package/dist/share-next-Q5WQ2ELY.js +0 -14
- /package/dist/{chunk-7JG6KCBC.js.map → chunk-HORZKFCR.js.map} +0 -0
- /package/dist/{mcp-6ID7DRNS.js.map → mcp-VAU4RMWH.js.map} +0 -0
- /package/dist/{registry-O4THPVFS.js.map → registry-PYMN6L3G.js.map} +0 -0
- /package/dist/{run-service-23VXHTA6.js.map → run-service-LHEVFBIU.js.map} +0 -0
- /package/dist/{schema-YARWYUAH.js.map → schema-32EBFLEO.js.map} +0 -0
- /package/dist/{server-MHSLBRNZ.js.map → server-K3UGWASP.js.map} +0 -0
- /package/dist/{session-3UEFY5NC.js.map → session-HJFWTM7C.js.map} +0 -0
- /package/dist/{share-next-Q5WQ2ELY.js.map → share-next-55VCIMUH.js.map} +0 -0
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../packages/opencode/src/effect/run-service.ts", "../packages/opencode/src/bus/global.ts", "../packages/opencode/src/effect/instance-registry.ts", "../packages/opencode/src/util/filesystem.ts", "../packages/opencode/src/util/glob.ts", "../packages/opencode/src/util/iife.ts", "../packages/opencode/src/util/log.ts", "../packages/opencode/src/global/index.ts", "../packages/opencode/src/util/context.ts", "../packages/opencode/src/project/project.ts", "../packages/opencode/src/storage/db.ts", "../packages/opencode/src/util/lazy.ts", "../packages/util/src/error.ts", "../packages/opencode/src/flag/flag.ts", "../packages/opencode/src/installation/meta.ts", "../packages/opencode/src/effect/instance-state.ts", "../packages/opencode/src/effect/instance-ref.ts", "../packages/opencode/src/storage/db.node.ts", "../packages/opencode/src/project/project.sql.ts", "../packages/opencode/src/storage/schema.sql.ts", "../packages/opencode/src/session/session.sql.ts", "../packages/opencode/src/bus/bus-event.ts", "../packages/opencode/src/util/which.ts", "../packages/opencode/src/project/schema.ts", "../packages/opencode/src/filesystem/index.ts", "../packages/opencode/src/effect/cross-spawn-spawner.ts", "../packages/opencode/src/project/state.ts", "../packages/opencode/src/project/instance.ts"],
|
|
4
4
|
"sourcesContent": ["import { Effect, Layer, ManagedRuntime } from \"effect\"\nimport * as ServiceMap from \"effect/ServiceMap\"\nimport { Instance } from \"@/project/instance\"\nimport { Context } from \"@/util/context\"\nimport { InstanceRef } from \"./instance-ref\"\n\nexport const memoMap = Layer.makeMemoMapUnsafe()\n\nfunction attach<A, E, R>(effect: Effect.Effect<A, E, R>): Effect.Effect<A, E, R> {\n try {\n const ctx = Instance.current\n return Effect.provideService(effect, InstanceRef, ctx)\n } catch (err) {\n if (!(err instanceof Context.NotFound)) throw err\n }\n return effect\n}\n\nexport function makeRuntime<I, S, E>(service: ServiceMap.Service<I, S>, layer: Layer.Layer<I, E>) {\n let rt: ManagedRuntime.ManagedRuntime<I, E> | undefined\n const getRuntime = () => (rt ??= ManagedRuntime.make(layer, { memoMap }))\n\n return {\n runSync: <A, Err>(fn: (svc: S) => Effect.Effect<A, Err, I>) => getRuntime().runSync(attach(service.use(fn))),\n runPromiseExit: <A, Err>(fn: (svc: S) => Effect.Effect<A, Err, I>, options?: Effect.RunOptions) =>\n getRuntime().runPromiseExit(attach(service.use(fn)), options),\n runPromise: <A, Err>(fn: (svc: S) => Effect.Effect<A, Err, I>, options?: Effect.RunOptions) =>\n getRuntime().runPromise(attach(service.use(fn)), options),\n runFork: <A, Err>(fn: (svc: S) => Effect.Effect<A, Err, I>) => getRuntime().runFork(attach(service.use(fn))),\n runCallback: <A, Err>(fn: (svc: S) => Effect.Effect<A, Err, I>) =>\n getRuntime().runCallback(attach(service.use(fn))),\n }\n}\n", "import { EventEmitter } from \"events\"\n\nexport const GlobalBus = new EventEmitter<{\n event: [\n {\n directory?: string\n payload: any\n },\n ]\n}>()\n", "const disposers = new Set<(directory: string) => Promise<void>>()\n\nexport function registerDisposer(disposer: (directory: string) => Promise<void>) {\n disposers.add(disposer)\n return () => {\n disposers.delete(disposer)\n }\n}\n\nexport async function disposeInstance(directory: string) {\n await Promise.allSettled([...disposers].map((disposer) => disposer(directory)))\n}\n", "import { chmod, mkdir, readFile, stat as statFile, writeFile } from \"fs/promises\"\nimport { createWriteStream, existsSync, statSync } from \"fs\"\nimport { lookup } from \"mime-types\"\nimport { realpathSync } from \"fs\"\nimport { dirname, join, relative, resolve as pathResolve, win32 } from \"path\"\nimport { Readable } from \"stream\"\nimport { pipeline } from \"stream/promises\"\nimport { Glob } from \"./glob\"\n\nexport namespace Filesystem {\n // Fast sync version for metadata checks\n export async function exists(p: string): Promise<boolean> {\n return existsSync(p)\n }\n\n export async function isDir(p: string): Promise<boolean> {\n try {\n return statSync(p).isDirectory()\n } catch {\n return false\n }\n }\n\n export function stat(p: string): ReturnType<typeof statSync> | undefined {\n return statSync(p, { throwIfNoEntry: false }) ?? undefined\n }\n\n export async function statAsync(p: string): Promise<ReturnType<typeof statSync> | undefined> {\n return statFile(p).catch((e) => {\n if (isEnoent(e)) return undefined\n throw e\n })\n }\n\n export async function size(p: string): Promise<number> {\n const s = stat(p)?.size ?? 0\n return typeof s === \"bigint\" ? Number(s) : s\n }\n\n export async function readText(p: string): Promise<string> {\n return readFile(p, \"utf-8\")\n }\n\n export async function readJson<T = any>(p: string): Promise<T> {\n return JSON.parse(await readFile(p, \"utf-8\"))\n }\n\n export async function readBytes(p: string): Promise<Buffer> {\n return readFile(p)\n }\n\n export async function readArrayBuffer(p: string): Promise<ArrayBuffer> {\n const buf = await readFile(p)\n return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength) as ArrayBuffer\n }\n\n function isEnoent(e: unknown): e is { code: \"ENOENT\" } {\n return typeof e === \"object\" && e !== null && \"code\" in e && (e as { code: string }).code === \"ENOENT\"\n }\n\n export async function write(p: string, content: string | Buffer | Uint8Array, mode?: number): Promise<void> {\n try {\n if (mode) {\n await writeFile(p, content, { mode })\n } else {\n await writeFile(p, content)\n }\n } catch (e) {\n if (isEnoent(e)) {\n await mkdir(dirname(p), { recursive: true })\n if (mode) {\n await writeFile(p, content, { mode })\n } else {\n await writeFile(p, content)\n }\n return\n }\n throw e\n }\n }\n\n export async function writeJson(p: string, data: unknown, mode?: number): Promise<void> {\n return write(p, JSON.stringify(data, null, 2), mode)\n }\n\n export async function writeStream(\n p: string,\n stream: ReadableStream<Uint8Array> | Readable,\n mode?: number,\n ): Promise<void> {\n const dir = dirname(p)\n if (!existsSync(dir)) {\n await mkdir(dir, { recursive: true })\n }\n\n const nodeStream = stream instanceof ReadableStream ? Readable.fromWeb(stream as any) : stream\n const writeStream = createWriteStream(p)\n await pipeline(nodeStream, writeStream)\n\n if (mode) {\n await chmod(p, mode)\n }\n }\n\n export function mimeType(p: string): string {\n return lookup(p) || \"application/octet-stream\"\n }\n\n /**\n * On Windows, normalize a path to its canonical casing using the filesystem.\n * This is needed because Windows paths are case-insensitive but LSP servers\n * may return paths with different casing than what we send them.\n */\n export function normalizePath(p: string): string {\n if (process.platform !== \"win32\") return p\n const resolved = win32.normalize(win32.resolve(windowsPath(p)))\n try {\n return realpathSync.native(resolved)\n } catch {\n return resolved\n }\n }\n\n export function normalizePathPattern(p: string): string {\n if (process.platform !== \"win32\") return p\n if (p === \"*\") return p\n const match = p.match(/^(.*)[\\\\/]\\*$/)\n if (!match) return normalizePath(p)\n const dir = /^[A-Za-z]:$/.test(match[1]) ? match[1] + \"\\\\\" : match[1]\n return join(normalizePath(dir), \"*\")\n }\n\n // We cannot rely on path.resolve() here because git.exe may come from Git Bash, Cygwin, or MSYS2, so we need to translate these paths at the boundary.\n // Also resolves symlinks so that callers using the result as a cache key\n // always get the same canonical path for a given physical directory.\n export function resolve(p: string): string {\n const resolved = pathResolve(windowsPath(p))\n try {\n return normalizePath(realpathSync(resolved))\n } catch (e) {\n if (isEnoent(e)) return normalizePath(resolved)\n throw e\n }\n }\n\n export function windowsPath(p: string): string {\n if (process.platform !== \"win32\") return p\n return (\n p\n .replace(/^\\/([a-zA-Z]):(?:[\\\\/]|$)/, (_, drive) => `${drive.toUpperCase()}:/`)\n // Git Bash for Windows paths are typically /<drive>/...\n .replace(/^\\/([a-zA-Z])(?:\\/|$)/, (_, drive) => `${drive.toUpperCase()}:/`)\n // Cygwin git paths are typically /cygdrive/<drive>/...\n .replace(/^\\/cygdrive\\/([a-zA-Z])(?:\\/|$)/, (_, drive) => `${drive.toUpperCase()}:/`)\n // WSL paths are typically /mnt/<drive>/...\n .replace(/^\\/mnt\\/([a-zA-Z])(?:\\/|$)/, (_, drive) => `${drive.toUpperCase()}:/`)\n )\n }\n export function overlaps(a: string, b: string) {\n const relA = relative(a, b)\n const relB = relative(b, a)\n return !relA || !relA.startsWith(\"..\") || !relB || !relB.startsWith(\"..\")\n }\n\n export function contains(parent: string, child: string) {\n return !relative(parent, child).startsWith(\"..\")\n }\n\n export async function findUp(\n target: string,\n start: string,\n stop?: string,\n options?: { rootFirst?: boolean },\n ): Promise<string[]>\n export async function findUp(\n target: string[],\n start: string,\n stop?: string,\n options?: { rootFirst?: boolean },\n ): Promise<string[]>\n export async function findUp(\n target: string | string[],\n start: string,\n stop?: string,\n options?: { rootFirst?: boolean },\n ) {\n const dirs = [start]\n let current = start\n while (true) {\n if (stop === current) break\n const parent = dirname(current)\n if (parent === current) break\n dirs.push(parent)\n current = parent\n }\n\n const targets = Array.isArray(target) ? target : [target]\n const result = []\n for (const dir of options?.rootFirst ? dirs.toReversed() : dirs) {\n for (const item of targets) {\n const search = join(dir, item)\n if (await exists(search)) result.push(search)\n }\n }\n return result\n }\n\n export async function* up(options: { targets: string[]; start: string; stop?: string }) {\n const { targets, start, stop } = options\n let current = start\n while (true) {\n for (const target of targets) {\n const search = join(current, target)\n if (await exists(search)) yield search\n }\n if (stop === current) break\n const parent = dirname(current)\n if (parent === current) break\n current = parent\n }\n }\n\n export async function globUp(pattern: string, start: string, stop?: string) {\n let current = start\n const result = []\n while (true) {\n try {\n const matches = await Glob.scan(pattern, {\n cwd: current,\n absolute: true,\n include: \"file\",\n dot: true,\n })\n result.push(...matches)\n } catch {\n // Skip invalid glob patterns\n }\n if (stop === current) break\n const parent = dirname(current)\n if (parent === current) break\n current = parent\n }\n return result\n }\n}\n", "import { glob, globSync, type GlobOptions } from \"glob\"\nimport { minimatch } from \"minimatch\"\n\nexport namespace Glob {\n export interface Options {\n cwd?: string\n absolute?: boolean\n include?: \"file\" | \"all\"\n dot?: boolean\n symlink?: boolean\n }\n\n function toGlobOptions(options: Options): GlobOptions {\n return {\n cwd: options.cwd,\n absolute: options.absolute,\n dot: options.dot,\n follow: options.symlink ?? false,\n nodir: options.include !== \"all\",\n }\n }\n\n export async function scan(pattern: string, options: Options = {}): Promise<string[]> {\n return glob(pattern, toGlobOptions(options)) as Promise<string[]>\n }\n\n export function scanSync(pattern: string, options: Options = {}): string[] {\n return globSync(pattern, toGlobOptions(options)) as string[]\n }\n\n export function match(pattern: string, filepath: string): boolean {\n return minimatch(filepath, pattern, { dot: true })\n }\n}\n", "export function iife<T>(fn: () => T) {\n return fn()\n}\n", "import path from \"path\"\nimport fs from \"fs/promises\"\nimport { createWriteStream } from \"fs\"\nimport { Global } from \"../global\"\nimport z from \"zod\"\nimport { Glob } from \"./glob\"\n\nexport namespace Log {\n export const Level = z.enum([\"DEBUG\", \"INFO\", \"WARN\", \"ERROR\"]).meta({ ref: \"LogLevel\", description: \"Log level\" })\n export type Level = z.infer<typeof Level>\n\n const levelPriority: Record<Level, number> = {\n DEBUG: 0,\n INFO: 1,\n WARN: 2,\n ERROR: 3,\n }\n\n let level: Level = \"INFO\"\n\n function shouldLog(input: Level): boolean {\n return levelPriority[input] >= levelPriority[level]\n }\n\n export type Logger = {\n debug(message?: any, extra?: Record<string, any>): void\n info(message?: any, extra?: Record<string, any>): void\n error(message?: any, extra?: Record<string, any>): void\n warn(message?: any, extra?: Record<string, any>): void\n tag(key: string, value: string): Logger\n clone(): Logger\n time(\n message: string,\n extra?: Record<string, any>,\n ): {\n stop(): void\n [Symbol.dispose](): void\n }\n }\n\n const loggers = new Map<string, Logger>()\n\n export const Default = create({ service: \"default\" })\n\n export interface Options {\n print: boolean\n dev?: boolean\n level?: Level\n }\n\n let logpath = \"\"\n export function file() {\n return logpath\n }\n let write = (msg: any) => {\n process.stderr.write(msg)\n return msg.length\n }\n\n export async function init(options: Options) {\n if (options.level) level = options.level\n cleanup(Global.Path.log)\n if (options.print) return\n logpath = path.join(\n Global.Path.log,\n options.dev ? \"dev.log\" : new Date().toISOString().split(\".\")[0].replace(/:/g, \"\") + \".log\",\n )\n await fs.truncate(logpath).catch(() => {})\n const stream = createWriteStream(logpath, { flags: \"a\" })\n write = async (msg: any) => {\n return new Promise((resolve, reject) => {\n stream.write(msg, (err) => {\n if (err) reject(err)\n else resolve(msg.length)\n })\n })\n }\n }\n\n async function cleanup(dir: string) {\n const files = await Glob.scan(\"????-??-??T??????.log\", {\n cwd: dir,\n absolute: true,\n include: \"file\",\n })\n if (files.length <= 5) return\n\n const filesToDelete = files.slice(0, -10)\n await Promise.all(filesToDelete.map((file) => fs.unlink(file).catch(() => {})))\n }\n\n function formatError(error: Error, depth = 0): string {\n const result = error.message\n return error.cause instanceof Error && depth < 10\n ? result + \" Caused by: \" + formatError(error.cause, depth + 1)\n : result\n }\n\n let last = Date.now()\n export function create(tags?: Record<string, any>) {\n tags = tags || {}\n\n const service = tags[\"service\"]\n if (service && typeof service === \"string\") {\n const cached = loggers.get(service)\n if (cached) {\n return cached\n }\n }\n\n function build(message: any, extra?: Record<string, any>) {\n const prefix = Object.entries({\n ...tags,\n ...extra,\n })\n .filter(([_, value]) => value !== undefined && value !== null)\n .map(([key, value]) => {\n const prefix = `${key}=`\n if (value instanceof Error) return prefix + formatError(value)\n if (typeof value === \"object\") return prefix + JSON.stringify(value)\n return prefix + value\n })\n .join(\" \")\n const next = new Date()\n const diff = next.getTime() - last\n last = next.getTime()\n return [next.toISOString().split(\".\")[0], \"+\" + diff + \"ms\", prefix, message].filter(Boolean).join(\" \") + \"\\n\"\n }\n const result: Logger = {\n debug(message?: any, extra?: Record<string, any>) {\n if (shouldLog(\"DEBUG\")) {\n write(\"DEBUG \" + build(message, extra))\n }\n },\n info(message?: any, extra?: Record<string, any>) {\n if (shouldLog(\"INFO\")) {\n write(\"INFO \" + build(message, extra))\n }\n },\n error(message?: any, extra?: Record<string, any>) {\n if (shouldLog(\"ERROR\")) {\n write(\"ERROR \" + build(message, extra))\n }\n },\n warn(message?: any, extra?: Record<string, any>) {\n if (shouldLog(\"WARN\")) {\n write(\"WARN \" + build(message, extra))\n }\n },\n tag(key: string, value: string) {\n if (tags) tags[key] = value\n return result\n },\n clone() {\n return Log.create({ ...tags })\n },\n time(message: string, extra?: Record<string, any>) {\n const now = Date.now()\n result.info(message, { status: \"started\", ...extra })\n function stop() {\n result.info(message, {\n status: \"completed\",\n duration: Date.now() - now,\n ...extra,\n })\n }\n return {\n stop,\n [Symbol.dispose]() {\n stop()\n },\n }\n },\n }\n\n if (service && typeof service === \"string\") {\n loggers.set(service, result)\n }\n\n return result\n }\n}\n", "import fs from \"fs/promises\"\nimport { xdgData, xdgCache, xdgConfig, xdgState } from \"xdg-basedir\"\nimport path from \"path\"\nimport os from \"os\"\nimport { Filesystem } from \"../util/filesystem\"\n\nconst app = \"opencode\"\n\n// OPENCODE_DATA_DIR: override data/state/config/log to a custom directory (e.g. alchemylab isolation)\nconst customDataDir = process.env[\"OPENCODE_DATA_DIR\"]\nconst data = customDataDir || path.join(xdgData!, app)\nconst cache = path.join(xdgCache!, app)\nconst config = customDataDir ? path.join(customDataDir, \"config\") : path.join(xdgConfig!, app)\nconst state = customDataDir ? path.join(customDataDir, \"state\") : path.join(xdgState!, app)\n\nexport namespace Global {\n export const Path = {\n // Allow override via OPENCODE_TEST_HOME for test isolation\n get home() {\n return process.env.OPENCODE_TEST_HOME || os.homedir()\n },\n data,\n bin: path.join(cache, \"bin\"),\n log: path.join(data, \"log\"),\n cache,\n config,\n state,\n }\n}\n\nawait Promise.all([\n fs.mkdir(Global.Path.data, { recursive: true }),\n fs.mkdir(Global.Path.config, { recursive: true }),\n fs.mkdir(Global.Path.state, { recursive: true }),\n fs.mkdir(Global.Path.log, { recursive: true }),\n fs.mkdir(Global.Path.bin, { recursive: true }),\n])\n\nconst CACHE_VERSION = \"21\"\n\nconst version = await Filesystem.readText(path.join(Global.Path.cache, \"version\")).catch(() => \"0\")\n\nif (version !== CACHE_VERSION) {\n try {\n const contents = await fs.readdir(Global.Path.cache)\n await Promise.all(\n contents.map((item) =>\n fs.rm(path.join(Global.Path.cache, item), {\n recursive: true,\n force: true,\n }),\n ),\n )\n } catch (e) {}\n await Filesystem.write(path.join(Global.Path.cache, \"version\"), CACHE_VERSION)\n}\n", "import { AsyncLocalStorage } from \"async_hooks\"\n\nexport namespace Context {\n export class NotFound extends Error {\n constructor(public override readonly name: string) {\n super(`No context found for ${name}`)\n }\n }\n\n export function create<T>(name: string) {\n const storage = new AsyncLocalStorage<T>()\n return {\n use() {\n const result = storage.getStore()\n if (!result) {\n throw new NotFound(name)\n }\n return result\n },\n provide<R>(value: T, fn: () => R) {\n return storage.run(value, fn)\n },\n }\n }\n}\n", "import z from \"zod\"\nimport { and, Database, eq } from \"../storage/db\"\nimport { ProjectTable } from \"./project.sql\"\nimport { SessionTable } from \"../session/session.sql\"\nimport { Log } from \"../util/log\"\nimport { Flag } from \"@/flag/flag\"\nimport { BusEvent } from \"@/bus/bus-event\"\nimport { GlobalBus } from \"@/bus/global\"\nimport { which } from \"../util/which\"\nimport { ProjectID } from \"./schema\"\nimport { Effect, Layer, Path, Scope, ServiceMap, Stream } from \"effect\"\nimport { ChildProcess, ChildProcessSpawner } from \"effect/unstable/process\"\nimport { NodeFileSystem, NodePath } from \"@effect/platform-node\"\nimport { makeRuntime } from \"@/effect/run-service\"\nimport { AppFileSystem } from \"@/filesystem\"\nimport * as CrossSpawnSpawner from \"@/effect/cross-spawn-spawner\"\n\nexport namespace Project {\n const log = Log.create({ service: \"project\" })\n\n export const Info = z\n .object({\n id: ProjectID.zod,\n worktree: z.string(),\n vcs: z.literal(\"git\").optional(),\n name: z.string().optional(),\n icon: z\n .object({\n url: z.string().optional(),\n override: z.string().optional(),\n color: z.string().optional(),\n })\n .optional(),\n commands: z\n .object({\n start: z.string().optional().describe(\"Startup script to run when creating a new workspace (worktree)\"),\n })\n .optional(),\n time: z.object({\n created: z.number(),\n updated: z.number(),\n initialized: z.number().optional(),\n }),\n sandboxes: z.array(z.string()),\n })\n .meta({\n ref: \"Project\",\n })\n export type Info = z.infer<typeof Info>\n\n export const Event = {\n Updated: BusEvent.define(\"project.updated\", Info),\n }\n\n type Row = typeof ProjectTable.$inferSelect\n\n export function fromRow(row: Row): Info {\n const icon =\n row.icon_url || row.icon_color\n ? { url: row.icon_url ?? undefined, color: row.icon_color ?? undefined }\n : undefined\n return {\n id: row.id,\n worktree: row.worktree,\n vcs: row.vcs ? Info.shape.vcs.parse(row.vcs) : undefined,\n name: row.name ?? undefined,\n icon,\n time: {\n created: row.time_created,\n updated: row.time_updated,\n initialized: row.time_initialized ?? undefined,\n },\n sandboxes: row.sandboxes,\n commands: row.commands ?? undefined,\n }\n }\n\n export const UpdateInput = z.object({\n projectID: ProjectID.zod,\n name: z.string().optional(),\n icon: Info.shape.icon.optional(),\n commands: Info.shape.commands.optional(),\n })\n export type UpdateInput = z.infer<typeof UpdateInput>\n\n // ---------------------------------------------------------------------------\n // Effect service\n // ---------------------------------------------------------------------------\n\n export interface Interface {\n readonly fromDirectory: (directory: string) => Effect.Effect<{ project: Info; sandbox: string }>\n readonly discover: (input: Info) => Effect.Effect<void>\n readonly list: () => Effect.Effect<Info[]>\n readonly get: (id: ProjectID) => Effect.Effect<Info | undefined>\n readonly update: (input: UpdateInput) => Effect.Effect<Info>\n readonly initGit: (input: { directory: string; project: Info }) => Effect.Effect<Info>\n readonly setInitialized: (id: ProjectID) => Effect.Effect<void>\n readonly sandboxes: (id: ProjectID) => Effect.Effect<string[]>\n readonly addSandbox: (id: ProjectID, directory: string) => Effect.Effect<void>\n readonly removeSandbox: (id: ProjectID, directory: string) => Effect.Effect<void>\n }\n\n export class Service extends ServiceMap.Service<Service, Interface>()(\"@opencode/Project\") {}\n\n type GitResult = { code: number; text: string; stderr: string }\n\n export const layer: Layer.Layer<\n Service,\n never,\n AppFileSystem.Service | Path.Path | ChildProcessSpawner.ChildProcessSpawner\n > = Layer.effect(\n Service,\n Effect.gen(function* () {\n const fs = yield* AppFileSystem.Service\n const pathSvc = yield* Path.Path\n const spawner = yield* ChildProcessSpawner.ChildProcessSpawner\n\n const git = Effect.fnUntraced(\n function* (args: string[], opts?: { cwd?: string }) {\n const handle = yield* spawner.spawn(\n ChildProcess.make(\"git\", args, { cwd: opts?.cwd, extendEnv: true, stdin: \"ignore\" }),\n )\n const [text, stderr] = yield* Effect.all(\n [Stream.mkString(Stream.decodeText(handle.stdout)), Stream.mkString(Stream.decodeText(handle.stderr))],\n { concurrency: 2 },\n )\n const code = yield* handle.exitCode\n return { code, text, stderr } satisfies GitResult\n },\n Effect.scoped,\n Effect.catch(() => Effect.succeed({ code: 1, text: \"\", stderr: \"\" } satisfies GitResult)),\n )\n\n const db = <T>(fn: (d: Parameters<typeof Database.use>[0] extends (trx: infer D) => any ? D : never) => T) =>\n Effect.sync(() => Database.use(fn))\n\n const emitUpdated = (data: Info) =>\n Effect.sync(() =>\n GlobalBus.emit(\"event\", {\n payload: { type: Event.Updated.type, properties: data },\n }),\n )\n\n const fakeVcs = Info.shape.vcs.parse(Flag.OPENCODE_FAKE_VCS)\n\n const resolveGitPath = (cwd: string, name: string) => {\n if (!name) return cwd\n name = name.replace(/[\\r\\n]+$/, \"\")\n if (!name) return cwd\n name = AppFileSystem.windowsPath(name)\n if (pathSvc.isAbsolute(name)) return pathSvc.normalize(name)\n return pathSvc.resolve(cwd, name)\n }\n\n const scope = yield* Scope.Scope\n\n const readCachedProjectId = Effect.fnUntraced(function* (dir: string) {\n return yield* fs.readFileString(pathSvc.join(dir, \"opencode\")).pipe(\n Effect.map((x) => x.trim()),\n Effect.map(ProjectID.make),\n Effect.catch(() => Effect.succeed(undefined)),\n )\n })\n\n const fromDirectory = Effect.fn(\"Project.fromDirectory\")(function* (directory: string) {\n log.info(\"fromDirectory\", { directory })\n\n // Phase 1: discover git info\n type DiscoveryResult = { id: ProjectID; worktree: string; sandbox: string; vcs: Info[\"vcs\"] }\n\n const data: DiscoveryResult = yield* Effect.gen(function* () {\n const dotgitMatches = yield* fs.up({ targets: [\".git\"], start: directory }).pipe(Effect.orDie)\n const dotgit = dotgitMatches[0]\n\n if (!dotgit) {\n return {\n id: ProjectID.global,\n worktree: \"/\",\n sandbox: \"/\",\n vcs: fakeVcs,\n }\n }\n\n let sandbox = pathSvc.dirname(dotgit)\n const gitBinary = yield* Effect.sync(() => which(\"git\"))\n let id = yield* readCachedProjectId(dotgit)\n\n if (!gitBinary) {\n return {\n id: id ?? ProjectID.global,\n worktree: sandbox,\n sandbox,\n vcs: fakeVcs,\n }\n }\n\n const commonDir = yield* git([\"rev-parse\", \"--git-common-dir\"], { cwd: sandbox })\n if (commonDir.code !== 0) {\n return {\n id: id ?? ProjectID.global,\n worktree: sandbox,\n sandbox,\n vcs: fakeVcs,\n }\n }\n const worktree = (() => {\n const common = resolveGitPath(sandbox, commonDir.text.trim())\n return common === sandbox ? sandbox : pathSvc.dirname(common)\n })()\n\n if (id == null) {\n id = yield* readCachedProjectId(pathSvc.join(worktree, \".git\"))\n }\n\n if (!id) {\n const revList = yield* git([\"rev-list\", \"--max-parents=0\", \"HEAD\"], { cwd: sandbox })\n const roots = revList.text\n .split(\"\\n\")\n .filter(Boolean)\n .map((x) => x.trim())\n .toSorted()\n\n id = roots[0] ? ProjectID.make(roots[0]) : undefined\n if (id) {\n yield* fs.writeFileString(pathSvc.join(worktree, \".git\", \"opencode\"), id).pipe(Effect.ignore)\n }\n }\n\n if (!id) {\n return { id: ProjectID.global, worktree: sandbox, sandbox, vcs: \"git\" as const }\n }\n\n const topLevel = yield* git([\"rev-parse\", \"--show-toplevel\"], { cwd: sandbox })\n if (topLevel.code !== 0) {\n return {\n id,\n worktree: sandbox,\n sandbox,\n vcs: fakeVcs,\n }\n }\n sandbox = resolveGitPath(sandbox, topLevel.text.trim())\n\n return { id, sandbox, worktree, vcs: \"git\" as const }\n })\n\n // Phase 2: upsert\n const row = yield* db((d) => d.select().from(ProjectTable).where(eq(ProjectTable.id, data.id)).get())\n const existing = row\n ? fromRow(row)\n : {\n id: data.id,\n worktree: data.worktree,\n vcs: data.vcs,\n sandboxes: [] as string[],\n time: { created: Date.now(), updated: Date.now() },\n }\n\n if (Flag.OPENCODE_EXPERIMENTAL_ICON_DISCOVERY)\n yield* discover(existing).pipe(Effect.ignore, Effect.forkIn(scope))\n\n const result: Info = {\n ...existing,\n worktree: data.worktree,\n vcs: data.vcs,\n time: { ...existing.time, updated: Date.now() },\n }\n if (data.sandbox !== result.worktree && !result.sandboxes.includes(data.sandbox))\n result.sandboxes.push(data.sandbox)\n result.sandboxes = yield* Effect.forEach(\n result.sandboxes,\n (s) =>\n fs.exists(s).pipe(\n Effect.orDie,\n Effect.map((exists) => (exists ? s : undefined)),\n ),\n { concurrency: \"unbounded\" },\n ).pipe(Effect.map((arr) => arr.filter((x): x is string => x !== undefined)))\n\n yield* db((d) =>\n d\n .insert(ProjectTable)\n .values({\n id: result.id,\n worktree: result.worktree,\n vcs: result.vcs ?? null,\n name: result.name,\n icon_url: result.icon?.url,\n icon_color: result.icon?.color,\n time_created: result.time.created,\n time_updated: result.time.updated,\n time_initialized: result.time.initialized,\n sandboxes: result.sandboxes,\n commands: result.commands,\n })\n .onConflictDoUpdate({\n target: ProjectTable.id,\n set: {\n worktree: result.worktree,\n vcs: result.vcs ?? null,\n name: result.name,\n icon_url: result.icon?.url,\n icon_color: result.icon?.color,\n time_updated: result.time.updated,\n time_initialized: result.time.initialized,\n sandboxes: result.sandboxes,\n commands: result.commands,\n },\n })\n .run(),\n )\n\n if (data.id !== ProjectID.global) {\n yield* db((d) =>\n d\n .update(SessionTable)\n .set({ project_id: data.id })\n .where(and(eq(SessionTable.project_id, ProjectID.global), eq(SessionTable.directory, data.worktree)))\n .run(),\n )\n }\n\n yield* emitUpdated(result)\n return { project: result, sandbox: data.sandbox }\n })\n\n const discover = Effect.fn(\"Project.discover\")(function* (input: Info) {\n if (input.vcs !== \"git\") return\n if (input.icon?.override) return\n if (input.icon?.url) return\n\n const matches = yield* fs\n .glob(\"**/favicon.{ico,png,svg,jpg,jpeg,webp}\", {\n cwd: input.worktree,\n absolute: true,\n include: \"file\",\n })\n .pipe(Effect.orDie)\n const shortest = matches.sort((a, b) => a.length - b.length)[0]\n if (!shortest) return\n\n const buffer = yield* fs.readFile(shortest).pipe(Effect.orDie)\n const base64 = Buffer.from(buffer).toString(\"base64\")\n const mime = AppFileSystem.mimeType(shortest)\n const url = `data:${mime};base64,${base64}`\n yield* update({ projectID: input.id, icon: { url } })\n })\n\n const list = Effect.fn(\"Project.list\")(function* () {\n return yield* db((d) => d.select().from(ProjectTable).all().map(fromRow))\n })\n\n const get = Effect.fn(\"Project.get\")(function* (id: ProjectID) {\n const row = yield* db((d) => d.select().from(ProjectTable).where(eq(ProjectTable.id, id)).get())\n return row ? fromRow(row) : undefined\n })\n\n const update = Effect.fn(\"Project.update\")(function* (input: UpdateInput) {\n const result = yield* db((d) =>\n d\n .update(ProjectTable)\n .set({\n name: input.name,\n icon_url: input.icon?.url,\n icon_color: input.icon?.color,\n commands: input.commands,\n time_updated: Date.now(),\n })\n .where(eq(ProjectTable.id, input.projectID))\n .returning()\n .get(),\n )\n if (!result) throw new Error(`Project not found: ${input.projectID}`)\n const data = fromRow(result)\n yield* emitUpdated(data)\n return data\n })\n\n const initGit = Effect.fn(\"Project.initGit\")(function* (input: { directory: string; project: Info }) {\n if (input.project.vcs === \"git\") return input.project\n if (!(yield* Effect.sync(() => which(\"git\")))) throw new Error(\"Git is not installed\")\n const result = yield* git([\"init\", \"--quiet\"], { cwd: input.directory })\n if (result.code !== 0) {\n throw new Error(result.stderr.trim() || result.text.trim() || \"Failed to initialize git repository\")\n }\n const { project } = yield* fromDirectory(input.directory)\n return project\n })\n\n const setInitialized = Effect.fn(\"Project.setInitialized\")(function* (id: ProjectID) {\n yield* db((d) =>\n d.update(ProjectTable).set({ time_initialized: Date.now() }).where(eq(ProjectTable.id, id)).run(),\n )\n })\n\n const sandboxes = Effect.fn(\"Project.sandboxes\")(function* (id: ProjectID) {\n const row = yield* db((d) => d.select().from(ProjectTable).where(eq(ProjectTable.id, id)).get())\n if (!row) return []\n const data = fromRow(row)\n return yield* Effect.forEach(\n data.sandboxes,\n (dir) =>\n fs.isDir(dir).pipe(\n Effect.orDie,\n Effect.map((ok) => (ok ? dir : undefined)),\n ),\n { concurrency: \"unbounded\" },\n ).pipe(Effect.map((arr) => arr.filter((x): x is string => x !== undefined)))\n })\n\n const addSandbox = Effect.fn(\"Project.addSandbox\")(function* (id: ProjectID, directory: string) {\n const row = yield* db((d) => d.select().from(ProjectTable).where(eq(ProjectTable.id, id)).get())\n if (!row) throw new Error(`Project not found: ${id}`)\n const sboxes = [...row.sandboxes]\n if (!sboxes.includes(directory)) sboxes.push(directory)\n const result = yield* db((d) =>\n d\n .update(ProjectTable)\n .set({ sandboxes: sboxes, time_updated: Date.now() })\n .where(eq(ProjectTable.id, id))\n .returning()\n .get(),\n )\n if (!result) throw new Error(`Project not found: ${id}`)\n yield* emitUpdated(fromRow(result))\n })\n\n const removeSandbox = Effect.fn(\"Project.removeSandbox\")(function* (id: ProjectID, directory: string) {\n const row = yield* db((d) => d.select().from(ProjectTable).where(eq(ProjectTable.id, id)).get())\n if (!row) throw new Error(`Project not found: ${id}`)\n const sboxes = row.sandboxes.filter((s) => s !== directory)\n const result = yield* db((d) =>\n d\n .update(ProjectTable)\n .set({ sandboxes: sboxes, time_updated: Date.now() })\n .where(eq(ProjectTable.id, id))\n .returning()\n .get(),\n )\n if (!result) throw new Error(`Project not found: ${id}`)\n yield* emitUpdated(fromRow(result))\n })\n\n return Service.of({\n fromDirectory,\n discover,\n list,\n get,\n update,\n initGit,\n setInitialized,\n sandboxes,\n addSandbox,\n removeSandbox,\n })\n }),\n )\n\n export const defaultLayer = layer.pipe(\n Layer.provide(CrossSpawnSpawner.defaultLayer),\n Layer.provide(AppFileSystem.defaultLayer),\n Layer.provide(NodePath.layer),\n )\n const { runPromise } = makeRuntime(Service, defaultLayer)\n\n // ---------------------------------------------------------------------------\n // Promise-based API (delegates to Effect service via runPromise)\n // ---------------------------------------------------------------------------\n\n export function fromDirectory(directory: string) {\n return runPromise((svc) => svc.fromDirectory(directory))\n }\n\n export function discover(input: Info) {\n return runPromise((svc) => svc.discover(input))\n }\n\n export function list() {\n return Database.use((db) =>\n db\n .select()\n .from(ProjectTable)\n .all()\n .map((row) => fromRow(row)),\n )\n }\n\n export function get(id: ProjectID): Info | undefined {\n const row = Database.use((db) => db.select().from(ProjectTable).where(eq(ProjectTable.id, id)).get())\n if (!row) return undefined\n return fromRow(row)\n }\n\n export function setInitialized(id: ProjectID) {\n Database.use((db) =>\n db.update(ProjectTable).set({ time_initialized: Date.now() }).where(eq(ProjectTable.id, id)).run(),\n )\n }\n\n export function initGit(input: { directory: string; project: Info }) {\n return runPromise((svc) => svc.initGit(input))\n }\n\n export function update(input: UpdateInput) {\n return runPromise((svc) => svc.update(input))\n }\n\n export function sandboxes(id: ProjectID) {\n return runPromise((svc) => svc.sandboxes(id))\n }\n\n export function addSandbox(id: ProjectID, directory: string) {\n return runPromise((svc) => svc.addSandbox(id, directory))\n }\n\n export function removeSandbox(id: ProjectID, directory: string) {\n return runPromise((svc) => svc.removeSandbox(id, directory))\n }\n}\n", "import { type NodeSQLiteDatabase } from \"drizzle-orm/node-sqlite\"\nimport { migrate } from \"drizzle-orm/node-sqlite/migrator\"\nimport { type SQLiteTransaction } from \"drizzle-orm/sqlite-core\"\nexport * from \"drizzle-orm\"\nimport { Context } from \"../util/context\"\nimport { lazy } from \"../util/lazy\"\nimport { Global } from \"../global\"\nimport { Log } from \"../util/log\"\nimport { NamedError } from \"@opencode-ai/util/error\"\nimport z from \"zod\"\nimport path from \"path\"\nimport { readFileSync, readdirSync, existsSync } from \"fs\"\nimport { Flag } from \"../flag/flag\"\nimport { CHANNEL } from \"../installation/meta\"\nimport { InstanceState } from \"@/effect/instance-state\"\nimport { iife } from \"@/util/iife\"\nimport { init } from \"#db\"\n\ndeclare const OPENCODE_MIGRATIONS: { sql: string; timestamp: number; name: string }[] | undefined\n\nexport const NotFoundError = NamedError.create(\n \"NotFoundError\",\n z.object({\n message: z.string(),\n }),\n)\n\nconst log = Log.create({ service: \"db\" })\n\nexport namespace Database {\n export function getChannelPath() {\n if ([\"latest\", \"beta\"].includes(CHANNEL) || Flag.OPENCODE_DISABLE_CHANNEL_DB)\n return path.join(Global.Path.data, \"opencode.db\")\n const safe = CHANNEL.replace(/[^a-zA-Z0-9._-]/g, \"-\")\n return path.join(Global.Path.data, `opencode-${safe}.db`)\n }\n\n export const Path = iife(() => {\n if (Flag.OPENCODE_DB) {\n if (Flag.OPENCODE_DB === \":memory:\" || path.isAbsolute(Flag.OPENCODE_DB)) return Flag.OPENCODE_DB\n return path.join(Global.Path.data, Flag.OPENCODE_DB)\n }\n return getChannelPath()\n })\n\n export type Transaction = SQLiteTransaction<\"sync\", void>\n\n type Client = NodeSQLiteDatabase\n\n type Journal = { sql: string; timestamp: number; name: string }[]\n\n function time(tag: string) {\n const match = /^(\\d{4})(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{2})/.exec(tag)\n if (!match) return 0\n return Date.UTC(\n Number(match[1]),\n Number(match[2]) - 1,\n Number(match[3]),\n Number(match[4]),\n Number(match[5]),\n Number(match[6]),\n )\n }\n\n function migrations(dir: string): Journal {\n const dirs = readdirSync(dir, { withFileTypes: true })\n .filter((entry) => entry.isDirectory())\n .map((entry) => entry.name)\n\n const sql = dirs\n .map((name) => {\n const file = path.join(dir, name, \"migration.sql\")\n if (!existsSync(file)) return\n return {\n sql: readFileSync(file, \"utf-8\"),\n timestamp: time(name),\n name,\n }\n })\n .filter(Boolean) as Journal\n\n return sql.sort((a, b) => a.timestamp - b.timestamp)\n }\n\n export const Client = lazy(() => {\n log.info(\"opening database\", { path: Path })\n\n const db = init(Path)\n\n db.run(\"PRAGMA journal_mode = WAL\")\n db.run(\"PRAGMA synchronous = NORMAL\")\n db.run(\"PRAGMA busy_timeout = 5000\")\n db.run(\"PRAGMA cache_size = -64000\")\n db.run(\"PRAGMA foreign_keys = ON\")\n db.run(\"PRAGMA wal_checkpoint(PASSIVE)\")\n\n // Apply schema migrations\n const migrationsDir = path.join(import.meta.dirname, \"../packages/opencode/migration\")\n if (typeof OPENCODE_MIGRATIONS !== \"undefined\") {\n // Bundled mode (bun build) \u2014 raw journal entries\n const entries = OPENCODE_MIGRATIONS\n if (entries.length > 0) {\n log.info(\"applying migrations\", { count: entries.length, mode: \"bundled\" })\n if (Flag.OPENCODE_SKIP_MIGRATIONS) {\n for (const item of entries) item.sql = \"select 1;\"\n }\n migrate(db, entries as any)\n }\n } else {\n // Dev mode \u2014 pass folder path (compatible with both bun-sqlite and node-sqlite migrators)\n const entries = migrations(migrationsDir)\n log.info(\"applying migrations\", { count: entries.length, mode: \"dev\" })\n if (!Flag.OPENCODE_SKIP_MIGRATIONS && entries.length > 0) {\n migrate(db, { migrationsFolder: migrationsDir } as any)\n }\n }\n\n return db\n })\n\n export function close() {\n Client().$client.close()\n Client.reset()\n }\n\n export type TxOrDb = Transaction | Client\n\n const ctx = Context.create<{\n tx: TxOrDb\n effects: (() => void | Promise<void>)[]\n }>(\"database\")\n\n export function use<T>(callback: (trx: TxOrDb) => T): T {\n try {\n return callback(ctx.use().tx)\n } catch (err) {\n if (err instanceof Context.NotFound) {\n const effects: (() => void | Promise<void>)[] = []\n const result = ctx.provide({ effects, tx: Client() }, () => callback(Client()))\n for (const effect of effects) effect()\n return result\n }\n throw err\n }\n }\n\n export function effect(fn: () => any | Promise<any>) {\n const bound = InstanceState.bind(fn)\n try {\n ctx.use().effects.push(bound)\n } catch {\n bound()\n }\n }\n\n type NotPromise<T> = T extends Promise<any> ? never : T\n\n export function transaction<T>(\n callback: (tx: TxOrDb) => NotPromise<T>,\n options?: {\n behavior?: \"deferred\" | \"immediate\" | \"exclusive\"\n },\n ): NotPromise<T> {\n try {\n return callback(ctx.use().tx)\n } catch (err) {\n if (err instanceof Context.NotFound) {\n const effects: (() => void | Promise<void>)[] = []\n const txCallback = InstanceState.bind((tx: TxOrDb) => ctx.provide({ tx, effects }, () => callback(tx)))\n const result = Client().transaction(txCallback, { behavior: options?.behavior })\n for (const effect of effects) effect()\n return result as NotPromise<T>\n }\n throw err\n }\n }\n}\n", "export function lazy<T>(fn: () => T) {\n let value: T | undefined\n let loaded = false\n\n const result = (): T => {\n if (loaded) return value as T\n try {\n value = fn()\n loaded = true\n return value as T\n } catch (e) {\n // Don't mark as loaded if initialization failed\n throw e\n }\n }\n\n result.reset = () => {\n loaded = false\n value = undefined\n }\n\n return result\n}\n", "import z from \"zod\"\n\nexport abstract class NamedError extends Error {\n abstract schema(): z.core.$ZodType\n abstract toObject(): { name: string; data: any }\n\n static create<Name extends string, Data extends z.core.$ZodType>(name: Name, data: Data) {\n const schema = z\n .object({\n name: z.literal(name),\n data,\n })\n .meta({\n ref: name,\n })\n const result = class extends NamedError {\n public static readonly Schema = schema\n\n public override readonly name = name as Name\n\n constructor(\n public readonly data: z.input<Data>,\n options?: ErrorOptions,\n ) {\n super(name, options)\n this.name = name\n }\n\n static isInstance(input: any): input is InstanceType<typeof result> {\n return typeof input === \"object\" && \"name\" in input && input.name === name\n }\n\n schema() {\n return schema\n }\n\n toObject() {\n return {\n name: name,\n data: this.data,\n }\n }\n }\n Object.defineProperty(result, \"name\", { value: name })\n return result\n }\n\n public static readonly Unknown = NamedError.create(\n \"UnknownError\",\n z.object({\n message: z.string(),\n }),\n )\n}\n", "import { Config } from \"effect\"\n\nfunction truthy(key: string) {\n const value = process.env[key]?.toLowerCase()\n return value === \"true\" || value === \"1\"\n}\n\nfunction falsy(key: string) {\n const value = process.env[key]?.toLowerCase()\n return value === \"false\" || value === \"0\"\n}\n\nexport namespace Flag {\n export const OPENCODE_AUTO_SHARE = truthy(\"OPENCODE_AUTO_SHARE\")\n export const OPENCODE_AUTO_HEAP_SNAPSHOT = truthy(\"OPENCODE_AUTO_HEAP_SNAPSHOT\")\n export const OPENCODE_GIT_BASH_PATH = process.env[\"OPENCODE_GIT_BASH_PATH\"]\n export const OPENCODE_CONFIG = process.env[\"OPENCODE_CONFIG\"]\n export declare const OPENCODE_PURE: boolean\n export declare const OPENCODE_TUI_CONFIG: string | undefined\n export declare const OPENCODE_CONFIG_DIR: string | undefined\n export declare const OPENCODE_PLUGIN_META_FILE: string | undefined\n export const OPENCODE_CONFIG_CONTENT = process.env[\"OPENCODE_CONFIG_CONTENT\"]\n export const OPENCODE_DISABLE_AUTOUPDATE = truthy(\"OPENCODE_DISABLE_AUTOUPDATE\")\n export const OPENCODE_ALWAYS_NOTIFY_UPDATE = truthy(\"OPENCODE_ALWAYS_NOTIFY_UPDATE\")\n export const OPENCODE_DISABLE_PRUNE = truthy(\"OPENCODE_DISABLE_PRUNE\")\n export const OPENCODE_DISABLE_TERMINAL_TITLE = truthy(\"OPENCODE_DISABLE_TERMINAL_TITLE\")\n export const OPENCODE_SHOW_TTFD = truthy(\"OPENCODE_SHOW_TTFD\")\n export const OPENCODE_PERMISSION = process.env[\"OPENCODE_PERMISSION\"]\n export const OPENCODE_DISABLE_DEFAULT_PLUGINS = truthy(\"OPENCODE_DISABLE_DEFAULT_PLUGINS\")\n export const OPENCODE_DISABLE_LSP_DOWNLOAD = truthy(\"OPENCODE_DISABLE_LSP_DOWNLOAD\")\n export const OPENCODE_ENABLE_EXPERIMENTAL_MODELS = truthy(\"OPENCODE_ENABLE_EXPERIMENTAL_MODELS\")\n export const OPENCODE_DISABLE_AUTOCOMPACT = truthy(\"OPENCODE_DISABLE_AUTOCOMPACT\")\n export const OPENCODE_DISABLE_MODELS_FETCH = truthy(\"OPENCODE_DISABLE_MODELS_FETCH\")\n export const OPENCODE_DISABLE_MOUSE = truthy(\"OPENCODE_DISABLE_MOUSE\")\n export const OPENCODE_DISABLE_CLAUDE_CODE = truthy(\"OPENCODE_DISABLE_CLAUDE_CODE\")\n export const OPENCODE_DISABLE_CLAUDE_CODE_PROMPT =\n OPENCODE_DISABLE_CLAUDE_CODE || truthy(\"OPENCODE_DISABLE_CLAUDE_CODE_PROMPT\")\n export const OPENCODE_DISABLE_CLAUDE_CODE_SKILLS =\n OPENCODE_DISABLE_CLAUDE_CODE || truthy(\"OPENCODE_DISABLE_CLAUDE_CODE_SKILLS\")\n export const OPENCODE_DISABLE_EXTERNAL_SKILLS =\n OPENCODE_DISABLE_CLAUDE_CODE_SKILLS || truthy(\"OPENCODE_DISABLE_EXTERNAL_SKILLS\")\n export declare const OPENCODE_DISABLE_PROJECT_CONFIG: boolean\n export const OPENCODE_FAKE_VCS = process.env[\"OPENCODE_FAKE_VCS\"]\n export declare const OPENCODE_CLIENT: string\n export const OPENCODE_SERVER_PASSWORD = process.env[\"OPENCODE_SERVER_PASSWORD\"]\n export const OPENCODE_SERVER_USERNAME = process.env[\"OPENCODE_SERVER_USERNAME\"]\n export const OPENCODE_ENABLE_QUESTION_TOOL = truthy(\"OPENCODE_ENABLE_QUESTION_TOOL\")\n\n // Experimental\n export const OPENCODE_EXPERIMENTAL = truthy(\"OPENCODE_EXPERIMENTAL\")\n export const OPENCODE_EXPERIMENTAL_FILEWATCHER = Config.boolean(\"OPENCODE_EXPERIMENTAL_FILEWATCHER\").pipe(\n Config.withDefault(false),\n )\n export const OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER = Config.boolean(\n \"OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER\",\n ).pipe(Config.withDefault(false))\n export const OPENCODE_EXPERIMENTAL_ICON_DISCOVERY =\n OPENCODE_EXPERIMENTAL || truthy(\"OPENCODE_EXPERIMENTAL_ICON_DISCOVERY\")\n\n const copy = process.env[\"OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT\"]\n export const OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT =\n copy === undefined ? process.platform === \"win32\" : truthy(\"OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT\")\n export const OPENCODE_ENABLE_EXA =\n truthy(\"OPENCODE_ENABLE_EXA\") || OPENCODE_EXPERIMENTAL || truthy(\"OPENCODE_EXPERIMENTAL_EXA\")\n export const OPENCODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS = number(\"OPENCODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS\")\n export const OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX = number(\"OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX\")\n export const OPENCODE_EXPERIMENTAL_OXFMT = OPENCODE_EXPERIMENTAL || truthy(\"OPENCODE_EXPERIMENTAL_OXFMT\")\n export const OPENCODE_EXPERIMENTAL_LSP_TY = truthy(\"OPENCODE_EXPERIMENTAL_LSP_TY\")\n export const OPENCODE_EXPERIMENTAL_LSP_TOOL = OPENCODE_EXPERIMENTAL || truthy(\"OPENCODE_EXPERIMENTAL_LSP_TOOL\")\n export const OPENCODE_DISABLE_FILETIME_CHECK = Config.boolean(\"OPENCODE_DISABLE_FILETIME_CHECK\").pipe(\n Config.withDefault(false),\n )\n export const OPENCODE_EXPERIMENTAL_PLAN_MODE = OPENCODE_EXPERIMENTAL || truthy(\"OPENCODE_EXPERIMENTAL_PLAN_MODE\")\n export const OPENCODE_EXPERIMENTAL_WORKSPACES = OPENCODE_EXPERIMENTAL || truthy(\"OPENCODE_EXPERIMENTAL_WORKSPACES\")\n export const OPENCODE_EXPERIMENTAL_MARKDOWN = !falsy(\"OPENCODE_EXPERIMENTAL_MARKDOWN\")\n export const OPENCODE_MODELS_URL = process.env[\"OPENCODE_MODELS_URL\"]\n export const OPENCODE_MODELS_PATH = process.env[\"OPENCODE_MODELS_PATH\"]\n export const OPENCODE_DISABLE_EMBEDDED_WEB_UI = truthy(\"OPENCODE_DISABLE_EMBEDDED_WEB_UI\")\n export const OPENCODE_DB = process.env[\"OPENCODE_DB\"]\n export const OPENCODE_DISABLE_CHANNEL_DB = truthy(\"OPENCODE_DISABLE_CHANNEL_DB\")\n export const OPENCODE_SKIP_MIGRATIONS = truthy(\"OPENCODE_SKIP_MIGRATIONS\")\n export const OPENCODE_STRICT_CONFIG_DEPS = truthy(\"OPENCODE_STRICT_CONFIG_DEPS\")\n\n function number(key: string) {\n const value = process.env[key]\n if (!value) return undefined\n const parsed = Number(value)\n return Number.isInteger(parsed) && parsed > 0 ? parsed : undefined\n }\n}\n\n// Dynamic getter for OPENCODE_DISABLE_PROJECT_CONFIG\n// This must be evaluated at access time, not module load time,\n// because external tooling may set this env var at runtime\nObject.defineProperty(Flag, \"OPENCODE_DISABLE_PROJECT_CONFIG\", {\n get() {\n return truthy(\"OPENCODE_DISABLE_PROJECT_CONFIG\")\n },\n enumerable: true,\n configurable: false,\n})\n\n// Dynamic getter for OPENCODE_TUI_CONFIG\n// This must be evaluated at access time, not module load time,\n// because tests and external tooling may set this env var at runtime\nObject.defineProperty(Flag, \"OPENCODE_TUI_CONFIG\", {\n get() {\n return process.env[\"OPENCODE_TUI_CONFIG\"]\n },\n enumerable: true,\n configurable: false,\n})\n\n// Dynamic getter for OPENCODE_CONFIG_DIR\n// This must be evaluated at access time, not module load time,\n// because external tooling may set this env var at runtime\nObject.defineProperty(Flag, \"OPENCODE_CONFIG_DIR\", {\n get() {\n return process.env[\"OPENCODE_CONFIG_DIR\"]\n },\n enumerable: true,\n configurable: false,\n})\n\n// Dynamic getter for OPENCODE_PURE\n// This must be evaluated at access time, not module load time,\n// because the CLI can set this flag at runtime\nObject.defineProperty(Flag, \"OPENCODE_PURE\", {\n get() {\n return truthy(\"OPENCODE_PURE\")\n },\n enumerable: true,\n configurable: false,\n})\n\n// Dynamic getter for OPENCODE_PLUGIN_META_FILE\n// This must be evaluated at access time, not module load time,\n// because tests and external tooling may set this env var at runtime\nObject.defineProperty(Flag, \"OPENCODE_PLUGIN_META_FILE\", {\n get() {\n return process.env[\"OPENCODE_PLUGIN_META_FILE\"]\n },\n enumerable: true,\n configurable: false,\n})\n\n// Dynamic getter for OPENCODE_CLIENT\n// This must be evaluated at access time, not module load time,\n// because some commands override the client at runtime\nObject.defineProperty(Flag, \"OPENCODE_CLIENT\", {\n get() {\n return process.env[\"OPENCODE_CLIENT\"] ?? \"cli\"\n },\n enumerable: true,\n configurable: false,\n})\n", "declare global {\n const OPENCODE_VERSION: string\n const OPENCODE_CHANNEL: string\n}\n\nexport const VERSION = typeof OPENCODE_VERSION === \"string\" ? OPENCODE_VERSION : \"local\"\nexport const CHANNEL = typeof OPENCODE_CHANNEL === \"string\" ? OPENCODE_CHANNEL : \"local\"\n", "import { Effect, Fiber, ScopedCache, Scope, ServiceMap } from \"effect\"\nimport { Instance, type InstanceContext } from \"@/project/instance\"\nimport { Context } from \"@/util/context\"\nimport { InstanceRef } from \"./instance-ref\"\nimport { registerDisposer } from \"./instance-registry\"\n\nconst TypeId = \"~opencode/InstanceState\"\n\nexport interface InstanceState<A, E = never, R = never> {\n readonly [TypeId]: typeof TypeId\n readonly cache: ScopedCache.ScopedCache<string, A, E, R>\n}\n\nexport namespace InstanceState {\n export const bind = <F extends (...args: any[]) => any>(fn: F): F => {\n try {\n return Instance.bind(fn)\n } catch (err) {\n if (!(err instanceof Context.NotFound)) throw err\n }\n const fiber = Fiber.getCurrent()\n const ctx = fiber ? ServiceMap.getReferenceUnsafe(fiber.services, InstanceRef) : undefined\n if (!ctx) return fn\n return ((...args: any[]) => Instance.restore(ctx, () => fn(...args))) as F\n }\n\n export const context = Effect.gen(function* () {\n return (yield* InstanceRef) ?? Instance.current\n })\n\n export const directory = Effect.map(context, (ctx) => ctx.directory)\n\n export const make = <A, E = never, R = never>(\n init: (ctx: InstanceContext) => Effect.Effect<A, E, R | Scope.Scope>,\n ): Effect.Effect<InstanceState<A, E, Exclude<R, Scope.Scope>>, never, R | Scope.Scope> =>\n Effect.gen(function* () {\n const cache = yield* ScopedCache.make<string, A, E, R>({\n capacity: Number.POSITIVE_INFINITY,\n lookup: () =>\n Effect.gen(function* () {\n return yield* init(yield* context)\n }),\n })\n\n const off = registerDisposer((directory) => Effect.runPromise(ScopedCache.invalidate(cache, directory)))\n yield* Effect.addFinalizer(() => Effect.sync(off))\n\n return {\n [TypeId]: TypeId,\n cache,\n }\n })\n\n export const get = <A, E, R>(self: InstanceState<A, E, R>) =>\n Effect.gen(function* () {\n return yield* ScopedCache.get(self.cache, yield* directory)\n })\n\n export const use = <A, E, R, B>(self: InstanceState<A, E, R>, select: (value: A) => B) =>\n Effect.map(get(self), select)\n\n export const useEffect = <A, E, R, B, E2, R2>(\n self: InstanceState<A, E, R>,\n select: (value: A) => Effect.Effect<B, E2, R2>,\n ) => Effect.flatMap(get(self), select)\n\n export const has = <A, E, R>(self: InstanceState<A, E, R>) =>\n Effect.gen(function* () {\n return yield* ScopedCache.has(self.cache, yield* directory)\n })\n\n export const invalidate = <A, E, R>(self: InstanceState<A, E, R>) =>\n Effect.gen(function* () {\n return yield* ScopedCache.invalidate(self.cache, yield* directory)\n })\n\n /**\n * Effect finalizers run on the fiber scheduler after the original async\n * boundary, so ALS reads like Instance.directory can be gone by then.\n */\n export const withALS = <T>(fn: () => T) => Effect.map(context, (ctx) => Instance.restore(ctx, fn))\n}\n", "import { ServiceMap } from \"effect\"\nimport type { InstanceContext } from \"@/project/instance\"\n\nexport const InstanceRef = ServiceMap.Reference<InstanceContext | undefined>(\"~opencode/InstanceRef\", {\n defaultValue: () => undefined,\n})\n", "import { DatabaseSync } from \"node:sqlite\"\nimport { drizzle } from \"drizzle-orm/node-sqlite\"\n\nexport function init(path: string) {\n const sqlite = new DatabaseSync(path)\n const db = drizzle({ client: sqlite })\n return db\n}\n", "import { sqliteTable, text, integer } from \"drizzle-orm/sqlite-core\"\nimport { Timestamps } from \"../storage/schema.sql\"\nimport type { ProjectID } from \"./schema\"\n\nexport const ProjectTable = sqliteTable(\"project\", {\n id: text().$type<ProjectID>().primaryKey(),\n worktree: text().notNull(),\n vcs: text(),\n name: text(),\n icon_url: text(),\n icon_color: text(),\n ...Timestamps,\n time_initialized: integer(),\n sandboxes: text({ mode: \"json\" }).notNull().$type<string[]>(),\n commands: text({ mode: \"json\" }).$type<{ start?: string }>(),\n})\n", "import { integer } from \"drizzle-orm/sqlite-core\"\n\nexport const Timestamps = {\n time_created: integer()\n .notNull()\n .$default(() => Date.now()),\n time_updated: integer()\n .notNull()\n .$onUpdate(() => Date.now()),\n}\n", "import { sqliteTable, text, integer, index, primaryKey } from \"drizzle-orm/sqlite-core\"\nimport { ProjectTable } from \"../project/project.sql\"\nimport type { MessageV2 } from \"./message-v2\"\nimport type { Snapshot } from \"../snapshot\"\nimport type { Permission } from \"../permission\"\nimport type { ProjectID } from \"../project/schema\"\nimport type { SessionID, MessageID, PartID } from \"./schema\"\nimport type { WorkspaceID } from \"../control-plane/schema\"\nimport { Timestamps } from \"../storage/schema.sql\"\n\ntype PartData = Omit<MessageV2.Part, \"id\" | \"sessionID\" | \"messageID\">\ntype InfoData = Omit<MessageV2.Info, \"id\" | \"sessionID\">\n\nexport const SessionTable = sqliteTable(\n \"session\",\n {\n id: text().$type<SessionID>().primaryKey(),\n project_id: text()\n .$type<ProjectID>()\n .notNull()\n .references(() => ProjectTable.id, { onDelete: \"cascade\" }),\n workspace_id: text().$type<WorkspaceID>(),\n parent_id: text().$type<SessionID>(),\n slug: text().notNull(),\n directory: text().notNull(),\n title: text().notNull(),\n version: text().notNull(),\n share_url: text(),\n summary_additions: integer(),\n summary_deletions: integer(),\n summary_files: integer(),\n summary_diffs: text({ mode: \"json\" }).$type<Snapshot.FileDiff[]>(),\n revert: text({ mode: \"json\" }).$type<{ messageID: MessageID; partID?: PartID; snapshot?: string; diff?: string }>(),\n permission: text({ mode: \"json\" }).$type<Permission.Ruleset>(),\n ...Timestamps,\n time_compacting: integer(),\n time_archived: integer(),\n },\n (table) => [\n index(\"session_project_idx\").on(table.project_id),\n index(\"session_workspace_idx\").on(table.workspace_id),\n index(\"session_parent_idx\").on(table.parent_id),\n ],\n)\n\nexport const MessageTable = sqliteTable(\n \"message\",\n {\n id: text().$type<MessageID>().primaryKey(),\n session_id: text()\n .$type<SessionID>()\n .notNull()\n .references(() => SessionTable.id, { onDelete: \"cascade\" }),\n ...Timestamps,\n data: text({ mode: \"json\" }).notNull().$type<InfoData>(),\n },\n (table) => [index(\"message_session_time_created_id_idx\").on(table.session_id, table.time_created, table.id)],\n)\n\nexport const PartTable = sqliteTable(\n \"part\",\n {\n id: text().$type<PartID>().primaryKey(),\n message_id: text()\n .$type<MessageID>()\n .notNull()\n .references(() => MessageTable.id, { onDelete: \"cascade\" }),\n session_id: text().$type<SessionID>().notNull(),\n ...Timestamps,\n data: text({ mode: \"json\" }).notNull().$type<PartData>(),\n },\n (table) => [\n index(\"part_message_id_id_idx\").on(table.message_id, table.id),\n index(\"part_session_idx\").on(table.session_id),\n ],\n)\n\nexport const TodoTable = sqliteTable(\n \"todo\",\n {\n session_id: text()\n .$type<SessionID>()\n .notNull()\n .references(() => SessionTable.id, { onDelete: \"cascade\" }),\n content: text().notNull(),\n status: text().notNull(),\n priority: text().notNull(),\n position: integer().notNull(),\n ...Timestamps,\n },\n (table) => [\n primaryKey({ columns: [table.session_id, table.position] }),\n index(\"todo_session_idx\").on(table.session_id),\n ],\n)\n\nexport const PermissionTable = sqliteTable(\"permission\", {\n project_id: text()\n .primaryKey()\n .references(() => ProjectTable.id, { onDelete: \"cascade\" }),\n ...Timestamps,\n data: text({ mode: \"json\" }).notNull().$type<Permission.Ruleset>(),\n})\n", "import z from \"zod\"\nimport type { ZodType } from \"zod\"\n\nexport namespace BusEvent {\n export type Definition = ReturnType<typeof define>\n\n const registry = new Map<string, Definition>()\n\n export function define<Type extends string, Properties extends ZodType>(type: Type, properties: Properties) {\n const result = {\n type,\n properties,\n }\n registry.set(type, result)\n return result\n }\n\n export function payloads() {\n return z\n .discriminatedUnion(\n \"type\",\n registry\n .entries()\n .map(([type, def]) => {\n return z\n .object({\n type: z.literal(type),\n properties: def.properties,\n })\n .meta({\n ref: \"Event\" + \".\" + def.type,\n })\n })\n .toArray() as any,\n )\n .meta({\n ref: \"Event\",\n })\n }\n}\n", "import whichPkg from \"which\"\nimport path from \"path\"\nimport { Global } from \"../global\"\n\nexport function which(cmd: string, env?: NodeJS.ProcessEnv) {\n const base = env?.PATH ?? env?.Path ?? process.env.PATH ?? process.env.Path ?? \"\"\n const full = base ? base + path.delimiter + Global.Path.bin : Global.Path.bin\n const result = whichPkg.sync(cmd, {\n nothrow: true,\n path: full,\n pathExt: env?.PATHEXT ?? env?.PathExt ?? process.env.PATHEXT ?? process.env.PathExt,\n })\n return typeof result === \"string\" ? result : null\n}\n", "import { Schema } from \"effect\"\nimport z from \"zod\"\n\nimport { withStatics } from \"@/util/schema\"\n\nconst projectIdSchema = Schema.String.pipe(Schema.brand(\"ProjectID\"))\n\nexport type ProjectID = typeof projectIdSchema.Type\n\nexport const ProjectID = projectIdSchema.pipe(\n withStatics((schema: typeof projectIdSchema) => ({\n global: schema.makeUnsafe(\"global\"),\n make: (id: string) => schema.makeUnsafe(id),\n zod: z.string().pipe(z.custom<ProjectID>()),\n })),\n)\n", "import { NodeFileSystem } from \"@effect/platform-node\"\nimport { dirname, join, relative, resolve as pathResolve } from \"path\"\nimport { realpathSync } from \"fs\"\nimport * as NFS from \"fs/promises\"\nimport { lookup } from \"mime-types\"\nimport { Effect, FileSystem, Layer, Schema, ServiceMap } from \"effect\"\nimport type { PlatformError } from \"effect/PlatformError\"\nimport { Glob } from \"../util/glob\"\n\nexport namespace AppFileSystem {\n export class FileSystemError extends Schema.TaggedErrorClass<FileSystemError>()(\"FileSystemError\", {\n method: Schema.String,\n cause: Schema.optional(Schema.Defect),\n }) {}\n\n export type Error = PlatformError | FileSystemError\n\n export interface DirEntry {\n readonly name: string\n readonly type: \"file\" | \"directory\" | \"symlink\" | \"other\"\n }\n\n export interface Interface extends FileSystem.FileSystem {\n readonly isDir: (path: string) => Effect.Effect<boolean>\n readonly isFile: (path: string) => Effect.Effect<boolean>\n readonly existsSafe: (path: string) => Effect.Effect<boolean>\n readonly readJson: (path: string) => Effect.Effect<unknown, Error>\n readonly writeJson: (path: string, data: unknown, mode?: number) => Effect.Effect<void, Error>\n readonly ensureDir: (path: string) => Effect.Effect<void, Error>\n readonly writeWithDirs: (path: string, content: string | Uint8Array, mode?: number) => Effect.Effect<void, Error>\n readonly readDirectoryEntries: (path: string) => Effect.Effect<DirEntry[], Error>\n readonly findUp: (target: string, start: string, stop?: string) => Effect.Effect<string[], Error>\n readonly up: (options: { targets: string[]; start: string; stop?: string }) => Effect.Effect<string[], Error>\n readonly globUp: (pattern: string, start: string, stop?: string) => Effect.Effect<string[], Error>\n readonly glob: (pattern: string, options?: Glob.Options) => Effect.Effect<string[], Error>\n readonly globMatch: (pattern: string, filepath: string) => boolean\n }\n\n export class Service extends ServiceMap.Service<Service, Interface>()(\"@opencode/FileSystem\") {}\n\n export const layer = Layer.effect(\n Service,\n Effect.gen(function* () {\n const fs = yield* FileSystem.FileSystem\n\n const existsSafe = Effect.fn(\"FileSystem.existsSafe\")(function* (path: string) {\n return yield* fs.exists(path).pipe(Effect.orElseSucceed(() => false))\n })\n\n const isDir = Effect.fn(\"FileSystem.isDir\")(function* (path: string) {\n const info = yield* fs.stat(path).pipe(Effect.catch(() => Effect.void))\n return info?.type === \"Directory\"\n })\n\n const isFile = Effect.fn(\"FileSystem.isFile\")(function* (path: string) {\n const info = yield* fs.stat(path).pipe(Effect.catch(() => Effect.void))\n return info?.type === \"File\"\n })\n\n const readDirectoryEntries = Effect.fn(\"FileSystem.readDirectoryEntries\")(function* (dirPath: string) {\n return yield* Effect.tryPromise({\n try: async () => {\n const entries = await NFS.readdir(dirPath, { withFileTypes: true })\n return entries.map(\n (e): DirEntry => ({\n name: e.name,\n type: e.isDirectory() ? \"directory\" : e.isSymbolicLink() ? \"symlink\" : e.isFile() ? \"file\" : \"other\",\n }),\n )\n },\n catch: (cause) => new FileSystemError({ method: \"readDirectoryEntries\", cause }),\n })\n })\n\n const readJson = Effect.fn(\"FileSystem.readJson\")(function* (path: string) {\n const text = yield* fs.readFileString(path)\n return JSON.parse(text)\n })\n\n const writeJson = Effect.fn(\"FileSystem.writeJson\")(function* (path: string, data: unknown, mode?: number) {\n const content = JSON.stringify(data, null, 2)\n yield* fs.writeFileString(path, content)\n if (mode) yield* fs.chmod(path, mode)\n })\n\n const ensureDir = Effect.fn(\"FileSystem.ensureDir\")(function* (path: string) {\n yield* fs.makeDirectory(path, { recursive: true })\n })\n\n const writeWithDirs = Effect.fn(\"FileSystem.writeWithDirs\")(function* (\n path: string,\n content: string | Uint8Array,\n mode?: number,\n ) {\n const write = typeof content === \"string\" ? fs.writeFileString(path, content) : fs.writeFile(path, content)\n\n yield* write.pipe(\n Effect.catchIf(\n (e) => e.reason._tag === \"NotFound\",\n () =>\n Effect.gen(function* () {\n yield* fs.makeDirectory(dirname(path), { recursive: true })\n yield* write\n }),\n ),\n )\n if (mode) yield* fs.chmod(path, mode)\n })\n\n const glob = Effect.fn(\"FileSystem.glob\")(function* (pattern: string, options?: Glob.Options) {\n return yield* Effect.tryPromise({\n try: () => Glob.scan(pattern, options),\n catch: (cause) => new FileSystemError({ method: \"glob\", cause }),\n })\n })\n\n const findUp = Effect.fn(\"FileSystem.findUp\")(function* (target: string, start: string, stop?: string) {\n const result: string[] = []\n let current = start\n while (true) {\n const search = join(current, target)\n if (yield* fs.exists(search)) result.push(search)\n if (stop === current) break\n const parent = dirname(current)\n if (parent === current) break\n current = parent\n }\n return result\n })\n\n const up = Effect.fn(\"FileSystem.up\")(function* (options: { targets: string[]; start: string; stop?: string }) {\n const result: string[] = []\n let current = options.start\n while (true) {\n for (const target of options.targets) {\n const search = join(current, target)\n if (yield* fs.exists(search)) result.push(search)\n }\n if (options.stop === current) break\n const parent = dirname(current)\n if (parent === current) break\n current = parent\n }\n return result\n })\n\n const globUp = Effect.fn(\"FileSystem.globUp\")(function* (pattern: string, start: string, stop?: string) {\n const result: string[] = []\n let current = start\n while (true) {\n const matches = yield* glob(pattern, { cwd: current, absolute: true, include: \"file\", dot: true }).pipe(\n Effect.catch(() => Effect.succeed([] as string[])),\n )\n result.push(...matches)\n if (stop === current) break\n const parent = dirname(current)\n if (parent === current) break\n current = parent\n }\n return result\n })\n\n return Service.of({\n ...fs,\n existsSafe,\n isDir,\n isFile,\n readDirectoryEntries,\n readJson,\n writeJson,\n ensureDir,\n writeWithDirs,\n findUp,\n up,\n globUp,\n glob,\n globMatch: Glob.match,\n })\n }),\n )\n\n export const defaultLayer = layer.pipe(Layer.provide(NodeFileSystem.layer))\n\n // Pure helpers that don't need Effect (path manipulation, sync operations)\n export function mimeType(p: string): string {\n return lookup(p) || \"application/octet-stream\"\n }\n\n export function normalizePath(p: string): string {\n if (process.platform !== \"win32\") return p\n const resolved = pathResolve(windowsPath(p))\n try {\n return realpathSync.native(resolved)\n } catch {\n return resolved\n }\n }\n\n export function normalizePathPattern(p: string): string {\n if (process.platform !== \"win32\") return p\n if (p === \"*\") return p\n const match = p.match(/^(.*)[\\\\/]\\*$/)\n if (!match) return normalizePath(p)\n const dir = /^[A-Za-z]:$/.test(match[1]) ? match[1] + \"\\\\\" : match[1]\n return join(normalizePath(dir), \"*\")\n }\n\n export function resolve(p: string): string {\n const resolved = pathResolve(windowsPath(p))\n try {\n return normalizePath(realpathSync(resolved))\n } catch (e: any) {\n if (e?.code === \"ENOENT\") return normalizePath(resolved)\n throw e\n }\n }\n\n export function windowsPath(p: string): string {\n if (process.platform !== \"win32\") return p\n return p\n .replace(/^\\/([a-zA-Z]):(?:[\\\\/]|$)/, (_, drive) => `${drive.toUpperCase()}:/`)\n .replace(/^\\/([a-zA-Z])(?:\\/|$)/, (_, drive) => `${drive.toUpperCase()}:/`)\n .replace(/^\\/cygdrive\\/([a-zA-Z])(?:\\/|$)/, (_, drive) => `${drive.toUpperCase()}:/`)\n .replace(/^\\/mnt\\/([a-zA-Z])(?:\\/|$)/, (_, drive) => `${drive.toUpperCase()}:/`)\n }\n\n export function overlaps(a: string, b: string) {\n const relA = relative(a, b)\n const relB = relative(b, a)\n return !relA || !relA.startsWith(\"..\") || !relB || !relB.startsWith(\"..\")\n }\n\n export function contains(parent: string, child: string) {\n return !relative(parent, child).startsWith(\"..\")\n }\n}\n", "import type * as Arr from \"effect/Array\"\nimport { NodeFileSystem, NodeSink, NodeStream } from \"@effect/platform-node\"\nimport * as NodePath from \"@effect/platform-node/NodePath\"\nimport * as Deferred from \"effect/Deferred\"\nimport * as Effect from \"effect/Effect\"\nimport * as Exit from \"effect/Exit\"\nimport * as FileSystem from \"effect/FileSystem\"\nimport * as Layer from \"effect/Layer\"\nimport * as Path from \"effect/Path\"\nimport * as PlatformError from \"effect/PlatformError\"\nimport * as Predicate from \"effect/Predicate\"\nimport type * as Scope from \"effect/Scope\"\nimport * as Sink from \"effect/Sink\"\nimport * as Stream from \"effect/Stream\"\nimport * as ChildProcess from \"effect/unstable/process/ChildProcess\"\nimport type { ChildProcessHandle } from \"effect/unstable/process/ChildProcessSpawner\"\nimport {\n ChildProcessSpawner,\n ExitCode,\n make as makeSpawner,\n makeHandle,\n ProcessId,\n} from \"effect/unstable/process/ChildProcessSpawner\"\nimport * as NodeChildProcess from \"node:child_process\"\nimport { PassThrough } from \"node:stream\"\nimport launch from \"cross-spawn\"\n\nconst toError = (err: unknown): Error => (err instanceof globalThis.Error ? err : new globalThis.Error(String(err)))\n\nconst toTag = (err: NodeJS.ErrnoException): PlatformError.SystemErrorTag => {\n switch (err.code) {\n case \"ENOENT\":\n return \"NotFound\"\n case \"EACCES\":\n return \"PermissionDenied\"\n case \"EEXIST\":\n return \"AlreadyExists\"\n case \"EISDIR\":\n return \"BadResource\"\n case \"ENOTDIR\":\n return \"BadResource\"\n case \"EBUSY\":\n return \"Busy\"\n case \"ELOOP\":\n return \"BadResource\"\n default:\n return \"Unknown\"\n }\n}\n\nconst flatten = (command: ChildProcess.Command) => {\n const commands: Array<ChildProcess.StandardCommand> = []\n const opts: Array<ChildProcess.PipeOptions> = []\n\n const walk = (cmd: ChildProcess.Command): void => {\n switch (cmd._tag) {\n case \"StandardCommand\":\n commands.push(cmd)\n return\n case \"PipedCommand\":\n walk(cmd.left)\n opts.push(cmd.options)\n walk(cmd.right)\n return\n }\n }\n\n walk(command)\n if (commands.length === 0) throw new Error(\"flatten produced empty commands array\")\n const [head, ...tail] = commands\n return {\n commands: [head, ...tail] as Arr.NonEmptyReadonlyArray<ChildProcess.StandardCommand>,\n opts,\n }\n}\n\nconst toPlatformError = (\n method: string,\n err: NodeJS.ErrnoException,\n command: ChildProcess.Command,\n): PlatformError.PlatformError => {\n const cmd = flatten(command)\n .commands.map((x) => `${x.command} ${x.args.join(\" \")}`)\n .join(\" | \")\n return PlatformError.systemError({\n _tag: toTag(err),\n module: \"ChildProcess\",\n method,\n pathOrDescriptor: cmd,\n syscall: err.syscall,\n cause: err,\n })\n}\n\ntype ExitSignal = Deferred.Deferred<readonly [code: number | null, signal: NodeJS.Signals | null]>\n\nexport const make = Effect.gen(function* () {\n const fs = yield* FileSystem.FileSystem\n const path = yield* Path.Path\n\n const cwd = Effect.fnUntraced(function* (opts: ChildProcess.CommandOptions) {\n if (Predicate.isUndefined(opts.cwd)) return undefined\n yield* fs.access(opts.cwd)\n return path.resolve(opts.cwd)\n })\n\n const env = (opts: ChildProcess.CommandOptions) =>\n opts.extendEnv ? { ...globalThis.process.env, ...opts.env } : opts.env\n\n const input = (x: ChildProcess.CommandInput | undefined): NodeChildProcess.IOType | undefined =>\n Stream.isStream(x) ? \"pipe\" : x\n\n const output = (x: ChildProcess.CommandOutput | undefined): NodeChildProcess.IOType | undefined =>\n Sink.isSink(x) ? \"pipe\" : x\n\n const stdin = (opts: ChildProcess.CommandOptions): ChildProcess.StdinConfig => {\n const cfg: ChildProcess.StdinConfig = { stream: \"pipe\", encoding: \"utf-8\", endOnDone: true }\n if (Predicate.isUndefined(opts.stdin)) return cfg\n if (typeof opts.stdin === \"string\") return { ...cfg, stream: opts.stdin }\n if (Stream.isStream(opts.stdin)) return { ...cfg, stream: opts.stdin }\n return {\n stream: opts.stdin.stream,\n encoding: opts.stdin.encoding ?? cfg.encoding,\n endOnDone: opts.stdin.endOnDone ?? cfg.endOnDone,\n }\n }\n\n const stdio = (opts: ChildProcess.CommandOptions, key: \"stdout\" | \"stderr\"): ChildProcess.StdoutConfig => {\n const cfg = opts[key]\n if (Predicate.isUndefined(cfg)) return { stream: \"pipe\" }\n if (typeof cfg === \"string\") return { stream: cfg }\n if (Sink.isSink(cfg)) return { stream: cfg }\n return { stream: cfg.stream }\n }\n\n const fds = (opts: ChildProcess.CommandOptions) => {\n if (Predicate.isUndefined(opts.additionalFds)) return []\n return Object.entries(opts.additionalFds)\n .flatMap(([name, config]) => {\n const fd = ChildProcess.parseFdName(name)\n return Predicate.isUndefined(fd) ? [] : [{ fd, config }]\n })\n .toSorted((a, b) => a.fd - b.fd)\n }\n\n const stdios = (\n sin: ChildProcess.StdinConfig,\n sout: ChildProcess.StdoutConfig,\n serr: ChildProcess.StderrConfig,\n extra: ReadonlyArray<{ fd: number; config: ChildProcess.AdditionalFdConfig }>,\n ): NodeChildProcess.StdioOptions => {\n const pipe = (x: NodeChildProcess.IOType | undefined) =>\n process.platform === \"win32\" && x === \"pipe\" ? \"overlapped\" : x\n const arr: Array<NodeChildProcess.IOType | undefined> = [\n pipe(input(sin.stream)),\n pipe(output(sout.stream)),\n pipe(output(serr.stream)),\n ]\n if (extra.length === 0) return arr as NodeChildProcess.StdioOptions\n const max = extra.reduce((acc, x) => Math.max(acc, x.fd), 2)\n for (let i = 3; i <= max; i++) arr[i] = \"ignore\"\n for (const x of extra) arr[x.fd] = pipe(\"pipe\")\n return arr as NodeChildProcess.StdioOptions\n }\n\n const setupFds = Effect.fnUntraced(function* (\n command: ChildProcess.StandardCommand,\n proc: NodeChildProcess.ChildProcess,\n extra: ReadonlyArray<{ fd: number; config: ChildProcess.AdditionalFdConfig }>,\n ) {\n if (extra.length === 0) {\n return {\n getInputFd: () => Sink.drain,\n getOutputFd: () => Stream.empty,\n }\n }\n\n const ins = new Map<number, Sink.Sink<void, Uint8Array, never, PlatformError.PlatformError>>()\n const outs = new Map<number, Stream.Stream<Uint8Array, PlatformError.PlatformError>>()\n\n for (const x of extra) {\n const node = proc.stdio[x.fd]\n switch (x.config.type) {\n case \"input\": {\n let sink: Sink.Sink<void, Uint8Array, never, PlatformError.PlatformError> = Sink.drain\n if (node && \"write\" in node) {\n sink = NodeSink.fromWritable({\n evaluate: () => node,\n onError: (err) => toPlatformError(`fromWritable(fd${x.fd})`, toError(err), command),\n endOnDone: true,\n })\n }\n if (x.config.stream) yield* Effect.forkScoped(Stream.run(x.config.stream, sink))\n ins.set(x.fd, sink)\n break\n }\n case \"output\": {\n let stream: Stream.Stream<Uint8Array, PlatformError.PlatformError> = Stream.empty\n if (node && \"read\" in node) {\n const tap = new PassThrough()\n node.on(\"error\", (err) => tap.destroy(toError(err)))\n node.pipe(tap)\n stream = NodeStream.fromReadable({\n evaluate: () => tap,\n onError: (err) => toPlatformError(`fromReadable(fd${x.fd})`, toError(err), command),\n })\n }\n if (x.config.sink) stream = Stream.transduce(stream, x.config.sink)\n outs.set(x.fd, stream)\n break\n }\n }\n }\n\n return {\n getInputFd: (fd: number) => ins.get(fd) ?? Sink.drain,\n getOutputFd: (fd: number) => outs.get(fd) ?? Stream.empty,\n }\n })\n\n const setupStdin = (\n command: ChildProcess.StandardCommand,\n proc: NodeChildProcess.ChildProcess,\n cfg: ChildProcess.StdinConfig,\n ) =>\n Effect.suspend(() => {\n let sink: Sink.Sink<void, unknown, never, PlatformError.PlatformError> = Sink.drain\n if (Predicate.isNotNull(proc.stdin)) {\n sink = NodeSink.fromWritable({\n evaluate: () => proc.stdin!,\n onError: (err) => toPlatformError(\"fromWritable(stdin)\", toError(err), command),\n endOnDone: cfg.endOnDone,\n encoding: cfg.encoding,\n })\n }\n if (Stream.isStream(cfg.stream)) return Effect.as(Effect.forkScoped(Stream.run(cfg.stream, sink)), sink)\n return Effect.succeed(sink)\n })\n\n const setupOutput = (\n command: ChildProcess.StandardCommand,\n proc: NodeChildProcess.ChildProcess,\n out: ChildProcess.StdoutConfig,\n err: ChildProcess.StderrConfig,\n ) => {\n let stdout = proc.stdout\n ? NodeStream.fromReadable({\n evaluate: () => proc.stdout!,\n onError: (cause) => toPlatformError(\"fromReadable(stdout)\", toError(cause), command),\n })\n : Stream.empty\n let stderr = proc.stderr\n ? NodeStream.fromReadable({\n evaluate: () => proc.stderr!,\n onError: (cause) => toPlatformError(\"fromReadable(stderr)\", toError(cause), command),\n })\n : Stream.empty\n\n if (Sink.isSink(out.stream)) stdout = Stream.transduce(stdout, out.stream)\n if (Sink.isSink(err.stream)) stderr = Stream.transduce(stderr, err.stream)\n\n return { stdout, stderr, all: Stream.merge(stdout, stderr) }\n }\n\n const spawn = (command: ChildProcess.StandardCommand, opts: NodeChildProcess.SpawnOptions) =>\n Effect.callback<readonly [NodeChildProcess.ChildProcess, ExitSignal], PlatformError.PlatformError>((resume) => {\n const signal = Deferred.makeUnsafe<readonly [code: number | null, signal: NodeJS.Signals | null]>()\n const proc = launch(command.command, command.args, opts)\n let end = false\n let exit: readonly [code: number | null, signal: NodeJS.Signals | null] | undefined\n proc.on(\"error\", (err) => {\n resume(Effect.fail(toPlatformError(\"spawn\", err, command)))\n })\n proc.on(\"exit\", (...args) => {\n exit = args\n })\n proc.on(\"close\", (...args) => {\n if (end) return\n end = true\n Deferred.doneUnsafe(signal, Exit.succeed(exit ?? args))\n })\n proc.on(\"spawn\", () => {\n resume(Effect.succeed([proc, signal]))\n })\n return Effect.sync(() => {\n proc.kill(\"SIGTERM\")\n })\n })\n\n const killGroup = (\n command: ChildProcess.StandardCommand,\n proc: NodeChildProcess.ChildProcess,\n signal: NodeJS.Signals,\n ) => {\n if (globalThis.process.platform === \"win32\") {\n return Effect.callback<void, PlatformError.PlatformError>((resume) => {\n NodeChildProcess.exec(`taskkill /pid ${proc.pid} /T /F`, { windowsHide: true }, (err) => {\n if (err) return resume(Effect.fail(toPlatformError(\"kill\", toError(err), command)))\n resume(Effect.void)\n })\n })\n }\n\n return Effect.try({\n try: () => {\n globalThis.process.kill(-proc.pid!, signal)\n },\n catch: (err) => toPlatformError(\"kill\", toError(err), command),\n })\n }\n\n const killOne = (\n command: ChildProcess.StandardCommand,\n proc: NodeChildProcess.ChildProcess,\n signal: NodeJS.Signals,\n ) =>\n Effect.suspend(() => {\n if (proc.kill(signal)) return Effect.void\n return Effect.fail(toPlatformError(\"kill\", new Error(\"Failed to kill child process\"), command))\n })\n\n const timeout =\n (\n proc: NodeChildProcess.ChildProcess,\n command: ChildProcess.StandardCommand,\n opts: ChildProcess.KillOptions | undefined,\n ) =>\n <A, E, R>(\n f: (\n command: ChildProcess.StandardCommand,\n proc: NodeChildProcess.ChildProcess,\n signal: NodeJS.Signals,\n ) => Effect.Effect<A, E, R>,\n ) => {\n const signal = opts?.killSignal ?? \"SIGTERM\"\n if (Predicate.isUndefined(opts?.forceKillAfter)) return f(command, proc, signal)\n return Effect.timeoutOrElse(f(command, proc, signal), {\n duration: opts.forceKillAfter,\n orElse: () => f(command, proc, \"SIGKILL\"),\n })\n }\n\n const source = (handle: ChildProcessHandle, from: ChildProcess.PipeFromOption | undefined) => {\n const opt = from ?? \"stdout\"\n switch (opt) {\n case \"stdout\":\n return handle.stdout\n case \"stderr\":\n return handle.stderr\n case \"all\":\n return handle.all\n default: {\n const fd = ChildProcess.parseFdName(opt)\n return Predicate.isNotUndefined(fd) ? handle.getOutputFd(fd) : handle.stdout\n }\n }\n }\n\n const spawnCommand: (\n command: ChildProcess.Command,\n ) => Effect.Effect<ChildProcessHandle, PlatformError.PlatformError, Scope.Scope> = Effect.fnUntraced(\n function* (command) {\n switch (command._tag) {\n case \"StandardCommand\": {\n const sin = stdin(command.options)\n const sout = stdio(command.options, \"stdout\")\n const serr = stdio(command.options, \"stderr\")\n const extra = fds(command.options)\n const dir = yield* cwd(command.options)\n\n const [proc, signal] = yield* Effect.acquireRelease(\n spawn(command, {\n cwd: dir,\n env: env(command.options),\n stdio: stdios(sin, sout, serr, extra),\n detached: command.options.detached ?? process.platform !== \"win32\",\n shell: command.options.shell,\n windowsHide: process.platform === \"win32\",\n }),\n Effect.fnUntraced(function* ([proc, signal]) {\n const done = yield* Deferred.isDone(signal)\n const kill = timeout(proc, command, command.options)\n if (done) {\n const [code] = yield* Deferred.await(signal)\n if (process.platform === \"win32\") return yield* Effect.void\n if (code !== 0 && Predicate.isNotNull(code)) return yield* Effect.ignore(kill(killGroup))\n return yield* Effect.void\n }\n const send = (s: NodeJS.Signals) =>\n Effect.catch(killGroup(command, proc, s), () => killOne(command, proc, s))\n const sig = command.options.killSignal ?? \"SIGTERM\"\n const attempt = send(sig).pipe(Effect.andThen(Deferred.await(signal)), Effect.asVoid)\n const escalated = command.options.forceKillAfter\n ? Effect.timeoutOrElse(attempt, {\n duration: command.options.forceKillAfter,\n orElse: () => send(\"SIGKILL\").pipe(Effect.andThen(Deferred.await(signal)), Effect.asVoid),\n })\n : attempt\n return yield* Effect.ignore(escalated)\n }),\n )\n\n const fd = yield* setupFds(command, proc, extra)\n const out = setupOutput(command, proc, sout, serr)\n return makeHandle({\n pid: ProcessId(proc.pid!),\n stdin: yield* setupStdin(command, proc, sin),\n stdout: out.stdout,\n stderr: out.stderr,\n all: out.all,\n getInputFd: fd.getInputFd,\n getOutputFd: fd.getOutputFd,\n isRunning: Effect.map(Deferred.isDone(signal), (done) => !done),\n exitCode: Effect.flatMap(Deferred.await(signal), ([code, signal]) => {\n if (Predicate.isNotNull(code)) return Effect.succeed(ExitCode(code))\n return Effect.fail(\n toPlatformError(\n \"exitCode\",\n new Error(`Process interrupted due to receipt of signal: '${signal}'`),\n command,\n ),\n )\n }),\n kill: (opts?: ChildProcess.KillOptions) => {\n const sig = opts?.killSignal ?? \"SIGTERM\"\n const send = (s: NodeJS.Signals) =>\n Effect.catch(killGroup(command, proc, s), () => killOne(command, proc, s))\n const attempt = send(sig).pipe(Effect.andThen(Deferred.await(signal)), Effect.asVoid)\n if (!opts?.forceKillAfter) return attempt\n return Effect.timeoutOrElse(attempt, {\n duration: opts.forceKillAfter,\n orElse: () => send(\"SIGKILL\").pipe(Effect.andThen(Deferred.await(signal)), Effect.asVoid),\n })\n },\n })\n }\n case \"PipedCommand\": {\n const flat = flatten(command)\n const [head, ...tail] = flat.commands\n let handle = spawnCommand(head)\n for (let i = 0; i < tail.length; i++) {\n const next = tail[i]\n const opts = flat.opts[i] ?? {}\n const sin = stdin(next.options)\n const stream = Stream.unwrap(Effect.map(handle, (x) => source(x, opts.from)))\n const to = opts.to ?? \"stdin\"\n if (to === \"stdin\") {\n handle = spawnCommand(\n ChildProcess.make(next.command, next.args, {\n ...next.options,\n stdin: { ...sin, stream },\n }),\n )\n continue\n }\n const fd = ChildProcess.parseFdName(to)\n if (Predicate.isUndefined(fd)) {\n handle = spawnCommand(\n ChildProcess.make(next.command, next.args, {\n ...next.options,\n stdin: { ...sin, stream },\n }),\n )\n continue\n }\n handle = spawnCommand(\n ChildProcess.make(next.command, next.args, {\n ...next.options,\n additionalFds: {\n ...next.options.additionalFds,\n [ChildProcess.fdName(fd) as `fd${number}`]: { type: \"input\", stream },\n },\n }),\n )\n }\n return yield* handle\n }\n }\n },\n )\n\n return makeSpawner(spawnCommand)\n})\n\nexport const layer: Layer.Layer<ChildProcessSpawner, never, FileSystem.FileSystem | Path.Path> = Layer.effect(\n ChildProcessSpawner,\n make,\n)\n\nexport const defaultLayer = layer.pipe(Layer.provide(NodeFileSystem.layer), Layer.provide(NodePath.layer))\n\nimport { lazy } from \"@/util/lazy\"\n\nconst rt = lazy(async () => {\n // Dynamic import to avoid circular dep: cross-spawn-spawner \u2192 run-service \u2192 Instance \u2192 project \u2192 cross-spawn-spawner\n const { makeRuntime } = await import(\"@/effect/run-service\")\n return makeRuntime(ChildProcessSpawner, defaultLayer)\n})\n\ntype RT = Awaited<ReturnType<typeof rt>>\nexport const runPromiseExit: RT[\"runPromiseExit\"] = async (...args) => (await rt()).runPromiseExit(...(args as [any]))\nexport const runPromise: RT[\"runPromise\"] = async (...args) => (await rt()).runPromise(...(args as [any]))\n", "import { Log } from \"@/util/log\"\n\nexport namespace State {\n interface Entry {\n state: any\n dispose?: (state: any) => Promise<void>\n }\n\n const log = Log.create({ service: \"state\" })\n const recordsByKey = new Map<string, Map<any, Entry>>()\n\n export function create<S>(root: () => string, init: () => S, dispose?: (state: Awaited<S>) => Promise<void>) {\n return () => {\n const key = root()\n let entries = recordsByKey.get(key)\n if (!entries) {\n entries = new Map<string, Entry>()\n recordsByKey.set(key, entries)\n }\n const exists = entries.get(init)\n if (exists) return exists.state as S\n const state = init()\n entries.set(init, {\n state,\n dispose,\n })\n return state\n }\n }\n\n export async function dispose(key: string) {\n const entries = recordsByKey.get(key)\n if (!entries) return\n\n log.info(\"waiting for state disposal to complete\", { key })\n\n let disposalFinished = false\n\n setTimeout(() => {\n if (!disposalFinished) {\n log.warn(\n \"state disposal is taking an unusually long time - if it does not complete in a reasonable time, please report this as a bug\",\n { key },\n )\n }\n }, 10000).unref()\n\n const tasks: Promise<void>[] = []\n for (const [init, entry] of entries) {\n if (!entry.dispose) continue\n\n const label = typeof init === \"function\" ? init.name : String(init)\n\n const task = Promise.resolve(entry.state)\n .then((state) => entry.dispose!(state))\n .catch((error) => {\n log.error(\"Error while disposing state:\", { error, key, init: label })\n })\n\n tasks.push(task)\n }\n await Promise.all(tasks)\n\n entries.clear()\n recordsByKey.delete(key)\n\n disposalFinished = true\n log.info(\"state disposal completed\", { key })\n }\n}\n", "import { GlobalBus } from \"@/bus/global\"\nimport { disposeInstance } from \"@/effect/instance-registry\"\nimport { Filesystem } from \"@/util/filesystem\"\nimport { iife } from \"@/util/iife\"\nimport { Log } from \"@/util/log\"\nimport { Context } from \"../util/context\"\nimport { Project } from \"./project\"\nimport { State } from \"./state\"\n\nexport interface InstanceContext {\n directory: string\n worktree: string\n project: Project.Info\n}\n\nconst context = Context.create<InstanceContext>(\"instance\")\nconst cache = new Map<string, Promise<InstanceContext>>()\n\nconst disposal = {\n all: undefined as Promise<void> | undefined,\n}\n\nfunction emit(directory: string) {\n GlobalBus.emit(\"event\", {\n directory,\n payload: {\n type: \"server.instance.disposed\",\n properties: {\n directory,\n },\n },\n })\n}\n\nfunction boot(input: { directory: string; init?: () => Promise<any>; project?: Project.Info; worktree?: string }) {\n return iife(async () => {\n const ctx =\n input.project && input.worktree\n ? {\n directory: input.directory,\n worktree: input.worktree,\n project: input.project,\n }\n : await Project.fromDirectory(input.directory).then(({ project, sandbox }) => ({\n directory: input.directory,\n worktree: sandbox,\n project,\n }))\n await context.provide(ctx, async () => {\n await input.init?.()\n })\n return ctx\n })\n}\n\nfunction track(directory: string, next: Promise<InstanceContext>) {\n const task = next.catch((error) => {\n if (cache.get(directory) === task) cache.delete(directory)\n throw error\n })\n cache.set(directory, task)\n return task\n}\n\nexport const Instance = {\n async provide<R>(input: { directory: string; init?: () => Promise<any>; fn: () => R }): Promise<R> {\n const directory = Filesystem.resolve(input.directory)\n let existing = cache.get(directory)\n if (!existing) {\n Log.Default.info(\"creating instance\", { directory })\n existing = track(\n directory,\n boot({\n directory,\n init: input.init,\n }),\n )\n }\n const ctx = await existing\n return context.provide(ctx, async () => {\n return input.fn()\n })\n },\n get current() {\n return context.use()\n },\n get directory() {\n return context.use().directory\n },\n get worktree() {\n return context.use().worktree\n },\n get project() {\n return context.use().project\n },\n /**\n * Check if a path is within the project boundary.\n * Returns true if path is inside Instance.directory OR Instance.worktree.\n * Paths within the worktree but outside the working directory should not trigger external_directory permission.\n */\n containsPath(filepath: string) {\n if (Filesystem.contains(Instance.directory, filepath)) return true\n // Non-git projects set worktree to \"/\" which would match ANY absolute path.\n // Skip worktree check in this case to preserve external_directory permissions.\n if (Instance.worktree === \"/\") return false\n return Filesystem.contains(Instance.worktree, filepath)\n },\n /**\n * Captures the current instance ALS context and returns a wrapper that\n * restores it when called. Use this for callbacks that fire outside the\n * instance async context (native addons, event emitters, timers, etc.).\n */\n bind<F extends (...args: any[]) => any>(fn: F): F {\n const ctx = context.use()\n return ((...args: any[]) => context.provide(ctx, () => fn(...args))) as F\n },\n /**\n * Run a synchronous function within the given instance context ALS.\n * Use this to bridge from Effect (where InstanceRef carries context)\n * back to sync code that reads Instance.directory from ALS.\n */\n restore<R>(ctx: InstanceContext, fn: () => R): R {\n return context.provide(ctx, fn)\n },\n state<S>(init: () => S, dispose?: (state: Awaited<S>) => Promise<void>): () => S {\n return State.create(() => Instance.directory, init, dispose)\n },\n async reload(input: { directory: string; init?: () => Promise<any>; project?: Project.Info; worktree?: string }) {\n const directory = Filesystem.resolve(input.directory)\n Log.Default.info(\"reloading instance\", { directory })\n await Promise.all([State.dispose(directory), disposeInstance(directory)])\n cache.delete(directory)\n const next = track(directory, boot({ ...input, directory }))\n emit(directory)\n return await next\n },\n async dispose() {\n const directory = Instance.directory\n Log.Default.info(\"disposing instance\", { directory })\n await Promise.all([State.dispose(directory), disposeInstance(directory)])\n cache.delete(directory)\n emit(directory)\n },\n async disposeAll() {\n if (disposal.all) return disposal.all\n\n disposal.all = iife(async () => {\n Log.Default.info(\"disposing all instances\")\n const entries = [...cache.entries()]\n for (const [key, value] of entries) {\n if (cache.get(key) !== value) continue\n\n const ctx = await value.catch((error) => {\n Log.Default.warn(\"instance dispose failed\", { key, error })\n return undefined\n })\n\n if (!ctx) {\n if (cache.get(key) === value) cache.delete(key)\n continue\n }\n\n if (cache.get(key) !== value) continue\n\n await context.provide(ctx, async () => {\n await Instance.dispose()\n })\n }\n }).finally(() => {\n disposal.all = undefined\n })\n\n return disposal.all\n },\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;AAAA,SAAS,UAAAA,SAAQ,SAAAC,QAAO,sBAAsB;;;ACA9C,SAAS,oBAAoB;AAEtB,IAAM,YAAY,IAAI,aAO1B;;;ACTH,IAAM,YAAY,oBAAI,IAA0C;AAEzD,SAAS,iBAAiB,UAAgD;AAC/E,YAAU,IAAI,QAAQ;AACtB,SAAO,MAAM;AACX,cAAU,OAAO,QAAQ;AAAA,EAC3B;AACF;AAEA,eAAsB,gBAAgB,WAAmB;AACvD,QAAM,QAAQ,WAAW,CAAC,GAAG,SAAS,EAAE,IAAI,CAAC,aAAa,SAAS,SAAS,CAAC,CAAC;AAChF;;;ACXA,SAAS,OAAO,OAAO,UAAU,QAAQ,UAAU,iBAAiB;AACpE,SAAS,mBAAmB,YAAY,gBAAgB;AACxD,SAAS,cAAc;AACvB,SAAS,oBAAoB;AAC7B,SAAS,SAAS,MAAM,UAAU,WAAW,aAAa,aAAa;AACvE,SAAS,gBAAgB;AACzB,SAAS,gBAAgB;;;ACNzB,SAAS,MAAM,gBAAkC;AACjD,SAAS,iBAAiB;AAEnB,IAAU;AAAA,CAAV,CAAUC,UAAV;AASL,WAAS,cAAc,SAA+B;AACpD,WAAO;AAAA,MACL,KAAK,QAAQ;AAAA,MACb,UAAU,QAAQ;AAAA,MAClB,KAAK,QAAQ;AAAA,MACb,QAAQ,QAAQ,WAAW;AAAA,MAC3B,OAAO,QAAQ,YAAY;AAAA,IAC7B;AAAA,EACF;AAEA,iBAAsB,KAAK,SAAiB,UAAmB,CAAC,GAAsB;AACpF,WAAO,KAAK,SAAS,cAAc,OAAO,CAAC;AAAA,EAC7C;AAFA,EAAAA,MAAsB;AAIf,WAAS,SAAS,SAAiB,UAAmB,CAAC,GAAa;AACzE,WAAO,SAAS,SAAS,cAAc,OAAO,CAAC;AAAA,EACjD;AAFO,EAAAA,MAAS;AAIT,WAAS,MAAM,SAAiB,UAA2B;AAChE,WAAO,UAAU,UAAU,SAAS,EAAE,KAAK,KAAK,CAAC;AAAA,EACnD;AAFO,EAAAA,MAAS;AAAA,GA3BD;;;ADMV,IAAU;AAAA,CAAV,CAAUC,gBAAV;AAEL,iBAAsB,OAAO,GAA6B;AACxD,WAAO,WAAW,CAAC;AAAA,EACrB;AAFA,EAAAA,YAAsB;AAItB,iBAAsB,MAAM,GAA6B;AACvD,QAAI;AACF,aAAO,SAAS,CAAC,EAAE,YAAY;AAAA,IACjC,QAAQ;AACN,aAAO;AAAA,IACT;AAAA,EACF;AANA,EAAAA,YAAsB;AAQf,WAAS,KAAK,GAAoD;AACvE,WAAO,SAAS,GAAG,EAAE,gBAAgB,MAAM,CAAC,KAAK;AAAA,EACnD;AAFO,EAAAA,YAAS;AAIhB,iBAAsB,UAAU,GAA6D;AAC3F,WAAO,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM;AAC9B,UAAI,SAAS,CAAC,EAAG,QAAO;AACxB,YAAM;AAAA,IACR,CAAC;AAAA,EACH;AALA,EAAAA,YAAsB;AAOtB,iBAAsB,KAAK,GAA4B;AACrD,UAAM,IAAI,KAAK,CAAC,GAAG,QAAQ;AAC3B,WAAO,OAAO,MAAM,WAAW,OAAO,CAAC,IAAI;AAAA,EAC7C;AAHA,EAAAA,YAAsB;AAKtB,iBAAsB,SAAS,GAA4B;AACzD,WAAO,SAAS,GAAG,OAAO;AAAA,EAC5B;AAFA,EAAAA,YAAsB;AAItB,iBAAsB,SAAkB,GAAuB;AAC7D,WAAO,KAAK,MAAM,MAAM,SAAS,GAAG,OAAO,CAAC;AAAA,EAC9C;AAFA,EAAAA,YAAsB;AAItB,iBAAsB,UAAU,GAA4B;AAC1D,WAAO,SAAS,CAAC;AAAA,EACnB;AAFA,EAAAA,YAAsB;AAItB,iBAAsB,gBAAgB,GAAiC;AACrE,UAAM,MAAM,MAAM,SAAS,CAAC;AAC5B,WAAO,IAAI,OAAO,MAAM,IAAI,YAAY,IAAI,aAAa,IAAI,UAAU;AAAA,EACzE;AAHA,EAAAA,YAAsB;AAKtB,WAAS,SAAS,GAAqC;AACrD,WAAO,OAAO,MAAM,YAAY,MAAM,QAAQ,UAAU,KAAM,EAAuB,SAAS;AAAA,EAChG;AAEA,iBAAsB,MAAM,GAAW,SAAuC,MAA8B;AAC1G,QAAI;AACF,UAAI,MAAM;AACR,cAAM,UAAU,GAAG,SAAS,EAAE,KAAK,CAAC;AAAA,MACtC,OAAO;AACL,cAAM,UAAU,GAAG,OAAO;AAAA,MAC5B;AAAA,IACF,SAAS,GAAG;AACV,UAAI,SAAS,CAAC,GAAG;AACf,cAAM,MAAM,QAAQ,CAAC,GAAG,EAAE,WAAW,KAAK,CAAC;AAC3C,YAAI,MAAM;AACR,gBAAM,UAAU,GAAG,SAAS,EAAE,KAAK,CAAC;AAAA,QACtC,OAAO;AACL,gBAAM,UAAU,GAAG,OAAO;AAAA,QAC5B;AACA;AAAA,MACF;AACA,YAAM;AAAA,IACR;AAAA,EACF;AAnBA,EAAAA,YAAsB;AAqBtB,iBAAsB,UAAU,GAAWC,OAAe,MAA8B;AACtF,WAAO,MAAM,GAAG,KAAK,UAAUA,OAAM,MAAM,CAAC,GAAG,IAAI;AAAA,EACrD;AAFA,EAAAD,YAAsB;AAItB,iBAAsB,YACpB,GACA,QACA,MACe;AACf,UAAM,MAAM,QAAQ,CAAC;AACrB,QAAI,CAAC,WAAW,GAAG,GAAG;AACpB,YAAM,MAAM,KAAK,EAAE,WAAW,KAAK,CAAC;AAAA,IACtC;AAEA,UAAM,aAAa,kBAAkB,iBAAiB,SAAS,QAAQ,MAAa,IAAI;AACxF,UAAME,eAAc,kBAAkB,CAAC;AACvC,UAAM,SAAS,YAAYA,YAAW;AAEtC,QAAI,MAAM;AACR,YAAM,MAAM,GAAG,IAAI;AAAA,IACrB;AAAA,EACF;AAjBA,EAAAF,YAAsB;AAmBf,WAAS,SAAS,GAAmB;AAC1C,WAAO,OAAO,CAAC,KAAK;AAAA,EACtB;AAFO,EAAAA,YAAS;AAST,WAAS,cAAc,GAAmB;AAC/C,QAAI,QAAQ,aAAa,QAAS,QAAO;AACzC,UAAM,WAAW,MAAM,UAAU,MAAM,QAAQ,YAAY,CAAC,CAAC,CAAC;AAC9D,QAAI;AACF,aAAO,aAAa,OAAO,QAAQ;AAAA,IACrC,QAAQ;AACN,aAAO;AAAA,IACT;AAAA,EACF;AARO,EAAAA,YAAS;AAUT,WAAS,qBAAqB,GAAmB;AACtD,QAAI,QAAQ,aAAa,QAAS,QAAO;AACzC,QAAI,MAAM,IAAK,QAAO;AACtB,UAAM,QAAQ,EAAE,MAAM,eAAe;AACrC,QAAI,CAAC,MAAO,QAAO,cAAc,CAAC;AAClC,UAAM,MAAM,cAAc,KAAK,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC;AACpE,WAAO,KAAK,cAAc,GAAG,GAAG,GAAG;AAAA,EACrC;AAPO,EAAAA,YAAS;AAYT,WAAS,QAAQ,GAAmB;AACzC,UAAM,WAAW,YAAY,YAAY,CAAC,CAAC;AAC3C,QAAI;AACF,aAAO,cAAc,aAAa,QAAQ,CAAC;AAAA,IAC7C,SAAS,GAAG;AACV,UAAI,SAAS,CAAC,EAAG,QAAO,cAAc,QAAQ;AAC9C,YAAM;AAAA,IACR;AAAA,EACF;AARO,EAAAA,YAAS;AAUT,WAAS,YAAY,GAAmB;AAC7C,QAAI,QAAQ,aAAa,QAAS,QAAO;AACzC,WACE,EACG,QAAQ,6BAA6B,CAAC,GAAG,UAAU,GAAG,MAAM,YAAY,CAAC,IAAI,EAE7E,QAAQ,yBAAyB,CAAC,GAAG,UAAU,GAAG,MAAM,YAAY,CAAC,IAAI,EAEzE,QAAQ,mCAAmC,CAAC,GAAG,UAAU,GAAG,MAAM,YAAY,CAAC,IAAI,EAEnF,QAAQ,8BAA8B,CAAC,GAAG,UAAU,GAAG,MAAM,YAAY,CAAC,IAAI;AAAA,EAErF;AAZO,EAAAA,YAAS;AAaT,WAAS,SAAS,GAAW,GAAW;AAC7C,UAAM,OAAO,SAAS,GAAG,CAAC;AAC1B,UAAM,OAAO,SAAS,GAAG,CAAC;AAC1B,WAAO,CAAC,QAAQ,CAAC,KAAK,WAAW,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,WAAW,IAAI;AAAA,EAC1E;AAJO,EAAAA,YAAS;AAMT,WAAS,SAAS,QAAgB,OAAe;AACtD,WAAO,CAAC,SAAS,QAAQ,KAAK,EAAE,WAAW,IAAI;AAAA,EACjD;AAFO,EAAAA,YAAS;AAgBhB,iBAAsB,OACpB,QACA,OACA,MACA,SACA;AACA,UAAM,OAAO,CAAC,KAAK;AACnB,QAAI,UAAU;AACd,WAAO,MAAM;AACX,UAAI,SAAS,QAAS;AACtB,YAAM,SAAS,QAAQ,OAAO;AAC9B,UAAI,WAAW,QAAS;AACxB,WAAK,KAAK,MAAM;AAChB,gBAAU;AAAA,IACZ;AAEA,UAAM,UAAU,MAAM,QAAQ,MAAM,IAAI,SAAS,CAAC,MAAM;AACxD,UAAM,SAAS,CAAC;AAChB,eAAW,OAAO,SAAS,YAAY,KAAK,WAAW,IAAI,MAAM;AAC/D,iBAAW,QAAQ,SAAS;AAC1B,cAAM,SAAS,KAAK,KAAK,IAAI;AAC7B,YAAI,MAAM,OAAO,MAAM,EAAG,QAAO,KAAK,MAAM;AAAA,MAC9C;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAzBA,EAAAA,YAAsB;AA2BtB,kBAAuB,GAAG,SAA8D;AACtF,UAAM,EAAE,SAAS,OAAO,KAAK,IAAI;AACjC,QAAI,UAAU;AACd,WAAO,MAAM;AACX,iBAAW,UAAU,SAAS;AAC5B,cAAM,SAAS,KAAK,SAAS,MAAM;AACnC,YAAI,MAAM,OAAO,MAAM,EAAG,OAAM;AAAA,MAClC;AACA,UAAI,SAAS,QAAS;AACtB,YAAM,SAAS,QAAQ,OAAO;AAC9B,UAAI,WAAW,QAAS;AACxB,gBAAU;AAAA,IACZ;AAAA,EACF;AAbA,EAAAA,YAAuB;AAevB,iBAAsB,OAAO,SAAiB,OAAe,MAAe;AAC1E,QAAI,UAAU;AACd,UAAM,SAAS,CAAC;AAChB,WAAO,MAAM;AACX,UAAI;AACF,cAAM,UAAU,MAAM,KAAK,KAAK,SAAS;AAAA,UACvC,KAAK;AAAA,UACL,UAAU;AAAA,UACV,SAAS;AAAA,UACT,KAAK;AAAA,QACP,CAAC;AACD,eAAO,KAAK,GAAG,OAAO;AAAA,MACxB,QAAQ;AAAA,MAER;AACA,UAAI,SAAS,QAAS;AACtB,YAAM,SAAS,QAAQ,OAAO;AAC9B,UAAI,WAAW,QAAS;AACxB,gBAAU;AAAA,IACZ;AACA,WAAO;AAAA,EACT;AArBA,EAAAA,YAAsB;AAAA,GArNP;;;AETV,SAAS,KAAQ,IAAa;AACnC,SAAO,GAAG;AACZ;;;ACFA,OAAOG,WAAU;AACjB,OAAOC,SAAQ;AACf,SAAS,qBAAAC,0BAAyB;;;ACFlC,OAAO,QAAQ;AACf,SAAS,SAAS,UAAU,WAAW,gBAAgB;AACvD,OAAO,UAAU;AACjB,OAAO,QAAQ;AAGf,IAAM,MAAM;AAGZ,IAAM,gBAAgB,QAAQ,IAAI,mBAAmB;AACrD,IAAM,OAAO,iBAAiB,KAAK,KAAK,SAAU,GAAG;AACrD,IAAM,QAAQ,KAAK,KAAK,UAAW,GAAG;AACtC,IAAM,SAAS,gBAAgB,KAAK,KAAK,eAAe,QAAQ,IAAI,KAAK,KAAK,WAAY,GAAG;AAC7F,IAAM,QAAQ,gBAAgB,KAAK,KAAK,eAAe,OAAO,IAAI,KAAK,KAAK,UAAW,GAAG;AAEnF,IAAU;AAAA,CAAV,CAAUC,YAAV;AACE,EAAMA,QAAA,OAAO;AAAA;AAAA,IAElB,IAAI,OAAO;AACT,aAAO,QAAQ,IAAI,sBAAsB,GAAG,QAAQ;AAAA,IACtD;AAAA,IACA;AAAA,IACA,KAAK,KAAK,KAAK,OAAO,KAAK;AAAA,IAC3B,KAAK,KAAK,KAAK,MAAM,KAAK;AAAA,IAC1B;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,GAZe;AAejB,MAAM,QAAQ,IAAI;AAAA,EAChB,GAAG,MAAM,OAAO,KAAK,MAAM,EAAE,WAAW,KAAK,CAAC;AAAA,EAC9C,GAAG,MAAM,OAAO,KAAK,QAAQ,EAAE,WAAW,KAAK,CAAC;AAAA,EAChD,GAAG,MAAM,OAAO,KAAK,OAAO,EAAE,WAAW,KAAK,CAAC;AAAA,EAC/C,GAAG,MAAM,OAAO,KAAK,KAAK,EAAE,WAAW,KAAK,CAAC;AAAA,EAC7C,GAAG,MAAM,OAAO,KAAK,KAAK,EAAE,WAAW,KAAK,CAAC;AAC/C,CAAC;AAED,IAAM,gBAAgB;AAEtB,IAAM,UAAU,MAAM,WAAW,SAAS,KAAK,KAAK,OAAO,KAAK,OAAO,SAAS,CAAC,EAAE,MAAM,MAAM,GAAG;AAElG,IAAI,YAAY,eAAe;AAC7B,MAAI;AACF,UAAM,WAAW,MAAM,GAAG,QAAQ,OAAO,KAAK,KAAK;AACnD,UAAM,QAAQ;AAAA,MACZ,SAAS;AAAA,QAAI,CAAC,SACZ,GAAG,GAAG,KAAK,KAAK,OAAO,KAAK,OAAO,IAAI,GAAG;AAAA,UACxC,WAAW;AAAA,UACX,OAAO;AAAA,QACT,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF,SAAS,GAAG;AAAA,EAAC;AACb,QAAM,WAAW,MAAM,KAAK,KAAK,OAAO,KAAK,OAAO,SAAS,GAAG,aAAa;AAC/E;;;ADnDA,OAAO,OAAO;AAGP,IAAU;AAAA,CAAV,CAAUC,SAAV;AACE,EAAMA,KAAA,QAAQ,EAAE,KAAK,CAAC,SAAS,QAAQ,QAAQ,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,YAAY,aAAa,YAAY,CAAC;AAGlH,QAAM,gBAAuC;AAAA,IAC3C,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAEA,MAAI,QAAe;AAEnB,WAAS,UAAU,OAAuB;AACxC,WAAO,cAAc,KAAK,KAAK,cAAc,KAAK;AAAA,EACpD;AAkBA,QAAM,UAAU,oBAAI,IAAoB;AAEjC,EAAMA,KAAA,UAAU,OAAO,EAAE,SAAS,UAAU,CAAC;AAQpD,MAAI,UAAU;AACP,WAAS,OAAO;AACrB,WAAO;AAAA,EACT;AAFO,EAAAA,KAAS;AAGhB,MAAI,QAAQ,CAAC,QAAa;AACxB,YAAQ,OAAO,MAAM,GAAG;AACxB,WAAO,IAAI;AAAA,EACb;AAEA,iBAAsBC,MAAK,SAAkB;AAC3C,QAAI,QAAQ,MAAO,SAAQ,QAAQ;AACnC,YAAQ,OAAO,KAAK,GAAG;AACvB,QAAI,QAAQ,MAAO;AACnB,cAAUC,MAAK;AAAA,MACb,OAAO,KAAK;AAAA,MACZ,QAAQ,MAAM,aAAY,oBAAI,KAAK,GAAE,YAAY,EAAE,MAAM,GAAG,EAAE,CAAC,EAAE,QAAQ,MAAM,EAAE,IAAI;AAAA,IACvF;AACA,UAAMC,IAAG,SAAS,OAAO,EAAE,MAAM,MAAM;AAAA,IAAC,CAAC;AACzC,UAAM,SAASC,mBAAkB,SAAS,EAAE,OAAO,IAAI,CAAC;AACxD,YAAQ,OAAO,QAAa;AAC1B,aAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,eAAO,MAAM,KAAK,CAAC,QAAQ;AACzB,cAAI,IAAK,QAAO,GAAG;AAAA,cACd,SAAQ,IAAI,MAAM;AAAA,QACzB,CAAC;AAAA,MACH,CAAC;AAAA,IACH;AAAA,EACF;AAlBA,EAAAJ,KAAsB,OAAAC;AAoBtB,iBAAe,QAAQ,KAAa;AAClC,UAAM,QAAQ,MAAM,KAAK,KAAK,yBAAyB;AAAA,MACrD,KAAK;AAAA,MACL,UAAU;AAAA,MACV,SAAS;AAAA,IACX,CAAC;AACD,QAAI,MAAM,UAAU,EAAG;AAEvB,UAAM,gBAAgB,MAAM,MAAM,GAAG,GAAG;AACxC,UAAM,QAAQ,IAAI,cAAc,IAAI,CAACI,UAASF,IAAG,OAAOE,KAAI,EAAE,MAAM,MAAM;AAAA,IAAC,CAAC,CAAC,CAAC;AAAA,EAChF;AAEA,WAAS,YAAY,OAAc,QAAQ,GAAW;AACpD,UAAM,SAAS,MAAM;AACrB,WAAO,MAAM,iBAAiB,SAAS,QAAQ,KAC3C,SAAS,iBAAiB,YAAY,MAAM,OAAO,QAAQ,CAAC,IAC5D;AAAA,EACN;AAEA,MAAI,OAAO,KAAK,IAAI;AACb,WAAS,OAAO,MAA4B;AACjD,WAAO,QAAQ,CAAC;AAEhB,UAAM,UAAU,KAAK,SAAS;AAC9B,QAAI,WAAW,OAAO,YAAY,UAAU;AAC1C,YAAM,SAAS,QAAQ,IAAI,OAAO;AAClC,UAAI,QAAQ;AACV,eAAO;AAAA,MACT;AAAA,IACF;AAEA,aAAS,MAAM,SAAc,OAA6B;AACxD,YAAM,SAAS,OAAO,QAAQ;AAAA,QAC5B,GAAG;AAAA,QACH,GAAG;AAAA,MACL,CAAC,EACE,OAAO,CAAC,CAAC,GAAG,KAAK,MAAM,UAAU,UAAa,UAAU,IAAI,EAC5D,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AACrB,cAAMC,UAAS,GAAG,GAAG;AACrB,YAAI,iBAAiB,MAAO,QAAOA,UAAS,YAAY,KAAK;AAC7D,YAAI,OAAO,UAAU,SAAU,QAAOA,UAAS,KAAK,UAAU,KAAK;AACnE,eAAOA,UAAS;AAAA,MAClB,CAAC,EACA,KAAK,GAAG;AACX,YAAM,OAAO,oBAAI,KAAK;AACtB,YAAM,OAAO,KAAK,QAAQ,IAAI;AAC9B,aAAO,KAAK,QAAQ;AACpB,aAAO,CAAC,KAAK,YAAY,EAAE,MAAM,GAAG,EAAE,CAAC,GAAG,MAAM,OAAO,MAAM,QAAQ,OAAO,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,IAAI;AAAA,IAC5G;AACA,UAAM,SAAiB;AAAA,MACrB,MAAM,SAAe,OAA6B;AAChD,YAAI,UAAU,OAAO,GAAG;AACtB,gBAAM,WAAW,MAAM,SAAS,KAAK,CAAC;AAAA,QACxC;AAAA,MACF;AAAA,MACA,KAAK,SAAe,OAA6B;AAC/C,YAAI,UAAU,MAAM,GAAG;AACrB,gBAAM,WAAW,MAAM,SAAS,KAAK,CAAC;AAAA,QACxC;AAAA,MACF;AAAA,MACA,MAAM,SAAe,OAA6B;AAChD,YAAI,UAAU,OAAO,GAAG;AACtB,gBAAM,WAAW,MAAM,SAAS,KAAK,CAAC;AAAA,QACxC;AAAA,MACF;AAAA,MACA,KAAK,SAAe,OAA6B;AAC/C,YAAI,UAAU,MAAM,GAAG;AACrB,gBAAM,WAAW,MAAM,SAAS,KAAK,CAAC;AAAA,QACxC;AAAA,MACF;AAAA,MACA,IAAI,KAAa,OAAe;AAC9B,YAAI,KAAM,MAAK,GAAG,IAAI;AACtB,eAAO;AAAA,MACT;AAAA,MACA,QAAQ;AACN,eAAON,KAAI,OAAO,EAAE,GAAG,KAAK,CAAC;AAAA,MAC/B;AAAA,MACA,KAAK,SAAiB,OAA6B;AACjD,cAAM,MAAM,KAAK,IAAI;AACrB,eAAO,KAAK,SAAS,EAAE,QAAQ,WAAW,GAAG,MAAM,CAAC;AACpD,iBAAS,OAAO;AACd,iBAAO,KAAK,SAAS;AAAA,YACnB,QAAQ;AAAA,YACR,UAAU,KAAK,IAAI,IAAI;AAAA,YACvB,GAAG;AAAA,UACL,CAAC;AAAA,QACH;AACA,eAAO;AAAA,UACL;AAAA,UACA,CAAC,OAAO,OAAO,IAAI;AACjB,iBAAK;AAAA,UACP;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,QAAI,WAAW,OAAO,YAAY,UAAU;AAC1C,cAAQ,IAAI,SAAS,MAAM;AAAA,IAC7B;AAEA,WAAO;AAAA,EACT;AAjFO,EAAAA,KAAS;AAAA,GA5FD;;;AEPjB,SAAS,yBAAyB;AAE3B,IAAU;AAAA,CAAV,CAAUO,aAAV;AAAA,EACE,MAAM,iBAAiB,MAAM;AAAA,IAClC,YAAqC,MAAc;AACjD,YAAM,wBAAwB,IAAI,EAAE;AADD;AAAA,IAErC;AAAA,IAFqC;AAAA,EAGvC;AAJO,EAAAA,SAAM;AAMN,WAAS,OAAU,MAAc;AACtC,UAAM,UAAU,IAAI,kBAAqB;AACzC,WAAO;AAAA,MACL,MAAM;AACJ,cAAM,SAAS,QAAQ,SAAS;AAChC,YAAI,CAAC,QAAQ;AACX,gBAAM,IAAI,SAAS,IAAI;AAAA,QACzB;AACA,eAAO;AAAA,MACT;AAAA,MACA,QAAW,OAAU,IAAa;AAChC,eAAO,QAAQ,IAAI,OAAO,EAAE;AAAA,MAC9B;AAAA,IACF;AAAA,EACF;AAdO,EAAAA,SAAS;AAAA,GAPD;;;ACFjB,OAAOC,QAAO;;;ACAd;AAAA;AAAA;AAAA;AAAA;AAGA;AAFA,SAAS,eAAe;AAExB,kCAAc;;;ACHP,SAAS,KAAQ,IAAa;AACnC,MAAI;AACJ,MAAI,SAAS;AAEb,QAAM,SAAS,MAAS;AACtB,QAAI,OAAQ,QAAO;AACnB,QAAI;AACF,cAAQ,GAAG;AACX,eAAS;AACT,aAAO;AAAA,IACT,SAAS,GAAG;AAEV,YAAM;AAAA,IACR;AAAA,EACF;AAEA,SAAO,QAAQ,MAAM;AACnB,aAAS;AACT,YAAQ;AAAA,EACV;AAEA,SAAO;AACT;;;ACtBA,OAAOC,QAAO;AAEP,IAAe,aAAf,MAAe,oBAAmB,MAAM;AAAA,EAI7C,OAAO,OAA0D,MAAYC,OAAY;AACvF,UAAM,SAASD,GACZ,OAAO;AAAA,MACN,MAAMA,GAAE,QAAQ,IAAI;AAAA,MACpB,MAAAC;AAAA,IACF,CAAC,EACA,KAAK;AAAA,MACJ,KAAK;AAAA,IACP,CAAC;AACH,UAAM,SAAS,cAAc,YAAW;AAAA,MAKtC,YACkBA,OAChB,SACA;AACA,cAAM,MAAM,OAAO;AAHH,oBAAAA;AAIhB,aAAK,OAAO;AAAA,MACd;AAAA,MALkB;AAAA,MALlB,OAAuB,SAAS;AAAA,MAEP,OAAO;AAAA,MAUhC,OAAO,WAAW,OAAkD;AAClE,eAAO,OAAO,UAAU,YAAY,UAAU,SAAS,MAAM,SAAS;AAAA,MACxE;AAAA,MAEA,SAAS;AACP,eAAO;AAAA,MACT;AAAA,MAEA,WAAW;AACT,eAAO;AAAA,UACL;AAAA,UACA,MAAM,KAAK;AAAA,QACb;AAAA,MACF;AAAA,IACF;AACA,WAAO,eAAe,QAAQ,QAAQ,EAAE,OAAO,KAAK,CAAC;AACrD,WAAO;AAAA,EACT;AAAA,EAEA,OAAuB,UAAU,YAAW;AAAA,IAC1C;AAAA,IACAD,GAAE,OAAO;AAAA,MACP,SAASA,GAAE,OAAO;AAAA,IACpB,CAAC;AAAA,EACH;AACF;;;AF5CA,OAAOE,QAAO;AACd,OAAOC,WAAU;AACjB,SAAS,cAAc,aAAa,cAAAC,mBAAkB;;;AGXtD,SAAS,cAAc;AAEvB,SAAS,OAAO,KAAa;AAC3B,QAAM,QAAQ,QAAQ,IAAI,GAAG,GAAG,YAAY;AAC5C,SAAO,UAAU,UAAU,UAAU;AACvC;AAEA,SAAS,MAAM,KAAa;AAC1B,QAAM,QAAQ,QAAQ,IAAI,GAAG,GAAG,YAAY;AAC5C,SAAO,UAAU,WAAW,UAAU;AACxC;AAEO,IAAU;AAAA,CAAV,CAAUC,UAAV;AACE,EAAMA,MAAA,sBAAsB,OAAO,qBAAqB;AACxD,EAAMA,MAAA,8BAA8B,OAAO,6BAA6B;AACxE,EAAMA,MAAA,yBAAyB,QAAQ,IAAI,wBAAwB;AACnE,EAAMA,MAAA,kBAAkB,QAAQ,IAAI,iBAAiB;AAKrD,EAAMA,MAAA,0BAA0B,QAAQ,IAAI,yBAAyB;AACrE,EAAMA,MAAA,8BAA8B,OAAO,6BAA6B;AACxE,EAAMA,MAAA,gCAAgC,OAAO,+BAA+B;AAC5E,EAAMA,MAAA,yBAAyB,OAAO,wBAAwB;AAC9D,EAAMA,MAAA,kCAAkC,OAAO,iCAAiC;AAChF,EAAMA,MAAA,qBAAqB,OAAO,oBAAoB;AACtD,EAAMA,MAAA,sBAAsB,QAAQ,IAAI,qBAAqB;AAC7D,EAAMA,MAAA,mCAAmC,OAAO,kCAAkC;AAClF,EAAMA,MAAA,gCAAgC,OAAO,+BAA+B;AAC5E,EAAMA,MAAA,sCAAsC,OAAO,qCAAqC;AACxF,EAAMA,MAAA,+BAA+B,OAAO,8BAA8B;AAC1E,EAAMA,MAAA,gCAAgC,OAAO,+BAA+B;AAC5E,EAAMA,MAAA,yBAAyB,OAAO,wBAAwB;AAC9D,EAAMA,MAAA,+BAA+B,OAAO,8BAA8B;AAC1E,EAAMA,MAAA,sCACXA,MAAA,gCAAgC,OAAO,qCAAqC;AACvE,EAAMA,MAAA,sCACXA,MAAA,gCAAgC,OAAO,qCAAqC;AACvE,EAAMA,MAAA,mCACXA,MAAA,uCAAuC,OAAO,kCAAkC;AAE3E,EAAMA,MAAA,oBAAoB,QAAQ,IAAI,mBAAmB;AAEzD,EAAMA,MAAA,2BAA2B,QAAQ,IAAI,0BAA0B;AACvE,EAAMA,MAAA,2BAA2B,QAAQ,IAAI,0BAA0B;AACvE,EAAMA,MAAA,gCAAgC,OAAO,+BAA+B;AAG5E,EAAMA,MAAA,wBAAwB,OAAO,uBAAuB;AAC5D,EAAMA,MAAA,oCAAoC,OAAO,QAAQ,mCAAmC,EAAE;AAAA,IACnG,OAAO,YAAY,KAAK;AAAA,EAC1B;AACO,EAAMA,MAAA,4CAA4C,OAAO;AAAA,IAC9D;AAAA,EACF,EAAE,KAAK,OAAO,YAAY,KAAK,CAAC;AACzB,EAAMA,MAAA,uCACXA,MAAA,yBAAyB,OAAO,sCAAsC;AAExE,QAAM,OAAO,QAAQ,IAAI,8CAA8C;AAChE,EAAMA,MAAA,+CACX,SAAS,SAAY,QAAQ,aAAa,UAAU,OAAO,8CAA8C;AACpG,EAAMA,MAAA,sBACX,OAAO,qBAAqB,KAAKA,MAAA,yBAAyB,OAAO,2BAA2B;AACvF,EAAMA,MAAA,gDAAgD,OAAO,+CAA+C;AAC5G,EAAMA,MAAA,yCAAyC,OAAO,wCAAwC;AAC9F,EAAMA,MAAA,8BAA8BA,MAAA,yBAAyB,OAAO,6BAA6B;AACjG,EAAMA,MAAA,+BAA+B,OAAO,8BAA8B;AAC1E,EAAMA,MAAA,iCAAiCA,MAAA,yBAAyB,OAAO,gCAAgC;AACvG,EAAMA,MAAA,kCAAkC,OAAO,QAAQ,iCAAiC,EAAE;AAAA,IAC/F,OAAO,YAAY,KAAK;AAAA,EAC1B;AACO,EAAMA,MAAA,kCAAkCA,MAAA,yBAAyB,OAAO,iCAAiC;AACzG,EAAMA,MAAA,mCAAmCA,MAAA,yBAAyB,OAAO,kCAAkC;AAC3G,EAAMA,MAAA,iCAAiC,CAAC,MAAM,gCAAgC;AAC9E,EAAMA,MAAA,sBAAsB,QAAQ,IAAI,qBAAqB;AAC7D,EAAMA,MAAA,uBAAuB,QAAQ,IAAI,sBAAsB;AAC/D,EAAMA,MAAA,mCAAmC,OAAO,kCAAkC;AAClF,EAAMA,MAAA,cAAc,QAAQ,IAAI,aAAa;AAC7C,EAAMA,MAAA,8BAA8B,OAAO,6BAA6B;AACxE,EAAMA,MAAA,2BAA2B,OAAO,0BAA0B;AAClE,EAAMA,MAAA,8BAA8B,OAAO,6BAA6B;AAE/E,WAAS,OAAO,KAAa;AAC3B,UAAM,QAAQ,QAAQ,IAAI,GAAG;AAC7B,QAAI,CAAC,MAAO,QAAO;AACnB,UAAM,SAAS,OAAO,KAAK;AAC3B,WAAO,OAAO,UAAU,MAAM,KAAK,SAAS,IAAI,SAAS;AAAA,EAC3D;AAAA,GA5Ee;AAkFjB,OAAO,eAAe,MAAM,mCAAmC;AAAA,EAC7D,MAAM;AACJ,WAAO,OAAO,iCAAiC;AAAA,EACjD;AAAA,EACA,YAAY;AAAA,EACZ,cAAc;AAChB,CAAC;AAKD,OAAO,eAAe,MAAM,uBAAuB;AAAA,EACjD,MAAM;AACJ,WAAO,QAAQ,IAAI,qBAAqB;AAAA,EAC1C;AAAA,EACA,YAAY;AAAA,EACZ,cAAc;AAChB,CAAC;AAKD,OAAO,eAAe,MAAM,uBAAuB;AAAA,EACjD,MAAM;AACJ,WAAO,QAAQ,IAAI,qBAAqB;AAAA,EAC1C;AAAA,EACA,YAAY;AAAA,EACZ,cAAc;AAChB,CAAC;AAKD,OAAO,eAAe,MAAM,iBAAiB;AAAA,EAC3C,MAAM;AACJ,WAAO,OAAO,eAAe;AAAA,EAC/B;AAAA,EACA,YAAY;AAAA,EACZ,cAAc;AAChB,CAAC;AAKD,OAAO,eAAe,MAAM,6BAA6B;AAAA,EACvD,MAAM;AACJ,WAAO,QAAQ,IAAI,2BAA2B;AAAA,EAChD;AAAA,EACA,YAAY;AAAA,EACZ,cAAc;AAChB,CAAC;AAKD,OAAO,eAAe,MAAM,mBAAmB;AAAA,EAC7C,MAAM;AACJ,WAAO,QAAQ,IAAI,iBAAiB,KAAK;AAAA,EAC3C;AAAA,EACA,YAAY;AAAA,EACZ,cAAc;AAChB,CAAC;;;ACtJM,IAAM,UAAU,OAAO,qBAAqB,WAAW,mBAAmB;AAC1E,IAAM,UAAU,OAAO,qBAAqB,WAAW,mBAAmB;;;ACNjF,SAAS,QAAQ,OAAO,aAAoB,cAAAC,mBAAkB;;;ACA9D,SAAS,kBAAkB;AAGpB,IAAM,cAAc,WAAW,UAAuC,yBAAyB;AAAA,EACpG,cAAc,MAAM;AACtB,CAAC;;;ADCD,IAAM,SAAS;AAOR,IAAU;AAAA,CAAV,CAAUC,mBAAV;AACE,EAAMA,eAAA,OAAO,CAAoC,OAAa;AACnE,QAAI;AACF,aAAO,SAAS,KAAK,EAAE;AAAA,IACzB,SAAS,KAAK;AACZ,UAAI,EAAE,eAAe,QAAQ,UAAW,OAAM;AAAA,IAChD;AACA,UAAM,QAAQ,MAAM,WAAW;AAC/B,UAAM,MAAM,QAAQC,YAAW,mBAAmB,MAAM,UAAU,WAAW,IAAI;AACjF,QAAI,CAAC,IAAK,QAAO;AACjB,YAAQ,IAAI,SAAgB,SAAS,QAAQ,KAAK,MAAM,GAAG,GAAG,IAAI,CAAC;AAAA,EACrE;AAEO,EAAMD,eAAA,UAAU,OAAO,IAAI,aAAa;AAC7C,YAAQ,OAAO,gBAAgB,SAAS;AAAA,EAC1C,CAAC;AAEM,EAAMA,eAAA,YAAY,OAAO,IAAIA,eAAA,SAAS,CAAC,QAAQ,IAAI,SAAS;AAE5D,EAAMA,eAAA,OAAO,CAClBE,UAEA,OAAO,IAAI,aAAa;AACtB,UAAMC,SAAQ,OAAO,YAAY,KAAsB;AAAA,MACrD,UAAU,OAAO;AAAA,MACjB,QAAQ,MACN,OAAO,IAAI,aAAa;AACtB,eAAO,OAAOD,MAAK,OAAOF,eAAA,OAAO;AAAA,MACnC,CAAC;AAAA,IACL,CAAC;AAED,UAAM,MAAM,iBAAiB,CAACI,eAAc,OAAO,WAAW,YAAY,WAAWD,QAAOC,UAAS,CAAC,CAAC;AACvG,WAAO,OAAO,aAAa,MAAM,OAAO,KAAK,GAAG,CAAC;AAEjD,WAAO;AAAA,MACL,CAAC,MAAM,GAAG;AAAA,MACV,OAAAD;AAAA,IACF;AAAA,EACF,CAAC;AAEI,EAAMH,eAAA,MAAM,CAAU,SAC3B,OAAO,IAAI,aAAa;AACtB,WAAO,OAAO,YAAY,IAAI,KAAK,OAAO,OAAOA,eAAA,SAAS;AAAA,EAC5D,CAAC;AAEI,EAAMA,eAAA,MAAM,CAAa,MAA8B,WAC5D,OAAO,QAAIA,eAAA,KAAI,IAAI,GAAG,MAAM;AAEvB,EAAMA,eAAA,YAAY,CACvB,MACA,WACG,OAAO,YAAQA,eAAA,KAAI,IAAI,GAAG,MAAM;AAE9B,EAAMA,eAAA,MAAM,CAAU,SAC3B,OAAO,IAAI,aAAa;AACtB,WAAO,OAAO,YAAY,IAAI,KAAK,OAAO,OAAOA,eAAA,SAAS;AAAA,EAC5D,CAAC;AAEI,EAAMA,eAAA,aAAa,CAAU,SAClC,OAAO,IAAI,aAAa;AACtB,WAAO,OAAO,YAAY,WAAW,KAAK,OAAO,OAAOA,eAAA,SAAS;AAAA,EACnE,CAAC;AAMI,EAAMA,eAAA,UAAU,CAAI,OAAgB,OAAO,IAAIA,eAAA,SAAS,CAAC,QAAQ,SAAS,QAAQ,KAAK,EAAE,CAAC;AAAA,GAnElF;;;AEbjB,SAAS,oBAAoB;AAC7B,SAAS,eAAe;AAEjB,SAAS,KAAKK,OAAc;AACjC,QAAM,SAAS,IAAI,aAAaA,KAAI;AACpC,QAAM,KAAK,QAAQ,EAAE,QAAQ,OAAO,CAAC;AACrC,SAAO;AACT;;;APaO,IAAM,gBAAgB,WAAW;AAAA,EACtC;AAAA,EACAC,GAAE,OAAO;AAAA,IACP,SAASA,GAAE,OAAO;AAAA,EACpB,CAAC;AACH;AAEA,IAAM,MAAM,IAAI,OAAO,EAAE,SAAS,KAAK,CAAC;AAEjC,IAAU;AAAA,CAAV,CAAUC,cAAV;AACE,WAAS,iBAAiB;AAC/B,QAAI,CAAC,UAAU,MAAM,EAAE,SAAS,OAAO,KAAK,KAAK;AAC/C,aAAOC,MAAK,KAAK,OAAO,KAAK,MAAM,aAAa;AAClD,UAAM,OAAO,QAAQ,QAAQ,oBAAoB,GAAG;AACpD,WAAOA,MAAK,KAAK,OAAO,KAAK,MAAM,YAAY,IAAI,KAAK;AAAA,EAC1D;AALO,EAAAD,UAAS;AAOT,EAAMA,UAAA,OAAO,KAAK,MAAM;AAC7B,QAAI,KAAK,aAAa;AACpB,UAAI,KAAK,gBAAgB,cAAcC,MAAK,WAAW,KAAK,WAAW,EAAG,QAAO,KAAK;AACtF,aAAOA,MAAK,KAAK,OAAO,KAAK,MAAM,KAAK,WAAW;AAAA,IACrD;AACA,WAAO,eAAe;AAAA,EACxB,CAAC;AAQD,WAAS,KAAK,KAAa;AACzB,UAAM,QAAQ,8CAA8C,KAAK,GAAG;AACpE,QAAI,CAAC,MAAO,QAAO;AACnB,WAAO,KAAK;AAAA,MACV,OAAO,MAAM,CAAC,CAAC;AAAA,MACf,OAAO,MAAM,CAAC,CAAC,IAAI;AAAA,MACnB,OAAO,MAAM,CAAC,CAAC;AAAA,MACf,OAAO,MAAM,CAAC,CAAC;AAAA,MACf,OAAO,MAAM,CAAC,CAAC;AAAA,MACf,OAAO,MAAM,CAAC,CAAC;AAAA,IACjB;AAAA,EACF;AAEA,WAAS,WAAW,KAAsB;AACxC,UAAM,OAAO,YAAY,KAAK,EAAE,eAAe,KAAK,CAAC,EAClD,OAAO,CAAC,UAAU,MAAM,YAAY,CAAC,EACrC,IAAI,CAAC,UAAU,MAAM,IAAI;AAE5B,UAAM,MAAM,KACT,IAAI,CAAC,SAAS;AACb,YAAM,OAAOA,MAAK,KAAK,KAAK,MAAM,eAAe;AACjD,UAAI,CAACC,YAAW,IAAI,EAAG;AACvB,aAAO;AAAA,QACL,KAAK,aAAa,MAAM,OAAO;AAAA,QAC/B,WAAW,KAAK,IAAI;AAAA,QACpB;AAAA,MACF;AAAA,IACF,CAAC,EACA,OAAO,OAAO;AAEjB,WAAO,IAAI,KAAK,CAAC,GAAG,MAAM,EAAE,YAAY,EAAE,SAAS;AAAA,EACrD;AAEO,EAAMF,UAAA,SAAS,KAAK,MAAM;AAC/B,QAAI,KAAK,oBAAoB,EAAE,MAAMA,UAAA,KAAK,CAAC;AAE3C,UAAM,KAAK,KAAKA,UAAA,IAAI;AAEpB,OAAG,IAAI,2BAA2B;AAClC,OAAG,IAAI,6BAA6B;AACpC,OAAG,IAAI,4BAA4B;AACnC,OAAG,IAAI,4BAA4B;AACnC,OAAG,IAAI,0BAA0B;AACjC,OAAG,IAAI,gCAAgC;AAGvC,UAAM,gBAAgBC,MAAK,KAAK,YAAY,SAAS,gCAAgC;AACrF,QAAI,OAAO,wBAAwB,aAAa;AAE9C,YAAM,UAAU;AAChB,UAAI,QAAQ,SAAS,GAAG;AACtB,YAAI,KAAK,uBAAuB,EAAE,OAAO,QAAQ,QAAQ,MAAM,UAAU,CAAC;AAC1E,YAAI,KAAK,0BAA0B;AACjC,qBAAW,QAAQ,QAAS,MAAK,MAAM;AAAA,QACzC;AACA,gBAAQ,IAAI,OAAc;AAAA,MAC5B;AAAA,IACF,OAAO;AAEL,YAAM,UAAU,WAAW,aAAa;AACxC,UAAI,KAAK,uBAAuB,EAAE,OAAO,QAAQ,QAAQ,MAAM,MAAM,CAAC;AACtE,UAAI,CAAC,KAAK,4BAA4B,QAAQ,SAAS,GAAG;AACxD,gBAAQ,IAAI,EAAE,kBAAkB,cAAc,CAAQ;AAAA,MACxD;AAAA,IACF;AAEA,WAAO;AAAA,EACT,CAAC;AAEM,WAAS,QAAQ;AACtB,QAAAD,UAAA,QAAO,EAAE,QAAQ,MAAM;AACvB,IAAAA,UAAA,OAAO,MAAM;AAAA,EACf;AAHO,EAAAA,UAAS;AAOhB,QAAM,MAAM,QAAQ,OAGjB,UAAU;AAEN,WAAS,IAAOG,WAAiC;AACtD,QAAI;AACF,aAAOA,UAAS,IAAI,IAAI,EAAE,EAAE;AAAA,IAC9B,SAAS,KAAK;AACZ,UAAI,eAAe,QAAQ,UAAU;AACnC,cAAM,UAA0C,CAAC;AACjD,cAAM,SAAS,IAAI,QAAQ,EAAE,SAAS,QAAIH,UAAA,QAAO,EAAE,GAAG,MAAMG,cAASH,UAAA,QAAO,CAAC,CAAC;AAC9E,mBAAWI,WAAU,QAAS,CAAAA,QAAO;AACrC,eAAO;AAAA,MACT;AACA,YAAM;AAAA,IACR;AAAA,EACF;AAZO,EAAAJ,UAAS;AAcT,WAASI,QAAO,IAA8B;AACnD,UAAM,QAAQ,cAAc,KAAK,EAAE;AACnC,QAAI;AACF,UAAI,IAAI,EAAE,QAAQ,KAAK,KAAK;AAAA,IAC9B,QAAQ;AACN,YAAM;AAAA,IACR;AAAA,EACF;AAPO,EAAAJ,UAAS,SAAAI;AAWT,WAAS,YACdD,WACA,SAGe;AACf,QAAI;AACF,aAAOA,UAAS,IAAI,IAAI,EAAE,EAAE;AAAA,IAC9B,SAAS,KAAK;AACZ,UAAI,eAAe,QAAQ,UAAU;AACnC,cAAM,UAA0C,CAAC;AACjD,cAAM,aAAa,cAAc,KAAK,CAAC,OAAe,IAAI,QAAQ,EAAE,IAAI,QAAQ,GAAG,MAAMA,UAAS,EAAE,CAAC,CAAC;AACtG,cAAM,aAASH,UAAA,QAAO,EAAE,YAAY,YAAY,EAAE,UAAU,SAAS,SAAS,CAAC;AAC/E,mBAAWI,WAAU,QAAS,CAAAA,QAAO;AACrC,eAAO;AAAA,MACT;AACA,YAAM;AAAA,IACR;AAAA,EACF;AAlBO,EAAAJ,UAAS;AAAA,GAhID;;;AQ7BjB,SAAS,aAAa,MAAM,WAAAK,gBAAe;;;ACA3C,SAAS,eAAe;AAEjB,IAAM,aAAa;AAAA,EACxB,cAAc,QAAQ,EACnB,QAAQ,EACR,SAAS,MAAM,KAAK,IAAI,CAAC;AAAA,EAC5B,cAAc,QAAQ,EACnB,QAAQ,EACR,UAAU,MAAM,KAAK,IAAI,CAAC;AAC/B;;;ADLO,IAAM,eAAe,YAAY,WAAW;AAAA,EACjD,IAAI,KAAK,EAAE,MAAiB,EAAE,WAAW;AAAA,EACzC,UAAU,KAAK,EAAE,QAAQ;AAAA,EACzB,KAAK,KAAK;AAAA,EACV,MAAM,KAAK;AAAA,EACX,UAAU,KAAK;AAAA,EACf,YAAY,KAAK;AAAA,EACjB,GAAG;AAAA,EACH,kBAAkBC,SAAQ;AAAA,EAC1B,WAAW,KAAK,EAAE,MAAM,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAgB;AAAA,EAC5D,UAAU,KAAK,EAAE,MAAM,OAAO,CAAC,EAAE,MAA0B;AAC7D,CAAC;;;AEfD,SAAS,eAAAC,cAAa,QAAAC,OAAM,WAAAC,UAAS,OAAO,kBAAkB;AAavD,IAAM,eAAeC;AAAA,EAC1B;AAAA,EACA;AAAA,IACE,IAAIC,MAAK,EAAE,MAAiB,EAAE,WAAW;AAAA,IACzC,YAAYA,MAAK,EACd,MAAiB,EACjB,QAAQ,EACR,WAAW,MAAM,aAAa,IAAI,EAAE,UAAU,UAAU,CAAC;AAAA,IAC5D,cAAcA,MAAK,EAAE,MAAmB;AAAA,IACxC,WAAWA,MAAK,EAAE,MAAiB;AAAA,IACnC,MAAMA,MAAK,EAAE,QAAQ;AAAA,IACrB,WAAWA,MAAK,EAAE,QAAQ;AAAA,IAC1B,OAAOA,MAAK,EAAE,QAAQ;AAAA,IACtB,SAASA,MAAK,EAAE,QAAQ;AAAA,IACxB,WAAWA,MAAK;AAAA,IAChB,mBAAmBC,SAAQ;AAAA,IAC3B,mBAAmBA,SAAQ;AAAA,IAC3B,eAAeA,SAAQ;AAAA,IACvB,eAAeD,MAAK,EAAE,MAAM,OAAO,CAAC,EAAE,MAA2B;AAAA,IACjE,QAAQA,MAAK,EAAE,MAAM,OAAO,CAAC,EAAE,MAAmF;AAAA,IAClH,YAAYA,MAAK,EAAE,MAAM,OAAO,CAAC,EAAE,MAA0B;AAAA,IAC7D,GAAG;AAAA,IACH,iBAAiBC,SAAQ;AAAA,IACzB,eAAeA,SAAQ;AAAA,EACzB;AAAA,EACA,CAAC,UAAU;AAAA,IACT,MAAM,qBAAqB,EAAE,GAAG,MAAM,UAAU;AAAA,IAChD,MAAM,uBAAuB,EAAE,GAAG,MAAM,YAAY;AAAA,IACpD,MAAM,oBAAoB,EAAE,GAAG,MAAM,SAAS;AAAA,EAChD;AACF;AAEO,IAAM,eAAeF;AAAA,EAC1B;AAAA,EACA;AAAA,IACE,IAAIC,MAAK,EAAE,MAAiB,EAAE,WAAW;AAAA,IACzC,YAAYA,MAAK,EACd,MAAiB,EACjB,QAAQ,EACR,WAAW,MAAM,aAAa,IAAI,EAAE,UAAU,UAAU,CAAC;AAAA,IAC5D,GAAG;AAAA,IACH,MAAMA,MAAK,EAAE,MAAM,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAgB;AAAA,EACzD;AAAA,EACA,CAAC,UAAU,CAAC,MAAM,qCAAqC,EAAE,GAAG,MAAM,YAAY,MAAM,cAAc,MAAM,EAAE,CAAC;AAC7G;AAEO,IAAM,YAAYD;AAAA,EACvB;AAAA,EACA;AAAA,IACE,IAAIC,MAAK,EAAE,MAAc,EAAE,WAAW;AAAA,IACtC,YAAYA,MAAK,EACd,MAAiB,EACjB,QAAQ,EACR,WAAW,MAAM,aAAa,IAAI,EAAE,UAAU,UAAU,CAAC;AAAA,IAC5D,YAAYA,MAAK,EAAE,MAAiB,EAAE,QAAQ;AAAA,IAC9C,GAAG;AAAA,IACH,MAAMA,MAAK,EAAE,MAAM,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAgB;AAAA,EACzD;AAAA,EACA,CAAC,UAAU;AAAA,IACT,MAAM,wBAAwB,EAAE,GAAG,MAAM,YAAY,MAAM,EAAE;AAAA,IAC7D,MAAM,kBAAkB,EAAE,GAAG,MAAM,UAAU;AAAA,EAC/C;AACF;AAEO,IAAM,YAAYD;AAAA,EACvB;AAAA,EACA;AAAA,IACE,YAAYC,MAAK,EACd,MAAiB,EACjB,QAAQ,EACR,WAAW,MAAM,aAAa,IAAI,EAAE,UAAU,UAAU,CAAC;AAAA,IAC5D,SAASA,MAAK,EAAE,QAAQ;AAAA,IACxB,QAAQA,MAAK,EAAE,QAAQ;AAAA,IACvB,UAAUA,MAAK,EAAE,QAAQ;AAAA,IACzB,UAAUC,SAAQ,EAAE,QAAQ;AAAA,IAC5B,GAAG;AAAA,EACL;AAAA,EACA,CAAC,UAAU;AAAA,IACT,WAAW,EAAE,SAAS,CAAC,MAAM,YAAY,MAAM,QAAQ,EAAE,CAAC;AAAA,IAC1D,MAAM,kBAAkB,EAAE,GAAG,MAAM,UAAU;AAAA,EAC/C;AACF;AAEO,IAAM,kBAAkBF,aAAY,cAAc;AAAA,EACvD,YAAYC,MAAK,EACd,WAAW,EACX,WAAW,MAAM,aAAa,IAAI,EAAE,UAAU,UAAU,CAAC;AAAA,EAC5D,GAAG;AAAA,EACH,MAAMA,MAAK,EAAE,MAAM,OAAO,CAAC,EAAE,QAAQ,EAAE,MAA0B;AACnE,CAAC;;;ACtGD,OAAOE,QAAO;AAGP,IAAU;AAAA,CAAV,CAAUC,cAAV;AAGL,QAAM,WAAW,oBAAI,IAAwB;AAEtC,WAAS,OAAwD,MAAY,YAAwB;AAC1G,UAAM,SAAS;AAAA,MACb;AAAA,MACA;AAAA,IACF;AACA,aAAS,IAAI,MAAM,MAAM;AACzB,WAAO;AAAA,EACT;AAPO,EAAAA,UAAS;AAST,WAAS,WAAW;AACzB,WAAOD,GACJ;AAAA,MACC;AAAA,MACA,SACG,QAAQ,EACR,IAAI,CAAC,CAAC,MAAM,GAAG,MAAM;AACpB,eAAOA,GACJ,OAAO;AAAA,UACN,MAAMA,GAAE,QAAQ,IAAI;AAAA,UACpB,YAAY,IAAI;AAAA,QAClB,CAAC,EACA,KAAK;AAAA,UACJ,KAAK,WAAgB,IAAI;AAAA,QAC3B,CAAC;AAAA,MACL,CAAC,EACA,QAAQ;AAAA,IACb,EACC,KAAK;AAAA,MACJ,KAAK;AAAA,IACP,CAAC;AAAA,EACL;AArBO,EAAAC,UAAS;AAAA,GAdD;;;ACHjB,OAAO,cAAc;AACrB,OAAOC,WAAU;AAGV,SAAS,MAAM,KAAa,KAAyB;AAC1D,QAAM,OAAO,KAAK,QAAQ,KAAK,QAAQ,QAAQ,IAAI,QAAQ,QAAQ,IAAI,QAAQ;AAC/E,QAAM,OAAO,OAAO,OAAOC,MAAK,YAAY,OAAO,KAAK,MAAM,OAAO,KAAK;AAC1E,QAAM,SAAS,SAAS,KAAK,KAAK;AAAA,IAChC,SAAS;AAAA,IACT,MAAM;AAAA,IACN,SAAS,KAAK,WAAW,KAAK,WAAW,QAAQ,IAAI,WAAW,QAAQ,IAAI;AAAA,EAC9E,CAAC;AACD,SAAO,OAAO,WAAW,WAAW,SAAS;AAC/C;;;ACbA,SAAS,cAAc;AACvB,OAAOC,QAAO;AAId,IAAM,kBAAkB,OAAO,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AAI7D,IAAM,YAAY,gBAAgB;AAAA,EACvC,YAAY,CAAC,YAAoC;AAAA,IAC/C,QAAQ,OAAO,WAAW,QAAQ;AAAA,IAClC,MAAM,CAAC,OAAe,OAAO,WAAW,EAAE;AAAA,IAC1C,KAAKC,GAAE,OAAO,EAAE,KAAKA,GAAE,OAAkB,CAAC;AAAA,EAC5C,EAAE;AACJ;;;AdLA,SAAS,UAAAC,SAAQ,SAAAC,QAAO,QAAAC,OAAM,SAAAC,QAAO,cAAAC,aAAY,UAAAC,eAAc;AAC/D,SAAS,gBAAAC,eAAc,uBAAAC,4BAA2B;AAClD,SAAyB,YAAAC,iBAAgB;;;AeZzC,SAAS,sBAAsB;AAC/B,SAAS,WAAAC,UAAS,QAAAC,OAAM,YAAAC,WAAU,WAAWC,oBAAmB;AAChE,SAAS,gBAAAC,qBAAoB;AAC7B,YAAY,SAAS;AACrB,SAAS,UAAAC,eAAc;AACvB,SAAS,UAAAC,SAAQ,YAAY,OAAO,UAAAC,SAAQ,cAAAC,mBAAkB;AAIvD,IAAU;AAAA,CAAV,CAAUC,mBAAV;AAAA,EACE,MAAM,wBAAwBC,QAAO,iBAAkC,EAAE,mBAAmB;AAAA,IACjG,QAAQA,QAAO;AAAA,IACf,OAAOA,QAAO,SAASA,QAAO,MAAM;AAAA,EACtC,CAAC,EAAE;AAAA,EAAC;AAHG,EAAAD,eAAM;AAAA,EA4BN,MAAM,gBAAgBE,YAAW,QAA4B,EAAE,sBAAsB,EAAE;AAAA,EAAC;AAAxF,EAAAF,eAAM;AAEN,EAAMA,eAAA,QAAQ,MAAM;AAAA,IACzB;AAAA,IACAG,QAAO,IAAI,aAAa;AACtB,YAAMC,MAAK,OAAO,WAAW;AAE7B,YAAM,aAAaD,QAAO,GAAG,uBAAuB,EAAE,WAAWE,OAAc;AAC7E,eAAO,OAAOD,IAAG,OAAOC,KAAI,EAAE,KAAKF,QAAO,cAAc,MAAM,KAAK,CAAC;AAAA,MACtE,CAAC;AAED,YAAM,QAAQA,QAAO,GAAG,kBAAkB,EAAE,WAAWE,OAAc;AACnE,cAAM,OAAO,OAAOD,IAAG,KAAKC,KAAI,EAAE,KAAKF,QAAO,MAAM,MAAMA,QAAO,IAAI,CAAC;AACtE,eAAO,MAAM,SAAS;AAAA,MACxB,CAAC;AAED,YAAM,SAASA,QAAO,GAAG,mBAAmB,EAAE,WAAWE,OAAc;AACrE,cAAM,OAAO,OAAOD,IAAG,KAAKC,KAAI,EAAE,KAAKF,QAAO,MAAM,MAAMA,QAAO,IAAI,CAAC;AACtE,eAAO,MAAM,SAAS;AAAA,MACxB,CAAC;AAED,YAAM,uBAAuBA,QAAO,GAAG,iCAAiC,EAAE,WAAW,SAAiB;AACpG,eAAO,OAAOA,QAAO,WAAW;AAAA,UAC9B,KAAK,YAAY;AACf,kBAAM,UAAU,MAAU,YAAQ,SAAS,EAAE,eAAe,KAAK,CAAC;AAClE,mBAAO,QAAQ;AAAA,cACb,CAAC,OAAiB;AAAA,gBAChB,MAAM,EAAE;AAAA,gBACR,MAAM,EAAE,YAAY,IAAI,cAAc,EAAE,eAAe,IAAI,YAAY,EAAE,OAAO,IAAI,SAAS;AAAA,cAC/F;AAAA,YACF;AAAA,UACF;AAAA,UACA,OAAO,CAAC,UAAU,IAAI,gBAAgB,EAAE,QAAQ,wBAAwB,MAAM,CAAC;AAAA,QACjF,CAAC;AAAA,MACH,CAAC;AAED,YAAM,WAAWA,QAAO,GAAG,qBAAqB,EAAE,WAAWE,OAAc;AACzE,cAAMC,QAAO,OAAOF,IAAG,eAAeC,KAAI;AAC1C,eAAO,KAAK,MAAMC,KAAI;AAAA,MACxB,CAAC;AAED,YAAM,YAAYH,QAAO,GAAG,sBAAsB,EAAE,WAAWE,OAAcE,OAAe,MAAe;AACzG,cAAM,UAAU,KAAK,UAAUA,OAAM,MAAM,CAAC;AAC5C,eAAOH,IAAG,gBAAgBC,OAAM,OAAO;AACvC,YAAI,KAAM,QAAOD,IAAG,MAAMC,OAAM,IAAI;AAAA,MACtC,CAAC;AAED,YAAM,YAAYF,QAAO,GAAG,sBAAsB,EAAE,WAAWE,OAAc;AAC3E,eAAOD,IAAG,cAAcC,OAAM,EAAE,WAAW,KAAK,CAAC;AAAA,MACnD,CAAC;AAED,YAAM,gBAAgBF,QAAO,GAAG,0BAA0B,EAAE,WAC1DE,OACA,SACA,MACA;AACA,cAAM,QAAQ,OAAO,YAAY,WAAWD,IAAG,gBAAgBC,OAAM,OAAO,IAAID,IAAG,UAAUC,OAAM,OAAO;AAE1G,eAAO,MAAM;AAAA,UACXF,QAAO;AAAA,YACL,CAAC,MAAM,EAAE,OAAO,SAAS;AAAA,YACzB,MACEA,QAAO,IAAI,aAAa;AACtB,qBAAOC,IAAG,cAAcI,SAAQH,KAAI,GAAG,EAAE,WAAW,KAAK,CAAC;AAC1D,qBAAO;AAAA,YACT,CAAC;AAAA,UACL;AAAA,QACF;AACA,YAAI,KAAM,QAAOD,IAAG,MAAMC,OAAM,IAAI;AAAA,MACtC,CAAC;AAED,YAAMI,QAAON,QAAO,GAAG,iBAAiB,EAAE,WAAW,SAAiB,SAAwB;AAC5F,eAAO,OAAOA,QAAO,WAAW;AAAA,UAC9B,KAAK,MAAM,KAAK,KAAK,SAAS,OAAO;AAAA,UACrC,OAAO,CAAC,UAAU,IAAI,gBAAgB,EAAE,QAAQ,QAAQ,MAAM,CAAC;AAAA,QACjE,CAAC;AAAA,MACH,CAAC;AAED,YAAM,SAASA,QAAO,GAAG,mBAAmB,EAAE,WAAW,QAAgB,OAAe,MAAe;AACrG,cAAM,SAAmB,CAAC;AAC1B,YAAI,UAAU;AACd,eAAO,MAAM;AACX,gBAAM,SAASO,MAAK,SAAS,MAAM;AACnC,cAAI,OAAON,IAAG,OAAO,MAAM,EAAG,QAAO,KAAK,MAAM;AAChD,cAAI,SAAS,QAAS;AACtB,gBAAM,SAASI,SAAQ,OAAO;AAC9B,cAAI,WAAW,QAAS;AACxB,oBAAU;AAAA,QACZ;AACA,eAAO;AAAA,MACT,CAAC;AAED,YAAM,KAAKL,QAAO,GAAG,eAAe,EAAE,WAAW,SAA8D;AAC7G,cAAM,SAAmB,CAAC;AAC1B,YAAI,UAAU,QAAQ;AACtB,eAAO,MAAM;AACX,qBAAW,UAAU,QAAQ,SAAS;AACpC,kBAAM,SAASO,MAAK,SAAS,MAAM;AACnC,gBAAI,OAAON,IAAG,OAAO,MAAM,EAAG,QAAO,KAAK,MAAM;AAAA,UAClD;AACA,cAAI,QAAQ,SAAS,QAAS;AAC9B,gBAAM,SAASI,SAAQ,OAAO;AAC9B,cAAI,WAAW,QAAS;AACxB,oBAAU;AAAA,QACZ;AACA,eAAO;AAAA,MACT,CAAC;AAED,YAAM,SAASL,QAAO,GAAG,mBAAmB,EAAE,WAAW,SAAiB,OAAe,MAAe;AACtG,cAAM,SAAmB,CAAC;AAC1B,YAAI,UAAU;AACd,eAAO,MAAM;AACX,gBAAM,UAAU,OAAOM,MAAK,SAAS,EAAE,KAAK,SAAS,UAAU,MAAM,SAAS,QAAQ,KAAK,KAAK,CAAC,EAAE;AAAA,YACjGN,QAAO,MAAM,MAAMA,QAAO,QAAQ,CAAC,CAAa,CAAC;AAAA,UACnD;AACA,iBAAO,KAAK,GAAG,OAAO;AACtB,cAAI,SAAS,QAAS;AACtB,gBAAM,SAASK,SAAQ,OAAO;AAC9B,cAAI,WAAW,QAAS;AACxB,oBAAU;AAAA,QACZ;AACA,eAAO;AAAA,MACT,CAAC;AAED,aAAO,QAAQ,GAAG;AAAA,QAChB,GAAGJ;AAAA,QACH;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,MAAAK;AAAA,QACA,WAAW,KAAK;AAAA,MAClB,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAEO,EAAMT,eAAA,eAAeA,eAAA,MAAM,KAAK,MAAM,QAAQ,eAAe,KAAK,CAAC;AAGnE,WAAS,SAAS,GAAmB;AAC1C,WAAOW,QAAO,CAAC,KAAK;AAAA,EACtB;AAFO,EAAAX,eAAS;AAIT,WAAS,cAAc,GAAmB;AAC/C,QAAI,QAAQ,aAAa,QAAS,QAAO;AACzC,UAAM,WAAWY,aAAY,YAAY,CAAC,CAAC;AAC3C,QAAI;AACF,aAAOC,cAAa,OAAO,QAAQ;AAAA,IACrC,QAAQ;AACN,aAAO;AAAA,IACT;AAAA,EACF;AARO,EAAAb,eAAS;AAUT,WAAS,qBAAqB,GAAmB;AACtD,QAAI,QAAQ,aAAa,QAAS,QAAO;AACzC,QAAI,MAAM,IAAK,QAAO;AACtB,UAAM,QAAQ,EAAE,MAAM,eAAe;AACrC,QAAI,CAAC,MAAO,QAAO,cAAc,CAAC;AAClC,UAAM,MAAM,cAAc,KAAK,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC;AACpE,WAAOU,MAAK,cAAc,GAAG,GAAG,GAAG;AAAA,EACrC;AAPO,EAAAV,eAAS;AAST,WAAS,QAAQ,GAAmB;AACzC,UAAM,WAAWY,aAAY,YAAY,CAAC,CAAC;AAC3C,QAAI;AACF,aAAO,cAAcC,cAAa,QAAQ,CAAC;AAAA,IAC7C,SAAS,GAAQ;AACf,UAAI,GAAG,SAAS,SAAU,QAAO,cAAc,QAAQ;AACvD,YAAM;AAAA,IACR;AAAA,EACF;AARO,EAAAb,eAAS;AAUT,WAAS,YAAY,GAAmB;AAC7C,QAAI,QAAQ,aAAa,QAAS,QAAO;AACzC,WAAO,EACJ,QAAQ,6BAA6B,CAAC,GAAG,UAAU,GAAG,MAAM,YAAY,CAAC,IAAI,EAC7E,QAAQ,yBAAyB,CAAC,GAAG,UAAU,GAAG,MAAM,YAAY,CAAC,IAAI,EACzE,QAAQ,mCAAmC,CAAC,GAAG,UAAU,GAAG,MAAM,YAAY,CAAC,IAAI,EACnF,QAAQ,8BAA8B,CAAC,GAAG,UAAU,GAAG,MAAM,YAAY,CAAC,IAAI;AAAA,EACnF;AAPO,EAAAA,eAAS;AAST,WAAS,SAAS,GAAW,GAAW;AAC7C,UAAM,OAAOc,UAAS,GAAG,CAAC;AAC1B,UAAM,OAAOA,UAAS,GAAG,CAAC;AAC1B,WAAO,CAAC,QAAQ,CAAC,KAAK,WAAW,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,WAAW,IAAI;AAAA,EAC1E;AAJO,EAAAd,eAAS;AAMT,WAAS,SAAS,QAAgB,OAAe;AACtD,WAAO,CAACc,UAAS,QAAQ,KAAK,EAAE,WAAW,IAAI;AAAA,EACjD;AAFO,EAAAd,eAAS;AAAA,GA/ND;;;ACRjB,SAAS,kBAAAe,iBAAgB,UAAU,kBAAkB;AACrD,YAAY,cAAc;AAC1B,YAAY,cAAc;AAC1B,YAAYC,aAAY;AACxB,YAAY,UAAU;AACtB,YAAYC,iBAAgB;AAC5B,YAAYC,YAAW;AACvB,YAAY,UAAU;AACtB,YAAY,mBAAmB;AAC/B,YAAY,eAAe;AAE3B,YAAY,UAAU;AACtB,YAAY,YAAY;AACxB,YAAY,kBAAkB;AAE9B;AAAA,EACE;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR;AAAA,EACA;AAAA,OACK;AACP,YAAY,sBAAsB;AAClC,SAAS,mBAAmB;AAC5B,OAAO,YAAY;AAEnB,IAAM,UAAU,CAAC,QAAyB,eAAe,WAAW,QAAQ,MAAM,IAAI,WAAW,MAAM,OAAO,GAAG,CAAC;AAElH,IAAM,QAAQ,CAAC,QAA6D;AAC1E,UAAQ,IAAI,MAAM;AAAA,IAChB,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EACX;AACF;AAEA,IAAM,UAAU,CAAC,YAAkC;AACjD,QAAM,WAAgD,CAAC;AACvD,QAAM,OAAwC,CAAC;AAE/C,QAAM,OAAO,CAAC,QAAoC;AAChD,YAAQ,IAAI,MAAM;AAAA,MAChB,KAAK;AACH,iBAAS,KAAK,GAAG;AACjB;AAAA,MACF,KAAK;AACH,aAAK,IAAI,IAAI;AACb,aAAK,KAAK,IAAI,OAAO;AACrB,aAAK,IAAI,KAAK;AACd;AAAA,IACJ;AAAA,EACF;AAEA,OAAK,OAAO;AACZ,MAAI,SAAS,WAAW,EAAG,OAAM,IAAI,MAAM,uCAAuC;AAClF,QAAM,CAAC,MAAM,GAAG,IAAI,IAAI;AACxB,SAAO;AAAA,IACL,UAAU,CAAC,MAAM,GAAG,IAAI;AAAA,IACxB;AAAA,EACF;AACF;AAEA,IAAM,kBAAkB,CACtB,QACA,KACA,YACgC;AAChC,QAAM,MAAM,QAAQ,OAAO,EACxB,SAAS,IAAI,CAAC,MAAM,GAAG,EAAE,OAAO,IAAI,EAAE,KAAK,KAAK,GAAG,CAAC,EAAE,EACtD,KAAK,KAAK;AACb,SAAqB,0BAAY;AAAA,IAC/B,MAAM,MAAM,GAAG;AAAA,IACf,QAAQ;AAAA,IACR;AAAA,IACA,kBAAkB;AAAA,IAClB,SAAS,IAAI;AAAA,IACb,OAAO;AAAA,EACT,CAAC;AACH;AAIO,IAAMC,QAAc,YAAI,aAAa;AAC1C,QAAMC,MAAK,OAAkB;AAC7B,QAAMC,QAAO,OAAY;AAEzB,QAAM,MAAa,mBAAW,WAAW,MAAmC;AAC1E,QAAc,sBAAY,KAAK,GAAG,EAAG,QAAO;AAC5C,WAAOD,IAAG,OAAO,KAAK,GAAG;AACzB,WAAOC,MAAK,QAAQ,KAAK,GAAG;AAAA,EAC9B,CAAC;AAED,QAAM,MAAM,CAAC,SACX,KAAK,YAAY,EAAE,GAAG,WAAW,QAAQ,KAAK,GAAG,KAAK,IAAI,IAAI,KAAK;AAErE,QAAM,QAAQ,CAAC,MACN,gBAAS,CAAC,IAAI,SAAS;AAEhC,QAAM,SAAS,CAAC,MACT,YAAO,CAAC,IAAI,SAAS;AAE5B,QAAM,QAAQ,CAAC,SAAgE;AAC7E,UAAM,MAAgC,EAAE,QAAQ,QAAQ,UAAU,SAAS,WAAW,KAAK;AAC3F,QAAc,sBAAY,KAAK,KAAK,EAAG,QAAO;AAC9C,QAAI,OAAO,KAAK,UAAU,SAAU,QAAO,EAAE,GAAG,KAAK,QAAQ,KAAK,MAAM;AACxE,QAAW,gBAAS,KAAK,KAAK,EAAG,QAAO,EAAE,GAAG,KAAK,QAAQ,KAAK,MAAM;AACrE,WAAO;AAAA,MACL,QAAQ,KAAK,MAAM;AAAA,MACnB,UAAU,KAAK,MAAM,YAAY,IAAI;AAAA,MACrC,WAAW,KAAK,MAAM,aAAa,IAAI;AAAA,IACzC;AAAA,EACF;AAEA,QAAM,QAAQ,CAAC,MAAmC,QAAwD;AACxG,UAAM,MAAM,KAAK,GAAG;AACpB,QAAc,sBAAY,GAAG,EAAG,QAAO,EAAE,QAAQ,OAAO;AACxD,QAAI,OAAO,QAAQ,SAAU,QAAO,EAAE,QAAQ,IAAI;AAClD,QAAS,YAAO,GAAG,EAAG,QAAO,EAAE,QAAQ,IAAI;AAC3C,WAAO,EAAE,QAAQ,IAAI,OAAO;AAAA,EAC9B;AAEA,QAAM,MAAM,CAAC,SAAsC;AACjD,QAAc,sBAAY,KAAK,aAAa,EAAG,QAAO,CAAC;AACvD,WAAO,OAAO,QAAQ,KAAK,aAAa,EACrC,QAAQ,CAAC,CAAC,MAAMC,OAAM,MAAM;AAC3B,YAAM,KAAkB,yBAAY,IAAI;AACxC,aAAiB,sBAAY,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,QAAAA,QAAO,CAAC;AAAA,IACzD,CAAC,EACA,SAAS,CAAC,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE;AAAA,EACnC;AAEA,QAAM,SAAS,CACb,KACA,MACA,MACA,UACkC;AAClC,UAAM,OAAO,CAAC,MACZ,QAAQ,aAAa,WAAW,MAAM,SAAS,eAAe;AAChE,UAAM,MAAkD;AAAA,MACtD,KAAK,MAAM,IAAI,MAAM,CAAC;AAAA,MACtB,KAAK,OAAO,KAAK,MAAM,CAAC;AAAA,MACxB,KAAK,OAAO,KAAK,MAAM,CAAC;AAAA,IAC1B;AACA,QAAI,MAAM,WAAW,EAAG,QAAO;AAC/B,UAAM,MAAM,MAAM,OAAO,CAAC,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,EAAE,GAAG,CAAC;AAC3D,aAAS,IAAI,GAAG,KAAK,KAAK,IAAK,KAAI,CAAC,IAAI;AACxC,eAAW,KAAK,MAAO,KAAI,EAAE,EAAE,IAAI,KAAK,MAAM;AAC9C,WAAO;AAAA,EACT;AAEA,QAAM,WAAkB,mBAAW,WACjC,SACA,MACA,OACA;AACA,QAAI,MAAM,WAAW,GAAG;AACtB,aAAO;AAAA,QACL,YAAY,MAAW;AAAA,QACvB,aAAa,MAAa;AAAA,MAC5B;AAAA,IACF;AAEA,UAAM,MAAM,oBAAI,IAA6E;AAC7F,UAAM,OAAO,oBAAI,IAAoE;AAErF,eAAW,KAAK,OAAO;AACrB,YAAM,OAAO,KAAK,MAAM,EAAE,EAAE;AAC5B,cAAQ,EAAE,OAAO,MAAM;AAAA,QACrB,KAAK,SAAS;AACZ,cAAI,OAA6E;AACjF,cAAI,QAAQ,WAAW,MAAM;AAC3B,mBAAO,SAAS,aAAa;AAAA,cAC3B,UAAU,MAAM;AAAA,cAChB,SAAS,CAAC,QAAQ,gBAAgB,kBAAkB,EAAE,EAAE,KAAK,QAAQ,GAAG,GAAG,OAAO;AAAA,cAClF,WAAW;AAAA,YACb,CAAC;AAAA,UACH;AACA,cAAI,EAAE,OAAO,OAAQ,QAAc,mBAAkB,WAAI,EAAE,OAAO,QAAQ,IAAI,CAAC;AAC/E,cAAI,IAAI,EAAE,IAAI,IAAI;AAClB;AAAA,QACF;AAAA,QACA,KAAK,UAAU;AACb,cAAI,SAAwE;AAC5E,cAAI,QAAQ,UAAU,MAAM;AAC1B,kBAAM,MAAM,IAAI,YAAY;AAC5B,iBAAK,GAAG,SAAS,CAAC,QAAQ,IAAI,QAAQ,QAAQ,GAAG,CAAC,CAAC;AACnD,iBAAK,KAAK,GAAG;AACb,qBAAS,WAAW,aAAa;AAAA,cAC/B,UAAU,MAAM;AAAA,cAChB,SAAS,CAAC,QAAQ,gBAAgB,kBAAkB,EAAE,EAAE,KAAK,QAAQ,GAAG,GAAG,OAAO;AAAA,YACpF,CAAC;AAAA,UACH;AACA,cAAI,EAAE,OAAO,KAAM,UAAgB,iBAAU,QAAQ,EAAE,OAAO,IAAI;AAClE,eAAK,IAAI,EAAE,IAAI,MAAM;AACrB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,MACL,YAAY,CAAC,OAAe,IAAI,IAAI,EAAE,KAAU;AAAA,MAChD,aAAa,CAAC,OAAe,KAAK,IAAI,EAAE,KAAY;AAAA,IACtD;AAAA,EACF,CAAC;AAED,QAAM,aAAa,CACjB,SACA,MACA,QAEO,gBAAQ,MAAM;AACnB,QAAI,OAA0E;AAC9E,QAAc,oBAAU,KAAK,KAAK,GAAG;AACnC,aAAO,SAAS,aAAa;AAAA,QAC3B,UAAU,MAAM,KAAK;AAAA,QACrB,SAAS,CAAC,QAAQ,gBAAgB,uBAAuB,QAAQ,GAAG,GAAG,OAAO;AAAA,QAC9E,WAAW,IAAI;AAAA,QACf,UAAU,IAAI;AAAA,MAChB,CAAC;AAAA,IACH;AACA,QAAW,gBAAS,IAAI,MAAM,EAAG,QAAc,WAAU,mBAAkB,WAAI,IAAI,QAAQ,IAAI,CAAC,GAAG,IAAI;AACvG,WAAc,gBAAQ,IAAI;AAAA,EAC5B,CAAC;AAEH,QAAM,cAAc,CAClB,SACA,MACA,KACA,QACG;AACH,QAAI,SAAS,KAAK,SACd,WAAW,aAAa;AAAA,MACtB,UAAU,MAAM,KAAK;AAAA,MACrB,SAAS,CAAC,UAAU,gBAAgB,wBAAwB,QAAQ,KAAK,GAAG,OAAO;AAAA,IACrF,CAAC,IACM;AACX,QAAI,SAAS,KAAK,SACd,WAAW,aAAa;AAAA,MACtB,UAAU,MAAM,KAAK;AAAA,MACrB,SAAS,CAAC,UAAU,gBAAgB,wBAAwB,QAAQ,KAAK,GAAG,OAAO;AAAA,IACrF,CAAC,IACM;AAEX,QAAS,YAAO,IAAI,MAAM,EAAG,UAAgB,iBAAU,QAAQ,IAAI,MAAM;AACzE,QAAS,YAAO,IAAI,MAAM,EAAG,UAAgB,iBAAU,QAAQ,IAAI,MAAM;AAEzE,WAAO,EAAE,QAAQ,QAAQ,KAAY,aAAM,QAAQ,MAAM,EAAE;AAAA,EAC7D;AAEA,QAAM,QAAQ,CAAC,SAAuC,SAC7C,iBAA4F,CAAC,WAAW;AAC7G,UAAM,SAAkB,oBAA0E;AAClG,UAAM,OAAO,OAAO,QAAQ,SAAS,QAAQ,MAAM,IAAI;AACvD,QAAI,MAAM;AACV,QAAI;AACJ,SAAK,GAAG,SAAS,CAAC,QAAQ;AACxB,aAAc,aAAK,gBAAgB,SAAS,KAAK,OAAO,CAAC,CAAC;AAAA,IAC5D,CAAC;AACD,SAAK,GAAG,QAAQ,IAAI,SAAS;AAC3B,aAAO;AAAA,IACT,CAAC;AACD,SAAK,GAAG,SAAS,IAAI,SAAS;AAC5B,UAAI,IAAK;AACT,YAAM;AACN,MAAS,oBAAW,QAAa,aAAQ,QAAQ,IAAI,CAAC;AAAA,IACxD,CAAC;AACD,SAAK,GAAG,SAAS,MAAM;AACrB,aAAc,gBAAQ,CAAC,MAAM,MAAM,CAAC,CAAC;AAAA,IACvC,CAAC;AACD,WAAc,aAAK,MAAM;AACvB,WAAK,KAAK,SAAS;AAAA,IACrB,CAAC;AAAA,EACH,CAAC;AAEH,QAAM,YAAY,CAChB,SACA,MACA,WACG;AACH,QAAI,WAAW,QAAQ,aAAa,SAAS;AAC3C,aAAc,iBAA4C,CAAC,WAAW;AACpE,QAAiB,sBAAK,iBAAiB,KAAK,GAAG,UAAU,EAAE,aAAa,KAAK,GAAG,CAAC,QAAQ;AACvF,cAAI,IAAK,QAAO,OAAc,aAAK,gBAAgB,QAAQ,QAAQ,GAAG,GAAG,OAAO,CAAC,CAAC;AAClF,iBAAc,YAAI;AAAA,QACpB,CAAC;AAAA,MACH,CAAC;AAAA,IACH;AAEA,WAAc,YAAI;AAAA,MAChB,KAAK,MAAM;AACT,mBAAW,QAAQ,KAAK,CAAC,KAAK,KAAM,MAAM;AAAA,MAC5C;AAAA,MACA,OAAO,CAAC,QAAQ,gBAAgB,QAAQ,QAAQ,GAAG,GAAG,OAAO;AAAA,IAC/D,CAAC;AAAA,EACH;AAEA,QAAM,UAAU,CACd,SACA,MACA,WAEO,gBAAQ,MAAM;AACnB,QAAI,KAAK,KAAK,MAAM,EAAG,QAAc;AACrC,WAAc,aAAK,gBAAgB,QAAQ,IAAI,MAAM,8BAA8B,GAAG,OAAO,CAAC;AAAA,EAChG,CAAC;AAEH,QAAM,UACJ,CACE,MACA,SACA,SAEF,CACE,MAKG;AACH,UAAM,SAAS,MAAM,cAAc;AACnC,QAAc,sBAAY,MAAM,cAAc,EAAG,QAAO,EAAE,SAAS,MAAM,MAAM;AAC/E,WAAc,sBAAc,EAAE,SAAS,MAAM,MAAM,GAAG;AAAA,MACpD,UAAU,KAAK;AAAA,MACf,QAAQ,MAAM,EAAE,SAAS,MAAM,SAAS;AAAA,IAC1C,CAAC;AAAA,EACH;AAEF,QAAM,SAAS,CAAC,QAA4B,SAAkD;AAC5F,UAAM,MAAM,QAAQ;AACpB,YAAQ,KAAK;AAAA,MACX,KAAK;AACH,eAAO,OAAO;AAAA,MAChB,KAAK;AACH,eAAO,OAAO;AAAA,MAChB,KAAK;AACH,eAAO,OAAO;AAAA,MAChB,SAAS;AACP,cAAM,KAAkB,yBAAY,GAAG;AACvC,eAAiB,yBAAe,EAAE,IAAI,OAAO,YAAY,EAAE,IAAI,OAAO;AAAA,MACxE;AAAA,IACF;AAAA,EACF;AAEA,QAAM,eAEoF;AAAA,IACxF,WAAW,SAAS;AAClB,cAAQ,QAAQ,MAAM;AAAA,QACpB,KAAK,mBAAmB;AACtB,gBAAM,MAAM,MAAM,QAAQ,OAAO;AACjC,gBAAM,OAAO,MAAM,QAAQ,SAAS,QAAQ;AAC5C,gBAAM,OAAO,MAAM,QAAQ,SAAS,QAAQ;AAC5C,gBAAM,QAAQ,IAAI,QAAQ,OAAO;AACjC,gBAAM,MAAM,OAAO,IAAI,QAAQ,OAAO;AAEtC,gBAAM,CAAC,MAAM,MAAM,IAAI,OAAc;AAAA,YACnC,MAAM,SAAS;AAAA,cACb,KAAK;AAAA,cACL,KAAK,IAAI,QAAQ,OAAO;AAAA,cACxB,OAAO,OAAO,KAAK,MAAM,MAAM,KAAK;AAAA,cACpC,UAAU,QAAQ,QAAQ,YAAY,QAAQ,aAAa;AAAA,cAC3D,OAAO,QAAQ,QAAQ;AAAA,cACvB,aAAa,QAAQ,aAAa;AAAA,YACpC,CAAC;AAAA,YACM,mBAAW,WAAW,CAACC,OAAMC,OAAM,GAAG;AAC3C,oBAAM,OAAO,OAAgB,gBAAOA,OAAM;AAC1C,oBAAM,OAAO,QAAQD,OAAM,SAAS,QAAQ,OAAO;AACnD,kBAAI,MAAM;AACR,sBAAM,CAAC,IAAI,IAAI,OAAgB,eAAMC,OAAM;AAC3C,oBAAI,QAAQ,aAAa,QAAS,QAAO,OAAc;AACvD,oBAAI,SAAS,KAAe,oBAAU,IAAI,EAAG,QAAO,OAAc,eAAO,KAAK,SAAS,CAAC;AACxF,uBAAO,OAAc;AAAA,cACvB;AACA,oBAAM,OAAO,CAAC,MACL,cAAM,UAAU,SAASD,OAAM,CAAC,GAAG,MAAM,QAAQ,SAASA,OAAM,CAAC,CAAC;AAC3E,oBAAM,MAAM,QAAQ,QAAQ,cAAc;AAC1C,oBAAM,UAAU,KAAK,GAAG,EAAE,KAAY,gBAAiB,eAAMC,OAAM,CAAC,GAAU,cAAM;AACpF,oBAAM,YAAY,QAAQ,QAAQ,iBACvB,sBAAc,SAAS;AAAA,gBAC5B,UAAU,QAAQ,QAAQ;AAAA,gBAC1B,QAAQ,MAAM,KAAK,SAAS,EAAE,KAAY,gBAAiB,eAAMA,OAAM,CAAC,GAAU,cAAM;AAAA,cAC1F,CAAC,IACD;AACJ,qBAAO,OAAc,eAAO,SAAS;AAAA,YACvC,CAAC;AAAA,UACH;AAEA,gBAAM,KAAK,OAAO,SAAS,SAAS,MAAM,KAAK;AAC/C,gBAAM,MAAM,YAAY,SAAS,MAAM,MAAM,IAAI;AACjD,iBAAO,WAAW;AAAA,YAChB,KAAK,UAAU,KAAK,GAAI;AAAA,YACxB,OAAO,OAAO,WAAW,SAAS,MAAM,GAAG;AAAA,YAC3C,QAAQ,IAAI;AAAA,YACZ,QAAQ,IAAI;AAAA,YACZ,KAAK,IAAI;AAAA,YACT,YAAY,GAAG;AAAA,YACf,aAAa,GAAG;AAAA,YAChB,WAAkB,YAAa,gBAAO,MAAM,GAAG,CAAC,SAAS,CAAC,IAAI;AAAA,YAC9D,UAAiB,gBAAiB,eAAM,MAAM,GAAG,CAAC,CAAC,MAAMA,OAAM,MAAM;AACnE,kBAAc,oBAAU,IAAI,EAAG,QAAc,gBAAQ,SAAS,IAAI,CAAC;AACnE,qBAAc;AAAA,gBACZ;AAAA,kBACE;AAAA,kBACA,IAAI,MAAM,kDAAkDA,OAAM,GAAG;AAAA,kBACrE;AAAA,gBACF;AAAA,cACF;AAAA,YACF,CAAC;AAAA,YACD,MAAM,CAAC,SAAoC;AACzC,oBAAM,MAAM,MAAM,cAAc;AAChC,oBAAM,OAAO,CAAC,MACL,cAAM,UAAU,SAAS,MAAM,CAAC,GAAG,MAAM,QAAQ,SAAS,MAAM,CAAC,CAAC;AAC3E,oBAAM,UAAU,KAAK,GAAG,EAAE,KAAY,gBAAiB,eAAM,MAAM,CAAC,GAAU,cAAM;AACpF,kBAAI,CAAC,MAAM,eAAgB,QAAO;AAClC,qBAAc,sBAAc,SAAS;AAAA,gBACnC,UAAU,KAAK;AAAA,gBACf,QAAQ,MAAM,KAAK,SAAS,EAAE,KAAY,gBAAiB,eAAM,MAAM,CAAC,GAAU,cAAM;AAAA,cAC1F,CAAC;AAAA,YACH;AAAA,UACF,CAAC;AAAA,QACH;AAAA,QACA,KAAK,gBAAgB;AACnB,gBAAM,OAAO,QAAQ,OAAO;AAC5B,gBAAM,CAAC,MAAM,GAAG,IAAI,IAAI,KAAK;AAC7B,cAAI,SAAS,aAAa,IAAI;AAC9B,mBAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AACpC,kBAAM,OAAO,KAAK,CAAC;AACnB,kBAAM,OAAO,KAAK,KAAK,CAAC,KAAK,CAAC;AAC9B,kBAAM,MAAM,MAAM,KAAK,OAAO;AAC9B,kBAAM,SAAgB,cAAc,YAAI,QAAQ,CAAC,MAAM,OAAO,GAAG,KAAK,IAAI,CAAC,CAAC;AAC5E,kBAAM,KAAK,KAAK,MAAM;AACtB,gBAAI,OAAO,SAAS;AAClB,uBAAS;AAAA,gBACM,kBAAK,KAAK,SAAS,KAAK,MAAM;AAAA,kBACzC,GAAG,KAAK;AAAA,kBACR,OAAO,EAAE,GAAG,KAAK,OAAO;AAAA,gBAC1B,CAAC;AAAA,cACH;AACA;AAAA,YACF;AACA,kBAAM,KAAkB,yBAAY,EAAE;AACtC,gBAAc,sBAAY,EAAE,GAAG;AAC7B,uBAAS;AAAA,gBACM,kBAAK,KAAK,SAAS,KAAK,MAAM;AAAA,kBACzC,GAAG,KAAK;AAAA,kBACR,OAAO,EAAE,GAAG,KAAK,OAAO;AAAA,gBAC1B,CAAC;AAAA,cACH;AACA;AAAA,YACF;AACA,qBAAS;AAAA,cACM,kBAAK,KAAK,SAAS,KAAK,MAAM;AAAA,gBACzC,GAAG,KAAK;AAAA,gBACR,eAAe;AAAA,kBACb,GAAG,KAAK,QAAQ;AAAA,kBAChB,CAAc,oBAAO,EAAE,CAAkB,GAAG,EAAE,MAAM,SAAS,OAAO;AAAA,gBACtE;AAAA,cACF,CAAC;AAAA,YACH;AAAA,UACF;AACA,iBAAO,OAAO;AAAA,QAChB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SAAO,YAAY,YAAY;AACjC,CAAC;AAEM,IAAMC,SAA0F;AAAA,EACrG;AAAA,EACAN;AACF;AAEO,IAAM,eAAeM,OAAM,KAAW,eAAQC,gBAAe,KAAK,GAAS,eAAiB,cAAK,CAAC;AAIzG,IAAM,KAAK,KAAK,YAAY;AAE1B,QAAM,EAAE,aAAAC,aAAY,IAAI,MAAM,OAAO,2BAAsB;AAC3D,SAAOA,aAAY,qBAAqB,YAAY;AACtD,CAAC;AAGM,IAAM,iBAAuC,UAAU,UAAU,MAAM,GAAG,GAAG,eAAe,GAAI,IAAc;;;AhBne9G,IAAU;AAAA,CAAV,CAAUC,aAAV;AACL,QAAMC,OAAM,IAAI,OAAO,EAAE,SAAS,UAAU,CAAC;AAEtC,EAAMD,SAAA,OAAOE,GACjB,OAAO;AAAA,IACN,IAAI,UAAU;AAAA,IACd,UAAUA,GAAE,OAAO;AAAA,IACnB,KAAKA,GAAE,QAAQ,KAAK,EAAE,SAAS;AAAA,IAC/B,MAAMA,GAAE,OAAO,EAAE,SAAS;AAAA,IAC1B,MAAMA,GACH,OAAO;AAAA,MACN,KAAKA,GAAE,OAAO,EAAE,SAAS;AAAA,MACzB,UAAUA,GAAE,OAAO,EAAE,SAAS;AAAA,MAC9B,OAAOA,GAAE,OAAO,EAAE,SAAS;AAAA,IAC7B,CAAC,EACA,SAAS;AAAA,IACZ,UAAUA,GACP,OAAO;AAAA,MACN,OAAOA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,gEAAgE;AAAA,IACxG,CAAC,EACA,SAAS;AAAA,IACZ,MAAMA,GAAE,OAAO;AAAA,MACb,SAASA,GAAE,OAAO;AAAA,MAClB,SAASA,GAAE,OAAO;AAAA,MAClB,aAAaA,GAAE,OAAO,EAAE,SAAS;AAAA,IACnC,CAAC;AAAA,IACD,WAAWA,GAAE,MAAMA,GAAE,OAAO,CAAC;AAAA,EAC/B,CAAC,EACA,KAAK;AAAA,IACJ,KAAK;AAAA,EACP,CAAC;AAGI,EAAMF,SAAA,QAAQ;AAAA,IACnB,SAAS,SAAS,OAAO,mBAAmBA,SAAA,IAAI;AAAA,EAClD;AAIO,WAAS,QAAQ,KAAgB;AACtC,UAAM,OACJ,IAAI,YAAY,IAAI,aAChB,EAAE,KAAK,IAAI,YAAY,QAAW,OAAO,IAAI,cAAc,OAAU,IACrE;AACN,WAAO;AAAA,MACL,IAAI,IAAI;AAAA,MACR,UAAU,IAAI;AAAA,MACd,KAAK,IAAI,MAAMA,SAAA,KAAK,MAAM,IAAI,MAAM,IAAI,GAAG,IAAI;AAAA,MAC/C,MAAM,IAAI,QAAQ;AAAA,MAClB;AAAA,MACA,MAAM;AAAA,QACJ,SAAS,IAAI;AAAA,QACb,SAAS,IAAI;AAAA,QACb,aAAa,IAAI,oBAAoB;AAAA,MACvC;AAAA,MACA,WAAW,IAAI;AAAA,MACf,UAAU,IAAI,YAAY;AAAA,IAC5B;AAAA,EACF;AAnBO,EAAAA,SAAS;AAqBT,EAAMA,SAAA,cAAcE,GAAE,OAAO;AAAA,IAClC,WAAW,UAAU;AAAA,IACrB,MAAMA,GAAE,OAAO,EAAE,SAAS;AAAA,IAC1B,MAAMF,SAAA,KAAK,MAAM,KAAK,SAAS;AAAA,IAC/B,UAAUA,SAAA,KAAK,MAAM,SAAS,SAAS;AAAA,EACzC,CAAC;AAAA,EAoBM,MAAM,gBAAgBG,YAAW,QAA4B,EAAE,mBAAmB,EAAE;AAAA,EAAC;AAArF,EAAAH,SAAM;AAIN,EAAMA,SAAA,QAITI,OAAM;AAAA,IACR;AAAA,IACAC,QAAO,IAAI,aAAa;AACtB,YAAMC,MAAK,OAAO,cAAc;AAChC,YAAM,UAAU,OAAOC,MAAK;AAC5B,YAAM,UAAU,OAAOC,qBAAoB;AAE3C,YAAM,MAAMH,QAAO;AAAA,QACjB,WAAW,MAAgB,MAAyB;AAClD,gBAAM,SAAS,OAAO,QAAQ;AAAA,YAC5BI,cAAa,KAAK,OAAO,MAAM,EAAE,KAAK,MAAM,KAAK,WAAW,MAAM,OAAO,SAAS,CAAC;AAAA,UACrF;AACA,gBAAM,CAACC,OAAM,MAAM,IAAI,OAAOL,QAAO;AAAA,YACnC,CAACM,QAAO,SAASA,QAAO,WAAW,OAAO,MAAM,CAAC,GAAGA,QAAO,SAASA,QAAO,WAAW,OAAO,MAAM,CAAC,CAAC;AAAA,YACrG,EAAE,aAAa,EAAE;AAAA,UACnB;AACA,gBAAM,OAAO,OAAO,OAAO;AAC3B,iBAAO,EAAE,MAAM,MAAAD,OAAM,OAAO;AAAA,QAC9B;AAAA,QACAL,QAAO;AAAA,QACPA,QAAO,MAAM,MAAMA,QAAO,QAAQ,EAAE,MAAM,GAAG,MAAM,IAAI,QAAQ,GAAG,CAAqB,CAAC;AAAA,MAC1F;AAEA,YAAM,KAAK,CAAI,OACbA,QAAO,KAAK,MAAM,SAAS,IAAI,EAAE,CAAC;AAEpC,YAAM,cAAc,CAACO,UACnBP,QAAO;AAAA,QAAK,MACV,UAAU,KAAK,SAAS;AAAA,UACtB,SAAS,EAAE,MAAML,SAAA,MAAM,QAAQ,MAAM,YAAYY,MAAK;AAAA,QACxD,CAAC;AAAA,MACH;AAEF,YAAM,UAAUZ,SAAA,KAAK,MAAM,IAAI,MAAM,KAAK,iBAAiB;AAE3D,YAAM,iBAAiB,CAAC,KAAa,SAAiB;AACpD,YAAI,CAAC,KAAM,QAAO;AAClB,eAAO,KAAK,QAAQ,YAAY,EAAE;AAClC,YAAI,CAAC,KAAM,QAAO;AAClB,eAAO,cAAc,YAAY,IAAI;AACrC,YAAI,QAAQ,WAAW,IAAI,EAAG,QAAO,QAAQ,UAAU,IAAI;AAC3D,eAAO,QAAQ,QAAQ,KAAK,IAAI;AAAA,MAClC;AAEA,YAAM,QAAQ,OAAOa,OAAM;AAE3B,YAAM,sBAAsBR,QAAO,WAAW,WAAW,KAAa;AACpE,eAAO,OAAOC,IAAG,eAAe,QAAQ,KAAK,KAAK,UAAU,CAAC,EAAE;AAAA,UAC7DD,QAAO,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;AAAA,UAC1BA,QAAO,IAAI,UAAU,IAAI;AAAA,UACzBA,QAAO,MAAM,MAAMA,QAAO,QAAQ,MAAS,CAAC;AAAA,QAC9C;AAAA,MACF,CAAC;AAED,YAAMS,iBAAgBT,QAAO,GAAG,uBAAuB,EAAE,WAAW,WAAmB;AACrF,QAAAJ,KAAI,KAAK,iBAAiB,EAAE,UAAU,CAAC;AAKvC,cAAMW,QAAwB,OAAOP,QAAO,IAAI,aAAa;AAC3D,gBAAM,gBAAgB,OAAOC,IAAG,GAAG,EAAE,SAAS,CAAC,MAAM,GAAG,OAAO,UAAU,CAAC,EAAE,KAAKD,QAAO,KAAK;AAC7F,gBAAM,SAAS,cAAc,CAAC;AAE9B,cAAI,CAAC,QAAQ;AACX,mBAAO;AAAA,cACL,IAAI,UAAU;AAAA,cACd,UAAU;AAAA,cACV,SAAS;AAAA,cACT,KAAK;AAAA,YACP;AAAA,UACF;AAEA,cAAI,UAAU,QAAQ,QAAQ,MAAM;AACpC,gBAAM,YAAY,OAAOA,QAAO,KAAK,MAAM,MAAM,KAAK,CAAC;AACvD,cAAI,KAAK,OAAO,oBAAoB,MAAM;AAE1C,cAAI,CAAC,WAAW;AACd,mBAAO;AAAA,cACL,IAAI,MAAM,UAAU;AAAA,cACpB,UAAU;AAAA,cACV;AAAA,cACA,KAAK;AAAA,YACP;AAAA,UACF;AAEA,gBAAM,YAAY,OAAO,IAAI,CAAC,aAAa,kBAAkB,GAAG,EAAE,KAAK,QAAQ,CAAC;AAChF,cAAI,UAAU,SAAS,GAAG;AACxB,mBAAO;AAAA,cACL,IAAI,MAAM,UAAU;AAAA,cACpB,UAAU;AAAA,cACV;AAAA,cACA,KAAK;AAAA,YACP;AAAA,UACF;AACA,gBAAM,YAAY,MAAM;AACtB,kBAAM,SAAS,eAAe,SAAS,UAAU,KAAK,KAAK,CAAC;AAC5D,mBAAO,WAAW,UAAU,UAAU,QAAQ,QAAQ,MAAM;AAAA,UAC9D,GAAG;AAEH,cAAI,MAAM,MAAM;AACd,iBAAK,OAAO,oBAAoB,QAAQ,KAAK,UAAU,MAAM,CAAC;AAAA,UAChE;AAEA,cAAI,CAAC,IAAI;AACP,kBAAM,UAAU,OAAO,IAAI,CAAC,YAAY,mBAAmB,MAAM,GAAG,EAAE,KAAK,QAAQ,CAAC;AACpF,kBAAM,QAAQ,QAAQ,KACnB,MAAM,IAAI,EACV,OAAO,OAAO,EACd,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EACnB,SAAS;AAEZ,iBAAK,MAAM,CAAC,IAAI,UAAU,KAAK,MAAM,CAAC,CAAC,IAAI;AAC3C,gBAAI,IAAI;AACN,qBAAOC,IAAG,gBAAgB,QAAQ,KAAK,UAAU,QAAQ,UAAU,GAAG,EAAE,EAAE,KAAKD,QAAO,MAAM;AAAA,YAC9F;AAAA,UACF;AAEA,cAAI,CAAC,IAAI;AACP,mBAAO,EAAE,IAAI,UAAU,QAAQ,UAAU,SAAS,SAAS,KAAK,MAAe;AAAA,UACjF;AAEA,gBAAM,WAAW,OAAO,IAAI,CAAC,aAAa,iBAAiB,GAAG,EAAE,KAAK,QAAQ,CAAC;AAC9E,cAAI,SAAS,SAAS,GAAG;AACvB,mBAAO;AAAA,cACL;AAAA,cACA,UAAU;AAAA,cACV;AAAA,cACA,KAAK;AAAA,YACP;AAAA,UACF;AACA,oBAAU,eAAe,SAAS,SAAS,KAAK,KAAK,CAAC;AAEtD,iBAAO,EAAE,IAAI,SAAS,UAAU,KAAK,MAAe;AAAA,QACtD,CAAC;AAGD,cAAM,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,UAAM,eAAG,aAAa,IAAIO,MAAK,EAAE,CAAC,EAAE,IAAI,CAAC;AACpG,cAAM,WAAW,MACb,QAAQ,GAAG,IACX;AAAA,UACE,IAAIA,MAAK;AAAA,UACT,UAAUA,MAAK;AAAA,UACf,KAAKA,MAAK;AAAA,UACV,WAAW,CAAC;AAAA,UACZ,MAAM,EAAE,SAAS,KAAK,IAAI,GAAG,SAAS,KAAK,IAAI,EAAE;AAAA,QACnD;AAEJ,YAAI,KAAK;AACP,iBAAOG,UAAS,QAAQ,EAAE,KAAKV,QAAO,QAAQA,QAAO,OAAO,KAAK,CAAC;AAEpE,cAAM,SAAe;AAAA,UACnB,GAAG;AAAA,UACH,UAAUO,MAAK;AAAA,UACf,KAAKA,MAAK;AAAA,UACV,MAAM,EAAE,GAAG,SAAS,MAAM,SAAS,KAAK,IAAI,EAAE;AAAA,QAChD;AACA,YAAIA,MAAK,YAAY,OAAO,YAAY,CAAC,OAAO,UAAU,SAASA,MAAK,OAAO;AAC7E,iBAAO,UAAU,KAAKA,MAAK,OAAO;AACpC,eAAO,YAAY,OAAOP,QAAO;AAAA,UAC/B,OAAO;AAAA,UACP,CAAC,MACCC,IAAG,OAAO,CAAC,EAAE;AAAA,YACXD,QAAO;AAAA,YACPA,QAAO,IAAI,CAAC,WAAY,SAAS,IAAI,MAAU;AAAA,UACjD;AAAA,UACF,EAAE,aAAa,YAAY;AAAA,QAC7B,EAAE,KAAKA,QAAO,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAmB,MAAM,MAAS,CAAC,CAAC;AAE3E,eAAO;AAAA,UAAG,CAAC,MACT,EACG,OAAO,YAAY,EACnB,OAAO;AAAA,YACN,IAAI,OAAO;AAAA,YACX,UAAU,OAAO;AAAA,YACjB,KAAK,OAAO,OAAO;AAAA,YACnB,MAAM,OAAO;AAAA,YACb,UAAU,OAAO,MAAM;AAAA,YACvB,YAAY,OAAO,MAAM;AAAA,YACzB,cAAc,OAAO,KAAK;AAAA,YAC1B,cAAc,OAAO,KAAK;AAAA,YAC1B,kBAAkB,OAAO,KAAK;AAAA,YAC9B,WAAW,OAAO;AAAA,YAClB,UAAU,OAAO;AAAA,UACnB,CAAC,EACA,mBAAmB;AAAA,YAClB,QAAQ,aAAa;AAAA,YACrB,KAAK;AAAA,cACH,UAAU,OAAO;AAAA,cACjB,KAAK,OAAO,OAAO;AAAA,cACnB,MAAM,OAAO;AAAA,cACb,UAAU,OAAO,MAAM;AAAA,cACvB,YAAY,OAAO,MAAM;AAAA,cACzB,cAAc,OAAO,KAAK;AAAA,cAC1B,kBAAkB,OAAO,KAAK;AAAA,cAC9B,WAAW,OAAO;AAAA,cAClB,UAAU,OAAO;AAAA,YACnB;AAAA,UACF,CAAC,EACA,IAAI;AAAA,QACT;AAEA,YAAIO,MAAK,OAAO,UAAU,QAAQ;AAChC,iBAAO;AAAA,YAAG,CAAC,MACT,EACG,OAAO,YAAY,EACnB,IAAI,EAAE,YAAYA,MAAK,GAAG,CAAC,EAC3B,UAAM,oBAAI,eAAG,aAAa,YAAY,UAAU,MAAM,OAAG,eAAG,aAAa,WAAWA,MAAK,QAAQ,CAAC,CAAC,EACnG,IAAI;AAAA,UACT;AAAA,QACF;AAEA,eAAO,YAAY,MAAM;AACzB,eAAO,EAAE,SAAS,QAAQ,SAASA,MAAK,QAAQ;AAAA,MAClD,CAAC;AAED,YAAMG,YAAWV,QAAO,GAAG,kBAAkB,EAAE,WAAW,OAAa;AACrE,YAAI,MAAM,QAAQ,MAAO;AACzB,YAAI,MAAM,MAAM,SAAU;AAC1B,YAAI,MAAM,MAAM,IAAK;AAErB,cAAM,UAAU,OAAOC,IACpB,KAAK,0CAA0C;AAAA,UAC9C,KAAK,MAAM;AAAA,UACX,UAAU;AAAA,UACV,SAAS;AAAA,QACX,CAAC,EACA,KAAKD,QAAO,KAAK;AACpB,cAAM,WAAW,QAAQ,KAAK,CAAC,GAAG,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;AAC9D,YAAI,CAAC,SAAU;AAEf,cAAM,SAAS,OAAOC,IAAG,SAAS,QAAQ,EAAE,KAAKD,QAAO,KAAK;AAC7D,cAAM,SAAS,OAAO,KAAK,MAAM,EAAE,SAAS,QAAQ;AACpD,cAAM,OAAO,cAAc,SAAS,QAAQ;AAC5C,cAAM,MAAM,QAAQ,IAAI,WAAW,MAAM;AACzC,eAAOW,QAAO,EAAE,WAAW,MAAM,IAAI,MAAM,EAAE,IAAI,EAAE,CAAC;AAAA,MACtD,CAAC;AAED,YAAMC,QAAOZ,QAAO,GAAG,cAAc,EAAE,aAAa;AAClD,eAAO,OAAO,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC;AAAA,MAC1E,CAAC;AAED,YAAMa,OAAMb,QAAO,GAAG,aAAa,EAAE,WAAW,IAAe;AAC7D,cAAM,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,UAAM,eAAG,aAAa,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC;AAC/F,eAAO,MAAM,QAAQ,GAAG,IAAI;AAAA,MAC9B,CAAC;AAED,YAAMW,UAASX,QAAO,GAAG,gBAAgB,EAAE,WAAW,OAAoB;AACxE,cAAM,SAAS,OAAO;AAAA,UAAG,CAAC,MACxB,EACG,OAAO,YAAY,EACnB,IAAI;AAAA,YACH,MAAM,MAAM;AAAA,YACZ,UAAU,MAAM,MAAM;AAAA,YACtB,YAAY,MAAM,MAAM;AAAA,YACxB,UAAU,MAAM;AAAA,YAChB,cAAc,KAAK,IAAI;AAAA,UACzB,CAAC,EACA,UAAM,eAAG,aAAa,IAAI,MAAM,SAAS,CAAC,EAC1C,UAAU,EACV,IAAI;AAAA,QACT;AACA,YAAI,CAAC,OAAQ,OAAM,IAAI,MAAM,sBAAsB,MAAM,SAAS,EAAE;AACpE,cAAMO,QAAO,QAAQ,MAAM;AAC3B,eAAO,YAAYA,KAAI;AACvB,eAAOA;AAAA,MACT,CAAC;AAED,YAAMO,WAAUd,QAAO,GAAG,iBAAiB,EAAE,WAAW,OAA6C;AACnG,YAAI,MAAM,QAAQ,QAAQ,MAAO,QAAO,MAAM;AAC9C,YAAI,EAAE,OAAOA,QAAO,KAAK,MAAM,MAAM,KAAK,CAAC,GAAI,OAAM,IAAI,MAAM,sBAAsB;AACrF,cAAM,SAAS,OAAO,IAAI,CAAC,QAAQ,SAAS,GAAG,EAAE,KAAK,MAAM,UAAU,CAAC;AACvE,YAAI,OAAO,SAAS,GAAG;AACrB,gBAAM,IAAI,MAAM,OAAO,OAAO,KAAK,KAAK,OAAO,KAAK,KAAK,KAAK,qCAAqC;AAAA,QACrG;AACA,cAAM,EAAE,QAAQ,IAAI,OAAOS,eAAc,MAAM,SAAS;AACxD,eAAO;AAAA,MACT,CAAC;AAED,YAAMM,kBAAiBf,QAAO,GAAG,wBAAwB,EAAE,WAAW,IAAe;AACnF,eAAO;AAAA,UAAG,CAAC,MACT,EAAE,OAAO,YAAY,EAAE,IAAI,EAAE,kBAAkB,KAAK,IAAI,EAAE,CAAC,EAAE,UAAM,eAAG,aAAa,IAAI,EAAE,CAAC,EAAE,IAAI;AAAA,QAClG;AAAA,MACF,CAAC;AAED,YAAMgB,aAAYhB,QAAO,GAAG,mBAAmB,EAAE,WAAW,IAAe;AACzE,cAAM,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,UAAM,eAAG,aAAa,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC;AAC/F,YAAI,CAAC,IAAK,QAAO,CAAC;AAClB,cAAMO,QAAO,QAAQ,GAAG;AACxB,eAAO,OAAOP,QAAO;AAAA,UACnBO,MAAK;AAAA,UACL,CAAC,QACCN,IAAG,MAAM,GAAG,EAAE;AAAA,YACZD,QAAO;AAAA,YACPA,QAAO,IAAI,CAAC,OAAQ,KAAK,MAAM,MAAU;AAAA,UAC3C;AAAA,UACF,EAAE,aAAa,YAAY;AAAA,QAC7B,EAAE,KAAKA,QAAO,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAmB,MAAM,MAAS,CAAC,CAAC;AAAA,MAC7E,CAAC;AAED,YAAMiB,cAAajB,QAAO,GAAG,oBAAoB,EAAE,WAAW,IAAe,WAAmB;AAC9F,cAAM,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,UAAM,eAAG,aAAa,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC;AAC/F,YAAI,CAAC,IAAK,OAAM,IAAI,MAAM,sBAAsB,EAAE,EAAE;AACpD,cAAM,SAAS,CAAC,GAAG,IAAI,SAAS;AAChC,YAAI,CAAC,OAAO,SAAS,SAAS,EAAG,QAAO,KAAK,SAAS;AACtD,cAAM,SAAS,OAAO;AAAA,UAAG,CAAC,MACxB,EACG,OAAO,YAAY,EACnB,IAAI,EAAE,WAAW,QAAQ,cAAc,KAAK,IAAI,EAAE,CAAC,EACnD,UAAM,eAAG,aAAa,IAAI,EAAE,CAAC,EAC7B,UAAU,EACV,IAAI;AAAA,QACT;AACA,YAAI,CAAC,OAAQ,OAAM,IAAI,MAAM,sBAAsB,EAAE,EAAE;AACvD,eAAO,YAAY,QAAQ,MAAM,CAAC;AAAA,MACpC,CAAC;AAED,YAAMkB,iBAAgBlB,QAAO,GAAG,uBAAuB,EAAE,WAAW,IAAe,WAAmB;AACpG,cAAM,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,UAAM,eAAG,aAAa,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC;AAC/F,YAAI,CAAC,IAAK,OAAM,IAAI,MAAM,sBAAsB,EAAE,EAAE;AACpD,cAAM,SAAS,IAAI,UAAU,OAAO,CAAC,MAAM,MAAM,SAAS;AAC1D,cAAM,SAAS,OAAO;AAAA,UAAG,CAAC,MACxB,EACG,OAAO,YAAY,EACnB,IAAI,EAAE,WAAW,QAAQ,cAAc,KAAK,IAAI,EAAE,CAAC,EACnD,UAAM,eAAG,aAAa,IAAI,EAAE,CAAC,EAC7B,UAAU,EACV,IAAI;AAAA,QACT;AACA,YAAI,CAAC,OAAQ,OAAM,IAAI,MAAM,sBAAsB,EAAE,EAAE;AACvD,eAAO,YAAY,QAAQ,MAAM,CAAC;AAAA,MACpC,CAAC;AAED,aAAO,QAAQ,GAAG;AAAA,QAChB,eAAAS;AAAA,QACA,UAAAC;AAAA,QACA,MAAAE;AAAA,QACA,KAAAC;AAAA,QACA,QAAAF;AAAA,QACA,SAAAG;AAAA,QACA,gBAAAC;AAAA,QACA,WAAAC;AAAA,QACA,YAAAC;AAAA,QACA,eAAAC;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAEO,EAAMvB,SAAA,eAAeA,SAAA,MAAM;AAAA,IAChCI,OAAM,QAA0B,YAAY;AAAA,IAC5CA,OAAM,QAAQ,cAAc,YAAY;AAAA,IACxCA,OAAM,QAAQoB,UAAS,KAAK;AAAA,EAC9B;AACA,QAAM,EAAE,WAAW,IAAI,YAAY,SAASxB,SAAA,YAAY;AAMjD,WAAS,cAAc,WAAmB;AAC/C,WAAO,WAAW,CAAC,QAAQ,IAAI,cAAc,SAAS,CAAC;AAAA,EACzD;AAFO,EAAAA,SAAS;AAIT,WAAS,SAAS,OAAa;AACpC,WAAO,WAAW,CAAC,QAAQ,IAAI,SAAS,KAAK,CAAC;AAAA,EAChD;AAFO,EAAAA,SAAS;AAIT,WAAS,OAAO;AACrB,WAAO,SAAS;AAAA,MAAI,CAAC,OACnB,GACG,OAAO,EACP,KAAK,YAAY,EACjB,IAAI,EACJ,IAAI,CAAC,QAAQ,QAAQ,GAAG,CAAC;AAAA,IAC9B;AAAA,EACF;AARO,EAAAA,SAAS;AAUT,WAAS,IAAI,IAAiC;AACnD,UAAM,MAAM,SAAS,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,KAAK,YAAY,EAAE,UAAM,eAAG,aAAa,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC;AACpG,QAAI,CAAC,IAAK,QAAO;AACjB,WAAO,QAAQ,GAAG;AAAA,EACpB;AAJO,EAAAA,SAAS;AAMT,WAAS,eAAe,IAAe;AAC5C,aAAS;AAAA,MAAI,CAAC,OACZ,GAAG,OAAO,YAAY,EAAE,IAAI,EAAE,kBAAkB,KAAK,IAAI,EAAE,CAAC,EAAE,UAAM,eAAG,aAAa,IAAI,EAAE,CAAC,EAAE,IAAI;AAAA,IACnG;AAAA,EACF;AAJO,EAAAA,SAAS;AAMT,WAAS,QAAQ,OAA6C;AACnE,WAAO,WAAW,CAAC,QAAQ,IAAI,QAAQ,KAAK,CAAC;AAAA,EAC/C;AAFO,EAAAA,SAAS;AAIT,WAAS,OAAO,OAAoB;AACzC,WAAO,WAAW,CAAC,QAAQ,IAAI,OAAO,KAAK,CAAC;AAAA,EAC9C;AAFO,EAAAA,SAAS;AAIT,WAAS,UAAU,IAAe;AACvC,WAAO,WAAW,CAAC,QAAQ,IAAI,UAAU,EAAE,CAAC;AAAA,EAC9C;AAFO,EAAAA,SAAS;AAIT,WAAS,WAAW,IAAe,WAAmB;AAC3D,WAAO,WAAW,CAAC,QAAQ,IAAI,WAAW,IAAI,SAAS,CAAC;AAAA,EAC1D;AAFO,EAAAA,SAAS;AAIT,WAAS,cAAc,IAAe,WAAmB;AAC9D,WAAO,WAAW,CAAC,QAAQ,IAAI,cAAc,IAAI,SAAS,CAAC;AAAA,EAC7D;AAFO,EAAAA,SAAS;AAAA,GAlfD;;;AiBfV,IAAU;AAAA,CAAV,CAAUyB,WAAV;AAML,QAAMC,OAAM,IAAI,OAAO,EAAE,SAAS,QAAQ,CAAC;AAC3C,QAAM,eAAe,oBAAI,IAA6B;AAE/C,WAAS,OAAU,MAAoBC,OAAeC,UAAgD;AAC3G,WAAO,MAAM;AACX,YAAM,MAAM,KAAK;AACjB,UAAI,UAAU,aAAa,IAAI,GAAG;AAClC,UAAI,CAAC,SAAS;AACZ,kBAAU,oBAAI,IAAmB;AACjC,qBAAa,IAAI,KAAK,OAAO;AAAA,MAC/B;AACA,YAAM,SAAS,QAAQ,IAAID,KAAI;AAC/B,UAAI,OAAQ,QAAO,OAAO;AAC1B,YAAME,SAAQF,MAAK;AACnB,cAAQ,IAAIA,OAAM;AAAA,QAChB,OAAAE;AAAA,QACA,SAAAD;AAAA,MACF,CAAC;AACD,aAAOC;AAAA,IACT;AAAA,EACF;AAjBO,EAAAJ,OAAS;AAmBhB,iBAAsB,QAAQ,KAAa;AACzC,UAAM,UAAU,aAAa,IAAI,GAAG;AACpC,QAAI,CAAC,QAAS;AAEd,IAAAC,KAAI,KAAK,0CAA0C,EAAE,IAAI,CAAC;AAE1D,QAAI,mBAAmB;AAEvB,eAAW,MAAM;AACf,UAAI,CAAC,kBAAkB;AACrB,QAAAA,KAAI;AAAA,UACF;AAAA,UACA,EAAE,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF,GAAG,GAAK,EAAE,MAAM;AAEhB,UAAM,QAAyB,CAAC;AAChC,eAAW,CAACC,OAAM,KAAK,KAAK,SAAS;AACnC,UAAI,CAAC,MAAM,QAAS;AAEpB,YAAM,QAAQ,OAAOA,UAAS,aAAaA,MAAK,OAAO,OAAOA,KAAI;AAElE,YAAM,OAAO,QAAQ,QAAQ,MAAM,KAAK,EACrC,KAAK,CAACE,WAAU,MAAM,QAASA,MAAK,CAAC,EACrC,MAAM,CAAC,UAAU;AAChB,QAAAH,KAAI,MAAM,gCAAgC,EAAE,OAAO,KAAK,MAAM,MAAM,CAAC;AAAA,MACvE,CAAC;AAEH,YAAM,KAAK,IAAI;AAAA,IACjB;AACA,UAAM,QAAQ,IAAI,KAAK;AAEvB,YAAQ,MAAM;AACd,iBAAa,OAAO,GAAG;AAEvB,uBAAmB;AACnB,IAAAA,KAAI,KAAK,4BAA4B,EAAE,IAAI,CAAC;AAAA,EAC9C;AAtCA,EAAAD,OAAsB;AAAA,GA5BP;;;ACajB,IAAM,UAAU,QAAQ,OAAwB,UAAU;AAC1D,IAAMK,SAAQ,oBAAI,IAAsC;AAExD,IAAM,WAAW;AAAA,EACf,KAAK;AACP;AAEA,SAAS,KAAK,WAAmB;AAC/B,YAAU,KAAK,SAAS;AAAA,IACtB;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,YAAY;AAAA,QACV;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAEA,SAAS,KAAK,OAAoG;AAChH,SAAO,KAAK,YAAY;AACtB,UAAM,MACJ,MAAM,WAAW,MAAM,WACnB;AAAA,MACE,WAAW,MAAM;AAAA,MACjB,UAAU,MAAM;AAAA,MAChB,SAAS,MAAM;AAAA,IACjB,IACA,MAAM,QAAQ,cAAc,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,SAAS,QAAQ,OAAO;AAAA,MAC3E,WAAW,MAAM;AAAA,MACjB,UAAU;AAAA,MACV;AAAA,IACF,EAAE;AACR,UAAM,QAAQ,QAAQ,KAAK,YAAY;AACrC,YAAM,MAAM,OAAO;AAAA,IACrB,CAAC;AACD,WAAO;AAAA,EACT,CAAC;AACH;AAEA,SAAS,MAAM,WAAmB,MAAgC;AAChE,QAAM,OAAO,KAAK,MAAM,CAAC,UAAU;AACjC,QAAIA,OAAM,IAAI,SAAS,MAAM,KAAM,CAAAA,OAAM,OAAO,SAAS;AACzD,UAAM;AAAA,EACR,CAAC;AACD,EAAAA,OAAM,IAAI,WAAW,IAAI;AACzB,SAAO;AACT;AAEO,IAAM,WAAW;AAAA,EACtB,MAAM,QAAW,OAAkF;AACjG,UAAM,YAAY,WAAW,QAAQ,MAAM,SAAS;AACpD,QAAI,WAAWA,OAAM,IAAI,SAAS;AAClC,QAAI,CAAC,UAAU;AACb,UAAI,QAAQ,KAAK,qBAAqB,EAAE,UAAU,CAAC;AACnD,iBAAW;AAAA,QACT;AAAA,QACA,KAAK;AAAA,UACH;AAAA,UACA,MAAM,MAAM;AAAA,QACd,CAAC;AAAA,MACH;AAAA,IACF;AACA,UAAM,MAAM,MAAM;AAClB,WAAO,QAAQ,QAAQ,KAAK,YAAY;AACtC,aAAO,MAAM,GAAG;AAAA,IAClB,CAAC;AAAA,EACH;AAAA,EACA,IAAI,UAAU;AACZ,WAAO,QAAQ,IAAI;AAAA,EACrB;AAAA,EACA,IAAI,YAAY;AACd,WAAO,QAAQ,IAAI,EAAE;AAAA,EACvB;AAAA,EACA,IAAI,WAAW;AACb,WAAO,QAAQ,IAAI,EAAE;AAAA,EACvB;AAAA,EACA,IAAI,UAAU;AACZ,WAAO,QAAQ,IAAI,EAAE;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,aAAa,UAAkB;AAC7B,QAAI,WAAW,SAAS,SAAS,WAAW,QAAQ,EAAG,QAAO;AAG9D,QAAI,SAAS,aAAa,IAAK,QAAO;AACtC,WAAO,WAAW,SAAS,SAAS,UAAU,QAAQ;AAAA,EACxD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,KAAwC,IAAU;AAChD,UAAM,MAAM,QAAQ,IAAI;AACxB,YAAQ,IAAI,SAAgB,QAAQ,QAAQ,KAAK,MAAM,GAAG,GAAG,IAAI,CAAC;AAAA,EACpE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,QAAW,KAAsB,IAAgB;AAC/C,WAAO,QAAQ,QAAQ,KAAK,EAAE;AAAA,EAChC;AAAA,EACA,MAASC,OAAe,SAAyD;AAC/E,WAAO,MAAM,OAAO,MAAM,SAAS,WAAWA,OAAM,OAAO;AAAA,EAC7D;AAAA,EACA,MAAM,OAAO,OAAoG;AAC/G,UAAM,YAAY,WAAW,QAAQ,MAAM,SAAS;AACpD,QAAI,QAAQ,KAAK,sBAAsB,EAAE,UAAU,CAAC;AACpD,UAAM,QAAQ,IAAI,CAAC,MAAM,QAAQ,SAAS,GAAG,gBAAgB,SAAS,CAAC,CAAC;AACxE,IAAAD,OAAM,OAAO,SAAS;AACtB,UAAM,OAAO,MAAM,WAAW,KAAK,EAAE,GAAG,OAAO,UAAU,CAAC,CAAC;AAC3D,SAAK,SAAS;AACd,WAAO,MAAM;AAAA,EACf;AAAA,EACA,MAAM,UAAU;AACd,UAAM,YAAY,SAAS;AAC3B,QAAI,QAAQ,KAAK,sBAAsB,EAAE,UAAU,CAAC;AACpD,UAAM,QAAQ,IAAI,CAAC,MAAM,QAAQ,SAAS,GAAG,gBAAgB,SAAS,CAAC,CAAC;AACxE,IAAAA,OAAM,OAAO,SAAS;AACtB,SAAK,SAAS;AAAA,EAChB;AAAA,EACA,MAAM,aAAa;AACjB,QAAI,SAAS,IAAK,QAAO,SAAS;AAElC,aAAS,MAAM,KAAK,YAAY;AAC9B,UAAI,QAAQ,KAAK,yBAAyB;AAC1C,YAAM,UAAU,CAAC,GAAGA,OAAM,QAAQ,CAAC;AACnC,iBAAW,CAAC,KAAK,KAAK,KAAK,SAAS;AAClC,YAAIA,OAAM,IAAI,GAAG,MAAM,MAAO;AAE9B,cAAM,MAAM,MAAM,MAAM,MAAM,CAAC,UAAU;AACvC,cAAI,QAAQ,KAAK,2BAA2B,EAAE,KAAK,MAAM,CAAC;AAC1D,iBAAO;AAAA,QACT,CAAC;AAED,YAAI,CAAC,KAAK;AACR,cAAIA,OAAM,IAAI,GAAG,MAAM,MAAO,CAAAA,OAAM,OAAO,GAAG;AAC9C;AAAA,QACF;AAEA,YAAIA,OAAM,IAAI,GAAG,MAAM,MAAO;AAE9B,cAAM,QAAQ,QAAQ,KAAK,YAAY;AACrC,gBAAM,SAAS,QAAQ;AAAA,QACzB,CAAC;AAAA,MACH;AAAA,IACF,CAAC,EAAE,QAAQ,MAAM;AACf,eAAS,MAAM;AAAA,IACjB,CAAC;AAED,WAAO,SAAS;AAAA,EAClB;AACF;;;A3BxKO,IAAM,UAAUE,OAAM,kBAAkB;AAE/C,SAAS,OAAgBC,SAAwD;AAC/E,MAAI;AACF,UAAM,MAAM,SAAS;AACrB,WAAOC,QAAO,eAAeD,SAAQ,aAAa,GAAG;AAAA,EACvD,SAAS,KAAK;AACZ,QAAI,EAAE,eAAe,QAAQ,UAAW,OAAM;AAAA,EAChD;AACA,SAAOA;AACT;AAEO,SAAS,YAAqB,SAAmCE,QAA0B;AAChG,MAAIC;AACJ,QAAM,aAAa,MAAOA,QAAO,eAAe,KAAKD,QAAO,EAAE,QAAQ,CAAC;AAEvE,SAAO;AAAA,IACL,SAAS,CAAS,OAA6C,WAAW,EAAE,QAAQ,OAAO,QAAQ,IAAI,EAAE,CAAC,CAAC;AAAA,IAC3G,gBAAgB,CAAS,IAA0C,YACjE,WAAW,EAAE,eAAe,OAAO,QAAQ,IAAI,EAAE,CAAC,GAAG,OAAO;AAAA,IAC9D,YAAY,CAAS,IAA0C,YAC7D,WAAW,EAAE,WAAW,OAAO,QAAQ,IAAI,EAAE,CAAC,GAAG,OAAO;AAAA,IAC1D,SAAS,CAAS,OAA6C,WAAW,EAAE,QAAQ,OAAO,QAAQ,IAAI,EAAE,CAAC,CAAC;AAAA,IAC3G,aAAa,CAAS,OACpB,WAAW,EAAE,YAAY,OAAO,QAAQ,IAAI,EAAE,CAAC,CAAC;AAAA,EACpD;AACF;",
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["Effect", "Layer", "Glob", "Filesystem", "data", "writeStream", "path", "fs", "createWriteStream", "Global", "Log", "init", "path", "fs", "createWriteStream", "file", "prefix", "Context", "z", "z", "data", "z", "path", "existsSync", "Flag", "ServiceMap", "InstanceState", "ServiceMap", "init", "cache", "directory", "path", "z", "Database", "path", "existsSync", "callback", "effect", "integer", "integer", "sqliteTable", "text", "integer", "sqliteTable", "text", "integer", "z", "BusEvent", "path", "path", "z", "z", "Effect", "Layer", "Path", "Scope", "ServiceMap", "Stream", "ChildProcess", "ChildProcessSpawner", "NodePath", "dirname", "join", "relative", "pathResolve", "realpathSync", "lookup", "Effect", "Schema", "ServiceMap", "AppFileSystem", "Schema", "ServiceMap", "Effect", "fs", "path", "text", "data", "dirname", "glob", "join", "lookup", "pathResolve", "realpathSync", "relative", "NodeFileSystem", "Effect", "FileSystem", "Layer", "make", "fs", "path", "config", "proc", "signal", "layer", "NodeFileSystem", "makeRuntime", "Project", "log", "z", "ServiceMap", "Layer", "Effect", "fs", "Path", "ChildProcessSpawner", "ChildProcess", "text", "Stream", "data", "Scope", "fromDirectory", "discover", "update", "list", "get", "initGit", "setInitialized", "sandboxes", "addSandbox", "removeSandbox", "NodePath", "State", "log", "init", "dispose", "state", "cache", "init", "Layer", "effect", "Effect", "layer", "rt"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// Built by esbuild from opencode-server source
|
|
2
|
+
if (typeof globalThis.Bun === 'undefined') {
|
|
3
|
+
globalThis.Bun = {
|
|
4
|
+
version: '0.0.0-node-compat',
|
|
5
|
+
stdin: { async text() { const chunks = []; for await (const c of process.stdin) chunks.push(c); return Buffer.concat(chunks).toString(); } },
|
|
6
|
+
which(cmd) { try { return require('child_process').execFileSync('which', [cmd], { encoding: 'utf8' }).trim(); } catch { return null; } },
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
if (typeof globalThis.__name === 'undefined') { globalThis.__name = (t, n) => { Object.defineProperty(t, 'name', { value: n, configurable: true }); return t; }; }
|
|
10
|
+
if (typeof globalThis.__export === 'undefined') { globalThis.__export = (t, a) => { for (const k in a) Object.defineProperty(t, k, { get: a[k], enumerable: true }); }; }
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
// packages/opencode/src/util/schema.ts
|
|
14
|
+
var withStatics = (methods) => (schema) => Object.assign(schema, methods(schema));
|
|
15
|
+
function Newtype() {
|
|
16
|
+
return (tag, schema) => {
|
|
17
|
+
class Base {
|
|
18
|
+
static makeUnsafe(value) {
|
|
19
|
+
return value;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
Object.setPrototypeOf(Base, schema);
|
|
23
|
+
return Base;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export {
|
|
28
|
+
withStatics,
|
|
29
|
+
Newtype
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=chunk-BI5OUHTQ.js.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../packages/opencode/src/util/schema.ts"],
|
|
4
4
|
"sourcesContent": ["import { Schema } from \"effect\"\n\n/**\n * Attach static methods to a schema object. Designed to be used with `.pipe()`:\n *\n * @example\n * export const Foo = fooSchema.pipe(\n * withStatics((schema) => ({\n * zero: schema.makeUnsafe(0),\n * from: Schema.decodeUnknownOption(schema),\n * }))\n * )\n */\nexport const withStatics =\n <S extends object, M extends Record<string, unknown>>(methods: (schema: S) => M) =>\n (schema: S): S & M =>\n Object.assign(schema, methods(schema))\n\ndeclare const NewtypeBrand: unique symbol\ntype NewtypeBrand<Tag extends string> = { readonly [NewtypeBrand]: Tag }\n\n/**\n * Nominal wrapper for scalar types. The class itself is a valid schema \u2014\n * pass it directly to `Schema.decode`, `Schema.decodeEffect`, etc.\n *\n * @example\n * class QuestionID extends Newtype<QuestionID>()(\"QuestionID\", Schema.String) {\n * static make(id: string): QuestionID {\n * return this.makeUnsafe(id)\n * }\n * }\n *\n * Schema.decodeEffect(QuestionID)(input)\n */\nexport function Newtype<Self>() {\n return <const Tag extends string, S extends Schema.Top>(tag: Tag, schema: S) => {\n type Branded = NewtypeBrand<Tag>\n\n abstract class Base {\n declare readonly [NewtypeBrand]: Tag\n\n static makeUnsafe(value: Schema.Schema.Type<S>): Self {\n return value as unknown as Self\n }\n }\n\n Object.setPrototypeOf(Base, schema)\n\n return Base as unknown as (abstract new (_: never) => Branded) & {\n readonly makeUnsafe: (value: Schema.Schema.Type<S>) => Self\n } & Omit<Schema.Opaque<Self, S, {}>, \"makeUnsafe\">\n }\n}\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;AAaO,IAAM,cACX,CAAsD,YACtD,CAAC,WACC,OAAO,OAAO,QAAQ,QAAQ,MAAM,CAAC;AAkBlC,SAAS,UAAgB;AAC9B,SAAO,CAAiD,KAAU,WAAc;AAAA,IAG9E,MAAe,KAAK;AAAA,MAGlB,OAAO,WAAW,OAAoC;AACpD,eAAO;AAAA,MACT;AAAA,IACF;AAEA,WAAO,eAAe,MAAM,MAAM;AAElC,WAAO;AAAA,EAGT;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
// Built by esbuild from opencode-server source
|
|
2
|
+
if (typeof globalThis.Bun === 'undefined') {
|
|
3
|
+
globalThis.Bun = {
|
|
4
|
+
version: '0.0.0-node-compat',
|
|
5
|
+
stdin: { async text() { const chunks = []; for await (const c of process.stdin) chunks.push(c); return Buffer.concat(chunks).toString(); } },
|
|
6
|
+
which(cmd) { try { return require('child_process').execFileSync('which', [cmd], { encoding: 'utf8' }).trim(); } catch { return null; } },
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
if (typeof globalThis.__name === 'undefined') { globalThis.__name = (t, n) => { Object.defineProperty(t, 'name', { value: n, configurable: true }); return t; }; }
|
|
10
|
+
if (typeof globalThis.__export === 'undefined') { globalThis.__export = (t, a) => { for (const k in a) Object.defineProperty(t, k, { get: a[k], enumerable: true }); }; }
|
|
11
|
+
|
|
2
12
|
import {
|
|
3
13
|
withStatics
|
|
4
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-BI5OUHTQ.js";
|
|
5
15
|
|
|
6
16
|
// packages/opencode/src/session/schema.ts
|
|
7
17
|
import { Schema } from "effect";
|
|
@@ -114,4 +124,4 @@ export {
|
|
|
114
124
|
MessageID,
|
|
115
125
|
PartID
|
|
116
126
|
};
|
|
117
|
-
//# sourceMappingURL=chunk-
|
|
127
|
+
//# sourceMappingURL=chunk-CR6IREZA.js.map
|