@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,91 @@
1
+ import { CurrentUser, Label, PersonalProject, Section, Task, WorkspaceProject } from '@doist/todoist-api-typescript';
2
+ import { MappedTask } from '../tool-helpers';
3
+ import { Priority } from './priorities';
4
+ type TaskWithUserFacingPriority = Omit<Task, 'priority'> & {
5
+ priority: Priority;
6
+ };
7
+ /**
8
+ * Creates a mock Task with all required properties and sensible defaults.
9
+ * Pass only the properties you want to override for your specific test.
10
+ */
11
+ export declare function createMockTask({ priority, ...overrides }?: Partial<TaskWithUserFacingPriority>): Task;
12
+ /**
13
+ * Creates a mock Section with all required properties and sensible defaults.
14
+ * Pass only the properties you want to override for your specific test.
15
+ */
16
+ export declare function createMockSection(overrides?: Partial<Section>): Section;
17
+ /**
18
+ * Creates a mock PersonalProject with all required properties and sensible defaults.
19
+ * Pass only the properties you want to override for your specific test.
20
+ */
21
+ export declare function createMockProject(overrides?: Partial<PersonalProject>): PersonalProject;
22
+ /**
23
+ * Creates a mock WorkspaceProject with all required properties and sensible defaults.
24
+ * Pass only the properties you want to override for your specific test.
25
+ */
26
+ export declare function createMockWorkspaceProject(overrides?: Partial<WorkspaceProject>): WorkspaceProject;
27
+ /**
28
+ * Creates a mock Label with all required properties and sensible defaults.
29
+ * Pass only the properties you want to override for your specific test.
30
+ */
31
+ export declare function createMockLabel(overrides?: Partial<Label>): Label;
32
+ /**
33
+ * Creates a mock API response object with results and nextCursor.
34
+ */
35
+ export declare function createMockApiResponse<T>(results: T[], nextCursor?: string | null): {
36
+ results: T[];
37
+ nextCursor: string | null;
38
+ };
39
+ /**
40
+ * Creates a simplified mapped task (matches mapTask output) for filter-based query tests.
41
+ */
42
+ export declare function createMappedTask(overrides?: Partial<MappedTask>): MappedTask;
43
+ /**
44
+ * Common error messages used across tests.
45
+ */
46
+ export declare const TEST_ERRORS: {
47
+ readonly API_RATE_LIMIT: "API Error: Rate limit exceeded";
48
+ readonly API_UNAUTHORIZED: "API Error: Unauthorized";
49
+ readonly INVALID_CURSOR: "Invalid cursor format";
50
+ readonly INVALID_FILTER: "Invalid filter query";
51
+ };
52
+ /**
53
+ * Creates multiple test cases for parameterized testing.
54
+ */
55
+ export declare function createTestCases<T, E = unknown>(cases: Array<{
56
+ name: string;
57
+ input: T;
58
+ expected?: E;
59
+ }>): {
60
+ name: string;
61
+ input: T;
62
+ expected?: E;
63
+ }[];
64
+ /**
65
+ * Common mock IDs used across tests for consistency.
66
+ */
67
+ export declare const TEST_IDS: {
68
+ readonly TASK_1: "8485093748";
69
+ readonly TASK_2: "8485093749";
70
+ readonly TASK_3: "8485093750";
71
+ readonly PROJECT_INBOX: "inbox-project-id";
72
+ readonly PROJECT_WORK: "work-project-id";
73
+ readonly PROJECT_TEST: "6cfCcrrCFg2xP94Q";
74
+ readonly PROJECT_WORKSPACE: "workspace-project-id";
75
+ readonly SECTION_1: "section-123";
76
+ readonly SECTION_2: "section-456";
77
+ readonly USER_ID: "713437";
78
+ readonly WORKSPACE_1: "workspace-123";
79
+ };
80
+ /**
81
+ * Fixed date for consistent test snapshots.
82
+ * Use this instead of new Date() in tests to avoid snapshot drift.
83
+ */
84
+ export declare const TODAY: "2025-08-17";
85
+ /**
86
+ * Creates a mock CurrentUser with all required properties and sensible defaults.
87
+ * Pass only the properties you want to override for your specific test.
88
+ */
89
+ export declare function createMockUser(overrides?: Partial<CurrentUser>): CurrentUser;
90
+ export {};
91
+ //# sourceMappingURL=test-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/test-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,WAAW,EACX,KAAK,EACL,eAAe,EACf,OAAO,EACP,IAAI,EACJ,gBAAgB,EACnB,MAAM,+BAA+B,CAAA;AACtC,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,CAgB3E;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,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,CAoBhF;AAED;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;CAKd,CAAA;AAEV;;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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Centralized tool names module
3
+ *
4
+ * This module provides a single source of truth for all tool names used throughout the codebase.
5
+ * Each tool should import its own name from this module to avoid hardcoded strings.
6
+ * This prevents outdated references when tool names change.
7
+ */
8
+ export declare const ToolNames: {
9
+ readonly ADD_TASKS: "add-tasks";
10
+ readonly COMPLETE_TASKS: "complete-tasks";
11
+ readonly UNCOMPLETE_TASKS: "uncomplete-tasks";
12
+ readonly UPDATE_TASKS: "update-tasks";
13
+ readonly FIND_TASKS: "find-tasks";
14
+ readonly FIND_TASKS_BY_DATE: "find-tasks-by-date";
15
+ readonly FIND_COMPLETED_TASKS: "find-completed-tasks";
16
+ readonly RESCHEDULE_TASKS: "reschedule-tasks";
17
+ readonly ADD_PROJECTS: "add-projects";
18
+ readonly UPDATE_PROJECTS: "update-projects";
19
+ readonly FIND_PROJECTS: "find-projects";
20
+ readonly PROJECT_MANAGEMENT: "project-management";
21
+ readonly PROJECT_MOVE: "project-move";
22
+ readonly ADD_SECTIONS: "add-sections";
23
+ readonly UPDATE_SECTIONS: "update-sections";
24
+ readonly FIND_SECTIONS: "find-sections";
25
+ readonly ADD_COMMENTS: "add-comments";
26
+ readonly UPDATE_COMMENTS: "update-comments";
27
+ readonly FIND_COMMENTS: "find-comments";
28
+ readonly ADD_REMINDERS: "add-reminders";
29
+ readonly UPDATE_REMINDERS: "update-reminders";
30
+ readonly FIND_REMINDERS: "find-reminders";
31
+ readonly VIEW_ATTACHMENT: "view-attachment";
32
+ readonly FIND_PROJECT_COLLABORATORS: "find-project-collaborators";
33
+ readonly MANAGE_ASSIGNMENTS: "manage-assignments";
34
+ readonly FIND_ACTIVITY: "find-activity";
35
+ readonly GET_PRODUCTIVITY_STATS: "get-productivity-stats";
36
+ readonly GET_PROJECT_HEALTH: "get-project-health";
37
+ readonly GET_PROJECT_ACTIVITY_STATS: "get-project-activity-stats";
38
+ readonly ANALYZE_PROJECT_HEALTH: "analyze-project-health";
39
+ readonly GET_WORKSPACE_INSIGHTS: "get-workspace-insights";
40
+ readonly GET_OVERVIEW: "get-overview";
41
+ readonly DELETE_OBJECT: "delete-object";
42
+ readonly FETCH_OBJECT: "fetch-object";
43
+ readonly REORDER_OBJECTS: "reorder-objects";
44
+ readonly USER_INFO: "user-info";
45
+ readonly ADD_LABELS: "add-labels";
46
+ readonly FIND_LABELS: "find-labels";
47
+ readonly FIND_FILTERS: "find-filters";
48
+ readonly ADD_FILTERS: "add-filters";
49
+ readonly UPDATE_FILTERS: "update-filters";
50
+ readonly LIST_WORKSPACES: "list-workspaces";
51
+ readonly SEARCH: "search";
52
+ readonly FETCH: "fetch";
53
+ };
54
+ export type ToolName = (typeof ToolNames)[keyof typeof ToolNames];
55
+ //# sourceMappingURL=tool-names.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-names.d.ts","sourceRoot":"","sources":["../../src/utils/tool-names.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwEZ,CAAA;AAGV,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAA"}
@@ -0,0 +1,39 @@
1
+ import { TodoistApi } from '@doist/todoist-api-typescript';
2
+ export type ResolvedUser = {
3
+ userId: string;
4
+ displayName: string;
5
+ email: string;
6
+ };
7
+ export type ProjectCollaborator = {
8
+ id: string;
9
+ name: string;
10
+ email: string;
11
+ };
12
+ /** Keyword that resolves to the current authenticated user. */
13
+ export declare const SELF_USER_KEYWORD: "me";
14
+ export declare class UserResolver {
15
+ /**
16
+ * Resolve a user name or ID to a user ID by looking up collaborators across all shared projects.
17
+ * Supports exact name matches, partial matches, email matches, and the "me" keyword.
18
+ */
19
+ resolveUser(client: TodoistApi, nameOrId: string): Promise<ResolvedUser | null>;
20
+ /**
21
+ * Validate that a user is a collaborator on a specific project
22
+ */
23
+ validateProjectCollaborator(client: TodoistApi, projectId: string, userId: string): Promise<boolean>;
24
+ /**
25
+ * Get collaborators for a specific project
26
+ */
27
+ getProjectCollaborators(client: TodoistApi, projectId: string): Promise<ProjectCollaborator[]>;
28
+ /**
29
+ * Get all collaborators from all shared projects
30
+ */
31
+ private getAllCollaborators;
32
+ /**
33
+ * Clear all caches - useful for testing
34
+ */
35
+ clearCache(): void;
36
+ }
37
+ export declare const userResolver: UserResolver;
38
+ export declare function resolveUserNameToId(client: TodoistApi, nameOrId: string): Promise<ResolvedUser | null>;
39
+ //# sourceMappingURL=user-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-resolver.d.ts","sourceRoot":"","sources":["../../src/utils/user-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAE/D,MAAM,MAAM,YAAY,GAAG;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CAChB,CAAA;AAsBD,+DAA+D;AAC/D,eAAO,MAAM,iBAAiB,EAAG,IAAa,CAAA;AAE9C,qBAAa,YAAY;IACrB;;;OAGG;IACG,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IA+HrF;;OAEG;IACG,2BAA2B,CAC7B,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC;IASnB;;OAEG;IACG,uBAAuB,CACzB,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,mBAAmB,EAAE,CAAC;IA2BjC;;OAEG;YACW,mBAAmB;IAqDjC;;OAEG;IACH,UAAU,IAAI,IAAI;CAIrB;AAGD,eAAO,MAAM,YAAY,cAAqB,CAAA;AAG9C,wBAAsB,mBAAmB,CACrC,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAE9B"}
@@ -0,0 +1,31 @@
1
+ import { TodoistApi } from '@doist/todoist-api-typescript';
2
+ export type ResolvedWorkspace = {
3
+ workspaceId: string;
4
+ workspaceName: string;
5
+ };
6
+ /**
7
+ * Check if a string looks like a workspace ID (purely numeric).
8
+ */
9
+ export declare function looksLikeWorkspaceId(ref: string): boolean;
10
+ export declare class WorkspaceResolver {
11
+ private cache;
12
+ private getWorkspaces;
13
+ /**
14
+ * Resolve a workspace name or ID to a workspace ID and name.
15
+ *
16
+ * Resolution order:
17
+ * 1. Exact ID match (always tried first for any input)
18
+ * 2. If input looks like an ID (numeric) but wasn't found, pass through as-is (API validates)
19
+ * 3. Exact case-insensitive name match
20
+ * 4. Unique partial case-insensitive name match
21
+ * 5. Multiple partial matches → throw ambiguous error
22
+ * 6. No match → throw not-found error
23
+ */
24
+ resolveWorkspace(client: TodoistApi, nameOrId: string): Promise<ResolvedWorkspace>;
25
+ /**
26
+ * Clear the workspace cache — useful for testing.
27
+ */
28
+ clearCache(): void;
29
+ }
30
+ export declare const workspaceResolver: WorkspaceResolver;
31
+ //# sourceMappingURL=workspace-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-resolver.d.ts","sourceRoot":"","sources":["../../src/utils/workspace-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,+BAA+B,CAAA;AAE1E,MAAM,MAAM,iBAAiB,GAAG;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;CACxB,CAAA;AAID;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,KAAK,CAA8D;YAE7D,aAAa;IAU3B;;;;;;;;;;OAUG;IACG,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAsDxF;;OAEG;IACH,UAAU,IAAI,IAAI;CAGrB;AAGD,eAAO,MAAM,iBAAiB,mBAA0B,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@doist/todoist-ai",
3
- "version": "8.7.0",
3
+ "version": "8.7.2",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -63,7 +63,7 @@
63
63
  "prepare": "husky"
64
64
  },
65
65
  "dependencies": {
66
- "@doist/todoist-api-typescript": "7.8.0",
66
+ "@doist/todoist-api-typescript": "7.9.1",
67
67
  "@modelcontextprotocol/ext-apps": "1.2.2",
68
68
  "date-fns": "4.1.0",
69
69
  "dompurify": "3.3.3",