alchemylab-opencode 1.0.4 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build.mjs +11 -1
- 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 +1 -1
- 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/server/server.ts", "../packages/opencode/src/control-plane/adaptors/index.ts", "../packages/opencode/src/control-plane/workspace.ts", "../packages/opencode/src/control-plane/workspace.sql.ts", "../packages/opencode/src/control-plane/sse.ts", "../packages/opencode/src/server/proxy.ts", "../packages/opencode/src/server/instance.ts", "../packages/opencode/src/server/routes/tui.ts", "../packages/opencode/src/util/queue.ts", "../packages/opencode/src/server/error.ts", "../packages/opencode/src/server/routes/question.ts", "../packages/opencode/src/server/routes/permission.ts", "../packages/opencode/src/server/routes/project.ts", "../packages/opencode/src/server/routes/session.ts", "../packages/opencode/src/server/routes/pty.ts", "../packages/opencode/src/pty/index.ts", "../packages/util/src/lazy.ts", "../packages/opencode/src/pty/schema.ts", "../packages/opencode/src/server/routes/mcp.ts", "../packages/opencode/src/server/routes/file.ts", "../packages/opencode/src/server/routes/config.ts", "../packages/opencode/src/server/routes/experimental.ts", "../packages/opencode/src/config/console-state.ts", "../packages/opencode/src/server/routes/workspace.ts", "../packages/opencode/src/server/routes/provider.ts", "../packages/opencode/src/provider/auth.ts", "../packages/opencode/src/server/routes/event.ts", "../packages/opencode/src/server/middleware.ts", "../packages/opencode/src/server/router.ts", "../packages/opencode/src/server/routes/global.ts", "../packages/opencode/src/server/mdns.ts", "../packages/opencode/src/session/projectors.ts", "../packages/opencode/src/server/projectors.ts"],
|
|
4
4
|
"sourcesContent": ["import { Log } from \"../util/log\"\nimport { describeRoute, generateSpecs, validator, resolver, openAPIRouteHandler } from \"hono-openapi\"\nimport { Hono } from \"hono\"\nimport { compress } from \"hono/compress\"\nimport { cors } from \"hono/cors\"\nimport { basicAuth } from \"hono/basic-auth\"\nimport type { UpgradeWebSocket } from \"hono/ws\"\nimport z from \"zod\"\nimport { Auth } from \"../auth\"\nimport { Flag } from \"../flag/flag\"\nimport { ProviderID } from \"../provider/schema\"\nimport { createAdaptorServer, type ServerType } from \"@hono/node-server\"\nimport { createNodeWebSocket } from \"@hono/node-ws\"\nimport { WorkspaceRouterMiddleware } from \"./router\"\nimport { errors } from \"./error\"\nimport { GlobalRoutes } from \"./routes/global\"\nimport { MDNS } from \"./mdns\"\nimport { lazy } from \"@/util/lazy\"\nimport { errorHandler } from \"./middleware\"\nimport { InstanceRoutes } from \"./instance\"\nimport { initProjectors } from \"./projectors\"\n\n// @ts-ignore This global is needed to prevent ai-sdk from logging warnings to stdout https://github.com/vercel/ai/blob/2dc67e0ef538307f21368db32d5a12345d98831b/packages/ai/src/logger/log-warnings.ts#L85\nglobalThis.AI_SDK_LOG_WARNINGS = false\n\ninitProjectors()\n\nexport namespace Server {\n export type Listener = {\n hostname: string\n port: number\n url: URL\n stop: (close?: boolean) => Promise<void>\n }\n\n const log = Log.create({ service: \"server\" })\n const zipped = compress()\n\n const skipCompress = (path: string, method: string) => {\n if (path === \"/event\" || path === \"/global/event\" || path === \"/global/sync-event\") return true\n if (method === \"POST\" && /\\/session\\/[^/]+\\/(message|prompt_async)$/.test(path)) return true\n return false\n }\n\n export const Default = lazy(() => create({}).app)\n\n export function ControlPlaneRoutes(upgrade: UpgradeWebSocket, app = new Hono(), opts?: { cors?: string[] }): Hono {\n return app\n .onError(errorHandler(log))\n .use((c, next) => {\n // Allow CORS preflight requests to succeed without auth.\n // Browser clients sending Authorization headers will preflight with OPTIONS.\n if (c.req.method === \"OPTIONS\") return next()\n const password = Flag.OPENCODE_SERVER_PASSWORD\n if (!password) return next()\n const username = Flag.OPENCODE_SERVER_USERNAME ?? \"opencode\"\n return basicAuth({ username, password })(c, next)\n })\n .use(async (c, next) => {\n const skip = c.req.path === \"/log\"\n if (!skip) {\n log.info(\"request\", {\n method: c.req.method,\n path: c.req.path,\n })\n }\n const timer = log.time(\"request\", {\n method: c.req.method,\n path: c.req.path,\n })\n await next()\n if (!skip) timer.stop()\n })\n .use(\n cors({\n maxAge: 86_400,\n origin(input) {\n if (!input) return\n\n if (input.startsWith(\"http://localhost:\")) return input\n if (input.startsWith(\"http://127.0.0.1:\")) return input\n if (\n input === \"tauri://localhost\" ||\n input === \"http://tauri.localhost\" ||\n input === \"https://tauri.localhost\"\n )\n return input\n\n if (/^https:\\/\\/([a-z0-9-]+\\.)*opencode\\.ai$/.test(input)) return input\n if (opts?.cors?.includes(input)) return input\n },\n }),\n )\n .use((c, next) => {\n if (skipCompress(c.req.path, c.req.method)) return next()\n return zipped(c, next)\n })\n .route(\"/global\", GlobalRoutes())\n .put(\n \"/auth/:providerID\",\n describeRoute({\n summary: \"Set auth credentials\",\n description: \"Set authentication credentials\",\n operationId: \"auth.set\",\n responses: {\n 200: {\n description: \"Successfully set authentication credentials\",\n content: {\n \"application/json\": {\n schema: resolver(z.boolean()),\n },\n },\n },\n ...errors(400),\n },\n }),\n validator(\n \"param\",\n z.object({\n providerID: ProviderID.zod,\n }),\n ),\n validator(\"json\", Auth.Info.zod),\n async (c) => {\n const providerID = c.req.valid(\"param\").providerID\n const info = c.req.valid(\"json\")\n await Auth.set(providerID, info)\n return c.json(true)\n },\n )\n .delete(\n \"/auth/:providerID\",\n describeRoute({\n summary: \"Remove auth credentials\",\n description: \"Remove authentication credentials\",\n operationId: \"auth.remove\",\n responses: {\n 200: {\n description: \"Successfully removed authentication credentials\",\n content: {\n \"application/json\": {\n schema: resolver(z.boolean()),\n },\n },\n },\n ...errors(400),\n },\n }),\n validator(\n \"param\",\n z.object({\n providerID: ProviderID.zod,\n }),\n ),\n async (c) => {\n const providerID = c.req.valid(\"param\").providerID\n await Auth.remove(providerID)\n return c.json(true)\n },\n )\n .get(\n \"/doc\",\n openAPIRouteHandler(app, {\n documentation: {\n info: {\n title: \"opencode\",\n version: \"0.0.3\",\n description: \"opencode api\",\n },\n openapi: \"3.1.1\",\n },\n }),\n )\n .use(\n validator(\n \"query\",\n z.object({\n directory: z.string().optional(),\n workspace: z.string().optional(),\n }),\n ),\n )\n .post(\n \"/log\",\n describeRoute({\n summary: \"Write log\",\n description: \"Write a log entry to the server logs with specified level and metadata.\",\n operationId: \"app.log\",\n responses: {\n 200: {\n description: \"Log entry written successfully\",\n content: {\n \"application/json\": {\n schema: resolver(z.boolean()),\n },\n },\n },\n ...errors(400),\n },\n }),\n validator(\n \"json\",\n z.object({\n service: z.string().meta({ description: \"Service name for the log entry\" }),\n level: z.enum([\"debug\", \"info\", \"error\", \"warn\"]).meta({ description: \"Log level\" }),\n message: z.string().meta({ description: \"Log message\" }),\n extra: z\n .record(z.string(), z.any())\n .optional()\n .meta({ description: \"Additional metadata for the log entry\" }),\n }),\n ),\n async (c) => {\n const { service, level, message, extra } = c.req.valid(\"json\")\n const logger = Log.create({ service })\n\n switch (level) {\n case \"debug\":\n logger.debug(message, extra)\n break\n case \"info\":\n logger.info(message, extra)\n break\n case \"error\":\n logger.error(message, extra)\n break\n case \"warn\":\n logger.warn(message, extra)\n break\n }\n\n return c.json(true)\n },\n )\n .use(WorkspaceRouterMiddleware(upgrade))\n }\n\n function create(opts: { cors?: string[] }) {\n const app = new Hono()\n const ws = createNodeWebSocket({ app })\n return {\n app: ControlPlaneRoutes(ws.upgradeWebSocket, app, opts),\n ws,\n }\n }\n\n export function createApp(opts: { cors?: string[] }) {\n return create(opts).app\n }\n\n export async function openapi() {\n // Build a fresh app with all routes registered directly so\n // hono-openapi can see describeRoute metadata (`.route()` wraps\n // handlers when the sub-app has a custom errorHandler, which\n // strips the metadata symbol).\n const { app, ws } = create({})\n InstanceRoutes(ws.upgradeWebSocket, app)\n const result = await generateSpecs(app, {\n documentation: {\n info: {\n title: \"opencode\",\n version: \"1.0.0\",\n description: \"opencode api\",\n },\n openapi: \"3.1.1\",\n },\n })\n return result\n }\n\n export let url: URL\n\n export async function listen(opts: {\n port: number\n hostname: string\n mdns?: boolean\n mdnsDomain?: string\n cors?: string[]\n }): Promise<Listener> {\n const built = create(opts)\n const start = (port: number) =>\n new Promise<ServerType>((resolve, reject) => {\n const server = createAdaptorServer({ fetch: built.app.fetch })\n built.ws.injectWebSocket(server)\n const fail = (err: Error) => {\n cleanup()\n reject(err)\n }\n const ready = () => {\n cleanup()\n resolve(server)\n }\n const cleanup = () => {\n server.off(\"error\", fail)\n server.off(\"listening\", ready)\n }\n server.once(\"error\", fail)\n server.once(\"listening\", ready)\n server.listen(port, opts.hostname)\n })\n\n const server = opts.port === 0 ? await start(4096).catch(() => start(0)) : await start(opts.port)\n const addr = server.address()\n if (!addr || typeof addr === \"string\") {\n throw new Error(`Failed to resolve server address for port ${opts.port}`)\n }\n\n const next = new URL(\"http://localhost\")\n next.hostname = opts.hostname\n next.port = String(addr.port)\n url = next\n\n const mdns =\n opts.mdns &&\n addr.port &&\n opts.hostname !== \"127.0.0.1\" &&\n opts.hostname !== \"localhost\" &&\n opts.hostname !== \"::1\"\n if (mdns) {\n MDNS.publish(addr.port, opts.mdnsDomain)\n } else if (opts.mdns) {\n log.warn(\"mDNS enabled but hostname is loopback; skipping mDNS publish\")\n }\n\n let closing: Promise<void> | undefined\n return {\n hostname: opts.hostname,\n port: addr.port,\n url: next,\n stop(close?: boolean) {\n closing ??= new Promise((resolve, reject) => {\n if (mdns) MDNS.unpublish()\n server.close((err) => {\n if (err) {\n reject(err)\n return\n }\n resolve()\n })\n if (close) {\n if (\"closeAllConnections\" in server && typeof server.closeAllConnections === \"function\") {\n server.closeAllConnections()\n }\n if (\"closeIdleConnections\" in server && typeof server.closeIdleConnections === \"function\") {\n server.closeIdleConnections()\n }\n }\n })\n return closing\n },\n }\n }\n}\n", "import { lazy } from \"@/util/lazy\"\nimport type { Adaptor } from \"../types\"\n\nconst ADAPTORS: Record<string, () => Promise<Adaptor>> = {\n worktree: lazy(async () => (await import(\"./worktree\")).WorktreeAdaptor),\n}\n\nexport function getAdaptor(type: string): Promise<Adaptor> {\n return ADAPTORS[type]()\n}\n\nexport function installAdaptor(type: string, adaptor: Adaptor) {\n // This is experimental: mostly used for testing right now, but we\n // will likely allow this in the future. Need to figure out the\n // TypeScript story\n\n // @ts-expect-error we force the builtin types right now, but we\n // will implement a way to extend the types for custom adaptors\n ADAPTORS[type] = () => adaptor\n}\n", "import z from \"zod\"\nimport { setTimeout as sleep } from \"node:timers/promises\"\nimport { fn } from \"@/util/fn\"\nimport { Database, eq } from \"@/storage/db\"\nimport { Project } from \"@/project/project\"\nimport { BusEvent } from \"@/bus/bus-event\"\nimport { GlobalBus } from \"@/bus/global\"\nimport { Log } from \"@/util/log\"\nimport { ProjectID } from \"@/project/schema\"\nimport { WorkspaceTable } from \"./workspace.sql\"\nimport { getAdaptor } from \"./adaptors\"\nimport { WorkspaceInfo } from \"./types\"\nimport { WorkspaceID } from \"./schema\"\nimport { parseSSE } from \"./sse\"\n\nexport namespace Workspace {\n export const Event = {\n Ready: BusEvent.define(\n \"workspace.ready\",\n z.object({\n name: z.string(),\n }),\n ),\n Failed: BusEvent.define(\n \"workspace.failed\",\n z.object({\n message: z.string(),\n }),\n ),\n }\n\n export const Info = WorkspaceInfo.meta({\n ref: \"Workspace\",\n })\n export type Info = z.infer<typeof Info>\n\n function fromRow(row: typeof WorkspaceTable.$inferSelect): Info {\n return {\n id: row.id,\n type: row.type,\n branch: row.branch,\n name: row.name,\n directory: row.directory,\n extra: row.extra,\n projectID: row.project_id,\n }\n }\n\n const CreateInput = z.object({\n id: WorkspaceID.zod.optional(),\n type: Info.shape.type,\n branch: Info.shape.branch,\n projectID: ProjectID.zod,\n extra: Info.shape.extra,\n })\n\n export const create = fn(CreateInput, async (input) => {\n const id = WorkspaceID.ascending(input.id)\n const adaptor = await getAdaptor(input.type)\n\n const config = await adaptor.configure({ ...input, id, name: null, directory: null })\n\n const info: Info = {\n id,\n type: config.type,\n branch: config.branch ?? null,\n name: config.name ?? null,\n directory: config.directory ?? null,\n extra: config.extra ?? null,\n projectID: input.projectID,\n }\n\n Database.use((db) => {\n db.insert(WorkspaceTable)\n .values({\n id: info.id,\n type: info.type,\n branch: info.branch,\n name: info.name,\n directory: info.directory,\n extra: info.extra,\n project_id: info.projectID,\n })\n .run()\n })\n\n await adaptor.create(config)\n return info\n })\n\n export function list(project: Project.Info) {\n const rows = Database.use((db) =>\n db.select().from(WorkspaceTable).where(eq(WorkspaceTable.project_id, project.id)).all(),\n )\n return rows.map(fromRow).sort((a, b) => a.id.localeCompare(b.id))\n }\n\n export const get = fn(WorkspaceID.zod, async (id) => {\n const row = Database.use((db) => db.select().from(WorkspaceTable).where(eq(WorkspaceTable.id, id)).get())\n if (!row) return\n return fromRow(row)\n })\n\n export const remove = fn(WorkspaceID.zod, async (id) => {\n const row = Database.use((db) => db.select().from(WorkspaceTable).where(eq(WorkspaceTable.id, id)).get())\n if (row) {\n const info = fromRow(row)\n const adaptor = await getAdaptor(row.type)\n adaptor.remove(info)\n Database.use((db) => db.delete(WorkspaceTable).where(eq(WorkspaceTable.id, id)).run())\n return info\n }\n })\n const log = Log.create({ service: \"workspace-sync\" })\n\n async function workspaceEventLoop(space: Info, stop: AbortSignal) {\n while (!stop.aborted) {\n const adaptor = await getAdaptor(space.type)\n const target = await Promise.resolve(adaptor.target(space))\n\n if (target.type === \"local\") {\n return\n }\n\n const baseURL = String(target.url).replace(/\\/?$/, \"/\")\n\n const res = await fetch(new URL(baseURL + \"/event\"), {\n method: \"GET\",\n signal: stop,\n })\n\n if (!res.ok || !res.body) {\n await sleep(1000)\n continue\n }\n\n await parseSSE(res.body, stop, (event) => {\n GlobalBus.emit(\"event\", {\n directory: space.id,\n payload: event,\n })\n })\n\n // Wait 250ms and retry if SSE connection fails\n await sleep(250)\n }\n }\n\n export function startSyncing(project: Project.Info) {\n const stop = new AbortController()\n const spaces = list(project).filter((space) => space.type !== \"worktree\")\n\n spaces.forEach((space) => {\n void workspaceEventLoop(space, stop.signal).catch((error) => {\n log.warn(\"workspace sync listener failed\", {\n workspaceID: space.id,\n error,\n })\n })\n })\n\n return {\n async stop() {\n stop.abort()\n },\n }\n }\n}\n", "import { sqliteTable, text } from \"drizzle-orm/sqlite-core\"\nimport { ProjectTable } from \"../project/project.sql\"\nimport type { ProjectID } from \"../project/schema\"\nimport type { WorkspaceID } from \"./schema\"\n\nexport const WorkspaceTable = sqliteTable(\"workspace\", {\n id: text().$type<WorkspaceID>().primaryKey(),\n type: text().notNull(),\n branch: text(),\n name: text(),\n directory: text(),\n extra: text({ mode: \"json\" }),\n project_id: text()\n .$type<ProjectID>()\n .notNull()\n .references(() => ProjectTable.id, { onDelete: \"cascade\" }),\n})\n", "export async function parseSSE(\n body: ReadableStream<Uint8Array>,\n signal: AbortSignal,\n onEvent: (event: unknown) => void,\n) {\n const reader = body.getReader()\n const decoder = new TextDecoder()\n let buf = \"\"\n let last = \"\"\n let retry = 1000\n\n const abort = () => {\n void reader.cancel().catch(() => undefined)\n }\n\n signal.addEventListener(\"abort\", abort)\n\n try {\n while (!signal.aborted) {\n const chunk = await reader.read().catch(() => ({ done: true, value: undefined as Uint8Array | undefined }))\n if (chunk.done) break\n\n buf += decoder.decode(chunk.value, { stream: true })\n buf = buf.replace(/\\r\\n/g, \"\\n\").replace(/\\r/g, \"\\n\")\n\n const chunks = buf.split(\"\\n\\n\")\n buf = chunks.pop() ?? \"\"\n\n chunks.forEach((chunk) => {\n const data: string[] = []\n chunk.split(\"\\n\").forEach((line) => {\n if (line.startsWith(\"data:\")) {\n data.push(line.replace(/^data:\\s*/, \"\"))\n return\n }\n if (line.startsWith(\"id:\")) {\n last = line.replace(/^id:\\s*/, \"\")\n return\n }\n if (line.startsWith(\"retry:\")) {\n const parsed = Number.parseInt(line.replace(/^retry:\\s*/, \"\"), 10)\n if (!Number.isNaN(parsed)) retry = parsed\n }\n })\n\n if (!data.length) return\n const raw = data.join(\"\\n\")\n try {\n onEvent(JSON.parse(raw))\n } catch {\n onEvent({\n type: \"sse.message\",\n properties: {\n data: raw,\n id: last || undefined,\n retry,\n },\n })\n }\n })\n }\n } finally {\n signal.removeEventListener(\"abort\", abort)\n reader.releaseLock()\n }\n}\n", "import type { Target } from \"@/control-plane/types\"\nimport { lazy } from \"@/util/lazy\"\nimport { Hono } from \"hono\"\nimport { createNodeWebSocket } from \"@hono/node-ws\"\nconst { upgradeWebSocket } = createNodeWebSocket({ app: new Hono() as any })\n\nconst hop = new Set([\n \"connection\",\n \"keep-alive\",\n \"proxy-authenticate\",\n \"proxy-authorization\",\n \"proxy-connection\",\n \"te\",\n \"trailer\",\n \"transfer-encoding\",\n \"upgrade\",\n \"host\",\n])\n\ntype Msg = string | ArrayBuffer | Uint8Array\n\nfunction headers(req: Request, extra?: HeadersInit) {\n const out = new Headers(req.headers)\n for (const key of hop) out.delete(key)\n out.delete(\"x-opencode-directory\")\n out.delete(\"x-opencode-workspace\")\n if (!extra) return out\n for (const [key, value] of new Headers(extra).entries()) {\n out.set(key, value)\n }\n return out\n}\n\nfunction protocols(req: Request) {\n const value = req.headers.get(\"sec-websocket-protocol\")\n if (!value) return []\n return value\n .split(\",\")\n .map((item) => item.trim())\n .filter(Boolean)\n}\n\nfunction socket(url: string | URL) {\n const next = new URL(url)\n if (next.protocol === \"http:\") next.protocol = \"ws:\"\n if (next.protocol === \"https:\") next.protocol = \"wss:\"\n return next.toString()\n}\n\nfunction send(ws: { send(data: string | ArrayBuffer | Uint8Array): void }, data: any) {\n if (data instanceof Blob) {\n return data.arrayBuffer().then((x) => ws.send(x))\n }\n return ws.send(data)\n}\n\nconst app = lazy(() =>\n new Hono().get(\n \"/__workspace_ws\",\n upgradeWebSocket((c) => {\n const url = c.req.header(\"x-opencode-proxy-url\")\n const queue: Msg[] = []\n let remote: WebSocket | undefined\n return {\n onOpen(_, ws) {\n if (!url) {\n ws.close(1011, \"missing proxy target\")\n return\n }\n remote = new WebSocket(url, protocols(c.req.raw))\n remote.binaryType = \"arraybuffer\"\n remote.onopen = () => {\n for (const item of queue) remote?.send(item)\n queue.length = 0\n }\n remote.onmessage = (event) => {\n send(ws, event.data)\n }\n remote.onerror = () => {\n ws.close(1011, \"proxy error\")\n }\n remote.onclose = (event) => {\n ws.close(event.code, event.reason)\n }\n },\n onMessage(event) {\n const data = event.data\n if (typeof data !== \"string\" && !(data instanceof Uint8Array) && !(data instanceof ArrayBuffer)) return\n if (remote?.readyState === WebSocket.OPEN) {\n remote.send(data)\n return\n }\n queue.push(data)\n },\n onClose(event) {\n remote?.close(event.code, event.reason)\n },\n }\n }),\n ),\n)\n\nexport namespace ServerProxy {\n export function http(target: Extract<Target, { type: \"remote\" }>, req: Request) {\n return fetch(\n new Request(target.url, {\n method: req.method,\n headers: headers(req, target.headers),\n body: req.method === \"GET\" || req.method === \"HEAD\" ? undefined : req.body,\n redirect: \"manual\",\n signal: req.signal,\n }),\n )\n }\n\n export function websocket(target: Extract<Target, { type: \"remote\" }>, req: Request, env: unknown) {\n const url = new URL(req.url)\n url.pathname = \"/__workspace_ws\"\n url.search = \"\"\n const next = new Headers(req.headers)\n next.set(\"x-opencode-proxy-url\", socket(target.url))\n return app().fetch(\n new Request(url, {\n method: req.method,\n headers: next,\n signal: req.signal,\n }),\n env as never,\n )\n }\n}\n", "import { describeRoute, resolver, validator } from \"hono-openapi\"\nimport { Hono } from \"hono\"\nimport { proxy } from \"hono/proxy\"\nimport type { UpgradeWebSocket } from \"hono/ws\"\nimport z from \"zod\"\nimport { createHash } from \"node:crypto\"\nimport { Log } from \"../util/log\"\nimport { Format } from \"../format\"\nimport { TuiRoutes } from \"./routes/tui\"\nimport { Instance } from \"../project/instance\"\nimport { Vcs } from \"../project/vcs\"\nimport { Agent } from \"../agent/agent\"\nimport { Skill } from \"../skill\"\nimport { Global } from \"../global\"\nimport { LSP } from \"../lsp\"\nimport { Command } from \"../command\"\nimport { Flag } from \"../flag/flag\"\nimport { QuestionRoutes } from \"./routes/question\"\nimport { PermissionRoutes } from \"./routes/permission\"\nimport { Snapshot } from \"@/snapshot\"\nimport { ProjectRoutes } from \"./routes/project\"\nimport { SessionRoutes } from \"./routes/session\"\nimport { PtyRoutes } from \"./routes/pty\"\nimport { McpRoutes } from \"./routes/mcp\"\nimport { FileRoutes } from \"./routes/file\"\nimport { ConfigRoutes } from \"./routes/config\"\nimport { ExperimentalRoutes } from \"./routes/experimental\"\nimport { ProviderRoutes } from \"./routes/provider\"\nimport { EventRoutes } from \"./routes/event\"\nimport { errorHandler } from \"./middleware\"\n\nconst log = Log.create({ service: \"server\" })\n\nconst embeddedUIPromise = Flag.OPENCODE_DISABLE_EMBEDDED_WEB_UI\n ? Promise.resolve(null)\n : // @ts-expect-error - generated file at build time\n import(\"opencode-web-ui.gen.ts\").then((module) => module.default as Record<string, string>).catch(() => null)\n\nconst DEFAULT_CSP =\n \"default-src 'self'; script-src 'self' 'wasm-unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self' data:; media-src 'self' data:; connect-src 'self' data:\"\n\nconst csp = (hash = \"\") =>\n `default-src 'self'; script-src 'self' 'wasm-unsafe-eval'${hash ? ` 'sha256-${hash}'` : \"\"}; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self' data:; media-src 'self' data:; connect-src 'self' data:`\n\nexport const InstanceRoutes = (upgrade: UpgradeWebSocket, app: Hono = new Hono()) =>\n app\n .onError(errorHandler(log))\n .route(\"/project\", ProjectRoutes())\n .route(\"/pty\", PtyRoutes(upgrade))\n .route(\"/config\", ConfigRoutes())\n .route(\"/experimental\", ExperimentalRoutes())\n .route(\"/session\", SessionRoutes())\n .route(\"/permission\", PermissionRoutes())\n .route(\"/question\", QuestionRoutes())\n .route(\"/provider\", ProviderRoutes())\n .route(\"/\", FileRoutes())\n .route(\"/\", EventRoutes())\n .route(\"/mcp\", McpRoutes())\n .route(\"/tui\", TuiRoutes())\n .post(\n \"/instance/dispose\",\n describeRoute({\n summary: \"Dispose instance\",\n description: \"Clean up and dispose the current OpenCode instance, releasing all resources.\",\n operationId: \"instance.dispose\",\n responses: {\n 200: {\n description: \"Instance disposed\",\n content: {\n \"application/json\": {\n schema: resolver(z.boolean()),\n },\n },\n },\n },\n }),\n async (c) => {\n await Instance.dispose()\n return c.json(true)\n },\n )\n .get(\n \"/path\",\n describeRoute({\n summary: \"Get paths\",\n description: \"Retrieve the current working directory and related path information for the OpenCode instance.\",\n operationId: \"path.get\",\n responses: {\n 200: {\n description: \"Path\",\n content: {\n \"application/json\": {\n schema: resolver(\n z\n .object({\n home: z.string(),\n state: z.string(),\n config: z.string(),\n worktree: z.string(),\n directory: z.string(),\n })\n .meta({\n ref: \"Path\",\n }),\n ),\n },\n },\n },\n },\n }),\n async (c) => {\n return c.json({\n home: Global.Path.home,\n state: Global.Path.state,\n config: Global.Path.config,\n worktree: Instance.worktree,\n directory: Instance.directory,\n })\n },\n )\n .get(\n \"/vcs\",\n describeRoute({\n summary: \"Get VCS info\",\n description: \"Retrieve version control system (VCS) information for the current project, such as git branch.\",\n operationId: \"vcs.get\",\n responses: {\n 200: {\n description: \"VCS info\",\n content: {\n \"application/json\": {\n schema: resolver(Vcs.Info),\n },\n },\n },\n },\n }),\n async (c) => {\n const [branch, default_branch] = await Promise.all([Vcs.branch(), Vcs.defaultBranch()])\n return c.json({\n branch,\n default_branch,\n })\n },\n )\n .get(\n \"/vcs/diff\",\n describeRoute({\n summary: \"Get VCS diff\",\n description: \"Retrieve the current git diff for the working tree or against the default branch.\",\n operationId: \"vcs.diff\",\n responses: {\n 200: {\n description: \"VCS diff\",\n content: {\n \"application/json\": {\n schema: resolver(Snapshot.FileDiff.array()),\n },\n },\n },\n },\n }),\n validator(\n \"query\",\n z.object({\n mode: Vcs.Mode,\n }),\n ),\n async (c) => {\n return c.json(await Vcs.diff(c.req.valid(\"query\").mode))\n },\n )\n .get(\n \"/command\",\n describeRoute({\n summary: \"List commands\",\n description: \"Get a list of all available commands in the OpenCode system.\",\n operationId: \"command.list\",\n responses: {\n 200: {\n description: \"List of commands\",\n content: {\n \"application/json\": {\n schema: resolver(Command.Info.array()),\n },\n },\n },\n },\n }),\n async (c) => {\n const commands = await Command.list()\n return c.json(commands)\n },\n )\n .get(\n \"/agent\",\n describeRoute({\n summary: \"List agents\",\n description: \"Get a list of all available AI agents in the OpenCode system.\",\n operationId: \"app.agents\",\n responses: {\n 200: {\n description: \"List of agents\",\n content: {\n \"application/json\": {\n schema: resolver(Agent.Info.array()),\n },\n },\n },\n },\n }),\n async (c) => {\n const modes = await Agent.list()\n return c.json(modes)\n },\n )\n .get(\n \"/skill\",\n describeRoute({\n summary: \"List skills\",\n description: \"Get a list of all available skills in the OpenCode system.\",\n operationId: \"app.skills\",\n responses: {\n 200: {\n description: \"List of skills\",\n content: {\n \"application/json\": {\n schema: resolver(Skill.Info.array()),\n },\n },\n },\n },\n }),\n async (c) => {\n const skills = await Skill.all()\n return c.json(skills)\n },\n )\n .get(\n \"/lsp\",\n describeRoute({\n summary: \"Get LSP status\",\n description: \"Get LSP server status\",\n operationId: \"lsp.status\",\n responses: {\n 200: {\n description: \"LSP server status\",\n content: {\n \"application/json\": {\n schema: resolver(LSP.Status.array()),\n },\n },\n },\n },\n }),\n async (c) => {\n return c.json(await LSP.status())\n },\n )\n .get(\n \"/formatter\",\n describeRoute({\n summary: \"Get formatter status\",\n description: \"Get formatter status\",\n operationId: \"formatter.status\",\n responses: {\n 200: {\n description: \"Formatter status\",\n content: {\n \"application/json\": {\n schema: resolver(Format.Status.array()),\n },\n },\n },\n },\n }),\n async (c) => {\n return c.json(await Format.status())\n },\n )\n .all(\"/*\", async (c) => {\n const embeddedWebUI = await embeddedUIPromise\n const path = c.req.path\n\n if (embeddedWebUI) {\n const match = embeddedWebUI[path.replace(/^\\//, \"\")] ?? embeddedWebUI[\"index.html\"] ?? null\n if (!match) return c.json({ error: \"Not Found\" }, 404)\n const fs = await import(\"fs\")\n const pathMod = await import(\"path\")\n try {\n const content = fs.readFileSync(match)\n const ext = pathMod.extname(match).toLowerCase()\n const mimeTypes: Record<string, string> = {\n '.html': 'text/html', '.js': 'application/javascript', '.css': 'text/css',\n '.json': 'application/json', '.png': 'image/png', '.svg': 'image/svg+xml',\n '.ico': 'image/x-icon', '.woff': 'font/woff', '.woff2': 'font/woff2',\n }\n const contentType = mimeTypes[ext] || 'application/octet-stream'\n c.header(\"Content-Type\", contentType)\n if (contentType.startsWith(\"text/html\")) {\n c.header(\"Content-Security-Policy\", DEFAULT_CSP)\n }\n return c.body(content as any)\n } catch {\n return c.json({ error: \"Not Found\" }, 404)\n }\n } else {\n const response = await proxy(`https://app.opencode.ai${path}`, {\n ...c.req,\n headers: {\n ...c.req.raw.headers,\n host: \"app.opencode.ai\",\n },\n })\n const match = response.headers.get(\"content-type\")?.includes(\"text/html\")\n ? (await response.clone().text()).match(\n /<script\\b(?![^>]*\\bsrc\\s*=)[^>]*\\bid=(['\"])oc-theme-preload-script\\1[^>]*>([\\s\\S]*?)<\\/script>/i,\n )\n : undefined\n const hash = match ? createHash(\"sha256\").update(match[2]).digest(\"base64\") : \"\"\n response.headers.set(\"Content-Security-Policy\", csp(hash))\n return response\n }\n })\n", "import { Hono, type Context } from \"hono\"\nimport { describeRoute, validator, resolver } from \"hono-openapi\"\nimport z from \"zod\"\nimport { Bus } from \"../../bus\"\nimport { Session } from \"../../session\"\nimport { TuiEvent } from \"@/cli/cmd/tui/event\"\nimport { AsyncQueue } from \"../../util/queue\"\nimport { errors } from \"../error\"\nimport { lazy } from \"../../util/lazy\"\n\nconst TuiRequest = z.object({\n path: z.string(),\n body: z.any(),\n})\n\ntype TuiRequest = z.infer<typeof TuiRequest>\n\nconst request = new AsyncQueue<TuiRequest>()\nconst response = new AsyncQueue<any>()\n\nexport async function callTui(ctx: Context) {\n const body = await ctx.req.json()\n request.push({\n path: ctx.req.path,\n body,\n })\n return response.next()\n}\n\nconst TuiControlRoutes = new Hono()\n .get(\n \"/next\",\n describeRoute({\n summary: \"Get next TUI request\",\n description: \"Retrieve the next TUI (Terminal User Interface) request from the queue for processing.\",\n operationId: \"tui.control.next\",\n responses: {\n 200: {\n description: \"Next TUI request\",\n content: {\n \"application/json\": {\n schema: resolver(TuiRequest),\n },\n },\n },\n },\n }),\n async (c) => {\n const req = await request.next()\n return c.json(req)\n },\n )\n .post(\n \"/response\",\n describeRoute({\n summary: \"Submit TUI response\",\n description: \"Submit a response to the TUI request queue to complete a pending request.\",\n operationId: \"tui.control.response\",\n responses: {\n 200: {\n description: \"Response submitted successfully\",\n content: {\n \"application/json\": {\n schema: resolver(z.boolean()),\n },\n },\n },\n },\n }),\n validator(\"json\", z.any()),\n async (c) => {\n const body = c.req.valid(\"json\")\n response.push(body)\n return c.json(true)\n },\n )\n\nexport const TuiRoutes = lazy(() =>\n new Hono()\n .post(\n \"/append-prompt\",\n describeRoute({\n summary: \"Append TUI prompt\",\n description: \"Append prompt to the TUI\",\n operationId: \"tui.appendPrompt\",\n responses: {\n 200: {\n description: \"Prompt processed successfully\",\n content: {\n \"application/json\": {\n schema: resolver(z.boolean()),\n },\n },\n },\n ...errors(400),\n },\n }),\n validator(\"json\", TuiEvent.PromptAppend.properties),\n async (c) => {\n await Bus.publish(TuiEvent.PromptAppend, c.req.valid(\"json\"))\n return c.json(true)\n },\n )\n .post(\n \"/open-help\",\n describeRoute({\n summary: \"Open help dialog\",\n description: \"Open the help dialog in the TUI to display user assistance information.\",\n operationId: \"tui.openHelp\",\n responses: {\n 200: {\n description: \"Help dialog opened successfully\",\n content: {\n \"application/json\": {\n schema: resolver(z.boolean()),\n },\n },\n },\n },\n }),\n async (c) => {\n await Bus.publish(TuiEvent.CommandExecute, {\n command: \"help.show\",\n })\n return c.json(true)\n },\n )\n .post(\n \"/open-sessions\",\n describeRoute({\n summary: \"Open sessions dialog\",\n description: \"Open the session dialog\",\n operationId: \"tui.openSessions\",\n responses: {\n 200: {\n description: \"Session dialog opened successfully\",\n content: {\n \"application/json\": {\n schema: resolver(z.boolean()),\n },\n },\n },\n },\n }),\n async (c) => {\n await Bus.publish(TuiEvent.CommandExecute, {\n command: \"session.list\",\n })\n return c.json(true)\n },\n )\n .post(\n \"/open-themes\",\n describeRoute({\n summary: \"Open themes dialog\",\n description: \"Open the theme dialog\",\n operationId: \"tui.openThemes\",\n responses: {\n 200: {\n description: \"Theme dialog opened successfully\",\n content: {\n \"application/json\": {\n schema: resolver(z.boolean()),\n },\n },\n },\n },\n }),\n async (c) => {\n await Bus.publish(TuiEvent.CommandExecute, {\n command: \"session.list\",\n })\n return c.json(true)\n },\n )\n .post(\n \"/open-models\",\n describeRoute({\n summary: \"Open models dialog\",\n description: \"Open the model dialog\",\n operationId: \"tui.openModels\",\n responses: {\n 200: {\n description: \"Model dialog opened successfully\",\n content: {\n \"application/json\": {\n schema: resolver(z.boolean()),\n },\n },\n },\n },\n }),\n async (c) => {\n await Bus.publish(TuiEvent.CommandExecute, {\n command: \"model.list\",\n })\n return c.json(true)\n },\n )\n .post(\n \"/submit-prompt\",\n describeRoute({\n summary: \"Submit TUI prompt\",\n description: \"Submit the prompt\",\n operationId: \"tui.submitPrompt\",\n responses: {\n 200: {\n description: \"Prompt submitted successfully\",\n content: {\n \"application/json\": {\n schema: resolver(z.boolean()),\n },\n },\n },\n },\n }),\n async (c) => {\n await Bus.publish(TuiEvent.CommandExecute, {\n command: \"prompt.submit\",\n })\n return c.json(true)\n },\n )\n .post(\n \"/clear-prompt\",\n describeRoute({\n summary: \"Clear TUI prompt\",\n description: \"Clear the prompt\",\n operationId: \"tui.clearPrompt\",\n responses: {\n 200: {\n description: \"Prompt cleared successfully\",\n content: {\n \"application/json\": {\n schema: resolver(z.boolean()),\n },\n },\n },\n },\n }),\n async (c) => {\n await Bus.publish(TuiEvent.CommandExecute, {\n command: \"prompt.clear\",\n })\n return c.json(true)\n },\n )\n .post(\n \"/execute-command\",\n describeRoute({\n summary: \"Execute TUI command\",\n description: \"Execute a TUI command (e.g. agent_cycle)\",\n operationId: \"tui.executeCommand\",\n responses: {\n 200: {\n description: \"Command executed successfully\",\n content: {\n \"application/json\": {\n schema: resolver(z.boolean()),\n },\n },\n },\n ...errors(400),\n },\n }),\n validator(\"json\", z.object({ command: z.string() })),\n async (c) => {\n const command = c.req.valid(\"json\").command\n await Bus.publish(TuiEvent.CommandExecute, {\n // @ts-expect-error\n command: {\n session_new: \"session.new\",\n session_share: \"session.share\",\n session_interrupt: \"session.interrupt\",\n session_compact: \"session.compact\",\n messages_page_up: \"session.page.up\",\n messages_page_down: \"session.page.down\",\n messages_line_up: \"session.line.up\",\n messages_line_down: \"session.line.down\",\n messages_half_page_up: \"session.half.page.up\",\n messages_half_page_down: \"session.half.page.down\",\n messages_first: \"session.first\",\n messages_last: \"session.last\",\n agent_cycle: \"agent.cycle\",\n }[command],\n })\n return c.json(true)\n },\n )\n .post(\n \"/show-toast\",\n describeRoute({\n summary: \"Show TUI toast\",\n description: \"Show a toast notification in the TUI\",\n operationId: \"tui.showToast\",\n responses: {\n 200: {\n description: \"Toast notification shown successfully\",\n content: {\n \"application/json\": {\n schema: resolver(z.boolean()),\n },\n },\n },\n },\n }),\n validator(\"json\", TuiEvent.ToastShow.properties),\n async (c) => {\n await Bus.publish(TuiEvent.ToastShow, c.req.valid(\"json\"))\n return c.json(true)\n },\n )\n .post(\n \"/publish\",\n describeRoute({\n summary: \"Publish TUI event\",\n description: \"Publish a TUI event\",\n operationId: \"tui.publish\",\n responses: {\n 200: {\n description: \"Event published successfully\",\n content: {\n \"application/json\": {\n schema: resolver(z.boolean()),\n },\n },\n },\n ...errors(400),\n },\n }),\n validator(\n \"json\",\n z.union(\n Object.values(TuiEvent).map((def) => {\n return z\n .object({\n type: z.literal(def.type),\n properties: def.properties,\n })\n .meta({\n ref: \"Event\" + \".\" + def.type,\n })\n }),\n ),\n ),\n async (c) => {\n const evt = c.req.valid(\"json\")\n await Bus.publish(Object.values(TuiEvent).find((def) => def.type === evt.type)!, evt.properties)\n return c.json(true)\n },\n )\n .post(\n \"/select-session\",\n describeRoute({\n summary: \"Select session\",\n description: \"Navigate the TUI to display the specified session.\",\n operationId: \"tui.selectSession\",\n responses: {\n 200: {\n description: \"Session selected successfully\",\n content: {\n \"application/json\": {\n schema: resolver(z.boolean()),\n },\n },\n },\n ...errors(400, 404),\n },\n }),\n validator(\"json\", TuiEvent.SessionSelect.properties),\n async (c) => {\n const { sessionID } = c.req.valid(\"json\")\n await Session.get(sessionID)\n await Bus.publish(TuiEvent.SessionSelect, { sessionID })\n return c.json(true)\n },\n )\n .route(\"/control\", TuiControlRoutes),\n)\n", "export class AsyncQueue<T> implements AsyncIterable<T> {\n private queue: T[] = []\n private resolvers: ((value: T) => void)[] = []\n\n push(item: T) {\n const resolve = this.resolvers.shift()\n if (resolve) resolve(item)\n else this.queue.push(item)\n }\n\n async next(): Promise<T> {\n if (this.queue.length > 0) return this.queue.shift()!\n return new Promise((resolve) => this.resolvers.push(resolve))\n }\n\n async *[Symbol.asyncIterator]() {\n while (true) yield await this.next()\n }\n}\n\nexport async function work<T>(concurrency: number, items: T[], fn: (item: T) => Promise<void>) {\n const pending = [...items]\n await Promise.all(\n Array.from({ length: concurrency }, async () => {\n while (true) {\n const item = pending.pop()\n if (item === undefined) return\n await fn(item)\n }\n }),\n )\n}\n", "import { resolver } from \"hono-openapi\"\nimport z from \"zod\"\nimport { NotFoundError } from \"../storage/db\"\n\nexport const ERRORS = {\n 400: {\n description: \"Bad request\",\n content: {\n \"application/json\": {\n schema: resolver(\n z\n .object({\n data: z.any(),\n errors: z.array(z.record(z.string(), z.any())),\n success: z.literal(false),\n })\n .meta({\n ref: \"BadRequestError\",\n }),\n ),\n },\n },\n },\n 404: {\n description: \"Not found\",\n content: {\n \"application/json\": {\n schema: resolver(NotFoundError.Schema),\n },\n },\n },\n} as const\n\nexport function errors(...codes: number[]) {\n return Object.fromEntries(codes.map((code) => [code, ERRORS[code as keyof typeof ERRORS]]))\n}\n", "import { Hono } from \"hono\"\nimport { describeRoute, validator } from \"hono-openapi\"\nimport { resolver } from \"hono-openapi\"\nimport { QuestionID } from \"@/question/schema\"\nimport { Question } from \"../../question\"\nimport z from \"zod\"\nimport { errors } from \"../error\"\nimport { lazy } from \"../../util/lazy\"\n\nexport const QuestionRoutes = lazy(() =>\n new Hono()\n .get(\n \"/\",\n describeRoute({\n summary: \"List pending questions\",\n description: \"Get all pending question requests across all sessions.\",\n operationId: \"question.list\",\n responses: {\n 200: {\n description: \"List of pending questions\",\n content: {\n \"application/json\": {\n schema: resolver(Question.Request.array()),\n },\n },\n },\n },\n }),\n async (c) => {\n const questions = await Question.list()\n return c.json(questions)\n },\n )\n .post(\n \"/:requestID/reply\",\n describeRoute({\n summary: \"Reply to question request\",\n description: \"Provide answers to a question request from the AI assistant.\",\n operationId: \"question.reply\",\n responses: {\n 200: {\n description: \"Question answered successfully\",\n content: {\n \"application/json\": {\n schema: resolver(z.boolean()),\n },\n },\n },\n ...errors(400, 404),\n },\n }),\n validator(\n \"param\",\n z.object({\n requestID: QuestionID.zod,\n }),\n ),\n validator(\"json\", Question.Reply),\n async (c) => {\n const params = c.req.valid(\"param\")\n const json = c.req.valid(\"json\")\n await Question.reply({\n requestID: params.requestID,\n answers: json.answers,\n })\n return c.json(true)\n },\n )\n .post(\n \"/:requestID/reject\",\n describeRoute({\n summary: \"Reject question request\",\n description: \"Reject a question request from the AI assistant.\",\n operationId: \"question.reject\",\n responses: {\n 200: {\n description: \"Question rejected successfully\",\n content: {\n \"application/json\": {\n schema: resolver(z.boolean()),\n },\n },\n },\n ...errors(400, 404),\n },\n }),\n validator(\n \"param\",\n z.object({\n requestID: QuestionID.zod,\n }),\n ),\n async (c) => {\n const params = c.req.valid(\"param\")\n await Question.reject(params.requestID)\n return c.json(true)\n },\n ),\n)\n", "import { Hono } from \"hono\"\nimport { describeRoute, validator, resolver } from \"hono-openapi\"\nimport z from \"zod\"\nimport { Permission } from \"@/permission\"\nimport { PermissionID } from \"@/permission/schema\"\nimport { errors } from \"../error\"\nimport { lazy } from \"../../util/lazy\"\n\nexport const PermissionRoutes = lazy(() =>\n new Hono()\n .post(\n \"/:requestID/reply\",\n describeRoute({\n summary: \"Respond to permission request\",\n description: \"Approve or deny a permission request from the AI assistant.\",\n operationId: \"permission.reply\",\n responses: {\n 200: {\n description: \"Permission processed successfully\",\n content: {\n \"application/json\": {\n schema: resolver(z.boolean()),\n },\n },\n },\n ...errors(400, 404),\n },\n }),\n validator(\n \"param\",\n z.object({\n requestID: PermissionID.zod,\n }),\n ),\n validator(\"json\", z.object({ reply: Permission.Reply, message: z.string().optional() })),\n async (c) => {\n const params = c.req.valid(\"param\")\n const json = c.req.valid(\"json\")\n await Permission.reply({\n requestID: params.requestID,\n reply: json.reply,\n message: json.message,\n })\n return c.json(true)\n },\n )\n .get(\n \"/\",\n describeRoute({\n summary: \"List pending permissions\",\n description: \"Get all pending permission requests across all sessions.\",\n operationId: \"permission.list\",\n responses: {\n 200: {\n description: \"List of pending permissions\",\n content: {\n \"application/json\": {\n schema: resolver(Permission.Request.array()),\n },\n },\n },\n },\n }),\n async (c) => {\n const permissions = await Permission.list()\n return c.json(permissions)\n },\n ),\n)\n", "import { Hono } from \"hono\"\nimport { describeRoute, validator } from \"hono-openapi\"\nimport { resolver } from \"hono-openapi\"\nimport { Instance } from \"../../project/instance\"\nimport { Project } from \"../../project/project\"\nimport z from \"zod\"\nimport { ProjectID } from \"../../project/schema\"\nimport { errors } from \"../error\"\nimport { lazy } from \"../../util/lazy\"\nimport { InstanceBootstrap } from \"../../project/bootstrap\"\n\nexport const ProjectRoutes = lazy(() =>\n new Hono()\n .get(\n \"/\",\n describeRoute({\n summary: \"List all projects\",\n description: \"Get a list of projects that have been opened with OpenCode.\",\n operationId: \"project.list\",\n responses: {\n 200: {\n description: \"List of projects\",\n content: {\n \"application/json\": {\n schema: resolver(Project.Info.array()),\n },\n },\n },\n },\n }),\n async (c) => {\n const projects = Project.list()\n return c.json(projects)\n },\n )\n .get(\n \"/current\",\n describeRoute({\n summary: \"Get current project\",\n description: \"Retrieve the currently active project that OpenCode is working with.\",\n operationId: \"project.current\",\n responses: {\n 200: {\n description: \"Current project information\",\n content: {\n \"application/json\": {\n schema: resolver(Project.Info),\n },\n },\n },\n },\n }),\n async (c) => {\n return c.json(Instance.project)\n },\n )\n .post(\n \"/git/init\",\n describeRoute({\n summary: \"Initialize git repository\",\n description: \"Create a git repository for the current project and return the refreshed project info.\",\n operationId: \"project.initGit\",\n responses: {\n 200: {\n description: \"Project information after git initialization\",\n content: {\n \"application/json\": {\n schema: resolver(Project.Info),\n },\n },\n },\n },\n }),\n async (c) => {\n const dir = Instance.directory\n const prev = Instance.project\n const next = await Project.initGit({\n directory: dir,\n project: prev,\n })\n if (next.id === prev.id && next.vcs === prev.vcs && next.worktree === prev.worktree) return c.json(next)\n await Instance.reload({\n directory: dir,\n worktree: dir,\n project: next,\n init: InstanceBootstrap,\n })\n return c.json(next)\n },\n )\n .patch(\n \"/:projectID\",\n describeRoute({\n summary: \"Update project\",\n description: \"Update project properties such as name, icon, and commands.\",\n operationId: \"project.update\",\n responses: {\n 200: {\n description: \"Updated project information\",\n content: {\n \"application/json\": {\n schema: resolver(Project.Info),\n },\n },\n },\n ...errors(400, 404),\n },\n }),\n validator(\"param\", z.object({ projectID: ProjectID.zod })),\n validator(\"json\", Project.UpdateInput.omit({ projectID: true })),\n async (c) => {\n const projectID = c.req.valid(\"param\").projectID\n const body = c.req.valid(\"json\")\n const project = await Project.update({ ...body, projectID })\n return c.json(project)\n },\n ),\n)\n", "import { Hono } from \"hono\"\nimport { stream } from \"hono/streaming\"\nimport { describeRoute, validator, resolver } from \"hono-openapi\"\nimport { SessionID, MessageID, PartID } from \"@/session/schema\"\nimport z from \"zod\"\nimport { Session } from \"../../session\"\nimport { MessageV2 } from \"../../session/message-v2\"\nimport { SessionPrompt } from \"../../session/prompt\"\nimport { SessionCompaction } from \"../../session/compaction\"\nimport { SessionRevert } from \"../../session/revert\"\nimport { SessionStatus } from \"@/session/status\"\nimport { SessionSummary } from \"@/session/summary\"\nimport { Todo } from \"../../session/todo\"\nimport { Agent } from \"../../agent/agent\"\nimport { Snapshot } from \"@/snapshot\"\nimport { Log } from \"../../util/log\"\nimport { Permission } from \"@/permission\"\nimport { PermissionID } from \"@/permission/schema\"\nimport { ModelID, ProviderID } from \"@/provider/schema\"\nimport { errors } from \"../error\"\nimport { lazy } from \"../../util/lazy\"\nimport { Bus } from \"../../bus\"\nimport { NamedError } from \"@opencode-ai/util/error\"\n\nconst log = Log.create({ service: \"server\" })\n\nexport const SessionRoutes = lazy(() =>\n new Hono()\n .get(\n \"/\",\n describeRoute({\n summary: \"List sessions\",\n description: \"Get a list of all OpenCode sessions, sorted by most recently updated.\",\n operationId: \"session.list\",\n responses: {\n 200: {\n description: \"List of sessions\",\n content: {\n \"application/json\": {\n schema: resolver(Session.Info.array()),\n },\n },\n },\n },\n }),\n validator(\n \"query\",\n z.object({\n directory: z.string().optional().meta({ description: \"Filter sessions by project directory\" }),\n roots: z.coerce.boolean().optional().meta({ description: \"Only return root sessions (no parentID)\" }),\n start: z.coerce\n .number()\n .optional()\n .meta({ description: \"Filter sessions updated on or after this timestamp (milliseconds since epoch)\" }),\n search: z.string().optional().meta({ description: \"Filter sessions by title (case-insensitive)\" }),\n limit: z.coerce.number().optional().meta({ description: \"Maximum number of sessions to return\" }),\n }),\n ),\n async (c) => {\n const query = c.req.valid(\"query\")\n const sessions: Session.Info[] = []\n for await (const session of Session.list({\n directory: query.directory,\n roots: query.roots,\n start: query.start,\n search: query.search,\n limit: query.limit,\n })) {\n sessions.push(session)\n }\n return c.json(sessions)\n },\n )\n .get(\n \"/status\",\n describeRoute({\n summary: \"Get session status\",\n description: \"Retrieve the current status of all sessions, including active, idle, and completed states.\",\n operationId: \"session.status\",\n responses: {\n 200: {\n description: \"Get session status\",\n content: {\n \"application/json\": {\n schema: resolver(z.record(z.string(), SessionStatus.Info)),\n },\n },\n },\n ...errors(400),\n },\n }),\n async (c) => {\n const result = await SessionStatus.list()\n return c.json(Object.fromEntries(result))\n },\n )\n .get(\n \"/:sessionID\",\n describeRoute({\n summary: \"Get session\",\n description: \"Retrieve detailed information about a specific OpenCode session.\",\n tags: [\"Session\"],\n operationId: \"session.get\",\n responses: {\n 200: {\n description: \"Get session\",\n content: {\n \"application/json\": {\n schema: resolver(Session.Info),\n },\n },\n },\n ...errors(400, 404),\n },\n }),\n validator(\n \"param\",\n z.object({\n sessionID: Session.get.schema,\n }),\n ),\n async (c) => {\n const sessionID = c.req.valid(\"param\").sessionID\n log.info(\"SEARCH\", { url: c.req.url })\n const session = await Session.get(sessionID)\n return c.json(session)\n },\n )\n .get(\n \"/:sessionID/children\",\n describeRoute({\n summary: \"Get session children\",\n tags: [\"Session\"],\n description: \"Retrieve all child sessions that were forked from the specified parent session.\",\n operationId: \"session.children\",\n responses: {\n 200: {\n description: \"List of children\",\n content: {\n \"application/json\": {\n schema: resolver(Session.Info.array()),\n },\n },\n },\n ...errors(400, 404),\n },\n }),\n validator(\n \"param\",\n z.object({\n sessionID: Session.children.schema,\n }),\n ),\n async (c) => {\n const sessionID = c.req.valid(\"param\").sessionID\n const session = await Session.children(sessionID)\n return c.json(session)\n },\n )\n .get(\n \"/:sessionID/todo\",\n describeRoute({\n summary: \"Get session todos\",\n description: \"Retrieve the todo list associated with a specific session, showing tasks and action items.\",\n operationId: \"session.todo\",\n responses: {\n 200: {\n description: \"Todo list\",\n content: {\n \"application/json\": {\n schema: resolver(Todo.Info.array()),\n },\n },\n },\n ...errors(400, 404),\n },\n }),\n validator(\n \"param\",\n z.object({\n sessionID: SessionID.zod,\n }),\n ),\n async (c) => {\n const sessionID = c.req.valid(\"param\").sessionID\n const todos = await Todo.get(sessionID)\n return c.json(todos)\n },\n )\n .post(\n \"/\",\n describeRoute({\n summary: \"Create session\",\n description: \"Create a new OpenCode session for interacting with AI assistants and managing conversations.\",\n operationId: \"session.create\",\n responses: {\n ...errors(400),\n 200: {\n description: \"Successfully created session\",\n content: {\n \"application/json\": {\n schema: resolver(Session.Info),\n },\n },\n },\n },\n }),\n validator(\"json\", Session.create.schema.optional()),\n async (c) => {\n const body = c.req.valid(\"json\") ?? {}\n const session = await Session.create(body)\n return c.json(session)\n },\n )\n .delete(\n \"/:sessionID\",\n describeRoute({\n summary: \"Delete session\",\n description: \"Delete a session and permanently remove all associated data, including messages and history.\",\n operationId: \"session.delete\",\n responses: {\n 200: {\n description: \"Successfully deleted session\",\n content: {\n \"application/json\": {\n schema: resolver(z.boolean()),\n },\n },\n },\n ...errors(400, 404),\n },\n }),\n validator(\n \"param\",\n z.object({\n sessionID: Session.remove.schema,\n }),\n ),\n async (c) => {\n const sessionID = c.req.valid(\"param\").sessionID\n await Session.remove(sessionID)\n return c.json(true)\n },\n )\n .patch(\n \"/:sessionID\",\n describeRoute({\n summary: \"Update session\",\n description: \"Update properties of an existing session, such as title or other metadata.\",\n operationId: \"session.update\",\n responses: {\n 200: {\n description: \"Successfully updated session\",\n content: {\n \"application/json\": {\n schema: resolver(Session.Info),\n },\n },\n },\n ...errors(400, 404),\n },\n }),\n validator(\n \"param\",\n z.object({\n sessionID: SessionID.zod,\n }),\n ),\n validator(\n \"json\",\n z.object({\n title: z.string().optional(),\n time: z\n .object({\n archived: z.number().optional(),\n })\n .optional(),\n }),\n ),\n async (c) => {\n const sessionID = c.req.valid(\"param\").sessionID\n const updates = c.req.valid(\"json\")\n\n if (updates.title !== undefined) {\n await Session.setTitle({ sessionID, title: updates.title })\n }\n if (updates.time?.archived !== undefined) {\n await Session.setArchived({ sessionID, time: updates.time.archived })\n }\n\n const session = await Session.get(sessionID)\n return c.json(session)\n },\n )\n .post(\n \"/:sessionID/init\",\n describeRoute({\n summary: \"Initialize session\",\n description:\n \"Analyze the current application and create an AGENTS.md file with project-specific agent configurations.\",\n operationId: \"session.init\",\n responses: {\n 200: {\n description: \"200\",\n content: {\n \"application/json\": {\n schema: resolver(z.boolean()),\n },\n },\n },\n ...errors(400, 404),\n },\n }),\n validator(\n \"param\",\n z.object({\n sessionID: SessionID.zod,\n }),\n ),\n validator(\"json\", Session.initialize.schema.omit({ sessionID: true })),\n async (c) => {\n const sessionID = c.req.valid(\"param\").sessionID\n const body = c.req.valid(\"json\")\n await Session.initialize({ ...body, sessionID })\n return c.json(true)\n },\n )\n .post(\n \"/:sessionID/fork\",\n describeRoute({\n summary: \"Fork session\",\n description: \"Create a new session by forking an existing session at a specific message point.\",\n operationId: \"session.fork\",\n responses: {\n 200: {\n description: \"200\",\n content: {\n \"application/json\": {\n schema: resolver(Session.Info),\n },\n },\n },\n },\n }),\n validator(\n \"param\",\n z.object({\n sessionID: Session.fork.schema.shape.sessionID,\n }),\n ),\n validator(\"json\", Session.fork.schema.omit({ sessionID: true })),\n async (c) => {\n const sessionID = c.req.valid(\"param\").sessionID\n const body = c.req.valid(\"json\")\n const result = await Session.fork({ ...body, sessionID })\n return c.json(result)\n },\n )\n .post(\n \"/:sessionID/abort\",\n describeRoute({\n summary: \"Abort session\",\n description: \"Abort an active session and stop any ongoing AI processing or command execution.\",\n operationId: \"session.abort\",\n responses: {\n 200: {\n description: \"Aborted session\",\n content: {\n \"application/json\": {\n schema: resolver(z.boolean()),\n },\n },\n },\n ...errors(400, 404),\n },\n }),\n validator(\n \"param\",\n z.object({\n sessionID: SessionID.zod,\n }),\n ),\n async (c) => {\n await SessionPrompt.cancel(c.req.valid(\"param\").sessionID)\n return c.json(true)\n },\n )\n .post(\n \"/:sessionID/share\",\n describeRoute({\n summary: \"Share session\",\n description: \"Create a shareable link for a session, allowing others to view the conversation.\",\n operationId: \"session.share\",\n responses: {\n 200: {\n description: \"Successfully shared session\",\n content: {\n \"application/json\": {\n schema: resolver(Session.Info),\n },\n },\n },\n ...errors(400, 404),\n },\n }),\n validator(\n \"param\",\n z.object({\n sessionID: SessionID.zod,\n }),\n ),\n async (c) => {\n const sessionID = c.req.valid(\"param\").sessionID\n await Session.share(sessionID)\n const session = await Session.get(sessionID)\n return c.json(session)\n },\n )\n .get(\n \"/:sessionID/diff\",\n describeRoute({\n summary: \"Get message diff\",\n description: \"Get the file changes (diff) that resulted from a specific user message in the session.\",\n operationId: \"session.diff\",\n responses: {\n 200: {\n description: \"Successfully retrieved diff\",\n content: {\n \"application/json\": {\n schema: resolver(Snapshot.FileDiff.array()),\n },\n },\n },\n },\n }),\n validator(\n \"param\",\n z.object({\n sessionID: SessionSummary.DiffInput.shape.sessionID,\n }),\n ),\n validator(\n \"query\",\n z.object({\n messageID: SessionSummary.DiffInput.shape.messageID,\n }),\n ),\n async (c) => {\n const query = c.req.valid(\"query\")\n const params = c.req.valid(\"param\")\n const result = await SessionSummary.diff({\n sessionID: params.sessionID,\n messageID: query.messageID,\n })\n return c.json(result)\n },\n )\n .delete(\n \"/:sessionID/share\",\n describeRoute({\n summary: \"Unshare session\",\n description: \"Remove the shareable link for a session, making it private again.\",\n operationId: \"session.unshare\",\n responses: {\n 200: {\n description: \"Successfully unshared session\",\n content: {\n \"application/json\": {\n schema: resolver(Session.Info),\n },\n },\n },\n ...errors(400, 404),\n },\n }),\n validator(\n \"param\",\n z.object({\n sessionID: Session.unshare.schema,\n }),\n ),\n async (c) => {\n const sessionID = c.req.valid(\"param\").sessionID\n await Session.unshare(sessionID)\n const session = await Session.get(sessionID)\n return c.json(session)\n },\n )\n .post(\n \"/:sessionID/summarize\",\n describeRoute({\n summary: \"Summarize session\",\n description: \"Generate a concise summary of the session using AI compaction to preserve key information.\",\n operationId: \"session.summarize\",\n responses: {\n 200: {\n description: \"Summarized session\",\n content: {\n \"application/json\": {\n schema: resolver(z.boolean()),\n },\n },\n },\n ...errors(400, 404),\n },\n }),\n validator(\n \"param\",\n z.object({\n sessionID: SessionID.zod,\n }),\n ),\n validator(\n \"json\",\n z.object({\n providerID: ProviderID.zod,\n modelID: ModelID.zod,\n auto: z.boolean().optional().default(false),\n }),\n ),\n async (c) => {\n const sessionID = c.req.valid(\"param\").sessionID\n const body = c.req.valid(\"json\")\n const session = await Session.get(sessionID)\n await SessionRevert.cleanup(session)\n const msgs = await Session.messages({ sessionID })\n let currentAgent = await Agent.defaultAgent()\n for (let i = msgs.length - 1; i >= 0; i--) {\n const info = msgs[i].info\n if (info.role === \"user\") {\n currentAgent = info.agent || (await Agent.defaultAgent())\n break\n }\n }\n await SessionCompaction.create({\n sessionID,\n agent: currentAgent,\n model: {\n providerID: body.providerID,\n modelID: body.modelID,\n },\n auto: body.auto,\n })\n await SessionPrompt.loop({ sessionID })\n return c.json(true)\n },\n )\n .get(\n \"/:sessionID/message\",\n describeRoute({\n summary: \"Get session messages\",\n description: \"Retrieve all messages in a session, including user prompts and AI responses.\",\n operationId: \"session.messages\",\n responses: {\n 200: {\n description: \"List of messages\",\n content: {\n \"application/json\": {\n schema: resolver(MessageV2.WithParts.array()),\n },\n },\n },\n ...errors(400, 404),\n },\n }),\n validator(\n \"param\",\n z.object({\n sessionID: SessionID.zod,\n }),\n ),\n validator(\n \"query\",\n z\n .object({\n limit: z.coerce\n .number()\n .int()\n .min(0)\n .optional()\n .meta({ description: \"Maximum number of messages to return\" }),\n before: z\n .string()\n .optional()\n .meta({ description: \"Opaque cursor for loading older messages\" })\n .refine(\n (value) => {\n if (!value) return true\n try {\n MessageV2.cursor.decode(value)\n return true\n } catch {\n return false\n }\n },\n { message: \"Invalid cursor\" },\n ),\n })\n .refine((value) => !value.before || value.limit !== undefined, {\n message: \"before requires limit\",\n path: [\"before\"],\n }),\n ),\n async (c) => {\n const query = c.req.valid(\"query\")\n const sessionID = c.req.valid(\"param\").sessionID\n if (query.limit === undefined) {\n await Session.get(sessionID)\n const messages = await Session.messages({ sessionID })\n return c.json(messages)\n }\n\n if (query.limit === 0) {\n await Session.get(sessionID)\n const messages = await Session.messages({ sessionID })\n return c.json(messages)\n }\n\n const page = await MessageV2.page({\n sessionID,\n limit: query.limit,\n before: query.before,\n })\n if (page.cursor) {\n const url = new URL(c.req.url)\n url.searchParams.set(\"limit\", query.limit.toString())\n url.searchParams.set(\"before\", page.cursor)\n c.header(\"Access-Control-Expose-Headers\", \"Link, X-Next-Cursor\")\n c.header(\"Link\", `<${url.toString()}>; rel=\\\"next\\\"`)\n c.header(\"X-Next-Cursor\", page.cursor)\n }\n return c.json(page.items)\n },\n )\n .get(\n \"/:sessionID/message/:messageID\",\n describeRoute({\n summary: \"Get message\",\n description: \"Retrieve a specific message from a session by its message ID.\",\n operationId: \"session.message\",\n responses: {\n 200: {\n description: \"Message\",\n content: {\n \"application/json\": {\n schema: resolver(\n z.object({\n info: MessageV2.Info,\n parts: MessageV2.Part.array(),\n }),\n ),\n },\n },\n },\n ...errors(400, 404),\n },\n }),\n validator(\n \"param\",\n z.object({\n sessionID: SessionID.zod,\n messageID: MessageID.zod,\n }),\n ),\n async (c) => {\n const params = c.req.valid(\"param\")\n const message = await MessageV2.get({\n sessionID: params.sessionID,\n messageID: params.messageID,\n })\n return c.json(message)\n },\n )\n .delete(\n \"/:sessionID/message/:messageID\",\n describeRoute({\n summary: \"Delete message\",\n description:\n \"Permanently delete a specific message (and all of its parts) from a session. This does not revert any file changes that may have been made while processing the message.\",\n operationId: \"session.deleteMessage\",\n responses: {\n 200: {\n description: \"Successfully deleted message\",\n content: {\n \"application/json\": {\n schema: resolver(z.boolean()),\n },\n },\n },\n ...errors(400, 404),\n },\n }),\n validator(\n \"param\",\n z.object({\n sessionID: SessionID.zod,\n messageID: MessageID.zod,\n }),\n ),\n async (c) => {\n const params = c.req.valid(\"param\")\n await SessionPrompt.assertNotBusy(params.sessionID)\n await Session.removeMessage({\n sessionID: params.sessionID,\n messageID: params.messageID,\n })\n return c.json(true)\n },\n )\n .delete(\n \"/:sessionID/message/:messageID/part/:partID\",\n describeRoute({\n description: \"Delete a part from a message\",\n operationId: \"part.delete\",\n responses: {\n 200: {\n description: \"Successfully deleted part\",\n content: {\n \"application/json\": {\n schema: resolver(z.boolean()),\n },\n },\n },\n ...errors(400, 404),\n },\n }),\n validator(\n \"param\",\n z.object({\n sessionID: SessionID.zod,\n messageID: MessageID.zod,\n partID: PartID.zod,\n }),\n ),\n async (c) => {\n const params = c.req.valid(\"param\")\n await Session.removePart({\n sessionID: params.sessionID,\n messageID: params.messageID,\n partID: params.partID,\n })\n return c.json(true)\n },\n )\n .patch(\n \"/:sessionID/message/:messageID/part/:partID\",\n describeRoute({\n description: \"Update a part in a message\",\n operationId: \"part.update\",\n responses: {\n 200: {\n description: \"Successfully updated part\",\n content: {\n \"application/json\": {\n schema: resolver(MessageV2.Part),\n },\n },\n },\n ...errors(400, 404),\n },\n }),\n validator(\n \"param\",\n z.object({\n sessionID: SessionID.zod,\n messageID: MessageID.zod,\n partID: PartID.zod,\n }),\n ),\n validator(\"json\", MessageV2.Part),\n async (c) => {\n const params = c.req.valid(\"param\")\n const body = c.req.valid(\"json\")\n if (body.id !== params.partID || body.messageID !== params.messageID || body.sessionID !== params.sessionID) {\n throw new Error(\n `Part mismatch: body.id='${body.id}' vs partID='${params.partID}', body.messageID='${body.messageID}' vs messageID='${params.messageID}', body.sessionID='${body.sessionID}' vs sessionID='${params.sessionID}'`,\n )\n }\n const part = await Session.updatePart(body)\n return c.json(part)\n },\n )\n .post(\n \"/:sessionID/message\",\n describeRoute({\n summary: \"Send message\",\n description: \"Create and send a new message to a session, streaming the AI response.\",\n operationId: \"session.prompt\",\n responses: {\n 200: {\n description: \"Created message\",\n content: {\n \"application/json\": {\n schema: resolver(\n z.object({\n info: MessageV2.Assistant,\n parts: MessageV2.Part.array(),\n }),\n ),\n },\n },\n },\n ...errors(400, 404),\n },\n }),\n validator(\n \"param\",\n z.object({\n sessionID: SessionID.zod,\n }),\n ),\n validator(\"json\", SessionPrompt.PromptInput.omit({ sessionID: true })),\n async (c) => {\n c.status(200)\n c.header(\"Content-Type\", \"application/json\")\n return stream(c, async (stream) => {\n const sessionID = c.req.valid(\"param\").sessionID\n const body = c.req.valid(\"json\")\n const msg = await SessionPrompt.prompt({ ...body, sessionID })\n stream.write(JSON.stringify(msg))\n })\n },\n )\n .post(\n \"/:sessionID/prompt_async\",\n describeRoute({\n summary: \"Send async message\",\n description:\n \"Create and send a new message to a session asynchronously, starting the session if needed and returning immediately.\",\n operationId: \"session.prompt_async\",\n responses: {\n 202: {\n description: \"Prompt accepted\",\n },\n ...errors(400, 404),\n },\n }),\n validator(\n \"param\",\n z.object({\n sessionID: SessionID.zod,\n }),\n ),\n validator(\"json\", SessionPrompt.PromptInput.omit({ sessionID: true })),\n async (c) => {\n c.status(202)\n return stream(c, async () => {\n const sessionID = c.req.valid(\"param\").sessionID\n const body = c.req.valid(\"json\")\n SessionPrompt.prompt({ ...body, sessionID }).catch((err) => {\n log.error(\"prompt_async failed\", { sessionID, error: err })\n Bus.publish(Session.Event.Error, {\n sessionID,\n error: new NamedError.Unknown({ message: err instanceof Error ? err.message : String(err) }).toObject(),\n })\n })\n })\n },\n )\n .post(\n \"/:sessionID/command\",\n describeRoute({\n summary: \"Send command\",\n description: \"Send a new command to a session for execution by the AI assistant.\",\n operationId: \"session.command\",\n responses: {\n 200: {\n description: \"Created message\",\n content: {\n \"application/json\": {\n schema: resolver(\n z.object({\n info: MessageV2.Assistant,\n parts: MessageV2.Part.array(),\n }),\n ),\n },\n },\n },\n ...errors(400, 404),\n },\n }),\n validator(\n \"param\",\n z.object({\n sessionID: SessionID.zod,\n }),\n ),\n validator(\"json\", SessionPrompt.CommandInput.omit({ sessionID: true })),\n async (c) => {\n const sessionID = c.req.valid(\"param\").sessionID\n const body = c.req.valid(\"json\")\n const msg = await SessionPrompt.command({ ...body, sessionID })\n return c.json(msg)\n },\n )\n .post(\n \"/:sessionID/shell\",\n describeRoute({\n summary: \"Run shell command\",\n description: \"Execute a shell command within the session context and return the AI's response.\",\n operationId: \"session.shell\",\n responses: {\n 200: {\n description: \"Created message\",\n content: {\n \"application/json\": {\n schema: resolver(MessageV2.Assistant),\n },\n },\n },\n ...errors(400, 404),\n },\n }),\n validator(\n \"param\",\n z.object({\n sessionID: SessionID.zod,\n }),\n ),\n validator(\"json\", SessionPrompt.ShellInput.omit({ sessionID: true })),\n async (c) => {\n const sessionID = c.req.valid(\"param\").sessionID\n const body = c.req.valid(\"json\")\n const msg = await SessionPrompt.shell({ ...body, sessionID })\n return c.json(msg)\n },\n )\n .post(\n \"/:sessionID/revert\",\n describeRoute({\n summary: \"Revert message\",\n description: \"Revert a specific message in a session, undoing its effects and restoring the previous state.\",\n operationId: \"session.revert\",\n responses: {\n 200: {\n description: \"Updated session\",\n content: {\n \"application/json\": {\n schema: resolver(Session.Info),\n },\n },\n },\n ...errors(400, 404),\n },\n }),\n validator(\n \"param\",\n z.object({\n sessionID: SessionID.zod,\n }),\n ),\n validator(\"json\", SessionRevert.RevertInput.omit({ sessionID: true })),\n async (c) => {\n const sessionID = c.req.valid(\"param\").sessionID\n log.info(\"revert\", c.req.valid(\"json\"))\n const session = await SessionRevert.revert({\n sessionID,\n ...c.req.valid(\"json\"),\n })\n return c.json(session)\n },\n )\n .post(\n \"/:sessionID/unrevert\",\n describeRoute({\n summary: \"Restore reverted messages\",\n description: \"Restore all previously reverted messages in a session.\",\n operationId: \"session.unrevert\",\n responses: {\n 200: {\n description: \"Updated session\",\n content: {\n \"application/json\": {\n schema: resolver(Session.Info),\n },\n },\n },\n ...errors(400, 404),\n },\n }),\n validator(\n \"param\",\n z.object({\n sessionID: SessionID.zod,\n }),\n ),\n async (c) => {\n const sessionID = c.req.valid(\"param\").sessionID\n const session = await SessionRevert.unrevert({ sessionID })\n return c.json(session)\n },\n )\n .post(\n \"/:sessionID/permissions/:permissionID\",\n describeRoute({\n summary: \"Respond to permission\",\n deprecated: true,\n description: \"Approve or deny a permission request from the AI assistant.\",\n operationId: \"permission.respond\",\n responses: {\n 200: {\n description: \"Permission processed successfully\",\n content: {\n \"application/json\": {\n schema: resolver(z.boolean()),\n },\n },\n },\n ...errors(400, 404),\n },\n }),\n validator(\n \"param\",\n z.object({\n sessionID: SessionID.zod,\n permissionID: PermissionID.zod,\n }),\n ),\n validator(\"json\", z.object({ response: Permission.Reply })),\n async (c) => {\n const params = c.req.valid(\"param\")\n Permission.reply({\n requestID: params.permissionID,\n reply: c.req.valid(\"json\").response,\n })\n return c.json(true)\n },\n ),\n)\n", "import { Hono, type MiddlewareHandler } from \"hono\"\nimport { describeRoute, validator, resolver } from \"hono-openapi\"\nimport type { UpgradeWebSocket } from \"hono/ws\"\nimport z from \"zod\"\nimport { Pty } from \"@/pty\"\nimport { PtyID } from \"@/pty/schema\"\nimport { NotFoundError } from \"../../storage/db\"\nimport { errors } from \"../error\"\n\nexport function PtyRoutes(upgradeWebSocket: UpgradeWebSocket) {\n return new Hono()\n .get(\n \"/\",\n describeRoute({\n summary: \"List PTY sessions\",\n description: \"Get a list of all active pseudo-terminal (PTY) sessions managed by OpenCode.\",\n operationId: \"pty.list\",\n responses: {\n 200: {\n description: \"List of sessions\",\n content: {\n \"application/json\": {\n schema: resolver(Pty.Info.array()),\n },\n },\n },\n },\n }),\n async (c) => {\n return c.json(await Pty.list())\n },\n )\n .post(\n \"/\",\n describeRoute({\n summary: \"Create PTY session\",\n description: \"Create a new pseudo-terminal (PTY) session for running shell commands and processes.\",\n operationId: \"pty.create\",\n responses: {\n 200: {\n description: \"Created session\",\n content: {\n \"application/json\": {\n schema: resolver(Pty.Info),\n },\n },\n },\n ...errors(400),\n },\n }),\n validator(\"json\", Pty.CreateInput),\n async (c) => {\n const info = await Pty.create(c.req.valid(\"json\"))\n return c.json(info)\n },\n )\n .get(\n \"/:ptyID\",\n describeRoute({\n summary: \"Get PTY session\",\n description: \"Retrieve detailed information about a specific pseudo-terminal (PTY) session.\",\n operationId: \"pty.get\",\n responses: {\n 200: {\n description: \"Session info\",\n content: {\n \"application/json\": {\n schema: resolver(Pty.Info),\n },\n },\n },\n ...errors(404),\n },\n }),\n validator(\"param\", z.object({ ptyID: PtyID.zod })),\n async (c) => {\n const info = await Pty.get(c.req.valid(\"param\").ptyID)\n if (!info) {\n throw new NotFoundError({ message: \"Session not found\" })\n }\n return c.json(info)\n },\n )\n .put(\n \"/:ptyID\",\n describeRoute({\n summary: \"Update PTY session\",\n description: \"Update properties of an existing pseudo-terminal (PTY) session.\",\n operationId: \"pty.update\",\n responses: {\n 200: {\n description: \"Updated session\",\n content: {\n \"application/json\": {\n schema: resolver(Pty.Info),\n },\n },\n },\n ...errors(400),\n },\n }),\n validator(\"param\", z.object({ ptyID: PtyID.zod })),\n validator(\"json\", Pty.UpdateInput),\n async (c) => {\n const info = await Pty.update(c.req.valid(\"param\").ptyID, c.req.valid(\"json\"))\n return c.json(info)\n },\n )\n .delete(\n \"/:ptyID\",\n describeRoute({\n summary: \"Remove PTY session\",\n description: \"Remove and terminate a specific pseudo-terminal (PTY) session.\",\n operationId: \"pty.remove\",\n responses: {\n 200: {\n description: \"Session removed\",\n content: {\n \"application/json\": {\n schema: resolver(z.boolean()),\n },\n },\n },\n ...errors(404),\n },\n }),\n validator(\"param\", z.object({ ptyID: PtyID.zod })),\n async (c) => {\n await Pty.remove(c.req.valid(\"param\").ptyID)\n return c.json(true)\n },\n )\n .get(\n \"/:ptyID/connect\",\n describeRoute({\n summary: \"Connect to PTY session\",\n description: \"Establish a WebSocket connection to interact with a pseudo-terminal (PTY) session in real-time.\",\n operationId: \"pty.connect\",\n responses: {\n 200: {\n description: \"Connected session\",\n content: {\n \"application/json\": {\n schema: resolver(z.boolean()),\n },\n },\n },\n ...errors(404),\n },\n }),\n validator(\"param\", z.object({ ptyID: PtyID.zod })),\n upgradeWebSocket(async (c) => {\n const id = PtyID.zod.parse(c.req.param(\"ptyID\"))\n const cursor = (() => {\n const value = c.req.query(\"cursor\")\n if (!value) return\n const parsed = Number(value)\n if (!Number.isSafeInteger(parsed) || parsed < -1) return\n return parsed\n })()\n let handler: Awaited<ReturnType<typeof Pty.connect>>\n if (!(await Pty.get(id))) throw new Error(\"Session not found\")\n\n type Socket = {\n readyState: number\n send: (data: string | Uint8Array | ArrayBuffer) => void\n close: (code?: number, reason?: string) => void\n }\n\n const isSocket = (value: unknown): value is Socket => {\n if (!value || typeof value !== \"object\") return false\n if (!(\"readyState\" in value)) return false\n if (!(\"send\" in value) || typeof (value as { send?: unknown }).send !== \"function\") return false\n if (!(\"close\" in value) || typeof (value as { close?: unknown }).close !== \"function\") return false\n return typeof (value as { readyState?: unknown }).readyState === \"number\"\n }\n\n const pending: string[] = []\n let ready = false\n\n return {\n async onOpen(_event, ws) {\n const socket = ws.raw\n if (!isSocket(socket)) {\n ws.close()\n return\n }\n handler = await Pty.connect(id, socket, cursor)\n ready = true\n for (const msg of pending) handler?.onMessage(msg)\n pending.length = 0\n },\n onMessage(event) {\n if (typeof event.data !== \"string\") return\n if (!ready) {\n pending.push(event.data)\n return\n }\n handler?.onMessage(event.data)\n },\n onClose() {\n handler?.onClose()\n },\n onError() {\n handler?.onClose()\n },\n }\n }),\n )\n}\n", "import { BusEvent } from \"@/bus/bus-event\"\nimport { Bus } from \"@/bus\"\nimport { InstanceState } from \"@/effect/instance-state\"\nimport { makeRuntime } from \"@/effect/run-service\"\nimport { Instance } from \"@/project/instance\"\nimport type { Proc } from \"#pty\"\nimport z from \"zod\"\nimport { Log } from \"../util/log\"\nimport { lazy } from \"@opencode-ai/util/lazy\"\nimport { Shell } from \"@/shell/shell\"\nimport { Plugin } from \"@/plugin\"\nimport { PtyID } from \"./schema\"\nimport { Effect, Layer, ServiceMap } from \"effect\"\n\nexport namespace Pty {\n const log = Log.create({ service: \"pty\" })\n\n const BUFFER_LIMIT = 1024 * 1024 * 2\n const BUFFER_CHUNK = 64 * 1024\n const encoder = new TextEncoder()\n\n type Socket = {\n readyState: number\n data?: unknown\n send: (data: string | Uint8Array | ArrayBuffer) => void\n close: (code?: number, reason?: string) => void\n }\n\n const sock = (ws: Socket) => (ws.data && typeof ws.data === \"object\" ? ws.data : ws)\n\n type Active = {\n info: Info\n process: Proc\n buffer: string\n bufferCursor: number\n cursor: number\n subscribers: Map<unknown, Socket>\n }\n\n type State = {\n dir: string\n sessions: Map<PtyID, Active>\n }\n\n // WebSocket control frame: 0x00 + UTF-8 JSON.\n const meta = (cursor: number) => {\n const json = JSON.stringify({ cursor })\n const bytes = encoder.encode(json)\n const out = new Uint8Array(bytes.length + 1)\n out[0] = 0\n out.set(bytes, 1)\n return out\n }\n\n const pty = lazy(() => import(\"#pty\"))\n\n export const Info = z\n .object({\n id: PtyID.zod,\n title: z.string(),\n command: z.string(),\n args: z.array(z.string()),\n cwd: z.string(),\n status: z.enum([\"running\", \"exited\"]),\n pid: z.number(),\n })\n .meta({ ref: \"Pty\" })\n\n export type Info = z.infer<typeof Info>\n\n export const CreateInput = z.object({\n command: z.string().optional(),\n args: z.array(z.string()).optional(),\n cwd: z.string().optional(),\n title: z.string().optional(),\n env: z.record(z.string(), z.string()).optional(),\n })\n\n export type CreateInput = z.infer<typeof CreateInput>\n\n export const UpdateInput = z.object({\n title: z.string().optional(),\n size: z\n .object({\n rows: z.number(),\n cols: z.number(),\n })\n .optional(),\n })\n\n export type UpdateInput = z.infer<typeof UpdateInput>\n\n export const Event = {\n Created: BusEvent.define(\"pty.created\", z.object({ info: Info })),\n Updated: BusEvent.define(\"pty.updated\", z.object({ info: Info })),\n Exited: BusEvent.define(\"pty.exited\", z.object({ id: PtyID.zod, exitCode: z.number() })),\n Deleted: BusEvent.define(\"pty.deleted\", z.object({ id: PtyID.zod })),\n }\n\n export interface Interface {\n readonly list: () => Effect.Effect<Info[]>\n readonly get: (id: PtyID) => Effect.Effect<Info | undefined>\n readonly create: (input: CreateInput) => Effect.Effect<Info>\n readonly update: (id: PtyID, input: UpdateInput) => Effect.Effect<Info | undefined>\n readonly remove: (id: PtyID) => Effect.Effect<void>\n readonly resize: (id: PtyID, cols: number, rows: number) => Effect.Effect<void>\n readonly write: (id: PtyID, data: string) => Effect.Effect<void>\n readonly connect: (\n id: PtyID,\n ws: Socket,\n cursor?: number,\n ) => Effect.Effect<{ onMessage: (message: string | ArrayBuffer) => void; onClose: () => void } | undefined>\n }\n\n export class Service extends ServiceMap.Service<Service, Interface>()(\"@opencode/Pty\") {}\n\n export const layer = Layer.effect(\n Service,\n Effect.gen(function* () {\n const bus = yield* Bus.Service\n const plugin = yield* Plugin.Service\n function teardown(session: Active) {\n try {\n session.process.kill()\n } catch {}\n for (const [sub, ws] of session.subscribers.entries()) {\n try {\n if (sock(ws) === sub) ws.close()\n } catch {}\n }\n session.subscribers.clear()\n }\n\n const state = yield* InstanceState.make<State>(\n Effect.fn(\"Pty.state\")(function* (ctx) {\n const state = {\n dir: ctx.directory,\n sessions: new Map<PtyID, Active>(),\n }\n\n yield* Effect.addFinalizer(() =>\n Effect.sync(() => {\n for (const session of state.sessions.values()) {\n teardown(session)\n }\n state.sessions.clear()\n }),\n )\n\n return state\n }),\n )\n\n const remove = Effect.fn(\"Pty.remove\")(function* (id: PtyID) {\n const s = yield* InstanceState.get(state)\n const session = s.sessions.get(id)\n if (!session) return\n s.sessions.delete(id)\n log.info(\"removing session\", { id })\n teardown(session)\n yield* bus.publish(Event.Deleted, { id: session.info.id })\n })\n\n const list = Effect.fn(\"Pty.list\")(function* () {\n const s = yield* InstanceState.get(state)\n return Array.from(s.sessions.values()).map((session) => session.info)\n })\n\n const get = Effect.fn(\"Pty.get\")(function* (id: PtyID) {\n const s = yield* InstanceState.get(state)\n return s.sessions.get(id)?.info\n })\n\n const create = Effect.fn(\"Pty.create\")(function* (input: CreateInput) {\n const s = yield* InstanceState.get(state)\n const id = PtyID.ascending()\n const command = input.command || Shell.preferred()\n const args = input.args || []\n if (Shell.login(command)) {\n args.push(\"-l\")\n }\n\n const cwd = input.cwd || s.dir\n const shell = yield* plugin.trigger(\"shell.env\", { cwd }, { env: {} })\n const env = {\n ...process.env,\n ...input.env,\n ...shell.env,\n TERM: \"xterm-256color\",\n OPENCODE_TERMINAL: \"1\",\n } as Record<string, string>\n\n if (process.platform === \"win32\") {\n env.LC_ALL = \"C.UTF-8\"\n env.LC_CTYPE = \"C.UTF-8\"\n env.LANG = \"C.UTF-8\"\n }\n log.info(\"creating session\", { id, cmd: command, args, cwd })\n\n const { spawn } = yield* Effect.promise(() => pty())\n const proc = yield* Effect.sync(() =>\n spawn(command, args, {\n name: \"xterm-256color\",\n cwd,\n env,\n }),\n )\n\n const info = {\n id,\n title: input.title || `Terminal ${id.slice(-4)}`,\n command,\n args,\n cwd,\n status: \"running\",\n pid: proc.pid,\n } as const\n const session: Active = {\n info,\n process: proc,\n buffer: \"\",\n bufferCursor: 0,\n cursor: 0,\n subscribers: new Map(),\n }\n s.sessions.set(id, session)\n proc.onData(\n Instance.bind((chunk) => {\n session.cursor += chunk.length\n\n for (const [key, ws] of session.subscribers.entries()) {\n if (ws.readyState !== 1) {\n session.subscribers.delete(key)\n continue\n }\n if (sock(ws) !== key) {\n session.subscribers.delete(key)\n continue\n }\n try {\n ws.send(chunk)\n } catch {\n session.subscribers.delete(key)\n }\n }\n\n session.buffer += chunk\n if (session.buffer.length <= BUFFER_LIMIT) return\n const excess = session.buffer.length - BUFFER_LIMIT\n session.buffer = session.buffer.slice(excess)\n session.bufferCursor += excess\n }),\n )\n proc.onExit(\n Instance.bind(({ exitCode }) => {\n if (session.info.status === \"exited\") return\n log.info(\"session exited\", { id, exitCode })\n session.info.status = \"exited\"\n Effect.runFork(bus.publish(Event.Exited, { id, exitCode }))\n Effect.runFork(remove(id))\n }),\n )\n yield* bus.publish(Event.Created, { info })\n return info\n })\n\n const update = Effect.fn(\"Pty.update\")(function* (id: PtyID, input: UpdateInput) {\n const s = yield* InstanceState.get(state)\n const session = s.sessions.get(id)\n if (!session) return\n if (input.title) {\n session.info.title = input.title\n }\n if (input.size) {\n session.process.resize(input.size.cols, input.size.rows)\n }\n yield* bus.publish(Event.Updated, { info: session.info })\n return session.info\n })\n\n const resize = Effect.fn(\"Pty.resize\")(function* (id: PtyID, cols: number, rows: number) {\n const s = yield* InstanceState.get(state)\n const session = s.sessions.get(id)\n if (session && session.info.status === \"running\") {\n session.process.resize(cols, rows)\n }\n })\n\n const write = Effect.fn(\"Pty.write\")(function* (id: PtyID, data: string) {\n const s = yield* InstanceState.get(state)\n const session = s.sessions.get(id)\n if (session && session.info.status === \"running\") {\n session.process.write(data)\n }\n })\n\n const connect = Effect.fn(\"Pty.connect\")(function* (id: PtyID, ws: Socket, cursor?: number) {\n const s = yield* InstanceState.get(state)\n const session = s.sessions.get(id)\n if (!session) {\n ws.close()\n return\n }\n log.info(\"client connected to session\", { id })\n\n const sub = sock(ws)\n session.subscribers.delete(sub)\n session.subscribers.set(sub, ws)\n\n const cleanup = () => {\n session.subscribers.delete(sub)\n }\n\n const start = session.bufferCursor\n const end = session.cursor\n const from =\n cursor === -1 ? end : typeof cursor === \"number\" && Number.isSafeInteger(cursor) ? Math.max(0, cursor) : 0\n\n const data = (() => {\n if (!session.buffer) return \"\"\n if (from >= end) return \"\"\n const offset = Math.max(0, from - start)\n if (offset >= session.buffer.length) return \"\"\n return session.buffer.slice(offset)\n })()\n\n if (data) {\n try {\n for (let i = 0; i < data.length; i += BUFFER_CHUNK) {\n ws.send(data.slice(i, i + BUFFER_CHUNK))\n }\n } catch {\n cleanup()\n ws.close()\n return\n }\n }\n\n try {\n ws.send(meta(end))\n } catch {\n cleanup()\n ws.close()\n return\n }\n\n return {\n onMessage: (message: string | ArrayBuffer) => {\n session.process.write(String(message))\n },\n onClose: () => {\n log.info(\"client disconnected from session\", { id })\n cleanup()\n },\n }\n })\n\n return Service.of({ list, get, create, update, remove, resize, write, connect })\n }),\n )\n\n const defaultLayer = layer.pipe(Layer.provide(Bus.layer), Layer.provide(Plugin.defaultLayer))\n\n const { runPromise } = makeRuntime(Service, defaultLayer)\n\n export async function list() {\n return runPromise((svc) => svc.list())\n }\n\n export async function get(id: PtyID) {\n return runPromise((svc) => svc.get(id))\n }\n\n export async function resize(id: PtyID, cols: number, rows: number) {\n return runPromise((svc) => svc.resize(id, cols, rows))\n }\n\n export async function write(id: PtyID, data: string) {\n return runPromise((svc) => svc.write(id, data))\n }\n\n export async function connect(id: PtyID, ws: Socket, cursor?: number) {\n return runPromise((svc) => svc.connect(id, ws, cursor))\n }\n\n export async function create(input: CreateInput) {\n return runPromise((svc) => svc.create(input))\n }\n\n export async function update(id: PtyID, input: UpdateInput) {\n return runPromise((svc) => svc.update(id, input))\n }\n\n export async function remove(id: PtyID) {\n return runPromise((svc) => svc.remove(id))\n }\n}\n", "export function lazy<T>(fn: () => T) {\n let value: T | undefined\n let loaded = false\n\n return (): T => {\n if (loaded) return value as T\n loaded = true\n value = fn()\n return value as T\n }\n}\n", "import { Schema } from \"effect\"\nimport z from \"zod\"\n\nimport { Identifier } from \"@/id/id\"\nimport { withStatics } from \"@/util/schema\"\n\nconst ptyIdSchema = Schema.String.pipe(Schema.brand(\"PtyID\"))\n\nexport type PtyID = typeof ptyIdSchema.Type\n\nexport const PtyID = ptyIdSchema.pipe(\n withStatics((schema: typeof ptyIdSchema) => ({\n make: (id: string) => schema.makeUnsafe(id),\n ascending: (id?: string) => schema.makeUnsafe(Identifier.ascending(\"pty\", id)),\n zod: Identifier.schema(\"pty\").pipe(z.custom<PtyID>()),\n })),\n)\n", "import { Hono } from \"hono\"\nimport { describeRoute, validator, resolver } from \"hono-openapi\"\nimport z from \"zod\"\nimport { MCP } from \"../../mcp\"\nimport { Config } from \"../../config/config\"\nimport { errors } from \"../error\"\nimport { lazy } from \"../../util/lazy\"\n\nexport const McpRoutes = lazy(() =>\n new Hono()\n .get(\n \"/\",\n describeRoute({\n summary: \"Get MCP status\",\n description: \"Get the status of all Model Context Protocol (MCP) servers.\",\n operationId: \"mcp.status\",\n responses: {\n 200: {\n description: \"MCP server status\",\n content: {\n \"application/json\": {\n schema: resolver(z.record(z.string(), MCP.Status)),\n },\n },\n },\n },\n }),\n async (c) => {\n return c.json(await MCP.status())\n },\n )\n .post(\n \"/\",\n describeRoute({\n summary: \"Add MCP server\",\n description: \"Dynamically add a new Model Context Protocol (MCP) server to the system.\",\n operationId: \"mcp.add\",\n responses: {\n 200: {\n description: \"MCP server added successfully\",\n content: {\n \"application/json\": {\n schema: resolver(z.record(z.string(), MCP.Status)),\n },\n },\n },\n ...errors(400),\n },\n }),\n validator(\n \"json\",\n z.object({\n name: z.string(),\n config: Config.Mcp,\n }),\n ),\n async (c) => {\n const { name, config } = c.req.valid(\"json\")\n const result = await MCP.add(name, config)\n return c.json(result.status)\n },\n )\n .post(\n \"/:name/auth\",\n describeRoute({\n summary: \"Start MCP OAuth\",\n description: \"Start OAuth authentication flow for a Model Context Protocol (MCP) server.\",\n operationId: \"mcp.auth.start\",\n responses: {\n 200: {\n description: \"OAuth flow started\",\n content: {\n \"application/json\": {\n schema: resolver(\n z.object({\n authorizationUrl: z.string().describe(\"URL to open in browser for authorization\"),\n }),\n ),\n },\n },\n },\n ...errors(400, 404),\n },\n }),\n async (c) => {\n const name = c.req.param(\"name\")\n const supportsOAuth = await MCP.supportsOAuth(name)\n if (!supportsOAuth) {\n return c.json({ error: `MCP server ${name} does not support OAuth` }, 400)\n }\n const result = await MCP.startAuth(name)\n return c.json(result)\n },\n )\n .post(\n \"/:name/auth/callback\",\n describeRoute({\n summary: \"Complete MCP OAuth\",\n description:\n \"Complete OAuth authentication for a Model Context Protocol (MCP) server using the authorization code.\",\n operationId: \"mcp.auth.callback\",\n responses: {\n 200: {\n description: \"OAuth authentication completed\",\n content: {\n \"application/json\": {\n schema: resolver(MCP.Status),\n },\n },\n },\n ...errors(400, 404),\n },\n }),\n validator(\n \"json\",\n z.object({\n code: z.string().describe(\"Authorization code from OAuth callback\"),\n }),\n ),\n async (c) => {\n const name = c.req.param(\"name\")\n const { code } = c.req.valid(\"json\")\n const status = await MCP.finishAuth(name, code)\n return c.json(status)\n },\n )\n .post(\n \"/:name/auth/authenticate\",\n describeRoute({\n summary: \"Authenticate MCP OAuth\",\n description: \"Start OAuth flow and wait for callback (opens browser)\",\n operationId: \"mcp.auth.authenticate\",\n responses: {\n 200: {\n description: \"OAuth authentication completed\",\n content: {\n \"application/json\": {\n schema: resolver(MCP.Status),\n },\n },\n },\n ...errors(400, 404),\n },\n }),\n async (c) => {\n const name = c.req.param(\"name\")\n const supportsOAuth = await MCP.supportsOAuth(name)\n if (!supportsOAuth) {\n return c.json({ error: `MCP server ${name} does not support OAuth` }, 400)\n }\n const status = await MCP.authenticate(name)\n return c.json(status)\n },\n )\n .delete(\n \"/:name/auth\",\n describeRoute({\n summary: \"Remove MCP OAuth\",\n description: \"Remove OAuth credentials for an MCP server\",\n operationId: \"mcp.auth.remove\",\n responses: {\n 200: {\n description: \"OAuth credentials removed\",\n content: {\n \"application/json\": {\n schema: resolver(z.object({ success: z.literal(true) })),\n },\n },\n },\n ...errors(404),\n },\n }),\n async (c) => {\n const name = c.req.param(\"name\")\n await MCP.removeAuth(name)\n return c.json({ success: true as const })\n },\n )\n .post(\n \"/:name/connect\",\n describeRoute({\n description: \"Connect an MCP server\",\n operationId: \"mcp.connect\",\n responses: {\n 200: {\n description: \"MCP server connected successfully\",\n content: {\n \"application/json\": {\n schema: resolver(z.boolean()),\n },\n },\n },\n },\n }),\n validator(\"param\", z.object({ name: z.string() })),\n async (c) => {\n const { name } = c.req.valid(\"param\")\n await MCP.connect(name)\n return c.json(true)\n },\n )\n .post(\n \"/:name/disconnect\",\n describeRoute({\n description: \"Disconnect an MCP server\",\n operationId: \"mcp.disconnect\",\n responses: {\n 200: {\n description: \"MCP server disconnected successfully\",\n content: {\n \"application/json\": {\n schema: resolver(z.boolean()),\n },\n },\n },\n },\n }),\n validator(\"param\", z.object({ name: z.string() })),\n async (c) => {\n const { name } = c.req.valid(\"param\")\n await MCP.disconnect(name)\n return c.json(true)\n },\n ),\n)\n", "import { Hono } from \"hono\"\nimport { describeRoute, validator, resolver } from \"hono-openapi\"\nimport z from \"zod\"\nimport { File } from \"../../file\"\nimport { Ripgrep } from \"../../file/ripgrep\"\nimport { LSP } from \"../../lsp\"\nimport { Instance } from \"../../project/instance\"\nimport { lazy } from \"../../util/lazy\"\n\nexport const FileRoutes = lazy(() =>\n new Hono()\n .get(\n \"/find\",\n describeRoute({\n summary: \"Find text\",\n description: \"Search for text patterns across files in the project using ripgrep.\",\n operationId: \"find.text\",\n responses: {\n 200: {\n description: \"Matches\",\n content: {\n \"application/json\": {\n schema: resolver(Ripgrep.Match.shape.data.array()),\n },\n },\n },\n },\n }),\n validator(\n \"query\",\n z.object({\n pattern: z.string(),\n }),\n ),\n async (c) => {\n const pattern = c.req.valid(\"query\").pattern\n const result = await Ripgrep.search({\n cwd: Instance.directory,\n pattern,\n limit: 10,\n })\n return c.json(result)\n },\n )\n .get(\n \"/find/file\",\n describeRoute({\n summary: \"Find files\",\n description: \"Search for files or directories by name or pattern in the project directory.\",\n operationId: \"find.files\",\n responses: {\n 200: {\n description: \"File paths\",\n content: {\n \"application/json\": {\n schema: resolver(z.string().array()),\n },\n },\n },\n },\n }),\n validator(\n \"query\",\n z.object({\n query: z.string(),\n dirs: z.enum([\"true\", \"false\"]).optional(),\n type: z.enum([\"file\", \"directory\"]).optional(),\n limit: z.coerce.number().int().min(1).max(200).optional(),\n }),\n ),\n async (c) => {\n const query = c.req.valid(\"query\").query\n const dirs = c.req.valid(\"query\").dirs\n const type = c.req.valid(\"query\").type\n const limit = c.req.valid(\"query\").limit\n const results = await File.search({\n query,\n limit: limit ?? 10,\n dirs: dirs !== \"false\",\n type,\n })\n return c.json(results)\n },\n )\n .get(\n \"/find/symbol\",\n describeRoute({\n summary: \"Find symbols\",\n description: \"Search for workspace symbols like functions, classes, and variables using LSP.\",\n operationId: \"find.symbols\",\n responses: {\n 200: {\n description: \"Symbols\",\n content: {\n \"application/json\": {\n schema: resolver(LSP.Symbol.array()),\n },\n },\n },\n },\n }),\n validator(\n \"query\",\n z.object({\n query: z.string(),\n }),\n ),\n async (c) => {\n /*\n const query = c.req.valid(\"query\").query\n const result = await LSP.workspaceSymbol(query)\n return c.json(result)\n */\n return c.json([])\n },\n )\n .get(\n \"/file\",\n describeRoute({\n summary: \"List files\",\n description: \"List files and directories in a specified path.\",\n operationId: \"file.list\",\n responses: {\n 200: {\n description: \"Files and directories\",\n content: {\n \"application/json\": {\n schema: resolver(File.Node.array()),\n },\n },\n },\n },\n }),\n validator(\n \"query\",\n z.object({\n path: z.string(),\n }),\n ),\n async (c) => {\n const path = c.req.valid(\"query\").path\n const content = await File.list(path)\n return c.json(content)\n },\n )\n .get(\n \"/file/content\",\n describeRoute({\n summary: \"Read file\",\n description: \"Read the content of a specified file.\",\n operationId: \"file.read\",\n responses: {\n 200: {\n description: \"File content\",\n content: {\n \"application/json\": {\n schema: resolver(File.Content),\n },\n },\n },\n },\n }),\n validator(\n \"query\",\n z.object({\n path: z.string(),\n }),\n ),\n async (c) => {\n const path = c.req.valid(\"query\").path\n const content = await File.read(path)\n return c.json(content)\n },\n )\n .get(\n \"/file/status\",\n describeRoute({\n summary: \"Get file status\",\n description: \"Get the git status of all files in the project.\",\n operationId: \"file.status\",\n responses: {\n 200: {\n description: \"File status\",\n content: {\n \"application/json\": {\n schema: resolver(File.Info.array()),\n },\n },\n },\n },\n }),\n async (c) => {\n const content = await File.status()\n return c.json(content)\n },\n ),\n)\n", "import { Hono } from \"hono\"\nimport { describeRoute, validator, resolver } from \"hono-openapi\"\nimport z from \"zod\"\nimport { Config } from \"../../config/config\"\nimport { Provider } from \"../../provider/provider\"\nimport { mapValues } from \"remeda\"\nimport { errors } from \"../error\"\nimport { Log } from \"../../util/log\"\nimport { lazy } from \"../../util/lazy\"\n\nconst log = Log.create({ service: \"server\" })\n\nexport const ConfigRoutes = lazy(() =>\n new Hono()\n .get(\n \"/\",\n describeRoute({\n summary: \"Get configuration\",\n description: \"Retrieve the current OpenCode configuration settings and preferences.\",\n operationId: \"config.get\",\n responses: {\n 200: {\n description: \"Get config info\",\n content: {\n \"application/json\": {\n schema: resolver(Config.Info),\n },\n },\n },\n },\n }),\n async (c) => {\n return c.json(await Config.get())\n },\n )\n .patch(\n \"/\",\n describeRoute({\n summary: \"Update configuration\",\n description: \"Update OpenCode configuration settings and preferences.\",\n operationId: \"config.update\",\n responses: {\n 200: {\n description: \"Successfully updated config\",\n content: {\n \"application/json\": {\n schema: resolver(Config.Info),\n },\n },\n },\n ...errors(400),\n },\n }),\n validator(\"json\", Config.Info),\n async (c) => {\n const config = c.req.valid(\"json\")\n await Config.update(config)\n return c.json(config)\n },\n )\n .get(\n \"/providers\",\n describeRoute({\n summary: \"List config providers\",\n description: \"Get a list of all configured AI providers and their default models.\",\n operationId: \"config.providers\",\n responses: {\n 200: {\n description: \"List of providers\",\n content: {\n \"application/json\": {\n schema: resolver(\n z.object({\n providers: Provider.Info.array(),\n default: z.record(z.string(), z.string()),\n }),\n ),\n },\n },\n },\n },\n }),\n async (c) => {\n using _ = log.time(\"providers\")\n const providers = await Provider.list().then((x) => mapValues(x, (item) => item))\n return c.json({\n providers: Object.values(providers),\n default: mapValues(providers, (item) => Provider.sort(Object.values(item.models))[0].id),\n })\n },\n ),\n)\n", "import { Hono } from \"hono\"\nimport { describeRoute, validator, resolver } from \"hono-openapi\"\nimport z from \"zod\"\nimport { ProviderID, ModelID } from \"../../provider/schema\"\nimport { ToolRegistry } from \"../../tool/registry\"\nimport { Worktree } from \"../../worktree\"\nimport { Instance } from \"../../project/instance\"\nimport { Project } from \"../../project/project\"\nimport { MCP } from \"../../mcp\"\nimport { Session } from \"../../session\"\nimport { Config } from \"../../config/config\"\nimport { ConsoleState } from \"../../config/console-state\"\nimport { Account, AccountID, OrgID } from \"../../account\"\nimport { zodToJsonSchema } from \"zod-to-json-schema\"\nimport { errors } from \"../error\"\nimport { lazy } from \"../../util/lazy\"\nimport { WorkspaceRoutes } from \"./workspace\"\n\nconst ConsoleOrgOption = z.object({\n accountID: z.string(),\n accountEmail: z.string(),\n accountUrl: z.string(),\n orgID: z.string(),\n orgName: z.string(),\n active: z.boolean(),\n})\n\nconst ConsoleOrgList = z.object({\n orgs: z.array(ConsoleOrgOption),\n})\n\nconst ConsoleSwitchBody = z.object({\n accountID: z.string(),\n orgID: z.string(),\n})\n\nexport const ExperimentalRoutes = lazy(() =>\n new Hono()\n .get(\n \"/console\",\n describeRoute({\n summary: \"Get active Console provider metadata\",\n description: \"Get the active Console org name and the set of provider IDs managed by that Console org.\",\n operationId: \"experimental.console.get\",\n responses: {\n 200: {\n description: \"Active Console provider metadata\",\n content: {\n \"application/json\": {\n schema: resolver(ConsoleState),\n },\n },\n },\n },\n }),\n async (c) => {\n const [consoleState, groups] = await Promise.all([Config.getConsoleState(), Account.orgsByAccount()])\n return c.json({\n ...consoleState,\n switchableOrgCount: groups.reduce((count, group) => count + group.orgs.length, 0),\n })\n },\n )\n .get(\n \"/console/orgs\",\n describeRoute({\n summary: \"List switchable Console orgs\",\n description: \"Get the available Console orgs across logged-in accounts, including the current active org.\",\n operationId: \"experimental.console.listOrgs\",\n responses: {\n 200: {\n description: \"Switchable Console orgs\",\n content: {\n \"application/json\": {\n schema: resolver(ConsoleOrgList),\n },\n },\n },\n },\n }),\n async (c) => {\n const [groups, active] = await Promise.all([Account.orgsByAccount(), Account.active()])\n\n const orgs = groups.flatMap((group) =>\n group.orgs.map((org) => ({\n accountID: group.account.id,\n accountEmail: group.account.email,\n accountUrl: group.account.url,\n orgID: org.id,\n orgName: org.name,\n active: !!active && active.id === group.account.id && active.active_org_id === org.id,\n })),\n )\n return c.json({ orgs })\n },\n )\n .post(\n \"/console/switch\",\n describeRoute({\n summary: \"Switch active Console org\",\n description: \"Persist a new active Console account/org selection for the current local OpenCode state.\",\n operationId: \"experimental.console.switchOrg\",\n responses: {\n 200: {\n description: \"Switch success\",\n content: {\n \"application/json\": {\n schema: resolver(z.boolean()),\n },\n },\n },\n },\n }),\n validator(\"json\", ConsoleSwitchBody),\n async (c) => {\n const body = c.req.valid(\"json\")\n await Account.switchOrg(AccountID.make(body.accountID), OrgID.make(body.orgID))\n return c.json(true)\n },\n )\n .get(\n \"/tool/ids\",\n describeRoute({\n summary: \"List tool IDs\",\n description:\n \"Get a list of all available tool IDs, including both built-in tools and dynamically registered tools.\",\n operationId: \"tool.ids\",\n responses: {\n 200: {\n description: \"Tool IDs\",\n content: {\n \"application/json\": {\n schema: resolver(z.array(z.string()).meta({ ref: \"ToolIDs\" })),\n },\n },\n },\n ...errors(400),\n },\n }),\n async (c) => {\n return c.json(await ToolRegistry.ids())\n },\n )\n .get(\n \"/tool\",\n describeRoute({\n summary: \"List tools\",\n description:\n \"Get a list of available tools with their JSON schema parameters for a specific provider and model combination.\",\n operationId: \"tool.list\",\n responses: {\n 200: {\n description: \"Tools\",\n content: {\n \"application/json\": {\n schema: resolver(\n z\n .array(\n z\n .object({\n id: z.string(),\n description: z.string(),\n parameters: z.any(),\n })\n .meta({ ref: \"ToolListItem\" }),\n )\n .meta({ ref: \"ToolList\" }),\n ),\n },\n },\n },\n ...errors(400),\n },\n }),\n validator(\n \"query\",\n z.object({\n provider: z.string(),\n model: z.string(),\n }),\n ),\n async (c) => {\n const { provider, model } = c.req.valid(\"query\")\n const tools = await ToolRegistry.tools({ providerID: ProviderID.make(provider), modelID: ModelID.make(model) })\n return c.json(\n tools.map((t) => ({\n id: t.id,\n description: t.description,\n // Handle both Zod schemas and plain JSON schemas\n parameters: (t.parameters as any)?._def ? zodToJsonSchema(t.parameters as any) : t.parameters,\n })),\n )\n },\n )\n .route(\"/workspace\", WorkspaceRoutes())\n .post(\n \"/worktree\",\n describeRoute({\n summary: \"Create worktree\",\n description: \"Create a new git worktree for the current project and run any configured startup scripts.\",\n operationId: \"worktree.create\",\n responses: {\n 200: {\n description: \"Worktree created\",\n content: {\n \"application/json\": {\n schema: resolver(Worktree.Info),\n },\n },\n },\n ...errors(400),\n },\n }),\n validator(\"json\", Worktree.CreateInput.optional()),\n async (c) => {\n const body = c.req.valid(\"json\")\n const worktree = await Worktree.create(body)\n return c.json(worktree)\n },\n )\n .get(\n \"/worktree\",\n describeRoute({\n summary: \"List worktrees\",\n description: \"List all sandbox worktrees for the current project.\",\n operationId: \"worktree.list\",\n responses: {\n 200: {\n description: \"List of worktree directories\",\n content: {\n \"application/json\": {\n schema: resolver(z.array(z.string())),\n },\n },\n },\n },\n }),\n async (c) => {\n const sandboxes = await Project.sandboxes(Instance.project.id)\n return c.json(sandboxes)\n },\n )\n .delete(\n \"/worktree\",\n describeRoute({\n summary: \"Remove worktree\",\n description: \"Remove a git worktree and delete its branch.\",\n operationId: \"worktree.remove\",\n responses: {\n 200: {\n description: \"Worktree removed\",\n content: {\n \"application/json\": {\n schema: resolver(z.boolean()),\n },\n },\n },\n ...errors(400),\n },\n }),\n validator(\"json\", Worktree.RemoveInput),\n async (c) => {\n const body = c.req.valid(\"json\")\n await Worktree.remove(body)\n await Project.removeSandbox(Instance.project.id, body.directory)\n return c.json(true)\n },\n )\n .post(\n \"/worktree/reset\",\n describeRoute({\n summary: \"Reset worktree\",\n description: \"Reset a worktree branch to the primary default branch.\",\n operationId: \"worktree.reset\",\n responses: {\n 200: {\n description: \"Worktree reset\",\n content: {\n \"application/json\": {\n schema: resolver(z.boolean()),\n },\n },\n },\n ...errors(400),\n },\n }),\n validator(\"json\", Worktree.ResetInput),\n async (c) => {\n const body = c.req.valid(\"json\")\n await Worktree.reset(body)\n return c.json(true)\n },\n )\n .get(\n \"/session\",\n describeRoute({\n summary: \"List sessions\",\n description:\n \"Get a list of all OpenCode sessions across projects, sorted by most recently updated. Archived sessions are excluded by default.\",\n operationId: \"experimental.session.list\",\n responses: {\n 200: {\n description: \"List of sessions\",\n content: {\n \"application/json\": {\n schema: resolver(Session.GlobalInfo.array()),\n },\n },\n },\n },\n }),\n validator(\n \"query\",\n z.object({\n directory: z.string().optional().meta({ description: \"Filter sessions by project directory\" }),\n roots: z.coerce.boolean().optional().meta({ description: \"Only return root sessions (no parentID)\" }),\n start: z.coerce\n .number()\n .optional()\n .meta({ description: \"Filter sessions updated on or after this timestamp (milliseconds since epoch)\" }),\n cursor: z.coerce\n .number()\n .optional()\n .meta({ description: \"Return sessions updated before this timestamp (milliseconds since epoch)\" }),\n search: z.string().optional().meta({ description: \"Filter sessions by title (case-insensitive)\" }),\n limit: z.coerce.number().optional().meta({ description: \"Maximum number of sessions to return\" }),\n archived: z.coerce.boolean().optional().meta({ description: \"Include archived sessions (default false)\" }),\n }),\n ),\n async (c) => {\n const query = c.req.valid(\"query\")\n const limit = query.limit ?? 100\n const sessions: Session.GlobalInfo[] = []\n for await (const session of Session.listGlobal({\n directory: query.directory,\n roots: query.roots,\n start: query.start,\n cursor: query.cursor,\n search: query.search,\n limit: limit + 1,\n archived: query.archived,\n })) {\n sessions.push(session)\n }\n const hasMore = sessions.length > limit\n const list = hasMore ? sessions.slice(0, limit) : sessions\n if (hasMore && list.length > 0) {\n c.header(\"x-next-cursor\", String(list[list.length - 1].time.updated))\n }\n return c.json(list)\n },\n )\n .get(\n \"/resource\",\n describeRoute({\n summary: \"Get MCP resources\",\n description: \"Get all available MCP resources from connected servers. Optionally filter by name.\",\n operationId: \"experimental.resource.list\",\n responses: {\n 200: {\n description: \"MCP resources\",\n content: {\n \"application/json\": {\n schema: resolver(z.record(z.string(), MCP.Resource)),\n },\n },\n },\n },\n }),\n async (c) => {\n return c.json(await MCP.resources())\n },\n ),\n)\n", "import z from \"zod\"\n\nexport const ConsoleState = z.object({\n consoleManagedProviders: z.array(z.string()),\n activeOrgName: z.string().optional(),\n switchableOrgCount: z.number().int().nonnegative(),\n})\n\nexport type ConsoleState = z.infer<typeof ConsoleState>\n\nexport const emptyConsoleState: ConsoleState = {\n consoleManagedProviders: [],\n activeOrgName: undefined,\n switchableOrgCount: 0,\n}\n", "import { Hono } from \"hono\"\nimport { describeRoute, resolver, validator } from \"hono-openapi\"\nimport z from \"zod\"\nimport { Workspace } from \"../../control-plane/workspace\"\nimport { Instance } from \"../../project/instance\"\nimport { errors } from \"../error\"\nimport { lazy } from \"../../util/lazy\"\n\nexport const WorkspaceRoutes = lazy(() =>\n new Hono()\n .post(\n \"/\",\n describeRoute({\n summary: \"Create workspace\",\n description: \"Create a workspace for the current project.\",\n operationId: \"experimental.workspace.create\",\n responses: {\n 200: {\n description: \"Workspace created\",\n content: {\n \"application/json\": {\n schema: resolver(Workspace.Info),\n },\n },\n },\n ...errors(400),\n },\n }),\n validator(\n \"json\",\n Workspace.create.schema.omit({\n projectID: true,\n }),\n ),\n async (c) => {\n const body = c.req.valid(\"json\")\n const workspace = await Workspace.create({\n projectID: Instance.project.id,\n ...body,\n })\n return c.json(workspace)\n },\n )\n .get(\n \"/\",\n describeRoute({\n summary: \"List workspaces\",\n description: \"List all workspaces.\",\n operationId: \"experimental.workspace.list\",\n responses: {\n 200: {\n description: \"Workspaces\",\n content: {\n \"application/json\": {\n schema: resolver(z.array(Workspace.Info)),\n },\n },\n },\n },\n }),\n async (c) => {\n return c.json(Workspace.list(Instance.project))\n },\n )\n .delete(\n \"/:id\",\n describeRoute({\n summary: \"Remove workspace\",\n description: \"Remove an existing workspace.\",\n operationId: \"experimental.workspace.remove\",\n responses: {\n 200: {\n description: \"Workspace removed\",\n content: {\n \"application/json\": {\n schema: resolver(Workspace.Info.optional()),\n },\n },\n },\n ...errors(400),\n },\n }),\n validator(\n \"param\",\n z.object({\n id: Workspace.Info.shape.id,\n }),\n ),\n async (c) => {\n const { id } = c.req.valid(\"param\")\n return c.json(await Workspace.remove(id))\n },\n ),\n)\n", "import { Hono } from \"hono\"\nimport { describeRoute, validator, resolver } from \"hono-openapi\"\nimport z from \"zod\"\nimport { Config } from \"../../config/config\"\nimport { Provider } from \"../../provider/provider\"\nimport { ModelsDev } from \"../../provider/models\"\nimport { ProviderAuth } from \"../../provider/auth\"\nimport { ProviderID } from \"../../provider/schema\"\nimport { mapValues } from \"remeda\"\nimport { errors } from \"../error\"\nimport { lazy } from \"../../util/lazy\"\nimport { Log } from \"../../util/log\"\n\nconst log = Log.create({ service: \"server\" })\n\nexport const ProviderRoutes = lazy(() =>\n new Hono()\n .get(\n \"/\",\n describeRoute({\n summary: \"List providers\",\n description: \"Get a list of all available AI providers, including both available and connected ones.\",\n operationId: \"provider.list\",\n responses: {\n 200: {\n description: \"List of providers\",\n content: {\n \"application/json\": {\n schema: resolver(\n z.object({\n all: ModelsDev.Provider.array(),\n default: z.record(z.string(), z.string()),\n connected: z.array(z.string()),\n }),\n ),\n },\n },\n },\n },\n }),\n async (c) => {\n const config = await Config.get()\n const disabled = new Set(config.disabled_providers ?? [])\n const enabled = config.enabled_providers ? new Set(config.enabled_providers) : undefined\n\n const allProviders = await ModelsDev.get()\n const filteredProviders: Record<string, (typeof allProviders)[string]> = {}\n for (const [key, value] of Object.entries(allProviders)) {\n if ((enabled ? enabled.has(key) : true) && !disabled.has(key)) {\n filteredProviders[key] = value\n }\n }\n\n const connected = await Provider.list()\n const providers = Object.assign(\n mapValues(filteredProviders, (x) => Provider.fromModelsDevProvider(x)),\n connected,\n )\n return c.json({\n all: Object.values(providers),\n default: mapValues(providers, (item) => Provider.sort(Object.values(item.models))[0].id),\n connected: Object.keys(connected),\n })\n },\n )\n .get(\n \"/auth\",\n describeRoute({\n summary: \"Get provider auth methods\",\n description: \"Retrieve available authentication methods for all AI providers.\",\n operationId: \"provider.auth\",\n responses: {\n 200: {\n description: \"Provider auth methods\",\n content: {\n \"application/json\": {\n schema: resolver(z.record(z.string(), z.array(ProviderAuth.Method))),\n },\n },\n },\n },\n }),\n async (c) => {\n return c.json(await ProviderAuth.methods())\n },\n )\n .post(\n \"/:providerID/oauth/authorize\",\n describeRoute({\n summary: \"OAuth authorize\",\n description: \"Initiate OAuth authorization for a specific AI provider to get an authorization URL.\",\n operationId: \"provider.oauth.authorize\",\n responses: {\n 200: {\n description: \"Authorization URL and method\",\n content: {\n \"application/json\": {\n schema: resolver(ProviderAuth.Authorization.optional()),\n },\n },\n },\n ...errors(400),\n },\n }),\n validator(\n \"param\",\n z.object({\n providerID: ProviderID.zod.meta({ description: \"Provider ID\" }),\n }),\n ),\n validator(\n \"json\",\n z.object({\n method: z.number().meta({ description: \"Auth method index\" }),\n inputs: z.record(z.string(), z.string()).optional().meta({ description: \"Prompt inputs\" }),\n }),\n ),\n async (c) => {\n const providerID = c.req.valid(\"param\").providerID\n const { method, inputs } = c.req.valid(\"json\")\n const result = await ProviderAuth.authorize({\n providerID,\n method,\n inputs,\n })\n return c.json(result)\n },\n )\n .post(\n \"/:providerID/oauth/callback\",\n describeRoute({\n summary: \"OAuth callback\",\n description: \"Handle the OAuth callback from a provider after user authorization.\",\n operationId: \"provider.oauth.callback\",\n responses: {\n 200: {\n description: \"OAuth callback processed successfully\",\n content: {\n \"application/json\": {\n schema: resolver(z.boolean()),\n },\n },\n },\n ...errors(400),\n },\n }),\n validator(\n \"param\",\n z.object({\n providerID: ProviderID.zod.meta({ description: \"Provider ID\" }),\n }),\n ),\n validator(\n \"json\",\n z.object({\n method: z.number().meta({ description: \"Auth method index\" }),\n code: z.string().optional().meta({ description: \"OAuth authorization code\" }),\n }),\n ),\n async (c) => {\n const providerID = c.req.valid(\"param\").providerID\n const { method, code } = c.req.valid(\"json\")\n await ProviderAuth.callback({\n providerID,\n method,\n code,\n })\n return c.json(true)\n },\n ),\n)\n", "import type { AuthOAuthResult, Hooks } from \"@opencode-ai/plugin\"\nimport { NamedError } from \"@opencode-ai/util/error\"\nimport { Auth } from \"@/auth\"\nimport { InstanceState } from \"@/effect/instance-state\"\nimport { makeRuntime } from \"@/effect/run-service\"\nimport { Plugin } from \"../plugin\"\nimport { ProviderID } from \"./schema\"\nimport { Array as Arr, Effect, Layer, Record, Result, ServiceMap } from \"effect\"\nimport z from \"zod\"\n\nexport namespace ProviderAuth {\n export const Method = z\n .object({\n type: z.union([z.literal(\"oauth\"), z.literal(\"api\")]),\n label: z.string(),\n prompts: z\n .array(\n z.union([\n z.object({\n type: z.literal(\"text\"),\n key: z.string(),\n message: z.string(),\n placeholder: z.string().optional(),\n when: z\n .object({\n key: z.string(),\n op: z.union([z.literal(\"eq\"), z.literal(\"neq\")]),\n value: z.string(),\n })\n .optional(),\n }),\n z.object({\n type: z.literal(\"select\"),\n key: z.string(),\n message: z.string(),\n options: z.array(\n z.object({\n label: z.string(),\n value: z.string(),\n hint: z.string().optional(),\n }),\n ),\n when: z\n .object({\n key: z.string(),\n op: z.union([z.literal(\"eq\"), z.literal(\"neq\")]),\n value: z.string(),\n })\n .optional(),\n }),\n ]),\n )\n .optional(),\n })\n .meta({\n ref: \"ProviderAuthMethod\",\n })\n export type Method = z.infer<typeof Method>\n\n export const Authorization = z\n .object({\n url: z.string(),\n method: z.union([z.literal(\"auto\"), z.literal(\"code\")]),\n instructions: z.string(),\n })\n .meta({\n ref: \"ProviderAuthAuthorization\",\n })\n export type Authorization = z.infer<typeof Authorization>\n\n export const OauthMissing = NamedError.create(\"ProviderAuthOauthMissing\", z.object({ providerID: ProviderID.zod }))\n\n export const OauthCodeMissing = NamedError.create(\n \"ProviderAuthOauthCodeMissing\",\n z.object({ providerID: ProviderID.zod }),\n )\n\n export const OauthCallbackFailed = NamedError.create(\"ProviderAuthOauthCallbackFailed\", z.object({}))\n\n export const ValidationFailed = NamedError.create(\n \"ProviderAuthValidationFailed\",\n z.object({\n field: z.string(),\n message: z.string(),\n }),\n )\n\n export type Error =\n | Auth.AuthError\n | InstanceType<typeof OauthMissing>\n | InstanceType<typeof OauthCodeMissing>\n | InstanceType<typeof OauthCallbackFailed>\n | InstanceType<typeof ValidationFailed>\n\n type Hook = NonNullable<Hooks[\"auth\"]>\n\n export interface Interface {\n readonly methods: () => Effect.Effect<Record<ProviderID, Method[]>>\n readonly authorize: (input: {\n providerID: ProviderID\n method: number\n inputs?: Record<string, string>\n }) => Effect.Effect<Authorization | undefined, Error>\n readonly callback: (input: { providerID: ProviderID; method: number; code?: string }) => Effect.Effect<void, Error>\n }\n\n interface State {\n hooks: Record<ProviderID, Hook>\n pending: Map<ProviderID, AuthOAuthResult>\n }\n\n export class Service extends ServiceMap.Service<Service, Interface>()(\"@opencode/ProviderAuth\") {}\n\n export const layer: Layer.Layer<Service, never, Auth.Service | Plugin.Service> = Layer.effect(\n Service,\n Effect.gen(function* () {\n const auth = yield* Auth.Service\n const plugin = yield* Plugin.Service\n const state = yield* InstanceState.make<State>(\n Effect.fn(\"ProviderAuth.state\")(function* () {\n const plugins = yield* plugin.list()\n return {\n hooks: Record.fromEntries(\n Arr.filterMap(plugins, (x) =>\n x.auth?.provider !== undefined\n ? Result.succeed([ProviderID.make(x.auth.provider), x.auth] as const)\n : Result.failVoid,\n ),\n ),\n pending: new Map<ProviderID, AuthOAuthResult>(),\n }\n }),\n )\n\n const methods = Effect.fn(\"ProviderAuth.methods\")(function* () {\n const hooks = (yield* InstanceState.get(state)).hooks\n return Record.map(hooks, (item) =>\n item.methods.map(\n (method): Method => ({\n type: method.type,\n label: method.label,\n prompts: method.prompts?.map((prompt) => {\n if (prompt.type === \"select\") {\n return {\n type: \"select\" as const,\n key: prompt.key,\n message: prompt.message,\n options: prompt.options,\n when: prompt.when,\n }\n }\n return {\n type: \"text\" as const,\n key: prompt.key,\n message: prompt.message,\n placeholder: prompt.placeholder,\n when: prompt.when,\n }\n }),\n }),\n ),\n )\n })\n\n const authorize = Effect.fn(\"ProviderAuth.authorize\")(function* (input: {\n providerID: ProviderID\n method: number\n inputs?: Record<string, string>\n }) {\n const { hooks, pending } = yield* InstanceState.get(state)\n const method = hooks[input.providerID].methods[input.method]\n if (method.type !== \"oauth\") return\n\n if (method.prompts && input.inputs) {\n for (const prompt of method.prompts) {\n if (prompt.type === \"text\" && prompt.validate && input.inputs[prompt.key] !== undefined) {\n const error = prompt.validate(input.inputs[prompt.key])\n if (error) return yield* Effect.fail(new ValidationFailed({ field: prompt.key, message: error }))\n }\n }\n }\n\n const result = yield* Effect.promise(() => method.authorize(input.inputs))\n pending.set(input.providerID, result)\n return {\n url: result.url,\n method: result.method,\n instructions: result.instructions,\n }\n })\n\n const callback = Effect.fn(\"ProviderAuth.callback\")(function* (input: {\n providerID: ProviderID\n method: number\n code?: string\n }) {\n const pending = (yield* InstanceState.get(state)).pending\n const match = pending.get(input.providerID)\n if (!match) return yield* Effect.fail(new OauthMissing({ providerID: input.providerID }))\n if (match.method === \"code\" && !input.code) {\n return yield* Effect.fail(new OauthCodeMissing({ providerID: input.providerID }))\n }\n\n const result = yield* Effect.promise(() =>\n match.method === \"code\" ? match.callback(input.code!) : match.callback(),\n )\n if (!result || result.type !== \"success\") return yield* Effect.fail(new OauthCallbackFailed({}))\n\n if (\"key\" in result) {\n yield* auth.set(input.providerID, {\n type: \"api\",\n key: result.key,\n })\n }\n\n if (\"refresh\" in result) {\n const { type: _, provider: __, refresh, access, expires, ...extra } = result\n yield* auth.set(input.providerID, {\n type: \"oauth\",\n access,\n refresh,\n expires,\n ...extra,\n })\n }\n })\n\n return Service.of({ methods, authorize, callback })\n }),\n )\n\n export const defaultLayer = Layer.suspend(() =>\n layer.pipe(Layer.provide(Auth.defaultLayer), Layer.provide(Plugin.defaultLayer)),\n )\n\n const { runPromise } = makeRuntime(Service, defaultLayer)\n\n export async function methods() {\n return runPromise((svc) => svc.methods())\n }\n\n export async function authorize(input: {\n providerID: ProviderID\n method: number\n inputs?: Record<string, string>\n }): Promise<Authorization | undefined> {\n return runPromise((svc) => svc.authorize(input))\n }\n\n export async function callback(input: { providerID: ProviderID; method: number; code?: string }) {\n return runPromise((svc) => svc.callback(input))\n }\n}\n", "import { Hono } from \"hono\"\nimport { describeRoute, resolver } from \"hono-openapi\"\nimport { streamSSE } from \"hono/streaming\"\nimport { Log } from \"@/util/log\"\nimport { BusEvent } from \"@/bus/bus-event\"\nimport { Bus } from \"@/bus\"\nimport { AsyncQueue } from \"../../util/queue\"\n\nconst log = Log.create({ service: \"server\" })\n\nexport const EventRoutes = () =>\n new Hono().get(\n \"/event\",\n describeRoute({\n summary: \"Subscribe to events\",\n description: \"Get events\",\n operationId: \"event.subscribe\",\n responses: {\n 200: {\n description: \"Event stream\",\n content: {\n \"text/event-stream\": {\n schema: resolver(BusEvent.payloads()),\n },\n },\n },\n },\n }),\n async (c) => {\n log.info(\"event connected\")\n c.header(\"Cache-Control\", \"no-cache, no-transform\")\n c.header(\"X-Accel-Buffering\", \"no\")\n c.header(\"X-Content-Type-Options\", \"nosniff\")\n return streamSSE(c, async (stream) => {\n const q = new AsyncQueue<string | null>()\n let done = false\n\n q.push(\n JSON.stringify({\n type: \"server.connected\",\n properties: {},\n }),\n )\n\n // Send heartbeat every 10s to prevent stalled proxy streams.\n const heartbeat = setInterval(() => {\n q.push(\n JSON.stringify({\n type: \"server.heartbeat\",\n properties: {},\n }),\n )\n }, 10_000)\n\n const stop = () => {\n if (done) return\n done = true\n clearInterval(heartbeat)\n unsub()\n q.push(null)\n log.info(\"event disconnected\")\n }\n\n const unsub = Bus.subscribeAll((event) => {\n q.push(JSON.stringify(event))\n if (event.type === Bus.InstanceDisposed.type) {\n stop()\n }\n })\n\n stream.onAbort(stop)\n\n try {\n for await (const data of q) {\n if (data === null) return\n await stream.writeSSE({ data })\n }\n } finally {\n stop()\n }\n })\n },\n )\n", "import { Provider } from \"../provider/provider\"\nimport { NamedError } from \"@opencode-ai/util/error\"\nimport { NotFoundError } from \"../storage/db\"\nimport { Session } from \"../session\"\nimport type { ContentfulStatusCode } from \"hono/utils/http-status\"\nimport type { ErrorHandler } from \"hono\"\nimport { HTTPException } from \"hono/http-exception\"\nimport type { Log } from \"../util/log\"\n\nexport function errorHandler(log: Log.Logger): ErrorHandler {\n return (err, c) => {\n log.error(\"failed\", {\n error: err,\n })\n if (err instanceof NamedError) {\n let status: ContentfulStatusCode\n if (err instanceof NotFoundError) status = 404\n else if (err instanceof Provider.ModelNotFoundError) status = 400\n else if (err.name === \"ProviderAuthValidationFailed\") status = 400\n else if (err.name.startsWith(\"Worktree\")) status = 400\n else status = 500\n return c.json(err.toObject(), { status })\n }\n if (err instanceof Session.BusyError) {\n return c.json(new NamedError.Unknown({ message: err.message }).toObject(), { status: 400 })\n }\n if (err instanceof HTTPException) return err.getResponse()\n const message = err instanceof Error && err.stack ? err.stack : err.toString()\n return c.json(new NamedError.Unknown({ message }).toObject(), {\n status: 500,\n })\n }\n}\n", "import type { MiddlewareHandler } from \"hono\"\nimport type { UpgradeWebSocket } from \"hono/ws\"\nimport { getAdaptor } from \"@/control-plane/adaptors\"\nimport { WorkspaceID } from \"@/control-plane/schema\"\nimport { Workspace } from \"@/control-plane/workspace\"\nimport { ServerProxy } from \"./proxy\"\nimport { lazy } from \"@/util/lazy\"\nimport { Filesystem } from \"@/util/filesystem\"\nimport { Instance } from \"@/project/instance\"\nimport { InstanceBootstrap } from \"@/project/bootstrap\"\nimport { InstanceRoutes } from \"./instance\"\n\ntype Rule = { method?: string; path: string; exact?: boolean; action: \"local\" | \"forward\" }\n\nconst RULES: Array<Rule> = [\n { path: \"/session/status\", action: \"forward\" },\n { method: \"GET\", path: \"/session\", action: \"local\" },\n]\n\nfunction local(method: string, path: string) {\n for (const rule of RULES) {\n if (rule.method && rule.method !== method) continue\n const match = rule.exact ? path === rule.path : path === rule.path || path.startsWith(rule.path + \"/\")\n if (match) return rule.action === \"local\"\n }\n return false\n}\n\nexport function WorkspaceRouterMiddleware(upgrade: UpgradeWebSocket): MiddlewareHandler {\n const routes = lazy(() => InstanceRoutes(upgrade))\n\n return async (c) => {\n const raw = c.req.query(\"directory\") || c.req.header(\"x-opencode-directory\") || process.cwd()\n const directory = Filesystem.resolve(\n (() => {\n try {\n return decodeURIComponent(raw)\n } catch {\n return raw\n }\n })(),\n )\n\n const url = new URL(c.req.url)\n const workspaceParam = url.searchParams.get(\"workspace\") || c.req.header(\"x-opencode-workspace\")\n\n // TODO: If session is being routed, force it to lookup the\n // project/workspace\n\n // If no workspace is provided we use the \"project\" workspace\n if (!workspaceParam) {\n return Instance.provide({\n directory,\n init: InstanceBootstrap,\n async fn() {\n return routes().fetch(c.req.raw, c.env)\n },\n })\n }\n\n const workspaceID = WorkspaceID.make(workspaceParam)\n const workspace = await Workspace.get(workspaceID)\n if (!workspace) {\n return new Response(`Workspace not found: ${workspaceID}`, {\n status: 500,\n headers: {\n \"content-type\": \"text/plain; charset=utf-8\",\n },\n })\n }\n\n const adaptor = await getAdaptor(workspace.type)\n const target = await adaptor.target(workspace)\n\n if (target.type === \"local\") {\n return Instance.provide({\n directory: target.directory,\n init: InstanceBootstrap,\n async fn() {\n return routes().fetch(c.req.raw, c.env)\n },\n })\n }\n\n if (local(c.req.method, url.pathname)) {\n // No instance provided because we are serving cached data; there\n // is no instance to work with\n return routes().fetch(c.req.raw, c.env)\n }\n\n if (c.req.header(\"upgrade\")?.toLowerCase() === \"websocket\") {\n return ServerProxy.websocket(target, c.req.raw, c.env)\n }\n\n const headers = new Headers(c.req.raw.headers)\n headers.delete(\"x-opencode-workspace\")\n\n return ServerProxy.http(\n target,\n new Request(c.req.raw, {\n headers,\n }),\n )\n }\n}\n", "import { Hono, type Context } from \"hono\"\nimport { describeRoute, resolver, validator } from \"hono-openapi\"\nimport { streamSSE } from \"hono/streaming\"\nimport z from \"zod\"\nimport { BusEvent } from \"@/bus/bus-event\"\nimport { SyncEvent } from \"@/sync\"\nimport { GlobalBus } from \"@/bus/global\"\nimport { AsyncQueue } from \"@/util/queue\"\nimport { Instance } from \"../../project/instance\"\nimport { Installation } from \"@/installation\"\nimport { Log } from \"../../util/log\"\nimport { lazy } from \"../../util/lazy\"\nimport { Config } from \"../../config/config\"\nimport { errors } from \"../error\"\n\nconst log = Log.create({ service: \"server\" })\n\nexport const GlobalDisposedEvent = BusEvent.define(\"global.disposed\", z.object({}))\n\nasync function streamEvents(c: Context, subscribe: (q: AsyncQueue<string | null>) => () => void) {\n return streamSSE(c, async (stream) => {\n const q = new AsyncQueue<string | null>()\n let done = false\n\n q.push(\n JSON.stringify({\n payload: {\n type: \"server.connected\",\n properties: {},\n },\n }),\n )\n\n // Send heartbeat every 10s to prevent stalled proxy streams.\n const heartbeat = setInterval(() => {\n q.push(\n JSON.stringify({\n payload: {\n type: \"server.heartbeat\",\n properties: {},\n },\n }),\n )\n }, 10_000)\n\n const stop = () => {\n if (done) return\n done = true\n clearInterval(heartbeat)\n unsub()\n q.push(null)\n log.info(\"global event disconnected\")\n }\n\n const unsub = subscribe(q)\n\n stream.onAbort(stop)\n\n try {\n for await (const data of q) {\n if (data === null) return\n await stream.writeSSE({ data })\n }\n } finally {\n stop()\n }\n })\n}\n\nexport const GlobalRoutes = lazy(() =>\n new Hono()\n .get(\n \"/health\",\n describeRoute({\n summary: \"Get health\",\n description: \"Get health information about the OpenCode server.\",\n operationId: \"global.health\",\n responses: {\n 200: {\n description: \"Health information\",\n content: {\n \"application/json\": {\n schema: resolver(z.object({ healthy: z.literal(true), version: z.string() })),\n },\n },\n },\n },\n }),\n async (c) => {\n return c.json({ healthy: true, version: Installation.VERSION })\n },\n )\n .get(\n \"/event\",\n describeRoute({\n summary: \"Get global events\",\n description: \"Subscribe to global events from the OpenCode system using server-sent events.\",\n operationId: \"global.event\",\n responses: {\n 200: {\n description: \"Event stream\",\n content: {\n \"text/event-stream\": {\n schema: resolver(\n z\n .object({\n directory: z.string(),\n payload: BusEvent.payloads(),\n })\n .meta({\n ref: \"GlobalEvent\",\n }),\n ),\n },\n },\n },\n },\n }),\n async (c) => {\n log.info(\"global event connected\")\n c.header(\"Cache-Control\", \"no-cache, no-transform\")\n c.header(\"X-Accel-Buffering\", \"no\")\n c.header(\"X-Content-Type-Options\", \"nosniff\")\n\n return streamEvents(c, (q) => {\n async function handler(event: any) {\n q.push(JSON.stringify(event))\n }\n GlobalBus.on(\"event\", handler)\n return () => GlobalBus.off(\"event\", handler)\n })\n },\n )\n .get(\n \"/sync-event\",\n describeRoute({\n summary: \"Subscribe to global sync events\",\n description: \"Get global sync events\",\n operationId: \"global.sync-event.subscribe\",\n responses: {\n 200: {\n description: \"Event stream\",\n content: {\n \"text/event-stream\": {\n schema: resolver(\n z\n .object({\n payload: SyncEvent.payloads(),\n })\n .meta({\n ref: \"SyncEvent\",\n }),\n ),\n },\n },\n },\n },\n }),\n async (c) => {\n log.info(\"global sync event connected\")\n c.header(\"Cache-Control\", \"no-cache, no-transform\")\n c.header(\"X-Accel-Buffering\", \"no\")\n c.header(\"X-Content-Type-Options\", \"nosniff\")\n return streamEvents(c, (q) => {\n return SyncEvent.subscribeAll(({ def, event }) => {\n // TODO: don't pass def, just pass the type (and it should\n // be versioned)\n q.push(\n JSON.stringify({\n payload: {\n ...event,\n type: SyncEvent.versionedType(def.type, def.version),\n },\n }),\n )\n })\n })\n },\n )\n .get(\n \"/config\",\n describeRoute({\n summary: \"Get global configuration\",\n description: \"Retrieve the current global OpenCode configuration settings and preferences.\",\n operationId: \"global.config.get\",\n responses: {\n 200: {\n description: \"Get global config info\",\n content: {\n \"application/json\": {\n schema: resolver(Config.Info),\n },\n },\n },\n },\n }),\n async (c) => {\n return c.json(await Config.getGlobal())\n },\n )\n .patch(\n \"/config\",\n describeRoute({\n summary: \"Update global configuration\",\n description: \"Update global OpenCode configuration settings and preferences.\",\n operationId: \"global.config.update\",\n responses: {\n 200: {\n description: \"Successfully updated global config\",\n content: {\n \"application/json\": {\n schema: resolver(Config.Info),\n },\n },\n },\n ...errors(400),\n },\n }),\n validator(\"json\", Config.Info),\n async (c) => {\n const config = c.req.valid(\"json\")\n const next = await Config.updateGlobal(config)\n return c.json(next)\n },\n )\n .post(\n \"/dispose\",\n describeRoute({\n summary: \"Dispose instance\",\n description: \"Clean up and dispose all OpenCode instances, releasing all resources.\",\n operationId: \"global.dispose\",\n responses: {\n 200: {\n description: \"Global disposed\",\n content: {\n \"application/json\": {\n schema: resolver(z.boolean()),\n },\n },\n },\n },\n }),\n async (c) => {\n await Instance.disposeAll()\n GlobalBus.emit(\"event\", {\n directory: \"global\",\n payload: {\n type: GlobalDisposedEvent.type,\n properties: {},\n },\n })\n return c.json(true)\n },\n )\n .post(\n \"/upgrade\",\n describeRoute({\n summary: \"Upgrade opencode\",\n description: \"Upgrade opencode to the specified version or latest if not specified.\",\n operationId: \"global.upgrade\",\n responses: {\n 200: {\n description: \"Upgrade result\",\n content: {\n \"application/json\": {\n schema: resolver(\n z.union([\n z.object({\n success: z.literal(true),\n version: z.string(),\n }),\n z.object({\n success: z.literal(false),\n error: z.string(),\n }),\n ]),\n ),\n },\n },\n },\n ...errors(400),\n },\n }),\n validator(\n \"json\",\n z.object({\n target: z.string().optional(),\n }),\n ),\n async (c) => {\n const method = await Installation.method()\n if (method === \"unknown\") {\n return c.json({ success: false, error: \"Unknown installation method\" }, 400)\n }\n const target = c.req.valid(\"json\").target || (await Installation.latest(method))\n const result = await Installation.upgrade(method, target)\n .then(() => ({ success: true as const, version: target }))\n .catch((e) => ({ success: false as const, error: e instanceof Error ? e.message : String(e) }))\n if (result.success) {\n GlobalBus.emit(\"event\", {\n directory: \"global\",\n payload: {\n type: Installation.Event.Updated.type,\n properties: { version: target },\n },\n })\n return c.json(result)\n }\n return c.json(result, 500)\n },\n ),\n)\n", "import { Log } from \"@/util/log\"\nimport { Bonjour } from \"bonjour-service\"\n\nconst log = Log.create({ service: \"mdns\" })\n\nexport namespace MDNS {\n let bonjour: Bonjour | undefined\n let currentPort: number | undefined\n\n export function publish(port: number, domain?: string) {\n if (currentPort === port) return\n if (bonjour) unpublish()\n\n try {\n const host = domain ?? \"opencode.local\"\n const name = `opencode-${port}`\n bonjour = new Bonjour()\n const service = bonjour.publish({\n name,\n type: \"http\",\n host,\n port,\n txt: { path: \"/\" },\n })\n\n service.on(\"up\", () => {\n log.info(\"mDNS service published\", { name, port })\n })\n\n service.on(\"error\", (err) => {\n log.error(\"mDNS service error\", { error: err })\n })\n\n currentPort = port\n } catch (err) {\n log.error(\"mDNS publish failed\", { error: err })\n if (bonjour) {\n try {\n bonjour.destroy()\n } catch {}\n }\n bonjour = undefined\n currentPort = undefined\n }\n }\n\n export function unpublish() {\n if (bonjour) {\n try {\n bonjour.unpublishAll()\n bonjour.destroy()\n } catch (err) {\n log.error(\"mDNS unpublish failed\", { error: err })\n }\n bonjour = undefined\n currentPort = undefined\n log.info(\"mDNS service unpublished\")\n }\n }\n}\n", "import { NotFoundError, eq, and } from \"../storage/db\"\nimport { SyncEvent } from \"@/sync\"\nimport { Session } from \"./index\"\nimport { MessageV2 } from \"./message-v2\"\nimport { SessionTable, MessageTable, PartTable } from \"./session.sql\"\nimport { ProjectTable } from \"../project/project.sql\"\nimport { Log } from \"../util/log\"\n\nconst log = Log.create({ service: \"session.projector\" })\n\nfunction foreign(err: unknown) {\n if (typeof err !== \"object\" || err === null) return false\n if (\"code\" in err && err.code === \"SQLITE_CONSTRAINT_FOREIGNKEY\") return true\n return \"message\" in err && typeof err.message === \"string\" && err.message.includes(\"FOREIGN KEY constraint failed\")\n}\n\nexport type DeepPartial<T> = T extends object ? { [K in keyof T]?: DeepPartial<T[K]> | null } : T\n\nfunction grab<T extends object, K1 extends keyof T, X>(\n obj: T,\n field1: K1,\n cb?: (val: NonNullable<T[K1]>) => X,\n): X | undefined {\n if (obj == undefined || !(field1 in obj)) return undefined\n\n const val = obj[field1]\n if (val && typeof val === \"object\" && cb) {\n return cb(val)\n }\n if (val === undefined) {\n throw new Error(\n \"Session update failure: pass `null` to clear a field instead of `undefined`: \" + JSON.stringify(obj),\n )\n }\n return val as X | undefined\n}\n\nexport function toPartialRow(info: DeepPartial<Session.Info>) {\n const obj = {\n id: grab(info, \"id\"),\n project_id: grab(info, \"projectID\"),\n workspace_id: grab(info, \"workspaceID\"),\n parent_id: grab(info, \"parentID\"),\n slug: grab(info, \"slug\"),\n directory: grab(info, \"directory\"),\n title: grab(info, \"title\"),\n version: grab(info, \"version\"),\n share_url: grab(info, \"share\", (v) => grab(v, \"url\")),\n summary_additions: grab(info, \"summary\", (v) => grab(v, \"additions\")),\n summary_deletions: grab(info, \"summary\", (v) => grab(v, \"deletions\")),\n summary_files: grab(info, \"summary\", (v) => grab(v, \"files\")),\n summary_diffs: grab(info, \"summary\", (v) => grab(v, \"diffs\")),\n revert: grab(info, \"revert\"),\n permission: grab(info, \"permission\"),\n time_created: grab(info, \"time\", (v) => grab(v, \"created\")),\n time_updated: grab(info, \"time\", (v) => grab(v, \"updated\")),\n time_compacting: grab(info, \"time\", (v) => grab(v, \"compacting\")),\n time_archived: grab(info, \"time\", (v) => grab(v, \"archived\")),\n }\n\n return Object.fromEntries(Object.entries(obj).filter(([_, val]) => val !== undefined))\n}\n\nexport default [\n SyncEvent.project(Session.Event.Created, (db, data) => {\n db.insert(SessionTable).values(Session.toRow(data.info)).run()\n }),\n\n SyncEvent.project(Session.Event.Updated, (db, data) => {\n const info = data.info\n const row = db\n .update(SessionTable)\n .set(toPartialRow(info))\n .where(eq(SessionTable.id, data.sessionID))\n .returning()\n .get()\n if (!row) throw new NotFoundError({ message: `Session not found: ${data.sessionID}` })\n }),\n\n SyncEvent.project(Session.Event.Deleted, (db, data) => {\n db.delete(SessionTable).where(eq(SessionTable.id, data.sessionID)).run()\n }),\n\n SyncEvent.project(MessageV2.Event.Updated, (db, data) => {\n const time_created = data.info.time.created\n const { id, sessionID, ...rest } = data.info\n\n try {\n db.insert(MessageTable)\n .values({\n id,\n session_id: sessionID,\n time_created,\n data: rest,\n })\n .onConflictDoUpdate({ target: MessageTable.id, set: { data: rest } })\n .run()\n } catch (err) {\n if (!foreign(err)) throw err\n log.warn(\"ignored late message update\", { messageID: id, sessionID })\n }\n }),\n\n SyncEvent.project(MessageV2.Event.Removed, (db, data) => {\n db.delete(MessageTable)\n .where(and(eq(MessageTable.id, data.messageID), eq(MessageTable.session_id, data.sessionID)))\n .run()\n }),\n\n SyncEvent.project(MessageV2.Event.PartRemoved, (db, data) => {\n db.delete(PartTable)\n .where(and(eq(PartTable.id, data.partID), eq(PartTable.session_id, data.sessionID)))\n .run()\n }),\n\n SyncEvent.project(MessageV2.Event.PartUpdated, (db, data) => {\n const { id, messageID, sessionID, ...rest } = data.part\n\n try {\n db.insert(PartTable)\n .values({\n id,\n message_id: messageID,\n session_id: sessionID,\n time_created: data.time,\n data: rest,\n })\n .onConflictDoUpdate({ target: PartTable.id, set: { data: rest } })\n .run()\n } catch (err) {\n if (!foreign(err)) throw err\n log.warn(\"ignored late part update\", { partID: id, messageID, sessionID })\n }\n }),\n]\n", "import z from \"zod\"\nimport sessionProjectors from \"../session/projectors\"\nimport { SyncEvent } from \"@/sync\"\nimport { Session } from \"@/session\"\nimport { SessionTable } from \"@/session/session.sql\"\nimport { Database, eq } from \"@/storage/db\"\n\nexport function initProjectors() {\n SyncEvent.init({\n projectors: sessionProjectors,\n convertEvent: (type, data) => {\n if (type === \"session.updated\") {\n const id = (data as z.infer<typeof Session.Event.Updated.schema>).sessionID\n const row = Database.use((db) => db.select().from(SessionTable).where(eq(SessionTable.id, id)).get())\n\n if (!row) return data\n\n return {\n sessionID: id,\n info: Session.fromRow(row),\n }\n }\n return data\n },\n })\n}\n\ninitProjectors()\n"],
|
|
5
|
-
"mappings": "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",
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["describeRoute", "validator", "resolver", "Hono", "z", "createNodeWebSocket", "chunk", "Workspace", "log", "ServerProxy", "describeRoute", "resolver", "validator", "Hono", "z", "Hono", "resolver", "z", "z", "z", "z", "Hono", "resolver", "z", "Hono", "describeRoute", "validator", "resolver", "z", "Hono", "describeRoute", "resolver", "z", "validator", "Hono", "describeRoute", "validator", "resolver", "z", "Hono", "describeRoute", "resolver", "z", "validator", "Hono", "describeRoute", "validator", "resolver", "z", "Hono", "describeRoute", "resolver", "validator", "z", "Hono", "describeRoute", "validator", "resolver", "z", "Hono", "describeRoute", "resolver", "validator", "z", "stream", "Hono", "describeRoute", "validator", "resolver", "z", "z", "lazy", "fn", "z", "z", "Pty", "log", "lazy", "z", "state", "remove", "list", "get", "create", "update", "resize", "write", "connect", "upgradeWebSocket", "Hono", "describeRoute", "resolver", "validator", "z", "socket", "Hono", "describeRoute", "validator", "resolver", "z", "Hono", "describeRoute", "resolver", "z", "validator", "Hono", "describeRoute", "validator", "resolver", "z", "Hono", "describeRoute", "resolver", "validator", "z", "Hono", "describeRoute", "validator", "resolver", "z", "log", "Hono", "describeRoute", "resolver", "validator", "z", "_", "Hono", "describeRoute", "validator", "resolver", "z", "z", "Hono", "describeRoute", "resolver", "validator", "z", "Hono", "describeRoute", "resolver", "validator", "z", "z", "Hono", "describeRoute", "resolver", "validator", "Hono", "describeRoute", "validator", "resolver", "z", "Effect", "Layer", "ServiceMap", "z", "ProviderAuth", "methods", "authorize", "callback", "mapValues", "log", "Hono", "describeRoute", "resolver", "z", "mapValues", "validator", "Hono", "describeRoute", "resolver", "log", "Hono", "describeRoute", "resolver", "stream", "log", "log", "app", "Hono", "describeRoute", "resolver", "z", "validator", "response", "headers", "Hono", "describeRoute", "resolver", "validator", "streamSSE", "z", "log", "z", "streamSSE", "stream", "Hono", "describeRoute", "resolver", "validator", "log", "MDNS", "log", "Server", "log", "app", "Hono", "describeRoute", "resolver", "z", "validator", "createNodeWebSocket", "server"]
|
|
7
7
|
}
|