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

Function runForegroundSession

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

Source from the content-addressed store, hash-verified

1104// ---------------------------------------------------------------------------
1105
1106const runForegroundSession = (input: {
1107 port: number;
1108 hostname: string;
1109 allowedHosts: ReadonlyArray<string>;
1110 authToken: string | undefined;
1111}) =>
1112 Effect.gen(function* () {
1113 const displayHost =
1114 input.hostname === "0.0.0.0" || input.hostname === "::" ? "localhost" : input.hostname;
1115 const restoreWebBaseUrl = installDefaultExecutorWebBaseUrl(
1116 `http://${displayHost}:${input.port}`,
1117 );
1118
1119 try {
1120 // No process-level startup lock: the DB ownership lock acquired inside
1121 // startServer (openOwnedLocalDatabase) is the real gate. server.json is
1122 // only an attach hint, and assertNoOtherActiveLocalServer is a friendly
1123 // fast-path that may race without being unsafe.
1124 yield* assertNoOtherActiveLocalServer();
1125 const startResult = yield* startServerOrAttachOwnedDataDir({
1126 port: input.port,
1127 hostname: input.hostname,
1128 allowedHosts: input.allowedHosts,
1129 authToken: input.authToken,
1130 embeddedWebUI,
1131 });
1132 if (startResult.kind === "attached") {
1133 console.log(`Executor is already running at ${startResult.manifest.connection.origin}.`);
1134 return;
1135 }
1136 const server = startResult.server;
1137 const baseUrl = `http://${displayHost}:${server.port}`;
1138 yield* publishLocalServerManifest({
1139 kind: "foreground",
1140 connection: normalizeExecutorServerConnection({
1141 kind: "http",
1142 origin: baseUrl,
1143 displayName: "CLI web",
1144 auth: { kind: "bearer", token: server.authToken },
1145 }),
1146 });
1147
1148 try {
1149 console.log(`Executor is ready.`);
1150 console.log(`Open: ${baseUrl}/?_token=${server.authToken}`);
1151 console.log(`Web: ${baseUrl}`);
1152 console.log(`MCP: ${baseUrl}/mcp`);
1153 console.log(`OpenAPI: ${baseUrl}/api/docs`);
1154 if (input.hostname !== "127.0.0.1" && input.hostname !== "localhost") {
1155 console.log(
1156 `\n⚠ Listening on ${input.hostname}. Executor runs arbitrary commands — only expose on trusted networks.`,
1157 );
1158 if (input.allowedHosts.length > 0) {
1159 console.log(` Extra CORS origins: ${input.allowedHosts.join(", ")}`);
1160 }
1161 }
1162
1163 // Best-effort upgrade nudge. `checkForUpdate` never throws and bounds

Callers 1

main.tsFile · 0.85

Tested by

no test coverage detected