@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.
Files changed (387) hide show
  1. package/.claude/commands/opsx/apply.md +152 -0
  2. package/.claude/commands/opsx/archive.md +157 -0
  3. package/.claude/commands/opsx/bulk-archive.md +242 -0
  4. package/.claude/commands/opsx/continue.md +114 -0
  5. package/.claude/commands/opsx/explore.md +173 -0
  6. package/.claude/commands/opsx/ff.md +97 -0
  7. package/.claude/commands/opsx/new.md +69 -0
  8. package/.claude/commands/opsx/onboard.md +550 -0
  9. package/.claude/commands/opsx/propose.md +106 -0
  10. package/.claude/commands/opsx/sync.md +134 -0
  11. package/.claude/commands/opsx/verify.md +164 -0
  12. package/.claude/skills/openspec-apply-change/SKILL.md +156 -0
  13. package/.claude/skills/openspec-archive-change/SKILL.md +114 -0
  14. package/.claude/skills/openspec-bulk-archive-change/SKILL.md +246 -0
  15. package/.claude/skills/openspec-continue-change/SKILL.md +118 -0
  16. package/.claude/skills/openspec-explore/SKILL.md +288 -0
  17. package/.claude/skills/openspec-ff-change/SKILL.md +101 -0
  18. package/.claude/skills/openspec-new-change/SKILL.md +74 -0
  19. package/.claude/skills/openspec-onboard/SKILL.md +554 -0
  20. package/.claude/skills/openspec-propose/SKILL.md +110 -0
  21. package/.claude/skills/openspec-sync-specs/SKILL.md +138 -0
  22. package/.claude/skills/openspec-verify-change/SKILL.md +168 -0
  23. package/CONTRIBUTING.md +83 -0
  24. package/LICENSE +21 -0
  25. package/README.md +198 -0
  26. package/dist/runtime/bridge.d.ts +16 -0
  27. package/dist/runtime/bridge.d.ts.map +1 -0
  28. package/dist/runtime/bridge.js +76 -0
  29. package/dist/runtime/bridge.js.map +1 -0
  30. package/dist/runtime/index.d.ts +5 -0
  31. package/dist/runtime/index.d.ts.map +1 -0
  32. package/dist/runtime/index.js +5 -0
  33. package/dist/runtime/index.js.map +1 -0
  34. package/dist/runtime/jxaShim.d.ts +21 -0
  35. package/dist/runtime/jxaShim.d.ts.map +1 -0
  36. package/dist/runtime/jxaShim.js +55 -0
  37. package/dist/runtime/jxaShim.js.map +1 -0
  38. package/dist/runtime/resultProtocol.d.ts +66 -0
  39. package/dist/runtime/resultProtocol.d.ts.map +1 -0
  40. package/dist/runtime/resultProtocol.js +52 -0
  41. package/dist/runtime/resultProtocol.js.map +1 -0
  42. package/dist/runtime/snippetLoader.d.ts +4 -0
  43. package/dist/runtime/snippetLoader.d.ts.map +1 -0
  44. package/dist/runtime/snippetLoader.js +68 -0
  45. package/dist/runtime/snippetLoader.js.map +1 -0
  46. package/dist/schemas/enums.d.ts +9 -0
  47. package/dist/schemas/enums.d.ts.map +1 -0
  48. package/dist/schemas/enums.js +26 -0
  49. package/dist/schemas/enums.js.map +1 -0
  50. package/dist/schemas/index.d.ts +3 -0
  51. package/dist/schemas/index.d.ts.map +1 -0
  52. package/dist/schemas/index.js +3 -0
  53. package/dist/schemas/index.js.map +1 -0
  54. package/dist/schemas/shapes.d.ts +726 -0
  55. package/dist/schemas/shapes.d.ts.map +1 -0
  56. package/dist/schemas/shapes.js +221 -0
  57. package/dist/schemas/shapes.js.map +1 -0
  58. package/dist/server.d.ts +2 -0
  59. package/dist/server.d.ts.map +1 -0
  60. package/dist/server.js +50 -0
  61. package/dist/server.js.map +1 -0
  62. package/dist/tools/completeProject.d.ts +24 -0
  63. package/dist/tools/completeProject.d.ts.map +1 -0
  64. package/dist/tools/completeProject.js +17 -0
  65. package/dist/tools/completeProject.js.map +1 -0
  66. package/dist/tools/completeTask.d.ts +25 -0
  67. package/dist/tools/completeTask.d.ts.map +1 -0
  68. package/dist/tools/completeTask.js +17 -0
  69. package/dist/tools/completeTask.js.map +1 -0
  70. package/dist/tools/createFolder.d.ts +20 -0
  71. package/dist/tools/createFolder.d.ts.map +1 -0
  72. package/dist/tools/createFolder.js +13 -0
  73. package/dist/tools/createFolder.js.map +1 -0
  74. package/dist/tools/createProject.d.ts +59 -0
  75. package/dist/tools/createProject.d.ts.map +1 -0
  76. package/dist/tools/createProject.js +13 -0
  77. package/dist/tools/createProject.js.map +1 -0
  78. package/dist/tools/createTag.d.ts +20 -0
  79. package/dist/tools/createTag.d.ts.map +1 -0
  80. package/dist/tools/createTag.js +13 -0
  81. package/dist/tools/createTag.js.map +1 -0
  82. package/dist/tools/createTask.d.ts +116 -0
  83. package/dist/tools/createTask.d.ts.map +1 -0
  84. package/dist/tools/createTask.js +13 -0
  85. package/dist/tools/createTask.js.map +1 -0
  86. package/dist/tools/deleteFolder.d.ts +30 -0
  87. package/dist/tools/deleteFolder.d.ts.map +1 -0
  88. package/dist/tools/deleteFolder.js +18 -0
  89. package/dist/tools/deleteFolder.js.map +1 -0
  90. package/dist/tools/deleteProject.d.ts +30 -0
  91. package/dist/tools/deleteProject.d.ts.map +1 -0
  92. package/dist/tools/deleteProject.js +18 -0
  93. package/dist/tools/deleteProject.js.map +1 -0
  94. package/dist/tools/deleteTag.d.ts +30 -0
  95. package/dist/tools/deleteTag.d.ts.map +1 -0
  96. package/dist/tools/deleteTag.js +18 -0
  97. package/dist/tools/deleteTag.js.map +1 -0
  98. package/dist/tools/deleteTask.d.ts +31 -0
  99. package/dist/tools/deleteTask.d.ts.map +1 -0
  100. package/dist/tools/deleteTask.js +18 -0
  101. package/dist/tools/deleteTask.js.map +1 -0
  102. package/dist/tools/dropProject.d.ts +24 -0
  103. package/dist/tools/dropProject.d.ts.map +1 -0
  104. package/dist/tools/dropProject.js +17 -0
  105. package/dist/tools/dropProject.js.map +1 -0
  106. package/dist/tools/dropTask.d.ts +25 -0
  107. package/dist/tools/dropTask.d.ts.map +1 -0
  108. package/dist/tools/dropTask.js +17 -0
  109. package/dist/tools/dropTask.js.map +1 -0
  110. package/dist/tools/editFolder.d.ts +20 -0
  111. package/dist/tools/editFolder.d.ts.map +1 -0
  112. package/dist/tools/editFolder.js +13 -0
  113. package/dist/tools/editFolder.js.map +1 -0
  114. package/dist/tools/editProject.d.ts +59 -0
  115. package/dist/tools/editProject.d.ts.map +1 -0
  116. package/dist/tools/editProject.js +13 -0
  117. package/dist/tools/editProject.js.map +1 -0
  118. package/dist/tools/editTag.d.ts +31 -0
  119. package/dist/tools/editTag.d.ts.map +1 -0
  120. package/dist/tools/editTag.js +13 -0
  121. package/dist/tools/editTag.js.map +1 -0
  122. package/dist/tools/editTask.d.ts +79 -0
  123. package/dist/tools/editTask.d.ts.map +1 -0
  124. package/dist/tools/editTask.js +13 -0
  125. package/dist/tools/editTask.js.map +1 -0
  126. package/dist/tools/getFolder.d.ts +24 -0
  127. package/dist/tools/getFolder.d.ts.map +1 -0
  128. package/dist/tools/getFolder.js +17 -0
  129. package/dist/tools/getFolder.js.map +1 -0
  130. package/dist/tools/getProject.d.ts +24 -0
  131. package/dist/tools/getProject.d.ts.map +1 -0
  132. package/dist/tools/getProject.js +17 -0
  133. package/dist/tools/getProject.js.map +1 -0
  134. package/dist/tools/getTag.d.ts +24 -0
  135. package/dist/tools/getTag.d.ts.map +1 -0
  136. package/dist/tools/getTag.js +17 -0
  137. package/dist/tools/getTag.js.map +1 -0
  138. package/dist/tools/getTask.d.ts +24 -0
  139. package/dist/tools/getTask.d.ts.map +1 -0
  140. package/dist/tools/getTask.js +17 -0
  141. package/dist/tools/getTask.js.map +1 -0
  142. package/dist/tools/index.d.ts +732 -0
  143. package/dist/tools/index.d.ts.map +1 -0
  144. package/dist/tools/index.js +84 -0
  145. package/dist/tools/index.js.map +1 -0
  146. package/dist/tools/listFolders.d.ts +50 -0
  147. package/dist/tools/listFolders.d.ts.map +1 -0
  148. package/dist/tools/listFolders.js +21 -0
  149. package/dist/tools/listFolders.js.map +1 -0
  150. package/dist/tools/listProjects.d.ts +70 -0
  151. package/dist/tools/listProjects.d.ts.map +1 -0
  152. package/dist/tools/listProjects.js +21 -0
  153. package/dist/tools/listProjects.js.map +1 -0
  154. package/dist/tools/listTags.d.ts +50 -0
  155. package/dist/tools/listTags.d.ts.map +1 -0
  156. package/dist/tools/listTags.js +21 -0
  157. package/dist/tools/listTags.js.map +1 -0
  158. package/dist/tools/listTasks.d.ts +156 -0
  159. package/dist/tools/listTasks.d.ts.map +1 -0
  160. package/dist/tools/listTasks.js +36 -0
  161. package/dist/tools/listTasks.js.map +1 -0
  162. package/dist/tools/moveProject.d.ts +20 -0
  163. package/dist/tools/moveProject.d.ts.map +1 -0
  164. package/dist/tools/moveProject.js +13 -0
  165. package/dist/tools/moveProject.js.map +1 -0
  166. package/dist/tools/moveTask.d.ts +31 -0
  167. package/dist/tools/moveTask.d.ts.map +1 -0
  168. package/dist/tools/moveTask.js +13 -0
  169. package/dist/tools/moveTask.js.map +1 -0
  170. package/dist/tools/resolveName.d.ts +36 -0
  171. package/dist/tools/resolveName.d.ts.map +1 -0
  172. package/dist/tools/resolveName.js +26 -0
  173. package/dist/tools/resolveName.js.map +1 -0
  174. package/openspec/changes/archive/2026-04-09-bootstrap-omnifocus-mcp/.openspec.yaml +2 -0
  175. package/openspec/changes/archive/2026-04-09-bootstrap-omnifocus-mcp/design.md +162 -0
  176. package/openspec/changes/archive/2026-04-09-bootstrap-omnifocus-mcp/proposal.md +49 -0
  177. package/openspec/changes/archive/2026-04-09-bootstrap-omnifocus-mcp/specs/attachments/spec.md +9 -0
  178. package/openspec/changes/archive/2026-04-09-bootstrap-omnifocus-mcp/specs/batch-operations/spec.md +9 -0
  179. package/openspec/changes/archive/2026-04-09-bootstrap-omnifocus-mcp/specs/database-inspection/spec.md +9 -0
  180. package/openspec/changes/archive/2026-04-09-bootstrap-omnifocus-mcp/specs/execution-runtime/spec.md +69 -0
  181. package/openspec/changes/archive/2026-04-09-bootstrap-omnifocus-mcp/specs/folder-management/spec.md +25 -0
  182. package/openspec/changes/archive/2026-04-09-bootstrap-omnifocus-mcp/specs/forecast/spec.md +9 -0
  183. package/openspec/changes/archive/2026-04-09-bootstrap-omnifocus-mcp/specs/identity-resolution/spec.md +45 -0
  184. package/openspec/changes/archive/2026-04-09-bootstrap-omnifocus-mcp/specs/perspective-management/spec.md +9 -0
  185. package/openspec/changes/archive/2026-04-09-bootstrap-omnifocus-mcp/specs/project-management/spec.md +25 -0
  186. package/openspec/changes/archive/2026-04-09-bootstrap-omnifocus-mcp/specs/recurrence/spec.md +9 -0
  187. package/openspec/changes/archive/2026-04-09-bootstrap-omnifocus-mcp/specs/settings/spec.md +9 -0
  188. package/openspec/changes/archive/2026-04-09-bootstrap-omnifocus-mcp/specs/tag-management/spec.md +25 -0
  189. package/openspec/changes/archive/2026-04-09-bootstrap-omnifocus-mcp/specs/task-management/spec.md +29 -0
  190. package/openspec/changes/archive/2026-04-09-bootstrap-omnifocus-mcp/specs/url-automation/spec.md +9 -0
  191. package/openspec/changes/archive/2026-04-09-bootstrap-omnifocus-mcp/specs/window-state/spec.md +9 -0
  192. package/openspec/changes/archive/2026-04-09-bootstrap-omnifocus-mcp/tasks.md +84 -0
  193. package/openspec/changes/archive/2026-04-09-folder-crud/.openspec.yaml +2 -0
  194. package/openspec/changes/archive/2026-04-09-folder-crud/design.md +58 -0
  195. package/openspec/changes/archive/2026-04-09-folder-crud/proposal.md +28 -0
  196. package/openspec/changes/archive/2026-04-09-folder-crud/specs/folder-write/spec.md +45 -0
  197. package/openspec/changes/archive/2026-04-09-folder-crud/tasks.md +41 -0
  198. package/openspec/changes/archive/2026-04-09-folder-tag-list-filtering/.openspec.yaml +2 -0
  199. package/openspec/changes/archive/2026-04-09-folder-tag-list-filtering/design.md +38 -0
  200. package/openspec/changes/archive/2026-04-09-folder-tag-list-filtering/proposal.md +30 -0
  201. package/openspec/changes/archive/2026-04-09-folder-tag-list-filtering/specs/folder-management/spec.md +21 -0
  202. package/openspec/changes/archive/2026-04-09-folder-tag-list-filtering/specs/tag-management/spec.md +21 -0
  203. package/openspec/changes/archive/2026-04-09-folder-tag-list-filtering/tasks.md +35 -0
  204. package/openspec/changes/archive/2026-04-09-move-operations/.openspec.yaml +2 -0
  205. package/openspec/changes/archive/2026-04-09-move-operations/design.md +43 -0
  206. package/openspec/changes/archive/2026-04-09-move-operations/proposal.md +25 -0
  207. package/openspec/changes/archive/2026-04-09-move-operations/specs/move-operations/spec.md +41 -0
  208. package/openspec/changes/archive/2026-04-09-move-operations/tasks.md +40 -0
  209. package/openspec/changes/archive/2026-04-09-project-crud/.openspec.yaml +2 -0
  210. package/openspec/changes/archive/2026-04-09-project-crud/design.md +60 -0
  211. package/openspec/changes/archive/2026-04-09-project-crud/proposal.md +29 -0
  212. package/openspec/changes/archive/2026-04-09-project-crud/specs/project-write/spec.md +74 -0
  213. package/openspec/changes/archive/2026-04-09-project-crud/tasks.md +48 -0
  214. package/openspec/changes/archive/2026-04-09-project-filtering/.openspec.yaml +2 -0
  215. package/openspec/changes/archive/2026-04-09-project-filtering/design.md +52 -0
  216. package/openspec/changes/archive/2026-04-09-project-filtering/proposal.md +26 -0
  217. package/openspec/changes/archive/2026-04-09-project-filtering/specs/project-filtering/spec.md +66 -0
  218. package/openspec/changes/archive/2026-04-09-project-filtering/specs/project-management/spec.md +13 -0
  219. package/openspec/changes/archive/2026-04-09-project-filtering/tasks.md +41 -0
  220. package/openspec/changes/archive/2026-04-09-tag-crud/.openspec.yaml +2 -0
  221. package/openspec/changes/archive/2026-04-09-tag-crud/design.md +45 -0
  222. package/openspec/changes/archive/2026-04-09-tag-crud/proposal.md +28 -0
  223. package/openspec/changes/archive/2026-04-09-tag-crud/specs/tag-write/spec.md +49 -0
  224. package/openspec/changes/archive/2026-04-09-tag-crud/tasks.md +41 -0
  225. package/openspec/changes/archive/2026-04-09-task-crud/.openspec.yaml +2 -0
  226. package/openspec/changes/archive/2026-04-09-task-crud/design.md +62 -0
  227. package/openspec/changes/archive/2026-04-09-task-crud/proposal.md +29 -0
  228. package/openspec/changes/archive/2026-04-09-task-crud/specs/task-management/spec.md +17 -0
  229. package/openspec/changes/archive/2026-04-09-task-crud/specs/task-write/spec.md +89 -0
  230. package/openspec/changes/archive/2026-04-09-task-crud/tasks.md +55 -0
  231. package/openspec/changes/archive/2026-04-09-task-filtering/.openspec.yaml +2 -0
  232. package/openspec/changes/archive/2026-04-09-task-filtering/design.md +61 -0
  233. package/openspec/changes/archive/2026-04-09-task-filtering/proposal.md +26 -0
  234. package/openspec/changes/archive/2026-04-09-task-filtering/specs/task-filtering/spec.md +63 -0
  235. package/openspec/changes/archive/2026-04-09-task-filtering/specs/task-management/spec.md +17 -0
  236. package/openspec/changes/archive/2026-04-09-task-filtering/tasks.md +42 -0
  237. package/openspec/changes/archive/2026-04-10-planned-date/.openspec.yaml +2 -0
  238. package/openspec/changes/archive/2026-04-10-planned-date/design.md +27 -0
  239. package/openspec/changes/archive/2026-04-10-planned-date/proposal.md +29 -0
  240. package/openspec/changes/archive/2026-04-10-planned-date/specs/task-management/spec.md +29 -0
  241. package/openspec/changes/archive/2026-04-10-planned-date/specs/task-write/spec.md +69 -0
  242. package/openspec/changes/archive/2026-04-10-planned-date/tasks.md +26 -0
  243. package/openspec/changes/archive/2026-04-10-task-recurrence/.openspec.yaml +2 -0
  244. package/openspec/changes/archive/2026-04-10-task-recurrence/design.md +81 -0
  245. package/openspec/changes/archive/2026-04-10-task-recurrence/proposal.md +28 -0
  246. package/openspec/changes/archive/2026-04-10-task-recurrence/specs/recurrence/spec.md +47 -0
  247. package/openspec/changes/archive/2026-04-10-task-recurrence/specs/task-management/spec.md +25 -0
  248. package/openspec/changes/archive/2026-04-10-task-recurrence/specs/task-write/spec.md +61 -0
  249. package/openspec/changes/archive/2026-04-10-task-recurrence/tasks.md +39 -0
  250. package/openspec/config.yaml +20 -0
  251. package/openspec/specs/attachments/spec.md +15 -0
  252. package/openspec/specs/batch-operations/spec.md +15 -0
  253. package/openspec/specs/database-inspection/spec.md +15 -0
  254. package/openspec/specs/execution-runtime/spec.md +75 -0
  255. package/openspec/specs/folder-management/spec.md +39 -0
  256. package/openspec/specs/folder-write/spec.md +45 -0
  257. package/openspec/specs/forecast/spec.md +15 -0
  258. package/openspec/specs/identity-resolution/spec.md +51 -0
  259. package/openspec/specs/move-operations/spec.md +41 -0
  260. package/openspec/specs/perspective-management/spec.md +15 -0
  261. package/openspec/specs/project-filtering/spec.md +72 -0
  262. package/openspec/specs/project-management/spec.md +31 -0
  263. package/openspec/specs/project-write/spec.md +79 -0
  264. package/openspec/specs/recurrence/spec.md +51 -0
  265. package/openspec/specs/settings/spec.md +15 -0
  266. package/openspec/specs/tag-management/spec.md +39 -0
  267. package/openspec/specs/tag-write/spec.md +49 -0
  268. package/openspec/specs/task-filtering/spec.md +63 -0
  269. package/openspec/specs/task-management/spec.md +51 -0
  270. package/openspec/specs/task-write/spec.md +115 -0
  271. package/openspec/specs/url-automation/spec.md +15 -0
  272. package/openspec/specs/window-state/spec.md +15 -0
  273. package/package.json +32 -0
  274. package/scripts/cleanup-fixtures.ts +89 -0
  275. package/server.json +21 -0
  276. package/src/runtime/bridge.ts +97 -0
  277. package/src/runtime/index.ts +4 -0
  278. package/src/runtime/jxaShim.ts +55 -0
  279. package/src/runtime/resultProtocol.ts +62 -0
  280. package/src/runtime/snippetLoader.ts +79 -0
  281. package/src/schemas/enums.ts +32 -0
  282. package/src/schemas/index.ts +38 -0
  283. package/src/schemas/shapes.ts +267 -0
  284. package/src/server.ts +58 -0
  285. package/src/snippets/complete_project.js +73 -0
  286. package/src/snippets/complete_task.js +85 -0
  287. package/src/snippets/create_folder.js +52 -0
  288. package/src/snippets/create_project.js +107 -0
  289. package/src/snippets/create_tag.js +55 -0
  290. package/src/snippets/create_task.js +159 -0
  291. package/src/snippets/delete_folder.js +26 -0
  292. package/src/snippets/delete_project.js +20 -0
  293. package/src/snippets/delete_tag.js +20 -0
  294. package/src/snippets/delete_task.js +20 -0
  295. package/src/snippets/drop_project.js +73 -0
  296. package/src/snippets/drop_task.js +85 -0
  297. package/src/snippets/edit_folder.js +46 -0
  298. package/src/snippets/edit_project.js +106 -0
  299. package/src/snippets/edit_tag.js +56 -0
  300. package/src/snippets/edit_task.js +146 -0
  301. package/src/snippets/get_folder.js +48 -0
  302. package/src/snippets/get_project.js +77 -0
  303. package/src/snippets/get_tag.js +51 -0
  304. package/src/snippets/get_task.js +96 -0
  305. package/src/snippets/list_folders.js +50 -0
  306. package/src/snippets/list_projects.js +98 -0
  307. package/src/snippets/list_tags.js +54 -0
  308. package/src/snippets/list_tasks.js +127 -0
  309. package/src/snippets/move_project.js +79 -0
  310. package/src/snippets/move_task.js +113 -0
  311. package/src/snippets/resolve_name.js +83 -0
  312. package/src/tools/completeProject.ts +21 -0
  313. package/src/tools/completeTask.ts +23 -0
  314. package/src/tools/createFolder.ts +20 -0
  315. package/src/tools/createProject.ts +20 -0
  316. package/src/tools/createTag.ts +20 -0
  317. package/src/tools/createTask.ts +20 -0
  318. package/src/tools/deleteFolder.ts +24 -0
  319. package/src/tools/deleteProject.ts +24 -0
  320. package/src/tools/deleteTag.ts +24 -0
  321. package/src/tools/deleteTask.ts +26 -0
  322. package/src/tools/dropProject.ts +21 -0
  323. package/src/tools/dropTask.ts +23 -0
  324. package/src/tools/editFolder.ts +19 -0
  325. package/src/tools/editProject.ts +20 -0
  326. package/src/tools/editTag.ts +20 -0
  327. package/src/tools/editTask.ts +20 -0
  328. package/src/tools/getFolder.ts +24 -0
  329. package/src/tools/getProject.ts +24 -0
  330. package/src/tools/getTag.ts +24 -0
  331. package/src/tools/getTask.ts +24 -0
  332. package/src/tools/index.ts +85 -0
  333. package/src/tools/listFolders.ts +32 -0
  334. package/src/tools/listProjects.ts +32 -0
  335. package/src/tools/listTags.ts +32 -0
  336. package/src/tools/listTasks.ts +56 -0
  337. package/src/tools/moveProject.ts +20 -0
  338. package/src/tools/moveTask.ts +20 -0
  339. package/src/tools/resolveName.ts +37 -0
  340. package/test/integration/.gitkeep +0 -0
  341. package/test/integration/completeProject.int.test.ts +25 -0
  342. package/test/integration/completeTask.int.test.ts +30 -0
  343. package/test/integration/createFolder.int.test.ts +50 -0
  344. package/test/integration/createProject.int.test.ts +49 -0
  345. package/test/integration/createTag.int.test.ts +52 -0
  346. package/test/integration/createTask.int.test.ts +55 -0
  347. package/test/integration/deleteFolder.int.test.ts +64 -0
  348. package/test/integration/deleteProject.int.test.ts +31 -0
  349. package/test/integration/deleteTag.int.test.ts +61 -0
  350. package/test/integration/deleteTask.int.test.ts +36 -0
  351. package/test/integration/dropProject.int.test.ts +24 -0
  352. package/test/integration/dropTask.int.test.ts +29 -0
  353. package/test/integration/editFolder.int.test.ts +43 -0
  354. package/test/integration/editProject.int.test.ts +39 -0
  355. package/test/integration/editTag.int.test.ts +43 -0
  356. package/test/integration/editTask.int.test.ts +56 -0
  357. package/test/integration/fixtures.ts +219 -0
  358. package/test/integration/getTask.int.test.ts +64 -0
  359. package/test/integration/listFoldersFiltered.int.test.ts +98 -0
  360. package/test/integration/listProjects.int.test.ts +73 -0
  361. package/test/integration/listProjectsFiltered.int.test.ts +96 -0
  362. package/test/integration/listTagsFiltered.int.test.ts +54 -0
  363. package/test/integration/listTasksFiltered.int.test.ts +141 -0
  364. package/test/integration/moveProject.int.test.ts +57 -0
  365. package/test/integration/moveTask.int.test.ts +61 -0
  366. package/test/integration/plannedDate.int.test.ts +72 -0
  367. package/test/integration/preflight.ts +60 -0
  368. package/test/integration/resolveName.int.test.ts +86 -0
  369. package/test/integration/taskRecurrence.int.test.ts +106 -0
  370. package/test/unit/.gitkeep +0 -0
  371. package/test/unit/bridge.injection.test.ts +66 -0
  372. package/test/unit/resultProtocol.test.ts +71 -0
  373. package/test/unit/schemas.createFolder.test.ts +38 -0
  374. package/test/unit/schemas.createProject.test.ts +115 -0
  375. package/test/unit/schemas.createTask.test.ts +87 -0
  376. package/test/unit/schemas.editTag.test.ts +64 -0
  377. package/test/unit/schemas.folderTagFiltering.test.ts +42 -0
  378. package/test/unit/schemas.listProjects.test.ts +44 -0
  379. package/test/unit/schemas.moveOperations.test.ts +60 -0
  380. package/test/unit/schemas.recurrence.test.ts +120 -0
  381. package/test/unit/schemas.test.ts +126 -0
  382. package/test/unit/snippetLoader.test.ts +56 -0
  383. package/test/unit/tools.deleteTask.test.ts +19 -0
  384. package/test/unit/tools.listTasks.test.ts +126 -0
  385. package/tsconfig.json +19 -0
  386. package/vitest.config.ts +8 -0
  387. 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"}