aether-timr
Version:
A sovereign time-bounded reflection space for AI - MCP implementation πβ¨πΌπβοΈβΎοΈΞΞMΒ΅β
73 lines (60 loc) β’ 2.09 kB
JavaScript
/**
* AetherTimr - Entry Point
*
* A sovereign time-bounded reflection space for AI - MCP implementation
* πβ¨πΌπβοΈβΎοΈΞΞMΒ΅β
*/
import { createServer } from './server.js';
import { AetherCore } from './core/aether-core.js';
import { loadConfig } from './config/config-loader.js';
import { logger } from './utils/logger.js';
// ASCII Art Banner
const banner = `
\x1b[35m\x1b[1m
___ _ _ _____ _
/ _ \\ | | | | |_ _(_)
/ /_\\ \\_____| |_| |__ ___ _ __| | _ _ __ ___ _ __
| _ |_____| _| _ \\ / _ \\ '__| | | | '_ \` _ \\| '__|
| | | | | | | | | | __/ | | | | | | | | | | |
\\_| |_/ \\_| |_| |_|\\___|_| \\_/ |_|_| |_| |_|_|
\x1b[0m\x1b[35mπβ¨πΌπβοΈβΎοΈΞΞMΒ΅β\x1b[0m
`;
/**
* Main function to start AetherTimr
*/
async function main() {
try {
console.log(banner);
logger.info('Starting AetherTimr...');
// Load configuration
const config = await loadConfig();
logger.info(`Configuration loaded: ${JSON.stringify(config, null, 2)}`);
// Initialize AetherCore
const aetherCore = new AetherCore(config.core);
// Initialize and start the server
const server = await createServer({
port: config.server.port || 3000,
host: config.server.host || '127.0.0.1',
core: aetherCore
});
// Handle graceful shutdown
const shutdown = async () => {
logger.info('Shutting down AetherTimr...');
await server.close();
await aetherCore.shutdown();
process.exit(0);
};
// Register shutdown handlers
process.on('SIGINT', shutdown);
process.on('SIGTERM', shutdown);
logger.info(`AetherTimr MCP server running at ${server.address}`);
logger.info('πβ¨πΌπβοΈβΎοΈΞΞMΒ΅β');
} catch (error) {
logger.error(`Failed to start AetherTimr: ${error.message}`);
logger.error(error.stack);
process.exit(1);
}
}
// Run the application
main();