mirror of
https://github.com/different-ai/openwork
synced 2026-05-12 18:16:24 +02:00
49 lines
1.5 KiB
TypeScript
49 lines
1.5 KiB
TypeScript
#!/usr/bin/env bun
|
|
|
|
import { parseCliArgs, printHelp, resolveServerConfig } from "./config.js";
|
|
import { createServerLogger, startServer } from "./server.js";
|
|
import pkg from "../package.json" with { type: "json" };
|
|
|
|
const args = parseCliArgs(process.argv.slice(2));
|
|
|
|
if (args.help) {
|
|
printHelp();
|
|
process.exit(0);
|
|
}
|
|
|
|
if (args.version) {
|
|
console.log(pkg.version);
|
|
process.exit(0);
|
|
}
|
|
|
|
const config = await resolveServerConfig(args);
|
|
const logger = createServerLogger(config);
|
|
const server = startServer(config);
|
|
|
|
const url = `http://${config.host}:${server.port}`;
|
|
logger.log("info", `OpenWork server listening on ${url}`);
|
|
|
|
if (config.tokenSource === "generated") {
|
|
logger.log("info", `Client token: ${config.token}`);
|
|
}
|
|
|
|
if (config.hostTokenSource === "generated") {
|
|
logger.log("info", `Host token: ${config.hostToken}`);
|
|
}
|
|
|
|
if (config.workspaces.length === 0) {
|
|
logger.log("info", "No workspaces configured. Add --workspace or update server.json.");
|
|
} else {
|
|
logger.log("info", `Workspaces: ${config.workspaces.length}`);
|
|
}
|
|
|
|
if (args.verbose) {
|
|
logger.log("info", `Config path: ${config.configPath ?? "unknown"}`);
|
|
logger.log("info", `Read-only: ${config.readOnly ? "true" : "false"}`);
|
|
logger.log("info", `Approval: ${config.approval.mode} (${config.approval.timeoutMs}ms)`);
|
|
logger.log("info", `CORS origins: ${config.corsOrigins.join(", ")}`);
|
|
logger.log("info", `Authorized roots: ${config.authorizedRoots.join(", ")}`);
|
|
logger.log("info", `Token source: ${config.tokenSource}`);
|
|
logger.log("info", `Host token source: ${config.hostTokenSource}`);
|
|
}
|