12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- 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<GeneralSettingsConfig> & {
- updateSettings: (settings: Partial<GeneralSettingsConfig>) => Promise<void>;
- getSettings: () => Promise<GeneralSettingsConfig>;
- resetToDefaults: () => Promise<void>;
- };
- // Default settings
- export const DEFAULT_GENERAL_SETTINGS: GeneralSettingsConfig = {
- maxSteps: 100,
- maxActionsPerStep: 5,
- maxFailures: 3,
- useVision: false,
- useVisionForPlanner: false,
- planningInterval: 3,
- };
- const storage = createStorage<GeneralSettingsConfig>('general-settings', DEFAULT_GENERAL_SETTINGS, {
- storageEnum: StorageEnum.Local,
- liveUpdate: true,
- });
- export const generalSettingsStore: GeneralSettingsStorage = {
- ...storage,
- async updateSettings(settings: Partial<GeneralSettingsConfig>) {
- 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);
- },
- };
|