@doist/todoist-mcp 13.7.1 → 13.7.2

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 (52) hide show
  1. package/dist/index.d.ts +153 -26
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +3 -3
  4. package/dist/main-http.js +2 -2
  5. package/dist/main.js +1 -1
  6. package/dist/{mcp-server-BicI89wv.js → mcp-server-BIkBl1Z_.js} +3685 -3464
  7. package/dist/{require-valid-todoist-token-qKxFPNp7.js → require-valid-todoist-token-BCtK2gKf.js} +1 -1
  8. package/dist/tool-execution-error.d.ts +0 -3
  9. package/dist/tool-execution-error.d.ts.map +1 -1
  10. package/dist/tool-helpers.d.ts +1 -1
  11. package/dist/tool-registry.d.ts +153 -26
  12. package/dist/tool-registry.d.ts.map +1 -1
  13. package/dist/tools/add-comments.d.ts +17 -2
  14. package/dist/tools/add-comments.d.ts.map +1 -1
  15. package/dist/tools/add-filters.d.ts +19 -4
  16. package/dist/tools/add-filters.d.ts.map +1 -1
  17. package/dist/tools/add-labels.d.ts +15 -0
  18. package/dist/tools/add-labels.d.ts.map +1 -1
  19. package/dist/tools/add-projects.d.ts.map +1 -1
  20. package/dist/tools/add-reminders.d.ts +15 -0
  21. package/dist/tools/add-reminders.d.ts.map +1 -1
  22. package/dist/tools/add-sections.d.ts.map +1 -1
  23. package/dist/tools/add-tasks.d.ts.map +1 -1
  24. package/dist/tools/delete-object.d.ts +4 -4
  25. package/dist/tools/fetch-object.d.ts +5 -5
  26. package/dist/tools/find-activity.d.ts +3 -3
  27. package/dist/tools/find-comments.d.ts +2 -2
  28. package/dist/tools/import-project-template.d.ts +2 -2
  29. package/dist/tools/update-comments.d.ts +13 -2
  30. package/dist/tools/update-comments.d.ts.map +1 -1
  31. package/dist/tools/update-filters.d.ts +13 -2
  32. package/dist/tools/update-filters.d.ts.map +1 -1
  33. package/dist/tools/update-labels.d.ts +11 -0
  34. package/dist/tools/update-labels.d.ts.map +1 -1
  35. package/dist/tools/update-projects.d.ts.map +1 -1
  36. package/dist/tools/update-reminders.d.ts +17 -0
  37. package/dist/tools/update-reminders.d.ts.map +1 -1
  38. package/dist/tools/update-sections.d.ts +17 -0
  39. package/dist/tools/update-sections.d.ts.map +1 -1
  40. package/dist/tools/update-tasks.d.ts.map +1 -1
  41. package/dist/utils/batch-failures.d.ts +1 -0
  42. package/dist/utils/batch-failures.d.ts.map +1 -1
  43. package/dist/utils/output-schemas.d.ts +1 -1
  44. package/dist/utils/reminder-recipients.d.ts +5 -5
  45. package/dist/utils/reminder-recipients.d.ts.map +1 -1
  46. package/dist/utils/retry.d.ts +9 -2
  47. package/dist/utils/retry.d.ts.map +1 -1
  48. package/dist/utils/sync-commands.d.ts +21 -0
  49. package/dist/utils/sync-commands.d.ts.map +1 -0
  50. package/dist/utils/test-helpers.d.ts +5 -1
  51. package/dist/utils/test-helpers.d.ts.map +1 -1
  52. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"add-labels.d.ts","sourceRoot":"","sources":["../../src/tools/add-labels.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAyBvB,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkBgD,CAAA;AAQ/D,OAAO,EAAE,SAAS,EAAE,CAAA"}
1
+ {"version":3,"file":"add-labels.d.ts","sourceRoot":"","sources":["../../src/tools/add-labels.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAmCvB,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAeuB,MAAM;uBAAS,MAAM;;;;;;;CA6BI,CAAA;AAkB/D,OAAO,EAAE,SAAS,EAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"add-projects.d.ts","sourceRoot":"","sources":["../../src/tools/add-projects.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AA2DvB,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAwCqB,MAAM;uBAAS,MAAM;;;;;;;CA8BI,CAAA;AAoB/D,OAAO,EAAE,WAAW,EAAE,CAAA"}
1
+ {"version":3,"file":"add-projects.d.ts","sourceRoot":"","sources":["../../src/tools/add-projects.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAyDvB,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAwCqB,MAAM;uBAAS,MAAM;;;;;;;CA8BI,CAAA;AAoB/D,OAAO,EAAE,WAAW,EAAE,CAAA"}
@@ -72,6 +72,14 @@ declare const addReminders: {
72
72
  }, z.core.$strip>>;
73
73
  totalCount: z.ZodNumber;
74
74
  addedReminderIds: z.ZodArray<z.ZodString>;
75
+ failures: z.ZodArray<z.ZodObject<{
76
+ item: z.ZodString;
77
+ error: z.ZodString;
78
+ code: z.ZodOptional<z.ZodString>;
79
+ }, z.core.$strip>>;
80
+ totalRequested: z.ZodNumber;
81
+ successCount: z.ZodNumber;
82
+ failureCount: z.ZodNumber;
75
83
  };
76
84
  annotations: {
77
85
  readOnlyHint: false;
@@ -152,6 +160,13 @@ declare const addReminders: {
152
160
  })[];
153
161
  totalCount: number;
154
162
  addedReminderIds: string[];
163
+ failures: {
164
+ item: string;
165
+ error: string;
166
+ }[];
167
+ totalRequested: number;
168
+ successCount: number;
169
+ failureCount: number;
155
170
  };
156
171
  }>;
