@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
package/README.md CHANGED
@@ -91,3 +91,30 @@ See [docs/mcp-server.md](docs/mcp-server.md) for full instructions on setting up
91
91
  ## Local Development Setup
92
92
 
93
93
  See [docs/dev-setup.md](docs/dev-setup.md) for full instructions on setting up this repository locally for development and contributing.
94
+
95
+ ## Releasing
96
+
97
+ This project uses [release-please](https://github.com/googleapis/release-please) to automate version management and package publishing.
98
+
99
+ ### How it works
100
+
101
+ 1. Make your changes using [Conventional Commits](https://www.conventionalcommits.org/):
102
+
103
+ - `feat:` for new features (minor version bump)
104
+ - `fix:` for bug fixes (patch version bump)
105
+ - `feat!:` or `fix!:` for breaking changes (major version bump)
106
+ - `docs:` for documentation changes
107
+ - `chore:` for maintenance tasks
108
+ - `ci:` for CI changes
109
+
110
+ 2. When commits are pushed to `main`:
111
+
112
+ - Release-please automatically creates/updates a release PR
113
+ - The PR includes version bump and changelog updates
114
+ - Review the PR and merge when ready
115
+
116
+ 3. After merging the release PR:
117
+ - A new GitHub release is automatically created
118
+ - A new tag is created
119
+ - The `publish` workflow is triggered
120
+ - The package is published to npm
@@ -1,26 +1,26 @@
1
- import { getMcpServer } from "./mcp-server.js";
2
- import { projectsAddOne } from "./tools/projects-add-one.js";
3
- import { projectsDeleteOne } from "./tools/projects-delete-one.js";
4
- import { projectsList } from "./tools/projects-list.js";
5
- import { projectsSearch } from "./tools/projects-search.js";
6
- import { projectsUpdateOne } from "./tools/projects-update-one.js";
7
- import { sectionsAddOne } from "./tools/sections-add-one.js";
8
- import { sectionsDeleteOne } from "./tools/sections-delete-one.js";
9
- import { sectionsSearch } from "./tools/sections-search.js";
10
- import { sectionsUpdateOne } from "./tools/sections-update-one.js";
11
- import { tasksAddMultiple } from "./tools/tasks-add-multiple.js";
12
- import { tasksListByDate } from "./tools/tasks-by-date-range.js";
13
- import { tasksListForProject } from "./tools/tasks-by-project.js";
14
- import { tasksCompleteMultiple } from "./tools/tasks-complete-multiple.js";
15
- import { tasksDeleteOne } from "./tools/tasks-delete-one.js";
16
- import { tasksListForSection } from "./tools/tasks-list-for-section.js";
17
- import { tasksListOverdue } from "./tools/tasks-list-overdue.js";
18
- import { tasksOrganizeMultiple } from "./tools/tasks-organize-multiple.js";
19
- import { tasksSearch } from "./tools/tasks-search.js";
20
- import { tasksUpdateOne } from "./tools/tasks-update-one.js";
21
- import { subtasksListForParentTask } from "./tools/subtasks-list-for-parent-task.js";
22
- import { accountOverview } from "./tools/account-overview.js";
23
- import { projectOverview } from "./tools/project-overview.js";
1
+ import { getMcpServer } from './mcp-server';
2
+ import { projectsAddOne } from './tools/projects-add-one';
3
+ import { projectsDeleteOne } from './tools/projects-delete-one';
4
+ import { projectsList } from './tools/projects-list';
5
+ import { projectsSearch } from './tools/projects-search';
6
+ import { projectsUpdateOne } from './tools/projects-update-one';
7
+ import { sectionsAddOne } from './tools/sections-add-one';
8
+ import { sectionsDeleteOne } from './tools/sections-delete-one';
9
+ import { sectionsSearch } from './tools/sections-search';
10
+ import { sectionsUpdateOne } from './tools/sections-update-one';
11
+ import { tasksAddMultiple } from './tools/tasks-add-multiple';
12
+ import { tasksCompleteMultiple } from './tools/tasks-complete-multiple';
13
+ import { tasksDeleteOne } from './tools/tasks-delete-one';
14
+ import { tasksListByDate } from './tools/tasks-list-by-date';
15
+ import { tasksListForProject } from './tools/tasks-list-for-project';
16
+ import { tasksListForSection } from './tools/tasks-list-for-section';
17
+ import { tasksListOverdue } from './tools/tasks-list-overdue';
18
+ import { tasksOrganizeMultiple } from './tools/tasks-organize-multiple';
19
+ import { tasksSearch } from './tools/tasks-search';
20
+ import { tasksUpdateOne } from './tools/tasks-update-one';
21
+ import { subtasksListForParentTask } from './tools/subtasks-list-for-parent-task';
22
+ import { accountOverview } from './tools/account-overview';
23
+ import { projectOverview } from './tools/project-overview';
24
24
  declare const tools: {
25
25
  projectsList: {
26
26
  name: string;
@@ -33,7 +33,7 @@ declare const tools: {
33
33
  limit: number;
34
34
  cursor?: string | undefined;
35
35
  }, client: import("@doist/todoist-api-typescript").TodoistApi): Promise<{
36
- projects: import("@doist/todoist-api-typescript").Project[];
36
+ projects: (import("@doist/todoist-api-typescript").PersonalProject | import("@doist/todoist-api-typescript").WorkspaceProject)[];
37
37
  nextCursor: string | null;
38
38
  }>;
39
39
  };
@@ -90,9 +90,9 @@ declare const tools: {
90
90
  name: import("zod").ZodString;
91
91
  };
92
92
  execute(args: {
93
- name: string;
94
93
  id: string;
95
- }, client: import("@doist/todoist-api-typescript").TodoistApi): Promise<import("@doist/todoist-api-typescript").Project>;
94
+ name: string;
95
+ }, client: import("@doist/todoist-api-typescript").TodoistApi): Promise<import("@doist/todoist-api-typescript").PersonalProject | import("@doist/todoist-api-typescript").WorkspaceProject>;
96
96
  };
