@j0hanz/todokit-mcp 1.0.5 → 1.0.7

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 (51) hide show
  1. package/README.md +48 -8
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +16 -2
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/db.d.ts +8 -0
  6. package/dist/lib/db.d.ts.map +1 -0
  7. package/dist/lib/db.js +177 -0
  8. package/dist/lib/db.js.map +1 -0
  9. package/dist/lib/errors.js +17 -12
  10. package/dist/lib/errors.js.map +1 -1
  11. package/dist/lib/resolve.js +1 -1
  12. package/dist/lib/resolve.js.map +1 -1
  13. package/dist/lib/storage.d.ts +7 -6
  14. package/dist/lib/storage.d.ts.map +1 -1
  15. package/dist/lib/storage.js +148 -71
  16. package/dist/lib/storage.js.map +1 -1
  17. package/dist/lib/storage_filters.d.ts +6 -6
  18. package/dist/lib/storage_filters.d.ts.map +1 -1
  19. package/dist/lib/storage_filters.js +26 -45
  20. package/dist/lib/storage_filters.js.map +1 -1
  21. package/dist/lib/storage_mutations.d.ts +8 -3
  22. package/dist/lib/storage_mutations.d.ts.map +1 -1
  23. package/dist/lib/storage_mutations.js +0 -58
  24. package/dist/lib/storage_mutations.js.map +1 -1
  25. package/dist/lib/storage_state.d.ts.map +1 -1
  26. package/dist/lib/storage_state.js +36 -2
  27. package/dist/lib/storage_state.js.map +1 -1
  28. package/dist/schemas/inputs.d.ts +74 -40
  29. package/dist/schemas/inputs.d.ts.map +1 -1
  30. package/dist/schemas/inputs.js +54 -66
  31. package/dist/schemas/inputs.js.map +1 -1
  32. package/dist/tools/complete_todo.d.ts.map +1 -1
  33. package/dist/tools/complete_todo.js +2 -1
  34. package/dist/tools/complete_todo.js.map +1 -1
  35. package/dist/tools/delete_todo.d.ts.map +1 -1
  36. package/dist/tools/delete_todo.js +4 -2
  37. package/dist/tools/delete_todo.js.map +1 -1
  38. package/dist/tools/delete_todos.d.ts +3 -0
  39. package/dist/tools/delete_todos.d.ts.map +1 -0
  40. package/dist/tools/delete_todos.js +134 -0
  41. package/dist/tools/delete_todos.js.map +1 -0
  42. package/dist/tools/index.d.ts.map +1 -1
  43. package/dist/tools/index.js +2 -0
  44. package/dist/tools/index.js.map +1 -1
  45. package/dist/tools/list_todos.d.ts.map +1 -1
  46. package/dist/tools/list_todos.js +68 -45
  47. package/dist/tools/list_todos.js.map +1 -1
  48. package/dist/tools/update_todo.d.ts.map +1 -1
  49. package/dist/tools/update_todo.js +55 -50
  50. package/dist/tools/update_todo.js.map +1 -1
  51. package/package.json +1 -1
@@ -2,6 +2,7 @@ import { registerAddTodo } from './add_todo.js';
2
2
  import { registerAddTodos } from './add_todos.js';
3
3
  import { registerCompleteTodo } from './complete_todo.js';
4
4
  import { registerDeleteTodo } from './delete_todo.js';
5
+ import { registerDeleteTodos } from './delete_todos.js';
5
6
  import { registerListTodos } from './list_todos.js';
6
7
  import { registerUpdateTodo } from './update_todo.js';
