@doist/todoist-ai 0.1.3 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. package/README.md +27 -0
  2. package/dist/{esm/index.d.ts → index.d.ts} +34 -34
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +74 -0
  5. package/dist/main.d.ts.map +1 -0
  6. package/dist/{cjs/main.js → main.js} +7 -7
  7. package/dist/{types/mcp-helpers.d.ts → mcp-helpers.d.ts} +5 -4
  8. package/dist/mcp-helpers.d.ts.map +1 -0
  9. package/dist/{cjs/mcp-helpers.js → mcp-helpers.js} +5 -7
  10. package/dist/mcp-server.d.ts +13 -0
  11. package/dist/mcp-server.d.ts.map +1 -0
  12. package/dist/mcp-server.js +69 -0
  13. package/dist/{types/todoist-tool.d.ts → todoist-tool.d.ts} +3 -2
  14. package/dist/todoist-tool.d.ts.map +1 -0
  15. package/dist/{types/tools → tools}/account-overview.d.ts +2 -1
  16. package/dist/tools/account-overview.d.ts.map +1 -0
  17. package/dist/{cjs/tools → tools}/account-overview.js +12 -11
  18. package/dist/{esm/tools → tools}/project-overview.d.ts +2 -2
  19. package/dist/tools/project-overview.d.ts.map +1 -0
  20. package/dist/{cjs/tools → tools}/project-overview.js +9 -12
  21. package/dist/{esm/tools → tools}/projects-add-one.d.ts +1 -1
  22. package/dist/tools/projects-add-one.d.ts.map +1 -0
  23. package/dist/{cjs/tools → tools}/projects-add-one.js +5 -5
  24. package/dist/{types/tools → tools}/projects-delete-one.d.ts +2 -1
  25. package/dist/tools/projects-delete-one.d.ts.map +1 -0
  26. package/dist/{cjs/tools → tools}/projects-delete-one.js +3 -3
  27. package/dist/{esm/tools → tools}/projects-list.d.ts +2 -2
  28. package/dist/tools/projects-list.d.ts.map +1 -0
  29. package/dist/{cjs/tools → tools}/projects-list.js +4 -4
  30. package/dist/{esm/tools → tools}/projects-search.d.ts +1 -1
  31. package/dist/tools/projects-search.d.ts.map +1 -0
  32. package/dist/{cjs/tools → tools}/projects-search.js +7 -7
  33. package/dist/{types/tools → tools}/projects-update-one.d.ts +4 -3
  34. package/dist/tools/projects-update-one.d.ts.map +1 -0
  35. package/dist/{cjs/tools → tools}/projects-update-one.js +3 -3
  36. package/dist/{types/tools → tools}/sections-add-one.d.ts +2 -1
  37. package/dist/tools/sections-add-one.d.ts.map +1 -0
  38. package/dist/{cjs/tools → tools}/sections-add-one.js +4 -7
  39. package/dist/{esm/tools → tools}/sections-delete-one.d.ts +1 -1
  40. package/dist/tools/sections-delete-one.d.ts.map +1 -0
  41. package/dist/{cjs/tools → tools}/sections-delete-one.js +3 -3
  42. package/dist/{types/tools → tools}/sections-search.d.ts +2 -1
  43. package/dist/tools/sections-search.d.ts.map +1 -0
  44. package/dist/{cjs/tools → tools}/sections-search.js +4 -7
  45. package/dist/{esm/tools → tools}/sections-update-one.d.ts +2 -2
  46. package/dist/tools/sections-update-one.d.ts.map +1 -0
  47. package/dist/{cjs/tools → tools}/sections-update-one.js +3 -3
  48. package/dist/{types/tools → tools}/shared.d.ts +5 -1
  49. package/dist/tools/shared.d.ts.map +1 -0
  50. package/dist/{cjs/tools → tools}/shared.js +11 -3
  51. package/dist/tools/shared.test.d.ts +2 -0
  52. package/dist/tools/shared.test.d.ts.map +1 -0
  53. package/dist/tools/shared.test.js +135 -0
  54. package/dist/{types/tools → tools}/subtasks-list-for-parent-task.d.ts +3 -2
  55. package/dist/tools/subtasks-list-for-parent-task.d.ts.map +1 -0
  56. package/dist/{cjs/tools → tools}/subtasks-list-for-parent-task.js +7 -10
  57. package/dist/{types/tools → tools}/tasks-add-multiple.d.ts +3 -2
  58. package/dist/tools/tasks-add-multiple.d.ts.map +1 -0
  59. package/dist/tools/tasks-add-multiple.js +32 -0
  60. package/dist/{types/tools → tools}/tasks-complete-multiple.d.ts +2 -1
  61. package/dist/tools/tasks-complete-multiple.d.ts.map +1 -0
  62. package/dist/{cjs/tools → tools}/tasks-complete-multiple.js +3 -6
  63. package/dist/{types/tools → tools}/tasks-delete-one.d.ts +2 -1
  64. package/dist/tools/tasks-delete-one.d.ts.map +1 -0
  65. package/dist/{cjs/tools → tools}/tasks-delete-one.js +3 -3
  66. package/dist/{types/tools/tasks-by-date-range.d.ts → tools/tasks-list-by-date.d.ts} +2 -1
  67. package/dist/tools/tasks-list-by-date.d.ts.map +1 -0
  68. package/dist/{cjs/tools/tasks-by-date-range.js → tools/tasks-list-by-date.js} +10 -10
  69. package/dist/{types/tools/tasks-by-project.d.ts → tools/tasks-list-for-project.d.ts} +2 -1
  70. package/dist/tools/tasks-list-for-project.d.ts.map +1 -0
  71. package/dist/{cjs/tools/tasks-by-project.js → tools/tasks-list-for-project.js} +7 -10
  72. package/dist/{esm/tools → tools}/tasks-list-for-section.d.ts +1 -1
  73. package/dist/tools/tasks-list-for-section.d.ts.map +1 -0
  74. package/dist/{cjs/tools → tools}/tasks-list-for-section.js +7 -10
  75. package/dist/{types/tools → tools}/tasks-list-overdue.d.ts +2 -1
  76. package/dist/tools/tasks-list-overdue.d.ts.map +1 -0
  77. package/dist/{cjs/tools → tools}/tasks-list-overdue.js +7 -7
  78. package/dist/{esm/tools → tools}/tasks-organize-multiple.d.ts +4 -4
  79. package/dist/tools/tasks-organize-multiple.d.ts.map +1 -0
  80. package/dist/tools/tasks-organize-multiple.js +28 -0
  81. package/dist/{types/tools → tools}/tasks-search.d.ts +2 -1
  82. package/dist/tools/tasks-search.d.ts.map +1 -0
  83. package/dist/{cjs/tools → tools}/tasks-search.js +6 -6
  84. package/dist/{esm/tools → tools}/tasks-update-one.d.ts +3 -3
  85. package/dist/tools/tasks-update-one.d.ts.map +1 -0
  86. package/dist/tools/tasks-update-one.js +33 -0
  87. package/package.json +54 -76
  88. package/dist/cjs/index.js +0 -74
  89. package/dist/cjs/mcp-server.js +0 -68
  90. package/dist/cjs/tools/tasks-add-multiple.js +0 -50
  91. package/dist/cjs/tools/tasks-organize-multiple.js +0 -43
  92. package/dist/cjs/tools/tasks-update-one.js +0 -45
  93. package/dist/esm/index.d.ts.map +0 -1
  94. package/dist/esm/index.js +0 -49
  95. package/dist/esm/main.d.ts.map +0 -1
  96. package/dist/esm/main.js +0 -23
  97. package/dist/esm/mcp-helpers.d.ts +0 -13
  98. package/dist/esm/mcp-helpers.d.ts.map +0 -1
  99. package/dist/esm/mcp-helpers.js +0 -52
  100. package/dist/esm/mcp-server.d.ts +0 -11
  101. package/dist/esm/mcp-server.d.ts.map +0 -1
  102. package/dist/esm/mcp-server.js +0 -66
  103. package/dist/esm/todoist-tool.d.ts +0 -35
  104. package/dist/esm/todoist-tool.d.ts.map +0 -1
  105. package/dist/esm/todoist-tool.js +0 -1
  106. package/dist/esm/tools/account-overview.d.ts +0 -9
  107. package/dist/esm/tools/account-overview.d.ts.map +0 -1
  108. package/dist/esm/tools/account-overview.js +0 -94
  109. package/dist/esm/tools/project-overview.d.ts.map +0 -1
  110. package/dist/esm/tools/project-overview.js +0 -107
  111. package/dist/esm/tools/projects-add-one.d.ts.map +0 -1
  112. package/dist/esm/tools/projects-add-one.js +0 -15
  113. package/dist/esm/tools/projects-delete-one.d.ts +0 -15
  114. package/dist/esm/tools/projects-delete-one.d.ts.map +0 -1
  115. package/dist/esm/tools/projects-delete-one.js +0 -14
  116. package/dist/esm/tools/projects-list.d.ts.map +0 -1
  117. package/dist/esm/tools/projects-list.js +0 -30
  118. package/dist/esm/tools/projects-search.d.ts.map +0 -1
  119. package/dist/esm/tools/projects-search.js +0 -39
  120. package/dist/esm/tools/projects-update-one.d.ts +0 -15
  121. package/dist/esm/tools/projects-update-one.d.ts.map +0 -1
  122. package/dist/esm/tools/projects-update-one.js +0 -16
  123. package/dist/esm/tools/sections-add-one.d.ts +0 -15
  124. package/dist/esm/tools/sections-add-one.d.ts.map +0 -1
  125. package/dist/esm/tools/sections-add-one.js +0 -21
  126. package/dist/esm/tools/sections-delete-one.d.ts.map +0 -1
  127. package/dist/esm/tools/sections-delete-one.js +0 -14
  128. package/dist/esm/tools/sections-search.d.ts +0 -18
  129. package/dist/esm/tools/sections-search.d.ts.map +0 -1
  130. package/dist/esm/tools/sections-search.js +0 -30
  131. package/dist/esm/tools/sections-update-one.d.ts.map +0 -1
  132. package/dist/esm/tools/sections-update-one.js +0 -16
  133. package/dist/esm/tools/shared.d.ts +0 -55
  134. package/dist/esm/tools/shared.d.ts.map +0 -1
  135. package/dist/esm/tools/shared.js +0 -71
  136. package/dist/esm/tools/subtasks-list-for-parent-task.d.ts +0 -31
  137. package/dist/esm/tools/subtasks-list-for-parent-task.d.ts.map +0 -1
  138. package/dist/esm/tools/subtasks-list-for-parent-task.js +0 -37
  139. package/dist/esm/tools/tasks-add-multiple.d.ts +0 -50
  140. package/dist/esm/tools/tasks-add-multiple.d.ts.map +0 -1
  141. package/dist/esm/tools/tasks-add-multiple.js +0 -47
  142. package/dist/esm/tools/tasks-by-date-range.d.ts +0 -33
  143. package/dist/esm/tools/tasks-by-date-range.d.ts.map +0 -1
  144. package/dist/esm/tools/tasks-by-date-range.js +0 -47
  145. package/dist/esm/tools/tasks-by-project.d.ts +0 -31
  146. package/dist/esm/tools/tasks-by-project.d.ts.map +0 -1
  147. package/dist/esm/tools/tasks-by-project.js +0 -37
  148. package/dist/esm/tools/tasks-complete-multiple.d.ts +0 -16
  149. package/dist/esm/tools/tasks-complete-multiple.d.ts.map +0 -1
  150. package/dist/esm/tools/tasks-complete-multiple.js +0 -26
  151. package/dist/esm/tools/tasks-delete-one.d.ts +0 -15
  152. package/dist/esm/tools/tasks-delete-one.d.ts.map +0 -1
  153. package/dist/esm/tools/tasks-delete-one.js +0 -14
  154. package/dist/esm/tools/tasks-list-for-section.d.ts.map +0 -1
  155. package/dist/esm/tools/tasks-list-for-section.js +0 -37
  156. package/dist/esm/tools/tasks-list-overdue.d.ts +0 -29
  157. package/dist/esm/tools/tasks-list-overdue.d.ts.map +0 -1
  158. package/dist/esm/tools/tasks-list-overdue.js +0 -29
  159. package/dist/esm/tools/tasks-organize-multiple.d.ts.map +0 -1
  160. package/dist/esm/tools/tasks-organize-multiple.js +0 -40
  161. package/dist/esm/tools/tasks-search.d.ts +0 -31
  162. package/dist/esm/tools/tasks-search.d.ts.map +0 -1
  163. package/dist/esm/tools/tasks-search.js +0 -30
  164. package/dist/esm/tools/tasks-update-one.d.ts.map +0 -1
  165. package/dist/esm/tools/tasks-update-one.js +0 -42
  166. package/dist/types/index.d.ts +0 -476
  167. package/dist/types/main.d.ts +0 -1
  168. package/dist/types/mcp-server.d.ts +0 -10
  169. package/dist/types/tools/project-overview.d.ts +0 -13
  170. package/dist/types/tools/projects-add-one.d.ts +0 -21
  171. package/dist/types/tools/projects-list.d.ts +0 -17
  172. package/dist/types/tools/projects-search.d.ts +0 -28
  173. package/dist/types/tools/sections-delete-one.d.ts +0 -14
  174. package/dist/types/tools/sections-update-one.d.ts +0 -14
  175. package/dist/types/tools/tasks-list-for-section.d.ts +0 -30
  176. package/dist/types/tools/tasks-organize-multiple.d.ts +0 -36
  177. package/dist/types/tools/tasks-update-one.d.ts +0 -26
  178. /package/dist/{esm/main.d.ts → main.d.ts} +0 -0
  179. /package/dist/{cjs/todoist-tool.js → todoist-tool.js} +0 -0
