@doist/todoist-ai 8.7.0 → 8.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 (145) hide show
  1. package/dist/filter-helpers.d.ts +51 -0
  2. package/dist/filter-helpers.d.ts.map +1 -0
  3. package/dist/index.d.ts +2866 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +98 -0
  6. package/dist/main-http.d.ts +3 -0
  7. package/dist/main-http.d.ts.map +1 -0
  8. package/dist/main-http.js +36 -0
  9. package/dist/main.d.ts +3 -0
  10. package/dist/main.d.ts.map +1 -0
  11. package/dist/main.js +17 -0
  12. package/dist/mcp-helpers.d.ts +58 -0
  13. package/dist/mcp-helpers.d.ts.map +1 -0
  14. package/dist/mcp-server-Eb2ZRWDB.js +5777 -0
  15. package/dist/mcp-server.d.ts +16 -0
  16. package/dist/mcp-server.d.ts.map +1 -0
  17. package/dist/prompts/productivity-analysis.d.ts +58 -0
  18. package/dist/prompts/productivity-analysis.d.ts.map +1 -0
  19. package/dist/todoist-tool.d.ts +62 -0
  20. package/dist/todoist-tool.d.ts.map +1 -0
  21. package/dist/tool-execution-error.d.ts +7 -0
  22. package/dist/tool-execution-error.d.ts.map +1 -0
  23. package/dist/tool-helpers.d.ts +264 -0
  24. package/dist/tool-helpers.d.ts.map +1 -0
  25. package/dist/tools/add-comments.d.ts +83 -0
  26. package/dist/tools/add-comments.d.ts.map +1 -0
  27. package/dist/tools/add-filters.d.ts +94 -0
  28. package/dist/tools/add-filters.d.ts.map +1 -0
  29. package/dist/tools/add-labels.d.ts +92 -0
  30. package/dist/tools/add-labels.d.ts.map +1 -0
  31. package/dist/tools/add-projects.d.ts +112 -0
  32. package/dist/tools/add-projects.d.ts.map +1 -0
  33. package/dist/tools/add-reminders.d.ts +141 -0
  34. package/dist/tools/add-reminders.d.ts.map +1 -0
  35. package/dist/tools/add-sections.d.ts +50 -0
  36. package/dist/tools/add-sections.d.ts.map +1 -0
  37. package/dist/tools/add-tasks.d.ts +118 -0
  38. package/dist/tools/add-tasks.d.ts.map +1 -0
  39. package/dist/tools/analyze-project-health.d.ts +45 -0
  40. package/dist/tools/analyze-project-health.d.ts.map +1 -0
  41. package/dist/tools/complete-tasks.d.ts +42 -0
  42. package/dist/tools/complete-tasks.d.ts.map +1 -0
  43. package/dist/tools/delete-object.d.ts +54 -0
  44. package/dist/tools/delete-object.d.ts.map +1 -0
  45. package/dist/tools/fetch-object.d.ts +199 -0
  46. package/dist/tools/fetch-object.d.ts.map +1 -0
  47. package/dist/tools/fetch.d.ts +41 -0
  48. package/dist/tools/fetch.d.ts.map +1 -0
  49. package/dist/tools/find-activity.d.ts +91 -0
  50. package/dist/tools/find-activity.d.ts.map +1 -0
  51. package/dist/tools/find-comments.d.ts +89 -0
  52. package/dist/tools/find-comments.d.ts.map +1 -0
  53. package/dist/tools/find-completed-tasks.d.ts +115 -0
  54. package/dist/tools/find-completed-tasks.d.ts.map +1 -0
  55. package/dist/tools/find-filters.d.ts +92 -0
  56. package/dist/tools/find-filters.d.ts.map +1 -0
  57. package/dist/tools/find-labels.d.ts +81 -0
  58. package/dist/tools/find-labels.d.ts.map +1 -0
  59. package/dist/tools/find-project-collaborators.d.ts +84 -0
  60. package/dist/tools/find-project-collaborators.d.ts.map +1 -0
  61. package/dist/tools/find-projects.d.ts +87 -0
  62. package/dist/tools/find-projects.d.ts.map +1 -0
  63. package/dist/tools/find-reminders.d.ts +92 -0
  64. package/dist/tools/find-reminders.d.ts.map +1 -0
  65. package/dist/tools/find-sections.d.ts +41 -0
  66. package/dist/tools/find-sections.d.ts.map +1 -0
  67. package/dist/tools/find-tasks-by-date.d.ts +133 -0
  68. package/dist/tools/find-tasks-by-date.d.ts.map +1 -0
  69. package/dist/tools/find-tasks.d.ts +116 -0
  70. package/dist/tools/find-tasks.d.ts.map +1 -0
  71. package/dist/tools/get-overview.d.ts +122 -0
  72. package/dist/tools/get-overview.d.ts.map +1 -0
  73. package/dist/tools/get-productivity-stats.d.ts +160 -0
  74. package/dist/tools/get-productivity-stats.d.ts.map +1 -0
  75. package/dist/tools/get-project-activity-stats.d.ts +48 -0
  76. package/dist/tools/get-project-activity-stats.d.ts.map +1 -0
  77. package/dist/tools/get-project-health.d.ts +112 -0
  78. package/dist/tools/get-project-health.d.ts.map +1 -0
  79. package/dist/tools/get-workspace-insights.d.ts +65 -0
  80. package/dist/tools/get-workspace-insights.d.ts.map +1 -0
  81. package/dist/tools/list-workspaces.d.ts +54 -0
  82. package/dist/tools/list-workspaces.d.ts.map +1 -0
  83. package/dist/tools/manage-assignments.d.ts +72 -0
  84. package/dist/tools/manage-assignments.d.ts.map +1 -0
  85. package/dist/tools/project-management.d.ts +78 -0
  86. package/dist/tools/project-management.d.ts.map +1 -0
  87. package/dist/tools/project-move.d.ts +88 -0
  88. package/dist/tools/project-move.d.ts.map +1 -0
  89. package/dist/tools/reorder-objects.d.ts +50 -0
  90. package/dist/tools/reorder-objects.d.ts.map +1 -0
  91. package/dist/tools/reschedule-tasks.d.ts +78 -0
  92. package/dist/tools/reschedule-tasks.d.ts.map +1 -0
  93. package/dist/tools/search.d.ts +43 -0
  94. package/dist/tools/search.d.ts.map +1 -0
  95. package/dist/tools/uncomplete-tasks.d.ts +42 -0
  96. package/dist/tools/uncomplete-tasks.d.ts.map +1 -0
  97. package/dist/tools/update-comments.d.ts +87 -0
  98. package/dist/tools/update-comments.d.ts.map +1 -0
  99. package/dist/tools/update-filters.d.ts +106 -0
  100. package/dist/tools/update-filters.d.ts.map +1 -0
  101. package/dist/tools/update-projects.d.ts +120 -0
  102. package/dist/tools/update-projects.d.ts.map +1 -0
  103. package/dist/tools/update-reminders.d.ts +141 -0
  104. package/dist/tools/update-reminders.d.ts.map +1 -0
  105. package/dist/tools/update-sections.d.ts +52 -0
  106. package/dist/tools/update-sections.d.ts.map +1 -0
  107. package/dist/tools/update-tasks.d.ts +113 -0
  108. package/dist/tools/update-tasks.d.ts.map +1 -0
  109. package/dist/tools/user-info.d.ts +57 -0
  110. package/dist/tools/user-info.d.ts.map +1 -0
  111. package/dist/tools/view-attachment.d.ts +48 -0
  112. package/dist/tools/view-attachment.d.ts.map +1 -0
  113. package/dist/utils/assignment-validator.d.ts +69 -0
  114. package/dist/utils/assignment-validator.d.ts.map +1 -0
  115. package/dist/utils/colors.d.ts +68 -0
  116. package/dist/utils/colors.d.ts.map +1 -0
  117. package/dist/utils/constants.d.ts +53 -0
  118. package/dist/utils/constants.d.ts.map +1 -0
  119. package/dist/utils/date.d.ts +18 -0
  120. package/dist/utils/date.d.ts.map +1 -0
  121. package/dist/utils/duration-parser.d.ts +36 -0
  122. package/dist/utils/duration-parser.d.ts.map +1 -0
  123. package/dist/utils/filter-resolver.d.ts +27 -0
  124. package/dist/utils/filter-resolver.d.ts.map +1 -0
  125. package/dist/utils/labels.d.ts +13 -0
  126. package/dist/utils/labels.d.ts.map +1 -0
  127. package/dist/utils/output-schemas.d.ts +191 -0
  128. package/dist/utils/output-schemas.d.ts.map +1 -0
  129. package/dist/utils/priorities.d.ts +14 -0
  130. package/dist/utils/priorities.d.ts.map +1 -0
  131. package/dist/utils/reminder-schemas.d.ts +29 -0
  132. package/dist/utils/reminder-schemas.d.ts.map +1 -0
  133. package/dist/utils/response-builders.d.ts +93 -0
  134. package/dist/utils/response-builders.d.ts.map +1 -0
  135. package/dist/utils/sanitize-data.d.ts +10 -0
  136. package/dist/utils/sanitize-data.d.ts.map +1 -0
  137. package/dist/utils/test-helpers.d.ts +91 -0
  138. package/dist/utils/test-helpers.d.ts.map +1 -0
  139. package/dist/utils/tool-names.d.ts +55 -0
  140. package/dist/utils/tool-names.d.ts.map +1 -0
  141. package/dist/utils/user-resolver.d.ts +39 -0
  142. package/dist/utils/user-resolver.d.ts.map +1 -0
  143. package/dist/utils/workspace-resolver.d.ts +31 -0
  144. package/dist/utils/workspace-resolver.d.ts.map +1 -0
  145. package/package.json +2 -2
