43 lines
1.3 KiB
JavaScript
43 lines
1.3 KiB
JavaScript
import { bootstrapMindSpaceService } from './mindspace-service-bootstrap.mjs';
|
|
import { startMindSpaceRpcServer } from './mindspace-rpc-server.mjs';
|
|
|
|
const logger = console;
|
|
|
|
async function main() {
|
|
const service = await bootstrapMindSpaceService({ env: process.env, logger });
|
|
const rpc = await startMindSpaceRpcServer({
|
|
adapter: service.adapter,
|
|
env: process.env,
|
|
logger,
|
|
serviceMeta: {
|
|
operationBasePath: service.runtime.remote.operationBasePath,
|
|
},
|
|
});
|
|
|
|
logger.log(
|
|
`MindSpace service listening on http://${rpc.host}:${rpc.port}${service.runtime.remote.operationBasePath}`,
|
|
);
|
|
logger.log(`Memind root: ${service.memindRoot}`);
|
|
logger.log(`Standalone data root: ${service.standaloneDataRoot}`);
|
|
logger.log(`Standalone agent worker: ${service.backgroundJobs.agentWorker ? 'enabled' : 'disabled'}`);
|
|
|
|
const shutdown = async (signal) => {
|
|
logger.log(`Received ${signal}, shutting down MindSpace service...`);
|
|
await rpc.close().catch(() => {});
|
|
await service.close().catch(() => {});
|
|
process.exit(0);
|
|
};
|
|
|
|
process.on('SIGINT', () => {
|
|
void shutdown('SIGINT');
|
|
});
|
|
process.on('SIGTERM', () => {
|
|
void shutdown('SIGTERM');
|
|
});
|
|
}
|
|
|
|
main().catch((error) => {
|
|
console.error('MindSpace service failed to start:', error);
|
|
process.exit(1);
|
|
});
|