97
97
  projectsDeleteOne: {
98
98
  name: string;
@@ -141,8 +141,8 @@ declare const tools: {
141
141
  name: import("zod").ZodString;
142
142
  };
143
143
  execute(args: {
144
- name: string;
145
144
  id: string;
145
+ name: string;
146
146
  }, client: import("@doist/todoist-api-typescript").TodoistApi): Promise<import("@doist/todoist-api-typescript").Section>;
147
147
  };
148
148
  sectionsDeleteOne: {
@@ -325,8 +325,8 @@ declare const tools: {
325
325
  priority?: number | undefined;
326
326
  dueString?: string | undefined;
327
327
  }[];
328
- projectId?: string | undefined;
329
328
  parentId?: string | undefined;
329
+ projectId?: string | undefined;
330
330
  sectionId?: string | undefined;
331
331
  }, client: import("@doist/todoist-api-typescript").TodoistApi): Promise<{
332
332
  id: string;
@@ -357,9 +357,9 @@ declare const tools: {
357
357
  execute(args: {
358
358
  id: string;
359
359
  content?: string | undefined;
360
- projectId?: string | undefined;
361
- parentId?: string | undefined;
362
360
  description?: string | undefined;
361
+ parentId?: string | undefined;
362
+ projectId?: string | undefined;
363
363
  priority?: number | undefined;
364
364
  dueString?: string | undefined;
365
365
  sectionId?: string | undefined;
@@ -377,14 +377,14 @@ declare const tools: {
377
377
  order: import("zod").ZodOptional<import("zod").ZodNumber>;
378
378
  }, "strip", import("zod").ZodTypeAny, {
379
379
  id: string;
380
- projectId?: string | undefined;
381
380
  parentId?: string | undefined;
381
+ projectId?: string | undefined;
382
382
  sectionId?: string | undefined;
383
383
  order?: number | undefined;
384
384
  }, {
385
385
  id: string;
386
- projectId?: string | undefined;
387
386
  parentId?: string | undefined;
387
+ projectId?: string | undefined;
388
388
  sectionId?: string | undefined;
389
389
  order?: number | undefined;
390
390
  }>, "many">;
@@ -392,8 +392,8 @@ declare const tools: {
392
392
  execute(args: {
393
393
  tasks: {
394
394
  id: string;
395
- projectId?: string | undefined;
396
395
  parentId?: string | undefined;
396
+ projectId?: string | undefined;
397
397
  sectionId?: string | undefined;
398
398
  order?: number | undefined;
399
399
  }[];
@@ -436,8 +436,8 @@ declare const tools: {
436
436
  cursor: import("zod").ZodOptional<import("zod").ZodString>;
437
437
  };
438
438
  execute(args: {
439
- limit: number;
440
439
  parentId: string;
440
+ limit: number;
441
441
  cursor?: string | undefined;
442
442
  }, client: import("@doist/todoist-api-typescript").TodoistApi): Promise<{
443
443
  tasks: {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAE/D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAE/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAEzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAA;AAEjF,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAE1D,QAAA,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuBV,CAAA;AAED,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,CAAA;AAE9B,OAAO,EACH,YAAY,EACZ,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,yBAAyB,EACzB,eAAe,EACf,eAAe,GAClB,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.projectOverview = exports.accountOverview = exports.subtasksListForParentTask = exports.tasksListForSection = exports.tasksOrganizeMultiple = exports.tasksUpdateOne = exports.tasksAddMultiple = exports.tasksSearch = exports.tasksListOverdue = exports.tasksListForProject = exports.tasksCompleteMultiple = exports.tasksDeleteOne = exports.tasksListByDate = exports.sectionsDeleteOne = exports.sectionsUpdateOne = exports.sectionsAddOne = exports.sectionsSearch = exports.projectsDeleteOne = exports.projectsUpdateOne = exports.projectsAddOne = exports.projectsSearch = exports.projectsList = exports.getMcpServer = exports.tools = void 0;
4
+ const mcp_server_1 = require("./mcp-server");
5
+ Object.defineProperty(exports, "getMcpServer", { enumerable: true, get: function () { return mcp_server_1.getMcpServer; } });
6
+ const projects_add_one_1 = require("./tools/projects-add-one");
7
+ Object.defineProperty(exports, "projectsAddOne", { enumerable: true, get: function () { return projects_add_one_1.projectsAddOne; } });
8
+ const projects_delete_one_1 = require("./tools/projects-delete-one");
9
+ Object.defineProperty(exports, "projectsDeleteOne", { enumerable: true, get: function () { return projects_delete_one_1.projectsDeleteOne; } });
10
+ const projects_list_1 = require("./tools/projects-list");
11
+ Object.defineProperty(exports, "projectsList", { enumerable: true, get: function () { return projects_list_1.projectsList; } });
12
+ const projects_search_1 = require("./tools/projects-search");
13
+ Object.defineProperty(exports, "projectsSearch", { enumerable: true, get: function () { return projects_search_1.projectsSearch; } });
14
+ const projects_update_one_1 = require("./tools/projects-update-one");
15
+ Object.defineProperty(exports, "projectsUpdateOne", { enumerable: true, get: function () { return projects_update_one_1.projectsUpdateOne; } });
16
+ const sections_add_one_1 = require("./tools/sections-add-one");
17
+ Object.defineProperty(exports, "sectionsAddOne", { enumerable: true, get: function () { return sections_add_one_1.sectionsAddOne; } });
18
+ const sections_delete_one_1 = require("./tools/sections-delete-one");
19
+ Object.defineProperty(exports, "sectionsDeleteOne", { enumerable: true, get: function () { return sections_delete_one_1.sectionsDeleteOne; } });
20
+ const sections_search_1 = require("./tools/sections-search");
21
+ Object.defineProperty(exports, "sectionsSearch", { enumerable: true, get: function () { return sections_search_1.sectionsSearch; } });
22
+ const sections_update_one_1 = require("./tools/sections-update-one");
23
+ Object.defineProperty(exports, "sectionsUpdateOne", { enumerable: true, get: function () { return sections_update_one_1.sectionsUpdateOne; } });
24
+ const tasks_add_multiple_1 = require("./tools/tasks-add-multiple");
25
+ Object.defineProperty(exports, "tasksAddMultiple", { enumerable: true, get: function () { return tasks_add_multiple_1.tasksAddMultiple; } });
26
+ const tasks_complete_multiple_1 = require("./tools/tasks-complete-multiple");
27
+ Object.defineProperty(exports, "tasksCompleteMultiple", { enumerable: true, get: function () { return tasks_complete_multiple_1.tasksCompleteMultiple; } });
28
+ const tasks_delete_one_1 = require("./tools/tasks-delete-one");
29
+ Object.defineProperty(exports, "tasksDeleteOne", { enumerable: true, get: function () { return tasks_delete_one_1.tasksDeleteOne; } });
30
+ const tasks_list_by_date_1 = require("./tools/tasks-list-by-date");
31
+ Object.defineProperty(exports, "tasksListByDate", { enumerable: true, get: function () { return tasks_list_by_date_1.tasksListByDate; } });
32
+ const tasks_list_for_project_1 = require("./tools/tasks-list-for-project");
33
+ Object.defineProperty(exports, "tasksListForProject", { enumerable: true, get: function () { return tasks_list_for_project_1.tasksListForProject; } });
34
+ const tasks_list_for_section_1 = require("./tools/tasks-list-for-section");
35
+ Object.defineProperty(exports, "tasksListForSection", { enumerable: true, get: function () { return tasks_list_for_section_1.tasksListForSection; } });
36
+ const tasks_list_overdue_1 = require("./tools/tasks-list-overdue");
37
+ Object.defineProperty(exports, "tasksListOverdue", { enumerable: true, get: function () { return tasks_list_overdue_1.tasksListOverdue; } });
38
+ const tasks_organize_multiple_1 = require("./tools/tasks-organize-multiple");
39
+ Object.defineProperty(exports, "tasksOrganizeMultiple", { enumerable: true, get: function () { return tasks_organize_multiple_1.tasksOrganizeMultiple; } });
40
+ const tasks_search_1 = require("./tools/tasks-search");
41
+ Object.defineProperty(exports, "tasksSearch", { enumerable: true, get: function () { return tasks_search_1.tasksSearch; } });
42
+ const tasks_update_one_1 = require("./tools/tasks-update-one");
43
+ Object.defineProperty(exports, "tasksUpdateOne", { enumerable: true, get: function () { return tasks_update_one_1.tasksUpdateOne; } });
44
+ const subtasks_list_for_parent_task_1 = require("./tools/subtasks-list-for-parent-task");
45
+ Object.defineProperty(exports, "subtasksListForParentTask", { enumerable: true, get: function () { return subtasks_list_for_parent_task_1.subtasksListForParentTask; } });
46
+ const account_overview_1 = require("./tools/account-overview");
47
+ Object.defineProperty(exports, "accountOverview", { enumerable: true, get: function () { return account_overview_1.accountOverview; } });
48
+ const project_overview_1 = require("./tools/project-overview");
49
+ Object.defineProperty(exports, "projectOverview", { enumerable: true, get: function () { return project_overview_1.projectOverview; } });
50
+ const tools = {
51
+ projectsList: projects_list_1.projectsList,
52
+ projectsSearch: projects_search_1.projectsSearch,
53
+ projectsAddOne: projects_add_one_1.projectsAddOne,
54
+ projectsUpdateOne: projects_update_one_1.projectsUpdateOne,
55
+ projectsDeleteOne: projects_delete_one_1.projectsDeleteOne,
56
+ sectionsSearch: sections_search_1.sectionsSearch,
57
+ sectionsAddOne: sections_add_one_1.sectionsAddOne,
58
+ sectionsUpdateOne: sections_update_one_1.sectionsUpdateOne,
59
+ sectionsDeleteOne: sections_delete_one_1.sectionsDeleteOne,
60
+ tasksListByDate: tasks_list_by_date_1.tasksListByDate,
61
+ tasksDeleteOne: tasks_delete_one_1.tasksDeleteOne,
62
+ tasksCompleteMultiple: tasks_complete_multiple_1.tasksCompleteMultiple,
63
+ tasksListForProject: tasks_list_for_project_1.tasksListForProject,
64
+ tasksListOverdue: tasks_list_overdue_1.tasksListOverdue,
65
+ tasksSearch: tasks_search_1.tasksSearch,
66
+ tasksAddMultiple: tasks_add_multiple_1.tasksAddMultiple,
67
+ tasksUpdateOne: tasks_update_one_1.tasksUpdateOne,
68
+ tasksOrganizeMultiple: tasks_organize_multiple_1.tasksOrganizeMultiple,
69
+ tasksListForSection: tasks_list_for_section_1.tasksListForSection,
70
+ subtasksListForParentTask: subtasks_list_for_parent_task_1.subtasksListForParentTask,
71
+ accountOverview: account_overview_1.accountOverview,
72
+ projectOverview: project_overview_1.projectOverview,
73
+ };
74
+ exports.tools = tools;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":""}
@@ -3,24 +3,24 @@ 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
- const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
6
+ const stdio_1 = require("@modelcontextprotocol/sdk/server/stdio");
7
7
  const dotenv_1 = __importDefault(require("dotenv"));
8
- const mcp_server_js_1 = require("./mcp-server.js");
8
+ const mcp_server_1 = require("./mcp-server");
9
9
  function main() {
10
10
  const todoistApiKey = process.env.TODOIST_API_KEY;
11
11
  if (!todoistApiKey) {
12
- throw new Error("TODOIST_API_KEY is not set");
12
+ throw new Error('TODOIST_API_KEY is not set');
13
13
  }
14
- const server = (0, mcp_server_js_1.getMcpServer)({ todoistApiKey });
15
- const transport = new stdio_js_1.StdioServerTransport();
14
+ const server = (0, mcp_server_1.getMcpServer)({ todoistApiKey });
15
+ const transport = new stdio_1.StdioServerTransport();
16
16
  server
17
17
  .connect(transport)
18
18
  .then(() => {
19
19
  // We use console.error because standard I/O is being used for the MCP server communication.
20
- console.error("Server started");
20
+ console.error('Server started');
21
21
  })
22
22
  .catch((error) => {
23
- console.error("Error starting the Todoist MCP server:", error);
23
+ console.error('Error starting the Todoist MCP server:', error);
24
24
  process.exit(1);
25
25
  });
26
26
  }
@@ -1,7 +1,7 @@
1
- import type { TodoistApi } from "@doist/todoist-api-typescript";
2
- import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
3
- import type { z } from "zod";
4
- import type { TodoistTool } from "./todoist-tool.js";
1
+ import type { TodoistApi } from '@doist/todoist-api-typescript';
2
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp';
3
+ import type { z } from 'zod';
4
+ import type { TodoistTool } from './todoist-tool';
5
5
  /**
6
6
  * Register a Todoist tool in an MCP server.
7
7
  * @param tool - The tool to register.
@@ -10,3 +10,4 @@ import type { TodoistTool } from "./todoist-tool.js";
10
10
  */
11
11
  declare function registerTool<Params extends z.ZodRawShape>(tool: TodoistTool<Params>, server: McpServer, client: TodoistApi): void;
12
12
  export { registerTool };
13
+ //# sourceMappingURL=mcp-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-helpers.d.ts","sourceRoot":"","sources":["../src/mcp-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAgB,MAAM,sCAAsC,CAAA;AACnF,OAAO,KAAK,EAAc,CAAC,EAAE,MAAM,KAAK,CAAA;AACxC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AA+BjD;;;;;GAKG;AACH,iBAAS,YAAY,CAAC,MAAM,SAAS,CAAC,CAAC,WAAW,EAC9C,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,EACzB,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,UAAU,QAqBrB;AAED,OAAO,EAAE,YAAY,EAAE,CAAA"}
@@ -3,22 +3,22 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.registerTool = registerTool;
4
4
  function textContent(text) {
5
5
  return {
6
- content: [{ type: "text", text }],
6
+ content: [{ type: 'text', text }],
7
7
  };
8
8
  }
9
9
  function jsonContent(data) {
10
10
  return {
11
11
  content: [
12
12
  {
13
- type: "text",
14
- mimeType: "application/json",
13
+ type: 'text',
14
+ mimeType: 'application/json',
15
15
  text: JSON.stringify(data, null, 2),
16
16
  },
17
17
  ],
18
18
  };
19
19
  }
20
20
  function textOrJsonContent(data) {
21
- return typeof data === "string" ? textContent(data) : jsonContent(data);
21
+ return typeof data === 'string' ? textContent(data) : jsonContent(data);
22
22
  }
23
23
  function errorContent(error) {
24
24
  return {
@@ -44,9 +44,7 @@ function registerTool(tool, server, client) {
44
44
  args,
45
45
  error,
46
46
  });
47
- const message = error instanceof Error
48
- ? error.message
49
- : "An unknown error occurred";
47
+ const message = error instanceof Error ? error.message : 'An unknown error occurred';
50
48
  return errorContent(message);
51
49
  }
52
50
  };
@@ -0,0 +1,13 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp';
2
+ /**
3
+ * Create the MCP server.
4
+ * @param todoistApiKey - The API key for the todoist account.
5
+ * @param baseUrl - The base URL for the todoist API.
6
+ * @returns the MCP server.
7
+ */
8
+ declare function getMcpServer({ todoistApiKey, baseUrl }: {
9
+ todoistApiKey: string;
10
+ baseUrl?: string;
11
+ }): McpServer;
12
+ export { getMcpServer };
13
+ //# sourceMappingURL=mcp-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAA;AAiChE;;;;;GAKG;AACH,iBAAS,YAAY,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,aAqC5F;AAED,OAAO,EAAE,YAAY,EAAE,CAAA"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getMcpServer = getMcpServer;
4
+ const todoist_api_typescript_1 = require("@doist/todoist-api-typescript");
5
+ const mcp_1 = require("@modelcontextprotocol/sdk/server/mcp");
6
+ const mcp_helpers_1 = require("./mcp-helpers");
7
+ const projects_add_one_1 = require("./tools/projects-add-one");
8
+ const projects_delete_one_1 = require("./tools/projects-delete-one");
9
+ const projects_list_1 = require("./tools/projects-list");
10
+ const projects_search_1 = require("./tools/projects-search");
11
+ const projects_update_one_1 = require("./tools/projects-update-one");
12
+ const sections_add_one_1 = require("./tools/sections-add-one");
13
+ const sections_delete_one_1 = require("./tools/sections-delete-one");
14
+ const sections_search_1 = require("./tools/sections-search");
15
+ const sections_update_one_1 = require("./tools/sections-update-one");
16
+ const subtasks_list_for_parent_task_1 = require("./tools/subtasks-list-for-parent-task");
17
+ const account_overview_1 = require("./tools/account-overview");
18
+ const project_overview_1 = require("./tools/project-overview");
19
+ const tasks_add_multiple_1 = require("./tools/tasks-add-multiple");
20
+ const tasks_complete_multiple_1 = require("./tools/tasks-complete-multiple");
21
+ const tasks_delete_one_1 = require("./tools/tasks-delete-one");
22
+ const tasks_list_by_date_1 = require("./tools/tasks-list-by-date");
23
+ const tasks_list_for_project_1 = require("./tools/tasks-list-for-project");
24
+ const tasks_list_for_section_1 = require("./tools/tasks-list-for-section");
25
+ const tasks_list_overdue_1 = require("./tools/tasks-list-overdue");
26
+ const tasks_organize_multiple_1 = require("./tools/tasks-organize-multiple");
27
+ const tasks_search_1 = require("./tools/tasks-search");
28
+ const tasks_update_one_1 = require("./tools/tasks-update-one");
29
+ const instructions = `
30
+ Tools to help you manage your todoist tasks.
31
+ `;
32
+ /**
33
+ * Create the MCP server.
34
+ * @param todoistApiKey - The API key for the todoist account.
35
+ * @param baseUrl - The base URL for the todoist API.
36
+ * @returns the MCP server.
37
+ */
38
+ function getMcpServer({ todoistApiKey, baseUrl }) {
39
+ const server = new mcp_1.McpServer({ name: 'todoist-mcp-server', version: '0.1.0' }, {
40
+ capabilities: {
41
+ tools: { listChanged: true },
42
+ },
43
+ instructions,
44
+ });
45
+ const todoist = new todoist_api_typescript_1.TodoistApi(todoistApiKey, baseUrl);
46
+ (0, mcp_helpers_1.registerTool)(tasks_list_by_date_1.tasksListByDate, server, todoist);
47
+ (0, mcp_helpers_1.registerTool)(tasks_list_overdue_1.tasksListOverdue, server, todoist);
48
+ (0, mcp_helpers_1.registerTool)(tasks_list_for_project_1.tasksListForProject, server, todoist);
49
+ (0, mcp_helpers_1.registerTool)(tasks_search_1.tasksSearch, server, todoist);
50
+ (0, mcp_helpers_1.registerTool)(projects_list_1.projectsList, server, todoist);
51
+ (0, mcp_helpers_1.registerTool)(tasks_add_multiple_1.tasksAddMultiple, server, todoist);
52
+ (0, mcp_helpers_1.registerTool)(tasks_update_one_1.tasksUpdateOne, server, todoist);
53
+ (0, mcp_helpers_1.registerTool)(tasks_delete_one_1.tasksDeleteOne, server, todoist);
54
+ (0, mcp_helpers_1.registerTool)(tasks_complete_multiple_1.tasksCompleteMultiple, server, todoist);
55
+ (0, mcp_helpers_1.registerTool)(projects_add_one_1.projectsAddOne, server, todoist);
56
+ (0, mcp_helpers_1.registerTool)(projects_update_one_1.projectsUpdateOne, server, todoist);
57
+ (0, mcp_helpers_1.registerTool)(sections_add_one_1.sectionsAddOne, server, todoist);
58
+ (0, mcp_helpers_1.registerTool)(sections_update_one_1.sectionsUpdateOne, server, todoist);
59
+ (0, mcp_helpers_1.registerTool)(tasks_organize_multiple_1.tasksOrganizeMultiple, server, todoist);
60
+ (0, mcp_helpers_1.registerTool)(subtasks_list_for_parent_task_1.subtasksListForParentTask, server, todoist);
61
+ (0, mcp_helpers_1.registerTool)(tasks_list_for_section_1.tasksListForSection, server, todoist);
62
+ (0, mcp_helpers_1.registerTool)(projects_delete_one_1.projectsDeleteOne, server, todoist);
63
+ (0, mcp_helpers_1.registerTool)(projects_search_1.projectsSearch, server, todoist);
64
+ (0, mcp_helpers_1.registerTool)(sections_delete_one_1.sectionsDeleteOne, server, todoist);
65
+ (0, mcp_helpers_1.registerTool)(sections_search_1.sectionsSearch, server, todoist);
66
+ (0, mcp_helpers_1.registerTool)(account_overview_1.accountOverview, server, todoist);
67
+ (0, mcp_helpers_1.registerTool)(project_overview_1.projectOverview, server, todoist);
68
+ return server;
69
+ }
@@ -1,5 +1,5 @@
1
- import type { TodoistApi } from "@doist/todoist-api-typescript";
2
- import type { z } from "zod";
1
+ import type { TodoistApi } from '@doist/todoist-api-typescript';
2
+ import type { z } from 'zod';
3
3
  /**
4
4
  * A Todoist tool that can be used in an MCP server or other conversational AI interfaces.
5
5
  */
@@ -32,3 +32,4 @@ type TodoistTool<Params extends z.ZodRawShape> = {
32
32
  execute: (args: z.infer<z.ZodObject<Params>>, client: TodoistApi) => Promise<unknown>;
33
33
  };
34
34
  export type { TodoistTool };
35
+ //# sourceMappingURL=todoist-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"todoist-tool.d.ts","sourceRoot":"","sources":["../src/todoist-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAE5B;;GAEG;AACH,KAAK,WAAW,CAAC,MAAM,SAAS,CAAC,CAAC,WAAW,IAAI;IAC7C;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IAEZ;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAA;IAEnB;;;;;OAKG;IACH,UAAU,EAAE,MAAM,CAAA;IAElB;;;;;;;;OAQG;IACH,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CACxF,CAAA;AAED,YAAY,EAAE,WAAW,EAAE,CAAA"}
@@ -1,4 +1,4 @@
1
- import type { TodoistApi } from "@doist/todoist-api-typescript";
1
+ import type { TodoistApi } from '@doist/todoist-api-typescript';
2
2
  declare const accountOverview: {
3
3
  name: string;
4
4
  description: string;
@@ -6,3 +6,4 @@ declare const accountOverview: {
6
6
  execute(_args: {}, client: TodoistApi): Promise<string>;
7
7
  };
8
8
  export { accountOverview };
9
+ //# sourceMappingURL=account-overview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-overview.d.ts","sourceRoot":"","sources":["../../src/tools/account-overview.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,UAAU,EAAE,MAAM,+BAA+B,CAAA;AA6ExE,QAAA,MAAM,eAAe;;;;;CAsCqB,CAAA;AAE1C,OAAO,EAAE,eAAe,EAAE,CAAA"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.accountOverview = void 0;
4
+ const shared_1 = require("./shared");
4
5
  const ArgsSchema = {};
5
6
  function buildProjectTree(projects) {
6
7
  // Sort projects by childOrder, then build a tree
@@ -17,7 +18,7 @@ function buildProjectTree(projects) {
17
18
  const current = byId[p.id];
18
19
  if (!current)
19
20
  continue;
20
- if (p.parentId) {
21
+ if ((0, shared_1.isPersonalProject)(p) && p.parentId) {
21
22
  const parent = byId[p.parentId];
22
23
  if (parent) {
23
24
  parent.children.push(current);
@@ -47,7 +48,7 @@ async function getSectionsByProject(client, projectIds) {
47
48
  }));
48
49
  return result;
49
50
  }
50
- function renderProjectMarkdown(project, sectionsByProject, indent = "") {
51
+ function renderProjectMarkdown(project, sectionsByProject, indent = '') {
51
52
  const lines = [];
52
53
  lines.push(`${indent}- Project: ${project.name} (id=${project.id})`);
53
54
  const sections = sectionsByProject[project.id] || [];
@@ -60,17 +61,17 @@ function renderProjectMarkdown(project, sectionsByProject, indent = "") {
60
61
  return lines;
61
62
  }
62
63
  const accountOverview = {
63
- name: "account-overview",
64
- description: "Get a Markdown overview of all projects (with hierarchy and sections) and the inbox project. Useful in almost any context before engaging with Todoist further.",
64
+ name: 'account-overview',
65
+ description: 'Get a Markdown overview of all projects (with hierarchy and sections) and the inbox project. Useful in almost any context before engaging with Todoist further.',
65
66
  parameters: ArgsSchema,
66
67
  async execute(_args, client) {
67
68
  const { results: projects } = await client.getProjects({});
68
- const inbox = projects.find((p) => p.isInboxProject === true);
69
- const nonInbox = projects.filter((p) => p.isInboxProject !== true);
69
+ const inbox = projects.find((p) => (0, shared_1.isPersonalProject)(p) && p.inboxProject === true);
70
+ const nonInbox = projects.filter((p) => !(0, shared_1.isPersonalProject)(p) || p.inboxProject !== true);
70
71
  const tree = buildProjectTree(nonInbox);
71
72
  const allProjectIds = projects.map((p) => p.id);
72
73
  const sectionsByProject = await getSectionsByProject(client, allProjectIds);
73
- const lines = ["# Personal Projects", ""];
74
+ const lines = ['# Personal Projects', ''];
74
75
  if (inbox) {
75
76
  lines.push(`- Inbox Project: ${inbox.name} (id=${inbox.id})`);
76
77
  for (const section of sectionsByProject[inbox.id] || []) {
@@ -83,15 +84,15 @@ const accountOverview = {
83
84
  }
84
85
  }
85
86
  else {
86
- lines.push("_No projects found._");
87
+ lines.push('_No projects found._');
87
88
  }
88
- lines.push("");
89
+ lines.push('');
89
90
  // Add explanation about nesting if there are nested projects
90
91
  const hasNested = tree.some((p) => p.children.length > 0);
91
92
  if (hasNested) {
92
- lines.push("_Note: Indentation indicates that a project is a sub-project of the one above it. This allows for organizing projects hierarchically, with parent projects containing related sub-projects._", "");
93
+ lines.push('_Note: Indentation indicates that a project is a sub-project of the one above it. This allows for organizing projects hierarchically, with parent projects containing related sub-projects._', '');
93
94
  }
94
- return lines.join("\n");
95
+ return lines.join('\n');
95
96
  },
96
97
  };
97
98
  exports.accountOverview = accountOverview;
@@ -1,5 +1,5 @@
1
- import type { TodoistApi } from "@doist/todoist-api-typescript";
2
- import { z } from "zod";
1
+ import type { TodoistApi } from '@doist/todoist-api-typescript';
2
+ import { z } from 'zod';
3
3
  declare const projectOverview: {
4
4
  name: string;
5
5
  description: string;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-overview.d.ts","sourceRoot":"","sources":["../../src/tools/project-overview.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,UAAU,EAAE,MAAM,+BAA+B,CAAA;AACxE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAqEvB,QAAA,MAAM,eAAe;;;;;;;;;CA4CqB,CAAA;AAE1C,OAAO,EAAE,eAAe,EAAE,CAAA"}
@@ -2,12 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.projectOverview = 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
- projectId: zod_1.z
8
- .string()
9
- .min(1)
10
- .describe("The ID of the project to get an overview for."),
7
+ projectId: zod_1.z.string().min(1).describe('The ID of the project to get an overview for.'),
11
8
  };
12
9
  function buildTaskTree(tasks) {
13
10
  const byId = {};
@@ -33,11 +30,11 @@ function buildTaskTree(tasks) {
33
30
  }
34
31
  return roots;
35
32
  }
36
- function renderTaskTreeMarkdown(tasks, indent = "") {
33
+ function renderTaskTreeMarkdown(tasks, indent = '') {
37
34
  const lines = [];
38
35
  for (const task of tasks) {
39
36
  const idPart = `id=${task.id}`;
40
- const duePart = task.dueDate ? `; due=${task.dueDate}` : "";
37
+ const duePart = task.dueDate ? `; due=${task.dueDate}` : '';
41
38
  const contentPart = `; content=${task.content}`;
42
39
  lines.push(`${indent}- ${idPart}${duePart}${contentPart}`);
43
40
  if (task.children.length > 0) {
@@ -55,7 +52,7 @@ async function getAllTasksForProject(client, projectId) {
55
52
  limit: 50,
56
53
  cursor: cursor ?? undefined,
57
54
  });
58
- allTasks = allTasks.concat(results.map(shared_js_1.mapTask));
55
+ allTasks = allTasks.concat(results.map(shared_1.mapTask));
59
56
  cursor = nextCursor ?? undefined;
60
57
  } while (cursor);
61
58
  return allTasks;
@@ -65,7 +62,7 @@ async function getProjectSections(client, projectId) {
65
62
  return results;
66
63
  }
67
64
  const projectOverview = {
68
- name: "project-overview",
65
+ name: 'project-overview',
69
66
  description: "Get a Markdown overview of a single project, including its sections and all tasks. Tasks are grouped by section, with tasks not in any section listed first. Each task is listed as '- id=TASKID; due=YYYY-MM-DD; content=TASK CONTENT' (omit due if not present). Subtasks are nested as indented list items.",
70
67
  parameters: ArgsSchema,
71
68
  async execute(args, client) {
@@ -90,12 +87,12 @@ const projectOverview = {
90
87
  }
91
88
  const lines = [`# ${project.name}`];
92
89
  if (tasksWithoutSection.length > 0) {
93
- lines.push("");
90
+ lines.push('');
94
91
  const tree = buildTaskTree(tasksWithoutSection);
95
92
  lines.push(...renderTaskTreeMarkdown(tree));
96
93
  }
97
94
  for (const section of sections) {
98
- lines.push("");
95
+ lines.push('');
99
96
  lines.push(`## ${section.name}`);
100
97
  const sectionTasks = tasksBySection[section.id];
101
98
  if (!sectionTasks?.length) {
@@ -104,7 +101,7 @@ const projectOverview = {
104
101
  const tree = buildTaskTree(sectionTasks);
105
102
  lines.push(...renderTaskTreeMarkdown(tree));
106
103
  }
107
- return lines.join("\n");
104
+ return lines.join('\n');
108
105
  },
109
106
  };
110
107
  exports.projectOverview = projectOverview;
@@ -1,4 +1,4 @@
1
- import { z } from "zod";
1
+ import { z } from 'zod';
2
2
  declare const projectsAddOne: {
3
3
  name: string;
4
4
  description: string;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects-add-one.d.ts","sourceRoot":"","sources":["../../src/tools/projects-add-one.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAQvB,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;CAQsB,CAAA;AAE1C,OAAO,EAAE,cAAc,EAAE,CAAA"}