@@ -2,17 +2,17 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.projectsAddOne = void 0;
4
4
  const zod_1 = require("zod");
5
- const shared_js_1 = require("./shared.js");
5
+ const shared_1 = require("./shared");
6
6
  const ArgsSchema = {
7
- name: zod_1.z.string().min(1).describe("The name of the project to add."),
7
+ name: zod_1.z.string().min(1).describe('The name of the project to add.'),
8
8
  };
9
9
  const projectsAddOne = {
10
- name: "projects-add-one",
11
- description: "Add a new project.",
10
+ name: 'projects-add-one',
11
+ description: 'Add a new project.',
12
12
  parameters: ArgsSchema,
13
13
  async execute(args, client) {
14
14
  const project = await client.addProject({ name: args.name });
15
- return (0, shared_js_1.mapProject)(project);
15
+ return (0, shared_1.mapProject)(project);
16
16
  },
17
17
  };
18
18
  exports.projectsAddOne = projectsAddOne;
@@ -1,4 +1,4 @@
1
- import { z } from "zod";
1
+ import { z } from 'zod';
2
2
  declare const projectsDeleteOne: {
3
3
  name: string;
4
4
  description: string;
@@ -12,3 +12,4 @@ declare const projectsDeleteOne: {
12
12
  }>;
13
13
  };