7
8
  export function registerAllTools(server) {
@@ -11,5 +12,6 @@ export function registerAllTools(server) {
11
12
  registerUpdateTodo(server);
12
13
  registerCompleteTodo(server);
13
14
  registerDeleteTodo(server);
15
+ registerDeleteTodos(server);
14
16
  }
15
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,UAAU,gBAAgB,CAAC,MAAiB;IAChD,eAAe,CAAC,MAAM,CAAC,CAAC;IACxB,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACzB,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1B,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3B,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,UAAU,gBAAgB,CAAC,MAAiB;IAChD,eAAe,CAAC,MAAM,CAAC,CAAC;IACxB,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACzB,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1B,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3B,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3B,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"list_todos.d.ts","sourceRoot":"","sources":["../../src/tools/list_todos.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAqMzE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqBzD"}
1
+ {"version":3,"file":"list_todos.d.ts","sourceRoot":"","sources":["../../src/tools/list_todos.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAmOzE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqBzD"}
@@ -11,8 +11,15 @@ const PRIORITY_WEIGHT = {
11
11
  high: 3,
12
12
  };
13
13
  const MISSING_DUE_DATE = '9999-12-31';
14
+ function pad2(value) {
15
+ return String(value).padStart(2, '0');
16
+ }
14
17
  function getTodayIso() {
15
- return new Date().toISOString().slice(0, 10);
18
+ const now = new Date();
19
+ const year = String(now.getFullYear());
20
+ const month = pad2(now.getMonth() + 1);
21
+ const day = pad2(now.getDate());
22
+ return `${year}-${month}-${day}`;
16
23
  }
17
24
  function isOverdue(todo, todayIso) {
18
25
  if (!todo.dueDate)
@@ -21,37 +28,20 @@ function isOverdue(todo, todayIso) {
21
28
  return false;
22
29
  return todo.dueDate < todayIso;
23
30
  }
24
- function compareStrings(a, b) {
25
- return a.localeCompare(b);
26
- }
27
- function compareDueDate(a, b) {
28
- const dateA = a.dueDate ?? MISSING_DUE_DATE;
29
- const dateB = b.dueDate ?? MISSING_DUE_DATE;
30
- return compareStrings(dateA, dateB);
31
- }
32
- function comparePriority(a, b) {
33
- return PRIORITY_WEIGHT[a.priority] - PRIORITY_WEIGHT[b.priority];
34
- }
35
- function compareTitle(a, b) {
36
- return compareStrings(a.title, b.title);
37
- }
38
- function compareCreatedAt(a, b) {
39
- return compareStrings(a.createdAt, b.createdAt);
40
- }
41
31
  const COMPARATORS = {
42
- dueDate: compareDueDate,
43
- priority: comparePriority,
44
- title: compareTitle,
45
- createdAt: compareCreatedAt,
32
+ dueDate: (a, b) => (a.dueDate ?? MISSING_DUE_DATE).localeCompare(b.dueDate ?? MISSING_DUE_DATE),
33
+ priority: (a, b) => PRIORITY_WEIGHT[a.priority] - PRIORITY_WEIGHT[b.priority],
34
+ title: (a, b) => a.title.localeCompare(b.title),
35
+ createdAt: (a, b) => a.createdAt.localeCompare(b.createdAt),
46
36
  };
47
37
  function sortTodos(todos, sortBy, order) {
48
38
  const direction = order === 'desc' ? -1 : 1;
49
39
  const comparator = COMPARATORS[sortBy];
50
40
  return [...todos].sort((a, b) => {
51
- const primary = comparator(a, b) * direction;
52
- if (primary !== 0)
53
- return primary;
54
- return compareCreatedAt(a, b);
41
+ const diff = comparator(a, b);
42
+ if (diff !== 0)
43
+ return diff * direction;
44
+ return a.createdAt.localeCompare(b.createdAt);
55
45
  });
56
46
  }
57
47
  function resolveCompletedFilter(status, completed) {
@@ -75,20 +65,41 @@ function normalizeFilters(filters) {
75
65
  offset: filters.offset ?? DEFAULT_OFFSET,
76
66
  };
77
67
  }
78
- function countMatches(todos, predicate) {
79
- return todos.reduce((total, todo) => total + (predicate(todo) ? 1 : 0), 0);
80
- }
81
68
  function computeCounts(todos, todayIso) {
69
+ let completed = 0;
70
+ let overdue = 0;
71
+ let previousCreatedAt = null;
72
+ const orderState = { isCreatedAtAsc: true, isCreatedAtDesc: true };
73
+ for (const todo of todos) {
74
+ if (todo.completed) {
75
+ completed += 1;
76
+ }
77
+ if (isOverdue(todo, todayIso)) {
78
+ overdue += 1;
79
+ }
80
+ previousCreatedAt = updateCreatedAtOrder(previousCreatedAt, todo.createdAt, orderState);
81
+ }
82
82
  const total = todos.length;
83
- const completed = countMatches(todos, (todo) => todo.completed);
84
- const overdue = countMatches(todos, (todo) => isOverdue(todo, todayIso));
85
83
  return {
86
84
  total,
87
85
  completed,
88
86
  pending: total - completed,
89
87
  overdue,
88
+ ...orderState,
90
89
  };
91
90
  }
91
+ function updateCreatedAtOrder(previous, current, orderState) {
92
+ if (previous === null) {
93
+ return current;
94
+ }
95
+ if (current < previous) {
96
+ orderState.isCreatedAtAsc = false;
97
+ }
98
+ if (current > previous) {
99
+ orderState.isCreatedAtDesc = false;
100
+ }
101
+ return current;
102
+ }
92
103
  function buildSummary(counts, pageCount) {
93
104
  if (counts.total === 0) {
94
105
  return 'No todos found';
@@ -99,21 +110,14 @@ function buildSummary(counts, pageCount) {
99
110
  function paginateTodos(todos, offset, limit) {
100
111
  return todos.slice(offset, offset + limit);
101
112
  }
102
- async function handleListTodos(filters) {
103
- const normalized = normalizeFilters(filters);
104
- const allTodos = await getTodos({
105
- completed: normalized.completed,
106
- priority: normalized.priority,
107
- tag: normalized.tag,
108
- dueBefore: normalized.dueBefore,
109
- dueAfter: normalized.dueAfter,
110
- query: normalized.query,
111
- });
112
- const todayIso = getTodayIso();
113
- const counts = computeCounts(allTodos, todayIso);
114
- const sorted = sortTodos(allTodos, normalized.sortBy, normalized.order);
115
- const paged = paginateTodos(sorted, normalized.offset, normalized.limit);
113
+ function canReuseOrder(sortBy, order, counts) {
114
+ if (sortBy !== 'createdAt')
115
+ return false;
116
+ return order === 'asc' ? counts.isCreatedAtAsc : counts.isCreatedAtDesc;
117
+ }
118
+ function buildListResponse(paged, counts, normalized) {
116
119
  const summary = buildSummary(counts, paged.length);
120
+ const hasMore = normalized.offset + paged.length < counts.total;
117
121
  return createToolResponse({
118
122
  ok: true,
119
123
  result: {
@@ -127,9 +131,28 @@ async function handleListTodos(filters) {
127
131
  },
128
132
  limit: normalized.limit,
129
133
  offset: normalized.offset,
134
+ hasMore,
130
135
  },
131
136
  });
132
137
  }
138
+ async function handleListTodos(filters) {
139
+ const normalized = normalizeFilters(filters);
140
+ const allTodos = await getTodos({
141
+ completed: normalized.completed,
142
+ priority: normalized.priority,
143
+ tag: normalized.tag,
144
+ dueBefore: normalized.dueBefore,
145
+ dueAfter: normalized.dueAfter,
146
+ query: normalized.query,
147
+ });
148
+ const todayIso = getTodayIso();
149
+ const counts = computeCounts(allTodos, todayIso);
150
+ const sorted = canReuseOrder(normalized.sortBy, normalized.order, counts)
151
+ ? allTodos
152
+ : sortTodos(allTodos, normalized.sortBy, normalized.order);
153
+ const paged = paginateTodos(sorted, normalized.offset, normalized.limit);
154
+ return buildListResponse(paged, counts, normalized);
155
+ }
133
156
  export function registerListTodos(server) {
134
157
  server.registerTool('list_todos', {
135
158
  title: 'List Todos',
@@ -1 +1 @@
1
- {"version":3,"file":"list_todos.js","sourceRoot":"","sources":["../../src/tools/list_todos.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAmB5D,MAAM,aAAa,GAAG,EAAE,CAAC;AACzB,MAAM,cAAc,GAAG,CAAC,CAAC;AACzB,MAAM,eAAe,GAAqC;IACxD,GAAG,EAAE,CAAC;IACN,MAAM,EAAE,CAAC;IACT,IAAI,EAAE,CAAC;CACR,CAAC;AACF,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAEtC,SAAS,WAAW;IAClB,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,SAAS,CAAC,IAAU,EAAE,QAAgB;IAC7C,IAAI,CAAC,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAChC,IAAI,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IACjC,OAAO,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;AACjC,CAAC;AAED,SAAS,cAAc,CAAC,CAAS,EAAE,CAAS;IAC1C,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,cAAc,CAAC,CAAO,EAAE,CAAO;IACtC,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,IAAI,gBAAgB,CAAC;IAC5C,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,IAAI,gBAAgB,CAAC;IAC5C,OAAO,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,eAAe,CAAC,CAAO,EAAE,CAAO;IACvC,OAAO,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,YAAY,CAAC,CAAO,EAAE,CAAO;IACpC,OAAO,cAAc,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAO,EAAE,CAAO;IACxC,OAAO,cAAc,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,WAAW,GAAiD;IAChE,OAAO,EAAE,cAAc;IACvB,QAAQ,EAAE,eAAe;IACzB,KAAK,EAAE,YAAY;IACnB,SAAS,EAAE,gBAAgB;CAC5B,CAAC;AAEF,SAAS,SAAS,CAAC,KAAa,EAAE,MAAc,EAAE,KAAgB;IAChE,MAAM,SAAS,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC9B,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC;QAC7C,IAAI,OAAO,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC;QAClC,OAAO,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,sBAAsB,CAC7B,MAAkC,EAClC,SAAwC;IAExC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACvC,IAAI,MAAM,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IACxC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAyB;IACjD,OAAO;QACL,SAAS,EAAE,sBAAsB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC;QACpE,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,WAAW;QACrC,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK;QAC7B,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,aAAa;QACrC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,cAAc;KACzC,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CACnB,KAAa,EACb,SAAkC;IAElC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,aAAa,CACpB,KAAa,EACb,QAAgB;IAOhB,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;IAC3B,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAChE,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IACzE,OAAO;QACL,KAAK;QACL,SAAS;QACT,OAAO,EAAE,KAAK,GAAG,SAAS;QAC1B,OAAO;KACR,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CACnB,MAKC,EACD,SAAiB;IAEjB,IAAI,MAAM,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IACD,MAAM,aAAa,GACjB,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IAClE,OAAO,WAAW,MAAM,CAAC,SAAS,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,MAAM,CAC7E,MAAM,CAAC,OAAO,CACf,aAAa,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,aAAa,IAAI,CAAC;AACvE,CAAC;AAED,SAAS,aAAa,CAAC,KAAa,EAAE,MAAc,EAAE,KAAa;IACjE,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC;AAC7C,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,OAAyB;IAEzB,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC;QAC9B,SAAS,EAAE,UAAU,CAAC,SAAS;QAC/B,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,GAAG,EAAE,UAAU,CAAC,GAAG;QACnB,SAAS,EAAE,UAAU,CAAC,SAAS;QAC/B,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,KAAK,EAAE,UAAU,CAAC,KAAK;KACxB,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IACxE,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IACzE,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAEnD,OAAO,kBAAkB,CAAC;QACxB,EAAE,EAAE,IAAI;QACR,MAAM,EAAE;YACN,KAAK,EAAE,KAAK;YACZ,OAAO;YACP,MAAM,EAAE;gBACN,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;aACxB;YACD,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAiB;IACjD,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,4DAA4D;QACzE,WAAW,EAAE,qBAAqB;QAClC,YAAY,EAAE,mBAAmB;QACjC,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,cAAc,EAAE,IAAI;SACrB;KACF,EACD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,IAAI,CAAC;YACH,OAAO,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,mBAAmB,CAAC,cAAc,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;QACnE,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"list_todos.js","sourceRoot":"","sources":["../../src/tools/list_todos.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"update_todo.d.ts","sourceRoot":"","sources":["../../src/tools/update_todo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAgJzE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqB1D"}
1
+ {"version":3,"file":"update_todo.d.ts","sourceRoot":"","sources":["../../src/tools/update_todo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAuIzE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqB1D"}
@@ -4,67 +4,72 @@ import { normalizeTags, updateTodoBySelector } from '../lib/storage.js';
4
4
  import { createToolResponse } from '../lib/tool_response.js';
5
5
  import { UpdateTodoSchema } from '../schemas/inputs.js';
6
6
  import { DefaultOutputSchema } from '../schemas/outputs.js';
7
- function applyClearFields(updates, fieldsToClear) {
8
- if (fieldsToClear.has('description')) {
9
- updates.description = undefined;
10
- }
11
- if (fieldsToClear.has('dueDate')) {
12
- updates.dueDate = undefined;
13
- }
14
- }
15
- function countTags(tags) {
16
- return tags?.length ?? 0;
7
+ function normalizeTagOps(tagOps) {
8
+ return {
9
+ add: normalizeTags(tagOps?.add ?? []),
10
+ remove: new Set(normalizeTags(tagOps?.remove ?? [])),
11
+ };
17
12
  }
18
- function hasTagOps(tagOps) {
19
- return countTags(tagOps?.add) + countTags(tagOps?.remove) > 0;
13
+ function getTagOps(tagOps) {
14
+ if (!tagOps)
15
+ return null;
16
+ const { add, remove } = normalizeTagOps(tagOps);
17
+ if (add.length === 0 && remove.size === 0)
18
+ return null;
19
+ return { add, remove };
20
20
  }
21
- function shouldApplyTagUpdates(updates, fieldsToClear, tagOps) {
22
- if (updates.tags !== undefined)
23
- return false;
24
- return fieldsToClear.has('tags') || hasTagOps(tagOps);
21
+ function mergeTags(current, ops) {
22
+ const toAdd = ops?.add ?? [];
23
+ const toRemove = ops?.remove ?? new Set();
24
+ return normalizeTags([...current, ...toAdd]).filter((t) => !toRemove.has(t));
25
25
  }
26
- function resolveBaseTags(baseTodo, fieldsToClear) {
27
- return fieldsToClear.has('tags') ? [] : baseTodo.tags;
26
+ function resolveTags(baseTags, clears, tagOps, newTags) {
27
+ if (newTags !== undefined)
28
+ return newTags;
29
+ const shouldClear = clears.has('tags');
30
+ const ops = getTagOps(tagOps);
31
+ if (!shouldClear && !ops)
32
+ return undefined;
33
+ return mergeTags(shouldClear ? [] : baseTags, ops);
28
34
  }
29
- function normalizeTagList(tags) {
30
- return normalizeTags(tags ?? []);
35
+ function assignContentFields(updates, fields) {
36
+ if (fields.title !== undefined)
37
+ updates.title = fields.title;
38
+ if (fields.description !== undefined)
39
+ updates.description = fields.description;
31
40
  }
32
- function buildMergedTags(baseTodo, fieldsToClear, tagOps) {
33
- const baseTags = resolveBaseTags(baseTodo, fieldsToClear);
34
- const addTags = normalizeTagList(tagOps?.add);
35
- const removeTags = new Set(normalizeTagList(tagOps?.remove));
36
- return normalizeTags([...baseTags, ...addTags]).filter((tag) => !removeTags.has(tag));
41
+ function assignStatusFields(updates, fields) {
42
+ if (fields.completed !== undefined)
43
+ updates.completed = fields.completed;
44
+ if (fields.priority !== undefined)
45
+ updates.priority = fields.priority;
46
+ if (fields.dueDate !== undefined)
47
+ updates.dueDate = fields.dueDate;
37
48
  }
38
- function applyTagUpdates(updates, baseTodo, fieldsToClear, tagOps) {
39
- if (!shouldApplyTagUpdates(updates, fieldsToClear, tagOps))
40
- return;
41
- updates.tags = buildMergedTags(baseTodo, fieldsToClear, tagOps);
49
+ function assignFields(updates, fields) {
50
+ assignContentFields(updates, fields);
51
+ assignStatusFields(updates, fields);
42
52
  }
43
- function assignIfDefined(updates, key, value) {
44
- if (value !== undefined) {
45
- updates[key] = value;
46
- }
47
- }
48
- function buildBaseUpdates(input) {
49
- const updates = {};
50
- assignIfDefined(updates, 'title', input.title);
51
- assignIfDefined(updates, 'description', input.description);
52
- assignIfDefined(updates, 'completed', input.completed);
53
- assignIfDefined(updates, 'priority', input.priority);
54
- assignIfDefined(updates, 'dueDate', input.dueDate);
55
- assignIfDefined(updates, 'tags', input.tags);
56
- return updates;
53
+ function applyClears(updates, clears) {
54
+ if (clears.has('description'))
55
+ updates.description = undefined;
56
+ if (clears.has('dueDate'))
57
+ updates.dueDate = undefined;
57
58
  }
58
59
  function buildUpdatePayload(baseTodo, input) {
59
- const { clearFields, tagOps } = input;
60
- const fieldsToClear = new Set(clearFields ?? []);
61
- const nextUpdates = buildBaseUpdates(input);
62
- applyClearFields(nextUpdates, fieldsToClear);
63
- applyTagUpdates(nextUpdates, baseTodo, fieldsToClear, tagOps);
64
- return Object.keys(nextUpdates).length > 0 ? nextUpdates : null;
60
+ const { clearFields = [], tagOps, ...fields } = input;
61
+ const clears = new Set(clearFields);
62
+ const updates = {};
63
+ assignFields(updates, fields);
64
+ applyClears(updates, clears);
65
+ const resolvedTags = resolveTags(baseTodo.tags, clears, tagOps, fields.tags);
66
+ if (resolvedTags !== undefined)
67
+ updates.tags = resolvedTags;
68
+ return Object.keys(updates).length > 0 ? updates : null;
65
69
  }
66
70
  async function handleUpdateTodo(input) {
67
- const outcome = await updateTodoBySelector(toResolveInput({ id: input.id, query: input.query }), (todo) => buildUpdatePayload(todo, input));
71
+ const selector = input.id !== undefined ? { id: input.id } : { query: input.query };
72
+ const outcome = await updateTodoBySelector(toResolveInput(selector), (todo) => buildUpdatePayload(todo, input));
68
73
  if (outcome.kind === 'error' || outcome.kind === 'ambiguous') {
69
74
  return outcome.response;
70
75
  }
@@ -1 +1 @@
1
- {"version":3,"file":"update_todo.js","sourceRoot":"","sources":["../../src/tools/update_todo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update_todo.js","sourceRoot":"","sources":["../../src/tools/update_todo.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@j0hanz/todokit-mcp",
3
- "version": "1.0.5",
3
+ "version": "1.0.7",
4
4
  "mcpName": "io.github.j0hanz/todokit",
5
5
  "description": "A MCP server for Todokit, a task management and productivity tool with JSON storage.",
6
6
  "type": "module",