@hasna/todos 0.11.51 → 0.11.52
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/cli/index.js
CHANGED
|
@@ -25086,6 +25086,21 @@ var init_task_crud2 = __esm(() => {
|
|
|
25086
25086
|
init_token_utils();
|
|
25087
25087
|
});
|
|
25088
25088
|
|
|
25089
|
+
// src/db/labels.ts
|
|
25090
|
+
function rowToLabel(row) {
|
|
25091
|
+
return { ...row };
|
|
25092
|
+
}
|
|
25093
|
+
function listLabels(projectId, db) {
|
|
25094
|
+
const d = db || getDatabase();
|
|
25095
|
+
if (projectId) {
|
|
25096
|
+
return d.query("SELECT * FROM labels WHERE project_id IS NULL OR project_id = ? ORDER BY name").all(projectId).map(rowToLabel);
|
|
25097
|
+
}
|
|
25098
|
+
return d.query("SELECT * FROM labels ORDER BY name").all().map(rowToLabel);
|
|
25099
|
+
}
|
|
25100
|
+
var init_labels = __esm(() => {
|
|
25101
|
+
init_database();
|
|
25102
|
+
});
|
|
25103
|
+
|
|
25089
25104
|
// src/lib/mention-resolver.ts
|
|
25090
25105
|
var exports_mention_resolver = {};
|
|
25091
25106
|
__export(exports_mention_resolver, {
|
|
@@ -29187,6 +29202,7 @@ function registerTaskProjectTools(server, ctx) {
|
|
|
29187
29202
|
if (shouldRegisterTool("create_project")) {
|
|
29188
29203
|
server.tool("create_project", "Create a new project.", {
|
|
29189
29204
|
name: exports_external.string().describe("Project name"),
|
|
29205
|
+
path: exports_external.string().describe("Unique filesystem path for the project"),
|
|
29190
29206
|
description: exports_external.string().optional(),
|
|
29191
29207
|
status: exports_external.enum(["active", "completed", "on_hold", "archived"]).optional(),
|
|
29192
29208
|
short_id: exports_external.string().nullable().optional().describe("Short ID (auto-generated if omitted)"),
|
|
@@ -29206,7 +29222,11 @@ function registerTaskProjectTools(server, ctx) {
|
|
|
29206
29222
|
limit: exports_external.number().optional()
|
|
29207
29223
|
}, async ({ status, limit }) => {
|
|
29208
29224
|
try {
|
|
29209
|
-
|
|
29225
|
+
let projects = listProjects();
|
|
29226
|
+
if (status)
|
|
29227
|
+
projects = projects.filter((p) => p.status === status);
|
|
29228
|
+
if (limit)
|
|
29229
|
+
projects = projects.slice(0, limit);
|
|
29210
29230
|
if (projects.length === 0)
|
|
29211
29231
|
return { content: [{ type: "text", text: "No projects found." }] };
|
|
29212
29232
|
const lines = projects.map((p) => `[${p.status}] ${p.short_id || p.id.slice(0, 8)} ${p.name}`);
|
|
@@ -29836,12 +29856,12 @@ Tasks:` : null,
|
|
|
29836
29856
|
});
|
|
29837
29857
|
}
|
|
29838
29858
|
if (shouldRegisterTool("list_tags")) {
|
|
29839
|
-
server.tool("list_tags", "List all tags.", async () => {
|
|
29859
|
+
server.tool("list_tags", "List all distinct task tags in use, with task counts.", async () => {
|
|
29840
29860
|
try {
|
|
29841
|
-
const
|
|
29842
|
-
if (
|
|
29861
|
+
const rows = getDatabase().query("SELECT tag, COUNT(*) AS count FROM task_tags GROUP BY tag ORDER BY tag").all();
|
|
29862
|
+
if (rows.length === 0)
|
|
29843
29863
|
return { content: [{ type: "text", text: "No tags found." }] };
|
|
29844
|
-
const lines =
|
|
29864
|
+
const lines = rows.map((r) => `${r.tag} (${r.count})`);
|
|
29845
29865
|
return { content: [{ type: "text", text: lines.join(`
|
|
29846
29866
|
`) }] };
|
|
29847
29867
|
} catch (e) {
|
|
@@ -30410,6 +30430,8 @@ var init_task_project_tools = __esm(() => {
|
|
|
30410
30430
|
init_comments();
|
|
30411
30431
|
init_task_runs();
|
|
30412
30432
|
init_project_bootstrap();
|
|
30433
|
+
init_database();
|
|
30434
|
+
init_labels();
|
|
30413
30435
|
init_redaction();
|
|
30414
30436
|
init_retention_cleanup();
|
|
30415
30437
|
init_mention_resolver();
|
|
@@ -42860,8 +42882,17 @@ function buildServer() {
|
|
|
42860
42882
|
version: getMcpVersion()
|
|
42861
42883
|
});
|
|
42862
42884
|
installMcpTokenDiagnostics(server);
|
|
42885
|
+
const registeredToolNames = new Set;
|
|
42886
|
+
const shouldRegisterToolOnce = (name) => {
|
|
42887
|
+
if (!shouldRegisterTool(name))
|
|
42888
|
+
return false;
|
|
42889
|
+
if (registeredToolNames.has(name))
|
|
42890
|
+
return false;
|
|
42891
|
+
registeredToolNames.add(name);
|
|
42892
|
+
return true;
|
|
42893
|
+
};
|
|
42863
42894
|
const toolContext = {
|
|
42864
|
-
shouldRegisterTool,
|
|
42895
|
+
shouldRegisterTool: shouldRegisterToolOnce,
|
|
42865
42896
|
resolveId,
|
|
42866
42897
|
formatError,
|
|
42867
42898
|
formatTask,
|
|
@@ -42881,8 +42912,8 @@ function buildServer() {
|
|
|
42881
42912
|
registerTemplateTools(server, toolContext);
|
|
42882
42913
|
registerEnvironmentSnapshotTools(server, toolContext);
|
|
42883
42914
|
registerWorkflowPrompts(server);
|
|
42884
|
-
registerMachineTools(server, { shouldRegisterTool, formatError });
|
|
42885
|
-
registerDispatchTools(server, { shouldRegisterTool, resolveId, formatError });
|
|
42915
|
+
registerMachineTools(server, { shouldRegisterTool: shouldRegisterToolOnce, formatError });
|
|
42916
|
+
registerDispatchTools(server, { shouldRegisterTool: shouldRegisterToolOnce, resolveId, formatError });
|
|
42886
42917
|
return server;
|
|
42887
42918
|
}
|
|
42888
42919
|
async function main() {
|
package/dist/mcp/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA+EpE,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAO9E;AA8GD,wBAAgB,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA+EpE,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAO9E;AA8GD,wBAAgB,WAAW,cAsD1B"}
|
package/dist/mcp/index.js
CHANGED
|
@@ -14442,6 +14442,21 @@ var init_project_bootstrap = __esm(() => {
|
|
|
14442
14442
|
init_task_lists();
|
|
14443
14443
|
});
|
|
14444
14444
|
|
|
14445
|
+
// src/db/labels.ts
|
|
14446
|
+
function rowToLabel(row) {
|
|
14447
|
+
return { ...row };
|
|
14448
|
+
}
|
|
14449
|
+
function listLabels(projectId, db) {
|
|
14450
|
+
const d = db || getDatabase();
|
|
14451
|
+
if (projectId) {
|
|
14452
|
+
return d.query("SELECT * FROM labels WHERE project_id IS NULL OR project_id = ? ORDER BY name").all(projectId).map(rowToLabel);
|
|
14453
|
+
}
|
|
14454
|
+
return d.query("SELECT * FROM labels ORDER BY name").all().map(rowToLabel);
|
|
14455
|
+
}
|
|
14456
|
+
var init_labels = __esm(() => {
|
|
14457
|
+
init_database();
|
|
14458
|
+
});
|
|
14459
|
+
|
|
14445
14460
|
// src/lib/retention-cleanup.ts
|
|
14446
14461
|
import { existsSync as existsSync7, unlinkSync } from "fs";
|
|
14447
14462
|
function normalizeScopes(scopes) {
|
|
@@ -20147,6 +20162,7 @@ function registerTaskProjectTools(server, ctx) {
|
|
|
20147
20162
|
if (shouldRegisterTool("create_project")) {
|
|
20148
20163
|
server.tool("create_project", "Create a new project.", {
|
|
20149
20164
|
name: exports_external.string().describe("Project name"),
|
|
20165
|
+
path: exports_external.string().describe("Unique filesystem path for the project"),
|
|
20150
20166
|
description: exports_external.string().optional(),
|
|
20151
20167
|
status: exports_external.enum(["active", "completed", "on_hold", "archived"]).optional(),
|
|
20152
20168
|
short_id: exports_external.string().nullable().optional().describe("Short ID (auto-generated if omitted)"),
|
|
@@ -20166,7 +20182,11 @@ function registerTaskProjectTools(server, ctx) {
|
|
|
20166
20182
|
limit: exports_external.number().optional()
|
|
20167
20183
|
}, async ({ status, limit }) => {
|
|
20168
20184
|
try {
|
|
20169
|
-
|
|
20185
|
+
let projects = listProjects();
|
|
20186
|
+
if (status)
|
|
20187
|
+
projects = projects.filter((p) => p.status === status);
|
|
20188
|
+
if (limit)
|
|
20189
|
+
projects = projects.slice(0, limit);
|
|
20170
20190
|
if (projects.length === 0)
|
|
20171
20191
|
return { content: [{ type: "text", text: "No projects found." }] };
|
|
20172
20192
|
const lines = projects.map((p) => `[${p.status}] ${p.short_id || p.id.slice(0, 8)} ${p.name}`);
|
|
@@ -20796,12 +20816,12 @@ Tasks:` : null,
|
|
|
20796
20816
|
});
|
|
20797
20817
|
}
|
|
20798
20818
|
if (shouldRegisterTool("list_tags")) {
|
|
20799
|
-
server.tool("list_tags", "List all tags.", async () => {
|
|
20819
|
+
server.tool("list_tags", "List all distinct task tags in use, with task counts.", async () => {
|
|
20800
20820
|
try {
|
|
20801
|
-
const
|
|
20802
|
-
if (
|
|
20821
|
+
const rows = getDatabase().query("SELECT tag, COUNT(*) AS count FROM task_tags GROUP BY tag ORDER BY tag").all();
|
|
20822
|
+
if (rows.length === 0)
|
|
20803
20823
|
return { content: [{ type: "text", text: "No tags found." }] };
|
|
20804
|
-
const lines =
|
|
20824
|
+
const lines = rows.map((r) => `${r.tag} (${r.count})`);
|
|
20805
20825
|
return { content: [{ type: "text", text: lines.join(`
|
|
20806
20826
|
`) }] };
|
|
20807
20827
|
} catch (e) {
|
|
@@ -21370,6 +21390,8 @@ var init_task_project_tools = __esm(() => {
|
|
|
21370
21390
|
init_comments();
|
|
21371
21391
|
init_task_runs();
|
|
21372
21392
|
init_project_bootstrap();
|
|
21393
|
+
init_database();
|
|
21394
|
+
init_labels();
|
|
21373
21395
|
init_redaction();
|
|
21374
21396
|
init_retention_cleanup();
|
|
21375
21397
|
init_mention_resolver();
|
|
@@ -37312,8 +37334,17 @@ function buildServer() {
|
|
|
37312
37334
|
version: getMcpVersion()
|
|
37313
37335
|
});
|
|
37314
37336
|
installMcpTokenDiagnostics(server);
|
|
37337
|
+
const registeredToolNames = new Set;
|
|
37338
|
+
const shouldRegisterToolOnce = (name) => {
|
|
37339
|
+
if (!shouldRegisterTool(name))
|
|
37340
|
+
return false;
|
|
37341
|
+
if (registeredToolNames.has(name))
|
|
37342
|
+
return false;
|
|
37343
|
+
registeredToolNames.add(name);
|
|
37344
|
+
return true;
|
|
37345
|
+
};
|
|
37315
37346
|
const toolContext = {
|
|
37316
|
-
shouldRegisterTool,
|
|
37347
|
+
shouldRegisterTool: shouldRegisterToolOnce,
|
|
37317
37348
|
resolveId,
|
|
37318
37349
|
formatError,
|
|
37319
37350
|
formatTask,
|
|
@@ -37333,8 +37364,8 @@ function buildServer() {
|
|
|
37333
37364
|
registerTemplateTools(server, toolContext);
|
|
37334
37365
|
registerEnvironmentSnapshotTools(server, toolContext);
|
|
37335
37366
|
registerWorkflowPrompts(server);
|
|
37336
|
-
registerMachineTools(server, { shouldRegisterTool, formatError });
|
|
37337
|
-
registerDispatchTools(server, { shouldRegisterTool, resolveId, formatError });
|
|
37367
|
+
registerMachineTools(server, { shouldRegisterTool: shouldRegisterToolOnce, formatError });
|
|
37368
|
+
registerDispatchTools(server, { shouldRegisterTool: shouldRegisterToolOnce, resolveId, formatError });
|
|
37338
37369
|
return server;
|
|
37339
37370
|
}
|
|
37340
37371
|
async function main() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-project-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/task-project-tools.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"task-project-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/task-project-tools.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAoIjD,UAAU,kBAAkB;IAC1B,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9C,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACzD,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IACxC,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC;IACnC,gBAAgB,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACvE,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;CAC3F;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,kBAAkB,QAi2FlF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-trust.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/workspace-trust.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,KAAK,OAAO,GAAG;IACb,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9C,WAAW,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;CACrC,CAAC;AAEF,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,kBAAkB,EAAE,WAAW,EAAE,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"workspace-trust.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/workspace-trust.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,KAAK,OAAO,GAAG;IACb,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9C,WAAW,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;CACrC,CAAC;AAEF,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,kBAAkB,EAAE,WAAW,EAAE,EAAE,OAAO,GAAG,IAAI,CA0DjH"}
|
package/dist/server/index.js
CHANGED
|
@@ -32089,6 +32089,21 @@ var init_project_bootstrap = __esm(() => {
|
|
|
32089
32089
|
init_task_lists();
|
|
32090
32090
|
});
|
|
32091
32091
|
|
|
32092
|
+
// src/db/labels.ts
|
|
32093
|
+
function rowToLabel(row) {
|
|
32094
|
+
return { ...row };
|
|
32095
|
+
}
|
|
32096
|
+
function listLabels(projectId, db) {
|
|
32097
|
+
const d = db || getDatabase();
|
|
32098
|
+
if (projectId) {
|
|
32099
|
+
return d.query("SELECT * FROM labels WHERE project_id IS NULL OR project_id = ? ORDER BY name").all(projectId).map(rowToLabel);
|
|
32100
|
+
}
|
|
32101
|
+
return d.query("SELECT * FROM labels ORDER BY name").all().map(rowToLabel);
|
|
32102
|
+
}
|
|
32103
|
+
var init_labels = __esm(() => {
|
|
32104
|
+
init_database();
|
|
32105
|
+
});
|
|
32106
|
+
|
|
32092
32107
|
// src/lib/retention-cleanup.ts
|
|
32093
32108
|
import { existsSync as existsSync9, unlinkSync } from "fs";
|
|
32094
32109
|
function normalizeScopes(scopes) {
|
|
@@ -37794,6 +37809,7 @@ function registerTaskProjectTools(server, ctx) {
|
|
|
37794
37809
|
if (shouldRegisterTool("create_project")) {
|
|
37795
37810
|
server.tool("create_project", "Create a new project.", {
|
|
37796
37811
|
name: exports_external.string().describe("Project name"),
|
|
37812
|
+
path: exports_external.string().describe("Unique filesystem path for the project"),
|
|
37797
37813
|
description: exports_external.string().optional(),
|
|
37798
37814
|
status: exports_external.enum(["active", "completed", "on_hold", "archived"]).optional(),
|
|
37799
37815
|
short_id: exports_external.string().nullable().optional().describe("Short ID (auto-generated if omitted)"),
|
|
@@ -37813,7 +37829,11 @@ function registerTaskProjectTools(server, ctx) {
|
|
|
37813
37829
|
limit: exports_external.number().optional()
|
|
37814
37830
|
}, async ({ status, limit }) => {
|
|
37815
37831
|
try {
|
|
37816
|
-
|
|
37832
|
+
let projects = listProjects();
|
|
37833
|
+
if (status)
|
|
37834
|
+
projects = projects.filter((p) => p.status === status);
|
|
37835
|
+
if (limit)
|
|
37836
|
+
projects = projects.slice(0, limit);
|
|
37817
37837
|
if (projects.length === 0)
|
|
37818
37838
|
return { content: [{ type: "text", text: "No projects found." }] };
|
|
37819
37839
|
const lines = projects.map((p) => `[${p.status}] ${p.short_id || p.id.slice(0, 8)} ${p.name}`);
|
|
@@ -38443,12 +38463,12 @@ Tasks:` : null,
|
|
|
38443
38463
|
});
|
|
38444
38464
|
}
|
|
38445
38465
|
if (shouldRegisterTool("list_tags")) {
|
|
38446
|
-
server.tool("list_tags", "List all tags.", async () => {
|
|
38466
|
+
server.tool("list_tags", "List all distinct task tags in use, with task counts.", async () => {
|
|
38447
38467
|
try {
|
|
38448
|
-
const
|
|
38449
|
-
if (
|
|
38468
|
+
const rows = getDatabase().query("SELECT tag, COUNT(*) AS count FROM task_tags GROUP BY tag ORDER BY tag").all();
|
|
38469
|
+
if (rows.length === 0)
|
|
38450
38470
|
return { content: [{ type: "text", text: "No tags found." }] };
|
|
38451
|
-
const lines =
|
|
38471
|
+
const lines = rows.map((r) => `${r.tag} (${r.count})`);
|
|
38452
38472
|
return { content: [{ type: "text", text: lines.join(`
|
|
38453
38473
|
`) }] };
|
|
38454
38474
|
} catch (e) {
|
|
@@ -39017,6 +39037,8 @@ var init_task_project_tools = __esm(() => {
|
|
|
39017
39037
|
init_comments();
|
|
39018
39038
|
init_task_runs();
|
|
39019
39039
|
init_project_bootstrap();
|
|
39040
|
+
init_database();
|
|
39041
|
+
init_labels();
|
|
39020
39042
|
init_redaction();
|
|
39021
39043
|
init_retention_cleanup();
|
|
39022
39044
|
init_mention_resolver();
|
|
@@ -76858,8 +76880,17 @@ function buildServer() {
|
|
|
76858
76880
|
version: getMcpVersion()
|
|
76859
76881
|
});
|
|
76860
76882
|
installMcpTokenDiagnostics(server);
|
|
76883
|
+
const registeredToolNames = new Set;
|
|
76884
|
+
const shouldRegisterToolOnce = (name) => {
|
|
76885
|
+
if (!shouldRegisterTool(name))
|
|
76886
|
+
return false;
|
|
76887
|
+
if (registeredToolNames.has(name))
|
|
76888
|
+
return false;
|
|
76889
|
+
registeredToolNames.add(name);
|
|
76890
|
+
return true;
|
|
76891
|
+
};
|
|
76861
76892
|
const toolContext = {
|
|
76862
|
-
shouldRegisterTool,
|
|
76893
|
+
shouldRegisterTool: shouldRegisterToolOnce,
|
|
76863
76894
|
resolveId,
|
|
76864
76895
|
formatError: formatError2,
|
|
76865
76896
|
formatTask,
|
|
@@ -76879,8 +76910,8 @@ function buildServer() {
|
|
|
76879
76910
|
registerTemplateTools(server, toolContext);
|
|
76880
76911
|
registerEnvironmentSnapshotTools(server, toolContext);
|
|
76881
76912
|
registerWorkflowPrompts(server);
|
|
76882
|
-
registerMachineTools(server, { shouldRegisterTool, formatError: formatError2 });
|
|
76883
|
-
registerDispatchTools(server, { shouldRegisterTool, resolveId, formatError: formatError2 });
|
|
76913
|
+
registerMachineTools(server, { shouldRegisterTool: shouldRegisterToolOnce, formatError: formatError2 });
|
|
76914
|
+
registerDispatchTools(server, { shouldRegisterTool: shouldRegisterToolOnce, resolveId, formatError: formatError2 });
|
|
76884
76915
|
return server;
|
|
76885
76916
|
}
|
|
76886
76917
|
async function main() {
|