将"以光谱为中心"的观测数据架构升级为 (Source × ProductType) 双轴正交模型,
光谱降级为与光变/测光/图像平级的产品类型之一;同步把分散的工具、API、缓存表
收敛为统一入口。新增 Gaia 光变曲线(EPOCH_PHOTOMETRY)支持。
【架构】services/spectra 整体替换为 services/observation(双轴正交)
- Source(LAMOST/Gaia/SDSS/DESI)× ProductType(Spectrum/LightCurve/Photometry/Image)
正交组合,新增源/产品类型为纯加法(OCP)
- ObservationFetcher trait + ObservationRegistry:每个有效组合实现一个 fetcher,
启动时注册;SDSS specobj/APOGEE 共用 key 按 subtype 二级路由
- cone 缓存逻辑模板方法化(trait 默认方法),消除各源 4 份重复代码
- 多文件 Artifact 模型:一个逻辑产物可含多文件(如 Gaia 光变 G/BP/RP 三波段各一 FITS)
- 统一编排 dispatch.rs:search(仅检索)/ download(检索+下载),支持坐标模式
(cone→选源→下载)与标识符模式(直按 ID 下载)双输入
【Agent 工具整合】26 → 24
- 新增 find_observation:跨源×跨产品×双模式统一观测下载,取代 find_spectrum
- catalog_operation 升级为 6 合 1(search/describe/query/cone/export/lookup),
取代独立的 query_vizier + cone_search
- citation_network + library_search 合并为 library.rs
【API 路由】
- 新增 /observation/{search,download,capabilities,list} 命名空间
- 移除 /catalog/{crossmatch,spectrum/download,spectrum/list}
- GET /observation/capabilities 暴露 registry 能力清单,前端动态渲染源/产品/版本
下拉(不再硬编码各源支持矩阵)
【数据库迁移】
- 新表 observation_cache:新增 product 列 + artifacts_json(多文件产物),无 TTL
(观测数据不可变,区别于 vizier_query_cache 的 7 天 TTL)
- 20260705140001:spectrum_cache 旧数据迁入 observation_cache,单文件→单元素 artifacts
【前端】
- 新 ObservationPanel(988 行):双视图(检索下载 / 缓存库),选项由 capabilities 动态生成
- 新 useObservation hook、ObservationResultCard、observation/constants、utils/apiError
【安全与韧性加固】
- sessions 锁 Mutex → RwLock(读多写少,降低争用)
- 新增 upload_rate_limiter;login_rate_limiter 容量保护(10000 上限,超限清最旧一半)
- bookmarklet API 密钥 SHA-1 → SHA-256;ADMIN_PASSWORD 长度上限 128
- *_TIMEOUT_SECS / EMBEDDING_DIM 非法值告警并回退默认;DB_POOL_SIZE 可配置(原硬编码 5)
- sqlite-vec 注册逻辑下沉至 utils::register_sqlite_vec_extension
88 lines
2.5 KiB
TypeScript
88 lines
2.5 KiB
TypeScript
// dashboard/src/components/agent/toolDisplayNames.ts
|
|
// 工具名称 → 人类可读中文名称(所有面板共用)
|
|
|
|
export function getToolDisplayName(name: string): string {
|
|
switch (name) {
|
|
// 文件系统工具
|
|
case 'read_file':
|
|
return '读取文件内容';
|
|
case 'grep_files':
|
|
return '正则搜索文件';
|
|
case 'glob_files':
|
|
return '通配符匹配文件';
|
|
case 'run_bash':
|
|
return '执行 Shell 命令';
|
|
case 'file_write':
|
|
return '写入文件';
|
|
case 'file_edit':
|
|
return '精确编辑文件';
|
|
// 天文科研工具
|
|
case 'search_papers':
|
|
return '检索 ADS/arXiv 文献';
|
|
case 'get_paper_metadata':
|
|
return '获取文献详细元数据';
|
|
case 'download_paper':
|
|
return '下载文献全文资源';
|
|
case 'parse_paper':
|
|
return '结构化解析文献内容';
|
|
case 'get_paper_content':
|
|
return '获取文献全文内容';
|
|
case 'rag_search':
|
|
return '检索馆藏知识库';
|
|
case 'query_target':
|
|
return '查询天体物理参数 (CDS)';
|
|
case 'query_vizier':
|
|
return '查询 VizieR 星表';
|
|
case 'cone_search':
|
|
return '锥形检索天体';
|
|
case 'find_observation':
|
|
return '下载观测数据';
|
|
case 'catalog_operation':
|
|
return '星表操作';
|
|
case 'save_note':
|
|
return '保存文献手札';
|
|
// Agent 控制工具
|
|
case 'todo_write':
|
|
return '管理任务列表';
|
|
case 'compress_context':
|
|
return '压缩上下文窗口';
|
|
case 'load_skill':
|
|
return '加载专家技能';
|
|
case 'subagent':
|
|
return '派发子代理';
|
|
case 'delegate_research':
|
|
return '派发子代理';
|
|
case 'ask_user':
|
|
return '向用户提问';
|
|
// 记忆系统
|
|
case 'save_memory':
|
|
return '保存项目记忆';
|
|
case 'load_memory':
|
|
return '读取项目记忆';
|
|
// 图片分析
|
|
case 'analyze_image':
|
|
return '分析图像内容';
|
|
// 后台任务
|
|
case 'bg_task_run':
|
|
return '启动后台任务';
|
|
case 'bg_task_check':
|
|
return '检查后台任务状态';
|
|
// 团队协作
|
|
case 'spawn_teammate':
|
|
return '创建团队成员';
|
|
case 'send_teammate_message':
|
|
return '发送团队成员消息';
|
|
case 'team_broadcast':
|
|
return '团队广播消息';
|
|
case 'check_team_inbox':
|
|
return '检查团队收件箱';
|
|
default: {
|
|
// 子代理工具名带 [sub] 前缀
|
|
if (name.startsWith('[sub] ')) {
|
|
return `子代理: ${getToolDisplayName(name.slice(6))}`;
|
|
}
|
|
return name;
|
|
}
|
|
}
|
|
}
|