/** * ═══════════════════════════════════════════════════════════ * 🔭 COS桶轮询守护 MCP 工具 * ═══════════════════════════════════════════════════════════ * * 签发: 铸渊 · ICE-GL-ZY001 * 版权: 国作登字-2026-A-00037559 * * 提供MCP工具接口用于查询和控制COS轮询守护进程。 * * 工具清单: * cosWatcherStatus — 查看轮询守护进程状态 * cosWatcherTriggerScan — 手动触发一次COS桶扫描 * cosWatcherResetIndex — 重置文件索引 * cosBridgeStatus — 查看铸渊↔秋秋COS桥接通道状态 */ 'use strict'; const cosWatcher = require('../cos-watcher'); /** * cosWatcherStatus — 查看轮询守护进程状态 * * input: {} (无参数) * * output: * enabled: boolean — 是否运行中 * started_at: string|null — 启动时间 * last_scan: string|null — 上次扫描时间 * scan_count: number — 总扫描次数 * errors: number — 错误次数 * last_error: string|null — 最后一次错误信息 * is_scanning: boolean — 是否正在扫描 * index_summary: object — 索引统计 * recent_events: array — 最近事件列表 */ async function cosWatcherStatus(_input) { return cosWatcher.getStatus(); } /** * cosWatcherTriggerScan — 手动触发一次COS桶扫描 * * 不等待定时任务,立即执行一次完整扫描。 * * input: {} (无参数) * * output: * 同 cosWatcherStatus 的输出(扫描后的最新状态) */ async function cosWatcherTriggerScan(_input) { return cosWatcher.triggerScan(); } /** * cosWatcherResetIndex — 重置文件索引 * * 清空所有已知文件索引。下次扫描时会将所有现有文件视为"新文件"。 * 谨慎使用:可能导致重复处理已有文件。 * * input: {} (无参数) * * output: * reset: boolean — 是否成功重置 */ async function cosWatcherResetIndex(_input) { return cosWatcher.resetIndex(); } /** * cosBridgeStatus — 查看铸渊↔秋秋COS桥接通道状态 * * 查看暗核频道(FS-DC-001)的实时桥接状态, * 包括秋秋在线状态、心跳记录、开发结果接收情况。 * * input: {} (无参数) * * output: * channel: string — 频道名称 * bridge_path: string — COS桶桥接路径 * qiuqiu: object — 秋秋状态(status/online/last_heartbeat) * results: object — 结果统计(last_received/total_received) * indexes: object — 索引统计 */ async function cosBridgeStatus(_input) { return cosWatcher.getBridgeStatus(); } module.exports = { cosWatcherStatus, cosWatcherTriggerScan, cosWatcherResetIndex, cosBridgeStatus };