UNPKG

omnifocus-mcp-enhanced

Version:

🚀 NEW: Native Custom Perspective Access! Enhanced MCP server with OmniFocus custom perspective support, hierarchical task display, AI-optimized tool selection, and comprehensive task management

61 lines (60 loc) 2.32 kB
import { PerspectiveEngine } from '../../utils/perspectiveEngine.js'; /** * 获取透视筛选后的任务 - V2版本 * 使用 OmniFocus 4.2+ 新的 archivedFilterRules API * * 主要优势: * - 100% 准确性:获取真正透视筛选后的任务,而非全量数据 * - 零配置:直接使用用户现有的透视设置 * - 完整支持:支持所有 27 种筛选规则类型和 3 种聚合方式 */ export async function getPerspectiveTasksV2(params) { console.log(`[PerspectiveV2] 开始获取透视 "${params.perspectiveName}" 的任务`); console.log(`[PerspectiveV2] 参数:`, { hideCompleted: params.hideCompleted, limit: params.limit }); try { // 创建透视引擎实例 const engine = new PerspectiveEngine(); // 执行透视筛选 const result = await engine.getFilteredTasks(params.perspectiveName, { hideCompleted: params.hideCompleted, limit: params.limit }); if (!result.success) { console.error(`[PerspectiveV2] 执行失败:`, result.error); return { success: false, error: result.error }; } console.log(`[PerspectiveV2] 执行成功`); console.log(`[PerspectiveV2] 透视信息:`, result.perspectiveInfo); console.log(`[PerspectiveV2] 筛选到 ${result.tasks?.length || 0} 个任务`); // 记录详细的任务信息用于调试 if (result.tasks && result.tasks.length > 0) { console.log(`[PerspectiveV2] 任务示例:`, { first: { name: result.tasks[0].name, flagged: result.tasks[0].flagged, dueDate: result.tasks[0].dueDate, projectName: result.tasks[0].projectName, tags: result.tasks[0].tags?.length || 0 } }); } return { success: true, tasks: result.tasks, perspectiveInfo: result.perspectiveInfo }; } catch (error) { console.error(`[PerspectiveV2] 透视引擎异常:`, error); return { success: false, error: `透视引擎执行异常: ${error.message || '未知错误'}` }; } }