14
14
  export { projectsDeleteOne };
15
+ //# sourceMappingURL=projects-delete-one.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects-delete-one.d.ts","sourceRoot":"","sources":["../../src/tools/projects-delete-one.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAOvB,QAAA,MAAM,iBAAiB;;;;;;;;;;;CAQmB,CAAA;AAE1C,OAAO,EAAE,iBAAiB,EAAE,CAAA"}
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.projectsDeleteOne = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const ArgsSchema = {
6
- id: zod_1.z.string().min(1).describe("The ID of the project to delete."),
6
+ id: zod_1.z.string().min(1).describe('The ID of the project to delete.'),
7
7
  };
8
8
  const projectsDeleteOne = {
9
- name: "projects-delete-one",
10
- description: "Delete a project by its ID.",
9
+ name: 'projects-delete-one',
10
+ description: 'Delete a project by its ID.',
11
11
  parameters: ArgsSchema,
12
12
  async execute(args, client) {
13
13
  await client.deleteProject(args.id);
@@ -1,4 +1,4 @@
1
- import { z } from "zod";
1
+ import { z } from 'zod';
2
2
  declare const projectsList: {
3
3
  name: string;
4
4
  description: string;
@@ -10,7 +10,7 @@ declare const projectsList: {
10
10
  limit: number;
11
11
  cursor?: string | undefined;
12
12
  }, client: import("@doist/todoist-api-typescript").TodoistApi): Promise<{
13
- projects: import("@doist/todoist-api-typescript").Project[];
13
+ projects: (import("@doist/todoist-api-typescript").PersonalProject | import("@doist/todoist-api-typescript").WorkspaceProject)[];
14
14
  nextCursor: string | null;
15
15
  }>;
16
16
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects-list.d.ts","sourceRoot":"","sources":["../../src/tools/projects-list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAmBvB,QAAA,MAAM,YAAY;;;;;;;;;;;;;;CAcwB,CAAA;AAE1C,OAAO,EAAE,YAAY,EAAE,CAAA"}
@@ -9,15 +9,15 @@ const ArgsSchema = {
9
9
  .min(1)
10
10
  .max(100)
11
11
  .default(50)
12
- .describe("The maximum number of projects to return."),
12
+ .describe('The maximum number of projects to return.'),
13
13
  cursor: zod_1.z
14
14
  .string()
15
15
  .optional()
16
- .describe("The cursor to get the next page of projects (cursor is obtained from the previous call to this tool, with the same parameters)."),
16
+ .describe('The cursor to get the next page of projects (cursor is obtained from the previous call to this tool, with the same parameters).'),
17
17
  };
18
18
  const projectsList = {
19
- name: "projects-list",
20
- description: "List all projects for the user.",
19
+ name: 'projects-list',
20
+ description: 'List all projects for the user.',
21
21
  parameters: ArgsSchema,
22
22
  async execute(args, client) {
23
23
  const { results, nextCursor } = await client.getProjects({
@@ -1,4 +1,4 @@
1
- import { z } from "zod";
1
+ import { z } from 'zod';
2
2
  declare const projectsSearch: {
3
3
  name: string;
4
4
  description: string;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects-search.d.ts","sourceRoot":"","sources":["../../src/tools/projects-search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AA0BvB,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;CAkBsB,CAAA;AAE1C,OAAO,EAAE,cAAc,EAAE,CAAA"}
@@ -2,27 +2,27 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.projectsSearch = void 0;
4
4
  const zod_1 = require("zod");
5
- const shared_js_1 = require("./shared.js");
5
+ const shared_1 = require("./shared");
6
6
  const ArgsSchema = {
7
7
  search: zod_1.z
8
8
  .string()
9
9
  .optional()
10
- .describe("Search for a project by name (partial and case insensitive match). If omitted, all projects are returned."),
10
+ .describe('Search for a project by name (partial and case insensitive match). If omitted, all projects are returned.'),
11
11
  limit: zod_1.z
12
12
  .number()
13
13
  .int()
14
14
  .min(1)
15
15
  .max(100)
16
16
  .default(50)
17
- .describe("The maximum number of projects to return."),
17
+ .describe('The maximum number of projects to return.'),
18
18
  cursor: zod_1.z
19
19
  .string()
20
20
  .optional()
21
- .describe("The cursor to get the next page of projects (cursor is obtained from the previous call to this tool, with the same parameters)."),
21
+ .describe('The cursor to get the next page of projects (cursor is obtained from the previous call to this tool, with the same parameters).'),
22
22
  };
23
23
  const projectsSearch = {
24
- name: "projects-search",
25
- description: "Search for projects by name or other criteria.",
24
+ name: 'projects-search',
25
+ description: 'Search for projects by name or other criteria.',
26
26
  parameters: ArgsSchema,
27
27
  async execute(args, client) {
28
28
  const { results, nextCursor } = await client.getProjects({
@@ -34,7 +34,7 @@ const projectsSearch = {
34
34
  ? results.filter((project) => project.name.toLowerCase().includes(searchLower))
35
35
  : results;
36
36
  return {
37
- projects: filtered.map(shared_js_1.mapProject),
37
+ projects: filtered.map(shared_1.mapProject),
38
38
  nextCursor,
39
39
  };
40
40
  },
@@ -1,4 +1,4 @@
1
- import { z } from "zod";
1
+ import { z } from 'zod';
2
2
  declare const projectsUpdateOne: {
3
3
  name: string;
4
4
  description: string;
@@ -7,8 +7,9 @@ declare const projectsUpdateOne: {
7
7
  name: z.ZodString;
8
8
  };
9
9
  execute(args: {
10
- name: string;
11
10
  id: string;
12
- }, client: import("@doist/todoist-api-typescript").TodoistApi): Promise<import("@doist/todoist-api-typescript").Project>;
11
+ name: string;
12
+ }, client: import("@doist/todoist-api-typescript").TodoistApi): Promise<import("@doist/todoist-api-typescript").PersonalProject | import("@doist/todoist-api-typescript").WorkspaceProject>;
13
13
  };
14
14
  export { projectsUpdateOne };
15
+ //# sourceMappingURL=projects-update-one.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects-update-one.d.ts","sourceRoot":"","sources":["../../src/tools/projects-update-one.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAQvB,QAAA,MAAM,iBAAiB;;;;;;;;;;;CASmB,CAAA;AAE1C,OAAO,EAAE,iBAAiB,EAAE,CAAA"}
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.projectsUpdateOne = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const ArgsSchema = {
6
- id: zod_1.z.string().min(1).describe("The ID of the project to update."),
7
- name: zod_1.z.string().min(1).describe("The new name for the project."),
6
+ id: zod_1.z.string().min(1).describe('The ID of the project to update.'),
7
+ name: zod_1.z.string().min(1).describe('The new name for the project.'),
8
8
  };
9
9
  const projectsUpdateOne = {
10
- name: "projects-update-one",
10
+ name: 'projects-update-one',
11
11
  description: "Update a project's name by its ID.",
12
12
  parameters: ArgsSchema,
13
13
  async execute(args, client) {
@@ -1,4 +1,4 @@
1
- import { z } from "zod";
1
+ import { z } from 'zod';
2
2
  declare const sectionsAddOne: {
3
3
  name: string;
4
4
  description: string;
@@ -12,3 +12,4 @@ declare const sectionsAddOne: {
12
12
  }, client: import("@doist/todoist-api-typescript").TodoistApi): Promise<import("@doist/todoist-api-typescript").Section>;
13
13
  };
14
14
  export { sectionsAddOne };
15
+ //# sourceMappingURL=sections-add-one.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sections-add-one.d.ts","sourceRoot":"","sources":["../../src/tools/sections-add-one.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAQvB,QAAA,MAAM,cAAc;;;;;;;;;;;CAWsB,CAAA;AAE1C,OAAO,EAAE,cAAc,EAAE,CAAA"}
@@ -3,15 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.sectionsAddOne = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const ArgsSchema = {
6
- name: zod_1.z.string().min(1).describe("The name of the section to add."),
7
- projectId: zod_1.z
8
- .string()
9
- .min(1)
10
- .describe("The ID of the project to add the section to."),
6
+ name: zod_1.z.string().min(1).describe('The name of the section to add.'),
7
+ projectId: zod_1.z.string().min(1).describe('The ID of the project to add the section to.'),
11
8
  };
12
9
  const sectionsAddOne = {
13
- name: "sections-add-one",
14
- description: "Add a new section to a project.",
10
+ name: 'sections-add-one',
11
+ description: 'Add a new section to a project.',
15
12
  parameters: ArgsSchema,
16
13
  async execute(args, client) {
17
14
  const section = await client.addSection({
@@ -1,4 +1,4 @@
1
- import { z } from "zod";
1
+ import { z } from 'zod';
2
2
  declare const sectionsDeleteOne: {
3
3
  name: string;
4
4
  description: string;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sections-delete-one.d.ts","sourceRoot":"","sources":["../../src/tools/sections-delete-one.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAOvB,QAAA,MAAM,iBAAiB;;;;;;;;;;;CAQmB,CAAA;AAE1C,OAAO,EAAE,iBAAiB,EAAE,CAAA"}
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.sectionsDeleteOne = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const ArgsSchema = {
6
- id: zod_1.z.string().min(1).describe("The ID of the section to delete."),
6
+ id: zod_1.z.string().min(1).describe('The ID of the section to delete.'),
7
7
  };
8
8
  const sectionsDeleteOne = {
9
- name: "sections-delete-one",
10
- description: "Delete a section by its ID.",
9
+ name: 'sections-delete-one',
10
+ description: 'Delete a section by its ID.',
11
11
  parameters: ArgsSchema,
12
12
  async execute(args, client) {
13
13
  await client.deleteSection(args.id);
@@ -1,4 +1,4 @@
1
- import { z } from "zod";
1
+ import { z } from 'zod';
2
2
  declare const sectionsSearch: {
3
3
  name: string;
4
4
  description: string;
@@ -15,3 +15,4 @@ declare const sectionsSearch: {
15
15
  }[]>;
16
16
  };
17
17
  export { sectionsSearch };
18
+ //# sourceMappingURL=sections-search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sections-search.d.ts","sourceRoot":"","sources":["../../src/tools/sections-search.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAavB,QAAA,MAAM,cAAc;;;;;;;;;;;;;;CAiBsB,CAAA;AAE1C,OAAO,EAAE,cAAc,EAAE,CAAA"}
@@ -3,18 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.sectionsSearch = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const ArgsSchema = {
6
- projectId: zod_1.z
7
- .string()
8
- .min(1)
9
- .describe("The ID of the project to search sections in."),
6
+ projectId: zod_1.z.string().min(1).describe('The ID of the project to search sections in.'),
10
7
  search: zod_1.z
11
8
  .string()
12
9
  .optional()
13
- .describe("Search for a section by name (partial and case insensitive match). If omitted, all sections in the project are returned."),
10
+ .describe('Search for a section by name (partial and case insensitive match). If omitted, all sections in the project are returned.'),
14
11
  };
15
12
  const sectionsSearch = {
16
- name: "sections-search",
17
- description: "Search for sections by name or other criteria in a project.",
13
+ name: 'sections-search',
14
+ description: 'Search for sections by name or other criteria in a project.',
18
15
  parameters: ArgsSchema,
19
16
  async execute(args, client) {
20
17
  const { results } = await client.getSections({
@@ -1,4 +1,4 @@
1
- import { z } from "zod";
1
+ import { z } from 'zod';
2
2
  declare const sectionsUpdateOne: {
3
3
  name: string;
4
4
  description: string;
@@ -7,8 +7,8 @@ declare const sectionsUpdateOne: {
7
7
  name: z.ZodString;
8
8
  };
9
9
  execute(args: {
10
- name: string;
11
10
  id: string;
11
+ name: string;
12
12
  }, client: import("@doist/todoist-api-typescript").TodoistApi): Promise<import("@doist/todoist-api-typescript").Section>;
13
13
  };
14
14
  export { sectionsUpdateOne };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sections-update-one.d.ts","sourceRoot":"","sources":["../../src/tools/sections-update-one.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAQvB,QAAA,MAAM,iBAAiB;;;;;;;;;;;CASmB,CAAA;AAE1C,OAAO,EAAE,iBAAiB,EAAE,CAAA"}
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.sectionsUpdateOne = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const ArgsSchema = {
6
- id: zod_1.z.string().min(1).describe("The ID of the section to update."),
7
- name: zod_1.z.string().min(1).describe("The new name for the section."),
6
+ id: zod_1.z.string().min(1).describe('The ID of the section to update.'),
7
+ name: zod_1.z.string().min(1).describe('The new name for the section.'),
8
8
  };
9
9
  const sectionsUpdateOne = {
10
- name: "sections-update-one",
10
+ name: 'sections-update-one',
11
11
  description: "Update a section's name by its ID.",
12
12
  parameters: ArgsSchema,
13
13
  async execute(args, client) {
@@ -1,4 +1,7 @@
1
- import { type Project, type Task, type TodoistApi } from "@doist/todoist-api-typescript";
1
+ import { type PersonalProject, type Task, type TodoistApi, type WorkspaceProject } from '@doist/todoist-api-typescript';
2
+ export type Project = PersonalProject | WorkspaceProject;
3
+ export declare function isPersonalProject(project: Project): project is PersonalProject;
4
+ export declare function isWorkspaceProject(project: Project): project is WorkspaceProject;
2
5
  /**
3
6
  * Map a single Todoist task to a more structured format, for LLM consumption.
4
7
  * @param task - The task to map.
@@ -52,3 +55,4 @@ declare function getTasksByFilter({ client, query, limit, cursor, }: {
52
55
  nextCursor: string | null;
53
56
  }>;
54
57
  export { getTasksByFilter, mapTask, mapProject };
58
+ //# sourceMappingURL=shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/tools/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,eAAe,EACpB,KAAK,IAAI,EACT,KAAK,UAAU,EACf,KAAK,gBAAgB,EAExB,MAAM,+BAA+B,CAAA;AAGtC,MAAM,MAAM,OAAO,GAAG,eAAe,GAAG,gBAAgB,CAAA;AAExD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,eAAe,CAE9E;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,gBAAgB,CAEhF;AAED;;;;GAIG;AACH,iBAAS,OAAO,CAAC,IAAI,EAAE,IAAI;;;;;;;;;;;EAa1B;AAED;;;;GAIG;AACH,iBAAS,UAAU,CAAC,OAAO,EAAE,OAAO;;;;;;;;;EAWnC;AAWD,iBAAe,gBAAgB,CAAC,EAC5B,MAAM,EACN,KAAK,EACL,KAAK,EACL,MAAM,GACT,EAAE;IACC,MAAM,EAAE,UAAU,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;CAC7B;;;;;;;;;;;;;;GAyBA;AAED,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,UAAU,EAAE,CAAA"}
@@ -3,11 +3,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.isPersonalProject = isPersonalProject;
7
+ exports.isWorkspaceProject = isWorkspaceProject;
6
8
  exports.getTasksByFilter = getTasksByFilter;
7
9
  exports.mapTask = mapTask;
8
10
  exports.mapProject = mapProject;
9
11
  const todoist_api_typescript_1 = require("@doist/todoist-api-typescript");
10
12
  const zod_1 = __importDefault(require("zod"));
13
+ function isPersonalProject(project) {
14
+ return 'inboxProject' in project;
15
+ }
16
+ function isWorkspaceProject(project) {
17
+ return 'accessLevel' in project;
18
+ }
11
19
  /**
12
20
  * Map a single Todoist task to a more structured format, for LLM consumption.
13
21
  * @param task - The task to map.
@@ -39,8 +47,8 @@ function mapProject(project) {
39
47
  color: project.color,
40
48
  isFavorite: project.isFavorite,
41
49
  isShared: project.isShared,
42
- parentId: project.parentId ?? null,
43
- inboxProject: project.isInboxProject ?? false,
50
+ parentId: isPersonalProject(project) ? (project.parentId ?? null) : null,
51
+ inboxProject: isPersonalProject(project) ? (project.inboxProject ?? false) : false,
44
52
  viewStyle: project.viewStyle,
45
53
  };
46
54
  }
@@ -70,7 +78,7 @@ async function getTasksByFilter({ client, query, limit, cursor, }) {
70
78
  throw error;
71
79
  }
72
80
  const { responseData } = parsedError.data;
73
- if (responseData.errorTag === "INVALID_SEARCH_QUERY") {
81
+ if (responseData.errorTag === 'INVALID_SEARCH_QUERY') {
74
82
  throw new Error(`Invalid filter query: ${query}`);
75
83
  }
76
84
  throw new Error(`${responseData.error} (tag: ${responseData.errorTag}, code: ${responseData.errorCode})`);
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=shared.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.test.d.ts","sourceRoot":"","sources":["../../src/tools/shared.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const shared_1 = require("./shared");
4
+ describe('shared utilities', () => {
5
+ describe('mapTask', () => {
6
+ it('should map a basic task correctly', () => {
7
+ const mockTask = {
8
+ id: '123',
9
+ content: 'Test task',
10
+ description: 'Test description',
11
+ projectId: 'proj-1',
12
+ sectionId: null,
13
+ parentId: null,
14
+ labels: ['work'],
15
+ priority: 1,
16
+ due: {
17
+ date: '2024-01-15',
18
+ isRecurring: false,
19
+ datetime: '2024-01-15T10:00:00Z',
20
+ string: 'Jan 15',
21
+ timezone: 'UTC',
22
+ },
23
+ };
24
+ const result = (0, shared_1.mapTask)(mockTask);
25
+ expect(result).toEqual({
26
+ id: '123',
27
+ content: 'Test task',
28
+ description: 'Test description',
29
+ dueDate: '2024-01-15',
30
+ recurring: false,
31
+ priority: 1,
32
+ projectId: 'proj-1',
33
+ sectionId: null,
34
+ parentId: null,
35
+ labels: ['work'],
36
+ });
37
+ });
38
+ it('should handle recurring tasks', () => {
39
+ const mockTask = {
40
+ id: '456',
41
+ content: 'Recurring task',
42
+ description: '',
43
+ projectId: 'proj-1',
44
+ sectionId: null,
45
+ parentId: null,
46
+ labels: [],
47
+ priority: 1,
48
+ due: {
49
+ date: '2024-01-15',
50
+ isRecurring: true,
51
+ datetime: '2024-01-15T10:00:00Z',
52
+ string: 'every day',
53
+ timezone: 'UTC',
54
+ },
55
+ };
56
+ const result = (0, shared_1.mapTask)(mockTask);
57
+ expect(result.recurring).toBe('every day');
58
+ });
59
+ });
60
+ describe('mapProject', () => {
61
+ it('should map a personal project correctly', () => {
62
+ const mockPersonalProject = {
63
+ id: 'proj-1',
64
+ name: 'Personal Project',
65
+ color: 'blue',
66
+ isFavorite: false,
67
+ isShared: false,
68
+ parentId: null,
69
+ inboxProject: false,
70
+ viewStyle: 'list',
71
+ };
72
+ const result = (0, shared_1.mapProject)(mockPersonalProject);
73
+ expect(result).toEqual({
74
+ id: 'proj-1',
75
+ name: 'Personal Project',
76
+ color: 'blue',
77
+ isFavorite: false,
78
+ isShared: false,
79
+ parentId: null,
80
+ inboxProject: false,
81
+ viewStyle: 'list',
82
+ });
83
+ });
84
+ it('should map a workspace project correctly', () => {
85
+ const mockWorkspaceProject = {
86
+ id: 'proj-2',
87
+ name: 'Workspace Project',
88
+ color: 'red',
89
+ isFavorite: true,
90
+ isShared: true,
91
+ viewStyle: 'board',
92
+ };
93
+ const result = (0, shared_1.mapProject)(mockWorkspaceProject);
94
+ expect(result).toEqual({
95
+ id: 'proj-2',
96
+ name: 'Workspace Project',
97
+ color: 'red',
98
+ isFavorite: true,
99
+ isShared: true,
100
+ parentId: null,
101
+ inboxProject: false,
102
+ viewStyle: 'board',
103
+ });
104
+ });
105
+ });
106
+ describe('type guards', () => {
107
+ it('should correctly identify personal projects', () => {
108
+ const personalProject = {
109
+ id: 'proj-1',
110
+ name: 'Personal',
111
+ color: 'blue',
112
+ isFavorite: false,
113
+ isShared: false,
114
+ parentId: null,
115
+ inboxProject: true,
116
+ viewStyle: 'list',
117
+ };
118
+ expect((0, shared_1.isPersonalProject)(personalProject)).toBe(true);
119
+ expect((0, shared_1.isWorkspaceProject)(personalProject)).toBe(false);
120
+ });
121
+ it('should correctly identify workspace projects', () => {
122
+ const workspaceProject = {
123
+ id: 'proj-2',
124
+ name: 'Workspace',
125
+ color: 'red',
126
+ isFavorite: false,
127
+ isShared: true,
128
+ viewStyle: 'board',
129
+ accessLevel: 'admin',
130
+ };
131
+ expect((0, shared_1.isWorkspaceProject)(workspaceProject)).toBe(true);
132
+ expect((0, shared_1.isPersonalProject)(workspaceProject)).toBe(false);
133
+ });
134
+ });
135
+ });
@@ -1,4 +1,4 @@
1
- import { z } from "zod";
1
+ import { z } from 'zod';
2
2
  declare const subtasksListForParentTask: {
3
3
  name: string;
4
4
  description: string;
@@ -8,8 +8,8 @@ declare const subtasksListForParentTask: {
8
8
  cursor: z.ZodOptional<z.ZodString>;
9
9
  };
10
10
  execute(args: {
11
- limit: number;
12
11
  parentId: string;
12
+ limit: number;
13
13
  cursor?: string | undefined;
14
14
  }, client: import("@doist/todoist-api-typescript").TodoistApi): Promise<{
15
15
  tasks: {
@@ -28,3 +28,4 @@ declare const subtasksListForParentTask: {
28
28
  }>;
29
29
  };
30
30
  export { subtasksListForParentTask };
31
+ //# sourceMappingURL=subtasks-list-for-parent-task.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subtasks-list-for-parent-task.d.ts","sourceRoot":"","sources":["../../src/tools/subtasks-list-for-parent-task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAmBvB,QAAA,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgBW,CAAA;AAE1C,OAAO,EAAE,yBAAyB,EAAE,CAAA"}
@@ -2,27 +2,24 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.subtasksListForParentTask = void 0;
4
4
  const zod_1 = require("zod");
5
- const shared_js_1 = require("./shared.js");
5
+ const shared_1 = require("./shared");
6
6
  const ArgsSchema = {
7
- parentId: zod_1.z
8
- .string()
9
- .min(1)
10
- .describe("The ID of the parent task to get subtasks for."),
7
+ parentId: zod_1.z.string().min(1).describe('The ID of the parent task to get subtasks for.'),
11
8
  limit: zod_1.z
12
9
  .number()
13
10
  .int()
14
11
  .min(1)
15
12
  .max(50)
16
13
  .default(10)
17
- .describe("The maximum number of subtasks to return."),
14
+ .describe('The maximum number of subtasks to return.'),
18
15
  cursor: zod_1.z
19
16
  .string()
20
17
  .optional()
21
- .describe("The cursor to get the next page of subtasks (from previous call)."),
18
+ .describe('The cursor to get the next page of subtasks (from previous call).'),
22
19
  };
23
20
  const subtasksListForParentTask = {
24
- name: "subtasks-list-for-parent-task",
25
- description: "List subtasks for a given parent task.",
21
+ name: 'subtasks-list-for-parent-task',
22
+ description: 'List subtasks for a given parent task.',
26
23
  parameters: ArgsSchema,
27
24
  async execute(args, client) {
28
25
  const { parentId, limit, cursor } = args;
@@ -32,7 +29,7 @@ const subtasksListForParentTask = {
32
29
  cursor: cursor ?? null,
33
30
  });
34
31
  return {
35
- tasks: results.map(shared_js_1.mapTask),
32
+ tasks: results.map(shared_1.mapTask),
36
33
  nextCursor,
37
34
  };
38
35
  },
@@ -1,4 +1,4 @@
1
- import { z } from "zod";
1
+ import { z } from 'zod';
2
2
  declare const tasksAddMultiple: {
3
3
  name: string;
4
4
  description: string;
@@ -30,8 +30,8 @@ declare const tasksAddMultiple: {
30
30
  priority?: number | undefined;
31
31
  dueString?: string | undefined;
32
32
  }[];
33
- projectId?: string | undefined;
34
33
  parentId?: string | undefined;
34
+ projectId?: string | undefined;
35
35
  sectionId?: string | undefined;
36
36
  }, client: import("@doist/todoist-api-typescript").TodoistApi): Promise<{
37
37
  id: string;
@@ -47,3 +47,4 @@ declare const tasksAddMultiple: {
47
47
  }[]>;
48
48
  };
49
49
  export { tasksAddMultiple };
50
+ //# sourceMappingURL=tasks-add-multiple.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tasks-add-multiple.d.ts","sourceRoot":"","sources":["../../src/tools/tasks-add-multiple.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAkBvB,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAaoB,CAAA;AAE1C,OAAO,EAAE,gBAAgB,EAAE,CAAA"}