Restore live autonomy with direct runtime and fresh snapshot capacity
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
// Run the built worker without Wrangler's development proxy or file watcher.
|
||||
import './sites-env.mjs';
|
||||
import {createRequire} from 'node:module';
|
||||
import path from 'node:path';
|
||||
import {readdirSync} from 'node:fs';
|
||||
import {unstable_getMiniflareWorkerOptions} from 'wrangler';
|
||||
|
||||
const require = createRequire(import.meta.url);
|
||||
const wranglerRequire = createRequire(require.resolve('wrangler'));
|
||||
const {Miniflare} = wranglerRequire('miniflare');
|
||||
const config = path.resolve('dist/server/wrangler.json');
|
||||
const {workerOptions, externalWorkers, main} = unstable_getMiniflareWorkerOptions(config);
|
||||
if (!main) throw new Error('Build the application before starting the local runtime');
|
||||
const root = path.dirname(main);
|
||||
const modules = readdirSync(root, {recursive: true})
|
||||
.filter(file => /\.(m?js)$/.test(file))
|
||||
.map(file => ({type: 'ESModule', path: path.join(root, file)}));
|
||||
modules.sort((a, b) => a.path === main ? -1 : b.path === main ? 1 : 0);
|
||||
const runtime = new Miniflare({
|
||||
host: process.env.RUNTIME_HOST || (process.argv.includes('--lan') ? '0.0.0.0' : '127.0.0.1'),
|
||||
port: Number(process.env.RUNTIME_PORT || 8787),
|
||||
d1Persist: path.resolve('.wrangler/state/v3/d1'),
|
||||
workers: [{...workerOptions, modules, modulesRoot: root}, ...externalWorkers],
|
||||
});
|
||||
console.log(`AzerothAI local runtime ready: ${await runtime.ready}`);
|
||||
for (const signal of ['SIGINT', 'SIGTERM']) {
|
||||
process.once(signal, async () => { await runtime.dispose(); process.exit(0); });
|
||||
}
|
||||
Reference in New Issue
Block a user