diff --git a/packages/opencode/script/build-node.ts b/packages/opencode/script/build-node.ts index 906279e715..17bc86307a 100644 --- a/packages/opencode/script/build-node.ts +++ b/packages/opencode/script/build-node.ts @@ -1,6 +1,54 @@ +#!/usr/bin/env bun + +import fs from "fs" +import path from "path" +import { fileURLToPath } from "url" + +const __filename = fileURLToPath(import.meta.url) +const __dirname = path.dirname(__filename) +const dir = path.resolve(__dirname, "..") + +process.chdir(dir) + +// Load migrations from migration directories +const migrationDirs = ( + await fs.promises.readdir(path.join(dir, "migration"), { + withFileTypes: true, + }) +) + .filter((entry) => entry.isDirectory() && /^\d{4}\d{2}\d{2}\d{2}\d{2}\d{2}/.test(entry.name)) + .map((entry) => entry.name) + .sort() + +const migrations = await Promise.all( + migrationDirs.map(async (name) => { + const file = path.join(dir, "migration", name, "migration.sql") + const sql = await Bun.file(file).text() + const match = /^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/.exec(name) + const timestamp = match + ? Date.UTC( + Number(match[1]), + Number(match[2]) - 1, + Number(match[3]), + Number(match[4]), + Number(match[5]), + Number(match[6]), + ) + : 0 + return { sql, timestamp, name } + }), +) +console.log(`Loaded ${migrations.length} migrations`) + await Bun.build({ target: "node", entrypoints: ["./src/node.ts"], outdir: "./dist", format: "esm", + external: ["jsonc-parser"], + define: { + OPENCODE_MIGRATIONS: JSON.stringify(migrations), + }, }) + +console.log("Build complete") diff --git a/packages/opencode/src/node.ts b/packages/opencode/src/node.ts index b0e653d6cc..f2e2e5fe95 100644 --- a/packages/opencode/src/node.ts +++ b/packages/opencode/src/node.ts @@ -1 +1,8 @@ -export { Server } from "./server/server" +import { Server } from "./server/server" + +const result = await Server.listen({ + port: 1338, + hostname: "0.0.0.0", +}) + +console.log(result) diff --git a/packages/opencode/src/server/server.ts b/packages/opencode/src/server/server.ts index 601dc85a8f..ab7394daa1 100644 --- a/packages/opencode/src/server/server.ts +++ b/packages/opencode/src/server/server.ts @@ -25,7 +25,7 @@ import { WorkspaceContext } from "../control-plane/workspace-context" import { WorkspaceRouterMiddleware } from "../control-plane/workspace-router-middleware" import { ProjectRoutes } from "./routes/project" import { SessionRoutes } from "./routes/session" -import { PtyRoutes } from "./routes/pty" +// import { PtyRoutes } from "./routes/pty" import { McpRoutes } from "./routes/mcp" import { FileRoutes } from "./routes/file" import { ConfigRoutes } from "./routes/config" @@ -559,7 +559,7 @@ export namespace Server { }) }, ) - .route("/pty", PtyRoutes(ws.upgradeWebSocket)) + // .route("/pty", PtyRoutes(ws.upgradeWebSocket)) .all("/*", async (c) => { const path = c.req.path