mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-02-03 08:53:36 +00:00
* feat: add Claude API provider profiles for alternative endpoints Add support for managing multiple Claude-compatible API endpoints (z.AI GLM, AWS Bedrock, etc.) through provider profiles in settings. Features: - New ClaudeApiProfile type with base URL, API key, model mappings - Pre-configured z.AI GLM template with correct model names - Profile selector in Settings > Claude > API Profiles - Clean switching between profiles and direct Anthropic API - Immediate persistence to prevent data loss on restart Profile support added to all execution paths: - Agent service (chat) - Ideation service - Auto-mode service (feature agents, enhancements) - Simple query service (title generation, descriptions, etc.) - Backlog planning, commit messages, spec generation - GitHub issue validation, suggestions Environment variables set when profile is active: - ANTHROPIC_BASE_URL, ANTHROPIC_AUTH_TOKEN/API_KEY - ANTHROPIC_DEFAULT_HAIKU/SONNET/OPUS_MODEL - API_TIMEOUT_MS, CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC
55 lines
1.7 KiB
TypeScript
55 lines
1.7 KiB
TypeScript
import { darkThemes, lightThemes } from '@/config/theme-options';
|
|
|
|
/**
|
|
* Shared constants for theme submenu positioning and layout.
|
|
* Used across project-context-menu and project-selector-with-options components
|
|
* to ensure consistent viewport-aware positioning and styling.
|
|
*/
|
|
export const THEME_SUBMENU_CONSTANTS = {
|
|
/**
|
|
* Estimated total height of the theme submenu content in pixels.
|
|
* Includes all theme options, headers, padding, and "Use Global" button.
|
|
*/
|
|
ESTIMATED_SUBMENU_HEIGHT: 620,
|
|
|
|
/**
|
|
* Padding from viewport edges to prevent submenu overflow.
|
|
* Applied to both top and bottom edges when calculating available space.
|
|
*/
|
|
COLLISION_PADDING: 32,
|
|
|
|
/**
|
|
* Vertical offset from context menu top to the "Project Theme" button.
|
|
* Used for calculating submenu position relative to trigger button.
|
|
*/
|
|
THEME_BUTTON_OFFSET: 50,
|
|
|
|
/**
|
|
* Height reserved for submenu header area (includes "Use Global" button and separator).
|
|
* Subtracted from maxHeight to get scrollable content area height.
|
|
*/
|
|
SUBMENU_HEADER_HEIGHT: 80,
|
|
} as const;
|
|
|
|
export const PROJECT_DARK_THEMES = darkThemes.map((opt) => ({
|
|
value: opt.value,
|
|
label: opt.label,
|
|
icon: opt.Icon,
|
|
color: opt.color,
|
|
}));
|
|
|
|
export const PROJECT_LIGHT_THEMES = lightThemes.map((opt) => ({
|
|
value: opt.value,
|
|
label: opt.label,
|
|
icon: opt.Icon,
|
|
color: opt.color,
|
|
}));
|
|
|
|
export const SIDEBAR_FEATURE_FLAGS = {
|
|
hideTerminal: import.meta.env.VITE_HIDE_TERMINAL === 'true',
|
|
hideWiki: import.meta.env.VITE_HIDE_WIKI === 'true',
|
|
hideRunningAgents: import.meta.env.VITE_HIDE_RUNNING_AGENTS === 'true',
|
|
hideContext: import.meta.env.VITE_HIDE_CONTEXT === 'true',
|
|
hideSpecEditor: import.meta.env.VITE_HIDE_SPEC_EDITOR === 'true',
|
|
} as const;
|