import { create } from 'zustand' type CaptureMode = 'NONE' | 'INPUT' | 'OUTPUT' | 'BOTH' interface TracingState { /** Key: applicationName → { processorId: captureMode } */ tracedProcessors: Record> isTraced: (app: string, processorId: string) => boolean /** Toggle processor tracing (BOTH on, remove on off). Returns the full map for the app. */ toggleProcessor: (app: string, processorId: string) => Record } export const useTracingStore = create((set, get) => ({ tracedProcessors: {}, isTraced: (app, processorId) => processorId in (get().tracedProcessors[app] ?? {}), toggleProcessor: (app, processorId) => { const current = { ...(get().tracedProcessors[app] ?? {}) } if (processorId in current) delete current[processorId] else current[processorId] = 'BOTH' set((state) => ({ tracedProcessors: { ...state.tracedProcessors, [app]: current }, })) return current }, }))