128 lines
3.7 KiB
TypeScript
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));
|