@j0hanz/todokit-mcp 1.0.1 → 1.0.3
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/README.md +309 -28
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +38 -18
- package/dist/index.js.map +1 -1
- package/dist/lib/errors.d.ts.map +1 -1
- package/dist/lib/errors.js +14 -29
- package/dist/lib/errors.js.map +1 -1
- package/dist/lib/resolve.d.ts +52 -0
- package/dist/lib/resolve.d.ts.map +1 -0
- package/dist/lib/resolve.js +13 -12
- package/dist/lib/resolve.js.map +1 -1
- package/dist/lib/storage.d.ts +10 -1
- package/dist/lib/storage.d.ts.map +1 -1
- package/dist/lib/storage.js +11 -259
- package/dist/lib/storage.js.map +1 -1
- package/dist/lib/storage_filters.d.ts.map +1 -1
- package/dist/lib/storage_filters.js +0 -4
- package/dist/lib/storage_filters.js.map +1 -1
- package/dist/lib/storage_mutations.d.ts +11 -0
- package/dist/lib/storage_mutations.d.ts.map +1 -0
- package/dist/lib/storage_mutations.js +66 -0
- package/dist/lib/storage_mutations.js.map +1 -0
- package/dist/lib/storage_state.d.ts +6 -0
- package/dist/lib/storage_state.d.ts.map +1 -0
- package/dist/lib/storage_state.js +161 -0
- package/dist/lib/storage_state.js.map +1 -0
- package/dist/lib/types.d.ts +2 -2
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/types.js +4 -4
- package/dist/lib/types.js.map +1 -1
- package/dist/schemas/inputs.d.ts +47 -3
- package/dist/schemas/inputs.d.ts.map +1 -1
- package/dist/schemas/inputs.js.map +1 -1
- package/dist/schemas/iso_date.d.ts +4 -0
- package/dist/schemas/iso_date.d.ts.map +1 -0
- package/dist/schemas/iso_date.js +1 -0
- package/dist/schemas/iso_date.js.map +1 -1
- package/dist/tools/add_todo.d.ts.map +1 -1
- package/dist/tools/add_todo.js +2 -3
- package/dist/tools/add_todo.js.map +1 -1
- package/dist/tools/add_todos.d.ts.map +1 -1
- package/dist/tools/add_todos.js +2 -3
- package/dist/tools/add_todos.js.map +1 -1
- package/dist/tools/complete_todo.d.ts.map +1 -1
- package/dist/tools/complete_todo.js +20 -28
- package/dist/tools/complete_todo.js.map +1 -1
- package/dist/tools/delete_todo.d.ts.map +1 -1
- package/dist/tools/delete_todo.js +8 -28
- package/dist/tools/delete_todo.js.map +1 -1
- package/dist/tools/list_todos.d.ts.map +1 -1
- package/dist/tools/list_todos.js +4 -9
- package/dist/tools/list_todos.js.map +1 -1
- package/dist/tools/update_todo.d.ts.map +1 -1
- package/dist/tools/update_todo.js +24 -12
- package/dist/tools/update_todo.js.map +1 -1
- package/package.json +1 -2
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { mkdir, mkdtemp, open, readFile, rename, rm, stat, } from 'node:fs/promises';
|
|
2
|
+
import { basename, dirname, extname, join, resolve } from 'node:path';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
import { TodosSchema } from './types.js';
|
|
5
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
6
|
+
const DEFAULT_TODO_FILE = join(__dirname, '../../todos.json');
|
|
7
|
+
const FILE_TIMEOUT_MS = 5000;
|
|
8
|
+
const FILE_ENCODING = 'utf-8';
|
|
9
|
+
const TEMP_DIR_PREFIX = '.tmp-';
|
|
10
|
+
let writeChain = Promise.resolve();
|
|
11
|
+
function withTimeout(promise, timeoutMs, label) {
|
|
12
|
+
let timer;
|
|
13
|
+
const timeout = new Promise((_, reject) => {
|
|
14
|
+
timer = setTimeout(() => {
|
|
15
|
+
reject(new Error(`${label} timed out after ${String(timeoutMs)}ms`));
|
|
16
|
+
}, timeoutMs);
|
|
17
|
+
});
|
|
18
|
+
return Promise.race([promise, timeout]).finally(() => {
|
|
19
|
+
if (timer) {
|
|
20
|
+
clearTimeout(timer);
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
function getErrorCode(error) {
|
|
25
|
+
if (!error || typeof error !== 'object')
|
|
26
|
+
return undefined;
|
|
27
|
+
if (!('code' in error))
|
|
28
|
+
return undefined;
|
|
29
|
+
const code = error.code;
|
|
30
|
+
return typeof code === 'string' ? code : undefined;
|
|
31
|
+
}
|
|
32
|
+
function isFileNotFound(error) {
|
|
33
|
+
return getErrorCode(error) === 'ENOENT';
|
|
34
|
+
}
|
|
35
|
+
function shouldIgnoreDirSyncError(error) {
|
|
36
|
+
const code = getErrorCode(error);
|
|
37
|
+
return (code === 'EINVAL' ||
|
|
38
|
+
code === 'EPERM' ||
|
|
39
|
+
code === 'ENOTSUP' ||
|
|
40
|
+
code === 'EISDIR');
|
|
41
|
+
}
|
|
42
|
+
function assertJsonFilePath(path) {
|
|
43
|
+
const extension = extname(path).toLowerCase();
|
|
44
|
+
if (extension !== '.json') {
|
|
45
|
+
throw new Error(`Todo storage path must end with .json: ${path}`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
function getTodoFilePath() {
|
|
49
|
+
const override = process.env.TODOKIT_TODO_FILE?.trim();
|
|
50
|
+
const resolved = override ? resolve(override) : DEFAULT_TODO_FILE;
|
|
51
|
+
assertJsonFilePath(resolved);
|
|
52
|
+
return resolved;
|
|
53
|
+
}
|
|
54
|
+
function parseTodos(rawJson) {
|
|
55
|
+
const raw = JSON.parse(rawJson);
|
|
56
|
+
const parsed = TodosSchema.safeParse(raw);
|
|
57
|
+
if (!parsed.success) {
|
|
58
|
+
throw new Error(`Invalid todos.json: ${parsed.error.message}`);
|
|
59
|
+
}
|
|
60
|
+
return parsed.data;
|
|
61
|
+
}
|
|
62
|
+
async function statTodoFile(path) {
|
|
63
|
+
try {
|
|
64
|
+
const stats = await withTimeout(stat(path), FILE_TIMEOUT_MS, 'stat todo file');
|
|
65
|
+
if (!stats.isFile()) {
|
|
66
|
+
throw new Error(`Todo storage path is not a file: ${path}`);
|
|
67
|
+
}
|
|
68
|
+
return stats;
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
if (isFileNotFound(error)) {
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
throw error;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
async function readTodosFile(path) {
|
|
78
|
+
const data = await readFile(path, {
|
|
79
|
+
encoding: FILE_ENCODING,
|
|
80
|
+
signal: AbortSignal.timeout(FILE_TIMEOUT_MS),
|
|
81
|
+
});
|
|
82
|
+
return parseTodos(data);
|
|
83
|
+
}
|
|
84
|
+
export async function readTodosFromDisk() {
|
|
85
|
+
const path = getTodoFilePath();
|
|
86
|
+
try {
|
|
87
|
+
const stats = await statTodoFile(path);
|
|
88
|
+
if (!stats) {
|
|
89
|
+
return [];
|
|
90
|
+
}
|
|
91
|
+
return await readTodosFile(path);
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
if (isFileNotFound(error)) {
|
|
95
|
+
return [];
|
|
96
|
+
}
|
|
97
|
+
throw error;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
async function writeAndSyncFile(path, data) {
|
|
101
|
+
const handle = await withTimeout(open(path, 'w'), FILE_TIMEOUT_MS, 'open temp todo file');
|
|
102
|
+
try {
|
|
103
|
+
await withTimeout(handle.writeFile(data, { encoding: FILE_ENCODING }), FILE_TIMEOUT_MS, 'write todo file');
|
|
104
|
+
await withTimeout(handle.sync(), FILE_TIMEOUT_MS, 'fsync todo file');
|
|
105
|
+
}
|
|
106
|
+
finally {
|
|
107
|
+
await handle.close();
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
async function syncDirectory(path) {
|
|
111
|
+
if (process.platform === 'win32') {
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
try {
|
|
115
|
+
const handle = await withTimeout(open(path, 'r'), FILE_TIMEOUT_MS, 'open todo directory');
|
|
116
|
+
try {
|
|
117
|
+
await withTimeout(handle.sync(), FILE_TIMEOUT_MS, 'fsync todo directory');
|
|
118
|
+
}
|
|
119
|
+
finally {
|
|
120
|
+
await handle.close();
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
catch (error) {
|
|
124
|
+
if (shouldIgnoreDirSyncError(error)) {
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
throw error;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
async function writeFileAtomically(path, data) {
|
|
131
|
+
const targetDir = dirname(path);
|
|
132
|
+
await withTimeout(mkdir(targetDir, { recursive: true }), FILE_TIMEOUT_MS, 'mkdir todo directory');
|
|
133
|
+
const tempDir = await withTimeout(mkdtemp(join(targetDir, TEMP_DIR_PREFIX)), FILE_TIMEOUT_MS, 'mkdtemp todo directory');
|
|
134
|
+
const tempPath = join(tempDir, basename(path));
|
|
135
|
+
try {
|
|
136
|
+
await writeAndSyncFile(tempPath, data);
|
|
137
|
+
await withTimeout(rename(tempPath, path), FILE_TIMEOUT_MS, 'rename todo file');
|
|
138
|
+
await syncDirectory(targetDir);
|
|
139
|
+
}
|
|
140
|
+
finally {
|
|
141
|
+
try {
|
|
142
|
+
await withTimeout(rm(tempDir, { recursive: true, force: true }), FILE_TIMEOUT_MS, 'cleanup temp dir');
|
|
143
|
+
}
|
|
144
|
+
catch {
|
|
145
|
+
void 0;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
export function queueWrite(task) {
|
|
150
|
+
const next = writeChain.then(task, task);
|
|
151
|
+
writeChain = next.then(() => undefined, () => undefined);
|
|
152
|
+
return next;
|
|
153
|
+
}
|
|
154
|
+
export async function waitForWrites() {
|
|
155
|
+
await writeChain;
|
|
156
|
+
}
|
|
157
|
+
export async function persistTodos(todos) {
|
|
158
|
+
const path = getTodoFilePath();
|
|
159
|
+
await writeFileAtomically(path, JSON.stringify(todos, null, 2));
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=storage_state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage_state.js","sourceRoot":"","sources":["../../src/lib/storage_state.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/types.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ declare const TodoSchema: z.ZodObject<{
|
|
|
5
5
|
description: z.ZodOptional<z.ZodString>;
|
|
6
6
|
completed: z.ZodBoolean;
|
|
7
7
|
priority: z.ZodDefault<z.ZodEnum<["low", "normal", "high"]>>;
|
|
8
|
-
dueDate: z.ZodOptional<z.ZodString
|
|
8
|
+
dueDate: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
|
|
9
9
|
tags: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
10
10
|
createdAt: z.ZodString;
|
|
11
11
|
updatedAt: z.ZodOptional<z.ZodString>;
|
|
@@ -39,7 +39,7 @@ export declare const TodosSchema: z.ZodArray<z.ZodObject<{
|
|
|
39
39
|
description: z.ZodOptional<z.ZodString>;
|
|
40
40
|
completed: z.ZodBoolean;
|
|
41
41
|
priority: z.ZodDefault<z.ZodEnum<["low", "normal", "high"]>>;
|
|
42
|
-
dueDate: z.ZodOptional<z.ZodString
|
|
42
|
+
dueDate: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
|
|
43
43
|
tags: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
44
44
|
createdAt: z.ZodString;
|
|
45
45
|
updatedAt: z.ZodOptional<z.ZodString>;
|
package/dist/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWd,CAAC;AAEH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAAsB,CAAC;AAE/C,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC"}
|
package/dist/lib/types.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { IsoDateSchema } from '../schemas/iso_date.js';
|
|
2
|
+
import { IsoDateSchema, IsoDateTimeSchema } from '../schemas/iso_date.js';
|
|
3
3
|
const TodoSchema = z.object({
|
|
4
4
|
id: z.string(),
|
|
5
5
|
title: z.string(),
|
|
@@ -8,9 +8,9 @@ const TodoSchema = z.object({
|
|
|
8
8
|
priority: z.enum(['low', 'normal', 'high']).default('normal'),
|
|
9
9
|
dueDate: IsoDateSchema.optional(),
|
|
10
10
|
tags: z.array(z.string()).default([]),
|
|
11
|
-
createdAt:
|
|
12
|
-
updatedAt:
|
|
13
|
-
completedAt:
|
|
11
|
+
createdAt: IsoDateTimeSchema,
|
|
12
|
+
updatedAt: IsoDateTimeSchema.optional(),
|
|
13
|
+
completedAt: IsoDateTimeSchema.optional(),
|
|
14
14
|
});
|
|
15
15
|
export const TodosSchema = z.array(TodoSchema);
|
|
16
16
|
//# sourceMappingURL=types.js.map
|
package/dist/lib/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE1E,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC7D,OAAO,EAAE,aAAa,CAAC,QAAQ,EAAE;IACjC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACrC,SAAS,EAAE,iBAAiB;IAC5B,SAAS,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IACvC,WAAW,EAAE,iBAAiB,CAAC,QAAQ,EAAE;CAC1C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC"}
|
package/dist/schemas/inputs.d.ts
CHANGED
|
@@ -55,7 +55,7 @@ export declare const AddTodosSchema: z.ZodObject<{
|
|
|
55
55
|
tags?: string[] | undefined;
|
|
56
56
|
}[];
|
|
57
57
|
}>;
|
|
58
|
-
export declare const DeleteTodoSchema: z.ZodObject<{
|
|
58
|
+
export declare const DeleteTodoSchema: z.ZodEffects<z.ZodObject<{
|
|
59
59
|
id: z.ZodOptional<z.ZodString>;
|
|
60
60
|
query: z.ZodOptional<z.ZodString>;
|
|
61
61
|
dryRun: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -67,8 +67,16 @@ export declare const DeleteTodoSchema: z.ZodObject<{
|
|
|
67
67
|
id?: string | undefined;
|
|
68
68
|
query?: string | undefined;
|
|
69
69
|
dryRun?: boolean | undefined;
|
|
70
|
+
}>, {
|
|
71
|
+
id?: string | undefined;
|
|
72
|
+
query?: string | undefined;
|
|
73
|
+
dryRun?: boolean | undefined;
|
|
74
|
+
}, {
|
|
75
|
+
id?: string | undefined;
|
|
76
|
+
query?: string | undefined;
|
|
77
|
+
dryRun?: boolean | undefined;
|
|
70
78
|
}>;
|
|
71
|
-
export declare const CompleteTodoSchema: z.ZodObject<{
|
|
79
|
+
export declare const CompleteTodoSchema: z.ZodEffects<z.ZodObject<{
|
|
72
80
|
id: z.ZodOptional<z.ZodString>;
|
|
73
81
|
query: z.ZodOptional<z.ZodString>;
|
|
74
82
|
completed: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -80,8 +88,16 @@ export declare const CompleteTodoSchema: z.ZodObject<{
|
|
|
80
88
|
id?: string | undefined;
|
|
81
89
|
completed?: boolean | undefined;
|
|
82
90
|
query?: string | undefined;
|
|
91
|
+
}>, {
|
|
92
|
+
id?: string | undefined;
|
|
93
|
+
completed?: boolean | undefined;
|
|
94
|
+
query?: string | undefined;
|
|
95
|
+
}, {
|
|
96
|
+
id?: string | undefined;
|
|
97
|
+
completed?: boolean | undefined;
|
|
98
|
+
query?: string | undefined;
|
|
83
99
|
}>;
|
|
84
|
-
export declare const UpdateTodoSchema: z.ZodObject<{
|
|
100
|
+
export declare const UpdateTodoSchema: z.ZodEffects<z.ZodObject<{
|
|
85
101
|
id: z.ZodOptional<z.ZodString>;
|
|
86
102
|
query: z.ZodOptional<z.ZodString>;
|
|
87
103
|
title: z.ZodOptional<z.ZodString>;
|
|
@@ -129,6 +145,34 @@ export declare const UpdateTodoSchema: z.ZodObject<{
|
|
|
129
145
|
add?: string[] | undefined;
|
|
130
146
|
remove?: string[] | undefined;
|
|
131
147
|
} | undefined;
|
|
148
|
+
}>, {
|
|
149
|
+
description?: string | undefined;
|
|
150
|
+
title?: string | undefined;
|
|
151
|
+
id?: string | undefined;
|
|
152
|
+
completed?: boolean | undefined;
|
|
153
|
+
priority?: "low" | "normal" | "high" | undefined;
|
|
154
|
+
dueDate?: string | undefined;
|
|
155
|
+
tags?: string[] | undefined;
|
|
156
|
+
query?: string | undefined;
|
|
157
|
+
clearFields?: ("description" | "dueDate" | "tags")[] | undefined;
|
|
158
|
+
tagOps?: {
|
|
159
|
+
add?: string[] | undefined;
|
|
160
|
+
remove?: string[] | undefined;
|
|
161
|
+
} | undefined;
|
|
162
|
+
}, {
|
|
163
|
+
description?: string | undefined;
|
|
164
|
+
title?: string | undefined;
|
|
165
|
+
id?: string | undefined;
|
|
166
|
+
completed?: boolean | undefined;
|
|
167
|
+
priority?: "low" | "normal" | "high" | undefined;
|
|
168
|
+
dueDate?: string | undefined;
|
|
169
|
+
tags?: string[] | undefined;
|
|
170
|
+
query?: string | undefined;
|
|
171
|
+
clearFields?: ("description" | "dueDate" | "tags")[] | undefined;
|
|
172
|
+
tagOps?: {
|
|
173
|
+
add?: string[] | undefined;
|
|
174
|
+
remove?: string[] | undefined;
|
|
175
|
+
} | undefined;
|
|
132
176
|
}>;
|
|
133
177
|
export declare const ListTodosFilterSchema: z.ZodObject<{
|
|
134
178
|
completed: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inputs.d.ts","sourceRoot":"","sources":["../../src/schemas/inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"inputs.d.ts","sourceRoot":"","sources":["../../src/schemas/inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA8BxB,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;EAAkB,CAAC;AAE7C,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQhB,CAAC;AAEZ,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;EAsBzB,CAAC;AAEL,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;EAsB3B,CAAC;AASL,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiCzB,CAAC;AAEL,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4CvB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inputs.js","sourceRoot":"","sources":["../../src/schemas/inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC5C,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;AAC3E,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"inputs.js","sourceRoot":"","sources":["../../src/schemas/inputs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iso_date.d.ts","sourceRoot":"","sources":["../../src/schemas/iso_date.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAkBxB,eAAO,MAAM,aAAa,2CAItB,CAAC;AAEL,eAAO,MAAM,iBAAiB,aAAwC,CAAC"}
|
package/dist/schemas/iso_date.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iso_date.js","sourceRoot":"","sources":["../../src/schemas/iso_date.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,cAAc,GAAG,qBAAqB,CAAC;AAE7C,SAAS,cAAc,CAAC,KAAa;IACnC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9C,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IAChC,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACtD,OAAO,CACL,IAAI,CAAC,cAAc,EAAE,KAAK,IAAI;QAC9B,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,GAAG,CAAC;QAChC,IAAI,CAAC,UAAU,EAAE,KAAK,GAAG,CAC1B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC;KAC3B,MAAM,EAAE;KACR,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;IACxC,OAAO,EAAE,2BAA2B;CACrC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"iso_date.js","sourceRoot":"","sources":["../../src/schemas/iso_date.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,cAAc,GAAG,qBAAqB,CAAC;AAE7C,SAAS,cAAc,CAAC,KAAa;IACnC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9C,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IAChC,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACtD,OAAO,CACL,IAAI,CAAC,cAAc,EAAE,KAAK,IAAI;QAC9B,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,GAAG,CAAC;QAChC,IAAI,CAAC,UAAU,EAAE,KAAK,GAAG,CAC1B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC;KAC3B,MAAM,EAAE;KACR,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;IACxC,OAAO,EAAE,2BAA2B;CACrC,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add_todo.d.ts","sourceRoot":"","sources":["../../src/tools/add_todo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAQzE,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"add_todo.d.ts","sourceRoot":"","sources":["../../src/tools/add_todo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAQzE,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA6BvD"}
|
package/dist/tools/add_todo.js
CHANGED
|
@@ -16,15 +16,14 @@ export function registerAddTodo(server) {
|
|
|
16
16
|
}, async ({ title, description, priority, dueDate, tags }) => {
|
|
17
17
|
try {
|
|
18
18
|
const todo = await addTodo(title, description, priority, dueDate, tags);
|
|
19
|
-
|
|
19
|
+
return createToolResponse({
|
|
20
20
|
ok: true,
|
|
21
21
|
result: {
|
|
22
22
|
item: todo,
|
|
23
23
|
summary: `Added todo "${todo.title}"`,
|
|
24
24
|
nextActions: ['list_todos', 'update_todo', 'complete_todo'],
|
|
25
25
|
},
|
|
26
|
-
};
|
|
27
|
-
return createToolResponse(structured);
|
|
26
|
+
});
|
|
28
27
|
}
|
|
29
28
|
catch (err) {
|
|
30
29
|
return createErrorResponse('E_ADD_TODO', getErrorMessage(err));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add_todo.js","sourceRoot":"","sources":["../../src/tools/add_todo.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,UAAU,eAAe,CAAC,MAAiB;IAC/C,MAAM,CAAC,YAAY,CACjB,UAAU,EACV;QACE,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,qBAAqB;QAClC,WAAW,EAAE,aAAa;QAC1B,YAAY,EAAE,mBAAmB;QACjC,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,cAAc,EAAE,KAAK;SACtB;KACF,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;QACxD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YACxE,
|
|
1
|
+
{"version":3,"file":"add_todo.js","sourceRoot":"","sources":["../../src/tools/add_todo.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,UAAU,eAAe,CAAC,MAAiB;IAC/C,MAAM,CAAC,YAAY,CACjB,UAAU,EACV;QACE,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,qBAAqB;QAClC,WAAW,EAAE,aAAa;QAC1B,YAAY,EAAE,mBAAmB;QACjC,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,cAAc,EAAE,KAAK;SACtB;KACF,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;QACxD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YACxE,OAAO,kBAAkB,CAAC;gBACxB,EAAE,EAAE,IAAI;gBACR,MAAM,EAAE;oBACN,IAAI,EAAE,IAAI;oBACV,OAAO,EAAE,eAAe,IAAI,CAAC,KAAK,GAAG;oBACrC,WAAW,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,eAAe,CAAC;iBAC5D;aACF,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,mBAAmB,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;QACjE,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add_todos.d.ts","sourceRoot":"","sources":["../../src/tools/add_todos.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAQzE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"add_todos.d.ts","sourceRoot":"","sources":["../../src/tools/add_todos.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAQzE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA6BxD"}
|
package/dist/tools/add_todos.js
CHANGED
|
@@ -16,15 +16,14 @@ export function registerAddTodos(server) {
|
|
|
16
16
|
}, async ({ items }) => {
|
|
17
17
|
try {
|
|
18
18
|
const todos = await addTodos(items);
|
|
19
|
-
|
|
19
|
+
return createToolResponse({
|
|
20
20
|
ok: true,
|
|
21
21
|
result: {
|
|
22
22
|
items: todos,
|
|
23
23
|
summary: `Added ${String(todos.length)} todos`,
|
|
24
24
|
nextActions: ['list_todos', 'update_todo'],
|
|
25
25
|
},
|
|
26
|
-
};
|
|
27
|
-
return createToolResponse(structured);
|
|
26
|
+
});
|
|
28
27
|
}
|
|
29
28
|
catch (err) {
|
|
30
29
|
return createErrorResponse('E_ADD_TODOS', getErrorMessage(err));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add_todos.js","sourceRoot":"","sources":["../../src/tools/add_todos.ts"],"names":[],"mappings":"AAEA,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;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,UAAU,gBAAgB,CAAC,MAAiB;IAChD,MAAM,CAAC,YAAY,CACjB,WAAW,EACX;QACE,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE,qCAAqC;QAClD,WAAW,EAAE,cAAc;QAC3B,YAAY,EAAE,mBAAmB;QACjC,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,cAAc,EAAE,KAAK;SACtB;KACF,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QAClB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;YACpC,
|
|
1
|
+
{"version":3,"file":"add_todos.js","sourceRoot":"","sources":["../../src/tools/add_todos.ts"],"names":[],"mappings":"AAEA,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;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,UAAU,gBAAgB,CAAC,MAAiB;IAChD,MAAM,CAAC,YAAY,CACjB,WAAW,EACX;QACE,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE,qCAAqC;QAClD,WAAW,EAAE,cAAc;QAC3B,YAAY,EAAE,mBAAmB;QACjC,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,cAAc,EAAE,KAAK;SACtB;KACF,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QAClB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;YACpC,OAAO,kBAAkB,CAAC;gBACxB,EAAE,EAAE,IAAI;gBACR,MAAM,EAAE;oBACN,KAAK,EAAE,KAAK;oBACZ,OAAO,EAAE,SAAS,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ;oBAC9C,WAAW,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC;iBAC3C;aACF,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,mBAAmB,CAAC,aAAa,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;QAClE,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"complete_todo.d.ts","sourceRoot":"","sources":["../../src/tools/complete_todo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"complete_todo.d.ts","sourceRoot":"","sources":["../../src/tools/complete_todo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAwEzE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqB5D"}
|
|
@@ -1,47 +1,39 @@
|
|
|
1
1
|
import { createErrorResponse, getErrorMessage } from '../lib/errors.js';
|
|
2
2
|
import { toResolveInput } from '../lib/resolve.js';
|
|
3
|
-
import { completeTodoBySelector } from '../lib/storage.js';
|
|
3
|
+
import { completeTodoBySelector, } from '../lib/storage.js';
|
|
4
4
|
import { createToolResponse } from '../lib/tool_response.js';
|
|
5
5
|
import { CompleteTodoSchema } from '../schemas/inputs.js';
|
|
6
6
|
import { DefaultOutputSchema } from '../schemas/outputs.js';
|
|
7
|
-
function
|
|
8
|
-
return input.completed ?? true;
|
|
9
|
-
}
|
|
10
|
-
function buildAlreadyStatusResponse(todo, completed) {
|
|
7
|
+
function buildStatusResponse(todo, summary) {
|
|
11
8
|
return createToolResponse({
|
|
12
9
|
ok: true,
|
|
13
10
|
result: {
|
|
14
11
|
item: todo,
|
|
15
|
-
summary
|
|
16
|
-
? `Todo "${todo.title}" is already completed`
|
|
17
|
-
: `Todo "${todo.title}" is already pending`,
|
|
12
|
+
summary,
|
|
18
13
|
nextActions: ['list_todos'],
|
|
19
14
|
},
|
|
20
15
|
});
|
|
21
16
|
}
|
|
22
|
-
function
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
},
|
|
32
|
-
});
|
|
17
|
+
function buildCompletionSummary(todo, completed, already) {
|
|
18
|
+
if (already) {
|
|
19
|
+
return completed
|
|
20
|
+
? `Todo "${todo.title}" is already completed`
|
|
21
|
+
: `Todo "${todo.title}" is already pending`;
|
|
22
|
+
}
|
|
23
|
+
return completed
|
|
24
|
+
? `Completed todo "${todo.title}"`
|
|
25
|
+
: `Reopened todo "${todo.title}"`;
|
|
33
26
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
const outcome = await completeTodoBySelector(toResolveInput({ id: input.id, query: input.query }), targetCompleted);
|
|
37
|
-
if (outcome.kind === 'error')
|
|
38
|
-
return outcome.response;
|
|
39
|
-
if (outcome.kind === 'ambiguous')
|
|
27
|
+
function buildOutcomeResponse(outcome, targetCompleted) {
|
|
28
|
+
if (outcome.kind === 'error' || outcome.kind === 'ambiguous') {
|
|
40
29
|
return outcome.response;
|
|
41
|
-
if (outcome.kind === 'already') {
|
|
42
|
-
return buildAlreadyStatusResponse(outcome.todo, targetCompleted);
|
|
43
30
|
}
|
|
44
|
-
return
|
|
31
|
+
return buildStatusResponse(outcome.todo, buildCompletionSummary(outcome.todo, targetCompleted, outcome.kind === 'already'));
|
|
32
|
+
}
|
|
33
|
+
async function handleCompleteTodo(input) {
|
|
34
|
+
const targetCompleted = input.completed ?? true;
|
|
35
|
+
const outcome = await completeTodoBySelector(toResolveInput({ id: input.id, query: input.query }), targetCompleted);
|
|
36
|
+
return buildOutcomeResponse(outcome, targetCompleted);
|
|
45
37
|
}
|
|
46
38
|
export function registerCompleteTodo(server) {
|
|
47
39
|
server.registerTool('complete_todo', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"complete_todo.js","sourceRoot":"","sources":["../../src/tools/complete_todo.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,
|
|
1
|
+
{"version":3,"file":"complete_todo.js","sourceRoot":"","sources":["../../src/tools/complete_todo.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EACL,sBAAsB,GAEvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAI5D,SAAS,mBAAmB,CAAC,IAAU,EAAE,OAAe;IACtD,OAAO,kBAAkB,CAAC;QACxB,EAAE,EAAE,IAAI;QACR,MAAM,EAAE;YACN,IAAI,EAAE,IAAI;YACV,OAAO;YACP,WAAW,EAAE,CAAC,YAAY,CAAC;SAC5B;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,sBAAsB,CAC7B,IAAU,EACV,SAAkB,EAClB,OAAgB;IAEhB,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,SAAS;YACd,CAAC,CAAC,SAAS,IAAI,CAAC,KAAK,wBAAwB;YAC7C,CAAC,CAAC,SAAS,IAAI,CAAC,KAAK,sBAAsB,CAAC;IAChD,CAAC;IACD,OAAO,SAAS;QACd,CAAC,CAAC,mBAAmB,IAAI,CAAC,KAAK,GAAG;QAClC,CAAC,CAAC,kBAAkB,IAAI,CAAC,KAAK,GAAG,CAAC;AACtC,CAAC;AAED,SAAS,oBAAoB,CAC3B,OAA4B,EAC5B,eAAwB;IAExB,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAC7D,OAAO,OAAO,CAAC,QAAQ,CAAC;IAC1B,CAAC;IACD,OAAO,mBAAmB,CACxB,OAAO,CAAC,IAAI,EACZ,sBAAsB,CACpB,OAAO,CAAC,IAAI,EACZ,eAAe,EACf,OAAO,CAAC,IAAI,KAAK,SAAS,CAC3B,CACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,KAAwB;IAExB,MAAM,eAAe,GAAG,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC;IAChD,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAC1C,cAAc,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,EACpD,eAAe,CAChB,CAAC;IACF,OAAO,oBAAoB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAiB;IACpD,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,uCAAuC;QACpD,WAAW,EAAE,kBAAkB;QAC/B,YAAY,EAAE,mBAAmB;QACjC,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,cAAc,EAAE,IAAI;SACrB;KACF,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;QACd,IAAI,CAAC;YACH,OAAO,MAAM,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,mBAAmB,CAAC,iBAAiB,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;QACtE,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete_todo.d.ts","sourceRoot":"","sources":["../../src/tools/delete_todo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"delete_todo.d.ts","sourceRoot":"","sources":["../../src/tools/delete_todo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAuFzE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAsB1D"}
|
|
@@ -4,16 +4,6 @@ import { deleteTodoBySelector, getTodos } from '../lib/storage.js';
|
|
|
4
4
|
import { createToolResponse } from '../lib/tool_response.js';
|
|
5
5
|
import { DeleteTodoSchema } from '../schemas/inputs.js';
|
|
6
6
|
import { DefaultOutputSchema } from '../schemas/outputs.js';
|
|
7
|
-
function buildDryRunSingle(todo) {
|
|
8
|
-
return createToolResponse({
|
|
9
|
-
ok: true,
|
|
10
|
-
result: {
|
|
11
|
-
deletedIds: [todo.id],
|
|
12
|
-
summary: `Dry run: would delete todo "${todo.title}"`,
|
|
13
|
-
dryRun: true,
|
|
14
|
-
},
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
7
|
function buildDryRunMultiple(previews, total) {
|
|
18
8
|
return createToolResponse({
|
|
19
9
|
ok: true,
|
|
@@ -26,44 +16,34 @@ function buildDryRunMultiple(previews, total) {
|
|
|
26
16
|
},
|
|
27
17
|
});
|
|
28
18
|
}
|
|
29
|
-
function
|
|
19
|
+
function buildDeleteResponse(todo, dryRun) {
|
|
30
20
|
return createToolResponse({
|
|
31
21
|
ok: true,
|
|
32
22
|
result: {
|
|
33
23
|
deletedIds: [todo.id],
|
|
34
|
-
summary:
|
|
35
|
-
|
|
24
|
+
summary: dryRun
|
|
25
|
+
? `Dry run: would delete todo "${todo.title}"`
|
|
26
|
+
: `Deleted todo "${todo.title}"`,
|
|
27
|
+
...(dryRun ? { dryRun: true } : { nextActions: ['list_todos'] }),
|
|
36
28
|
},
|
|
37
29
|
});
|
|
38
30
|
}
|
|
39
|
-
function handleAmbiguousDelete(outcome, dryRun) {
|
|
40
|
-
if (dryRun) {
|
|
41
|
-
return buildDryRunMultiple(outcome.previews, outcome.matches.length);
|
|
42
|
-
}
|
|
43
|
-
return outcome.response;
|
|
44
|
-
}
|
|
45
|
-
function handleMatchDelete(todo, dryRun) {
|
|
46
|
-
if (dryRun) {
|
|
47
|
-
return buildDryRunSingle(todo);
|
|
48
|
-
}
|
|
49
|
-
return buildDeleteSuccess(todo);
|
|
50
|
-
}
|
|
51
31
|
async function handleDeleteTodoDryRun(input) {
|
|
52
32
|
const todos = await getTodos();
|
|
53
33
|
const outcome = unwrapResolution(resolveTodoTargetFromTodos(todos, toResolveInput({ id: input.id, query: input.query })));
|
|
54
34
|
if (outcome.kind === 'error')
|
|
55
35
|
return outcome.response;
|
|
56
36
|
if (outcome.kind === 'ambiguous') {
|
|
57
|
-
return
|
|
37
|
+
return buildDryRunMultiple(outcome.previews, outcome.matches.length);
|
|
58
38
|
}
|
|
59
|
-
return
|
|
39
|
+
return buildDeleteResponse(outcome.todo, true);
|
|
60
40
|
}
|
|
61
41
|
async function handleDeleteTodoLive(input) {
|
|
62
42
|
const outcome = await deleteTodoBySelector(toResolveInput({ id: input.id, query: input.query }));
|
|
63
43
|
if (outcome.kind === 'error' || outcome.kind === 'ambiguous') {
|
|
64
44
|
return outcome.response;
|
|
65
45
|
}
|
|
66
|
-
return
|
|
46
|
+
return buildDeleteResponse(outcome.todo, false);
|
|
67
47
|
}
|
|
68
48
|
async function handleDeleteTodo(input) {
|
|
69
49
|
const dryRun = input.dryRun ?? false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete_todo.js","sourceRoot":"","sources":["../../src/tools/delete_todo.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,
|
|
1
|
+
{"version":3,"file":"delete_todo.js","sourceRoot":"","sources":["../../src/tools/delete_todo.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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"}
|