feat: add vault ai agent permission modes
This commit is contained in:
@@ -1,12 +1,17 @@
|
||||
import type { VaultConfig } from '../types'
|
||||
import {
|
||||
DEFAULT_AI_AGENT_PERMISSION_MODE,
|
||||
normalizeAiAgentPermissionMode,
|
||||
} from '../lib/aiAgentPermissionMode'
|
||||
|
||||
type SaveFn = (config: VaultConfig) => void
|
||||
type Listener = () => void
|
||||
|
||||
const DEFAULT_CONFIG: VaultConfig = {
|
||||
zoom: null, view_mode: null, editor_mode: null, note_layout: null,
|
||||
ai_agent_permission_mode: DEFAULT_AI_AGENT_PERMISSION_MODE,
|
||||
tag_colors: null, status_colors: null, property_display_modes: null,
|
||||
inbox: null,
|
||||
inbox: null, allNotes: null,
|
||||
}
|
||||
|
||||
let config: VaultConfig = DEFAULT_CONFIG
|
||||
@@ -18,7 +23,7 @@ export function getVaultConfig(): VaultConfig {
|
||||
}
|
||||
|
||||
export function bindVaultConfigStore(initial: VaultConfig, save: SaveFn): void {
|
||||
config = initial
|
||||
config = normalizeVaultConfig(initial)
|
||||
saveFn = save
|
||||
notify()
|
||||
}
|
||||
@@ -29,7 +34,7 @@ export function resetVaultConfigStore(): void {
|
||||
}
|
||||
|
||||
export function updateVaultConfigField<K extends keyof VaultConfig>(key: K, value: VaultConfig[K]): void {
|
||||
config = { ...config, [key]: value }
|
||||
config = normalizeVaultConfig({ ...config, [key]: value })
|
||||
saveFn?.(config)
|
||||
notify()
|
||||
}
|
||||
@@ -42,3 +47,11 @@ export function subscribeVaultConfig(listener: Listener): () => void {
|
||||
function notify(): void {
|
||||
for (const fn of listeners) fn()
|
||||
}
|
||||
|
||||
function normalizeVaultConfig(next: VaultConfig): VaultConfig {
|
||||
return {
|
||||
...DEFAULT_CONFIG,
|
||||
...next,
|
||||
ai_agent_permission_mode: normalizeAiAgentPermissionMode(next.ai_agent_permission_mode),
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user