mirror of
https://github.com/DayuanJiang/next-ai-draw-io.git
synced 2026-01-02 22:32:27 +08:00
* feat: add multi-provider model configuration - Add model config dialog for managing multiple AI providers - Support for OpenAI, Anthropic, Google, Azure, Bedrock, OpenRouter, DeepSeek, SiliconFlow, Ollama, and AI Gateway - Add model selector dropdown in chat panel header - Add API key validation endpoint - Add custom model ID input with keyboard navigation - Fix hover highlight in Command component - Add suggested models for each provider including latest Claude 4.5 series - Store configuration locally in browser * feat: improve model config UI and move selector to chat input - Move model selector from header to chat input (left of send button) - Add per-model validation status (queued, running, valid, invalid) - Filter model selector to only show verified models - Add editable model IDs in config dialog - Add custom model input field alongside suggested models dropdown - Fix hover states on provider buttons and select triggers - Update OpenAI suggested models with GPT-5 series - Add alert-dialog component for delete confirmation * refactor: revert shadcn component changes, apply hover fix at usage site * feat: add AWS credentials support for Bedrock provider - Add AWS Access Key ID, Secret Access Key, Region fields for Bedrock - Show different credential fields based on provider type - Update validation API to handle Bedrock with AWS credentials - Add region selector with common AWS regions * fix: reset Test button after validation completes * fix: reset validation button to Test after success * fix: complete bedrock support and UI/UX improvements - Add bedrock to ALLOWED_CLIENT_PROVIDERS for client credentials - Pass AWS credentials through full chain (headers → API → provider) - Replace non-existent GPT-5 models with real ones (o1, o3-mini) - Add accessibility: aria-labels, focus-visible rings, inline errors - Add more AWS regions (Ohio, London, Paris, Mumbai, Seoul, São Paulo) - Fix setTimeout cleanup with useRef on component unmount - Fix TypeScript type consistency in getSelectedAIConfig fallback * chore: remove unused code - Remove unused setAccessCodeRequired state in chat-panel.tsx - Remove unused getSelectedModel export in model-config.ts * fix: UI/UX improvements for model configuration dialog - Add gradient header styling with icon badge - Change Configuration section icon from Key to Settings2 - Add duplicate model detection with warning banner and inline removal - Filter out already-added models from suggestions dropdown - Add type-to-confirm for deleting providers with 3+ models - Enhance delete confirmation dialog with warning icon - Improve model selector discoverability (show model name + chevron) - Add truncation for long model names with title tooltip - Remove AI provider settings from Settings dialog (now in Model Config) - Extract ValidationButton into reusable component * fix: prevent duplicate model IDs within same provider - Block adding model if ID already exists in provider - Block editing model ID to match existing model in provider * fix: improve duplicate model ID notifications - Add toast notification when trying to add duplicate model - Allow free typing when editing model ID, validate on blur - Show warning toast instead of blocking input * fix: improve duplicate model validation UX in config dialog - Add inline error display for duplicate model IDs - Show red border on input when error exists - Validate on blur with shake animation for edit errors - Prevent saving empty model names - Clear errors when user starts typing - Simplify error styling (small red text, no heavy chips)
32 lines
1.1 KiB
TypeScript
32 lines
1.1 KiB
TypeScript
// Centralized localStorage keys
|
|
// Consolidates all storage keys from chat-panel.tsx and settings-dialog.tsx
|
|
|
|
export const STORAGE_KEYS = {
|
|
// Chat data
|
|
messages: "next-ai-draw-io-messages",
|
|
xmlSnapshots: "next-ai-draw-io-xml-snapshots",
|
|
diagramXml: "next-ai-draw-io-diagram-xml",
|
|
sessionId: "next-ai-draw-io-session-id",
|
|
|
|
// Quota tracking
|
|
requestCount: "next-ai-draw-io-request-count",
|
|
requestDate: "next-ai-draw-io-request-date",
|
|
tokenCount: "next-ai-draw-io-token-count",
|
|
tokenDate: "next-ai-draw-io-token-date",
|
|
tpmCount: "next-ai-draw-io-tpm-count",
|
|
tpmMinute: "next-ai-draw-io-tpm-minute",
|
|
|
|
// Settings
|
|
accessCode: "next-ai-draw-io-access-code",
|
|
closeProtection: "next-ai-draw-io-close-protection",
|
|
accessCodeRequired: "next-ai-draw-io-access-code-required",
|
|
aiProvider: "next-ai-draw-io-ai-provider",
|
|
aiBaseUrl: "next-ai-draw-io-ai-base-url",
|
|
aiApiKey: "next-ai-draw-io-ai-api-key",
|
|
aiModel: "next-ai-draw-io-ai-model",
|
|
|
|
// Multi-model configuration
|
|
modelConfigs: "next-ai-draw-io-model-configs",
|
|
selectedModelId: "next-ai-draw-io-selected-model-id",
|
|
} as const
|