import { StorageEnum } from '../base/enums'; import { createStorage } from '../base/base'; import type { BaseStorage } from '../base/types'; // Interface for general settings configuration export interface GeneralSettingsConfig { maxSteps: number; maxActionsPerStep: number; maxFailures: number; useVision: boolean; useVisionForPlanner: boolean; planningInterval: number; } export type GeneralSettingsStorage = BaseStorage & { updateSettings: (settings: Partial) => Promise; getSettings: () => Promise; resetToDefaults: () => Promise; }; // Default settings export const DEFAULT_GENERAL_SETTINGS: GeneralSettingsConfig = { maxSteps: 100, maxActionsPerStep: 5, maxFailures: 3, useVision: false, useVisionForPlanner: false, planningInterval: 3, }; const storage = createStorage('general-settings', DEFAULT_GENERAL_SETTINGS, { storageEnum: StorageEnum.Local, liveUpdate: true, }); export const generalSettingsStore: GeneralSettingsStorage = { ...storage, async updateSettings(settings: Partial) { const currentSettings = (await storage.get()) || DEFAULT_GENERAL_SETTINGS; await storage.set({ ...currentSettings, ...settings, }); }, async getSettings() { const settings = await storage.get(); return settings || DEFAULT_GENERAL_SETTINGS; }, async resetToDefaults() { await storage.set(DEFAULT_GENERAL_SETTINGS); }, };