157
172
  };
@@ -1 +1 @@
1
- {"version":3,"file":"add-reminders.d.ts","sourceRoot":"","sources":["../../src/tools/add-reminders.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAqFvB,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsE6C,CAAA;AAkB/D,OAAO,EAAE,YAAY,EAAE,CAAA"}
1
+ {"version":3,"file":"add-reminders.d.ts","sourceRoot":"","sources":["../../src/tools/add-reminders.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AA+FvB,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAwEoB,MAAM;uBAAS,MAAM;;;;;;;CAsCI,CAAA;AAkB/D,OAAO,EAAE,YAAY,EAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"add-sections.d.ts","sourceRoot":"","sources":["../../src/tools/add-sections.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AA6CvB,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAgCqB,MAAM;uBAAS,MAAM;;;;;;;CA6BI,CAAA;AAsB/D,OAAO,EAAE,WAAW,EAAE,CAAA"}
1
+ {"version":3,"file":"add-sections.d.ts","sourceRoot":"","sources":["../../src/tools/add-sections.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AA2CvB,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAgCqB,MAAM;uBAAS,MAAM;;;;;;;CA6BI,CAAA;AAsB/D,OAAO,EAAE,WAAW,EAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"add-tasks.d.ts","sourceRoot":"","sources":["../../src/tools/add-tasks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAqB,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACvE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AA4BvB,QAAA,MAAM,uBAAuB,IAAkC,CAAA;AA0D/D,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAyDwB,MAAM;uBAAS,MAAM;;;;;;;CAkDI,CAAA;AA8L/D,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAAE,CAAA"}
1
+ {"version":3,"file":"add-tasks.d.ts","sourceRoot":"","sources":["../../src/tools/add-tasks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAqB,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACvE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AA4BvB,QAAA,MAAM,uBAAuB,IAAkC,CAAA;AA4D/D,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAyDwB,MAAM;uBAAS,MAAM;;;;;;;CAyCI,CAAA;AA+L/D,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAAE,CAAA"}
@@ -6,8 +6,8 @@ declare const deleteObject: {
6
6
  type: z.ZodEnum<{
7
7
  filter: "filter";
8
8
  label: "label";
9
- comment: "comment";
10
9
  task: "task";
10
+ comment: "comment";
11
11
  reminder: "reminder";
12
12
  project: "project";
13
13
  section: "section";
@@ -20,8 +20,8 @@ declare const deleteObject: {
20
20
  type: z.ZodEnum<{
21
21
  filter: "filter";
22
22
  label: "label";
23
- comment: "comment";
24
23
  task: "task";
24
+ comment: "comment";
25
25
  reminder: "reminder";
26
26
  project: "project";
27
27
  section: "section";
@@ -37,13 +37,13 @@ declare const deleteObject: {
37
37
  idempotentHint: true;
38
38
  };
39
39
  execute(args: {
40
- type: "filter" | "label" | "comment" | "task" | "reminder" | "project" | "section" | "location_reminder";
40
+ type: "filter" | "label" | "task" | "comment" | "reminder" | "project" | "section" | "location_reminder";
41
41
  id: string;
42
42
  }, client: import('@doist/todoist-sdk').TodoistApi): Promise<{
43
43
  textContent: string;
44
44
  structuredContent: {
45
45
  deletedEntity: {
46
- type: "filter" | "label" | "comment" | "task" | "reminder" | "project" | "section" | "location_reminder";
46
+ type: "filter" | "label" | "task" | "comment" | "reminder" | "project" | "section" | "location_reminder";
47
47
  id: string;
48
48
  };
49
49
  success: true;
@@ -4,8 +4,8 @@ declare const fetchObject: {
4
4
  description: string;
5
5
  parameters: {
6
6
  type: z.ZodEnum<{
7
- comment: "comment";
8
7
  task: "task";
8
+ comment: "comment";
9
9
  project: "project";
10
10
  section: "section";
11
11
  }>;
@@ -28,8 +28,8 @@ declare const fetchObject: {
28
28
  hasMoreChildren: z.ZodOptional<z.ZodBoolean>;
29
29
  childrenError: z.ZodOptional<z.ZodString>;
30
30
  type: z.ZodEnum<{
31
- comment: "comment";
32
31
  task: "task";
32
+ comment: "comment";
33
33
  project: "project";
34
34
  section: "section";
35
35
  }>;
@@ -110,8 +110,8 @@ declare const fetchObject: {
110
110
  fileUrl: z.ZodOptional<z.ZodString>;
111
111
  fileDuration: z.ZodOptional<z.ZodNumber>;
112
112
  uploadState: z.ZodOptional<z.ZodEnum<{
113
- completed: "completed";
114
113
  pending: "pending";
114
+ completed: "completed";
115
115
  }>>;
116
116
  url: z.ZodOptional<z.ZodString>;
117
117
  title: z.ZodOptional<z.ZodString>;
@@ -132,7 +132,7 @@ declare const fetchObject: {
132
132
  idempotentHint: true;
133
133
  };
134
134
  execute(args: {
135
- type: "comment" | "task" | "project" | "section";
135
+ type: "task" | "comment" | "project" | "section";
136
136
  id: string;
137
137
  includeChildren?: boolean | undefined;
138
138
  }, client: import('@doist/todoist-sdk').TodoistApi): Promise<{
@@ -216,7 +216,7 @@ declare const fetchObject: {
216
216
  fileType: string | undefined;
217
217
  fileUrl: string | undefined;
218
218
  fileDuration: number | undefined;
219
- uploadState: "completed" | "pending" | undefined;
219
+ uploadState: "pending" | "completed" | undefined;
220
220
  url: string | undefined;
221
221
  title: string | undefined;
222
222
  image: string | undefined;
@@ -4,8 +4,8 @@ declare const findActivity: {
4
4
  description: string;
5
5
  parameters: {
6
6
  objectType: z.ZodOptional<z.ZodEnum<{
7
- comment: "comment";
8
7
  task: "task";
8
+ comment: "comment";
9
9
  project: "project";
10
10
  }>>;
11
11
  objectId: z.ZodOptional<z.ZodString>;
@@ -53,7 +53,7 @@ declare const findActivity: {
53
53
  };
54
54
  execute(args: {
55
55
  limit: number;
56
- objectType?: "comment" | "task" | "project" | undefined;
56
+ objectType?: "task" | "comment" | "project" | undefined;
57
57
  objectId?: string | undefined;
58
58
  eventType?: "completed" | "added" | "updated" | "deleted" | "uncompleted" | "archived" | "unarchived" | "shared" | "left" | "moved" | undefined;
59
59
  projectId?: string | undefined;
@@ -81,7 +81,7 @@ declare const findActivity: {
81
81
  hasMore: boolean;
82
82
  appliedFilters: {
83
83
  limit: number;
84
- objectType?: "comment" | "task" | "project" | undefined;
84
+ objectType?: "task" | "comment" | "project" | undefined;
85
85
  objectId?: string | undefined;
86
86
  eventType?: "completed" | "added" | "updated" | "deleted" | "uncompleted" | "archived" | "unarchived" | "shared" | "left" | "moved" | undefined;
87
87
  projectId?: string | undefined;
@@ -26,8 +26,8 @@ declare const findComments: {
26
26
  fileUrl: z.ZodOptional<z.ZodString>;
27
27
  fileDuration: z.ZodOptional<z.ZodNumber>;
28
28
  uploadState: z.ZodOptional<z.ZodEnum<{
29
- completed: "completed";
30
29
  pending: "pending";
30
+ completed: "completed";
31
31
  }>>;
32
32
  url: z.ZodOptional<z.ZodString>;
33
33
  title: z.ZodOptional<z.ZodString>;
@@ -71,7 +71,7 @@ declare const findComments: {
71
71
  fileType: string | undefined;
72
72
  fileUrl: string | undefined;
73
73
  fileDuration: number | undefined;
74
- uploadState: "completed" | "pending" | undefined;
74
+ uploadState: "pending" | "completed" | undefined;
75
75
  url: string | undefined;
76
76
  title: string | undefined;
77
77
  image: string | undefined;
@@ -66,8 +66,8 @@ declare const importProjectTemplate: {
66
66
  fileUrl: z.ZodOptional<z.ZodString>;
67
67
  fileDuration: z.ZodOptional<z.ZodNumber>;
68
68
  uploadState: z.ZodOptional<z.ZodEnum<{
69
- completed: "completed";
70
69
  pending: "pending";
70
+ completed: "completed";
71
71
  }>>;
72
72
  url: z.ZodOptional<z.ZodString>;
73
73
  title: z.ZodOptional<z.ZodString>;
@@ -132,7 +132,7 @@ declare const importProjectTemplate: {
132
132
  fileType: string | undefined;
133
133
  fileUrl: string | undefined;
134
134
  fileDuration: number | undefined;
135
- uploadState: "completed" | "pending" | undefined;
135
+ uploadState: "pending" | "completed" | undefined;
136
136
  url: string | undefined;
137
137
  title: string | undefined;
138
138
  image: string | undefined;
@@ -25,8 +25,8 @@ declare const updateComments: {
25
25
  fileUrl: z.ZodOptional<z.ZodString>;
26
26
  fileDuration: z.ZodOptional<z.ZodNumber>;
27
27
  uploadState: z.ZodOptional<z.ZodEnum<{
28
- completed: "completed";
29
28
  pending: "pending";
29
+ completed: "completed";
30
30
  }>>;
31
31
  url: z.ZodOptional<z.ZodString>;
32
32
  title: z.ZodOptional<z.ZodString>;
@@ -37,8 +37,14 @@ declare const updateComments: {
37
37
  }, z.core.$strip>>;
38
38
  totalCount: z.ZodNumber;
39
39
  updatedCommentIds: z.ZodArray<z.ZodString>;
40
+ failures: z.ZodArray<z.ZodObject<{
41
+ item: z.ZodString;
42
+ error: z.ZodString;
43
+ code: z.ZodOptional<z.ZodString>;
44
+ }, z.core.$strip>>;
40
45
  appliedOperations: z.ZodObject<{
41
46
  updateCount: z.ZodNumber;
47
+ failureCount: z.ZodNumber;
42
48
  }, z.core.$strip>;
43
49
  };
44
50
  annotations: {
@@ -69,7 +75,7 @@ declare const updateComments: {
69
75
  fileType: string | undefined;
70
76
  fileUrl: string | undefined;
71
77
  fileDuration: number | undefined;
72
- uploadState: "completed" | "pending" | undefined;
78
+ uploadState: "pending" | "completed" | undefined;
73
79
  url: string | undefined;
74
80
  title: string | undefined;
75
81
  image: string | undefined;
@@ -79,8 +85,13 @@ declare const updateComments: {
79
85
  }[];
80
86
  totalCount: number;
81
87
  updatedCommentIds: string[];
88
+ failures: {
89
+ item: string;
90
+ error: string;
91
+ }[];
82
92
  appliedOperations: {
83
93
  updateCount: number;
94
+ failureCount: number;
84
95
  };
85
96
  };
86
97
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"update-comments.d.ts","sourceRoot":"","sources":["../../src/tools/update-comments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AA0BvB,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgC2C,CAAA;AAqB/D,OAAO,EAAE,cAAc,EAAE,CAAA"}
1
+ {"version":3,"file":"update-comments.d.ts","sourceRoot":"","sources":["../../src/tools/update-comments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAkCvB,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAoBkB,MAAM;uBAAS,MAAM;;;;;;;;CAkCI,CAAA;AAqB/D,OAAO,EAAE,cAAc,EAAE,CAAA"}
@@ -66,9 +66,15 @@ declare const updateFilters: {
66
66
  }, z.core.$strip>>;
67
67
  totalCount: z.ZodNumber;
68
68
  updatedFilterIds: z.ZodArray<z.ZodString>;
69
+ failures: z.ZodArray<z.ZodObject<{
70
+ item: z.ZodString;
71
+ error: z.ZodString;
72
+ code: z.ZodOptional<z.ZodString>;
73
+ }, z.core.$strip>>;
69
74
  appliedOperations: z.ZodObject<{
70
75
  updateCount: z.ZodNumber;
71
76
  skippedCount: z.ZodNumber;
77
+ failureCount: z.ZodNumber;
72
78
  }, z.core.$strip>;
73
79
  };
74
80
  annotations: {
@@ -92,16 +98,21 @@ declare const updateFilters: {
92
98
  id: string;
93
99
  name: string;
94
100
  query: string;
95
- description: string | undefined;
96
- color: "berry_red" | "red" | "orange" | "yellow" | "olive_green" | "lime_green" | "green" | "mint_green" | "teal" | "sky_blue" | "light_blue" | "blue" | "grape" | "violet" | "lavender" | "magenta" | "salmon" | "charcoal" | "grey" | "taupe" | undefined;
97
101
  isFavorite: boolean;
98
102
  itemOrder: number;
103
+ description?: string | undefined;
104
+ color?: "berry_red" | "red" | "orange" | "yellow" | "olive_green" | "lime_green" | "green" | "mint_green" | "teal" | "sky_blue" | "light_blue" | "blue" | "grape" | "violet" | "lavender" | "magenta" | "salmon" | "charcoal" | "grey" | "taupe" | undefined;
99
105
  }[];
100
106
  totalCount: number;
101
107
  updatedFilterIds: string[];
108
+ failures: {
109
+ item: string;
110
+ error: string;
111
+ }[];
102
112
  appliedOperations: {
103
113
  updateCount: number;
104
114
  skippedCount: number;
115
+ failureCount: number;
105
116
  };
106
117
  };
107
118
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"update-filters.d.ts","sourceRoot":"","sources":["../../src/tools/update-filters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAmDvB,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiF4C,CAAA;AA8B/D,OAAO,EAAE,aAAa,EAAE,CAAA"}
1
+ {"version":3,"file":"update-filters.d.ts","sourceRoot":"","sources":["../../src/tools/update-filters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAiEvB,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAqDmB,MAAM;uBAAS,MAAM;;;;;;;;;CA8DI,CAAA;AAqD/D,OAAO,EAAE,aAAa,EAAE,CAAA"}
@@ -71,10 +71,16 @@ declare const updateLabels: {
71
71
  newName: z.ZodString;
72
72
  }, z.core.$strip>>;
73
73
  totalCount: z.ZodNumber;
74
+ failures: z.ZodArray<z.ZodObject<{
75
+ item: z.ZodString;
76
+ error: z.ZodString;
77
+ code: z.ZodOptional<z.ZodString>;
78
+ }, z.core.$strip>>;
74
79
  appliedOperations: z.ZodObject<{
75
80
  updateCount: z.ZodNumber;
76
81
  renameCount: z.ZodNumber;
77
82
  skippedCount: z.ZodNumber;
83
+ failureCount: z.ZodNumber;
78
84
  }, z.core.$strip>;
79
85
  };
80
86
  annotations: {
@@ -110,10 +116,15 @@ declare const updateLabels: {
110
116
  newName: string;
111
117
  }[];
112
118
  totalCount: number;
119
+ failures: {
120
+ item: string;
121
+ error: string;
122
+ }[];
113
123
  appliedOperations: {
114
124
  updateCount: number;
115
125
  renameCount: number;
116
126
  skippedCount: number;
127
+ failureCount: number;
117
128
  };
118
129
  };
119
130
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"update-labels.d.ts","sourceRoot":"","sources":["../../src/tools/update-labels.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAkEvB,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2E6C,CAAA;AAiD/D,OAAO,EAAE,YAAY,EAAE,CAAA"}
1
+ {"version":3,"file":"update-labels.d.ts","sourceRoot":"","sources":["../../src/tools/update-labels.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AA4EvB,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAqCoB,MAAM;uBAAS,MAAM;;;;;;;;;;CAkEI,CAAA;AAiD/D,OAAO,EAAE,YAAY,EAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"update-projects.d.ts","sourceRoot":"","sources":["../../src/tools/update-projects.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAyDvB,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAgCkB,MAAM;uBAAS,MAAM;;;;;;;;;CA8CI,CAAA;AA4C/D,OAAO,EAAE,cAAc,EAAE,CAAA"}
1
+ {"version":3,"file":"update-projects.d.ts","sourceRoot":"","sources":["../../src/tools/update-projects.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAuDvB,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAgCkB,MAAM;uBAAS,MAAM;;;;;;;;;CA8CI,CAAA;AA4C/D,OAAO,EAAE,cAAc,EAAE,CAAA"}
@@ -72,6 +72,15 @@ declare const updateReminders: {
72
72
  }, z.core.$strip>>;
73
73
  totalCount: z.ZodNumber;
74
74
  updatedReminderIds: z.ZodArray<z.ZodString>;
75
+ failures: z.ZodArray<z.ZodObject<{
76
+ item: z.ZodString;
77
+ error: z.ZodString;
78
+ code: z.ZodOptional<z.ZodString>;
79
+ }, z.core.$strip>>;
80
+ appliedOperations: z.ZodObject<{
81
+ updateCount: z.ZodNumber;
82
+ failureCount: z.ZodNumber;
83
+ }, z.core.$strip>;
75
84
  };
76
85
  annotations: {
77
86
  readOnlyHint: false;
@@ -152,6 +161,14 @@ declare const updateReminders: {
152
161
  })[];
153
162
  totalCount: number;
154
163
  updatedReminderIds: string[];
164
+ failures: {
165
+ item: string;
166
+ error: string;
167
+ }[];
168
+ appliedOperations: {
169
+ updateCount: number;
170
+ failureCount: number;
171
+ };
155
172
  };
156
173
  }>;
157
174
  };
@@ -1 +1 @@
1
- {"version":3,"file":"update-reminders.d.ts","sourceRoot":"","sources":["../../src/tools/update-reminders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AA4EvB,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiE0C,CAAA;AAE/D,OAAO,EAAE,eAAe,EAAE,CAAA"}
1
+ {"version":3,"file":"update-reminders.d.ts","sourceRoot":"","sources":["../../src/tools/update-reminders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAuFvB,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAgEiB,MAAM;uBAAS,MAAM;;;;;;;;CAwCI,CAAA;AAE/D,OAAO,EAAE,eAAe,EAAE,CAAA"}
@@ -18,6 +18,15 @@ declare const updateSections: {
18
18
  }, z.core.$strip>>;
19
19
  totalCount: z.ZodNumber;
20
20
  updatedSectionIds: z.ZodArray<z.ZodString>;
21
+ failures: z.ZodArray<z.ZodObject<{
22
+ item: z.ZodString;
23
+ error: z.ZodString;
24
+ code: z.ZodOptional<z.ZodString>;
25
+ }, z.core.$strip>>;
26
+ appliedOperations: z.ZodObject<{
27
+ updateCount: z.ZodNumber;
28
+ failureCount: z.ZodNumber;
29
+ }, z.core.$strip>;
21
30
  };
22
31
  annotations: {
23
32
  readOnlyHint: false;
@@ -41,6 +50,14 @@ declare const updateSections: {
41
50
  }[];
42
51
  totalCount: number;
43
52
  updatedSectionIds: string[];
53
+ failures: {
54
+ item: string;
55
+ error: string;
56
+ }[];
57
+ appliedOperations: {
58
+ updateCount: number;
59
+ failureCount: number;
60
+ };
44
61
  };
45
62
  }>;
46
63
  };
@@ -1 +1 @@
1
- {"version":3,"file":"update-sections.d.ts","sourceRoot":"","sources":["../../src/tools/update-sections.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAsCvB,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqC2C,CAAA;AAa/D,OAAO,EAAE,cAAc,EAAE,CAAA"}
1
+ {"version":3,"file":"update-sections.d.ts","sourceRoot":"","sources":["../../src/tools/update-sections.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAqDvB,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBA2BkB,MAAM;uBAAS,MAAM;;;;;;;;CAkCI,CAAA;AAsB/D,OAAO,EAAE,cAAc,EAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"update-tasks.d.ts","sourceRoot":"","sources":["../../src/tools/update-tasks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIR,UAAU,EAEb,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AA2LvB,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBA4MW,MAAM;uBAAS,MAAM;uBAAS,MAAM;;;;;;;;;;CARD,CAAA;AA+d/D,OAAO,EAAE,WAAW,EAAE,CAAA"}
1
+ {"version":3,"file":"update-tasks.d.ts","sourceRoot":"","sources":["../../src/tools/update-tasks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIR,UAAU,EAEb,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAyLvB,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBA4MW,MAAM;uBAAS,MAAM;uBAAS,MAAM;;;;;;;;;;CARD,CAAA;AA+d/D,OAAO,EAAE,WAAW,EAAE,CAAA"}
@@ -16,6 +16,7 @@ type BatchFailure = z.infer<typeof FailureSchema>;
16
16
  * @param options.redactItems - Set where `item` is the caller's own text rather
17
17
  * than an identifier, e.g. a task title. That text can carry personal data and
18
18
  * must not reach server logs; the error and its code carry the diagnosis anyway.
19
+ * Quoted text inside each error is always redacted, for the same reason.
19
20
  */
20
21
  export declare function logBatchFailures(toolName: ToolName, total: number, failures: ReadonlyArray<BatchFailure>, options?: {
21
22
  redactItems?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"batch-failures.d.ts","sourceRoot":"","sources":["../../src/utils/batch-failures.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAE5B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAE/C,KAAK,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAA;AAKjD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAC5B,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,EACrC,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,GACxC,IAAI,CAgBN"}
1
+ {"version":3,"file":"batch-failures.d.ts","sourceRoot":"","sources":["../../src/utils/batch-failures.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAE5B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAE/C,KAAK,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAA;AAWjD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAC5B,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,EACrC,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,GACxC,IAAI,CAkBN"}
@@ -104,8 +104,8 @@ declare const CommentSchema: z.ZodObject<{
104
104
  fileUrl: z.ZodOptional<z.ZodString>;
105
105
  fileDuration: z.ZodOptional<z.ZodNumber>;
106
106
  uploadState: z.ZodOptional<z.ZodEnum<{
107
- completed: "completed";
108
107
  pending: "pending";
108
+ completed: "completed";
109
109
  }>>;
110
110
  url: z.ZodOptional<z.ZodString>;
111
111
  title: z.ZodOptional<z.ZodString>;
@@ -2,12 +2,12 @@ import { TodoistApi } from '@doist/todoist-sdk';
2
2
  /**
3
3
  * Resolve each reminder's `notifyUser` reference to a user ID.
4
4
  *
5
- * The result lines up with the input, with `undefined` wherever no reference
6
- * was given, so the reminder keeps Todoist's default of notifying its creator.
7
- *
8
- * @throws Error naming the first reference that could not be resolved
5
+ * The result lines up with the input. Each entry is settled on its own, so a
6
+ * reference that cannot be resolved fails only the reminders that use it. A
7
+ * reminder with no reference resolves to `undefined`, which keeps Todoist's
8
+ * default of notifying its creator.
9
9
  */
10
- export declare function resolveReminderRecipients(client: TodoistApi, notifyUsers: (string | undefined)[]): Promise<(string | undefined)[]>;
10
+ export declare function resolveReminderRecipients(client: TodoistApi, notifyUsers: (string | undefined)[]): Promise<PromiseSettledResult<string | undefined>[]>;
11
11
  /**
12
12
  * Warn about every reminder that notifies someone other than the user it was
13
13
  * meant for, which happens when Todoist does not apply the requested recipient.
@@ -1 +1 @@
1
- {"version":3,"file":"reminder-recipients.d.ts","sourceRoot":"","sources":["../../src/utils/reminder-recipients.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAGpD;;;;;;;GAOG;AACH,wBAAsB,yBAAyB,CAC3C,MAAM,EAAE,UAAU,EAClB,WAAW,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,GACpC,OAAO,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC,CAmBjC;AAMD;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACvC,SAAS,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,EAC/C,gBAAgB,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,GACzC,MAAM,EAAE,CAQV"}
1
+ {"version":3,"file":"reminder-recipients.d.ts","sourceRoot":"","sources":["../../src/utils/reminder-recipients.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAIpD;;;;;;;GAOG;AACH,wBAAsB,yBAAyB,CAC3C,MAAM,EAAE,UAAU,EAClB,WAAW,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,GACpC,OAAO,CAAC,oBAAoB,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC,CA0BrD;AAMD;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACvC,SAAS,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,EAC/C,gBAAgB,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,GACzC,MAAM,EAAE,CAQV"}
@@ -10,9 +10,11 @@ type RetryConfig = {
10
10
  maxDelayMs?: number;
11
11
  /** Injectable randomness for deterministic tests. Defaults to `Math.random`. */
12
12
  random?: () => number;
13
+ /** HTTP statuses worth retrying. Defaults to 502, 503 and 504. */
14
+ retryableStatusCodes?: ReadonlySet<number>;
13
15
  };
14
16
  declare function extractHttpStatusCode(error: unknown): number | undefined;
15
- declare function isTransientError(error: unknown): boolean;
17
+ declare function isTransientError(error: unknown, retryableStatusCodes?: ReadonlySet<number>): boolean;
16
18
  /**
17
19
  * Exponential backoff with full jitter: the delay is a random point in
18
20
  * `[0, cap]` rather than the cap itself.
@@ -28,5 +30,10 @@ declare function getRetryDelay({ attempt, baseDelayMs, maxDelayMs, random, }: {
28
30
  random?: () => number;
29
31
  }): number;
30
32
  declare function executeWithRetry<T>(fn: () => Promise<T>, config?: RetryConfig): Promise<T>;
31
- export { executeWithRetry, extractHttpStatusCode, getRetryDelay, isTransientError, MIN_RETRY_DELAY_MS, type RetryConfig, };
33
+ /**
34
+ * {@link executeWithRetry} for a request that creates something, retrying only the
35
+ * statuses that cannot mean it was already created.
36
+ */
37
+ declare function executeCreateWithRetry<T>(fn: () => Promise<T>, config?: Omit<RetryConfig, 'retryableStatusCodes'>): Promise<T>;
38
+ export { executeCreateWithRetry, executeWithRetry, extractHttpStatusCode, getRetryDelay, isTransientError, MIN_RETRY_DELAY_MS, type RetryConfig, };
32
39
  //# sourceMappingURL=retry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../src/utils/retry.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,QAAA,MAAM,kBAAkB,KAAK,CAAA;AAI7B,KAAK,WAAW,GAAG;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gFAAgF;IAChF,MAAM,CAAC,EAAE,MAAM,MAAM,CAAA;CACxB,CAAA;AAED,iBAAS,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CA2BjE;AAED,iBAAS,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAGjD;AAED;;;;;;;GAOG;AACH,iBAAS,aAAa,CAAC,EACnB,OAAO,EACP,WAAW,EACX,UAAU,EACV,MAAoB,GACvB,EAAE;IACC,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,MAAM,CAAA;CACxB,GAAG,MAAM,CAIT;AAMD,iBAAe,gBAAgB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,GAAE,WAAgB,GAAG,OAAO,CAAC,CAAC,CAAC,CAyB7F;AAED,OAAO,EACH,gBAAgB,EAChB,qBAAqB,EACrB,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,WAAW,GACnB,CAAA"}
1
+ {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../src/utils/retry.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,QAAA,MAAM,kBAAkB,KAAK,CAAA;AAY7B,KAAK,WAAW,GAAG;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gFAAgF;IAChF,MAAM,CAAC,EAAE,MAAM,MAAM,CAAA;IACrB,kEAAkE;IAClE,oBAAoB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CAC7C,CAAA;AAED,iBAAS,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CA2BjE;AAED,iBAAS,gBAAgB,CACrB,KAAK,EAAE,OAAO,EACd,oBAAoB,GAAE,WAAW,CAAC,MAAM,CAA0B,GACnE,OAAO,CAGT;AAED;;;;;;;GAOG;AACH,iBAAS,aAAa,CAAC,EACnB,OAAO,EACP,WAAW,EACX,UAAU,EACV,MAAoB,GACvB,EAAE;IACC,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,MAAM,CAAA;CACxB,GAAG,MAAM,CAIT;AAMD,iBAAe,gBAAgB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,GAAE,WAAgB,GAAG,OAAO,CAAC,CAAC,CAAC,CAyB7F;AAED;;;GAGG;AACH,iBAAe,sBAAsB,CAAC,CAAC,EACnC,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,MAAM,GAAE,IAAI,CAAC,WAAW,EAAE,sBAAsB,CAAM,GACvD,OAAO,CAAC,CAAC,CAAC,CAEZ;AAED,OAAO,EACH,sBAAsB,EACtB,gBAAgB,EAChB,qBAAqB,EACrB,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,WAAW,GACnB,CAAA"}
@@ -0,0 +1,21 @@
1
+ import { SyncCommand, TodoistApi } from '@doist/todoist-sdk';
2
+ type SyncCommandResults = {
3
+ /** One entry per command, in the order they were sent. */
4
+ outcomes: PromiseSettledResult<void>[];
5
+ /** Server IDs of the resources the request created, keyed by command `tempId`. */
6
+ tempIdMapping: Record<string, string>;
7
+ };
8
+ /**
9
+ * Sends Sync commands in one request and reports whether each was applied.
10
+ *
11
+ * The Sync API applies commands independently, so a failed command does not undo
12
+ * the ones before it. Settling them per command lets a batch tool report each item
13
+ * the way its REST-backed siblings do, instead of failing the whole batch over the
14
+ * first bad item and hiding the changes that were made.
15
+ *
16
+ * Retrying the request is safe: the Sync API skips commands whose `uuid` it has
17
+ * already processed.
18
+ */
19
+ export declare function settleSyncCommands(client: TodoistApi, commands: SyncCommand[]): Promise<SyncCommandResults>;
20
+ export {};
21
+ //# sourceMappingURL=sync-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-commands.d.ts","sourceRoot":"","sources":["../../src/utils/sync-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,WAAW,EAEhB,KAAK,UAAU,EAGlB,MAAM,oBAAoB,CAAA;AAG3B,KAAK,kBAAkB,GAAG;IACtB,0DAA0D;IAC1D,QAAQ,EAAE,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAA;IACtC,kFAAkF;IAClF,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACxC,CAAA;AAID;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,CACpC,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,WAAW,EAAE,GACxB,OAAO,CAAC,kBAAkB,CAAC,CAwC7B"}
@@ -1,4 +1,4 @@
1
- import { CurrentUser, Filter, Label, PersonalProject, Section, Task, WorkspaceProject } from '@doist/todoist-sdk';
1
+ import { CurrentUser, Filter, Label, PersonalProject, Section, SyncCommand, Task, WorkspaceProject } from '@doist/todoist-sdk';
2
2
  import { MappedTask } from '../tool-helpers';
3
3
  import { Priority } from './priorities';
4
4
  type TaskWithUserFacingPriority = Omit<Task, 'priority'> & {
@@ -33,6 +33,10 @@ export declare function createMockLabel(overrides?: Partial<Label>): Label;
33
33
  * Creates a mock Filter with all required properties and sensible defaults.
34
34
  */
35
35
  export declare function createMockFilter(overrides?: Partial<Filter>): Filter;
36
+ /**
37
+ * The `syncStatus` the Sync API returns when every command was applied.
38
+ */
39
+ export declare function allApplied(commands?: SyncCommand[]): Record<string, 'ok'>;
36
40
  /**
37
41
  * Creates a mock API response object with results and nextCursor.
38
42
  */
@@ -1 +1 @@
1
- {"version":3,"file":"test-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/test-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,WAAW,EACX,MAAM,EACN,KAAK,EACL,eAAe,EACf,OAAO,EACP,IAAI,EACJ,gBAAgB,EACnB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAA2B,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAA;AAErE,KAAK,0BAA0B,GAAG,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG;IACvD,QAAQ,EAAE,QAAQ,CAAA;CACrB,CAAA;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,EAC3B,QAAe,EACf,GAAG,SAAS,EACf,GAAE,OAAO,CAAC,0BAA0B,CAAM,GAAG,IAAI,CA6BjD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,GAAE,OAAO,CAAC,OAAO,CAAM,GAAG,OAAO,CAiB3E;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,GAAE,OAAO,CAAC,eAAe,CAAM,GAAG,eAAe,CAuB3F;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACtC,SAAS,GAAE,OAAO,CAAC,gBAAgB,CAAM,GAC1C,gBAAgB,CA4BlB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,GAAE,OAAO,CAAC,KAAK,CAAM,GAAG,KAAK,CASrE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,GAAE,OAAO,CAAC,MAAM,CAAM,GAAG,MAAM,CAYxE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EACnC,OAAO,EAAE,CAAC,EAAE,EACZ,UAAU,GAAE,MAAM,GAAG,IAAW,GACjC;IACC,OAAO,EAAE,CAAC,EAAE,CAAA;IACZ,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAC5B,CAKA;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,GAAE,OAAO,CAAC,UAAU,CAAM,GAAG,UAAU,CAsBhF;AAED;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;CAKd,CAAA;AAEV;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAC3B,MAAM,EACN,KAAK,EACL,GAAG,GACN,EAAE;IACC,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;CACf,GAAG,KAAK,CASR;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,EAC1C,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,CAAC,CAAC;IAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;CAAE,CAAC;UAAjC,MAAM;WAAS,CAAC;eAAa,CAAC;IAGtD;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;CAYX,CAAA;AAEV;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAG,YAAqB,CAAA;AAE1C;;;GAGG;AACH,wBAAgB,cAAc,CAAC,SAAS,GAAE,OAAO,CAAC,WAAW,CAAM,GAAG,WAAW,CAoChF"}
1
+ {"version":3,"file":"test-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/test-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,WAAW,EACX,MAAM,EACN,KAAK,EACL,eAAe,EACf,OAAO,EACP,WAAW,EACX,IAAI,EACJ,gBAAgB,EACnB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAA2B,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAA;AAErE,KAAK,0BAA0B,GAAG,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG;IACvD,QAAQ,EAAE,QAAQ,CAAA;CACrB,CAAA;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,EAC3B,QAAe,EACf,GAAG,SAAS,EACf,GAAE,OAAO,CAAC,0BAA0B,CAAM,GAAG,IAAI,CA6BjD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,GAAE,OAAO,CAAC,OAAO,CAAM,GAAG,OAAO,CAiB3E;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,GAAE,OAAO,CAAC,eAAe,CAAM,GAAG,eAAe,CAuB3F;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACtC,SAAS,GAAE,OAAO,CAAC,gBAAgB,CAAM,GAC1C,gBAAgB,CA4BlB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,GAAE,OAAO,CAAC,KAAK,CAAM,GAAG,KAAK,CASrE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,GAAE,OAAO,CAAC,MAAM,CAAM,GAAG,MAAM,CAYxE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,GAAE,WAAW,EAAO,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAE7E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EACnC,OAAO,EAAE,CAAC,EAAE,EACZ,UAAU,GAAE,MAAM,GAAG,IAAW,GACjC;IACC,OAAO,EAAE,CAAC,EAAE,CAAA;IACZ,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAC5B,CAKA;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,GAAE,OAAO,CAAC,UAAU,CAAM,GAAG,UAAU,CAsBhF;AAED;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;CAKd,CAAA;AAEV;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAC3B,MAAM,EACN,KAAK,EACL,GAAG,GACN,EAAE;IACC,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;CACf,GAAG,KAAK,CASR;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,EAC1C,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,CAAC,CAAC;IAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;CAAE,CAAC;UAAjC,MAAM;WAAS,CAAC;eAAa,CAAC;IAGtD;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;CAYX,CAAA;AAEV;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAG,YAAqB,CAAA;AAE1C;;;GAGG;AACH,wBAAgB,cAAc,CAAC,SAAS,GAAE,OAAO,CAAC,WAAW,CAAM,GAAG,WAAW,CAoChF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@doist/todoist-mcp",
3
- "version": "13.7.1",
3
+ "version": "13.7.2",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -65,7 +65,7 @@
65
65
  "prepare": "husky"
66
66
  },
67
67
  "dependencies": {
68
- "@doist/todoist-sdk": "15.8.0",
68
+ "@doist/todoist-sdk": "15.9.0",
69
69
  "@modelcontextprotocol/ext-apps": "2.0.3",
70
70
  "date-fns": "4.1.0",
71
71
  "dompurify": "3.3.3",