vikunja-mcp-ng 0.4.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/LICENSE +21 -0
- package/README.md +123 -0
- package/dist/auth/AuthManager.d.ts +63 -0
- package/dist/auth/AuthManager.d.ts.map +1 -0
- package/dist/auth/AuthManager.js +137 -0
- package/dist/auth/AuthManager.js.map +1 -0
- package/dist/auth/index.d.ts +7 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +14 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/permissions.d.ts +60 -0
- package/dist/auth/permissions.d.ts.map +1 -0
- package/dist/auth/permissions.js +173 -0
- package/dist/auth/permissions.js.map +1 -0
- package/dist/client/VikunjaClientFactory.d.ts +41 -0
- package/dist/client/VikunjaClientFactory.d.ts.map +1 -0
- package/dist/client/VikunjaClientFactory.js +58 -0
- package/dist/client/VikunjaClientFactory.js.map +1 -0
- package/dist/client.d.ts +70 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +136 -0
- package/dist/client.js.map +1 -0
- package/dist/config/ConfigurationManager.d.ts +106 -0
- package/dist/config/ConfigurationManager.d.ts.map +1 -0
- package/dist/config/ConfigurationManager.js +509 -0
- package/dist/config/ConfigurationManager.js.map +1 -0
- package/dist/config/index.d.ts +9 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +36 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/secrets.d.ts +33 -0
- package/dist/config/secrets.d.ts.map +1 -0
- package/dist/config/secrets.js +90 -0
- package/dist/config/secrets.js.map +1 -0
- package/dist/config/types.d.ts +1113 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +189 -0
- package/dist/config/types.js.map +1 -0
- package/dist/formatters/BatchImportResponseFormatter.d.ts +89 -0
- package/dist/formatters/BatchImportResponseFormatter.d.ts.map +1 -0
- package/dist/formatters/BatchImportResponseFormatter.js +125 -0
- package/dist/formatters/BatchImportResponseFormatter.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +130 -0
- package/dist/index.js.map +1 -0
- package/dist/middleware/direct-middleware.d.ts +9 -0
- package/dist/middleware/direct-middleware.d.ts.map +1 -0
- package/dist/middleware/direct-middleware.js +49 -0
- package/dist/middleware/direct-middleware.js.map +1 -0
- package/dist/middleware/index.d.ts +8 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/middleware/index.js +21 -0
- package/dist/middleware/index.js.map +1 -0
- package/dist/middleware/simplified-rate-limit.d.ts +147 -0
- package/dist/middleware/simplified-rate-limit.d.ts.map +1 -0
- package/dist/middleware/simplified-rate-limit.js +533 -0
- package/dist/middleware/simplified-rate-limit.js.map +1 -0
- package/dist/parsers/CSVParser.d.ts +36 -0
- package/dist/parsers/CSVParser.d.ts.map +1 -0
- package/dist/parsers/CSVParser.js +69 -0
- package/dist/parsers/CSVParser.js.map +1 -0
- package/dist/parsers/InputParserFactory.d.ts +17 -0
- package/dist/parsers/InputParserFactory.d.ts.map +1 -0
- package/dist/parsers/InputParserFactory.js +137 -0
- package/dist/parsers/InputParserFactory.js.map +1 -0
- package/dist/parsers/JSONParser.d.ts +74 -0
- package/dist/parsers/JSONParser.d.ts.map +1 -0
- package/dist/parsers/JSONParser.js +69 -0
- package/dist/parsers/JSONParser.js.map +1 -0
- package/dist/services/EntityResolver.d.ts +92 -0
- package/dist/services/EntityResolver.d.ts.map +1 -0
- package/dist/services/EntityResolver.js +201 -0
- package/dist/services/EntityResolver.js.map +1 -0
- package/dist/services/TaskCreationService.d.ts +99 -0
- package/dist/services/TaskCreationService.d.ts.map +1 -0
- package/dist/services/TaskCreationService.js +392 -0
- package/dist/services/TaskCreationService.js.map +1 -0
- package/dist/storage/SimpleFilterStorage.d.ts +103 -0
- package/dist/storage/SimpleFilterStorage.d.ts.map +1 -0
- package/dist/storage/SimpleFilterStorage.js +350 -0
- package/dist/storage/SimpleFilterStorage.js.map +1 -0
- package/dist/storage/filtering/FilterSerializer.d.ts +45 -0
- package/dist/storage/filtering/FilterSerializer.d.ts.map +1 -0
- package/dist/storage/filtering/FilterSerializer.js +171 -0
- package/dist/storage/filtering/FilterSerializer.js.map +1 -0
- package/dist/storage/filtering/FilterValidator.d.ts +59 -0
- package/dist/storage/filtering/FilterValidator.d.ts.map +1 -0
- package/dist/storage/filtering/FilterValidator.js +183 -0
- package/dist/storage/filtering/FilterValidator.js.map +1 -0
- package/dist/storage/index.d.ts +61 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +125 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/templateFileStore.d.ts +62 -0
- package/dist/storage/templateFileStore.d.ts.map +1 -0
- package/dist/storage/templateFileStore.js +151 -0
- package/dist/storage/templateFileStore.js.map +1 -0
- package/dist/tools/admin.d.ts +51 -0
- package/dist/tools/admin.d.ts.map +1 -0
- package/dist/tools/admin.js +207 -0
- package/dist/tools/admin.js.map +1 -0
- package/dist/tools/auth.d.ts +9 -0
- package/dist/tools/auth.d.ts.map +1 -0
- package/dist/tools/auth.js +175 -0
- package/dist/tools/auth.js.map +1 -0
- package/dist/tools/batch-import.d.ts +5 -0
- package/dist/tools/batch-import.d.ts.map +1 -0
- package/dist/tools/batch-import.js +153 -0
- package/dist/tools/batch-import.js.map +1 -0
- package/dist/tools/caldav-tokens.d.ts +45 -0
- package/dist/tools/caldav-tokens.d.ts.map +1 -0
- package/dist/tools/caldav-tokens.js +93 -0
- package/dist/tools/caldav-tokens.js.map +1 -0
- package/dist/tools/export.d.ts +14 -0
- package/dist/tools/export.d.ts.map +1 -0
- package/dist/tools/export.js +252 -0
- package/dist/tools/export.js.map +1 -0
- package/dist/tools/filters.d.ts +50 -0
- package/dist/tools/filters.d.ts.map +1 -0
- package/dist/tools/filters.js +512 -0
- package/dist/tools/filters.js.map +1 -0
- package/dist/tools/index.d.ts +53 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +217 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/labels.d.ts +22 -0
- package/dist/tools/labels.d.ts.map +1 -0
- package/dist/tools/labels.js +206 -0
- package/dist/tools/labels.js.map +1 -0
- package/dist/tools/notifications.d.ts +17 -0
- package/dist/tools/notifications.d.ts.map +1 -0
- package/dist/tools/notifications.js +171 -0
- package/dist/tools/notifications.js.map +1 -0
- package/dist/tools/projects/backgrounds.d.ts +80 -0
- package/dist/tools/projects/backgrounds.d.ts.map +1 -0
- package/dist/tools/projects/backgrounds.js +154 -0
- package/dist/tools/projects/backgrounds.js.map +1 -0
- package/dist/tools/projects/buckets.d.ts +147 -0
- package/dist/tools/projects/buckets.d.ts.map +1 -0
- package/dist/tools/projects/buckets.js +291 -0
- package/dist/tools/projects/buckets.js.map +1 -0
- package/dist/tools/projects/crud.d.ts +145 -0
- package/dist/tools/projects/crud.d.ts.map +1 -0
- package/dist/tools/projects/crud.js +425 -0
- package/dist/tools/projects/crud.js.map +1 -0
- package/dist/tools/projects/duplicate.d.ts +41 -0
- package/dist/tools/projects/duplicate.d.ts.map +1 -0
- package/dist/tools/projects/duplicate.js +49 -0
- package/dist/tools/projects/duplicate.js.map +1 -0
- package/dist/tools/projects/hierarchy.d.ts +77 -0
- package/dist/tools/projects/hierarchy.d.ts.map +1 -0
- package/dist/tools/projects/hierarchy.js +300 -0
- package/dist/tools/projects/hierarchy.js.map +1 -0
- package/dist/tools/projects/index.d.ts +34 -0
- package/dist/tools/projects/index.d.ts.map +1 -0
- package/dist/tools/projects/index.js +522 -0
- package/dist/tools/projects/index.js.map +1 -0
- package/dist/tools/projects/permission.d.ts +26 -0
- package/dist/tools/projects/permission.d.ts.map +1 -0
- package/dist/tools/projects/permission.js +53 -0
- package/dist/tools/projects/permission.js.map +1 -0
- package/dist/tools/projects/response-formatter.d.ts +54 -0
- package/dist/tools/projects/response-formatter.d.ts.map +1 -0
- package/dist/tools/projects/response-formatter.js +139 -0
- package/dist/tools/projects/response-formatter.js.map +1 -0
- package/dist/tools/projects/sharing-access.d.ts +165 -0
- package/dist/tools/projects/sharing-access.d.ts.map +1 -0
- package/dist/tools/projects/sharing-access.js +450 -0
- package/dist/tools/projects/sharing-access.js.map +1 -0
- package/dist/tools/projects/sharing.d.ts +105 -0
- package/dist/tools/projects/sharing.d.ts.map +1 -0
- package/dist/tools/projects/sharing.js +258 -0
- package/dist/tools/projects/sharing.js.map +1 -0
- package/dist/tools/projects/validation.d.ts +51 -0
- package/dist/tools/projects/validation.d.ts.map +1 -0
- package/dist/tools/projects/validation.js +160 -0
- package/dist/tools/projects/validation.js.map +1 -0
- package/dist/tools/projects/views.d.ts +161 -0
- package/dist/tools/projects/views.d.ts.map +1 -0
- package/dist/tools/projects/views.js +234 -0
- package/dist/tools/projects/views.js.map +1 -0
- package/dist/tools/projects.d.ts +20 -0
- package/dist/tools/projects.d.ts.map +1 -0
- package/dist/tools/projects.js +66 -0
- package/dist/tools/projects.js.map +1 -0
- package/dist/tools/reactions.d.ts +25 -0
- package/dist/tools/reactions.d.ts.map +1 -0
- package/dist/tools/reactions.js +108 -0
- package/dist/tools/reactions.js.map +1 -0
- package/dist/tools/subscriptions.d.ts +23 -0
- package/dist/tools/subscriptions.d.ts.map +1 -0
- package/dist/tools/subscriptions.js +111 -0
- package/dist/tools/subscriptions.js.map +1 -0
- package/dist/tools/task-assignees.d.ts +13 -0
- package/dist/tools/task-assignees.d.ts.map +1 -0
- package/dist/tools/task-assignees.js +74 -0
- package/dist/tools/task-assignees.js.map +1 -0
- package/dist/tools/task-bulk.d.ts +13 -0
- package/dist/tools/task-bulk.d.ts.map +1 -0
- package/dist/tools/task-bulk.js +117 -0
- package/dist/tools/task-bulk.js.map +1 -0
- package/dist/tools/task-comments.d.ts +12 -0
- package/dist/tools/task-comments.d.ts.map +1 -0
- package/dist/tools/task-comments.js +65 -0
- package/dist/tools/task-comments.js.map +1 -0
- package/dist/tools/task-crud.d.ts +13 -0
- package/dist/tools/task-crud.d.ts.map +1 -0
- package/dist/tools/task-crud.js +168 -0
- package/dist/tools/task-crud.js.map +1 -0
- package/dist/tools/task-labels.d.ts +13 -0
- package/dist/tools/task-labels.d.ts.map +1 -0
- package/dist/tools/task-labels.js +64 -0
- package/dist/tools/task-labels.js.map +1 -0
- package/dist/tools/task-relations.d.ts +13 -0
- package/dist/tools/task-relations.d.ts.map +1 -0
- package/dist/tools/task-relations.js +74 -0
- package/dist/tools/task-relations.js.map +1 -0
- package/dist/tools/task-reminders.d.ts +13 -0
- package/dist/tools/task-reminders.d.ts.map +1 -0
- package/dist/tools/task-reminders.js +69 -0
- package/dist/tools/task-reminders.js.map +1 -0
- package/dist/tools/tasks/assignees/AssigneeOperationsService.d.ts +63 -0
- package/dist/tools/tasks/assignees/AssigneeOperationsService.d.ts.map +1 -0
- package/dist/tools/tasks/assignees/AssigneeOperationsService.js +152 -0
- package/dist/tools/tasks/assignees/AssigneeOperationsService.js.map +1 -0
- package/dist/tools/tasks/assignees/AssigneeResponseFormatter.d.ts +28 -0
- package/dist/tools/tasks/assignees/AssigneeResponseFormatter.d.ts.map +1 -0
- package/dist/tools/tasks/assignees/AssigneeResponseFormatter.js +73 -0
- package/dist/tools/tasks/assignees/AssigneeResponseFormatter.js.map +1 -0
- package/dist/tools/tasks/assignees/AssigneeValidationService.d.ts +46 -0
- package/dist/tools/tasks/assignees/AssigneeValidationService.d.ts.map +1 -0
- package/dist/tools/tasks/assignees/AssigneeValidationService.js +70 -0
- package/dist/tools/tasks/assignees/AssigneeValidationService.js.map +1 -0
- package/dist/tools/tasks/assignees/index.d.ts +52 -0
- package/dist/tools/tasks/assignees/index.d.ts.map +1 -0
- package/dist/tools/tasks/assignees/index.js +103 -0
- package/dist/tools/tasks/assignees/index.js.map +1 -0
- package/dist/tools/tasks/attach.d.ts +39 -0
- package/dist/tools/tasks/attach.d.ts.map +1 -0
- package/dist/tools/tasks/attach.js +90 -0
- package/dist/tools/tasks/attach.js.map +1 -0
- package/dist/tools/tasks/attachments.d.ts +67 -0
- package/dist/tools/tasks/attachments.d.ts.map +1 -0
- package/dist/tools/tasks/attachments.js +153 -0
- package/dist/tools/tasks/attachments.js.map +1 -0
- package/dist/tools/tasks/buckets.d.ts +41 -0
- package/dist/tools/tasks/buckets.d.ts.map +1 -0
- package/dist/tools/tasks/buckets.js +75 -0
- package/dist/tools/tasks/buckets.js.map +1 -0
- package/dist/tools/tasks/bulk/BatchProcessorFactory.d.ts +30 -0
- package/dist/tools/tasks/bulk/BatchProcessorFactory.d.ts.map +1 -0
- package/dist/tools/tasks/bulk/BatchProcessorFactory.js +69 -0
- package/dist/tools/tasks/bulk/BatchProcessorFactory.js.map +1 -0
- package/dist/tools/tasks/bulk/BulkOperationErrorHandler.d.ts +50 -0
- package/dist/tools/tasks/bulk/BulkOperationErrorHandler.d.ts.map +1 -0
- package/dist/tools/tasks/bulk/BulkOperationErrorHandler.js +183 -0
- package/dist/tools/tasks/bulk/BulkOperationErrorHandler.js.map +1 -0
- package/dist/tools/tasks/bulk/BulkOperationProcessor.d.ts +101 -0
- package/dist/tools/tasks/bulk/BulkOperationProcessor.d.ts.map +1 -0
- package/dist/tools/tasks/bulk/BulkOperationProcessor.js +416 -0
- package/dist/tools/tasks/bulk/BulkOperationProcessor.js.map +1 -0
- package/dist/tools/tasks/bulk/BulkOperationTypes.d.ts +50 -0
- package/dist/tools/tasks/bulk/BulkOperationTypes.d.ts.map +1 -0
- package/dist/tools/tasks/bulk/BulkOperationTypes.js +6 -0
- package/dist/tools/tasks/bulk/BulkOperationTypes.js.map +1 -0
- package/dist/tools/tasks/bulk/BulkOperationValidator.d.ts +53 -0
- package/dist/tools/tasks/bulk/BulkOperationValidator.d.ts.map +1 -0
- package/dist/tools/tasks/bulk/BulkOperationValidator.js +216 -0
- package/dist/tools/tasks/bulk/BulkOperationValidator.js.map +1 -0
- package/dist/tools/tasks/bulk/index.d.ts +9 -0
- package/dist/tools/tasks/bulk/index.d.ts.map +1 -0
- package/dist/tools/tasks/bulk/index.js +15 -0
- package/dist/tools/tasks/bulk/index.js.map +1 -0
- package/dist/tools/tasks/bulk-operations-simplified.d.ts +62 -0
- package/dist/tools/tasks/bulk-operations-simplified.d.ts.map +1 -0
- package/dist/tools/tasks/bulk-operations-simplified.js +416 -0
- package/dist/tools/tasks/bulk-operations-simplified.js.map +1 -0
- package/dist/tools/tasks/bulk-operations.d.ts +8 -0
- package/dist/tools/tasks/bulk-operations.d.ts.map +1 -0
- package/dist/tools/tasks/bulk-operations.js +13 -0
- package/dist/tools/tasks/bulk-operations.js.map +1 -0
- package/dist/tools/tasks/by-index.d.ts +36 -0
- package/dist/tools/tasks/by-index.d.ts.map +1 -0
- package/dist/tools/tasks/by-index.js +52 -0
- package/dist/tools/tasks/by-index.js.map +1 -0
- package/dist/tools/tasks/comments/CommentOperationsService.d.ts +44 -0
- package/dist/tools/tasks/comments/CommentOperationsService.d.ts.map +1 -0
- package/dist/tools/tasks/comments/CommentOperationsService.js +86 -0
- package/dist/tools/tasks/comments/CommentOperationsService.js.map +1 -0
- package/dist/tools/tasks/comments/CommentResponseFormatter.d.ts +41 -0
- package/dist/tools/tasks/comments/CommentResponseFormatter.d.ts.map +1 -0
- package/dist/tools/tasks/comments/CommentResponseFormatter.js +114 -0
- package/dist/tools/tasks/comments/CommentResponseFormatter.js.map +1 -0
- package/dist/tools/tasks/comments/CommentValidationService.d.ts +62 -0
- package/dist/tools/tasks/comments/CommentValidationService.d.ts.map +1 -0
- package/dist/tools/tasks/comments/CommentValidationService.js +105 -0
- package/dist/tools/tasks/comments/CommentValidationService.js.map +1 -0
- package/dist/tools/tasks/comments/index.d.ts +66 -0
- package/dist/tools/tasks/comments/index.d.ts.map +1 -0
- package/dist/tools/tasks/comments/index.js +99 -0
- package/dist/tools/tasks/comments/index.js.map +1 -0
- package/dist/tools/tasks/constants.d.ts +19 -0
- package/dist/tools/tasks/constants.d.ts.map +1 -0
- package/dist/tools/tasks/constants.js +82 -0
- package/dist/tools/tasks/constants.js.map +1 -0
- package/dist/tools/tasks/crud/TaskCreationService.d.ts +29 -0
- package/dist/tools/tasks/crud/TaskCreationService.d.ts.map +1 -0
- package/dist/tools/tasks/crud/TaskCreationService.js +274 -0
- package/dist/tools/tasks/crud/TaskCreationService.js.map +1 -0
- package/dist/tools/tasks/crud/TaskDeletionService.d.ts +19 -0
- package/dist/tools/tasks/crud/TaskDeletionService.d.ts.map +1 -0
- package/dist/tools/tasks/crud/TaskDeletionService.js +96 -0
- package/dist/tools/tasks/crud/TaskDeletionService.js.map +1 -0
- package/dist/tools/tasks/crud/TaskReadService.d.ts +19 -0
- package/dist/tools/tasks/crud/TaskReadService.d.ts.map +1 -0
- package/dist/tools/tasks/crud/TaskReadService.js +66 -0
- package/dist/tools/tasks/crud/TaskReadService.js.map +1 -0
- package/dist/tools/tasks/crud/TaskResponseFormatter.d.ts +18 -0
- package/dist/tools/tasks/crud/TaskResponseFormatter.d.ts.map +1 -0
- package/dist/tools/tasks/crud/TaskResponseFormatter.js +248 -0
- package/dist/tools/tasks/crud/TaskResponseFormatter.js.map +1 -0
- package/dist/tools/tasks/crud/TaskUpdateService.d.ts +33 -0
- package/dist/tools/tasks/crud/TaskUpdateService.d.ts.map +1 -0
- package/dist/tools/tasks/crud/TaskUpdateService.js +294 -0
- package/dist/tools/tasks/crud/TaskUpdateService.js.map +1 -0
- package/dist/tools/tasks/crud/index.d.ts +17 -0
- package/dist/tools/tasks/crud/index.d.ts.map +1 -0
- package/dist/tools/tasks/crud/index.js +20 -0
- package/dist/tools/tasks/crud/index.js.map +1 -0
- package/dist/tools/tasks/duplicate.d.ts +28 -0
- package/dist/tools/tasks/duplicate.d.ts.map +1 -0
- package/dist/tools/tasks/duplicate.js +41 -0
- package/dist/tools/tasks/duplicate.js.map +1 -0
- package/dist/tools/tasks/filtering/FilterExecutor.d.ts +39 -0
- package/dist/tools/tasks/filtering/FilterExecutor.d.ts.map +1 -0
- package/dist/tools/tasks/filtering/FilterExecutor.js +214 -0
- package/dist/tools/tasks/filtering/FilterExecutor.js.map +1 -0
- package/dist/tools/tasks/filtering/FilterValidator.d.ts +59 -0
- package/dist/tools/tasks/filtering/FilterValidator.d.ts.map +1 -0
- package/dist/tools/tasks/filtering/FilterValidator.js +257 -0
- package/dist/tools/tasks/filtering/FilterValidator.js.map +1 -0
- package/dist/tools/tasks/filtering/TaskFilteringOrchestrator.d.ts +78 -0
- package/dist/tools/tasks/filtering/TaskFilteringOrchestrator.d.ts.map +1 -0
- package/dist/tools/tasks/filtering/TaskFilteringOrchestrator.js +195 -0
- package/dist/tools/tasks/filtering/TaskFilteringOrchestrator.js.map +1 -0
- package/dist/tools/tasks/filtering/evaluators.d.ts +41 -0
- package/dist/tools/tasks/filtering/evaluators.d.ts.map +1 -0
- package/dist/tools/tasks/filtering/evaluators.js +224 -0
- package/dist/tools/tasks/filtering/evaluators.js.map +1 -0
- package/dist/tools/tasks/filtering/index.d.ts +11 -0
- package/dist/tools/tasks/filtering/index.d.ts.map +1 -0
- package/dist/tools/tasks/filtering/index.js +26 -0
- package/dist/tools/tasks/filtering/index.js.map +1 -0
- package/dist/tools/tasks/index.d.ts +9 -0
- package/dist/tools/tasks/index.d.ts.map +1 -0
- package/dist/tools/tasks/index.js +337 -0
- package/dist/tools/tasks/index.js.map +1 -0
- package/dist/tools/tasks/labels.d.ts +49 -0
- package/dist/tools/tasks/labels.d.ts.map +1 -0
- package/dist/tools/tasks/labels.js +223 -0
- package/dist/tools/tasks/labels.js.map +1 -0
- package/dist/tools/tasks/mark-read.d.ts +27 -0
- package/dist/tools/tasks/mark-read.d.ts.map +1 -0
- package/dist/tools/tasks/mark-read.js +38 -0
- package/dist/tools/tasks/mark-read.js.map +1 -0
- package/dist/tools/tasks/position.d.ts +53 -0
- package/dist/tools/tasks/position.d.ts.map +1 -0
- package/dist/tools/tasks/position.js +83 -0
- package/dist/tools/tasks/position.js.map +1 -0
- package/dist/tools/tasks/reminders.d.ts +56 -0
- package/dist/tools/tasks/reminders.d.ts.map +1 -0
- package/dist/tools/tasks/reminders.js +213 -0
- package/dist/tools/tasks/reminders.js.map +1 -0
- package/dist/tools/tasks/subtasks.d.ts +85 -0
- package/dist/tools/tasks/subtasks.d.ts.map +1 -0
- package/dist/tools/tasks/subtasks.js +286 -0
- package/dist/tools/tasks/subtasks.js.map +1 -0
- package/dist/tools/tasks/types/filters.d.ts +136 -0
- package/dist/tools/tasks/types/filters.d.ts.map +1 -0
- package/dist/tools/tasks/types/filters.js +7 -0
- package/dist/tools/tasks/types/filters.js.map +1 -0
- package/dist/tools/tasks/validation.d.ts +47 -0
- package/dist/tools/tasks/validation.d.ts.map +1 -0
- package/dist/tools/tasks/validation.js +131 -0
- package/dist/tools/tasks/validation.js.map +1 -0
- package/dist/tools/tasks-relations.d.ts +25 -0
- package/dist/tools/tasks-relations.d.ts.map +1 -0
- package/dist/tools/tasks-relations.js +271 -0
- package/dist/tools/tasks-relations.js.map +1 -0
- package/dist/tools/tasks.d.ts +6 -0
- package/dist/tools/tasks.d.ts.map +1 -0
- package/dist/tools/tasks.js +10 -0
- package/dist/tools/tasks.js.map +1 -0
- package/dist/tools/teams.d.ts +9 -0
- package/dist/tools/teams.d.ts.map +1 -0
- package/dist/tools/teams.js +255 -0
- package/dist/tools/teams.js.map +1 -0
- package/dist/tools/templates.d.ts +9 -0
- package/dist/tools/templates.d.ts.map +1 -0
- package/dist/tools/templates.js +450 -0
- package/dist/tools/templates.js.map +1 -0
- package/dist/tools/tokens.d.ts +37 -0
- package/dist/tools/tokens.d.ts.map +1 -0
- package/dist/tools/tokens.js +122 -0
- package/dist/tools/tokens.js.map +1 -0
- package/dist/tools/user-deletion.d.ts +41 -0
- package/dist/tools/user-deletion.d.ts.map +1 -0
- package/dist/tools/user-deletion.js +126 -0
- package/dist/tools/user-deletion.js.map +1 -0
- package/dist/tools/users.d.ts +9 -0
- package/dist/tools/users.d.ts.map +1 -0
- package/dist/tools/users.js +418 -0
- package/dist/tools/users.js.map +1 -0
- package/dist/tools/webhooks.d.ts +31 -0
- package/dist/tools/webhooks.d.ts.map +1 -0
- package/dist/tools/webhooks.js +414 -0
- package/dist/tools/webhooks.js.map +1 -0
- package/dist/transforms/base.d.ts +204 -0
- package/dist/transforms/base.d.ts.map +1 -0
- package/dist/transforms/base.js +175 -0
- package/dist/transforms/base.js.map +1 -0
- package/dist/transforms/field-selector.d.ts +27 -0
- package/dist/transforms/field-selector.d.ts.map +1 -0
- package/dist/transforms/field-selector.js +91 -0
- package/dist/transforms/field-selector.js.map +1 -0
- package/dist/transforms/index.d.ts +15 -0
- package/dist/transforms/index.d.ts.map +1 -0
- package/dist/transforms/index.js +50 -0
- package/dist/transforms/index.js.map +1 -0
- package/dist/transforms/size-calculator.d.ts +131 -0
- package/dist/transforms/size-calculator.d.ts.map +1 -0
- package/dist/transforms/size-calculator.js +284 -0
- package/dist/transforms/size-calculator.js.map +1 -0
- package/dist/transforms/task.d.ts +207 -0
- package/dist/transforms/task.d.ts.map +1 -0
- package/dist/transforms/task.js +259 -0
- package/dist/transforms/task.js.map +1 -0
- package/dist/types/errors.d.ts +65 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/errors.js +44 -0
- package/dist/types/errors.js.map +1 -0
- package/dist/types/filters.d.ts +149 -0
- package/dist/types/filters.d.ts.map +1 -0
- package/dist/types/filters.js +26 -0
- package/dist/types/filters.js.map +1 -0
- package/dist/types/index.d.ts +147 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +24 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/node-vikunja-extended.d.ts +36 -0
- package/dist/types/node-vikunja-extended.d.ts.map +1 -0
- package/dist/types/node-vikunja-extended.js +25 -0
- package/dist/types/node-vikunja-extended.js.map +1 -0
- package/dist/types/responses.d.ts +121 -0
- package/dist/types/responses.d.ts.map +1 -0
- package/dist/types/responses.js +26 -0
- package/dist/types/responses.js.map +1 -0
- package/dist/types/vikunja.d.ts +319 -0
- package/dist/types/vikunja.d.ts.map +1 -0
- package/dist/types/vikunja.js +7 -0
- package/dist/types/vikunja.js.map +1 -0
- package/dist/utils/auth-error-handler.d.ts +23 -0
- package/dist/utils/auth-error-handler.d.ts.map +1 -0
- package/dist/utils/auth-error-handler.js +162 -0
- package/dist/utils/auth-error-handler.js.map +1 -0
- package/dist/utils/composite-operation.d.ts +184 -0
- package/dist/utils/composite-operation.d.ts.map +1 -0
- package/dist/utils/composite-operation.js +293 -0
- package/dist/utils/composite-operation.js.map +1 -0
- package/dist/utils/error-handler.d.ts +39 -0
- package/dist/utils/error-handler.d.ts.map +1 -0
- package/dist/utils/error-handler.js +336 -0
- package/dist/utils/error-handler.js.map +1 -0
- package/dist/utils/filtering/ClientSideFilteringStrategy.d.ts +13 -0
- package/dist/utils/filtering/ClientSideFilteringStrategy.d.ts.map +1 -0
- package/dist/utils/filtering/ClientSideFilteringStrategy.js +129 -0
- package/dist/utils/filtering/ClientSideFilteringStrategy.js.map +1 -0
- package/dist/utils/filtering/FilteringContext.d.ts +40 -0
- package/dist/utils/filtering/FilteringContext.d.ts.map +1 -0
- package/dist/utils/filtering/FilteringContext.js +58 -0
- package/dist/utils/filtering/FilteringContext.js.map +1 -0
- package/dist/utils/filtering/HybridFilteringStrategy.d.ts +15 -0
- package/dist/utils/filtering/HybridFilteringStrategy.d.ts.map +1 -0
- package/dist/utils/filtering/HybridFilteringStrategy.js +55 -0
- package/dist/utils/filtering/HybridFilteringStrategy.js.map +1 -0
- package/dist/utils/filtering/RestCrossProjectFilteringStrategy.d.ts +42 -0
- package/dist/utils/filtering/RestCrossProjectFilteringStrategy.d.ts.map +1 -0
- package/dist/utils/filtering/RestCrossProjectFilteringStrategy.js +120 -0
- package/dist/utils/filtering/RestCrossProjectFilteringStrategy.js.map +1 -0
- package/dist/utils/filtering/ServerSideFilteringStrategy.d.ts +13 -0
- package/dist/utils/filtering/ServerSideFilteringStrategy.d.ts.map +1 -0
- package/dist/utils/filtering/ServerSideFilteringStrategy.js +88 -0
- package/dist/utils/filtering/ServerSideFilteringStrategy.js.map +1 -0
- package/dist/utils/filtering/TaskFilteringStrategy.d.ts +19 -0
- package/dist/utils/filtering/TaskFilteringStrategy.d.ts.map +1 -0
- package/dist/utils/filtering/TaskFilteringStrategy.js +10 -0
- package/dist/utils/filtering/TaskFilteringStrategy.js.map +1 -0
- package/dist/utils/filtering/index.d.ts +14 -0
- package/dist/utils/filtering/index.d.ts.map +1 -0
- package/dist/utils/filtering/index.js +22 -0
- package/dist/utils/filtering/index.js.map +1 -0
- package/dist/utils/filtering/types.d.ts +108 -0
- package/dist/utils/filtering/types.d.ts.map +1 -0
- package/dist/utils/filtering/types.js +6 -0
- package/dist/utils/filtering/types.js.map +1 -0
- package/dist/utils/filters.d.ts +70 -0
- package/dist/utils/filters.d.ts.map +1 -0
- package/dist/utils/filters.js +812 -0
- package/dist/utils/filters.js.map +1 -0
- package/dist/utils/http-error-detail.d.ts +28 -0
- package/dist/utils/http-error-detail.d.ts.map +1 -0
- package/dist/utils/http-error-detail.js +67 -0
- package/dist/utils/http-error-detail.js.map +1 -0
- package/dist/utils/label-bulk.d.ts +21 -0
- package/dist/utils/label-bulk.d.ts.map +1 -0
- package/dist/utils/label-bulk.js +51 -0
- package/dist/utils/label-bulk.js.map +1 -0
- package/dist/utils/logger.d.ts +20 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +66 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/memory.d.ts +73 -0
- package/dist/utils/memory.d.ts.map +1 -0
- package/dist/utils/memory.js +194 -0
- package/dist/utils/memory.js.map +1 -0
- package/dist/utils/performance/batch-processor.d.ts +77 -0
- package/dist/utils/performance/batch-processor.d.ts.map +1 -0
- package/dist/utils/performance/batch-processor.js +218 -0
- package/dist/utils/performance/batch-processor.js.map +1 -0
- package/dist/utils/performance/index.d.ts +42 -0
- package/dist/utils/performance/index.d.ts.map +1 -0
- package/dist/utils/performance/index.js +49 -0
- package/dist/utils/performance/index.js.map +1 -0
- package/dist/utils/performance/performance-monitor.d.ts +116 -0
- package/dist/utils/performance/performance-monitor.d.ts.map +1 -0
- package/dist/utils/performance/performance-monitor.js +307 -0
- package/dist/utils/performance/performance-monitor.js.map +1 -0
- package/dist/utils/read-only.d.ts +111 -0
- package/dist/utils/read-only.d.ts.map +1 -0
- package/dist/utils/read-only.js +503 -0
- package/dist/utils/read-only.js.map +1 -0
- package/dist/utils/response-factory.d.ts +81 -0
- package/dist/utils/response-factory.d.ts.map +1 -0
- package/dist/utils/response-factory.js +86 -0
- package/dist/utils/response-factory.js.map +1 -0
- package/dist/utils/retry.d.ts +160 -0
- package/dist/utils/retry.d.ts.map +1 -0
- package/dist/utils/retry.js +316 -0
- package/dist/utils/retry.js.map +1 -0
- package/dist/utils/security.d.ts +70 -0
- package/dist/utils/security.d.ts.map +1 -0
- package/dist/utils/security.js +358 -0
- package/dist/utils/security.js.map +1 -0
- package/dist/utils/simple-response.d.ts +75 -0
- package/dist/utils/simple-response.d.ts.map +1 -0
- package/dist/utils/simple-response.js +311 -0
- package/dist/utils/simple-response.js.map +1 -0
- package/dist/utils/storage-errors.d.ts +9 -0
- package/dist/utils/storage-errors.d.ts.map +1 -0
- package/dist/utils/storage-errors.js +20 -0
- package/dist/utils/storage-errors.js.map +1 -0
- package/dist/utils/task-rest-transport.d.ts +28 -0
- package/dist/utils/task-rest-transport.d.ts.map +1 -0
- package/dist/utils/task-rest-transport.js +33 -0
- package/dist/utils/task-rest-transport.js.map +1 -0
- package/dist/utils/unicode-fix.d.ts +19 -0
- package/dist/utils/unicode-fix.d.ts.map +1 -0
- package/dist/utils/unicode-fix.js +70 -0
- package/dist/utils/unicode-fix.js.map +1 -0
- package/dist/utils/validation.d.ts +75 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +758 -0
- package/dist/utils/validation.js.map +1 -0
- package/dist/utils/vikunja-rest.d.ts +159 -0
- package/dist/utils/vikunja-rest.d.ts.map +1 -0
- package/dist/utils/vikunja-rest.js +378 -0
- package/dist/utils/vikunja-rest.js.map +1 -0
- package/docs/CONFIGURATION.md +957 -0
- package/docs/DOCKER-DESKTOP-MCP.md +207 -0
- package/docs/TOOLS.md +422 -0
- package/package.json +145 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/tasks/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Label operations for tasks
|
|
3
|
+
*/
|
|
4
|
+
import type { AuthManager } from '../../auth/AuthManager';
|
|
5
|
+
/**
|
|
6
|
+
* Add labels to a task
|
|
7
|
+
*
|
|
8
|
+
* Idempotent: labels already on the task are skipped instead of aborting the
|
|
9
|
+
* whole operation. Vikunja rejects a duplicate label with "label already
|
|
10
|
+
* exists on the task"; treating that as fatal previously stopped the loop and
|
|
11
|
+
* left the remaining requested labels unapplied.
|
|
12
|
+
*/
|
|
13
|
+
export declare function applyLabels(args: {
|
|
14
|
+
id?: number;
|
|
15
|
+
labels?: number[];
|
|
16
|
+
}, authManager: AuthManager): Promise<{
|
|
17
|
+
content: Array<{
|
|
18
|
+
type: 'text';
|
|
19
|
+
text: string;
|
|
20
|
+
}>;
|
|
21
|
+
}>;
|
|
22
|
+
/**
|
|
23
|
+
* Remove labels from a task
|
|
24
|
+
*/
|
|
25
|
+
export declare function removeLabels(args: {
|
|
26
|
+
id?: number;
|
|
27
|
+
labels?: number[];
|
|
28
|
+
}, authManager: AuthManager): Promise<{
|
|
29
|
+
content: Array<{
|
|
30
|
+
type: 'text';
|
|
31
|
+
text: string;
|
|
32
|
+
}>;
|
|
33
|
+
}>;
|
|
34
|
+
/**
|
|
35
|
+
* List labels of a task
|
|
36
|
+
*
|
|
37
|
+
* Reads the labels from the dedicated GET /tasks/{id}/labels endpoint. The
|
|
38
|
+
* labels array embedded in a getTask response is not reliably populated, so
|
|
39
|
+
* relying on it reported zero labels on tasks that actually had some.
|
|
40
|
+
*/
|
|
41
|
+
export declare function listTaskLabels(args: {
|
|
42
|
+
id?: number;
|
|
43
|
+
}, authManager: AuthManager): Promise<{
|
|
44
|
+
content: Array<{
|
|
45
|
+
type: 'text';
|
|
46
|
+
text: string;
|
|
47
|
+
}>;
|
|
48
|
+
}>;
|
|
49
|
+
//# sourceMappingURL=labels.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"labels.d.ts","sourceRoot":"","sources":["../../../src/tools/tasks/labels.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAuB1D;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE;IACJ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB,EACD,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CA+H7D;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE;IACJ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB,EACD,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAoE7D;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE;IACJ,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,EACD,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAmD7D"}
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Label operations for tasks
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.applyLabels = applyLabels;
|
|
7
|
+
exports.removeLabels = removeLabels;
|
|
8
|
+
exports.listTaskLabels = listTaskLabels;
|
|
9
|
+
const types_1 = require("../../types");
|
|
10
|
+
const auth_error_handler_1 = require("../../utils/auth-error-handler");
|
|
11
|
+
const retry_1 = require("../../utils/retry");
|
|
12
|
+
const vikunja_rest_1 = require("../../utils/vikunja-rest");
|
|
13
|
+
const task_rest_transport_1 = require("../../utils/task-rest-transport");
|
|
14
|
+
const validation_1 = require("./validation");
|
|
15
|
+
const response_factory_1 = require("../../utils/response-factory");
|
|
16
|
+
/**
|
|
17
|
+
* Detects Vikunja's "label already exists on the task" response so that a
|
|
18
|
+
* duplicate label can be treated as a no-op rather than a fatal error.
|
|
19
|
+
*/
|
|
20
|
+
function isLabelAlreadyOnTaskError(error) {
|
|
21
|
+
if (!(error instanceof Error)) {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
return error.message.toLowerCase().includes('already exists');
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Add labels to a task
|
|
28
|
+
*
|
|
29
|
+
* Idempotent: labels already on the task are skipped instead of aborting the
|
|
30
|
+
* whole operation. Vikunja rejects a duplicate label with "label already
|
|
31
|
+
* exists on the task"; treating that as fatal previously stopped the loop and
|
|
32
|
+
* left the remaining requested labels unapplied.
|
|
33
|
+
*/
|
|
34
|
+
async function applyLabels(args, authManager) {
|
|
35
|
+
try {
|
|
36
|
+
if (!args.id) {
|
|
37
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Task id is required for apply-label operation');
|
|
38
|
+
}
|
|
39
|
+
(0, validation_1.validateId)(args.id, 'id');
|
|
40
|
+
if (!args.labels || args.labels.length === 0) {
|
|
41
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'At least one label id is required');
|
|
42
|
+
}
|
|
43
|
+
// Validate label IDs
|
|
44
|
+
args.labels.forEach((id) => (0, validation_1.validateId)(id, 'label ID'));
|
|
45
|
+
const taskId = args.id;
|
|
46
|
+
// Deduplicate so a repeated id is not applied or counted twice
|
|
47
|
+
const requestedLabelIds = [...new Set(args.labels)];
|
|
48
|
+
// Skip labels already on the task: applying a duplicate makes Vikunja
|
|
49
|
+
// reject the request, so pre-filtering keeps the operation idempotent.
|
|
50
|
+
const alreadyPresent = [];
|
|
51
|
+
let toApply = requestedLabelIds;
|
|
52
|
+
try {
|
|
53
|
+
const currentLabels = await (0, vikunja_rest_1.vikunjaRestRequest)(authManager, 'GET', `/tasks/${taskId}/labels`);
|
|
54
|
+
const existingIds = new Set((Array.isArray(currentLabels) ? currentLabels : [])
|
|
55
|
+
.map((label) => label.id)
|
|
56
|
+
.filter((id) => typeof id === 'number'));
|
|
57
|
+
toApply = requestedLabelIds.filter((id) => {
|
|
58
|
+
if (existingIds.has(id)) {
|
|
59
|
+
alreadyPresent.push(id);
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
return true;
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
// Current labels could not be read; attempt every requested label.
|
|
67
|
+
// A duplicate is still tolerated per-label below.
|
|
68
|
+
}
|
|
69
|
+
// Add the remaining labels to the task with retry logic. PUT
|
|
70
|
+
// /tasks/{task}/labels per the OpenAPI spec, body { label_id }
|
|
71
|
+
// (models.LabelTask).
|
|
72
|
+
const newlyApplied = [];
|
|
73
|
+
for (const labelId of toApply) {
|
|
74
|
+
try {
|
|
75
|
+
await (0, retry_1.withRetry)(() => (0, vikunja_rest_1.vikunjaRestRequest)(authManager, 'PUT', `/tasks/${taskId}/labels`, {
|
|
76
|
+
label_id: labelId,
|
|
77
|
+
}), {
|
|
78
|
+
...retry_1.RETRY_CONFIG.AUTH_ERRORS,
|
|
79
|
+
shouldRetry: (error) => (0, auth_error_handler_1.isAuthenticationError)(error),
|
|
80
|
+
});
|
|
81
|
+
newlyApplied.push(labelId);
|
|
82
|
+
}
|
|
83
|
+
catch (labelError) {
|
|
84
|
+
// Check if it's an auth error after retries
|
|
85
|
+
if ((0, auth_error_handler_1.isAuthenticationError)(labelError)) {
|
|
86
|
+
throw new types_1.MCPError(types_1.ErrorCode.API_ERROR, `Failed to apply label to task (Retried ${retry_1.RETRY_CONFIG.AUTH_ERRORS.maxRetries} times)`);
|
|
87
|
+
}
|
|
88
|
+
// A label already on the task is not a failure: skip it and keep
|
|
89
|
+
// applying the rest instead of aborting the whole operation.
|
|
90
|
+
if (isLabelAlreadyOnTaskError(labelError)) {
|
|
91
|
+
alreadyPresent.push(labelId);
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
throw labelError;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
// Fetch the updated task to show current labels via GET /tasks/{id}
|
|
98
|
+
// (direct-REST), kept only to refresh the response payload.
|
|
99
|
+
const task = await (0, task_rest_transport_1.getTaskViaRest)(authManager, taskId);
|
|
100
|
+
let message;
|
|
101
|
+
if (newlyApplied.length > 0) {
|
|
102
|
+
message = `Label${newlyApplied.length > 1 ? 's' : ''} applied to task successfully`;
|
|
103
|
+
if (alreadyPresent.length > 0) {
|
|
104
|
+
message += ` (${alreadyPresent.length} already present, skipped)`;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
message = `No labels applied: all ${alreadyPresent.length} requested label(s) already present on the task`;
|
|
109
|
+
}
|
|
110
|
+
const response = (0, response_factory_1.createSimpleResponse)('apply-label', message, { task }, {
|
|
111
|
+
metadata: {
|
|
112
|
+
affectedFields: ['labels'],
|
|
113
|
+
labelsApplied: newlyApplied,
|
|
114
|
+
labelsAlreadyPresent: alreadyPresent,
|
|
115
|
+
},
|
|
116
|
+
});
|
|
117
|
+
return {
|
|
118
|
+
content: [
|
|
119
|
+
{
|
|
120
|
+
type: 'text',
|
|
121
|
+
text: (0, response_factory_1.formatAorpAsMarkdown)(response),
|
|
122
|
+
},
|
|
123
|
+
],
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
if (error instanceof types_1.MCPError) {
|
|
128
|
+
throw error;
|
|
129
|
+
}
|
|
130
|
+
throw new types_1.MCPError(types_1.ErrorCode.API_ERROR, `Failed to apply labels to task: ${error instanceof Error ? error.message : String(error)}`);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Remove labels from a task
|
|
135
|
+
*/
|
|
136
|
+
async function removeLabels(args, authManager) {
|
|
137
|
+
try {
|
|
138
|
+
if (!args.id) {
|
|
139
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Task id is required for remove-label operation');
|
|
140
|
+
}
|
|
141
|
+
(0, validation_1.validateId)(args.id, 'id');
|
|
142
|
+
if (!args.labels || args.labels.length === 0) {
|
|
143
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'At least one label id is required to remove');
|
|
144
|
+
}
|
|
145
|
+
// Validate label IDs
|
|
146
|
+
args.labels.forEach((id) => (0, validation_1.validateId)(id, 'label ID'));
|
|
147
|
+
const taskId = args.id;
|
|
148
|
+
const labelIds = args.labels;
|
|
149
|
+
// Remove labels from the task with retry logic. DELETE
|
|
150
|
+
// /tasks/{task}/labels/{label} per the OpenAPI spec — no body.
|
|
151
|
+
for (const labelId of labelIds) {
|
|
152
|
+
try {
|
|
153
|
+
await (0, retry_1.withRetry)(() => (0, vikunja_rest_1.vikunjaRestRequest)(authManager, 'DELETE', `/tasks/${taskId}/labels/${labelId}`), {
|
|
154
|
+
...retry_1.RETRY_CONFIG.AUTH_ERRORS,
|
|
155
|
+
shouldRetry: (error) => (0, auth_error_handler_1.isAuthenticationError)(error),
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
catch (removeError) {
|
|
159
|
+
// Check if it's an auth error after retries
|
|
160
|
+
if ((0, auth_error_handler_1.isAuthenticationError)(removeError)) {
|
|
161
|
+
throw new types_1.MCPError(types_1.ErrorCode.API_ERROR, `Failed to remove label from task (Retried ${retry_1.RETRY_CONFIG.AUTH_ERRORS.maxRetries} times)`);
|
|
162
|
+
}
|
|
163
|
+
throw removeError;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
// Fetch the updated task to show current labels via GET /tasks/{id}
|
|
167
|
+
// (direct-REST) — see the matching comment in applyLabels above.
|
|
168
|
+
const task = await (0, task_rest_transport_1.getTaskViaRest)(authManager, args.id);
|
|
169
|
+
const response = (0, response_factory_1.createSimpleResponse)('remove-label', `Label${labelIds.length > 1 ? 's' : ''} removed from task successfully`, { task }, { metadata: { affectedFields: ['labels'] } });
|
|
170
|
+
return {
|
|
171
|
+
content: [
|
|
172
|
+
{
|
|
173
|
+
type: 'text',
|
|
174
|
+
text: (0, response_factory_1.formatAorpAsMarkdown)(response),
|
|
175
|
+
},
|
|
176
|
+
],
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
catch (error) {
|
|
180
|
+
throw new types_1.MCPError(types_1.ErrorCode.API_ERROR, `Failed to remove labels from task: ${error instanceof Error ? error.message : String(error)}`);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* List labels of a task
|
|
185
|
+
*
|
|
186
|
+
* Reads the labels from the dedicated GET /tasks/{id}/labels endpoint. The
|
|
187
|
+
* labels array embedded in a getTask response is not reliably populated, so
|
|
188
|
+
* relying on it reported zero labels on tasks that actually had some.
|
|
189
|
+
*/
|
|
190
|
+
async function listTaskLabels(args, authManager) {
|
|
191
|
+
try {
|
|
192
|
+
if (args.id === undefined) {
|
|
193
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Task id is required for list-labels operation');
|
|
194
|
+
}
|
|
195
|
+
(0, validation_1.validateId)(args.id, 'id');
|
|
196
|
+
// Authoritative source for a task's labels
|
|
197
|
+
const taskLabels = await (0, vikunja_rest_1.vikunjaRestRequest)(authManager, 'GET', `/tasks/${args.id}/labels`);
|
|
198
|
+
const labels = Array.isArray(taskLabels) ? taskLabels : [];
|
|
199
|
+
// Fetch the task itself only for its identifying fields via GET /tasks/{id}
|
|
200
|
+
// (direct-REST) — see the matching comment in applyLabels above.
|
|
201
|
+
const task = await (0, task_rest_transport_1.getTaskViaRest)(authManager, args.id);
|
|
202
|
+
const minimalTask = {
|
|
203
|
+
...(task.id !== undefined && { id: task.id }),
|
|
204
|
+
title: task.title ?? '',
|
|
205
|
+
};
|
|
206
|
+
const response = (0, response_factory_1.createSimpleResponse)('list-labels', `Task has ${labels.length} label(s)`, { task: { ...minimalTask, labels: labels } }, { metadata: { count: labels.length } });
|
|
207
|
+
return {
|
|
208
|
+
content: [
|
|
209
|
+
{
|
|
210
|
+
type: 'text',
|
|
211
|
+
text: (0, response_factory_1.formatAorpAsMarkdown)(response),
|
|
212
|
+
},
|
|
213
|
+
],
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
catch (error) {
|
|
217
|
+
if (error instanceof types_1.MCPError) {
|
|
218
|
+
throw error;
|
|
219
|
+
}
|
|
220
|
+
throw new types_1.MCPError(types_1.ErrorCode.API_ERROR, `Failed to list task labels: ${error instanceof Error ? error.message : String(error)}`);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
//# sourceMappingURL=labels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"labels.js","sourceRoot":"","sources":["../../../src/tools/tasks/labels.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mark a task as read
|
|
3
|
+
*
|
|
4
|
+
* Implements `mark-read` (`POST /tasks/{projecttask}/read`), which marks a
|
|
5
|
+
* task as read for the current user by removing its unread status entry —
|
|
6
|
+
* pairs with the task's `is_unread` field (see docs/ENDPOINT-TAIL-RETRIAGE.md
|
|
7
|
+
* item G2). The spec's path parameter is oddly named `projecttask` (not
|
|
8
|
+
* `taskID`, unlike every other task-scoped path in this file group) but it
|
|
9
|
+
* is still just the task id.
|
|
10
|
+
*/
|
|
11
|
+
import type { AuthManager } from '../../auth/AuthManager';
|
|
12
|
+
export interface MarkTaskReadArgs {
|
|
13
|
+
/** Id of the task to mark as read. */
|
|
14
|
+
id?: number;
|
|
15
|
+
/** Session id for response tracking. */
|
|
16
|
+
sessionId?: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Marks a task as read for the current user.
|
|
20
|
+
*/
|
|
21
|
+
export declare function markTaskRead(args: MarkTaskReadArgs, authManager: AuthManager): Promise<{
|
|
22
|
+
content: Array<{
|
|
23
|
+
type: 'text';
|
|
24
|
+
text: string;
|
|
25
|
+
}>;
|
|
26
|
+
}>;
|
|
27
|
+
//# sourceMappingURL=mark-read.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mark-read.d.ts","sourceRoot":"","sources":["../../../src/tools/tasks/mark-read.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAU1D,MAAM,WAAW,gBAAgB;IAC/B,sCAAsC;IACtC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,gBAAgB,EACtB,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CA6B7D"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Mark a task as read
|
|
4
|
+
*
|
|
5
|
+
* Implements `mark-read` (`POST /tasks/{projecttask}/read`), which marks a
|
|
6
|
+
* task as read for the current user by removing its unread status entry —
|
|
7
|
+
* pairs with the task's `is_unread` field (see docs/ENDPOINT-TAIL-RETRIAGE.md
|
|
8
|
+
* item G2). The spec's path parameter is oddly named `projecttask` (not
|
|
9
|
+
* `taskID`, unlike every other task-scoped path in this file group) but it
|
|
10
|
+
* is still just the task id.
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.markTaskRead = markTaskRead;
|
|
14
|
+
const types_1 = require("../../types");
|
|
15
|
+
const validation_1 = require("../../utils/validation");
|
|
16
|
+
const response_factory_1 = require("../../utils/response-factory");
|
|
17
|
+
const vikunja_rest_1 = require("../../utils/vikunja-rest");
|
|
18
|
+
/**
|
|
19
|
+
* Marks a task as read for the current user.
|
|
20
|
+
*/
|
|
21
|
+
async function markTaskRead(args, authManager) {
|
|
22
|
+
if (!args.id) {
|
|
23
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Task id is required for mark-read operation');
|
|
24
|
+
}
|
|
25
|
+
(0, validation_1.validateId)(args.id, 'id');
|
|
26
|
+
// Path segment is named `projecttask` in the spec; it takes the task id.
|
|
27
|
+
const result = await (0, vikunja_rest_1.vikunjaRestRequest)(authManager, 'POST', `/tasks/${args.id}/read`);
|
|
28
|
+
const response = (0, response_factory_1.createStandardResponse)('mark-read', `Task ${args.id} marked as read`, {
|
|
29
|
+
taskId: result?.taskID ?? args.id,
|
|
30
|
+
userId: result?.userID,
|
|
31
|
+
}, {
|
|
32
|
+
timestamp: new Date().toISOString(),
|
|
33
|
+
}, args.sessionId);
|
|
34
|
+
return {
|
|
35
|
+
content: [{ type: 'text', text: (0, response_factory_1.formatAorpAsMarkdown)(response) }],
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=mark-read.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mark-read.js","sourceRoot":"","sources":["../../../src/tools/tasks/mark-read.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;AAsBH,oCAgCC;AAnDD,uCAAkD;AAClD,uDAAoD;AACpD,mEAA4F;AAC5F,2DAA8D;AAa9D;;GAEG;AACI,KAAK,UAAU,YAAY,CAChC,IAAsB,EACtB,WAAwB;IAExB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACb,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,6CAA6C,CAAC,CAAC;IAChG,CAAC;IACD,IAAA,uBAAU,EAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAE1B,yEAAyE;IACzE,MAAM,MAAM,GAAG,MAAM,IAAA,iCAAkB,EACrC,WAAW,EACX,MAAM,EACN,UAAU,IAAI,CAAC,EAAE,OAAO,CACzB,CAAC;IAEF,MAAM,QAAQ,GAAG,IAAA,yCAAsB,EACrC,WAAW,EACX,QAAQ,IAAI,CAAC,EAAE,iBAAiB,EAChC;QACE,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI,CAAC,EAAE;QACjC,MAAM,EAAE,MAAM,EAAE,MAAM;KACvB,EACD;QACE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,EACD,IAAI,CAAC,SAAS,CACf,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAA,uCAAoB,EAAC,QAAQ,CAAC,EAAE,CAAC;KAC3E,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Task position operations
|
|
3
|
+
*
|
|
4
|
+
* Implements `set-position`, which updates a task's ordering within a
|
|
5
|
+
* project view (`POST /tasks/{id}/position`, `models.TaskPosition`). This
|
|
6
|
+
* is the operation behind "move this task above/below that one" or "put
|
|
7
|
+
* this task first in the list view" — Vikunja stores task order per-view,
|
|
8
|
+
* as a float64 `position` value (see `models.TaskPosition`'s doc comment in
|
|
9
|
+
* docs/vikunja-openapi.json for the recommended
|
|
10
|
+
* `(neighbourA.position - neighbourB.position) / 2` midpoint technique for
|
|
11
|
+
* inserting between two existing positions).
|
|
12
|
+
*
|
|
13
|
+
* legacy client does not expose this endpoint, so this calls the Vikunja
|
|
14
|
+
* REST API directly via the shared `vikunja-rest` helper.
|
|
15
|
+
*/
|
|
16
|
+
import type { AuthManager } from '../../auth/AuthManager';
|
|
17
|
+
export interface SetTaskPositionArgs {
|
|
18
|
+
/** Id of the task to reposition. */
|
|
19
|
+
id?: number;
|
|
20
|
+
/** New position value (float64 — see the module doc comment). */
|
|
21
|
+
position?: number;
|
|
22
|
+
/** Optional project view id. Auto-resolved from the project + viewKind when omitted. */
|
|
23
|
+
projectViewId?: number;
|
|
24
|
+
/** Optional project id. Auto-resolved from the task when omitted. */
|
|
25
|
+
projectId?: number;
|
|
26
|
+
/**
|
|
27
|
+
* Kind of view to resolve `projectViewId` against when it is omitted.
|
|
28
|
+
* Defaults to `list`, since task position ordering is most commonly a
|
|
29
|
+
* list-view concept (Kanban ordering is handled by `set-bucket`).
|
|
30
|
+
*/
|
|
31
|
+
viewKind?: 'list' | 'gantt' | 'table' | 'kanban';
|
|
32
|
+
/** Session id for response tracking. */
|
|
33
|
+
sessionId?: string;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Updates a task's position within a project view.
|
|
37
|
+
*
|
|
38
|
+
* Resolution order when optional ids are omitted:
|
|
39
|
+
* - projectId: fetched from the task itself
|
|
40
|
+
* - projectViewId: resolved to the project's first view of `viewKind`
|
|
41
|
+
* (default `list`)
|
|
42
|
+
*
|
|
43
|
+
* @param args - Task id, new position, and optional view/project ids
|
|
44
|
+
* @param authManager - Active auth manager holding session credentials
|
|
45
|
+
* @returns MCP response describing the reposition
|
|
46
|
+
*/
|
|
47
|
+
export declare function setTaskPosition(args: SetTaskPositionArgs, authManager: AuthManager): Promise<{
|
|
48
|
+
content: Array<{
|
|
49
|
+
type: 'text';
|
|
50
|
+
text: string;
|
|
51
|
+
}>;
|
|
52
|
+
}>;
|
|
53
|
+
//# sourceMappingURL=position.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"position.d.ts","sourceRoot":"","sources":["../../../src/tools/tasks/position.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAM1D,MAAM,WAAW,mBAAmB;IAClC,oCAAoC;IACpC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wFAAwF;IACxF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;IACjD,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAQD;;;;;;;;;;;GAWG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,mBAAmB,EACzB,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAwE7D"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Task position operations
|
|
4
|
+
*
|
|
5
|
+
* Implements `set-position`, which updates a task's ordering within a
|
|
6
|
+
* project view (`POST /tasks/{id}/position`, `models.TaskPosition`). This
|
|
7
|
+
* is the operation behind "move this task above/below that one" or "put
|
|
8
|
+
* this task first in the list view" — Vikunja stores task order per-view,
|
|
9
|
+
* as a float64 `position` value (see `models.TaskPosition`'s doc comment in
|
|
10
|
+
* docs/vikunja-openapi.json for the recommended
|
|
11
|
+
* `(neighbourA.position - neighbourB.position) / 2` midpoint technique for
|
|
12
|
+
* inserting between two existing positions).
|
|
13
|
+
*
|
|
14
|
+
* legacy client does not expose this endpoint, so this calls the Vikunja
|
|
15
|
+
* REST API directly via the shared `vikunja-rest` helper.
|
|
16
|
+
*/
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.setTaskPosition = setTaskPosition;
|
|
19
|
+
const types_1 = require("../../types");
|
|
20
|
+
const validation_1 = require("../../utils/validation");
|
|
21
|
+
const response_factory_1 = require("../../utils/response-factory");
|
|
22
|
+
const vikunja_rest_1 = require("../../utils/vikunja-rest");
|
|
23
|
+
/**
|
|
24
|
+
* Updates a task's position within a project view.
|
|
25
|
+
*
|
|
26
|
+
* Resolution order when optional ids are omitted:
|
|
27
|
+
* - projectId: fetched from the task itself
|
|
28
|
+
* - projectViewId: resolved to the project's first view of `viewKind`
|
|
29
|
+
* (default `list`)
|
|
30
|
+
*
|
|
31
|
+
* @param args - Task id, new position, and optional view/project ids
|
|
32
|
+
* @param authManager - Active auth manager holding session credentials
|
|
33
|
+
* @returns MCP response describing the reposition
|
|
34
|
+
*/
|
|
35
|
+
async function setTaskPosition(args, authManager) {
|
|
36
|
+
if (!args.id) {
|
|
37
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Task id is required for set-position operation');
|
|
38
|
+
}
|
|
39
|
+
if (args.position === undefined || args.position === null) {
|
|
40
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'position is required for set-position operation');
|
|
41
|
+
}
|
|
42
|
+
(0, validation_1.validateId)(args.id, 'id');
|
|
43
|
+
if (args.projectViewId !== undefined)
|
|
44
|
+
(0, validation_1.validateId)(args.projectViewId, 'projectViewId');
|
|
45
|
+
if (args.projectId !== undefined)
|
|
46
|
+
(0, validation_1.validateId)(args.projectId, 'projectId');
|
|
47
|
+
// Resolve the project id from the task when the caller did not supply it.
|
|
48
|
+
let projectId = args.projectId;
|
|
49
|
+
if (projectId === undefined) {
|
|
50
|
+
const task = await (0, vikunja_rest_1.vikunjaRestRequest)(authManager, 'GET', `/tasks/${args.id}`);
|
|
51
|
+
if (!task || typeof task.project_id !== 'number') {
|
|
52
|
+
throw new types_1.MCPError(types_1.ErrorCode.NOT_FOUND, `Could not resolve the project of task ${args.id}`);
|
|
53
|
+
}
|
|
54
|
+
projectId = task.project_id;
|
|
55
|
+
}
|
|
56
|
+
// Resolve the project view id when the caller did not supply it.
|
|
57
|
+
const viewKind = args.viewKind ?? 'list';
|
|
58
|
+
const projectViewId = args.projectViewId !== undefined
|
|
59
|
+
? args.projectViewId
|
|
60
|
+
: (await (0, vikunja_rest_1.resolveViewIdByKind)(authManager, projectId, viewKind)).id;
|
|
61
|
+
// Update the position. Vikunja's endpoint takes the full TaskPosition
|
|
62
|
+
// model; task_id is also part of the URL but is sent in the body too, as
|
|
63
|
+
// the API model documents it as a body field.
|
|
64
|
+
await (0, vikunja_rest_1.vikunjaRestRequest)(authManager, 'POST', `/tasks/${args.id}/position`, { task_id: args.id, project_view_id: projectViewId, position: args.position });
|
|
65
|
+
const response = (0, response_factory_1.createStandardResponse)('set-task-position', `Task ${args.id} repositioned to ${args.position} in view ${projectViewId}`, {
|
|
66
|
+
taskId: args.id,
|
|
67
|
+
position: args.position,
|
|
68
|
+
projectViewId,
|
|
69
|
+
projectId,
|
|
70
|
+
}, {
|
|
71
|
+
timestamp: new Date().toISOString(),
|
|
72
|
+
affectedFields: ['position'],
|
|
73
|
+
}, args.sessionId);
|
|
74
|
+
return {
|
|
75
|
+
content: [
|
|
76
|
+
{
|
|
77
|
+
type: 'text',
|
|
78
|
+
text: (0, response_factory_1.formatAorpAsMarkdown)(response),
|
|
79
|
+
},
|
|
80
|
+
],
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=position.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"position.js","sourceRoot":"","sources":["../../../src/tools/tasks/position.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;AA6CH,0CA2EC;AArHD,uCAAkD;AAClD,uDAAoD;AACpD,mEAA4F;AAC5F,2DAAmF;AA2BnF;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,eAAe,CACnC,IAAyB,EACzB,WAAwB;IAExB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACb,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,gDAAgD,CAAC,CAAC;IACnG,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC1D,MAAM,IAAI,gBAAQ,CAChB,iBAAS,CAAC,gBAAgB,EAC1B,iDAAiD,CAClD,CAAC;IACJ,CAAC;IACD,IAAA,uBAAU,EAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC1B,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS;QAAE,IAAA,uBAAU,EAAC,IAAI,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;IACtF,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;QAAE,IAAA,uBAAU,EAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAE1E,0EAA0E;IAC1E,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IAC/B,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,MAAM,IAAA,iCAAkB,EACnC,WAAW,EACX,KAAK,EACL,UAAU,IAAI,CAAC,EAAE,EAAE,CACpB,CAAC;QACF,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YACjD,MAAM,IAAI,gBAAQ,CAChB,iBAAS,CAAC,SAAS,EACnB,yCAAyC,IAAI,CAAC,EAAE,EAAE,CACnD,CAAC;QACJ,CAAC;QACD,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;IAC9B,CAAC;IAED,iEAAiE;IACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC;IACzC,MAAM,aAAa,GACjB,IAAI,CAAC,aAAa,KAAK,SAAS;QAC9B,CAAC,CAAC,IAAI,CAAC,aAAa;QACpB,CAAC,CAAC,CAAC,MAAM,IAAA,kCAAmB,EAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IAEvE,sEAAsE;IACtE,yEAAyE;IACzE,8CAA8C;IAC9C,MAAM,IAAA,iCAAkB,EACtB,WAAW,EACX,MAAM,EACN,UAAU,IAAI,CAAC,EAAE,WAAW,EAC5B,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,eAAe,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAC9E,CAAC;IAEF,MAAM,QAAQ,GAAG,IAAA,yCAAsB,EACrC,mBAAmB,EACnB,QAAQ,IAAI,CAAC,EAAE,oBAAoB,IAAI,CAAC,QAAQ,YAAY,aAAa,EAAE,EAC3E;QACE,MAAM,EAAE,IAAI,CAAC,EAAE;QACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,aAAa;QACb,SAAS;KACV,EACD;QACE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,cAAc,EAAE,CAAC,UAAU,CAAC;KAC7B,EACD,IAAI,CAAC,SAAS,CACf,CAAC;IAEF,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAA,uCAAoB,EAAC,QAAQ,CAAC;aACrC;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reminder operations for tasks
|
|
3
|
+
*
|
|
4
|
+
* Reminders have no dedicated Vikunja sub-resource endpoint — they "ride on"
|
|
5
|
+
* the full task-update endpoint (`POST /tasks/{id}`, a full-model-replace).
|
|
6
|
+
* These operations therefore fetch the task, merge the `reminders` array,
|
|
7
|
+
* and POST the whole task back via the shared
|
|
8
|
+
* `src/utils/task-rest-transport.ts` helper, rather than the legacy client's
|
|
9
|
+
* `getTask`/`updateTask` (see that file's doc comment for why this is a
|
|
10
|
+
* standalone helper instead of a change to `TaskUpdateService.ts`).
|
|
11
|
+
*/
|
|
12
|
+
import type { AuthManager } from '../../auth/AuthManager';
|
|
13
|
+
/**
|
|
14
|
+
* Add a reminder to a task
|
|
15
|
+
*/
|
|
16
|
+
export declare function addReminder(args: {
|
|
17
|
+
id?: number;
|
|
18
|
+
reminderDate?: string;
|
|
19
|
+
}, authManager: AuthManager): Promise<{
|
|
20
|
+
content: Array<{
|
|
21
|
+
type: 'text';
|
|
22
|
+
text: string;
|
|
23
|
+
}>;
|
|
24
|
+
}>;
|
|
25
|
+
/**
|
|
26
|
+
* Remove a reminder from a task.
|
|
27
|
+
*
|
|
28
|
+
* Vikunja's API (models.TaskReminder) has no `id` field, so reminders cannot
|
|
29
|
+
* be identified the way `remove-reminder` used to (filtering by a nonexistent
|
|
30
|
+
* `reminder.id`, which always threw "not found" against a real server).
|
|
31
|
+
* Callers must instead identify the reminder to remove by its exact
|
|
32
|
+
* `reminder` date string (as shown by `list-reminders`) and/or its
|
|
33
|
+
* zero-based positional `reminderIndex` in that same listing.
|
|
34
|
+
*/
|
|
35
|
+
export declare function removeReminder(args: {
|
|
36
|
+
id?: number | undefined;
|
|
37
|
+
reminderDate?: string | undefined;
|
|
38
|
+
reminderIndex?: number | undefined;
|
|
39
|
+
}, authManager: AuthManager): Promise<{
|
|
40
|
+
content: Array<{
|
|
41
|
+
type: 'text';
|
|
42
|
+
text: string;
|
|
43
|
+
}>;
|
|
44
|
+
}>;
|
|
45
|
+
/**
|
|
46
|
+
* List all reminders for a task
|
|
47
|
+
*/
|
|
48
|
+
export declare function listReminders(args: {
|
|
49
|
+
id?: number;
|
|
50
|
+
}, authManager: AuthManager): Promise<{
|
|
51
|
+
content: Array<{
|
|
52
|
+
type: 'text';
|
|
53
|
+
text: string;
|
|
54
|
+
}>;
|
|
55
|
+
}>;
|
|
56
|
+
//# sourceMappingURL=reminders.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reminders.d.ts","sourceRoot":"","sources":["../../../src/tools/tasks/reminders.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAK1D;;GAEG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE;IACJ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,EACD,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAoE7D;AAED;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE;IACJ,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC,EACD,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAmH7D;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE;IACJ,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,EACD,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CA0D7D"}
|