@scardis/omnifocus-mcp 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/commands/opsx/apply.md +152 -0
- package/.claude/commands/opsx/archive.md +157 -0
- package/.claude/commands/opsx/bulk-archive.md +242 -0
- package/.claude/commands/opsx/continue.md +114 -0
- package/.claude/commands/opsx/explore.md +173 -0
- package/.claude/commands/opsx/ff.md +97 -0
- package/.claude/commands/opsx/new.md +69 -0
- package/.claude/commands/opsx/onboard.md +550 -0
- package/.claude/commands/opsx/propose.md +106 -0
- package/.claude/commands/opsx/sync.md +134 -0
- package/.claude/commands/opsx/verify.md +164 -0
- package/.claude/skills/openspec-apply-change/SKILL.md +156 -0
- package/.claude/skills/openspec-archive-change/SKILL.md +114 -0
- package/.claude/skills/openspec-bulk-archive-change/SKILL.md +246 -0
- package/.claude/skills/openspec-continue-change/SKILL.md +118 -0
- package/.claude/skills/openspec-explore/SKILL.md +288 -0
- package/.claude/skills/openspec-ff-change/SKILL.md +101 -0
- package/.claude/skills/openspec-new-change/SKILL.md +74 -0
- package/.claude/skills/openspec-onboard/SKILL.md +554 -0
- package/.claude/skills/openspec-propose/SKILL.md +110 -0
- package/.claude/skills/openspec-sync-specs/SKILL.md +138 -0
- package/.claude/skills/openspec-verify-change/SKILL.md +168 -0
- package/CONTRIBUTING.md +83 -0
- package/LICENSE +21 -0
- package/README.md +198 -0
- package/dist/runtime/bridge.d.ts +16 -0
- package/dist/runtime/bridge.d.ts.map +1 -0
- package/dist/runtime/bridge.js +76 -0
- package/dist/runtime/bridge.js.map +1 -0
- package/dist/runtime/index.d.ts +5 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +5 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/jxaShim.d.ts +21 -0
- package/dist/runtime/jxaShim.d.ts.map +1 -0
- package/dist/runtime/jxaShim.js +55 -0
- package/dist/runtime/jxaShim.js.map +1 -0
- package/dist/runtime/resultProtocol.d.ts +66 -0
- package/dist/runtime/resultProtocol.d.ts.map +1 -0
- package/dist/runtime/resultProtocol.js +52 -0
- package/dist/runtime/resultProtocol.js.map +1 -0
- package/dist/runtime/snippetLoader.d.ts +4 -0
- package/dist/runtime/snippetLoader.d.ts.map +1 -0
- package/dist/runtime/snippetLoader.js +68 -0
- package/dist/runtime/snippetLoader.js.map +1 -0
- package/dist/schemas/enums.d.ts +9 -0
- package/dist/schemas/enums.d.ts.map +1 -0
- package/dist/schemas/enums.js +26 -0
- package/dist/schemas/enums.js.map +1 -0
- package/dist/schemas/index.d.ts +3 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +3 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/shapes.d.ts +726 -0
- package/dist/schemas/shapes.d.ts.map +1 -0
- package/dist/schemas/shapes.js +221 -0
- package/dist/schemas/shapes.js.map +1 -0
- package/dist/server.d.ts +2 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +50 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/completeProject.d.ts +24 -0
- package/dist/tools/completeProject.d.ts.map +1 -0
- package/dist/tools/completeProject.js +17 -0
- package/dist/tools/completeProject.js.map +1 -0
- package/dist/tools/completeTask.d.ts +25 -0
- package/dist/tools/completeTask.d.ts.map +1 -0
- package/dist/tools/completeTask.js +17 -0
- package/dist/tools/completeTask.js.map +1 -0
- package/dist/tools/createFolder.d.ts +20 -0
- package/dist/tools/createFolder.d.ts.map +1 -0
- package/dist/tools/createFolder.js +13 -0
- package/dist/tools/createFolder.js.map +1 -0
- package/dist/tools/createProject.d.ts +59 -0
- package/dist/tools/createProject.d.ts.map +1 -0
- package/dist/tools/createProject.js +13 -0
- package/dist/tools/createProject.js.map +1 -0
- package/dist/tools/createTag.d.ts +20 -0
- package/dist/tools/createTag.d.ts.map +1 -0
- package/dist/tools/createTag.js +13 -0
- package/dist/tools/createTag.js.map +1 -0
- package/dist/tools/createTask.d.ts +116 -0
- package/dist/tools/createTask.d.ts.map +1 -0
- package/dist/tools/createTask.js +13 -0
- package/dist/tools/createTask.js.map +1 -0
- package/dist/tools/deleteFolder.d.ts +30 -0
- package/dist/tools/deleteFolder.d.ts.map +1 -0
- package/dist/tools/deleteFolder.js +18 -0
- package/dist/tools/deleteFolder.js.map +1 -0
- package/dist/tools/deleteProject.d.ts +30 -0
- package/dist/tools/deleteProject.d.ts.map +1 -0
- package/dist/tools/deleteProject.js +18 -0
- package/dist/tools/deleteProject.js.map +1 -0
- package/dist/tools/deleteTag.d.ts +30 -0
- package/dist/tools/deleteTag.d.ts.map +1 -0
- package/dist/tools/deleteTag.js +18 -0
- package/dist/tools/deleteTag.js.map +1 -0
- package/dist/tools/deleteTask.d.ts +31 -0
- package/dist/tools/deleteTask.d.ts.map +1 -0
- package/dist/tools/deleteTask.js +18 -0
- package/dist/tools/deleteTask.js.map +1 -0
- package/dist/tools/dropProject.d.ts +24 -0
- package/dist/tools/dropProject.d.ts.map +1 -0
- package/dist/tools/dropProject.js +17 -0
- package/dist/tools/dropProject.js.map +1 -0
- package/dist/tools/dropTask.d.ts +25 -0
- package/dist/tools/dropTask.d.ts.map +1 -0
- package/dist/tools/dropTask.js +17 -0
- package/dist/tools/dropTask.js.map +1 -0
- package/dist/tools/editFolder.d.ts +20 -0
- package/dist/tools/editFolder.d.ts.map +1 -0
- package/dist/tools/editFolder.js +13 -0
- package/dist/tools/editFolder.js.map +1 -0
- package/dist/tools/editProject.d.ts +59 -0
- package/dist/tools/editProject.d.ts.map +1 -0
- package/dist/tools/editProject.js +13 -0
- package/dist/tools/editProject.js.map +1 -0
- package/dist/tools/editTag.d.ts +31 -0
- package/dist/tools/editTag.d.ts.map +1 -0
- package/dist/tools/editTag.js +13 -0
- package/dist/tools/editTag.js.map +1 -0
- package/dist/tools/editTask.d.ts +79 -0
- package/dist/tools/editTask.d.ts.map +1 -0
- package/dist/tools/editTask.js +13 -0
- package/dist/tools/editTask.js.map +1 -0
- package/dist/tools/getFolder.d.ts +24 -0
- package/dist/tools/getFolder.d.ts.map +1 -0
- package/dist/tools/getFolder.js +17 -0
- package/dist/tools/getFolder.js.map +1 -0
- package/dist/tools/getProject.d.ts +24 -0
- package/dist/tools/getProject.d.ts.map +1 -0
- package/dist/tools/getProject.js +17 -0
- package/dist/tools/getProject.js.map +1 -0
- package/dist/tools/getTag.d.ts +24 -0
- package/dist/tools/getTag.d.ts.map +1 -0
- package/dist/tools/getTag.js +17 -0
- package/dist/tools/getTag.js.map +1 -0
- package/dist/tools/getTask.d.ts +24 -0
- package/dist/tools/getTask.d.ts.map +1 -0
- package/dist/tools/getTask.js +17 -0
- package/dist/tools/getTask.js.map +1 -0
- package/dist/tools/index.d.ts +732 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +84 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/listFolders.d.ts +50 -0
- package/dist/tools/listFolders.d.ts.map +1 -0
- package/dist/tools/listFolders.js +21 -0
- package/dist/tools/listFolders.js.map +1 -0
- package/dist/tools/listProjects.d.ts +70 -0
- package/dist/tools/listProjects.d.ts.map +1 -0
- package/dist/tools/listProjects.js +21 -0
- package/dist/tools/listProjects.js.map +1 -0
- package/dist/tools/listTags.d.ts +50 -0
- package/dist/tools/listTags.d.ts.map +1 -0
- package/dist/tools/listTags.js +21 -0
- package/dist/tools/listTags.js.map +1 -0
- package/dist/tools/listTasks.d.ts +156 -0
- package/dist/tools/listTasks.d.ts.map +1 -0
- package/dist/tools/listTasks.js +36 -0
- package/dist/tools/listTasks.js.map +1 -0
- package/dist/tools/moveProject.d.ts +20 -0
- package/dist/tools/moveProject.d.ts.map +1 -0
- package/dist/tools/moveProject.js +13 -0
- package/dist/tools/moveProject.js.map +1 -0
- package/dist/tools/moveTask.d.ts +31 -0
- package/dist/tools/moveTask.d.ts.map +1 -0
- package/dist/tools/moveTask.js +13 -0
- package/dist/tools/moveTask.js.map +1 -0
- package/dist/tools/resolveName.d.ts +36 -0
- package/dist/tools/resolveName.d.ts.map +1 -0
- package/dist/tools/resolveName.js +26 -0
- package/dist/tools/resolveName.js.map +1 -0
- package/openspec/changes/archive/2026-04-09-bootstrap-omnifocus-mcp/.openspec.yaml +2 -0
- package/openspec/changes/archive/2026-04-09-bootstrap-omnifocus-mcp/design.md +162 -0
- package/openspec/changes/archive/2026-04-09-bootstrap-omnifocus-mcp/proposal.md +49 -0
- package/openspec/changes/archive/2026-04-09-bootstrap-omnifocus-mcp/specs/attachments/spec.md +9 -0
- package/openspec/changes/archive/2026-04-09-bootstrap-omnifocus-mcp/specs/batch-operations/spec.md +9 -0
- package/openspec/changes/archive/2026-04-09-bootstrap-omnifocus-mcp/specs/database-inspection/spec.md +9 -0
- package/openspec/changes/archive/2026-04-09-bootstrap-omnifocus-mcp/specs/execution-runtime/spec.md +69 -0
- package/openspec/changes/archive/2026-04-09-bootstrap-omnifocus-mcp/specs/folder-management/spec.md +25 -0
- package/openspec/changes/archive/2026-04-09-bootstrap-omnifocus-mcp/specs/forecast/spec.md +9 -0
- package/openspec/changes/archive/2026-04-09-bootstrap-omnifocus-mcp/specs/identity-resolution/spec.md +45 -0
- package/openspec/changes/archive/2026-04-09-bootstrap-omnifocus-mcp/specs/perspective-management/spec.md +9 -0
- package/openspec/changes/archive/2026-04-09-bootstrap-omnifocus-mcp/specs/project-management/spec.md +25 -0
- package/openspec/changes/archive/2026-04-09-bootstrap-omnifocus-mcp/specs/recurrence/spec.md +9 -0
- package/openspec/changes/archive/2026-04-09-bootstrap-omnifocus-mcp/specs/settings/spec.md +9 -0
- package/openspec/changes/archive/2026-04-09-bootstrap-omnifocus-mcp/specs/tag-management/spec.md +25 -0
- package/openspec/changes/archive/2026-04-09-bootstrap-omnifocus-mcp/specs/task-management/spec.md +29 -0
- package/openspec/changes/archive/2026-04-09-bootstrap-omnifocus-mcp/specs/url-automation/spec.md +9 -0
- package/openspec/changes/archive/2026-04-09-bootstrap-omnifocus-mcp/specs/window-state/spec.md +9 -0
- package/openspec/changes/archive/2026-04-09-bootstrap-omnifocus-mcp/tasks.md +84 -0
- package/openspec/changes/archive/2026-04-09-folder-crud/.openspec.yaml +2 -0
- package/openspec/changes/archive/2026-04-09-folder-crud/design.md +58 -0
- package/openspec/changes/archive/2026-04-09-folder-crud/proposal.md +28 -0
- package/openspec/changes/archive/2026-04-09-folder-crud/specs/folder-write/spec.md +45 -0
- package/openspec/changes/archive/2026-04-09-folder-crud/tasks.md +41 -0
- package/openspec/changes/archive/2026-04-09-folder-tag-list-filtering/.openspec.yaml +2 -0
- package/openspec/changes/archive/2026-04-09-folder-tag-list-filtering/design.md +38 -0
- package/openspec/changes/archive/2026-04-09-folder-tag-list-filtering/proposal.md +30 -0
- package/openspec/changes/archive/2026-04-09-folder-tag-list-filtering/specs/folder-management/spec.md +21 -0
- package/openspec/changes/archive/2026-04-09-folder-tag-list-filtering/specs/tag-management/spec.md +21 -0
- package/openspec/changes/archive/2026-04-09-folder-tag-list-filtering/tasks.md +35 -0
- package/openspec/changes/archive/2026-04-09-move-operations/.openspec.yaml +2 -0
- package/openspec/changes/archive/2026-04-09-move-operations/design.md +43 -0
- package/openspec/changes/archive/2026-04-09-move-operations/proposal.md +25 -0
- package/openspec/changes/archive/2026-04-09-move-operations/specs/move-operations/spec.md +41 -0
- package/openspec/changes/archive/2026-04-09-move-operations/tasks.md +40 -0
- package/openspec/changes/archive/2026-04-09-project-crud/.openspec.yaml +2 -0
- package/openspec/changes/archive/2026-04-09-project-crud/design.md +60 -0
- package/openspec/changes/archive/2026-04-09-project-crud/proposal.md +29 -0
- package/openspec/changes/archive/2026-04-09-project-crud/specs/project-write/spec.md +74 -0
- package/openspec/changes/archive/2026-04-09-project-crud/tasks.md +48 -0
- package/openspec/changes/archive/2026-04-09-project-filtering/.openspec.yaml +2 -0
- package/openspec/changes/archive/2026-04-09-project-filtering/design.md +52 -0
- package/openspec/changes/archive/2026-04-09-project-filtering/proposal.md +26 -0
- package/openspec/changes/archive/2026-04-09-project-filtering/specs/project-filtering/spec.md +66 -0
- package/openspec/changes/archive/2026-04-09-project-filtering/specs/project-management/spec.md +13 -0
- package/openspec/changes/archive/2026-04-09-project-filtering/tasks.md +41 -0
- package/openspec/changes/archive/2026-04-09-tag-crud/.openspec.yaml +2 -0
- package/openspec/changes/archive/2026-04-09-tag-crud/design.md +45 -0
- package/openspec/changes/archive/2026-04-09-tag-crud/proposal.md +28 -0
- package/openspec/changes/archive/2026-04-09-tag-crud/specs/tag-write/spec.md +49 -0
- package/openspec/changes/archive/2026-04-09-tag-crud/tasks.md +41 -0
- package/openspec/changes/archive/2026-04-09-task-crud/.openspec.yaml +2 -0
- package/openspec/changes/archive/2026-04-09-task-crud/design.md +62 -0
- package/openspec/changes/archive/2026-04-09-task-crud/proposal.md +29 -0
- package/openspec/changes/archive/2026-04-09-task-crud/specs/task-management/spec.md +17 -0
- package/openspec/changes/archive/2026-04-09-task-crud/specs/task-write/spec.md +89 -0
- package/openspec/changes/archive/2026-04-09-task-crud/tasks.md +55 -0
- package/openspec/changes/archive/2026-04-09-task-filtering/.openspec.yaml +2 -0
- package/openspec/changes/archive/2026-04-09-task-filtering/design.md +61 -0
- package/openspec/changes/archive/2026-04-09-task-filtering/proposal.md +26 -0
- package/openspec/changes/archive/2026-04-09-task-filtering/specs/task-filtering/spec.md +63 -0
- package/openspec/changes/archive/2026-04-09-task-filtering/specs/task-management/spec.md +17 -0
- package/openspec/changes/archive/2026-04-09-task-filtering/tasks.md +42 -0
- package/openspec/changes/archive/2026-04-10-planned-date/.openspec.yaml +2 -0
- package/openspec/changes/archive/2026-04-10-planned-date/design.md +27 -0
- package/openspec/changes/archive/2026-04-10-planned-date/proposal.md +29 -0
- package/openspec/changes/archive/2026-04-10-planned-date/specs/task-management/spec.md +29 -0
- package/openspec/changes/archive/2026-04-10-planned-date/specs/task-write/spec.md +69 -0
- package/openspec/changes/archive/2026-04-10-planned-date/tasks.md +26 -0
- package/openspec/changes/archive/2026-04-10-task-recurrence/.openspec.yaml +2 -0
- package/openspec/changes/archive/2026-04-10-task-recurrence/design.md +81 -0
- package/openspec/changes/archive/2026-04-10-task-recurrence/proposal.md +28 -0
- package/openspec/changes/archive/2026-04-10-task-recurrence/specs/recurrence/spec.md +47 -0
- package/openspec/changes/archive/2026-04-10-task-recurrence/specs/task-management/spec.md +25 -0
- package/openspec/changes/archive/2026-04-10-task-recurrence/specs/task-write/spec.md +61 -0
- package/openspec/changes/archive/2026-04-10-task-recurrence/tasks.md +39 -0
- package/openspec/config.yaml +20 -0
- package/openspec/specs/attachments/spec.md +15 -0
- package/openspec/specs/batch-operations/spec.md +15 -0
- package/openspec/specs/database-inspection/spec.md +15 -0
- package/openspec/specs/execution-runtime/spec.md +75 -0
- package/openspec/specs/folder-management/spec.md +39 -0
- package/openspec/specs/folder-write/spec.md +45 -0
- package/openspec/specs/forecast/spec.md +15 -0
- package/openspec/specs/identity-resolution/spec.md +51 -0
- package/openspec/specs/move-operations/spec.md +41 -0
- package/openspec/specs/perspective-management/spec.md +15 -0
- package/openspec/specs/project-filtering/spec.md +72 -0
- package/openspec/specs/project-management/spec.md +31 -0
- package/openspec/specs/project-write/spec.md +79 -0
- package/openspec/specs/recurrence/spec.md +51 -0
- package/openspec/specs/settings/spec.md +15 -0
- package/openspec/specs/tag-management/spec.md +39 -0
- package/openspec/specs/tag-write/spec.md +49 -0
- package/openspec/specs/task-filtering/spec.md +63 -0
- package/openspec/specs/task-management/spec.md +51 -0
- package/openspec/specs/task-write/spec.md +115 -0
- package/openspec/specs/url-automation/spec.md +15 -0
- package/openspec/specs/window-state/spec.md +15 -0
- package/package.json +32 -0
- package/scripts/cleanup-fixtures.ts +89 -0
- package/server.json +21 -0
- package/src/runtime/bridge.ts +97 -0
- package/src/runtime/index.ts +4 -0
- package/src/runtime/jxaShim.ts +55 -0
- package/src/runtime/resultProtocol.ts +62 -0
- package/src/runtime/snippetLoader.ts +79 -0
- package/src/schemas/enums.ts +32 -0
- package/src/schemas/index.ts +38 -0
- package/src/schemas/shapes.ts +267 -0
- package/src/server.ts +58 -0
- package/src/snippets/complete_project.js +73 -0
- package/src/snippets/complete_task.js +85 -0
- package/src/snippets/create_folder.js +52 -0
- package/src/snippets/create_project.js +107 -0
- package/src/snippets/create_tag.js +55 -0
- package/src/snippets/create_task.js +159 -0
- package/src/snippets/delete_folder.js +26 -0
- package/src/snippets/delete_project.js +20 -0
- package/src/snippets/delete_tag.js +20 -0
- package/src/snippets/delete_task.js +20 -0
- package/src/snippets/drop_project.js +73 -0
- package/src/snippets/drop_task.js +85 -0
- package/src/snippets/edit_folder.js +46 -0
- package/src/snippets/edit_project.js +106 -0
- package/src/snippets/edit_tag.js +56 -0
- package/src/snippets/edit_task.js +146 -0
- package/src/snippets/get_folder.js +48 -0
- package/src/snippets/get_project.js +77 -0
- package/src/snippets/get_tag.js +51 -0
- package/src/snippets/get_task.js +96 -0
- package/src/snippets/list_folders.js +50 -0
- package/src/snippets/list_projects.js +98 -0
- package/src/snippets/list_tags.js +54 -0
- package/src/snippets/list_tasks.js +127 -0
- package/src/snippets/move_project.js +79 -0
- package/src/snippets/move_task.js +113 -0
- package/src/snippets/resolve_name.js +83 -0
- package/src/tools/completeProject.ts +21 -0
- package/src/tools/completeTask.ts +23 -0
- package/src/tools/createFolder.ts +20 -0
- package/src/tools/createProject.ts +20 -0
- package/src/tools/createTag.ts +20 -0
- package/src/tools/createTask.ts +20 -0
- package/src/tools/deleteFolder.ts +24 -0
- package/src/tools/deleteProject.ts +24 -0
- package/src/tools/deleteTag.ts +24 -0
- package/src/tools/deleteTask.ts +26 -0
- package/src/tools/dropProject.ts +21 -0
- package/src/tools/dropTask.ts +23 -0
- package/src/tools/editFolder.ts +19 -0
- package/src/tools/editProject.ts +20 -0
- package/src/tools/editTag.ts +20 -0
- package/src/tools/editTask.ts +20 -0
- package/src/tools/getFolder.ts +24 -0
- package/src/tools/getProject.ts +24 -0
- package/src/tools/getTag.ts +24 -0
- package/src/tools/getTask.ts +24 -0
- package/src/tools/index.ts +85 -0
- package/src/tools/listFolders.ts +32 -0
- package/src/tools/listProjects.ts +32 -0
- package/src/tools/listTags.ts +32 -0
- package/src/tools/listTasks.ts +56 -0
- package/src/tools/moveProject.ts +20 -0
- package/src/tools/moveTask.ts +20 -0
- package/src/tools/resolveName.ts +37 -0
- package/test/integration/.gitkeep +0 -0
- package/test/integration/completeProject.int.test.ts +25 -0
- package/test/integration/completeTask.int.test.ts +30 -0
- package/test/integration/createFolder.int.test.ts +50 -0
- package/test/integration/createProject.int.test.ts +49 -0
- package/test/integration/createTag.int.test.ts +52 -0
- package/test/integration/createTask.int.test.ts +55 -0
- package/test/integration/deleteFolder.int.test.ts +64 -0
- package/test/integration/deleteProject.int.test.ts +31 -0
- package/test/integration/deleteTag.int.test.ts +61 -0
- package/test/integration/deleteTask.int.test.ts +36 -0
- package/test/integration/dropProject.int.test.ts +24 -0
- package/test/integration/dropTask.int.test.ts +29 -0
- package/test/integration/editFolder.int.test.ts +43 -0
- package/test/integration/editProject.int.test.ts +39 -0
- package/test/integration/editTag.int.test.ts +43 -0
- package/test/integration/editTask.int.test.ts +56 -0
- package/test/integration/fixtures.ts +219 -0
- package/test/integration/getTask.int.test.ts +64 -0
- package/test/integration/listFoldersFiltered.int.test.ts +98 -0
- package/test/integration/listProjects.int.test.ts +73 -0
- package/test/integration/listProjectsFiltered.int.test.ts +96 -0
- package/test/integration/listTagsFiltered.int.test.ts +54 -0
- package/test/integration/listTasksFiltered.int.test.ts +141 -0
- package/test/integration/moveProject.int.test.ts +57 -0
- package/test/integration/moveTask.int.test.ts +61 -0
- package/test/integration/plannedDate.int.test.ts +72 -0
- package/test/integration/preflight.ts +60 -0
- package/test/integration/resolveName.int.test.ts +86 -0
- package/test/integration/taskRecurrence.int.test.ts +106 -0
- package/test/unit/.gitkeep +0 -0
- package/test/unit/bridge.injection.test.ts +66 -0
- package/test/unit/resultProtocol.test.ts +71 -0
- package/test/unit/schemas.createFolder.test.ts +38 -0
- package/test/unit/schemas.createProject.test.ts +115 -0
- package/test/unit/schemas.createTask.test.ts +87 -0
- package/test/unit/schemas.editTag.test.ts +64 -0
- package/test/unit/schemas.folderTagFiltering.test.ts +42 -0
- package/test/unit/schemas.listProjects.test.ts +44 -0
- package/test/unit/schemas.moveOperations.test.ts +60 -0
- package/test/unit/schemas.recurrence.test.ts +120 -0
- package/test/unit/schemas.test.ts +126 -0
- package/test/unit/snippetLoader.test.ts +56 -0
- package/test/unit/tools.deleteTask.test.ts +19 -0
- package/test/unit/tools.listTasks.test.ts +126 -0
- package/tsconfig.json +19 -0
- package/vitest.config.ts +8 -0
- package/vitest.integration.config.ts +18 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AA8BnD,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BX,CAAC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
export { listProjectsTool } from "./listProjects.js";
|
|
2
|
+
export { getProjectTool } from "./getProject.js";
|
|
3
|
+
export { listFoldersTool } from "./listFolders.js";
|
|
4
|
+
export { getFolderTool } from "./getFolder.js";
|
|
5
|
+
export { listTasksTool } from "./listTasks.js";
|
|
6
|
+
export { getTaskTool } from "./getTask.js";
|
|
7
|
+
export { listTagsTool } from "./listTags.js";
|
|
8
|
+
export { getTagTool } from "./getTag.js";
|
|
9
|
+
export { resolveNameTool } from "./resolveName.js";
|
|
10
|
+
export { createTaskTool } from "./createTask.js";
|
|
11
|
+
export { editTaskTool } from "./editTask.js";
|
|
12
|
+
export { completeTaskTool } from "./completeTask.js";
|
|
13
|
+
export { dropTaskTool } from "./dropTask.js";
|
|
14
|
+
export { deleteTaskTool } from "./deleteTask.js";
|
|
15
|
+
export { createProjectTool } from "./createProject.js";
|
|
16
|
+
export { editProjectTool } from "./editProject.js";
|
|
17
|
+
export { completeProjectTool } from "./completeProject.js";
|
|
18
|
+
export { dropProjectTool } from "./dropProject.js";
|
|
19
|
+
export { deleteProjectTool } from "./deleteProject.js";
|
|
20
|
+
export { createFolderTool } from "./createFolder.js";
|
|
21
|
+
export { editFolderTool } from "./editFolder.js";
|
|
22
|
+
export { deleteFolderTool } from "./deleteFolder.js";
|
|
23
|
+
export { createTagTool } from "./createTag.js";
|
|
24
|
+
export { editTagTool } from "./editTag.js";
|
|
25
|
+
export { deleteTagTool } from "./deleteTag.js";
|
|
26
|
+
export { moveTaskTool } from "./moveTask.js";
|
|
27
|
+
export { moveProjectTool } from "./moveProject.js";
|
|
28
|
+
import { listProjectsTool } from "./listProjects.js";
|
|
29
|
+
import { getProjectTool } from "./getProject.js";
|
|
30
|
+
import { listFoldersTool } from "./listFolders.js";
|
|
31
|
+
import { getFolderTool } from "./getFolder.js";
|
|
32
|
+
import { listTasksTool } from "./listTasks.js";
|
|
33
|
+
import { getTaskTool } from "./getTask.js";
|
|
34
|
+
import { listTagsTool } from "./listTags.js";
|
|
35
|
+
import { getTagTool } from "./getTag.js";
|
|
36
|
+
import { resolveNameTool } from "./resolveName.js";
|
|
37
|
+
import { createTaskTool } from "./createTask.js";
|
|
38
|
+
import { editTaskTool } from "./editTask.js";
|
|
39
|
+
import { completeTaskTool } from "./completeTask.js";
|
|
40
|
+
import { dropTaskTool } from "./dropTask.js";
|
|
41
|
+
import { deleteTaskTool } from "./deleteTask.js";
|
|
42
|
+
import { createProjectTool } from "./createProject.js";
|
|
43
|
+
import { editProjectTool } from "./editProject.js";
|
|
44
|
+
import { completeProjectTool } from "./completeProject.js";
|
|
45
|
+
import { dropProjectTool } from "./dropProject.js";
|
|
46
|
+
import { deleteProjectTool } from "./deleteProject.js";
|
|
47
|
+
import { createFolderTool } from "./createFolder.js";
|
|
48
|
+
import { editFolderTool } from "./editFolder.js";
|
|
49
|
+
import { deleteFolderTool } from "./deleteFolder.js";
|
|
50
|
+
import { createTagTool } from "./createTag.js";
|
|
51
|
+
import { editTagTool } from "./editTag.js";
|
|
52
|
+
import { deleteTagTool } from "./deleteTag.js";
|
|
53
|
+
import { moveTaskTool } from "./moveTask.js";
|
|
54
|
+
import { moveProjectTool } from "./moveProject.js";
|
|
55
|
+
export const allTools = [
|
|
56
|
+
listProjectsTool,
|
|
57
|
+
getProjectTool,
|
|
58
|
+
listFoldersTool,
|
|
59
|
+
getFolderTool,
|
|
60
|
+
listTasksTool,
|
|
61
|
+
getTaskTool,
|
|
62
|
+
listTagsTool,
|
|
63
|
+
getTagTool,
|
|
64
|
+
resolveNameTool,
|
|
65
|
+
createTaskTool,
|
|
66
|
+
editTaskTool,
|
|
67
|
+
completeTaskTool,
|
|
68
|
+
dropTaskTool,
|
|
69
|
+
deleteTaskTool,
|
|
70
|
+
createProjectTool,
|
|
71
|
+
editProjectTool,
|
|
72
|
+
completeProjectTool,
|
|
73
|
+
dropProjectTool,
|
|
74
|
+
deleteProjectTool,
|
|
75
|
+
createFolderTool,
|
|
76
|
+
editFolderTool,
|
|
77
|
+
deleteFolderTool,
|
|
78
|
+
createTagTool,
|
|
79
|
+
editTagTool,
|
|
80
|
+
deleteTagTool,
|
|
81
|
+
moveTaskTool,
|
|
82
|
+
moveProjectTool,
|
|
83
|
+
];
|
|
84
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { FolderSummary } from "../schemas/index.js";
|
|
3
|
+
export declare const listFoldersSchema: z.ZodObject<{
|
|
4
|
+
filter: z.ZodOptional<z.ZodObject<{
|
|
5
|
+
status: z.ZodOptional<z.ZodEnum<["active", "dropped"]>>;
|
|
6
|
+
}, "strip", z.ZodTypeAny, {
|
|
7
|
+
status?: "active" | "dropped" | undefined;
|
|
8
|
+
}, {
|
|
9
|
+
status?: "active" | "dropped" | undefined;
|
|
10
|
+
}>>;
|
|
11
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
12
|
+
}, "strip", z.ZodTypeAny, {
|
|
13
|
+
filter?: {
|
|
14
|
+
status?: "active" | "dropped" | undefined;
|
|
15
|
+
} | undefined;
|
|
16
|
+
limit?: number | undefined;
|
|
17
|
+
}, {
|
|
18
|
+
filter?: {
|
|
19
|
+
status?: "active" | "dropped" | undefined;
|
|
20
|
+
} | undefined;
|
|
21
|
+
limit?: number | undefined;
|
|
22
|
+
}>;
|
|
23
|
+
export type ListFoldersInput = z.infer<typeof listFoldersSchema>;
|
|
24
|
+
export declare function listFoldersHandler(input: ListFoldersInput): Promise<z.infer<typeof FolderSummary>[]>;
|
|
25
|
+
export declare const listFoldersTool: {
|
|
26
|
+
readonly name: "list_folders";
|
|
27
|
+
readonly description: "List folders in OmniFocus. By default, all folders (active and dropped) are returned. Optional filter.status ('active' | 'dropped') restricts to that status. Results are capped at limit (default 200). Each folder includes id, name, full path (ancestors joined with ▸), parentId, and status.";
|
|
28
|
+
readonly inputSchema: z.ZodObject<{
|
|
29
|
+
filter: z.ZodOptional<z.ZodObject<{
|
|
30
|
+
status: z.ZodOptional<z.ZodEnum<["active", "dropped"]>>;
|
|
31
|
+
}, "strip", z.ZodTypeAny, {
|
|
32
|
+
status?: "active" | "dropped" | undefined;
|
|
33
|
+
}, {
|
|
34
|
+
status?: "active" | "dropped" | undefined;
|
|
35
|
+
}>>;
|
|
36
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
37
|
+
}, "strip", z.ZodTypeAny, {
|
|
38
|
+
filter?: {
|
|
39
|
+
status?: "active" | "dropped" | undefined;
|
|
40
|
+
} | undefined;
|
|
41
|
+
limit?: number | undefined;
|
|
42
|
+
}, {
|
|
43
|
+
filter?: {
|
|
44
|
+
status?: "active" | "dropped" | undefined;
|
|
45
|
+
} | undefined;
|
|
46
|
+
limit?: number | undefined;
|
|
47
|
+
}>;
|
|
48
|
+
readonly handler: typeof listFoldersHandler;
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=listFolders.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listFolders.d.ts","sourceRoot":"","sources":["../../src/tools/listFolders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAqB,MAAM,qBAAqB,CAAC;AAEvE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;EAO5B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEjE,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,EAAE,CAAC,CAM1C;AAED,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;CAMlB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { runSnippet } from "../runtime/index.js";
|
|
3
|
+
import { FolderSummary, ListFoldersFilter } from "../schemas/index.js";
|
|
4
|
+
export const listFoldersSchema = z.object({
|
|
5
|
+
filter: ListFoldersFilter.optional().describe("Optional filter. When status is provided, only folders with that status are returned. When omitted, all folders (active and dropped) are returned."),
|
|
6
|
+
limit: z.number().int().positive().optional().describe("Maximum number of folders to return. Defaults to 200."),
|
|
7
|
+
});
|
|
8
|
+
export async function listFoldersHandler(input) {
|
|
9
|
+
const raw = await runSnippet("list_folders", {
|
|
10
|
+
filter: input.filter,
|
|
11
|
+
limit: input.limit,
|
|
12
|
+
});
|
|
13
|
+
return z.array(FolderSummary).parse(raw);
|
|
14
|
+
}
|
|
15
|
+
export const listFoldersTool = {
|
|
16
|
+
name: "list_folders",
|
|
17
|
+
description: "List folders in OmniFocus. By default, all folders (active and dropped) are returned. Optional filter.status ('active' | 'dropped') restricts to that status. Results are capped at limit (default 200). Each folder includes id, name, full path (ancestors joined with ▸), parentId, and status.",
|
|
18
|
+
inputSchema: listFoldersSchema,
|
|
19
|
+
handler: listFoldersHandler,
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=listFolders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listFolders.js","sourceRoot":"","sources":["../../src/tools/listFolders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEvE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,MAAM,EAAE,iBAAiB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAC3C,oJAAoJ,CACrJ;IACD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACpD,uDAAuD,CACxD;CACF,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,KAAuB;IAEvB,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,cAAc,EAAE;QAC3C,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,KAAK,EAAE,KAAK,CAAC,KAAK;KACnB,CAAC,CAAC;IACH,OAAO,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,IAAI,EAAE,cAAc;IACpB,WAAW,EACT,oSAAoS;IACtS,WAAW,EAAE,iBAAiB;IAC9B,OAAO,EAAE,kBAAkB;CACnB,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { ProjectSummary } from "../schemas/index.js";
|
|
3
|
+
export declare const listProjectsSchema: z.ZodObject<{
|
|
4
|
+
filter: z.ZodOptional<z.ZodObject<{
|
|
5
|
+
status: z.ZodOptional<z.ZodArray<z.ZodEnum<["active", "onHold", "done", "dropped"]>, "many">>;
|
|
6
|
+
folderId: z.ZodOptional<z.ZodString>;
|
|
7
|
+
flagged: z.ZodOptional<z.ZodLiteral<true>>;
|
|
8
|
+
}, "strip", z.ZodTypeAny, {
|
|
9
|
+
status?: ("active" | "onHold" | "done" | "dropped")[] | undefined;
|
|
10
|
+
flagged?: true | undefined;
|
|
11
|
+
folderId?: string | undefined;
|
|
12
|
+
}, {
|
|
13
|
+
status?: ("active" | "onHold" | "done" | "dropped")[] | undefined;
|
|
14
|
+
flagged?: true | undefined;
|
|
15
|
+
folderId?: string | undefined;
|
|
16
|
+
}>>;
|
|
17
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
18
|
+
}, "strip", z.ZodTypeAny, {
|
|
19
|
+
filter?: {
|
|
20
|
+
status?: ("active" | "onHold" | "done" | "dropped")[] | undefined;
|
|
21
|
+
flagged?: true | undefined;
|
|
22
|
+
folderId?: string | undefined;
|
|
23
|
+
} | undefined;
|
|
24
|
+
limit?: number | undefined;
|
|
25
|
+
}, {
|
|
26
|
+
filter?: {
|
|
27
|
+
status?: ("active" | "onHold" | "done" | "dropped")[] | undefined;
|
|
28
|
+
flagged?: true | undefined;
|
|
29
|
+
folderId?: string | undefined;
|
|
30
|
+
} | undefined;
|
|
31
|
+
limit?: number | undefined;
|
|
32
|
+
}>;
|
|
33
|
+
export type ListProjectsInput = z.infer<typeof listProjectsSchema>;
|
|
34
|
+
export declare function listProjectsHandler(input: ListProjectsInput): Promise<z.infer<typeof ProjectSummary>[]>;
|
|
35
|
+
export declare const listProjectsTool: {
|
|
36
|
+
readonly name: "list_projects";
|
|
37
|
+
readonly description: "List projects in OmniFocus. By default, done and dropped projects are excluded — pass filter.status to override. Optional filter fields: status (array of status strings), folderId (restricts to that folder's subtree), flagged (boolean). Results are capped at limit (default 100). Each project includes folderId and flagged in addition to id, name, folderPath, status, and type.";
|
|
38
|
+
readonly inputSchema: z.ZodObject<{
|
|
39
|
+
filter: z.ZodOptional<z.ZodObject<{
|
|
40
|
+
status: z.ZodOptional<z.ZodArray<z.ZodEnum<["active", "onHold", "done", "dropped"]>, "many">>;
|
|
41
|
+
folderId: z.ZodOptional<z.ZodString>;
|
|
42
|
+
flagged: z.ZodOptional<z.ZodLiteral<true>>;
|
|
43
|
+
}, "strip", z.ZodTypeAny, {
|
|
44
|
+
status?: ("active" | "onHold" | "done" | "dropped")[] | undefined;
|
|
45
|
+
flagged?: true | undefined;
|
|
46
|
+
folderId?: string | undefined;
|
|
47
|
+
}, {
|
|
48
|
+
status?: ("active" | "onHold" | "done" | "dropped")[] | undefined;
|
|
49
|
+
flagged?: true | undefined;
|
|
50
|
+
folderId?: string | undefined;
|
|
51
|
+
}>>;
|
|
52
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
53
|
+
}, "strip", z.ZodTypeAny, {
|
|
54
|
+
filter?: {
|
|
55
|
+
status?: ("active" | "onHold" | "done" | "dropped")[] | undefined;
|
|
56
|
+
flagged?: true | undefined;
|
|
57
|
+
folderId?: string | undefined;
|
|
58
|
+
} | undefined;
|
|
59
|
+
limit?: number | undefined;
|
|
60
|
+
}, {
|
|
61
|
+
filter?: {
|
|
62
|
+
status?: ("active" | "onHold" | "done" | "dropped")[] | undefined;
|
|
63
|
+
flagged?: true | undefined;
|
|
64
|
+
folderId?: string | undefined;
|
|
65
|
+
} | undefined;
|
|
66
|
+
limit?: number | undefined;
|
|
67
|
+
}>;
|
|
68
|
+
readonly handler: typeof listProjectsHandler;
|
|
69
|
+
};
|
|
70
|
+
//# sourceMappingURL=listProjects.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listProjects.d.ts","sourceRoot":"","sources":["../../src/tools/listProjects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,cAAc,EAAsB,MAAM,qBAAqB,CAAC;AAEzE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAO7B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEnE,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,EAAE,CAAC,CAM3C;AAED,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMnB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { runSnippet } from "../runtime/index.js";
|
|
3
|
+
import { ProjectSummary, ListProjectsFilter } from "../schemas/index.js";
|
|
4
|
+
export const listProjectsSchema = z.object({
|
|
5
|
+
filter: ListProjectsFilter.optional().describe("Optional filters. All fields combine as AND. When status is omitted, done and dropped projects are excluded by default."),
|
|
6
|
+
limit: z.number().int().positive().optional().describe("Maximum number of projects to return. Defaults to 100."),
|
|
7
|
+
});
|
|
8
|
+
export async function listProjectsHandler(input) {
|
|
9
|
+
const raw = await runSnippet("list_projects", {
|
|
10
|
+
filter: input.filter,
|
|
11
|
+
limit: input.limit,
|
|
12
|
+
});
|
|
13
|
+
return z.array(ProjectSummary).parse(raw);
|
|
14
|
+
}
|
|
15
|
+
export const listProjectsTool = {
|
|
16
|
+
name: "list_projects",
|
|
17
|
+
description: "List projects in OmniFocus. By default, done and dropped projects are excluded — pass filter.status to override. Optional filter fields: status (array of status strings), folderId (restricts to that folder's subtree), flagged (boolean). Results are capped at limit (default 100). Each project includes folderId and flagged in addition to id, name, folderPath, status, and type.",
|
|
18
|
+
inputSchema: listProjectsSchema,
|
|
19
|
+
handler: listProjectsHandler,
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=listProjects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listProjects.js","sourceRoot":"","sources":["../../src/tools/listProjects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,MAAM,EAAE,kBAAkB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAC5C,yHAAyH,CAC1H;IACD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACpD,wDAAwD,CACzD;CACF,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,KAAwB;IAExB,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,eAAe,EAAE;QAC5C,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,KAAK,EAAE,KAAK,CAAC,KAAK;KACnB,CAAC,CAAC;IACH,OAAO,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,IAAI,EAAE,eAAe;IACrB,WAAW,EACT,2XAA2X;IAC7X,WAAW,EAAE,kBAAkB;IAC/B,OAAO,EAAE,mBAAmB;CACpB,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { TagSummary } from "../schemas/index.js";
|
|
3
|
+
export declare const listTagsSchema: z.ZodObject<{
|
|
4
|
+
filter: z.ZodOptional<z.ZodObject<{
|
|
5
|
+
status: z.ZodOptional<z.ZodEnum<["active", "onHold", "dropped"]>>;
|
|
6
|
+
}, "strip", z.ZodTypeAny, {
|
|
7
|
+
status?: "active" | "onHold" | "dropped" | undefined;
|
|
8
|
+
}, {
|
|
9
|
+
status?: "active" | "onHold" | "dropped" | undefined;
|
|
10
|
+
}>>;
|
|
11
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
12
|
+
}, "strip", z.ZodTypeAny, {
|
|
13
|
+
filter?: {
|
|
14
|
+
status?: "active" | "onHold" | "dropped" | undefined;
|
|
15
|
+
} | undefined;
|
|
16
|
+
limit?: number | undefined;
|
|
17
|
+
}, {
|
|
18
|
+
filter?: {
|
|
19
|
+
status?: "active" | "onHold" | "dropped" | undefined;
|
|
20
|
+
} | undefined;
|
|
21
|
+
limit?: number | undefined;
|
|
22
|
+
}>;
|
|
23
|
+
export type ListTagsInput = z.infer<typeof listTagsSchema>;
|
|
24
|
+
export declare function listTagsHandler(input: ListTagsInput): Promise<z.infer<typeof TagSummary>[]>;
|
|
25
|
+
export declare const listTagsTool: {
|
|
26
|
+
readonly name: "list_tags";
|
|
27
|
+
readonly description: "List tags in OmniFocus. By default, all tags (active, onHold, and dropped) are returned. Optional filter.status ('active' | 'onHold' | 'dropped') restricts to that status. Results are capped at limit (default 200). Each tag includes id, name, full path (ancestors joined with ▸), parentId, and status.";
|
|
28
|
+
readonly inputSchema: z.ZodObject<{
|
|
29
|
+
filter: z.ZodOptional<z.ZodObject<{
|
|
30
|
+
status: z.ZodOptional<z.ZodEnum<["active", "onHold", "dropped"]>>;
|
|
31
|
+
}, "strip", z.ZodTypeAny, {
|
|
32
|
+
status?: "active" | "onHold" | "dropped" | undefined;
|
|
33
|
+
}, {
|
|
34
|
+
status?: "active" | "onHold" | "dropped" | undefined;
|
|
35
|
+
}>>;
|
|
36
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
37
|
+
}, "strip", z.ZodTypeAny, {
|
|
38
|
+
filter?: {
|
|
39
|
+
status?: "active" | "onHold" | "dropped" | undefined;
|
|
40
|
+
} | undefined;
|
|
41
|
+
limit?: number | undefined;
|
|
42
|
+
}, {
|
|
43
|
+
filter?: {
|
|
44
|
+
status?: "active" | "onHold" | "dropped" | undefined;
|
|
45
|
+
} | undefined;
|
|
46
|
+
limit?: number | undefined;
|
|
47
|
+
}>;
|
|
48
|
+
readonly handler: typeof listTagsHandler;
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=listTags.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listTags.d.ts","sourceRoot":"","sources":["../../src/tools/listTags.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAkB,MAAM,qBAAqB,CAAC;AAEjE,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;EAOzB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE3D,wBAAsB,eAAe,CACnC,KAAK,EAAE,aAAa,GACnB,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,EAAE,CAAC,CAMvC;AAED,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;CAMf,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { runSnippet } from "../runtime/index.js";
|
|
3
|
+
import { TagSummary, ListTagsFilter } from "../schemas/index.js";
|
|
4
|
+
export const listTagsSchema = z.object({
|
|
5
|
+
filter: ListTagsFilter.optional().describe("Optional filter. When status is provided, only tags with that status are returned. When omitted, all tags (active, onHold, and dropped) are returned."),
|
|
6
|
+
limit: z.number().int().positive().optional().describe("Maximum number of tags to return. Defaults to 200."),
|
|
7
|
+
});
|
|
8
|
+
export async function listTagsHandler(input) {
|
|
9
|
+
const raw = await runSnippet("list_tags", {
|
|
10
|
+
filter: input.filter,
|
|
11
|
+
limit: input.limit,
|
|
12
|
+
});
|
|
13
|
+
return z.array(TagSummary).parse(raw);
|
|
14
|
+
}
|
|
15
|
+
export const listTagsTool = {
|
|
16
|
+
name: "list_tags",
|
|
17
|
+
description: "List tags in OmniFocus. By default, all tags (active, onHold, and dropped) are returned. Optional filter.status ('active' | 'onHold' | 'dropped') restricts to that status. Results are capped at limit (default 200). Each tag includes id, name, full path (ancestors joined with ▸), parentId, and status.",
|
|
18
|
+
inputSchema: listTagsSchema,
|
|
19
|
+
handler: listTagsHandler,
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=listTags.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listTags.js","sourceRoot":"","sources":["../../src/tools/listTags.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEjE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,MAAM,EAAE,cAAc,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACxC,uJAAuJ,CACxJ;IACD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACpD,oDAAoD,CACrD;CACF,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAAoB;IAEpB,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,WAAW,EAAE;QACxC,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,KAAK,EAAE,KAAK,CAAC,KAAK;KACnB,CAAC,CAAC;IACH,OAAO,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,WAAW;IACjB,WAAW,EACT,+SAA+S;IACjT,WAAW,EAAE,cAAc;IAC3B,OAAO,EAAE,eAAe;CAChB,CAAC"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { TaskSummary } from "../schemas/index.js";
|
|
3
|
+
export declare const listTasksSchema: z.ZodObject<{
|
|
4
|
+
scope: z.ZodEffects<z.ZodObject<{
|
|
5
|
+
projectId: z.ZodOptional<z.ZodString>;
|
|
6
|
+
folderId: z.ZodOptional<z.ZodString>;
|
|
7
|
+
inbox: z.ZodOptional<z.ZodLiteral<true>>;
|
|
8
|
+
all: z.ZodOptional<z.ZodLiteral<true>>;
|
|
9
|
+
}, "strip", z.ZodTypeAny, {
|
|
10
|
+
inbox?: true | undefined;
|
|
11
|
+
projectId?: string | undefined;
|
|
12
|
+
folderId?: string | undefined;
|
|
13
|
+
all?: true | undefined;
|
|
14
|
+
}, {
|
|
15
|
+
inbox?: true | undefined;
|
|
16
|
+
projectId?: string | undefined;
|
|
17
|
+
folderId?: string | undefined;
|
|
18
|
+
all?: true | undefined;
|
|
19
|
+
}>, {
|
|
20
|
+
inbox?: true | undefined;
|
|
21
|
+
projectId?: string | undefined;
|
|
22
|
+
folderId?: string | undefined;
|
|
23
|
+
all?: true | undefined;
|
|
24
|
+
}, {
|
|
25
|
+
inbox?: true | undefined;
|
|
26
|
+
projectId?: string | undefined;
|
|
27
|
+
folderId?: string | undefined;
|
|
28
|
+
all?: true | undefined;
|
|
29
|
+
}>;
|
|
30
|
+
filter: z.ZodOptional<z.ZodObject<{
|
|
31
|
+
flagged: z.ZodOptional<z.ZodLiteral<true>>;
|
|
32
|
+
status: z.ZodOptional<z.ZodArray<z.ZodEnum<["available", "incomplete", "completedByChildren", "complete", "dropped", "dueSoon", "overdue", "flagged", "blocked", "next"]>, "many">>;
|
|
33
|
+
tagId: z.ZodOptional<z.ZodString>;
|
|
34
|
+
dueBeforeDate: z.ZodOptional<z.ZodString>;
|
|
35
|
+
}, "strip", z.ZodTypeAny, {
|
|
36
|
+
status?: ("dropped" | "available" | "incomplete" | "completedByChildren" | "complete" | "dueSoon" | "overdue" | "flagged" | "blocked" | "next")[] | undefined;
|
|
37
|
+
flagged?: true | undefined;
|
|
38
|
+
tagId?: string | undefined;
|
|
39
|
+
dueBeforeDate?: string | undefined;
|
|
40
|
+
}, {
|
|
41
|
+
status?: ("dropped" | "available" | "incomplete" | "completedByChildren" | "complete" | "dueSoon" | "overdue" | "flagged" | "blocked" | "next")[] | undefined;
|
|
42
|
+
flagged?: true | undefined;
|
|
43
|
+
tagId?: string | undefined;
|
|
44
|
+
dueBeforeDate?: string | undefined;
|
|
45
|
+
}>>;
|
|
46
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
47
|
+
}, "strip", z.ZodTypeAny, {
|
|
48
|
+
scope: {
|
|
49
|
+
inbox?: true | undefined;
|
|
50
|
+
projectId?: string | undefined;
|
|
51
|
+
folderId?: string | undefined;
|
|
52
|
+
all?: true | undefined;
|
|
53
|
+
};
|
|
54
|
+
filter?: {
|
|
55
|
+
status?: ("dropped" | "available" | "incomplete" | "completedByChildren" | "complete" | "dueSoon" | "overdue" | "flagged" | "blocked" | "next")[] | undefined;
|
|
56
|
+
flagged?: true | undefined;
|
|
57
|
+
tagId?: string | undefined;
|
|
58
|
+
dueBeforeDate?: string | undefined;
|
|
59
|
+
} | undefined;
|
|
60
|
+
limit?: number | undefined;
|
|
61
|
+
}, {
|
|
62
|
+
scope: {
|
|
63
|
+
inbox?: true | undefined;
|
|
64
|
+
projectId?: string | undefined;
|
|
65
|
+
folderId?: string | undefined;
|
|
66
|
+
all?: true | undefined;
|
|
67
|
+
};
|
|
68
|
+
filter?: {
|
|
69
|
+
status?: ("dropped" | "available" | "incomplete" | "completedByChildren" | "complete" | "dueSoon" | "overdue" | "flagged" | "blocked" | "next")[] | undefined;
|
|
70
|
+
flagged?: true | undefined;
|
|
71
|
+
tagId?: string | undefined;
|
|
72
|
+
dueBeforeDate?: string | undefined;
|
|
73
|
+
} | undefined;
|
|
74
|
+
limit?: number | undefined;
|
|
75
|
+
}>;
|
|
76
|
+
export type ListTasksInput = z.infer<typeof listTasksSchema>;
|
|
77
|
+
export declare function listTasksHandler(input: ListTasksInput): Promise<z.infer<typeof TaskSummary>[]>;
|
|
78
|
+
export declare const listTasksTool: {
|
|
79
|
+
readonly name: "list_tasks";
|
|
80
|
+
readonly description: "List tasks in OmniFocus within a scope. Provide exactly one of: projectId (tasks in a project), folderId (tasks across all projects in a folder), inbox (inbox tasks), or all (every task). By default, complete and dropped tasks are excluded — pass filter.status to override. Optional filter fields: flagged (boolean), status (array of status strings), tagId (string), dueBeforeDate (ISO datetime). Results are capped at limit (default 200). Each returned task includes dueDate and tagIds.";
|
|
81
|
+
readonly inputSchema: z.ZodObject<{
|
|
82
|
+
scope: z.ZodEffects<z.ZodObject<{
|
|
83
|
+
projectId: z.ZodOptional<z.ZodString>;
|
|
84
|
+
folderId: z.ZodOptional<z.ZodString>;
|
|
85
|
+
inbox: z.ZodOptional<z.ZodLiteral<true>>;
|
|
86
|
+
all: z.ZodOptional<z.ZodLiteral<true>>;
|
|
87
|
+
}, "strip", z.ZodTypeAny, {
|
|
88
|
+
inbox?: true | undefined;
|
|
89
|
+
projectId?: string | undefined;
|
|
90
|
+
folderId?: string | undefined;
|
|
91
|
+
all?: true | undefined;
|
|
92
|
+
}, {
|
|
93
|
+
inbox?: true | undefined;
|
|
94
|
+
projectId?: string | undefined;
|
|
95
|
+
folderId?: string | undefined;
|
|
96
|
+
all?: true | undefined;
|
|
97
|
+
}>, {
|
|
98
|
+
inbox?: true | undefined;
|
|
99
|
+
projectId?: string | undefined;
|
|
100
|
+
folderId?: string | undefined;
|
|
101
|
+
all?: true | undefined;
|
|
102
|
+
}, {
|
|
103
|
+
inbox?: true | undefined;
|
|
104
|
+
projectId?: string | undefined;
|
|
105
|
+
folderId?: string | undefined;
|
|
106
|
+
all?: true | undefined;
|
|
107
|
+
}>;
|
|
108
|
+
filter: z.ZodOptional<z.ZodObject<{
|
|
109
|
+
flagged: z.ZodOptional<z.ZodLiteral<true>>;
|
|
110
|
+
status: z.ZodOptional<z.ZodArray<z.ZodEnum<["available", "incomplete", "completedByChildren", "complete", "dropped", "dueSoon", "overdue", "flagged", "blocked", "next"]>, "many">>;
|
|
111
|
+
tagId: z.ZodOptional<z.ZodString>;
|
|
112
|
+
dueBeforeDate: z.ZodOptional<z.ZodString>;
|
|
113
|
+
}, "strip", z.ZodTypeAny, {
|
|
114
|
+
status?: ("dropped" | "available" | "incomplete" | "completedByChildren" | "complete" | "dueSoon" | "overdue" | "flagged" | "blocked" | "next")[] | undefined;
|
|
115
|
+
flagged?: true | undefined;
|
|
116
|
+
tagId?: string | undefined;
|
|
117
|
+
dueBeforeDate?: string | undefined;
|
|
118
|
+
}, {
|
|
119
|
+
status?: ("dropped" | "available" | "incomplete" | "completedByChildren" | "complete" | "dueSoon" | "overdue" | "flagged" | "blocked" | "next")[] | undefined;
|
|
120
|
+
flagged?: true | undefined;
|
|
121
|
+
tagId?: string | undefined;
|
|
122
|
+
dueBeforeDate?: string | undefined;
|
|
123
|
+
}>>;
|
|
124
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
125
|
+
}, "strip", z.ZodTypeAny, {
|
|
126
|
+
scope: {
|
|
127
|
+
inbox?: true | undefined;
|
|
128
|
+
projectId?: string | undefined;
|
|
129
|
+
folderId?: string | undefined;
|
|
130
|
+
all?: true | undefined;
|
|
131
|
+
};
|
|
132
|
+
filter?: {
|
|
133
|
+
status?: ("dropped" | "available" | "incomplete" | "completedByChildren" | "complete" | "dueSoon" | "overdue" | "flagged" | "blocked" | "next")[] | undefined;
|
|
134
|
+
flagged?: true | undefined;
|
|
135
|
+
tagId?: string | undefined;
|
|
136
|
+
dueBeforeDate?: string | undefined;
|
|
137
|
+
} | undefined;
|
|
138
|
+
limit?: number | undefined;
|
|
139
|
+
}, {
|
|
140
|
+
scope: {
|
|
141
|
+
inbox?: true | undefined;
|
|
142
|
+
projectId?: string | undefined;
|
|
143
|
+
folderId?: string | undefined;
|
|
144
|
+
all?: true | undefined;
|
|
145
|
+
};
|
|
146
|
+
filter?: {
|
|
147
|
+
status?: ("dropped" | "available" | "incomplete" | "completedByChildren" | "complete" | "dueSoon" | "overdue" | "flagged" | "blocked" | "next")[] | undefined;
|
|
148
|
+
flagged?: true | undefined;
|
|
149
|
+
tagId?: string | undefined;
|
|
150
|
+
dueBeforeDate?: string | undefined;
|
|
151
|
+
} | undefined;
|
|
152
|
+
limit?: number | undefined;
|
|
153
|
+
}>;
|
|
154
|
+
readonly handler: typeof listTasksHandler;
|
|
155
|
+
};
|
|
156
|
+
//# sourceMappingURL=listTasks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listTasks.d.ts","sourceRoot":"","sources":["../../src/tools/listTasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAY,WAAW,EAAmB,MAAM,qBAAqB,CAAC;AAsB7E,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAU1B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE7D,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,EAAE,CAAC,CAOxC;AAED,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMhB,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { runSnippet } from "../runtime/index.js";
|
|
3
|
+
import { IdSchema, TaskSummary, ListTasksFilter } from "../schemas/index.js";
|
|
4
|
+
const ScopeSchema = z
|
|
5
|
+
.object({
|
|
6
|
+
projectId: IdSchema.optional(),
|
|
7
|
+
folderId: IdSchema.optional(),
|
|
8
|
+
inbox: z.literal(true).optional(),
|
|
9
|
+
all: z.literal(true).optional(),
|
|
10
|
+
})
|
|
11
|
+
.refine((s) => {
|
|
12
|
+
const keys = [s.projectId, s.folderId, s.inbox, s.all].filter((v) => v !== undefined);
|
|
13
|
+
return keys.length === 1;
|
|
14
|
+
}, {
|
|
15
|
+
message: "Exactly one of projectId, folderId, inbox, or all must be provided",
|
|
16
|
+
});
|
|
17
|
+
export const listTasksSchema = z.object({
|
|
18
|
+
scope: ScopeSchema.describe("Exactly one of: projectId (string), folderId (string), inbox (true), or all (true)"),
|
|
19
|
+
filter: ListTasksFilter.optional().describe("Optional filters. All fields combine as AND. When status is omitted, complete and dropped tasks are excluded by default."),
|
|
20
|
+
limit: z.number().int().positive().optional().describe("Maximum number of tasks to return. Defaults to 200."),
|
|
21
|
+
});
|
|
22
|
+
export async function listTasksHandler(input) {
|
|
23
|
+
const raw = await runSnippet("list_tasks", {
|
|
24
|
+
scope: input.scope,
|
|
25
|
+
filter: input.filter,
|
|
26
|
+
limit: input.limit,
|
|
27
|
+
});
|
|
28
|
+
return z.array(TaskSummary).parse(raw);
|
|
29
|
+
}
|
|
30
|
+
export const listTasksTool = {
|
|
31
|
+
name: "list_tasks",
|
|
32
|
+
description: "List tasks in OmniFocus within a scope. Provide exactly one of: projectId (tasks in a project), folderId (tasks across all projects in a folder), inbox (inbox tasks), or all (every task). By default, complete and dropped tasks are excluded — pass filter.status to override. Optional filter fields: flagged (boolean), status (array of status strings), tagId (string), dueBeforeDate (ISO datetime). Results are capped at limit (default 200). Each returned task includes dueDate and tagIds.",
|
|
33
|
+
inputSchema: listTasksSchema,
|
|
34
|
+
handler: listTasksHandler,
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=listTasks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listTasks.js","sourceRoot":"","sources":["../../src/tools/listTasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE7E,MAAM,WAAW,GAAG,CAAC;KAClB,MAAM,CAAC;IACN,SAAS,EAAE,QAAQ,CAAC,QAAQ,EAAE;IAC9B,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE;IAC7B,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;IACjC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;CAChC,CAAC;KACD,MAAM,CACL,CAAC,CAAC,EAAE,EAAE;IACJ,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAC3D,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CACvB,CAAC;IACF,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;AAC3B,CAAC,EACD;IACE,OAAO,EACL,oEAAoE;CACvE,CACF,CAAC;AAEJ,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,KAAK,EAAE,WAAW,CAAC,QAAQ,CACzB,oFAAoF,CACrF;IACD,MAAM,EAAE,eAAe,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACzC,0HAA0H,CAC3H;IACD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACpD,qDAAqD,CACtD;CACF,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,KAAqB;IAErB,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,YAAY,EAAE;QACzC,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,KAAK,EAAE,KAAK,CAAC,KAAK;KACnB,CAAC,CAAC;IACH,OAAO,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,IAAI,EAAE,YAAY;IAClB,WAAW,EACT,yeAAye;IAC3e,WAAW,EAAE,eAAe;IAC5B,OAAO,EAAE,gBAAgB;CACjB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { MoveProjectInput, ProjectSummary } from "../schemas/index.js";
|
|
3
|
+
export type MoveProjectInputType = z.infer<typeof MoveProjectInput>;
|
|
4
|
+
export declare function moveProjectHandler(input: MoveProjectInputType): Promise<z.infer<typeof ProjectSummary>>;
|
|
5
|
+
export declare const moveProjectTool: {
|
|
6
|
+
readonly name: "move_project";
|
|
7
|
+
readonly description: "Move a project to a different folder or to the top level. Pass folderId as a string to move into a folder, or null to move to the top level. Throws a not-found error if either ID does not exist.";
|
|
8
|
+
readonly inputSchema: z.ZodObject<{
|
|
9
|
+
id: z.ZodString;
|
|
10
|
+
folderId: z.ZodNullable<z.ZodString>;
|
|
11
|
+
}, "strip", z.ZodTypeAny, {
|
|
12
|
+
id: string;
|
|
13
|
+
folderId: string | null;
|
|
14
|
+
}, {
|
|
15
|
+
id: string;
|
|
16
|
+
folderId: string | null;
|
|
17
|
+
}>;
|
|
18
|
+
readonly handler: typeof moveProjectHandler;
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=moveProject.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"moveProject.d.ts","sourceRoot":"","sources":["../../src/tools/moveProject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEvE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEpE,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC,CAGzC;AAED,eAAO,MAAM,eAAe;;;;;;;;;;;;;;CAMlB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { runSnippet } from "../runtime/index.js";
|
|
2
|
+
import { MoveProjectInput, ProjectSummary } from "../schemas/index.js";
|
|
3
|
+
export async function moveProjectHandler(input) {
|
|
4
|
+
const raw = await runSnippet("move_project", input);
|
|
5
|
+
return ProjectSummary.parse(raw);
|
|
6
|
+
}
|
|
7
|
+
export const moveProjectTool = {
|
|
8
|
+
name: "move_project",
|
|
9
|
+
description: "Move a project to a different folder or to the top level. Pass folderId as a string to move into a folder, or null to move to the top level. Throws a not-found error if either ID does not exist.",
|
|
10
|
+
inputSchema: MoveProjectInput,
|
|
11
|
+
handler: moveProjectHandler,
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=moveProject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"moveProject.js","sourceRoot":"","sources":["../../src/tools/moveProject.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAIvE,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,KAA2B;IAE3B,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACpD,OAAO,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,IAAI,EAAE,cAAc;IACpB,WAAW,EACT,oMAAoM;IACtM,WAAW,EAAE,gBAAgB;IAC7B,OAAO,EAAE,kBAAkB;CACnB,CAAC"}
|