Files
mnote/wolai-frontend/src/lib/constants.ts
T
2026-04-13 19:21:42 +08:00

128 lines
3.7 KiB
TypeScript

/**
* 全局常量定义
* 集中管理项目中的魔法数字和硬编码值
*/
// ============================================
// 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));