@cpenned/mcp 0.8.3 → 0.8.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/README.md +24 -6
- package/dist/client.js +40 -6
- package/dist/client.js.map +1 -1
- package/dist/config.js +1 -0
- package/dist/config.js.map +1 -1
- package/dist/server.js +16 -0
- package/dist/server.js.map +1 -1
- package/dist/tools/api.js +39 -0
- package/dist/tools/api.js.map +1 -0
- package/dist/tools/attachments.js +43 -0
- package/dist/tools/attachments.js.map +1 -0
- package/dist/tools/books.js +18 -17
- package/dist/tools/books.js.map +1 -1
- package/dist/tools/gardens.js +8 -7
- package/dist/tools/gardens.js.map +1 -1
- package/dist/tools/habits.js +26 -18
- package/dist/tools/habits.js.map +1 -1
- package/dist/tools/index.js +2 -34
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/keys.js +23 -7
- package/dist/tools/keys.js.map +1 -1
- package/dist/tools/lists.js +6 -5
- package/dist/tools/lists.js.map +1 -1
- package/dist/tools/people.js +17 -15
- package/dist/tools/people.js.map +1 -1
- package/dist/tools/projects.js +11 -9
- package/dist/tools/projects.js.map +1 -1
- package/dist/tools/reading.js +11 -10
- package/dist/tools/reading.js.map +1 -1
- package/dist/tools/render.js +6 -0
- package/dist/tools/render.js.map +1 -1
- package/dist/tools/schemas.js +5 -0
- package/dist/tools/schemas.js.map +1 -1
- package/dist/tools/shares.js +4 -3
- package/dist/tools/shares.js.map +1 -1
- package/dist/tools/strava.js +13 -9
- package/dist/tools/strava.js.map +1 -1
- package/dist/tools/tags.js +8 -7
- package/dist/tools/tags.js.map +1 -1
- package/dist/tools/tasks.js +12 -10
- package/dist/tools/tasks.js.map +1 -1
- package/dist/tools/ui.js +34 -13
- package/dist/tools/ui.js.map +1 -1
- package/dist/tools/views.js +12 -10
- package/dist/tools/views.js.map +1 -1
- package/package.json +1 -1
- package/skills/open-brain-mcp/SKILL.md +34 -14
package/dist/tools/habits.js
CHANGED
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
// and completion logging. archived hides from the default list (restore with
|
|
3
3
|
// unarchive_habit). Person links live on the person side, not here.
|
|
4
4
|
import { z } from "zod";
|
|
5
|
+
import { apiPath } from "../client.js";
|
|
5
6
|
import { runTool } from "../result.js";
|
|
6
|
-
import { dateField, habitScheduleSchema, habitStatusEnum, idempotencyKey, } from "./schemas.js";
|
|
7
|
+
import { dateField, habitScheduleSchema, habitStatusEnum, idempotencyKey, idField, } from "./schemas.js";
|
|
7
8
|
const createHabitSchema = z.object({
|
|
8
9
|
gardenId: z.string(),
|
|
9
10
|
title: z.string(),
|
|
@@ -64,6 +65,7 @@ const listHabitsSchema = z.object({
|
|
|
64
65
|
.optional()
|
|
65
66
|
.describe("Case-insensitive substring search over title/notes/tags"),
|
|
66
67
|
limit: z.number().int().positive().optional(),
|
|
68
|
+
cursor: z.string().optional().describe("nextCursor from a previous page"),
|
|
67
69
|
includeArchived: z
|
|
68
70
|
.boolean()
|
|
69
71
|
.optional()
|
|
@@ -77,15 +79,16 @@ export function listHabits(client, args) {
|
|
|
77
79
|
person: args.personIds?.length ? args.personIds.join(",") : undefined,
|
|
78
80
|
q: args.query,
|
|
79
81
|
limit: args.limit,
|
|
82
|
+
cursor: args.cursor,
|
|
80
83
|
includeArchived: args.includeArchived,
|
|
81
84
|
});
|
|
82
85
|
}
|
|
83
|
-
const getHabitSchema = z.object({ id:
|
|
86
|
+
const getHabitSchema = z.object({ id: idField });
|
|
84
87
|
export function getHabit(client, args) {
|
|
85
|
-
return client.get(`/v1/habits/${args.id}`);
|
|
88
|
+
return client.get(apiPath `/v1/habits/${args.id}`);
|
|
86
89
|
}
|
|
87
90
|
const updateHabitSchema = z.object({
|
|
88
|
-
id:
|
|
91
|
+
id: idField,
|
|
89
92
|
gardenId: z.string().optional(),
|
|
90
93
|
title: z.string().optional(),
|
|
91
94
|
notes: z.string().optional(),
|
|
@@ -107,18 +110,18 @@ const updateHabitSchema = z.object({
|
|
|
107
110
|
});
|
|
108
111
|
export function updateHabit(client, args) {
|
|
109
112
|
const { id, ...patch } = args;
|
|
110
|
-
return client.patch(`/v1/habits/${id}`, patch);
|
|
113
|
+
return client.patch(apiPath `/v1/habits/${id}`, patch);
|
|
111
114
|
}
|
|
112
|
-
const archiveHabitSchema = z.object({ id:
|
|
115
|
+
const archiveHabitSchema = z.object({ id: idField });
|
|
113
116
|
export function archiveHabit(client, args) {
|
|
114
|
-
return client.patch(`/v1/habits/${args.id}`, { archived: true });
|
|
117
|
+
return client.patch(apiPath `/v1/habits/${args.id}`, { archived: true });
|
|
115
118
|
}
|
|
116
|
-
const unarchiveHabitSchema = z.object({ id:
|
|
119
|
+
const unarchiveHabitSchema = z.object({ id: idField });
|
|
117
120
|
export function unarchiveHabit(client, args) {
|
|
118
|
-
return client.patch(`/v1/habits/${args.id}`, { archived: false });
|
|
121
|
+
return client.patch(apiPath `/v1/habits/${args.id}`, { archived: false });
|
|
119
122
|
}
|
|
120
123
|
const completeHabitSchema = z.object({
|
|
121
|
-
id:
|
|
124
|
+
id: idField,
|
|
122
125
|
day: z
|
|
123
126
|
.string()
|
|
124
127
|
.optional()
|
|
@@ -130,11 +133,12 @@ const completeHabitSchema = z.object({
|
|
|
130
133
|
});
|
|
131
134
|
export function completeHabit(client, args) {
|
|
132
135
|
const { id, ...body } = args;
|
|
133
|
-
return client.post(`/v1/habits/${id}/complete`, body);
|
|
136
|
+
return client.post(apiPath `/v1/habits/${id}/complete`, body);
|
|
134
137
|
}
|
|
138
|
+
const COMPLETIONS_LOOKUP_LIMIT = 200;
|
|
135
139
|
const removeHabitCompletionSchema = z.object({
|
|
136
|
-
id:
|
|
137
|
-
completionId:
|
|
140
|
+
id: idField.describe("Habit id"),
|
|
141
|
+
completionId: idField.optional().describe("Completion row id; omit when day is set"),
|
|
138
142
|
day: z
|
|
139
143
|
.string()
|
|
140
144
|
.optional()
|
|
@@ -143,7 +147,11 @@ const removeHabitCompletionSchema = z.object({
|
|
|
143
147
|
export async function removeHabitCompletion(client, args) {
|
|
144
148
|
let completionId = args.completionId;
|
|
145
149
|
if (!completionId) {
|
|
146
|
-
|
|
150
|
+
// The endpoint returns newest first and defaults to 50 rows; 200 (the API
|
|
151
|
+
// max) reaches back far enough to find an older day.
|
|
152
|
+
const rows = (await client.get(apiPath `/v1/habits/${args.id}/completions`, {
|
|
153
|
+
limit: COMPLETIONS_LOOKUP_LIMIT,
|
|
154
|
+
}));
|
|
147
155
|
if (args.day) {
|
|
148
156
|
completionId = rows.find((r) => r.day === args.day)?.id;
|
|
149
157
|
}
|
|
@@ -153,7 +161,7 @@ export async function removeHabitCompletion(client, args) {
|
|
|
153
161
|
if (!completionId)
|
|
154
162
|
throw new Error("No completion found to remove");
|
|
155
163
|
}
|
|
156
|
-
return client.request("DELETE", `/v1/habits/${args.id}/completions/${completionId}`);
|
|
164
|
+
return client.request("DELETE", apiPath `/v1/habits/${args.id}/completions/${completionId}`);
|
|
157
165
|
}
|
|
158
166
|
const reorderHabitsSchema = z.object({
|
|
159
167
|
ids: z.array(z.string()).min(1).describe("Habit ids in display order (first = top)"),
|
|
@@ -161,12 +169,12 @@ const reorderHabitsSchema = z.object({
|
|
|
161
169
|
export function reorderHabits(client, args) {
|
|
162
170
|
return client.post("/v1/habits/reorder", args);
|
|
163
171
|
}
|
|
164
|
-
const habitTagsSchema = z.object({ id:
|
|
172
|
+
const habitTagsSchema = z.object({ id: idField, tagIds: z.array(z.string()) });
|
|
165
173
|
export function addHabitTags(client, args) {
|
|
166
|
-
return client.post(`/v1/habits/${args.id}/tags`, { tagIds: args.tagIds });
|
|
174
|
+
return client.post(apiPath `/v1/habits/${args.id}/tags`, { tagIds: args.tagIds });
|
|
167
175
|
}
|
|
168
176
|
export function removeHabitTags(client, args) {
|
|
169
|
-
return client.request("DELETE", `/v1/habits/${args.id}/tags`, {
|
|
177
|
+
return client.request("DELETE", apiPath `/v1/habits/${args.id}/tags`, {
|
|
170
178
|
body: { tagIds: args.tagIds },
|
|
171
179
|
});
|
|
172
180
|
}
|
package/dist/tools/habits.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"habits.js","sourceRoot":"","sources":["../../src/tools/habits.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,6EAA6E;AAC7E,oEAAoE;AAGpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"habits.js","sourceRoot":"","sources":["../../src/tools/habits.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/index.js
CHANGED
|
@@ -1,39 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { registerBookTools } from "./books.js";
|
|
3
|
-
import { registerCalendarTools } from "./calendar.js";
|
|
4
|
-
import { registerGardenTools } from "./gardens.js";
|
|
5
|
-
import { registerHabitTools } from "./habits.js";
|
|
6
|
-
import { registerKeyTools } from "./keys.js";
|
|
7
|
-
import { registerListTools } from "./lists.js";
|
|
8
|
-
import { registerPeopleTools } from "./people.js";
|
|
9
|
-
import { registerProfileTools } from "./profile.js";
|
|
10
|
-
import { registerProjectTools } from "./projects.js";
|
|
11
|
-
import { registerReadingTools } from "./reading.js";
|
|
12
|
-
import { registerSettingsTools } from "./settings.js";
|
|
13
|
-
import { registerShareTools } from "./shares.js";
|
|
14
|
-
import { registerStravaTools } from "./strava.js";
|
|
15
|
-
import { registerTagTools } from "./tags.js";
|
|
16
|
-
import { registerTaskTools } from "./tasks.js";
|
|
1
|
+
import { registerApiTools } from "./api.js";
|
|
17
2
|
import { registerUiTools } from "./ui.js";
|
|
18
|
-
import { registerViewTools } from "./views.js";
|
|
19
3
|
export function registerAllTools(server, client) {
|
|
20
|
-
|
|
21
|
-
registerProjectTools(server, client);
|
|
22
|
-
registerGardenTools(server, client);
|
|
23
|
-
registerTagTools(server, client);
|
|
24
|
-
registerPeopleTools(server, client);
|
|
25
|
-
registerReadingTools(server, client);
|
|
26
|
-
registerHabitTools(server, client);
|
|
27
|
-
registerBookTools(server, client);
|
|
28
|
-
registerStravaTools(server, client);
|
|
29
|
-
registerCalendarTools(server, client);
|
|
30
|
-
registerListTools(server, client);
|
|
31
|
-
registerViewTools(server, client);
|
|
32
|
-
registerAiTools(server, client);
|
|
4
|
+
registerApiTools(server, client);
|
|
33
5
|
registerUiTools(server, client);
|
|
34
|
-
registerKeyTools(server, client);
|
|
35
|
-
registerSettingsTools(server, client);
|
|
36
|
-
registerShareTools(server, client);
|
|
37
|
-
registerProfileTools(server, client);
|
|
38
6
|
}
|
|
39
7
|
//# sourceMappingURL=index.js.map
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C,MAAM,UAAU,gBAAgB,CAAC,MAAiB,EAAE,MAAuB;IACzE,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAClC,CAAC"}
|
package/dist/tools/keys.js
CHANGED
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
// secret ONCE - it is never retrievable again. A key can only grant scopes it
|
|
4
4
|
// itself holds (no privilege escalation, enforced server-side).
|
|
5
5
|
import { z } from "zod";
|
|
6
|
+
import { apiPath } from "../client.js";
|
|
6
7
|
import { runTool } from "../result.js";
|
|
8
|
+
import { idField } from "./schemas.js";
|
|
7
9
|
const createKeySchema = z.object({
|
|
8
10
|
name: z.string(),
|
|
9
11
|
scopes: z
|
|
@@ -28,12 +30,26 @@ export function createKey(client, args) {
|
|
|
28
30
|
export function listKeys(client) {
|
|
29
31
|
return client.get("/v1/keys");
|
|
30
32
|
}
|
|
31
|
-
const keyIdSchema = z.object({ id:
|
|
32
|
-
|
|
33
|
-
|
|
33
|
+
const keyIdSchema = z.object({ id: idField });
|
|
34
|
+
async function isOwnKey(client, id) {
|
|
35
|
+
const keys = await client.get("/v1/keys");
|
|
36
|
+
const target = keys?.items?.find((k) => k.id === id);
|
|
37
|
+
return Boolean(target?.prefix && client.usesKey(target.prefix));
|
|
34
38
|
}
|
|
35
|
-
|
|
36
|
-
|
|
39
|
+
// Rotating the key this server authenticates with would revoke it mid-session
|
|
40
|
+
// and strand the new secret in a tool result, so it is refused.
|
|
41
|
+
export async function rotateKey(client, args) {
|
|
42
|
+
if (await isOwnKey(client, args.id)) {
|
|
43
|
+
throw new Error("Refusing to rotate the API key this MCP server is using: the old secret would be revoked and the server would lose access. Rotate it from the CLI or web app, then update OPEN_BRAIN_API_KEY.");
|
|
44
|
+
}
|
|
45
|
+
return client.post(apiPath `/v1/keys/${args.id}/rotate`);
|
|
46
|
+
}
|
|
47
|
+
// Revoking our own key would cut this server off with no way back from here.
|
|
48
|
+
export async function revokeKey(client, args) {
|
|
49
|
+
if (await isOwnKey(client, args.id)) {
|
|
50
|
+
throw new Error("Refusing to revoke the API key this MCP server is using: the server would lose access. Revoke it from the CLI or web app.");
|
|
51
|
+
}
|
|
52
|
+
return client.del(apiPath `/v1/keys/${args.id}`);
|
|
37
53
|
}
|
|
38
54
|
export function registerKeyTools(server, client) {
|
|
39
55
|
server.registerTool("create_key", {
|
|
@@ -48,12 +64,12 @@ export function registerKeyTools(server, client) {
|
|
|
48
64
|
}, () => runTool(() => listKeys(client)));
|
|
49
65
|
server.registerTool("rotate_key", {
|
|
50
66
|
title: "Rotate API key",
|
|
51
|
-
description: "Issue a new secret for a key and revoke the old one.",
|
|
67
|
+
description: "Issue a new secret for a key and revoke the old one. Refuses the key this MCP server itself is using.",
|
|
52
68
|
inputSchema: keyIdSchema.shape,
|
|
53
69
|
}, (args) => runTool(() => rotateKey(client, args)));
|
|
54
70
|
server.registerTool("revoke_key", {
|
|
55
71
|
title: "Revoke API key",
|
|
56
|
-
description: "Soft-revoke an API key.",
|
|
72
|
+
description: "Soft-revoke an API key. Refuses the key this MCP server itself is using.",
|
|
57
73
|
inputSchema: keyIdSchema.shape,
|
|
58
74
|
}, (args) => runTool(() => revokeKey(client, args)));
|
|
59
75
|
}
|
package/dist/tools/keys.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../src/tools/keys.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,+EAA+E;AAC/E,8EAA8E;AAC9E,gEAAgE;AAGhE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../src/tools/keys.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,+EAA+E;AAC/E,8EAA8E;AAC9E,gEAAgE;AAGhE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAwB,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,MAAM,EAAE,CAAC;SACN,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,CAAC,+DAA+D,CAAC;IAC5E,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE;IACnE,aAAa,EAAE,CAAC;SACb,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CACP,mLAAmL,CACpL;IACH,SAAS,EAAE,CAAC;SACT,MAAM,CAAC;QACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QAC9C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QAChD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;KACpD,CAAC;SACD,QAAQ,EAAE;CACd,CAAC,CAAC;AAEH,MAAM,UAAU,SAAS,CAAC,MAAuB,EAAE,IAAmB;IACpE,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,MAAuB;IAC9C,OAAO,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;AAE9C,KAAK,UAAU,QAAQ,CAAC,MAAuB,EAAE,EAAU;IACzD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAC3B,UAAU,CACX,CAAC;IACF,MAAM,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACrD,OAAO,OAAO,CAAC,MAAM,EAAE,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,8EAA8E;AAC9E,gEAAgE;AAChE,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAuB,EAAE,IAAe;IACtE,IAAI,MAAM,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CACb,+LAA+L,CAChM,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAA,YAAY,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;AAC1D,CAAC;AACD,6EAA6E;AAC7E,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAuB,EAAE,IAAe;IACtE,IAAI,MAAM,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CACb,2HAA2H,CAC5H,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,CAAC,OAAO,CAAA,YAAY,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAiB,EAAE,MAAuB;IACzE,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,KAAK,EAAE,gBAAgB;QACvB,WAAW,EACT,oGAAoG;QACtG,WAAW,EAAE,eAAe,CAAC,KAAK;KACnC,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CACjD,CAAC;IACF,MAAM,CAAC,YAAY,CACjB,WAAW,EACX;QACE,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,yDAAyD;QACtE,WAAW,EAAE,EAAE;KAChB,EACD,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CACtC,CAAC;IACF,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,KAAK,EAAE,gBAAgB;QACvB,WAAW,EACT,uGAAuG;QACzG,WAAW,EAAE,WAAW,CAAC,KAAK;KAC/B,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CACjD,CAAC;IACF,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,KAAK,EAAE,gBAAgB;QACvB,WAAW,EACT,0EAA0E;QAC5E,WAAW,EAAE,WAAW,CAAC,KAAK;KAC/B,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CACjD,CAAC;AACJ,CAAC"}
|
package/dist/tools/lists.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
import { apiPath } from "../client.js";
|
|
2
3
|
import { runTool } from "../result.js";
|
|
3
|
-
import { priorityEnum, statusEnum } from "./schemas.js";
|
|
4
|
+
import { idField, priorityEnum, statusEnum } from "./schemas.js";
|
|
4
5
|
const filtersSchema = z
|
|
5
6
|
.object({
|
|
6
7
|
q: z.string().optional().describe("Substring text filter"),
|
|
@@ -28,17 +29,17 @@ export function createSavedList(client, args) {
|
|
|
28
29
|
return client.post("/v1/lists", { name: args.name, filters: args.filters ?? {} });
|
|
29
30
|
}
|
|
30
31
|
const updateSavedListSchema = z.object({
|
|
31
|
-
id:
|
|
32
|
+
id: idField,
|
|
32
33
|
name: z.string().optional(),
|
|
33
34
|
filters: filtersSchema.optional(),
|
|
34
35
|
});
|
|
35
36
|
export function updateSavedList(client, args) {
|
|
36
37
|
const { id, ...patch } = args;
|
|
37
|
-
return client.patch(`/v1/lists/${id}`, patch);
|
|
38
|
+
return client.patch(apiPath `/v1/lists/${id}`, patch);
|
|
38
39
|
}
|
|
39
|
-
const deleteSavedListSchema = z.object({ id:
|
|
40
|
+
const deleteSavedListSchema = z.object({ id: idField });
|
|
40
41
|
export function deleteSavedList(client, args) {
|
|
41
|
-
return client.del(`/v1/lists/${args.id}`);
|
|
42
|
+
return client.del(apiPath `/v1/lists/${args.id}`);
|
|
42
43
|
}
|
|
43
44
|
export function registerListTools(server, client) {
|
|
44
45
|
server.registerTool("list_saved_lists", {
|
package/dist/tools/lists.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lists.js","sourceRoot":"","sources":["../../src/tools/lists.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"lists.js","sourceRoot":"","sources":["../../src/tools/lists.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/people.js
CHANGED
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
// projects, gardens, and other people (labeled, symmetric connections).
|
|
4
4
|
// Delete archives (links are kept); mark_contacted restarts the cadence clock.
|
|
5
5
|
import { z } from "zod";
|
|
6
|
+
import { apiPath } from "../client.js";
|
|
6
7
|
import { runTool } from "../result.js";
|
|
7
|
-
import { idempotencyKey, reviewIntervalSchema } from "./schemas.js";
|
|
8
|
+
import { idempotencyKey, idField, reviewIntervalSchema } from "./schemas.js";
|
|
8
9
|
const detailSchema = z.object({ label: z.string(), value: z.string() });
|
|
9
10
|
const calendarDate = z
|
|
10
11
|
.string()
|
|
@@ -60,14 +61,14 @@ export function listPeople(client, args) {
|
|
|
60
61
|
q: args.query,
|
|
61
62
|
});
|
|
62
63
|
}
|
|
63
|
-
const getPersonSchema = z.object({ id:
|
|
64
|
+
const getPersonSchema = z.object({ id: idField });
|
|
64
65
|
export function getPerson(client, args) {
|
|
65
|
-
return client.get(`/v1/people/${args.id}`);
|
|
66
|
+
return client.get(apiPath `/v1/people/${args.id}`);
|
|
66
67
|
}
|
|
67
68
|
// Update mirrors the task convention: null clears a clearable field, absent
|
|
68
69
|
// keeps. `archived: false` restores a deleted (archived) person.
|
|
69
70
|
const updatePersonSchema = z.object({
|
|
70
|
-
id:
|
|
71
|
+
id: idField,
|
|
71
72
|
name: z.string().optional(),
|
|
72
73
|
aliases: personFields.aliases,
|
|
73
74
|
relationship: z.string().nullable().optional().describe("null clears"),
|
|
@@ -94,32 +95,33 @@ const updatePersonSchema = z.object({
|
|
|
94
95
|
});
|
|
95
96
|
export function updatePerson(client, args) {
|
|
96
97
|
const { id, ...patch } = args;
|
|
97
|
-
return client.patch(`/v1/people/${id}`, patch);
|
|
98
|
+
return client.patch(apiPath `/v1/people/${id}`, patch);
|
|
98
99
|
}
|
|
99
|
-
const deletePersonSchema = z.object({ id:
|
|
100
|
+
const deletePersonSchema = z.object({ id: idField });
|
|
100
101
|
export function deletePerson(client, args) {
|
|
101
|
-
return client.del(`/v1/people/${args.id}`);
|
|
102
|
+
return client.del(apiPath `/v1/people/${args.id}`);
|
|
102
103
|
}
|
|
103
104
|
const markContactedSchema = z.object({
|
|
104
|
-
id:
|
|
105
|
+
id: idField,
|
|
105
106
|
at: z
|
|
106
107
|
.string()
|
|
107
108
|
.optional()
|
|
108
109
|
.describe("When the contact happened (ISO timestamp or epoch-ms), for backdating; defaults to now"),
|
|
109
110
|
});
|
|
110
111
|
export function markContacted(client, args) {
|
|
111
|
-
return client.post(`/v1/people/${args.id}/contacted`, args.at ? { at: args.at } : {});
|
|
112
|
+
return client.post(apiPath `/v1/people/${args.id}/contacted`, args.at ? { at: args.at } : {});
|
|
112
113
|
}
|
|
113
114
|
const personLinksSchema = z.object({
|
|
114
|
-
id:
|
|
115
|
+
id: idField.describe("Person id"),
|
|
115
116
|
taskIds: z.array(z.string()).optional(),
|
|
116
117
|
projectIds: z.array(z.string()).optional(),
|
|
117
118
|
gardenIds: z.array(z.string()).optional(),
|
|
118
119
|
readingListItemIds: z.array(z.string()).optional(),
|
|
120
|
+
habitIds: z.array(z.string()).optional(),
|
|
119
121
|
bookIds: z.array(z.string()).optional(),
|
|
120
122
|
people: z
|
|
121
123
|
.array(z.object({
|
|
122
|
-
id:
|
|
124
|
+
id: idField.describe("The other person's id"),
|
|
123
125
|
label: z
|
|
124
126
|
.string()
|
|
125
127
|
.nullable()
|
|
@@ -131,11 +133,11 @@ const personLinksSchema = z.object({
|
|
|
131
133
|
});
|
|
132
134
|
export function addPersonLinks(client, args) {
|
|
133
135
|
const { id, ...body } = args;
|
|
134
|
-
return client.post(`/v1/people/${id}/links`, body);
|
|
136
|
+
return client.post(apiPath `/v1/people/${id}/links`, body);
|
|
135
137
|
}
|
|
136
138
|
export function removePersonLinks(client, args) {
|
|
137
139
|
const { id, ...body } = args;
|
|
138
|
-
return client.request("DELETE", `/v1/people/${id}/links`, { body });
|
|
140
|
+
return client.request("DELETE", apiPath `/v1/people/${id}/links`, { body });
|
|
139
141
|
}
|
|
140
142
|
export function registerPeopleTools(server, client) {
|
|
141
143
|
server.registerTool("create_person", {
|
|
@@ -170,12 +172,12 @@ export function registerPeopleTools(server, client) {
|
|
|
170
172
|
}, (args) => runTool(() => markContacted(client, args)));
|
|
171
173
|
server.registerTool("add_person_links", {
|
|
172
174
|
title: "Link person",
|
|
173
|
-
description: "Link a person to tasks, projects, gardens, reading list items, books, and/or other people (e.g. after resolving a mentioned name). Person-to-person connections take an optional relationship label and are symmetric.",
|
|
175
|
+
description: "Link a person to tasks, projects, gardens, reading list items, habits, books, and/or other people (e.g. after resolving a mentioned name). Person-to-person connections take an optional relationship label and are symmetric.",
|
|
174
176
|
inputSchema: personLinksSchema.shape,
|
|
175
177
|
}, (args) => runTool(() => addPersonLinks(client, args)));
|
|
176
178
|
server.registerTool("remove_person_links", {
|
|
177
179
|
title: "Unlink person",
|
|
178
|
-
description: "Remove a person's links to tasks, projects, gardens, reading list items, books, and/or other people.",
|
|
180
|
+
description: "Remove a person's links to tasks, projects, gardens, reading list items, habits, books, and/or other people.",
|
|
179
181
|
inputSchema: personLinksSchema.shape,
|
|
180
182
|
}, (args) => runTool(() => removePersonLinks(client, args)));
|
|
181
183
|
}
|
package/dist/tools/people.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"people.js","sourceRoot":"","sources":["../../src/tools/people.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,uEAAuE;AACvE,wEAAwE;AACxE,+EAA+E;AAG/E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"people.js","sourceRoot":"","sources":["../../src/tools/people.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/projects.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
// Project tools: single + batch CRUD and multi-get. Projects live in exactly
|
|
2
2
|
// one garden and share the unified status machine with tasks.
|
|
3
3
|
import { z } from "zod";
|
|
4
|
+
import { apiPath } from "../client.js";
|
|
4
5
|
import { runTool } from "../result.js";
|
|
5
|
-
import { dateField, idempotencyKey, reviewIntervalSchema, statusEnum, } from "./schemas.js";
|
|
6
|
+
import { dateField, idempotencyKey, idField, reviewIntervalSchema, statusEnum, } from "./schemas.js";
|
|
6
7
|
const csv = (a) => a?.length ? a.join(",") : undefined;
|
|
7
8
|
const projectFields = {
|
|
8
9
|
gardenId: z.string().describe("Garden the project belongs to (required on create)"),
|
|
9
10
|
name: z.string(),
|
|
11
|
+
status: statusEnum.optional().describe("Initial status; defaults to todo"),
|
|
10
12
|
notes: z.string().optional().describe("Markdown"),
|
|
11
13
|
deferDate: dateField.optional(),
|
|
12
14
|
deadline: dateField.optional(),
|
|
@@ -49,12 +51,12 @@ export function listProjects(client, args) {
|
|
|
49
51
|
cursor: args.cursor,
|
|
50
52
|
});
|
|
51
53
|
}
|
|
52
|
-
const getProjectSchema = z.object({ id:
|
|
54
|
+
const getProjectSchema = z.object({ id: idField });
|
|
53
55
|
export function getProject(client, args) {
|
|
54
|
-
return client.get(`/v1/projects/${args.id}`);
|
|
56
|
+
return client.get(apiPath `/v1/projects/${args.id}`);
|
|
55
57
|
}
|
|
56
58
|
const updateProjectSchema = z.object({
|
|
57
|
-
id:
|
|
59
|
+
id: idField,
|
|
58
60
|
status: statusEnum.optional(),
|
|
59
61
|
name: z.string().optional(),
|
|
60
62
|
notes: z.string().optional(),
|
|
@@ -69,11 +71,11 @@ const updateProjectSchema = z.object({
|
|
|
69
71
|
});
|
|
70
72
|
export function updateProject(client, args) {
|
|
71
73
|
const { id, ...patch } = args;
|
|
72
|
-
return client.patch(`/v1/projects/${id}`, patch);
|
|
74
|
+
return client.patch(apiPath `/v1/projects/${id}`, patch);
|
|
73
75
|
}
|
|
74
|
-
const deleteProjectSchema = z.object({ id:
|
|
76
|
+
const deleteProjectSchema = z.object({ id: idField });
|
|
75
77
|
export function deleteProject(client, args) {
|
|
76
|
-
return client.del(`/v1/projects/${args.id}`);
|
|
78
|
+
return client.del(apiPath `/v1/projects/${args.id}`);
|
|
77
79
|
}
|
|
78
80
|
const createProjectsSchema = z.object({
|
|
79
81
|
projects: z.array(z.object(projectFields)),
|
|
@@ -101,12 +103,12 @@ export function registerProjectTools(server, client) {
|
|
|
101
103
|
}, (args) => runTool(() => createProject(client, args)));
|
|
102
104
|
server.registerTool("list_projects", {
|
|
103
105
|
title: "List projects",
|
|
104
|
-
description: "List/filter projects, or multi-get by ids. With an includeGrants key, gardenId may name a garden shared with you to list its projects.",
|
|
106
|
+
description: "List/filter projects, or multi-get by ids. Each project carries taskCounts {open, done} (canceled in neither) and nextTaskId (first open task by manual order). With an includeGrants key, gardenId may name a garden shared with you to list its projects.",
|
|
105
107
|
inputSchema: listProjectsSchema.shape,
|
|
106
108
|
}, (args) => runTool(() => listProjects(client, args)));
|
|
107
109
|
server.registerTool("get_project", {
|
|
108
110
|
title: "Get project",
|
|
109
|
-
description: "Fetch one project by id, including a project in a garden shared with you (guest view: no people or review cadence).",
|
|
111
|
+
description: "Fetch one project by id, including a project in a garden shared with you (guest view: no people or review cadence). Includes taskCounts {open, done} and nextTaskId; fetch that task with get_task to see what's next.",
|
|
110
112
|
inputSchema: getProjectSchema.shape,
|
|
111
113
|
}, (args) => runTool(() => getProject(client, args)));
|
|
112
114
|
server.registerTool("update_project", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,8DAA8D;AAG9D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,8DAA8D;AAG9D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAyC,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EACL,SAAS,EACT,cAAc,EACd,OAAO,EACP,oBAAoB,EACpB,UAAU,GACX,MAAM,cAAc,CAAC;AAEtB,MAAM,GAAG,GAAG,CAAC,CAAuB,EAAc,EAAE,CAClD,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAEtC,MAAM,aAAa,GAAG;IACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;IACnF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,MAAM,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IAC1E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;IACjD,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE;IAC/B,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE;IAC9B,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,cAAc,EAAE,oBAAoB;SACjC,QAAQ,EAAE;SACV,QAAQ,EAAE;SACV,QAAQ,CACP,qFAAqF,CACtF;CACJ,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,aAAa,EAAE,cAAc,EAAE,CAAC,CAAC;AAE3E,MAAM,UAAU,aAAa,CAAC,MAAuB,EAAE,IAAuB;IAC5E,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IAC9C,OAAO,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;IACtF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE;IACtC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC/C,cAAc,EAAE,SAAS,CAAC,QAAQ,EAAE;IACpC,aAAa,EAAE,SAAS,CAAC,QAAQ,EAAE;IACnC,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACpC,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACvC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC7C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AAEH,MAAM,UAAU,YAAY,CAAC,MAAuB,EAAE,IAAsB;IAC1E,OAAO,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE;QAChC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;QAClB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;QACxB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;AAEnD,MAAM,UAAU,UAAU,CAAC,MAAuB,EAAE,IAAoB;IACtE,OAAO,MAAM,CAAC,GAAG,CAAC,OAAO,CAAA,gBAAgB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,EAAE,EAAE,OAAO;IACX,MAAM,EAAE,UAAU,CAAC,QAAQ,EAAE;IAC7B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IACjF,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IAC9E,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,cAAc,EAAE,oBAAoB;SACjC,QAAQ,EAAE;SACV,QAAQ,EAAE;SACV,QAAQ,CAAC,gCAAgC,CAAC;CAC9C,CAAC,CAAC;AAEH,MAAM,UAAU,aAAa,CAAC,MAAuB,EAAE,IAAuB;IAC5E,MAAM,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;IAC9B,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAA,gBAAgB,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;AAEtD,MAAM,UAAU,aAAa,CAAC,MAAuB,EAAE,IAAuB;IAC5E,OAAO,MAAM,CAAC,GAAG,CAAC,OAAO,CAAA,gBAAgB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAC1C,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,cAAc;CACf,CAAC,CAAC;AAEH,MAAM,UAAU,cAAc,CAAC,MAAuB,EAAE,IAAwB;IAC9E,OAAO,MAAM,CAAC,IAAI,CAChB,oBAAoB,EACpB,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAC/C,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CACxC,CAAC;AACJ,CAAC;AAED,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC;IACtC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAChC,CAAC,CAAC;AAEH,MAAM,UAAU,cAAc,CAAC,MAAuB,EAAE,IAAwB;IAC9E,OAAO,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE;QACxC,KAAK,EAAE,IAAI,CAAC,QAAQ;QACpB,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,MAAuB;IAC7E,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,gBAAgB;QACvB,WAAW,EACT,sIAAsI;QACxI,WAAW,EAAE,mBAAmB,CAAC,KAAK;KACvC,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CACrD,CAAC;IACF,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,eAAe;QACtB,WAAW,EACT,6PAA6P;QAC/P,WAAW,EAAE,kBAAkB,CAAC,KAAK;KACtC,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CACpD,CAAC;IACF,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;QACE,KAAK,EAAE,aAAa;QACpB,WAAW,EACT,wNAAwN;QAC1N,WAAW,EAAE,gBAAgB,CAAC,KAAK;KACpC,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAClD,CAAC;IACF,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,gBAAgB;QACvB,WAAW,EACT,wKAAwK;QAC1K,WAAW,EAAE,mBAAmB,CAAC,KAAK;KACvC,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CACrD,CAAC;IACF,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,+BAA+B;QAC5C,WAAW,EAAE,mBAAmB,CAAC,KAAK;KACvC,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CACrD,CAAC;IACF,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,KAAK,EAAE,yBAAyB;QAChC,WAAW,EAAE,uDAAuD;QACpE,WAAW,EAAE,oBAAoB,CAAC,KAAK;KACxC,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CACtD,CAAC;IACF,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,KAAK,EAAE,yBAAyB;QAChC,WAAW,EAAE,4DAA4D;QACzE,WAAW,EAAE,oBAAoB,CAAC,KAAK;KACxC,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CACtD,CAAC;AACJ,CAAC"}
|
package/dist/tools/reading.js
CHANGED
|
@@ -7,8 +7,9 @@
|
|
|
7
7
|
// deleted (hidden everywhere). Person links live on the person side
|
|
8
8
|
// (add_person_links/remove_person_links), not here.
|
|
9
9
|
import { z } from "zod";
|
|
10
|
+
import { apiPath } from "../client.js";
|
|
10
11
|
import { runTool } from "../result.js";
|
|
11
|
-
import { idempotencyKey, readingStatusEnum } from "./schemas.js";
|
|
12
|
+
import { idempotencyKey, idField, readingStatusEnum } from "./schemas.js";
|
|
12
13
|
const createReadingItemSchema = z.object({
|
|
13
14
|
url: z
|
|
14
15
|
.string()
|
|
@@ -50,12 +51,12 @@ export function listReadingItems(client, args) {
|
|
|
50
51
|
includeArchived: args.includeArchived,
|
|
51
52
|
});
|
|
52
53
|
}
|
|
53
|
-
const getReadingItemSchema = z.object({ id:
|
|
54
|
+
const getReadingItemSchema = z.object({ id: idField });
|
|
54
55
|
export function getReadingItem(client, args) {
|
|
55
|
-
return client.get(`/v1/reading/${args.id}`);
|
|
56
|
+
return client.get(apiPath `/v1/reading/${args.id}`);
|
|
56
57
|
}
|
|
57
58
|
const updateReadingItemSchema = z.object({
|
|
58
|
-
id:
|
|
59
|
+
id: idField,
|
|
59
60
|
url: z.string().optional(),
|
|
60
61
|
title: z.string().optional(),
|
|
61
62
|
description: z.string().nullable().optional().describe("null clears"),
|
|
@@ -73,18 +74,18 @@ const updateReadingItemSchema = z.object({
|
|
|
73
74
|
});
|
|
74
75
|
export function updateReadingItem(client, args) {
|
|
75
76
|
const { id, ...patch } = args;
|
|
76
|
-
return client.patch(`/v1/reading/${id}`, patch);
|
|
77
|
+
return client.patch(apiPath `/v1/reading/${id}`, patch);
|
|
77
78
|
}
|
|
78
|
-
const deleteReadingItemSchema = z.object({ id:
|
|
79
|
+
const deleteReadingItemSchema = z.object({ id: idField });
|
|
79
80
|
export function deleteReadingItem(client, args) {
|
|
80
|
-
return client.del(`/v1/reading/${args.id}`);
|
|
81
|
+
return client.del(apiPath `/v1/reading/${args.id}`);
|
|
81
82
|
}
|
|
82
|
-
const readingTagsSchema = z.object({ id:
|
|
83
|
+
const readingTagsSchema = z.object({ id: idField, tagIds: z.array(z.string()) });
|
|
83
84
|
export function addReadingTags(client, args) {
|
|
84
|
-
return client.post(`/v1/reading/${args.id}/tags`, { tagIds: args.tagIds });
|
|
85
|
+
return client.post(apiPath `/v1/reading/${args.id}/tags`, { tagIds: args.tagIds });
|
|
85
86
|
}
|
|
86
87
|
export function removeReadingTags(client, args) {
|
|
87
|
-
return client.request("DELETE", `/v1/reading/${args.id}/tags`, {
|
|
88
|
+
return client.request("DELETE", apiPath `/v1/reading/${args.id}/tags`, {
|
|
88
89
|
body: { tagIds: args.tagIds },
|
|
89
90
|
});
|
|
90
91
|
}
|