/** * 全局常量定义 * 集中管理项目中的魔法数字和硬编码值 */ // ============================================ // AI Agent 相关常量 // ============================================ /** AI Agent 默认最大步数 */ export const DEFAULT_AGENT_MAX_STEPS = 10; /** AI Agent 最大步数限制 */ export const MAX_AGENT_STEPS = 24; /** AI Agent 最小步数 */ export const MIN_AGENT_STEPS = 1; /** 客户端工具默认超时时间(毫秒) */ export const DEFAULT_CLIENT_TOOL_TIMEOUT_MS = 60_000; // ============================================ // 网络请求相关常量 // ============================================ /** OpenAI 兼容 API 最小超时(毫秒) */ export const MIN_API_TIMEOUT_MS = 500; /** OpenAI 兼容 API 默认超时(毫秒) */ export const DEFAULT_API_TIMEOUT_MS = 20_000; /** OpenAI 兼容 API 最大超时(毫秒) */ export const MAX_API_TIMEOUT_MS = 120_000; /** OpenAI 最小输出 token 数 */ export const MIN_COMPLETION_TOKENS = 64; /** OpenAI 最大输出 token 数 */ export const MAX_COMPLETION_TOKENS = 16_000; // ============================================ // 编辑器相关常量 // ============================================ /** 内容加载延迟时间(毫秒) */ export const CONTENT_LOADING_DELAY_MS = 200; /** 编辑器块标题最小级别 */ export const MIN_BLOCK_LEVEL = 1; /** 编辑器块标题最大级别 */ export const MAX_BLOCK_LEVEL = 5; /** 零延迟 setTimeout(用于将任务推入事件循环) */ export const ZERO_DELAY_MS = 0; // ============================================ // 思维导图相关常量 // ============================================ /** 思维导图最大附件数量 */ export const MAX_MINDMAP_ATTACHMENTS = 12; /** 思维导图最大选中节点数 */ export const MAX_SELECTED_NODES = 6; // ============================================ // RAG 搜索相关常量 // ============================================ /** RAG 默认搜索结果数量 */ export const DEFAULT_RAG_TOP_K = 12; /** RAG 默认 chunk 结果数量 */ export const DEFAULT_RAG_CHUNK_TOP_K = 12; /** 文档搜索默认结果数量 */ export const DEFAULT_DOCS_SEARCH_LIMIT = 12; /** 文档读取默认最大字符数 */ export const DEFAULT_DOCS_READ_MAX_CHARS = 2500; /** 文档获取默认最大块数 */ export const DEFAULT_DOC_GET_MAX_BLOCKS = 80; /** 文档查找默认最大结果数 */ export const DEFAULT_DOC_FIND_MAX_RESULTS = 8; // ============================================ // 资产/附件相关常量 // ============================================ /** 思维导图从资产转换最大项目数 */ export const DEFAULT_ASSET_TO_MINDMAP_MAX_ITEMS = 120; /** 搜索默认结果数量 */ export const DEFAULT_SEARCH_COUNT = 6; // ============================================ // UI 相关常量 // ============================================ /** 表格嵌入预览最小高度(像素) */ export const MIN_EMBED_HEIGHT = 120; /** 表格嵌入预览最大高度(像素) */ export const MAX_EMBED_HEIGHT = 600; /** 表格嵌入预览默认高度(像素) */ export const DEFAULT_EMBED_HEIGHT = 300; /** 上下文菜单距离窗口边缘的最小内边距(像素) */ export const CONTEXT_MENU_PADDING = 12; // ============================================ // 工具函数 // ============================================ /** * 将数值限制在指定范围内 * @param n 输入值 * @param min 最小值 * @param max 最大值 * @returns 限制后的值 */ export const clamp = (n: number, min: number, max: number): number => Math.max(min, Math.min(max, n));