andy-stack_vaultkeeper-ai/Enums/ChatMode.ts
Andrew Beal 8823e3cf23 refactor: convert ChatMode enum to string literals and improve state management
- Change ChatMode enum values from numeric (0,1,2) to string literals ("read_only", "edit", "planning")
- Move chat mode state management from ChatWindow to SettingsService with persistence
- Add chat mode awareness to system prompts and tool validation
- Replace Map with WeakMap for settings subscribers to prevent memory leaks
- Add type-safe event handlers to EventService
- Update esbuild and TypeScript targets from ES2018/ES2020 to ES2022
- Add requiresEditModeEnabled() validation to prevent tool hallucination in read-only mode
- Update all test fixtures to include chatMode in mock settings
2026-05-05 20:54:34 +01:00

20 lines
No EOL
479 B
TypeScript

export enum ChatMode {
ReadOnly = "read_only",
Edit = "edit",
Planning = "planning"
}
export function chatModeAllowsEdits(mode: ChatMode) {
return mode === ChatMode.Edit || mode === ChatMode.Planning;
}
export function iconForChatMode(mode: ChatMode) {
switch (mode) {
case ChatMode.ReadOnly:
return "eye";
case ChatMode.Edit:
return "pencil";
case ChatMode.Planning:
return "list-checks";
}
}