@@ -0,0 +1,68 @@
1
+ import { z } from 'zod';
2
+ export declare const ColorSchema: z.ZodPipe<z.ZodTransform<string | undefined, unknown>, z.ZodOptional<z.ZodEnum<{
3
+ berry_red: "berry_red";
4
+ red: "red";
5
+ orange: "orange";
6
+ yellow: "yellow";
7
+ olive_green: "olive_green";
8
+ lime_green: "lime_green";
9
+ green: "green";
10
+ mint_green: "mint_green";
11
+ teal: "teal";
12
+ sky_blue: "sky_blue";
13
+ light_blue: "light_blue";
14
+ blue: "blue";
15
+ grape: "grape";
16
+ violet: "violet";
17
+ lavender: "lavender";
18
+ magenta: "magenta";
19
+ salmon: "salmon";
20
+ charcoal: "charcoal";
21
+ grey: "grey";
22
+ taupe: "taupe";
23
+ }>>>;
24
+ export declare const ColorKeySchema: z.ZodEnum<{
25
+ berry_red: "berry_red";
26
+ red: "red";
27
+ orange: "orange";
28
+ yellow: "yellow";
29
+ olive_green: "olive_green";
30
+ lime_green: "lime_green";
31
+ green: "green";
32
+ mint_green: "mint_green";
33
+ teal: "teal";
34
+ sky_blue: "sky_blue";
35
+ light_blue: "light_blue";
36
+ blue: "blue";
37
+ grape: "grape";
38
+ violet: "violet";
39
+ lavender: "lavender";
40
+ magenta: "magenta";
41
+ salmon: "salmon";
42
+ charcoal: "charcoal";
43
+ grey: "grey";
44
+ taupe: "taupe";
45
+ }>;
46
+ export declare const ColorOutputSchema: z.ZodCatch<z.ZodOptional<z.ZodEnum<{
47
+ berry_red: "berry_red";
48
+ red: "red";
49
+ orange: "orange";
50
+ yellow: "yellow";
51
+ olive_green: "olive_green";
52
+ lime_green: "lime_green";
53
+ green: "green";
54
+ mint_green: "mint_green";
55
+ teal: "teal";
56
+ sky_blue: "sky_blue";
57
+ light_blue: "light_blue";
58
+ blue: "blue";
59
+ grape: "grape";
60
+ violet: "violet";
61
+ lavender: "lavender";
62
+ magenta: "magenta";
63
+ salmon: "salmon";
64
+ charcoal: "charcoal";
65
+ grey: "grey";
66
+ taupe: "taupe";
67
+ }>>>;
68
+ //# sourceMappingURL=colors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../src/utils/colors.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAmBvB,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;IAEO,CAAA;AAG/B,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;EAA6D,CAAA;AAQxF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;IAIe,CAAA"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Application-wide constants
3
+ *
4
+ * This module centralizes magic numbers and configuration values
5
+ * to improve maintainability and provide a single source of truth.
6
+ */
7
+ export declare const ApiLimits: {
8
+ /** Default limit for task listings */
9
+ readonly TASKS_DEFAULT: 10;
10
+ /** Maximum limit for task search and list operations */
11
+ readonly TASKS_MAX: 100;
12
+ /** Default limit for completed tasks */
13
+ readonly COMPLETED_TASKS_DEFAULT: 50;
14
+ /** Maximum limit for completed tasks */
15
+ readonly COMPLETED_TASKS_MAX: 200;
16
+ /** Default limit for project listings */
17
+ readonly PROJECTS_DEFAULT: 50;
18
+ /** Maximum limit for project listings */
19
+ readonly PROJECTS_MAX: 200;
20
+ /** Maximum limit for section listings */
21
+ readonly SECTIONS_MAX: 200;
22
+ /** Batch size for fetching all tasks in a project */
23
+ readonly TASKS_BATCH_SIZE: 50;
24
+ /** Default limit for comment listings */
25
+ readonly COMMENTS_DEFAULT: 10;
26
+ /** Maximum limit for comment search and list operations */
27
+ readonly COMMENTS_MAX: 10;
28
+ /** Default limit for activity log listings */
29
+ readonly ACTIVITY_DEFAULT: 20;
30
+ /** Maximum limit for activity log search and list operations */
31
+ readonly ACTIVITY_MAX: 100;
32
+ /** Default limit for label listings */
33
+ readonly LABELS_DEFAULT: 50;
34
+ /** Maximum limit for label listings */
35
+ readonly LABELS_MAX: 200;
36
+ /** Default limit for reminder listings */
37
+ readonly REMINDERS_DEFAULT: 50;
38
+ /** Maximum limit for reminder search operations */
39
+ readonly REMINDERS_MAX: 200;
40
+ };
41
+ export declare const DisplayLimits: {
42
+ /** Maximum number of failures to show in detailed error messages */
43
+ readonly MAX_FAILURES_SHOWN: 3;
44
+ /** Threshold for suggesting batch operations */
45
+ readonly BATCH_OPERATION_THRESHOLD: 10;
46
+ };
47
+ export declare const ResponseConfig: {
48
+ /** Maximum characters per line in text responses */
49
+ readonly MAX_LINE_LENGTH: 100;
50
+ /** Indentation for nested items */
51
+ readonly INDENT_SIZE: 2;
52
+ };
53
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,eAAO,MAAM,SAAS;IAClB,sCAAsC;;IAEtC,wDAAwD;;IAExD,wCAAwC;;IAExC,wCAAwC;;IAExC,yCAAyC;;IAEzC,yCAAyC;;IAEzC,yCAAyC;;IAEzC,qDAAqD;;IAErD,yCAAyC;;IAEzC,2DAA2D;;IAE3D,8CAA8C;;IAE9C,gEAAgE;;IAEhE,uCAAuC;;IAEvC,uCAAuC;;IAEvC,0CAA0C;;IAE1C,mDAAmD;;CAE7C,CAAA;AAGV,eAAO,MAAM,aAAa;IACtB,oEAAoE;;IAEpE,gDAAgD;;CAE1C,CAAA;AAGV,eAAO,MAAM,cAAc;IACvB,oDAAoD;;IAEpD,mCAAmC;;CAE7B,CAAA"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Format a Date using UTC calendar components (YYYY-MM-DD).
3
+ */
4
+ export declare function formatUtcDate(date: Date): string;
5
+ /**
6
+ * Parse a GMT offset string (+HH:MM or -HH:MM) to total minutes.
7
+ * Falls back to 0 for malformed offsets.
8
+ */
9
+ export declare function parseGmtOffsetToMinutes(gmtOffset: string): number;
10
+ /**
11
+ * Return the date string (YYYY-MM-DD) in a provided GMT offset.
12
+ */
13
+ export declare function getDateInOffset(date: Date, offsetMinutes: number): string;
14
+ /**
15
+ * Shift a YYYY-MM-DD date string by the specified number of days in UTC.
16
+ */
17
+ export declare function shiftDateStringByDays(dateString: string, days: number): string;
18
+ //# sourceMappingURL=date.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../../src/utils/date.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAKhD;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CASjE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAGzE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAa9E"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Duration parser utility for converting human-readable duration strings
3
+ * to minutes using a restricted, language-neutral syntax.
4
+ *
5
+ * Supported formats:
6
+ * - "2h" (hours only)
7
+ * - "90m" (minutes only)
8
+ * - "2h30m" (hours + minutes)
9
+ * - "1.5h" (decimal hours)
10
+ * - Supports optional spaces: "2h 30m"
11
+ */
12
+ type ParsedDuration = {
13
+ minutes: number;
14
+ };
15
+ export declare class DurationParseError extends Error {
16
+ constructor(input: string, reason: string);
17
+ }
18
+ /**
19
+ * Parses duration string in restricted syntax to minutes.
20
+ * Max duration: 1440 minutes (24 hours)
21
+ *
22
+ * @param durationStr - Duration string like "2h30m", "45m", "1.5h"
23
+ * @returns Parsed duration in minutes
24
+ * @throws DurationParseError for invalid formats
25
+ */
26
+ export declare function parseDuration(durationStr: string): ParsedDuration;
27
+ /**
28
+ * Formats minutes back to a human-readable duration string.
29
+ * Used when returning task data to LLMs.
30
+ *
31
+ * @param minutes - Duration in minutes
32
+ * @returns Formatted duration string like "2h30m" or "45m"
33
+ */
34
+ export declare function formatDuration(minutes: number): string;
35
+ export {};
36
+ //# sourceMappingURL=duration-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"duration-parser.d.ts","sourceRoot":"","sources":["../../src/utils/duration-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,KAAK,cAAc,GAAG;IAClB,OAAO,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,qBAAa,kBAAmB,SAAQ,KAAK;gBAC7B,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAI5C;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,CAgEjE;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAetD"}
@@ -0,0 +1,27 @@
1
+ import { TodoistApi } from '@doist/todoist-api-typescript';
2
+ export type ResolvedFilter = {
3
+ filterId: string;
4
+ filterName: string;
5
+ filterQuery: string;
6
+ };
7
+ export declare class FilterResolver {
8
+ private cache;
9
+ private getFilters;
10
+ /**
11
+ * Resolve a filter name or ID to a filter ID, name, and query.
12
+ *
13
+ * Resolution order:
14
+ * 1. Exact ID match
15
+ * 2. Exact case-insensitive name match
16
+ * 3. Unique partial case-insensitive name match
17
+ * 4. Multiple partial matches → throw ambiguous error
18
+ * 5. No match → throw not-found error
19
+ */
20
+ resolveFilter(client: TodoistApi, nameOrId: string): Promise<ResolvedFilter>;
21
+ /**
22
+ * Clear the filter cache — useful for testing.
23
+ */
24
+ clearCache(): void;
25
+ }
26
+ export declare const filterResolver: FilterResolver;
27
+ //# sourceMappingURL=filter-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-resolver.d.ts","sourceRoot":"","sources":["../../src/utils/filter-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAU,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAEvE,MAAM,MAAM,cAAc,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;CACtB,CAAA;AAID,qBAAa,cAAc;IACvB,OAAO,CAAC,KAAK,CAAwD;YAEvD,UAAU;IAcxB;;;;;;;;;OASG;IACG,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAuDlF;;OAEG;IACH,UAAU,IAAI,IAAI;CAGrB;AAGD,eAAO,MAAM,cAAc,gBAAuB,CAAA"}
@@ -0,0 +1,13 @@
1
+ import { z } from 'zod';
2
+ declare const LABELS_OPERATORS: readonly ["and", "or"];
3
+ type LabelsOperator = (typeof LABELS_OPERATORS)[number];
4
+ export declare const LabelsSchema: {
5
+ labels: z.ZodOptional<z.ZodArray<z.ZodString>>;
6
+ labelsOperator: z.ZodOptional<z.ZodEnum<{
7
+ or: "or";
8
+ and: "and";
9
+ }>>;
10
+ };
11
+ export declare function generateLabelsFilter(labels?: string[], labelsOperator?: LabelsOperator): string;
12
+ export {};
13
+ //# sourceMappingURL=labels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"labels.d.ts","sourceRoot":"","sources":["../../src/utils/labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,QAAA,MAAM,gBAAgB,wBAAyB,CAAA;AAC/C,KAAK,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAA;AAEvD,eAAO,MAAM,YAAY;;;;;;CAQxB,CAAA;AAED,wBAAgB,oBAAoB,CAAC,MAAM,GAAE,MAAM,EAAO,EAAE,cAAc,GAAE,cAAqB,UAOhG"}
@@ -0,0 +1,191 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Schema for a mapped task object returned by tools
4
+ */
5
+ declare const TaskSchema: z.ZodObject<{
6
+ id: z.ZodString;
7
+ content: z.ZodString;
8
+ description: z.ZodString;
9
+ dueDate: z.ZodOptional<z.ZodString>;
10
+ recurring: z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>;
11
+ deadlineDate: z.ZodOptional<z.ZodString>;
12
+ priority: z.ZodEnum<{
13
+ p1: "p1";
14
+ p2: "p2";
15
+ p3: "p3";
16
+ p4: "p4";
17
+ }>;
18
+ projectId: z.ZodString;
19
+ sectionId: z.ZodOptional<z.ZodString>;
20
+ parentId: z.ZodOptional<z.ZodString>;
21
+ labels: z.ZodOptional<z.ZodArray<z.ZodString>>;
22
+ duration: z.ZodOptional<z.ZodString>;
23
+ responsibleUid: z.ZodOptional<z.ZodString>;
24
+ isUncompletable: z.ZodOptional<z.ZodBoolean>;
25
+ assignedByUid: z.ZodOptional<z.ZodString>;
26
+ checked: z.ZodBoolean;
27
+ completedAt: z.ZodOptional<z.ZodString>;
28
+ }, z.core.$strip>;
29
+ /**
30
+ * Schema for a mapped project object returned by tools
31
+ */
32
+ declare const ProjectSchema: z.ZodObject<{
33
+ id: z.ZodString;
34
+ name: z.ZodString;
35
+ color: z.ZodCatch<z.ZodOptional<z.ZodEnum<{
36
+ berry_red: "berry_red";
37
+ red: "red";
38
+ orange: "orange";
39
+ yellow: "yellow";
40
+ olive_green: "olive_green";
41
+ lime_green: "lime_green";
42
+ green: "green";
43
+ mint_green: "mint_green";
44
+ teal: "teal";
45
+ sky_blue: "sky_blue";
46
+ light_blue: "light_blue";
47
+ blue: "blue";
48
+ grape: "grape";
49
+ violet: "violet";
50
+ lavender: "lavender";
51
+ magenta: "magenta";
52
+ salmon: "salmon";
53
+ charcoal: "charcoal";
54
+ grey: "grey";
55
+ taupe: "taupe";
56
+ }>>>;
57
+ isFavorite: z.ZodBoolean;
58
+ isShared: z.ZodBoolean;
59
+ parentId: z.ZodOptional<z.ZodString>;
60
+ inboxProject: z.ZodBoolean;
61
+ viewStyle: z.ZodString;
62
+ workspaceId: z.ZodOptional<z.ZodString>;
63
+ folderId: z.ZodOptional<z.ZodString>;
64
+ childOrder: z.ZodNumber;
65
+ }, z.core.$strip>;
66
+ /**
67
+ * Schema for a section object returned by tools
68
+ */
69
+ declare const SectionSchema: z.ZodObject<{
70
+ id: z.ZodString;
71
+ name: z.ZodString;
72
+ }, z.core.$strip>;
73
+ /**
74
+ * Schema for a comment object returned by tools
75
+ */
76
+ declare const CommentSchema: z.ZodObject<{
77
+ id: z.ZodString;
78
+ taskId: z.ZodOptional<z.ZodString>;
79
+ projectId: z.ZodOptional<z.ZodString>;
80
+ content: z.ZodString;
81
+ postedAt: z.ZodString;
82
+ postedUid: z.ZodOptional<z.ZodString>;
83
+ fileAttachment: z.ZodOptional<z.ZodObject<{
84
+ resourceType: z.ZodString;
85
+ fileName: z.ZodOptional<z.ZodString>;
86
+ fileSize: z.ZodOptional<z.ZodNumber>;
87
+ fileType: z.ZodOptional<z.ZodString>;
88
+ fileUrl: z.ZodOptional<z.ZodString>;
89
+ fileDuration: z.ZodOptional<z.ZodNumber>;
90
+ uploadState: z.ZodOptional<z.ZodEnum<{
91
+ completed: "completed";
92
+ pending: "pending";
93
+ }>>;
94
+ url: z.ZodOptional<z.ZodString>;
95
+ title: z.ZodOptional<z.ZodString>;
96
+ image: z.ZodOptional<z.ZodString>;
97
+ imageWidth: z.ZodOptional<z.ZodNumber>;
98
+ imageHeight: z.ZodOptional<z.ZodNumber>;
99
+ }, z.core.$strip>>;
100
+ }, z.core.$strip>;
101
+ /**
102
+ * Schema for an activity event object returned by tools
103
+ */
104
+ declare const ActivityEventSchema: z.ZodObject<{
105
+ id: z.ZodOptional<z.ZodString>;
106
+ objectType: z.ZodString;
107
+ objectId: z.ZodString;
108
+ eventType: z.ZodString;
109
+ eventDate: z.ZodString;
110
+ parentProjectId: z.ZodOptional<z.ZodString>;
111
+ parentItemId: z.ZodOptional<z.ZodString>;
112
+ initiatorId: z.ZodOptional<z.ZodString>;
113
+ extraData: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
114
+ }, z.core.$strip>;
115
+ /**
116
+ * Schema for a user/collaborator object returned by tools
117
+ */
118
+ declare const CollaboratorSchema: z.ZodObject<{
119
+ id: z.ZodString;
120
+ name: z.ZodString;
121
+ email: z.ZodString;
122
+ }, z.core.$strip>;
123
+ /**
124
+ * Schema for a label object returned by tools
125
+ */
126
+ declare const LabelSchema: z.ZodObject<{
127
+ id: z.ZodString;
128
+ name: z.ZodString;
129
+ color: z.ZodCatch<z.ZodOptional<z.ZodEnum<{
130
+ berry_red: "berry_red";
131
+ red: "red";
132
+ orange: "orange";
133
+ yellow: "yellow";
134
+ olive_green: "olive_green";
135
+ lime_green: "lime_green";
136
+ green: "green";
137
+ mint_green: "mint_green";
138
+ teal: "teal";
139
+ sky_blue: "sky_blue";
140
+ light_blue: "light_blue";
141
+ blue: "blue";
142
+ grape: "grape";
143
+ violet: "violet";
144
+ lavender: "lavender";
145
+ magenta: "magenta";
146
+ salmon: "salmon";
147
+ charcoal: "charcoal";
148
+ grey: "grey";
149
+ taupe: "taupe";
150
+ }>>>;
151
+ order: z.ZodCatch<z.ZodOptional<z.ZodNumber>>;
152
+ isFavorite: z.ZodBoolean;
153
+ }, z.core.$strip>;
154
+ /**
155
+ * Schema for a mapped reminder object returned by tools
156
+ */
157
+ declare const ReminderSchema: z.ZodObject<{
158
+ id: z.ZodString;
159
+ taskId: z.ZodString;
160
+ type: z.ZodEnum<{
161
+ location: "location";
162
+ absolute: "absolute";
163
+ relative: "relative";
164
+ }>;
165
+ minuteOffset: z.ZodOptional<z.ZodNumber>;
166
+ due: z.ZodOptional<z.ZodObject<{
167
+ isRecurring: z.ZodBoolean;
168
+ string: z.ZodString;
169
+ date: z.ZodString;
170
+ datetime: z.ZodOptional<z.ZodString>;
171
+ timezone: z.ZodOptional<z.ZodString>;
172
+ }, z.core.$strip>>;
173
+ name: z.ZodOptional<z.ZodString>;
174
+ locLat: z.ZodOptional<z.ZodString>;
175
+ locLong: z.ZodOptional<z.ZodString>;
176
+ locTrigger: z.ZodOptional<z.ZodEnum<{
177
+ on_enter: "on_enter";
178
+ on_leave: "on_leave";
179
+ }>>;
180
+ radius: z.ZodOptional<z.ZodNumber>;
181
+ }, z.core.$strip>;
182
+ /**
183
+ * Schema for batch operation failure
184
+ */
185
+ declare const FailureSchema: z.ZodObject<{
186
+ item: z.ZodString;
187
+ error: z.ZodString;
188
+ code: z.ZodOptional<z.ZodString>;
189
+ }, z.core.$strip>;
190
+ export { ActivityEventSchema, CollaboratorSchema, CommentSchema, FailureSchema, LabelSchema, ProjectSchema, ReminderSchema, SectionSchema, TaskSchema, };
191
+ //# sourceMappingURL=output-schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output-schemas.d.ts","sourceRoot":"","sources":["../../src/utils/output-schemas.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB;;GAEG;AACH,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;iBA+Bd,CAAA;AAEF;;GAEG;AACH,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAoBjB,CAAA;AAEF;;GAEG;AACH,QAAA,MAAM,aAAa;;;iBAGjB,CAAA;AA0BF;;GAEG;AACH,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;iBAQjB,CAAA;AAEF;;GAEG;AACH,QAAA,MAAM,mBAAmB;;;;;;;;;;iBAYvB,CAAA;AAEF;;GAEG;AACH,QAAA,MAAM,kBAAkB;;;;iBAItB,CAAA;AAEF;;GAEG;AACH,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAMf,CAAA;AAaF;;GAEG;AACH,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;iBAmBlB,CAAA;AAEF;;GAEG;AACH,QAAA,MAAM,aAAa;;;;iBAIjB,CAAA;AAEF,OAAO,EACH,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,WAAW,EACX,aAAa,EACb,cAAc,EACd,aAAa,EACb,UAAU,GACb,CAAA"}
@@ -0,0 +1,14 @@
1
+ import { z } from 'zod';
2
+ declare const PRIORITY_VALUES: readonly ["p1", "p2", "p3", "p4"];
3
+ export type Priority = (typeof PRIORITY_VALUES)[number];
4
+ export declare const PRIORITY_INPUT_DESCRIPTION = "Task priority as a string: \"p1\" (highest), \"p2\" (high), \"p3\" (medium), or \"p4\" (lowest/default). Integers like 1, 2, 3, or 4 are not accepted.";
5
+ export declare const PrioritySchema: z.ZodEnum<{
6
+ p1: "p1";
7
+ p2: "p2";
8
+ p3: "p3";
9
+ p4: "p4";
10
+ }>;
11
+ export declare function convertPriorityToNumber(priority: Priority): number;
12
+ export declare function convertNumberToPriority(priority: number): Priority | undefined;
13
+ export {};
14
+ //# sourceMappingURL=priorities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"priorities.d.ts","sourceRoot":"","sources":["../../src/utils/priorities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,QAAA,MAAM,eAAe,mCAAoC,CAAA;AACzD,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAA;AAEvD,eAAO,MAAM,0BAA0B,2JAC6G,CAAA;AAEpJ,eAAO,MAAM,cAAc;;;;;EAA+D,CAAA;AAE1F,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAIlE;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAI9E"}
@@ -0,0 +1,29 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Maximum number of reminders per add/update operation.
4
+ */
5
+ export declare const MAX_REMINDERS_PER_OPERATION = 25;
6
+ /**
7
+ * Shared schema for reminder delivery service (email or push).
8
+ */
9
+ export declare const ReminderServiceSchema: z.ZodEnum<{
10
+ email: "email";
11
+ push: "push";
12
+ }>;
13
+ /**
14
+ * Shared schema for reminder due date input.
15
+ */
16
+ export declare const ReminderDueInputSchema: z.ZodObject<{
17
+ date: z.ZodOptional<z.ZodString>;
18
+ string: z.ZodOptional<z.ZodString>;
19
+ timezone: z.ZodOptional<z.ZodString>;
20
+ lang: z.ZodOptional<z.ZodString>;
21
+ }, z.core.$strip>;
22
+ /**
23
+ * Shared schema for location trigger (on_enter or on_leave).
24
+ */
25
+ export declare const LocationTriggerSchema: z.ZodEnum<{
26
+ on_enter: "on_enter";
27
+ on_leave: "on_leave";
28
+ }>;
29
+ //# sourceMappingURL=reminder-schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reminder-schemas.d.ts","sourceRoot":"","sources":["../../src/utils/reminder-schemas.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB;;GAEG;AACH,eAAO,MAAM,2BAA2B,KAAK,CAAA;AAE7C;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;EAAqC,CAAA;AAEvE;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;iBAKjC,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;EAA4B,CAAA"}
@@ -0,0 +1,93 @@
1
+ import { Label } from '@doist/todoist-api-typescript';
2
+ import { Priority } from './priorities.js';
3
+ /**
4
+ * Helper function to get date string in YYYY-MM-DD format
5
+ */
6
+ export declare function getDateString(date?: Date): string;
7
+ type TaskLike = {
8
+ id?: string;
9
+ content?: string;
10
+ title?: string;
11
+ dueDate?: string;
12
+ priority?: Priority;
13
+ projectName?: string;
14
+ };
15
+ type ProjectLike = {
16
+ id: string;
17
+ name: string;
18
+ color?: string;
19
+ isFavorite?: boolean;
20
+ isShared?: boolean;
21
+ parentId?: string | null;
22
+ inboxProject?: boolean;
23
+ viewStyle?: string;
24
+ };
25
+ type TaskOperationOptions = {
26
+ context?: string;
27
+ showDetails?: boolean;
28
+ };
29
+ type BatchOperationParams = {
30
+ action: string;
31
+ success: number;
32
+ total: number;
33
+ successItems?: string[];
34
+ successLabel?: string;
35
+ failures?: Array<{
36
+ item: string;
37
+ error: string;
38
+ code?: string;
39
+ }>;
40
+ };
41
+ /**
42
+ * Creates concise, actionable summaries for task operations instead of raw JSON
43
+ */
44
+ export declare function summarizeTaskOperation(action: string, tasks: TaskLike[], options?: TaskOperationOptions): string;
45
+ /**
46
+ * Creates batch operation summaries with success/failure breakdown
47
+ */
48
+ export declare function summarizeBatch(params: BatchOperationParams): string;
49
+ /**
50
+ * Formats a single label into a readable preview line
51
+ */
52
+ export declare function formatLabelPreview(label: Label): string;
53
+ /**
54
+ * Formats a single project-like object into a readable preview line
55
+ */
56
+ export declare function formatProjectPreview(project: ProjectLike): string;
57
+ /**
58
+ * Creates preview lines for task lists
59
+ */
60
+ export declare function previewTasks(tasks: TaskLike[], limit?: number): string;
61
+ type SummarizeListParams = {
62
+ subject: string;
63
+ count: number;
64
+ limit?: number;
65
+ nextCursor?: string;
66
+ filterHints?: string[];
67
+ previewLines?: string;
68
+ zeroReasonHints?: string[];
69
+ nextSteps?: string[];
70
+ };
71
+ /**
72
+ * Creates list summaries with counts, filters, and guidance
73
+ */
74
+ export declare function summarizeList({ subject, count, limit, nextCursor, filterHints, previewLines, zeroReasonHints, nextSteps, }: SummarizeListParams): string;
75
+ /**
76
+ * Formats next steps array into a consistent "Possible suggested next step(s):" section
77
+ * If nextCursor is provided, adds cursor instruction to the steps
78
+ */
79
+ export declare function formatNextSteps(nextSteps: string[], nextCursor?: string): string;
80
+ /**
81
+ * Helper to generate contextual next steps based on task operations
82
+ */
83
+ export declare function generateTaskNextSteps(operation: 'added' | 'updated' | 'listed' | 'completed' | 'organized', tasks: TaskLike[], context?: {
84
+ hasToday?: boolean;
85
+ hasOverdue?: boolean;
86
+ hasHighPriority?: boolean;
87
+ projectName?: string;
88
+ count?: number;
89
+ timeOfDay?: 'morning' | 'afternoon' | 'evening';
90
+ isEmptyResult?: boolean;
91
+ }): string[];
92
+ export {};
93
+ //# sourceMappingURL=response-builders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-builders.d.ts","sourceRoot":"","sources":["../../src/utils/response-builders.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Removes all null fields and empty objects from an object recursively.
3
+ * Empty arrays are preserved as they carry semantic meaning (e.g., "no results found").
4
+ * This ensures that data sent to agents doesn't include unnecessary empty values.
5
+ *
6
+ * @param obj - The object to sanitize
7
+ * @returns A new object with all null fields and empty objects removed
8
+ */
9
+ export declare function removeNullFields<T>(obj: T): T;
10
+ //# sourceMappingURL=sanitize-data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitize-data.d.ts","sourceRoot":"","sources":["../../src/utils/sanitize-data.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAiC7C"}