@doist/todoist-mcp 13.2.4 → 13.2.5
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.
- package/dist/index.js +3 -3
- package/dist/main-http.js +2 -2
- package/dist/main.js +1 -1
- package/dist/{mcp-server-BSP_a2Pt.js → mcp-server-B1r-n81f.js} +77 -74
- package/dist/{require-valid-todoist-token-DADxW2RL.js → require-valid-todoist-token-EELznAMG.js} +1 -1
- package/dist/tools/get-overview.d.ts.map +1 -1
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { t as s } from "./mcp-server-
|
|
2
|
-
import { F as r, a as d, b as i, c as n, d as c, e as l, f as m, h as p, i as f, j as T, k as j, l as g, m as k, n as u, o as v, p as P, q as h, r as b, s as S, u as y, v as A, w as C, x as R, y as x, z as F, g as M, A as O, B as E, C as L, D as w, E as H, G as I, H as W, I as q, J as z, K as B, L as D, M as N, N as U, O as V, P as G, Q as J, R as K, S as Q, T as X, U as Y, V as _, W as Z, X as $, Y as ss } from "./mcp-server-
|
|
3
|
-
import { r as es, v as ts } from "./require-valid-todoist-token-
|
|
1
|
+
import { t as s } from "./mcp-server-B1r-n81f.js";
|
|
2
|
+
import { F as r, a as d, b as i, c as n, d as c, e as l, f as m, h as p, i as f, j as T, k as j, l as g, m as k, n as u, o as v, p as P, q as h, r as b, s as S, u as y, v as A, w as C, x as R, y as x, z as F, g as M, A as O, B as E, C as L, D as w, E as H, G as I, H as W, I as q, J as z, K as B, L as D, M as N, N as U, O as V, P as G, Q as J, R as K, S as Q, T as X, U as Y, V as _, W as Z, X as $, Y as ss } from "./mcp-server-B1r-n81f.js";
|
|
3
|
+
import { r as es, v as ts } from "./require-valid-todoist-token-EELznAMG.js";
|
|
4
4
|
const e = s;
|
|
5
5
|
export {
|
|
6
6
|
r as FEATURE_NAMES,
|
package/dist/main-http.js
CHANGED
|
@@ -3,8 +3,8 @@ import { isIP as p } from "node:net";
|
|
|
3
3
|
import O from "dotenv";
|
|
4
4
|
import { NodeStreamableHTTPServerTransport as S } from "@modelcontextprotocol/node";
|
|
5
5
|
import m from "express";
|
|
6
|
-
import { g as v } from "./mcp-server-
|
|
7
|
-
import { r as w } from "./require-valid-todoist-token-
|
|
6
|
+
import { g as v } from "./mcp-server-B1r-n81f.js";
|
|
7
|
+
import { r as w } from "./require-valid-todoist-token-EELznAMG.js";
|
|
8
8
|
function f(t) {
|
|
9
9
|
return t.startsWith("[") && t.endsWith("]") ? t.slice(1, -1) : t;
|
|
10
10
|
}
|
package/dist/main.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { StdioServerTransport as s } from "@modelcontextprotocol/server/stdio";
|
|
3
3
|
import c from "dotenv";
|
|
4
|
-
import { g as i } from "./mcp-server-
|
|
4
|
+
import { g as i } from "./mcp-server-B1r-n81f.js";
|
|
5
5
|
function p() {
|
|
6
6
|
const e = process.env.TODOIST_BASE_URL, r = process.env.TODOIST_API_KEY;
|
|
7
7
|
if (!r)
|
|
@@ -119,7 +119,7 @@ function Ye(e) {
|
|
|
119
119
|
const t = e.trim();
|
|
120
120
|
return /\bHTTP\s*\d{3}\b/i.test(t) || /\bstatus code \d{3}\b/i.test(t) || /^bad request$/i.test(t) || /^unauthorized$/i.test(t) || /^forbidden$/i.test(t) || /^not found$/i.test(t);
|
|
121
121
|
}
|
|
122
|
-
function
|
|
122
|
+
function Pe(e) {
|
|
123
123
|
if (!e)
|
|
124
124
|
return;
|
|
125
125
|
const t = e.match(/\b(?:HTTP|status code)\s*[:#-]?\s*(\d{3})\b/i);
|
|
@@ -277,9 +277,9 @@ function st(e) {
|
|
|
277
277
|
O(n?.status),
|
|
278
278
|
O(n?.httpCode),
|
|
279
279
|
O(n?.http_code),
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
280
|
+
Pe(v(t?.message)),
|
|
281
|
+
Pe(v(r?.message)),
|
|
282
|
+
Pe(typeof e == "string" ? e : void 0)
|
|
283
283
|
), a = F(
|
|
284
284
|
de(n?.errorCode),
|
|
285
285
|
de(n?.error_code),
|
|
@@ -371,7 +371,7 @@ function yr(e) {
|
|
|
371
371
|
const t = st(e);
|
|
372
372
|
return t ? br(t) : ts(e);
|
|
373
373
|
}
|
|
374
|
-
const Tr = "13.2.
|
|
374
|
+
const Tr = "13.2.5", kr = {
|
|
375
375
|
version: Tr
|
|
376
376
|
}, j = {
|
|
377
377
|
/** Default limit for task listings */
|
|
@@ -574,10 +574,10 @@ function as(e, t) {
|
|
|
574
574
|
}
|
|
575
575
|
}) : Cr()[t];
|
|
576
576
|
}
|
|
577
|
-
function
|
|
577
|
+
function _r(e) {
|
|
578
578
|
return as(e, "moves");
|
|
579
579
|
}
|
|
580
|
-
function
|
|
580
|
+
function Pr(e) {
|
|
581
581
|
return as(e, "writes");
|
|
582
582
|
}
|
|
583
583
|
const Ur = "todoist-mcp", ot = kr.version, cs = new Gs(), jt = Vs(import.meta.url);
|
|
@@ -743,7 +743,7 @@ function so({
|
|
|
743
743
|
function ro(e) {
|
|
744
744
|
return new Promise((t) => setTimeout(t, e));
|
|
745
745
|
}
|
|
746
|
-
async function
|
|
746
|
+
async function _(e, t = {}) {
|
|
747
747
|
const r = t.maxRetries ?? Vr, o = t.baseDelayMs ?? Jr, n = t.maxDelayMs ?? Xr, i = t.random;
|
|
748
748
|
let a;
|
|
749
749
|
for (let c = 0; c <= r; c++)
|
|
@@ -941,7 +941,7 @@ function go({
|
|
|
941
941
|
try {
|
|
942
942
|
let { textContent: h, structuredContent: m, contentItems: y } = await Mr(
|
|
943
943
|
e.name,
|
|
944
|
-
() =>
|
|
944
|
+
() => _(() => i(l, r))
|
|
945
945
|
);
|
|
946
946
|
return n && (h && (h = bo(h)), m && (m = Xe(m))), io({ textContent: h, structuredContent: m, contentItems: y });
|
|
947
947
|
} catch (h) {
|
|
@@ -1428,7 +1428,7 @@ async function Oo(e) {
|
|
|
1428
1428
|
limit: j.PROJECTS_MAX
|
|
1429
1429
|
});
|
|
1430
1430
|
}
|
|
1431
|
-
function
|
|
1431
|
+
function _o(e) {
|
|
1432
1432
|
const t = (i) => i.replaceAll(/[.*+?^${}()|[\]\\]/g, "\\$&"), r = /(?<!\\)(?:\\\\)*\*/.test(e), o = [...e];
|
|
1433
1433
|
let n = "";
|
|
1434
1434
|
for (let i = 0; i < o.length; i++) {
|
|
@@ -1437,7 +1437,7 @@ function Po(e) {
|
|
|
1437
1437
|
}
|
|
1438
1438
|
return new RegExp(r ? `^${n}$` : n, "iu");
|
|
1439
1439
|
}
|
|
1440
|
-
async function
|
|
1440
|
+
async function Po(e, t) {
|
|
1441
1441
|
return z({
|
|
1442
1442
|
apiMethod: e.searchLabels.bind(e),
|
|
1443
1443
|
args: { query: ct(t) },
|
|
@@ -1459,7 +1459,7 @@ async function Ro(e, t, r) {
|
|
|
1459
1459
|
limit: j.SECTIONS_MAX
|
|
1460
1460
|
});
|
|
1461
1461
|
}
|
|
1462
|
-
function
|
|
1462
|
+
function P(e) {
|
|
1463
1463
|
return {
|
|
1464
1464
|
id: e.id,
|
|
1465
1465
|
content: e.content,
|
|
@@ -1555,7 +1555,7 @@ async function dt({
|
|
|
1555
1555
|
}) {
|
|
1556
1556
|
try {
|
|
1557
1557
|
const { results: n, nextCursor: i } = await e.getTasksByFilter({ query: t, cursor: o, limit: r });
|
|
1558
|
-
return { tasks: n.map(
|
|
1558
|
+
return { tasks: n.map(P), nextCursor: i };
|
|
1559
1559
|
} catch (n) {
|
|
1560
1560
|
const i = No.safeParse(n);
|
|
1561
1561
|
if (!i.success)
|
|
@@ -2223,13 +2223,13 @@ const vs = new kn(), wn = s.object({
|
|
|
2223
2223
|
if (!u)
|
|
2224
2224
|
return Promise.resolve(void 0);
|
|
2225
2225
|
let l = r.get(u);
|
|
2226
|
-
return l || (l =
|
|
2226
|
+
return l || (l = _(
|
|
2227
2227
|
() => vs.resolveWorkspace(t, u)
|
|
2228
2228
|
).then(({ workspaceId: p }) => p), r.set(u, l)), l;
|
|
2229
2229
|
}, n = await Promise.allSettled(
|
|
2230
2230
|
e.map(async ({ workspace: u, ...l }) => {
|
|
2231
2231
|
const p = await o(u);
|
|
2232
|
-
return await
|
|
2232
|
+
return await _(
|
|
2233
2233
|
() => t.addProject({ ...l, ...p ? { workspaceId: p } : {} })
|
|
2234
2234
|
);
|
|
2235
2235
|
})
|
|
@@ -2345,7 +2345,7 @@ const je = 25, Ee = s.enum(Qs), Is = s.object({
|
|
|
2345
2345
|
}
|
|
2346
2346
|
}), i = (await Promise.all(o)).map(ke);
|
|
2347
2347
|
return {
|
|
2348
|
-
textContent:
|
|
2348
|
+
textContent: _n(i),
|
|
2349
2349
|
structuredContent: {
|
|
2350
2350
|
reminders: i,
|
|
2351
2351
|
totalCount: i.length,
|
|
@@ -2354,7 +2354,7 @@ const je = 25, Ee = s.enum(Qs), Is = s.object({
|
|
|
2354
2354
|
};
|
|
2355
2355
|
}
|
|
2356
2356
|
};
|
|
2357
|
-
function
|
|
2357
|
+
function _n(e) {
|
|
2358
2358
|
const { timeBasedCount: t, locationCount: r } = ys(e), o = [];
|
|
2359
2359
|
if (t > 0) {
|
|
2360
2360
|
const n = t > 1 ? "reminders" : "reminder";
|
|
@@ -2366,14 +2366,14 @@ function Pn(e) {
|
|
|
2366
2366
|
}
|
|
2367
2367
|
return o.length > 0 ? `Added ${o.join(" and ")}` : "No reminders added";
|
|
2368
2368
|
}
|
|
2369
|
-
const
|
|
2369
|
+
const Pn = s.object({
|
|
2370
2370
|
name: s.string().min(1).describe("The name of the section."),
|
|
2371
2371
|
projectId: s.string().min(1).describe(
|
|
2372
2372
|
'The ID of the project to add the section to. Project ID should be an ID string, or the text "inbox", for inbox tasks.'
|
|
2373
2373
|
),
|
|
2374
2374
|
description: s.string().optional().describe("The description of the section. Supports Markdown.")
|
|
2375
2375
|
}), Un = {
|
|
2376
|
-
sections: s.array(
|
|
2376
|
+
sections: s.array(Pn).min(1).describe("The array of sections to add.")
|
|
2377
2377
|
}, Rn = {
|
|
2378
2378
|
sections: s.array(Y).describe("The created sections."),
|
|
2379
2379
|
totalCount: s.number().describe("The total number of sections created."),
|
|
@@ -2390,14 +2390,14 @@ const _n = s.object({
|
|
|
2390
2390
|
outputSchema: Rn,
|
|
2391
2391
|
annotations: { readOnlyHint: !1, destructiveHint: !1, idempotentHint: !1 },
|
|
2392
2392
|
async execute({ sections: e }, t) {
|
|
2393
|
-
const r = e.some((c) => B(c.projectId)) ?
|
|
2393
|
+
const r = e.some((c) => B(c.projectId)) ? _(() => t.getUser()) : void 0, o = await Promise.allSettled(
|
|
2394
2394
|
e.map(async (c) => {
|
|
2395
2395
|
const d = B(c.projectId) ? await r : void 0, u = await te({
|
|
2396
2396
|
projectId: c.projectId,
|
|
2397
2397
|
user: d,
|
|
2398
2398
|
client: void 0
|
|
2399
2399
|
}) ?? c.projectId;
|
|
2400
|
-
return
|
|
2400
|
+
return _(() => t.addSection({ ...c, projectId: u }));
|
|
2401
2401
|
})
|
|
2402
2402
|
), n = [], i = [];
|
|
2403
2403
|
return o.forEach((c, d) => {
|
|
@@ -2675,7 +2675,7 @@ const ft = new Mn(), Ot = rs.TASKS_PER_OPERATION, Fn = s.object({
|
|
|
2675
2675
|
isUncompletable: s.boolean().optional().describe(
|
|
2676
2676
|
"Whether this task should be uncompletable (organizational header). Tasks with isUncompletable: true appear as organizational headers and cannot be completed."
|
|
2677
2677
|
)
|
|
2678
|
-
}),
|
|
2678
|
+
}), _t = {
|
|
2679
2679
|
tasks: s.array(Fn).min(1).max(Ot).describe(`The array of tasks to add (max ${Ot}).`)
|
|
2680
2680
|
}, Hn = {
|
|
2681
2681
|
tasks: s.array(K).describe("The created tasks."),
|
|
@@ -2687,11 +2687,11 @@ const ft = new Mn(), Ot = rs.TASKS_PER_OPERATION, Fn = s.object({
|
|
|
2687
2687
|
}, Wn = {
|
|
2688
2688
|
name: g.ADD_TASKS,
|
|
2689
2689
|
description: "Add one or more tasks to a project, section, or parent. Supports assignment to project collaborators.",
|
|
2690
|
-
parameters:
|
|
2690
|
+
parameters: _t,
|
|
2691
2691
|
outputSchema: Hn,
|
|
2692
2692
|
annotations: { readOnlyHint: !1, destructiveHint: !1, idempotentHint: !1 },
|
|
2693
2693
|
async execute(e, t) {
|
|
2694
|
-
const { tasks: r } = s.object(
|
|
2694
|
+
const { tasks: r } = s.object(_t).parse(e), o = /* @__PURE__ */ new Map();
|
|
2695
2695
|
r.forEach((h, m) => {
|
|
2696
2696
|
const y = Bn(h), f = o.get(y);
|
|
2697
2697
|
f ? f.push({ task: h, index: m }) : o.set(y, [{ task: h, index: m }]);
|
|
@@ -2725,7 +2725,7 @@ const ft = new Mn(), Ot = rs.TASKS_PER_OPERATION, Fn = s.object({
|
|
|
2725
2725
|
const h = d.map((y) => `"${y.item}": ${y.error}`).join("; "), m = `All ${d.length} task(s) failed to create: ${h}`;
|
|
2726
2726
|
throw u ? new ss(m) : new Error(m);
|
|
2727
2727
|
}
|
|
2728
|
-
const l = c.map(
|
|
2728
|
+
const l = c.map(P);
|
|
2729
2729
|
return ne(g.ADD_TASKS, r.length, d, { redactItems: !0 }), {
|
|
2730
2730
|
textContent: Kn({
|
|
2731
2731
|
tasks: l,
|
|
@@ -3017,7 +3017,7 @@ const Cs = [
|
|
|
3017
3017
|
}
|
|
3018
3018
|
};
|
|
3019
3019
|
}
|
|
3020
|
-
},
|
|
3020
|
+
}, Pt = 5, js = ["file", "url"], si = {
|
|
3021
3021
|
projectId: s.string().min(1).describe("The ID of the project to export as a template."),
|
|
3022
3022
|
format: s.enum(js).default("file").describe(
|
|
3023
3023
|
'How to return the template. "file" returns the CSV content, which can be passed straight back to import-project-template. "url" returns a shareable download link instead, and is the better choice for large projects because it does not return the whole file.'
|
|
@@ -3062,8 +3062,8 @@ ${c}`,
|
|
|
3062
3062
|
}
|
|
3063
3063
|
};
|
|
3064
3064
|
function ni({ projectId: e, lines: t }) {
|
|
3065
|
-
const r = `Exported project (id=${e}) as a template file (${t.length} row${t.length === 1 ? "" : "s"}).`, o = t.slice(0,
|
|
3066
|
-
`), n = t.length -
|
|
3065
|
+
const r = `Exported project (id=${e}) as a template file (${t.length} row${t.length === 1 ? "" : "s"}).`, o = t.slice(0, Pt).join(`
|
|
3066
|
+
`), n = t.length - Pt;
|
|
3067
3067
|
return n > 0 ? `${r}
|
|
3068
3068
|
|
|
3069
3069
|
${o}
|
|
@@ -3179,7 +3179,7 @@ const $s = ["task", "project", "comment", "section"], ui = {
|
|
|
3179
3179
|
const [i, a] = await Promise.all([
|
|
3180
3180
|
t.getTask(o),
|
|
3181
3181
|
n ? Ut(() => di(t, o)) : Promise.resolve({})
|
|
3182
|
-
]), c =
|
|
3182
|
+
]), c = P(i);
|
|
3183
3183
|
return {
|
|
3184
3184
|
textContent: `Found task: ${c.content} • id=${c.id} • priority=${c.priority} • project=${c.projectId}${Rt("subtasks", a)}`,
|
|
3185
3185
|
structuredContent: {
|
|
@@ -3258,7 +3258,7 @@ const $s = ["task", "project", "comment", "section"], ui = {
|
|
|
3258
3258
|
);
|
|
3259
3259
|
let i;
|
|
3260
3260
|
if (o === "task") {
|
|
3261
|
-
const a = await t.getTask(n), c =
|
|
3261
|
+
const a = await t.getTask(n), c = P(a), d = [c.content];
|
|
3262
3262
|
c.description && d.push(`
|
|
3263
3263
|
|
|
3264
3264
|
Description: ${c.description}`), c.dueDate && d.push(`
|
|
@@ -3573,7 +3573,7 @@ function gt(e = [], t = "or") {
|
|
|
3573
3573
|
return `(${e.map((i) => i.startsWith("@") ? i : `@${i}`).join(` ${r} `)})`;
|
|
3574
3574
|
}
|
|
3575
3575
|
const Oi = 7;
|
|
3576
|
-
function
|
|
3576
|
+
function _i({
|
|
3577
3577
|
since: e,
|
|
3578
3578
|
until: t,
|
|
3579
3579
|
userGmtOffset: r,
|
|
@@ -3585,7 +3585,7 @@ function Pi({
|
|
|
3585
3585
|
until: c
|
|
3586
3586
|
};
|
|
3587
3587
|
}
|
|
3588
|
-
const
|
|
3588
|
+
const Pi = {
|
|
3589
3589
|
getBy: s.enum(["completion", "due"]).default("completion").describe(
|
|
3590
3590
|
'The method to use to get the tasks: "completion" to get tasks by completion date (ie, when the task was actually completed), "due" to get tasks by due date (ie, when the task was due to be completed by).'
|
|
3591
3591
|
),
|
|
@@ -3618,7 +3618,7 @@ const _i = {
|
|
|
3618
3618
|
}, Ri = {
|
|
3619
3619
|
name: g.FIND_COMPLETED_TASKS,
|
|
3620
3620
|
description: 'Get completed tasks in a date range. For "what did I complete/get done" questions, use find-activity instead — it reports completion events, including every occurrence of a recurring task, which this tool does not. since/until are optional and default to a 7-day window when omitted. Includes all collaborators by default. Person-specific queries (summaries, plans, reports) require responsibleUser.',
|
|
3621
|
-
parameters:
|
|
3621
|
+
parameters: Pi,
|
|
3622
3622
|
outputSchema: Ui,
|
|
3623
3623
|
annotations: { readOnlyHint: !0, destructiveHint: !1, idempotentHint: !0 },
|
|
3624
3624
|
async execute(e, t) {
|
|
@@ -3643,7 +3643,7 @@ const _i = {
|
|
|
3643
3643
|
const w = await t.getUser(), C = w.tzInfo?.gmtString || "+00:00", D = await te({
|
|
3644
3644
|
projectId: d,
|
|
3645
3645
|
user: w
|
|
3646
|
-
}), T =
|
|
3646
|
+
}), T = _i({
|
|
3647
3647
|
since: i,
|
|
3648
3648
|
until: a,
|
|
3649
3649
|
userGmtOffset: C
|
|
@@ -3665,7 +3665,7 @@ const _i = {
|
|
|
3665
3665
|
since: k,
|
|
3666
3666
|
until: b,
|
|
3667
3667
|
...f ? { filterQuery: f, filterLang: "en" } : {}
|
|
3668
|
-
}), E = A.map(
|
|
3668
|
+
}), E = A.map(P);
|
|
3669
3669
|
return {
|
|
3670
3670
|
textContent: Li({
|
|
3671
3671
|
tasks: E,
|
|
@@ -3734,7 +3734,7 @@ const Ni = {
|
|
|
3734
3734
|
annotations: { readOnlyHint: !0, destructiveHint: !1, idempotentHint: !0 },
|
|
3735
3735
|
async execute(e, t) {
|
|
3736
3736
|
const [r, o] = await Promise.all([
|
|
3737
|
-
e.searchText ?
|
|
3737
|
+
e.searchText ? Po(t, e.searchText).then((c) => ({
|
|
3738
3738
|
results: c,
|
|
3739
3739
|
nextCursor: null
|
|
3740
3740
|
})) : t.getLabels({ limit: e.limit, cursor: e.cursor ?? null }),
|
|
@@ -3854,7 +3854,7 @@ const { FIND_PROJECTS: Ds, ADD_TASKS: xs, UPDATE_TASKS: Es } = g, Wi = {
|
|
|
3854
3854
|
};
|
|
3855
3855
|
const c = Os(a, o);
|
|
3856
3856
|
return {
|
|
3857
|
-
textContent:
|
|
3857
|
+
textContent: _s({
|
|
3858
3858
|
collaborators: c,
|
|
3859
3859
|
projectName: n,
|
|
3860
3860
|
searchTerm: o,
|
|
@@ -3898,7 +3898,7 @@ async function Ki({
|
|
|
3898
3898
|
};
|
|
3899
3899
|
const i = Os(n, e);
|
|
3900
3900
|
return {
|
|
3901
|
-
textContent:
|
|
3901
|
+
textContent: _s({
|
|
3902
3902
|
collaborators: i,
|
|
3903
3903
|
projectName: void 0,
|
|
3904
3904
|
searchTerm: e,
|
|
@@ -3932,7 +3932,7 @@ function Os(e, t) {
|
|
|
3932
3932
|
(o) => o.name.toLowerCase().includes(r) || o.email.toLowerCase().includes(r)
|
|
3933
3933
|
);
|
|
3934
3934
|
}
|
|
3935
|
-
function
|
|
3935
|
+
function _s({
|
|
3936
3936
|
collaborators: e,
|
|
3937
3937
|
projectName: t,
|
|
3938
3938
|
searchTerm: r,
|
|
@@ -3992,7 +3992,7 @@ const { ADD_PROJECTS: Mt } = g, Yi = {
|
|
|
3992
3992
|
const c = Promise.resolve([]), [d, u] = await Promise.all([
|
|
3993
3993
|
o === "archived" ? c : r ? bs(t, r) : gs(t),
|
|
3994
3994
|
o === "active" ? c : Oo(t)
|
|
3995
|
-
]), l = r ?
|
|
3995
|
+
]), l = r ? _o(r) : null, p = l ? u.filter((h) => l.test(h.name)) : u;
|
|
3996
3996
|
n = [...d, ...p];
|
|
3997
3997
|
} else {
|
|
3998
3998
|
const c = o === "archived" ? await t.getArchivedProjects({
|
|
@@ -4178,7 +4178,7 @@ function ia({
|
|
|
4178
4178
|
zeroReasonHints: o
|
|
4179
4179
|
});
|
|
4180
4180
|
}
|
|
4181
|
-
function
|
|
4181
|
+
function Ps(e) {
|
|
4182
4182
|
return /* @__PURE__ */ new Date(`${e}T00:00:00`);
|
|
4183
4183
|
}
|
|
4184
4184
|
const aa = {
|
|
@@ -4231,7 +4231,7 @@ const aa = {
|
|
|
4231
4231
|
} else
|
|
4232
4232
|
d = e.overdueOption === "exclude-overdue" ? "today" : "(today | overdue)";
|
|
4233
4233
|
else if (e.startDate) {
|
|
4234
|
-
const y = e.startDate, f = We(
|
|
4234
|
+
const y = e.startDate, f = We(Ps(y), e.daysCount), w = yt(f, { representation: "date" });
|
|
4235
4235
|
d = `(due after: ${y} | due: ${y}) & due before: ${w}`;
|
|
4236
4236
|
}
|
|
4237
4237
|
const u = gt(e.labels, e.labelsOperator);
|
|
@@ -4276,7 +4276,7 @@ function la({
|
|
|
4276
4276
|
`today${c}${t.daysCount > 1 ? ` + ${t.daysCount - 1} more days` : ""}`
|
|
4277
4277
|
);
|
|
4278
4278
|
} else if (t.startDate) {
|
|
4279
|
-
const c = t.daysCount > 1 ? ` to ${he(We(
|
|
4279
|
+
const c = t.daysCount > 1 ? ` to ${he(We(Ps(t.startDate), t.daysCount))}` : "";
|
|
4280
4280
|
n.push(`${t.startDate}${c}`);
|
|
4281
4281
|
}
|
|
4282
4282
|
if (t.labels && t.labels.length > 0) {
|
|
@@ -4446,7 +4446,7 @@ const ha = new pa(), { FIND_COMPLETED_TASKS: Ft, ADD_TASKS: Ht } = g, ma = {
|
|
|
4446
4446
|
cursor: y ?? null
|
|
4447
4447
|
};
|
|
4448
4448
|
o && (E.projectId = await te({ projectId: o, user: f })), n && (E.sectionId = n), i && (E.parentId = i);
|
|
4449
|
-
const { results: Ie, nextCursor: J } = await t.getTasks(E), ie = Ie.map(
|
|
4449
|
+
const { results: Ie, nextCursor: J } = await t.getTasks(E), ie = Ie.map(P);
|
|
4450
4450
|
let M = r ? ie.filter(
|
|
4451
4451
|
(ae) => ae.content.toLowerCase().includes(r.toLowerCase()) || ae.description?.toLowerCase().includes(r.toLowerCase())
|
|
4452
4452
|
) : ie;
|
|
@@ -4456,9 +4456,9 @@ const ha = new pa(), { FIND_COMPLETED_TASKS: Ft, ADD_TASKS: Ht } = g, ma = {
|
|
|
4456
4456
|
currentUserId: f.id,
|
|
4457
4457
|
responsibleUserFiltering: c
|
|
4458
4458
|
}), l && l.length > 0 && (M = p === "and" ? M.filter(
|
|
4459
|
-
(ae) => l.every((
|
|
4459
|
+
(ae) => l.every((_e) => ae.labels.includes(_e))
|
|
4460
4460
|
) : M.filter(
|
|
4461
|
-
(ae) => l.some((
|
|
4461
|
+
(ae) => l.some((_e) => ae.labels.includes(_e))
|
|
4462
4462
|
)), {
|
|
4463
4463
|
textContent: Re({
|
|
4464
4464
|
tasks: M,
|
|
@@ -4487,7 +4487,7 @@ const ha = new pa(), { FIND_COMPLETED_TASKS: Ft, ADD_TASKS: Ht } = g, ma = {
|
|
|
4487
4487
|
lang: "en",
|
|
4488
4488
|
limit: d,
|
|
4489
4489
|
cursor: y ?? null
|
|
4490
|
-
}), ie = Ie.map(
|
|
4490
|
+
}), ie = Ie.map(P);
|
|
4491
4491
|
return {
|
|
4492
4492
|
textContent: Re({
|
|
4493
4493
|
tasks: ie,
|
|
@@ -4607,7 +4607,7 @@ function Re({
|
|
|
4607
4607
|
}
|
|
4608
4608
|
const ya = {
|
|
4609
4609
|
projectId: s.string().min(1).optional().describe(
|
|
4610
|
-
|
|
4610
|
+
`Optional project ID. Use "inbox" for the Inbox. If provided, returns that project's tasks grouped by section. If omitted, returns the project and section structure for the whole account with no tasks.`
|
|
4611
4611
|
)
|
|
4612
4612
|
}, Us = s.lazy(
|
|
4613
4613
|
() => s.object({
|
|
@@ -4743,7 +4743,7 @@ async function va(e, t) {
|
|
|
4743
4743
|
limit: j.TASKS_BATCH_SIZE,
|
|
4744
4744
|
cursor: o ?? void 0
|
|
4745
4745
|
});
|
|
4746
|
-
r = r.concat(n.map(
|
|
4746
|
+
r = r.concat(n.map(P)), o = i ?? void 0;
|
|
4747
4747
|
} while (o);
|
|
4748
4748
|
return r;
|
|
4749
4749
|
}
|
|
@@ -4763,7 +4763,10 @@ async function Sa(e) {
|
|
|
4763
4763
|
c.push(...Rs(p, a));
|
|
4764
4764
|
else
|
|
4765
4765
|
c.push("_No projects found._");
|
|
4766
|
-
c.push("")
|
|
4766
|
+
c.push(""), c.push(
|
|
4767
|
+
`_Note: This overview lists projects and sections only; tasks are not included. Call ${g.GET_OVERVIEW} with a projectId (or "inbox") to see a project's tasks._`,
|
|
4768
|
+
""
|
|
4769
|
+
);
|
|
4767
4770
|
const d = n.some((p) => p.children.length > 0);
|
|
4768
4771
|
d && c.push(
|
|
4769
4772
|
"_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._",
|
|
@@ -4837,7 +4840,7 @@ async function Ca(e, t) {
|
|
|
4837
4840
|
}
|
|
4838
4841
|
const ja = {
|
|
4839
4842
|
name: g.GET_OVERVIEW,
|
|
4840
|
-
description:
|
|
4843
|
+
description: `Get a Markdown overview. Called without a projectId, returns the account's project and section structure only — no tasks — for navigation. Pass a projectId (or "inbox" for the Inbox) to get that project's tasks grouped by section.`,
|
|
4841
4844
|
parameters: ya,
|
|
4842
4845
|
outputSchema: Ta,
|
|
4843
4846
|
annotations: { readOnlyHint: !0, destructiveHint: !1, idempotentHint: !0 },
|
|
@@ -4994,7 +4997,7 @@ const Ea = {
|
|
|
4994
4997
|
})
|
|
4995
4998
|
).optional().describe("Weekly completion rollups. Only included when includeWeeklyCounts is true.")
|
|
4996
4999
|
};
|
|
4997
|
-
function
|
|
5000
|
+
function _a(e, t) {
|
|
4998
5001
|
const r = [`# Activity Stats: Project ${e}`, ""];
|
|
4999
5002
|
if (t.dayItems.length > 0) {
|
|
5000
5003
|
r.push("## Daily Activity");
|
|
@@ -5010,7 +5013,7 @@ function Pa(e, t) {
|
|
|
5010
5013
|
return r.join(`
|
|
5011
5014
|
`);
|
|
5012
5015
|
}
|
|
5013
|
-
const
|
|
5016
|
+
const Pa = {
|
|
5014
5017
|
name: g.GET_PROJECT_ACTIVITY_STATS,
|
|
5015
5018
|
description: "Get daily and optional weekly task completion counts for a project over a configurable time window (1-12 weeks). Useful for identifying completion trends and patterns.",
|
|
5016
5019
|
parameters: Ea,
|
|
@@ -5026,7 +5029,7 @@ const _a = {
|
|
|
5026
5029
|
includeWeeklyCounts: n
|
|
5027
5030
|
});
|
|
5028
5031
|
return {
|
|
5029
|
-
textContent:
|
|
5032
|
+
textContent: _a(r, i),
|
|
5030
5033
|
structuredContent: {
|
|
5031
5034
|
projectId: r,
|
|
5032
5035
|
dayItems: i.dayItems,
|
|
@@ -5282,7 +5285,7 @@ const Ya = {
|
|
|
5282
5285
|
projectId: e,
|
|
5283
5286
|
file: r ?? "",
|
|
5284
5287
|
fileName: "template.csv"
|
|
5285
|
-
}), a = i.sections.map(G), c = i.tasks.map(
|
|
5288
|
+
}), a = i.sections.map(G), c = i.tasks.map(P), d = i.comments.map(we), u = i.projects.length + a.length + c.length + d.length;
|
|
5286
5289
|
return {
|
|
5287
5290
|
textContent: Ja({
|
|
5288
5291
|
projectId: e,
|
|
@@ -5827,7 +5830,7 @@ const cc = {
|
|
|
5827
5830
|
const u = d instanceof Error ? d.message : String(d);
|
|
5828
5831
|
throw new Error(`Reschedule failed: ${u}`);
|
|
5829
5832
|
}
|
|
5830
|
-
const i = await Promise.all(r.map((d) => t.getTask(d.id))), a = i.map(
|
|
5833
|
+
const i = await Promise.all(r.map((d) => t.getTask(d.id))), a = i.map(P);
|
|
5831
5834
|
return {
|
|
5832
5835
|
textContent: pt("Rescheduled", a, {
|
|
5833
5836
|
showDetails: a.length <= 5
|
|
@@ -5967,7 +5970,7 @@ const Dc = s.object({
|
|
|
5967
5970
|
async execute(e, t) {
|
|
5968
5971
|
const { comments: r } = e, o = r.map(async (c) => await t.updateComment(c.id, { content: c.content })), i = (await Promise.all(o)).map(we);
|
|
5969
5972
|
return {
|
|
5970
|
-
textContent:
|
|
5973
|
+
textContent: _c({
|
|
5971
5974
|
comments: i
|
|
5972
5975
|
}),
|
|
5973
5976
|
structuredContent: {
|
|
@@ -5981,7 +5984,7 @@ const Dc = s.object({
|
|
|
5981
5984
|
};
|
|
5982
5985
|
}
|
|
5983
5986
|
};
|
|
5984
|
-
function
|
|
5987
|
+
function _c({ comments: e }) {
|
|
5985
5988
|
const t = e.filter((i) => i.taskId).length, r = e.filter((i) => i.projectId).length, o = [];
|
|
5986
5989
|
if (t > 0) {
|
|
5987
5990
|
const i = t > 1 ? "comments" : "comment";
|
|
@@ -5993,7 +5996,7 @@ function Pc({ comments: e }) {
|
|
|
5993
5996
|
}
|
|
5994
5997
|
return o.length > 0 ? `Updated ${o.join(" and ")}` : "No comments updated";
|
|
5995
5998
|
}
|
|
5996
|
-
const
|
|
5999
|
+
const Pc = s.object({
|
|
5997
6000
|
id: s.string().min(1).describe("The ID of the filter to update."),
|
|
5998
6001
|
name: s.string().min(1).optional().describe("The new name of the filter."),
|
|
5999
6002
|
query: s.string().min(1).optional().describe(
|
|
@@ -6009,7 +6012,7 @@ const _c = s.object({
|
|
|
6009
6012
|
color: fe,
|
|
6010
6013
|
isFavorite: s.boolean().optional().describe("Whether to mark the filter as a favorite.")
|
|
6011
6014
|
}), Uc = {
|
|
6012
|
-
filters: s.array(
|
|
6015
|
+
filters: s.array(Pc).min(1).describe("The filters to update.")
|
|
6013
6016
|
}, Rc = {
|
|
6014
6017
|
filters: s.array(ut).describe("The updated filters."),
|
|
6015
6018
|
totalCount: s.number().describe("The total number of filters updated."),
|
|
@@ -6239,7 +6242,7 @@ const Vc = s.object({
|
|
|
6239
6242
|
const l = ed(u);
|
|
6240
6243
|
if (l !== null) return { kind: "skipped", reason: l };
|
|
6241
6244
|
const { id: p, ...h } = u;
|
|
6242
|
-
return { kind: "updated", project: await
|
|
6245
|
+
return { kind: "updated", project: await _(() => t.updateProject(p, h)) };
|
|
6243
6246
|
})
|
|
6244
6247
|
), n = [], i = [];
|
|
6245
6248
|
let a = 0, c = 0;
|
|
@@ -6601,7 +6604,7 @@ const gd = s.object({
|
|
|
6601
6604
|
const b = h.get(k.index);
|
|
6602
6605
|
b && "task" in b && (o[k.index] = { kind: "updated", task: b.task });
|
|
6603
6606
|
}
|
|
6604
|
-
const { updatedTasks: w, failures: C, skippedCount: D } = Sd({ tasks: r, outcomes: o }), T = u.filter((k) => k.redundantMoveSkipped).length, I = w.map(
|
|
6607
|
+
const { updatedTasks: w, failures: C, skippedCount: D } = Sd({ tasks: r, outcomes: o }), T = u.filter((k) => k.redundantMoveSkipped).length, I = w.map(P);
|
|
6605
6608
|
return ne(g.UPDATE_TASKS, r.length, C), {
|
|
6606
6609
|
textContent: Ed({
|
|
6607
6610
|
tasks: I,
|
|
@@ -6645,7 +6648,7 @@ async function Cd(e, t) {
|
|
|
6645
6648
|
if (!e.some((r) => B(r.projectId)))
|
|
6646
6649
|
return {};
|
|
6647
6650
|
try {
|
|
6648
|
-
return { projectId: (await
|
|
6651
|
+
return { projectId: (await _(() => t.getUser())).inboxProjectId };
|
|
6649
6652
|
} catch (r) {
|
|
6650
6653
|
return { error: r };
|
|
6651
6654
|
}
|
|
@@ -6661,7 +6664,7 @@ async function Hs({
|
|
|
6661
6664
|
const o = new Set(t), n = {
|
|
6662
6665
|
ids: t.join(","),
|
|
6663
6666
|
limit: et
|
|
6664
|
-
}, { results: i } = await
|
|
6667
|
+
}, { results: i } = await _(() => e.getTasks(n));
|
|
6665
6668
|
for (const a of i)
|
|
6666
6669
|
o.has(a.id) && r.set(a.id, a);
|
|
6667
6670
|
} catch {
|
|
@@ -6681,19 +6684,19 @@ async function jd({
|
|
|
6681
6684
|
const d = md(c.move), u = n.get(d);
|
|
6682
6685
|
u ? u.push(c) : n.set(d, [c]);
|
|
6683
6686
|
}
|
|
6684
|
-
const i =
|
|
6687
|
+
const i = _r(e), a = [];
|
|
6685
6688
|
for (const c of n.values()) {
|
|
6686
6689
|
const d = [...new Set(c.map(({ item: p }) => p.id))], u = c[0]?.move, l = c.length === 1 ? c[0] : void 0;
|
|
6687
6690
|
try {
|
|
6688
6691
|
if (l) {
|
|
6689
6692
|
const f = await i(
|
|
6690
|
-
() =>
|
|
6693
|
+
() => _(() => e.moveTask(l.item.id, u))
|
|
6691
6694
|
);
|
|
6692
6695
|
r.set(l.item.index, { task: f }), o(c);
|
|
6693
6696
|
continue;
|
|
6694
6697
|
}
|
|
6695
6698
|
const p = await i(
|
|
6696
|
-
() =>
|
|
6699
|
+
() => _(() => e.moveTasks(d, u))
|
|
6697
6700
|
), h = new Map(p.map((f) => [f.id, f])), m = [], y = [];
|
|
6698
6701
|
for (const f of c) {
|
|
6699
6702
|
const w = h.get(f.item.id);
|
|
@@ -6738,12 +6741,12 @@ async function Ad({
|
|
|
6738
6741
|
onUpdated: r,
|
|
6739
6742
|
onFailed: o
|
|
6740
6743
|
}) {
|
|
6741
|
-
const n =
|
|
6744
|
+
const n = Pr(e);
|
|
6742
6745
|
await Promise.all(
|
|
6743
6746
|
t.filter((i) => Fs(i.updateArgs)).map(async (i) => {
|
|
6744
6747
|
try {
|
|
6745
6748
|
const a = await n(
|
|
6746
|
-
() =>
|
|
6749
|
+
() => _(() => e.updateTask(i.id, i.updateArgs))
|
|
6747
6750
|
);
|
|
6748
6751
|
r(i, a);
|
|
6749
6752
|
} catch (a) {
|
|
@@ -6859,7 +6862,7 @@ function qt(e, t, r) {
|
|
|
6859
6862
|
const o = e.trim().toLowerCase();
|
|
6860
6863
|
return t.includes(o) ? r : e;
|
|
6861
6864
|
}
|
|
6862
|
-
const
|
|
6865
|
+
const _d = {}, Pd = {
|
|
6863
6866
|
type: s.literal("user_info").describe("The type of the response."),
|
|
6864
6867
|
userId: s.string().describe("The user ID."),
|
|
6865
6868
|
fullName: s.string().describe("The full name of the user."),
|
|
@@ -6963,8 +6966,8 @@ async function Wd(e) {
|
|
|
6963
6966
|
const Bd = {
|
|
6964
6967
|
name: g.USER_INFO,
|
|
6965
6968
|
description: "Get comprehensive user information including user ID, full name, email, timezone with current local time, week start day preferences, current week dates, daily/weekly goal progress, and user plan (Free/Pro/Business).",
|
|
6966
|
-
parameters:
|
|
6967
|
-
outputSchema:
|
|
6969
|
+
parameters: _d,
|
|
6970
|
+
outputSchema: Pd,
|
|
6968
6971
|
annotations: { readOnlyHint: !0, destructiveHint: !1, idempotentHint: !0 },
|
|
6969
6972
|
async execute(e, t) {
|
|
6970
6973
|
const r = await Wd(t);
|
|
@@ -7120,7 +7123,7 @@ const Xd = {
|
|
|
7120
7123
|
getProductivityStats: Da,
|
|
7121
7124
|
// Health and insights tools
|
|
7122
7125
|
getProjectHealth: Fa,
|
|
7123
|
-
getProjectActivityStats:
|
|
7126
|
+
getProjectActivityStats: Pa,
|
|
7124
7127
|
analyzeProjectHealth: Gn,
|
|
7125
7128
|
getWorkspaceInsights: za,
|
|
7126
7129
|
// General tools
|
|
@@ -7230,7 +7233,7 @@ export {
|
|
|
7230
7233
|
eo as $,
|
|
7231
7234
|
ja as A,
|
|
7232
7235
|
Da as B,
|
|
7233
|
-
|
|
7236
|
+
Pa as C,
|
|
7234
7237
|
Fa as D,
|
|
7235
7238
|
za as E,
|
|
7236
7239
|
fl as F,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-overview.d.ts","sourceRoot":"","sources":["../../src/tools/get-overview.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,KAAK,UAAU,EAClB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,OAAO,EAAuC,MAAM,oBAAoB,CAAA;AAEjF,OAAO,EAAiB,KAAK,cAAc,EAAoB,MAAM,4BAA4B,CAAA;AA4NjG,KAAK,gBAAgB,GAAG;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,cAAc,EAAE,CAAA;IAC1B,QAAQ,EAAE,gBAAgB,EAAE,CAAA;CAC/B,CAAA;AAED,KAAK,yBAAyB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IACvD,IAAI,EAAE,kBAAkB,CAAA;IACxB,KAAK,CAAC,EAAE;QACJ,EAAE,EAAE,MAAM,CAAA;QACV,IAAI,EAAE,MAAM,CAAA;QACZ,QAAQ,EAAE,cAAc,EAAE,CAAA;KAC7B,CAAA;IACD,QAAQ,EAAE,gBAAgB,EAAE,CAAA;IAC5B,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,iBAAiB,EAAE,OAAO,CAAA;CAC7B,CAAA;AAED,KAAK,yBAAyB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IACvD,IAAI,EAAE,kBAAkB,CAAA;IACxB,OAAO,EAAE;QACL,EAAE,EAAE,MAAM,CAAA;QACV,IAAI,EAAE,MAAM,CAAA;KACf,CAAA;IACD,QAAQ,EAAE,cAAc,EAAE,CAAA;IAC1B,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO,OAAO,CAAC,GAAG;QAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;KAAE,CAAC,CAAA;IAChE,KAAK,EAAE;QACH,UAAU,EAAE,MAAM,CAAA;QAClB,aAAa,EAAE,MAAM,CAAA;QACrB,mBAAmB,EAAE,MAAM,CAAA;KAC9B,CAAA;CACJ,CAAA;
|
|
1
|
+
{"version":3,"file":"get-overview.d.ts","sourceRoot":"","sources":["../../src/tools/get-overview.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,KAAK,UAAU,EAClB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,OAAO,EAAuC,MAAM,oBAAoB,CAAA;AAEjF,OAAO,EAAiB,KAAK,cAAc,EAAoB,MAAM,4BAA4B,CAAA;AA4NjG,KAAK,gBAAgB,GAAG;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,cAAc,EAAE,CAAA;IAC1B,QAAQ,EAAE,gBAAgB,EAAE,CAAA;CAC/B,CAAA;AAED,KAAK,yBAAyB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IACvD,IAAI,EAAE,kBAAkB,CAAA;IACxB,KAAK,CAAC,EAAE;QACJ,EAAE,EAAE,MAAM,CAAA;QACV,IAAI,EAAE,MAAM,CAAA;QACZ,QAAQ,EAAE,cAAc,EAAE,CAAA;KAC7B,CAAA;IACD,QAAQ,EAAE,gBAAgB,EAAE,CAAA;IAC5B,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,iBAAiB,EAAE,OAAO,CAAA;CAC7B,CAAA;AAED,KAAK,yBAAyB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IACvD,IAAI,EAAE,kBAAkB,CAAA;IACxB,OAAO,EAAE;QACL,EAAE,EAAE,MAAM,CAAA;QACV,IAAI,EAAE,MAAM,CAAA;KACf,CAAA;IACD,QAAQ,EAAE,cAAc,EAAE,CAAA;IAC1B,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO,OAAO,CAAC,GAAG;QAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;KAAE,CAAC,CAAA;IAChE,KAAK,EAAE;QACH,UAAU,EAAE,MAAM,CAAA;QAClB,aAAa,EAAE,MAAM,CAAA;QACrB,mBAAmB,EAAE,MAAM,CAAA;KAC9B,CAAA;CACJ,CAAA;AAuKD,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAzZT,MAAM;kBACJ,MAAM;uBACD,MAAM;uBACN,MAAM;wBACL,MAAM;sBACR,cAAc,EAAE;sBAChB,OAAO,EAAE;;gBANf,MAAM;kBACJ,MAAM;uBACD,MAAM;uBACN,MAAM;wBACL,MAAM;sBACR,cAAc,EAAE;sBAChB,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqawC,CAAA;AAE/D,OAAO,EAAE,KAAK,yBAAyB,EAAE,WAAW,EAAE,KAAK,yBAAyB,EAAE,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@doist/todoist-mcp",
|
|
3
|
-
"version": "13.2.
|
|
3
|
+
"version": "13.2.5",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"prepare": "husky"
|
|
66
66
|
},
|
|
67
67
|
"dependencies": {
|
|
68
|
-
"@doist/todoist-sdk": "15.
|
|
68
|
+
"@doist/todoist-sdk": "15.2.0",
|
|
69
69
|
"@modelcontextprotocol/ext-apps": "1.2.2",
|
|
70
70
|
"date-fns": "4.1.0",
|
|
71
71
|
"dompurify": "3.3.3",
|
|
@@ -89,7 +89,7 @@
|
|
|
89
89
|
"@types/morgan": "1.9.10",
|
|
90
90
|
"@types/node": "22.20.1",
|
|
91
91
|
"@types/react": "19.2.18",
|
|
92
|
-
"@types/react-dom": "19.2.
|
|
92
|
+
"@types/react-dom": "19.2.7",
|
|
93
93
|
"@vitejs/plugin-react": "5.2.0",
|
|
94
94
|
"concurrently": "9.2.4",
|
|
95
95
|
"conventional-changelog-conventionalcommits": "9.3.1",
|