| 123456789101112131415161718192021222324252627282930313233343536373839 |
- import { applyConfigToProcessEnv } from './pilotdeckConfig.js';
- import { closeMemoryServices, startMemoryScheduler } from './memoryService.js';
- // Applies a validated config to every running subsystem (env, memory) and
- // returns a per-subsystem summary so the UI can show what actually reloaded.
- // CCR router / EdgeClaw IM gateway reload paths were removed — both retired
- // during the PilotDeck-only migration and the schema no longer carries them.
- export async function reloadPilotDeckConfig(config) {
- const result = {
- processEnv: { reloaded: false },
- memory: { reloaded: false },
- proxy: { reloaded: false, skipped: false },
- };
- applyConfigToProcessEnv(config);
- result.processEnv.reloaded = true;
- closeMemoryServices();
- if (config.memory?.enabled) {
- startMemoryScheduler();
- }
- result.memory.reloaded = true;
- result.memory.scheduler = config.memory?.enabled ? 'started' : 'stopped';
- result.proxy = await new Promise((resolve) => {
- const handled = process.emit('pilotdeck:restart-proxy', (error) => {
- if (error) {
- resolve({ reloaded: false, error: error instanceof Error ? error.message : String(error) });
- } else {
- resolve({ reloaded: true });
- }
- });
- if (!handled) {
- resolve({ reloaded: false, skipped: true, reason: 'proxy restart hook is not registered in this process' });
- }
- });
- return result;
- }
|