MCPcopy Create free account
hub / github.com/UsefulSoftwareCo/executor / runForegroundSession

Function runForegroundSession

apps/cli/src/main.ts:1064–1141  ·  view source on GitHub ↗
(input: {
  port: number;
  hostname: string;
  allowedHosts: ReadonlyArray<string>;
  authToken: string | undefined;
})

Source from the content-addressed store, hash-verified

1062// ---------------------------------------------------------------------------
1063
1064const runForegroundSession = (input: {
1065 port: number;
1066 hostname: string;
1067 allowedHosts: ReadonlyArray<string>;
1068 authToken: string | undefined;
1069}) =>
1070 Effect.gen(function* () {
1071 const displayHost =
1072 input.hostname === "0.0.0.0" || input.hostname === "::" ? "localhost" : input.hostname;
1073 const restoreWebBaseUrl = installDefaultExecutorWebBaseUrl(
1074 `http://${displayHost}:${input.port}`,
1075 );
1076
1077 try {
1078 // No process-level startup lock: the DB ownership lock acquired inside
1079 // startServer (openOwnedLocalDatabase) is the real gate. server.json is
1080 // only an attach hint, and assertNoOtherActiveLocalServer is a friendly
1081 // fast-path that may race without being unsafe.
1082 yield* assertNoOtherActiveLocalServer();
1083 const startResult = yield* startServerOrAttachOwnedDataDir({
1084 port: input.port,
1085 hostname: input.hostname,
1086 allowedHosts: input.allowedHosts,
1087 authToken: input.authToken,
1088 embeddedWebUI,
1089 });
1090 if (startResult.kind === "attached") {
1091 console.log(`Executor is already running at ${startResult.manifest.connection.origin}.`);
1092 return;
1093 }
1094 const server = startResult.server;
1095 const baseUrl = `http://${displayHost}:${server.port}`;
1096 yield* publishLocalServerManifest({
1097 kind: "foreground",
1098 connection: normalizeExecutorServerConnection({
1099 kind: "http",
1100 origin: baseUrl,
1101 displayName: "CLI web",
1102 auth: { kind: "bearer", token: server.authToken },
1103 }),
1104 });
1105
1106 try {
1107 console.log(`Executor is ready.`);
1108 console.log(`Open: ${baseUrl}/?_token=${server.authToken}`);
1109 console.log(`Web: ${baseUrl}`);
1110 console.log(`MCP: ${baseUrl}/mcp`);
1111 console.log(`OpenAPI: ${baseUrl}/api/docs`);
1112 if (input.hostname !== "127.0.0.1" && input.hostname !== "localhost") {
1113 console.log(
1114 `\n⚠ Listening on ${input.hostname}. Executor runs arbitrary commands — only expose on trusted networks.`,
1115 );
1116 if (input.allowedHosts.length > 0) {
1117 console.log(` Extra CORS origins: ${input.allowedHosts.join(", ")}`);
1118 }
1119 }
1120
1121 // Best-effort upgrade nudge. `checkForUpdate` never throws and bounds

Callers 1

main.tsFile · 0.85

Tested by

no test coverage detected