@cpenned/mcp 0.7.4 → 0.8.1
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 +23 -2
- package/dist/tools/index.js +4 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/keys.js +5 -1
- package/dist/tools/keys.js.map +1 -1
- package/dist/tools/profile.js +27 -0
- package/dist/tools/profile.js.map +1 -0
- package/dist/tools/render.js +5 -1
- package/dist/tools/render.js.map +1 -1
- package/dist/tools/shares.js +35 -0
- package/dist/tools/shares.js.map +1 -0
- package/dist/tools/tasks.js +17 -2
- package/dist/tools/tasks.js.map +1 -1
- package/package.json +1 -1
- package/skills/open-brain-mcp/SKILL.md +43 -2
package/README.md
CHANGED
|
@@ -16,7 +16,10 @@ Set via environment variables:
|
|
|
16
16
|
|
|
17
17
|
The key's scopes gate the tools: resource tools need `<resource>:read|write`,
|
|
18
18
|
review tools `reviews:*`, settings tools `settings:read|write`, and
|
|
19
|
-
`find_tasks` / `ai_triage` need `ai:invoke`.
|
|
19
|
+
`find_tasks` / `ai_triage` need `ai:invoke`. `list_shares`/`list_shared_tasks`
|
|
20
|
+
additionally need the key to have been minted with `includeGrants: true` (via
|
|
21
|
+
`create_key`'s `includeGrants` flag or the web app) - without it, a key only
|
|
22
|
+
ever sees the vault's own data, even with `*`.
|
|
20
23
|
|
|
21
24
|
## Run
|
|
22
25
|
|
|
@@ -76,6 +79,10 @@ Point the `args` at the absolute `packages/mcp/dist/index.js` path with
|
|
|
76
79
|
`add_task_tags`, `remove_task_tags`; the `*_project`, `*_garden`, `*_tag`
|
|
77
80
|
equivalents. Task/project `deferDate`/`deadline` are calendar days
|
|
78
81
|
(`YYYY-MM-DD`); inputs also accept relative tokens like `today`/`+3d`.
|
|
82
|
+
Tasks also carry `assigneeUserId` (settable via `create_task(s)`/
|
|
83
|
+
`update_task(s)` as a user id, `"me"`, or `null` to unassign - only
|
|
84
|
+
meaningful in a garden shared with another user, see Mind Meld below);
|
|
85
|
+
`list_tasks` filters by `assignee: "me"|"unassigned"|<userId>`.
|
|
79
86
|
- **People** (personal CRM): `create_person`, `list_people` (`query` searches
|
|
80
87
|
name, aliases, company, notes, and more), `get_person`,
|
|
81
88
|
`update_person` (null clears fields; `archived: false` restores),
|
|
@@ -140,7 +147,21 @@ Point the `args` at the absolute `packages/mcp/dist/index.js` path with
|
|
|
140
147
|
- **UI (read-only MCPUI)**: `ui_view`, `ui_review_queue`, `ui_garden_board`,
|
|
141
148
|
`ui_habits`
|
|
142
149
|
return `ui://` HTML resources.
|
|
143
|
-
- **
|
|
150
|
+
- **Mind Meld** (shared gardens, guest side - sharing/invites/revoke are
|
|
151
|
+
web-app-only): `list_shares` (gardens shared with the caller: capabilities,
|
|
152
|
+
owner, participants - empty unless the key has `includeGrants`),
|
|
153
|
+
`list_shared_tasks` (`{shareId, status?, includeCanceled?}`, capped at
|
|
154
|
+
500). A garden shared from another Open Brain deployment carries
|
|
155
|
+
`remote: {origin, lastSyncedAt, lastError}` and is edited with the normal
|
|
156
|
+
task tools. In a shared garden, a guest's status moves are gated by the owner's
|
|
157
|
+
capability grant rather than the usual status machine: `complete` only
|
|
158
|
+
moves an open task to `done`; any other move (including reopening `done`/
|
|
159
|
+
`canceled`) needs `edit`; `canceled` needs `cancel`.
|
|
160
|
+
- **Profile**: `get_profile`, `update_profile` (`displayName`, 1-60 chars;
|
|
161
|
+
avatar upload is web-only).
|
|
162
|
+
- **Key management**: `create_key` (optional `includeGrants` so the minted key
|
|
163
|
+
can see gardens shared with its owner - only settable if the calling key
|
|
164
|
+
itself has it), `list_keys`, `rotate_key`, `revoke_key`
|
|
144
165
|
(require the configured key to hold `keys:manage`). A key can only grant
|
|
145
166
|
scopes it itself holds; secrets are returned once. Grant `keys:manage`
|
|
146
167
|
deliberately - it lets the agent mint and revoke keys.
|
package/dist/tools/index.js
CHANGED
|
@@ -6,9 +6,11 @@ import { registerHabitTools } from "./habits.js";
|
|
|
6
6
|
import { registerKeyTools } from "./keys.js";
|
|
7
7
|
import { registerListTools } from "./lists.js";
|
|
8
8
|
import { registerPeopleTools } from "./people.js";
|
|
9
|
+
import { registerProfileTools } from "./profile.js";
|
|
9
10
|
import { registerProjectTools } from "./projects.js";
|
|
10
11
|
import { registerReadingTools } from "./reading.js";
|
|
11
12
|
import { registerSettingsTools } from "./settings.js";
|
|
13
|
+
import { registerShareTools } from "./shares.js";
|
|
12
14
|
import { registerStravaTools } from "./strava.js";
|
|
13
15
|
import { registerTagTools } from "./tags.js";
|
|
14
16
|
import { registerTaskTools } from "./tasks.js";
|
|
@@ -31,5 +33,7 @@ export function registerAllTools(server, client) {
|
|
|
31
33
|
registerUiTools(server, client);
|
|
32
34
|
registerKeyTools(server, client);
|
|
33
35
|
registerSettingsTools(server, client);
|
|
36
|
+
registerShareTools(server, client);
|
|
37
|
+
registerProfileTools(server, client);
|
|
34
38
|
}
|
|
35
39
|
//# 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":"AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,UAAU,gBAAgB,CAAC,MAAiB,EAAE,MAAuB;IACzE,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,UAAU,gBAAgB,CAAC,MAAiB,EAAE,MAAuB;IACzE,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC"}
|
package/dist/tools/keys.js
CHANGED
|
@@ -10,6 +10,10 @@ const createKeySchema = z.object({
|
|
|
10
10
|
.array(z.string())
|
|
11
11
|
.describe("e.g. tasks:read, tasks:write, reviews:*, ai:invoke, * (owner)"),
|
|
12
12
|
clientType: z.enum(["cli", "mcp", "web", "integration"]).optional(),
|
|
13
|
+
includeGrants: z
|
|
14
|
+
.boolean()
|
|
15
|
+
.optional()
|
|
16
|
+
.describe("Let this key read/write gardens shared with the caller too, not just the vault's own data. Only settable when the calling key itself has includeGrants (no privilege escalation)."),
|
|
13
17
|
rateLimit: z
|
|
14
18
|
.object({
|
|
15
19
|
perMin: z.number().int().positive().optional(),
|
|
@@ -34,7 +38,7 @@ export function revokeKey(client, args) {
|
|
|
34
38
|
export function registerKeyTools(server, client) {
|
|
35
39
|
server.registerTool("create_key", {
|
|
36
40
|
title: "Create API key",
|
|
37
|
-
description: "Mint an API key (secret shown once). Cannot grant scopes the calling key lacks.",
|
|
41
|
+
description: "Mint an API key (secret shown once). Cannot grant scopes, or includeGrants, the calling key lacks.",
|
|
38
42
|
inputSchema: createKeySchema.shape,
|
|
39
43
|
}, (args) => runTool(() => createKey(client, args)));
|
|
40
44
|
server.registerTool("list_keys", {
|
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;AAExB,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,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,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAEjD,MAAM,UAAU,SAAS,CAAC,MAAuB,EAAE,IAAe;IAChE,OAAO,MAAM,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;AACnD,CAAC;AACD,MAAM,UAAU,SAAS,CAAC,MAAuB,EAAE,IAAe;IAChE,OAAO,MAAM,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAiB,EAAE,MAAuB;IACzE,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,KAAK,EAAE,gBAAgB;QACvB,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../src/tools/keys.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// The caller's profile (display name, avatar). This is what garden owners and
|
|
2
|
+
// guests see of each other in a Mind Meld share. Avatar upload is a web-only
|
|
3
|
+
// flow (image storage); this surface only edits the display name.
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
import { runTool } from "../result.js";
|
|
6
|
+
export function getProfile(client) {
|
|
7
|
+
return client.get("/v1/profile");
|
|
8
|
+
}
|
|
9
|
+
const updateProfileSchema = z.object({
|
|
10
|
+
displayName: z.string().min(1).max(60),
|
|
11
|
+
});
|
|
12
|
+
export function updateProfile(client, args) {
|
|
13
|
+
return client.patch("/v1/profile", args);
|
|
14
|
+
}
|
|
15
|
+
export function registerProfileTools(server, client) {
|
|
16
|
+
server.registerTool("get_profile", {
|
|
17
|
+
title: "Get profile",
|
|
18
|
+
description: "The caller's profile: user id, display name, and avatar URL.",
|
|
19
|
+
inputSchema: {},
|
|
20
|
+
}, () => runTool(() => getProfile(client)));
|
|
21
|
+
server.registerTool("update_profile", {
|
|
22
|
+
title: "Update profile",
|
|
23
|
+
description: "Set the caller's display name (1-60 chars) - shown to garden owners/guests in a Mind Meld share. Avatar upload is web-only.",
|
|
24
|
+
inputSchema: updateProfileSchema.shape,
|
|
25
|
+
}, (args) => runTool(() => updateProfile(client, args)));
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=profile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/tools/profile.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,6EAA6E;AAC7E,kEAAkE;AAGlE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,UAAU,UAAU,CAAC,MAAuB;IAChD,OAAO,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;CACvC,CAAC,CAAC;AAEH,MAAM,UAAU,aAAa,CAAC,MAAuB,EAAE,IAAuB;IAC5E,OAAO,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,MAAuB;IAC7E,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;QACE,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,8DAA8D;QAC3E,WAAW,EAAE,EAAE;KAChB,EACD,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CACxC,CAAC;IACF,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,gBAAgB;QACvB,WAAW,EACT,6HAA6H;QAC/H,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;AACJ,CAAC"}
|
package/dist/tools/render.js
CHANGED
|
@@ -19,6 +19,9 @@ function rows(items) {
|
|
|
19
19
|
return items
|
|
20
20
|
.map((it) => {
|
|
21
21
|
const label = escapeHtml(it.title ?? it.name ?? "(untitled)");
|
|
22
|
+
const assignee = typeof it.assigneeUserId === "string"
|
|
23
|
+
? ` <span class="assignee">→ ${escapeHtml(it.assigneeUserId)}</span>`
|
|
24
|
+
: "";
|
|
22
25
|
const status = it.status ?? it.relationship ?? "";
|
|
23
26
|
const details = [];
|
|
24
27
|
if (it.dueToday)
|
|
@@ -29,7 +32,7 @@ function rows(items) {
|
|
|
29
32
|
details.push(`${it.periodProgress.done ?? 0}/${it.periodProgress.required ?? 0}`);
|
|
30
33
|
}
|
|
31
34
|
return `<tr>
|
|
32
|
-
<td>${label}</td>
|
|
35
|
+
<td>${label}${assignee}</td>
|
|
33
36
|
<td><span class="status ${escapeHtml(it.status ?? "")}">${escapeHtml(status)}</span></td>
|
|
34
37
|
<td>${escapeHtml(it.priority ?? details.join(" · "))}</td>
|
|
35
38
|
<td>${escapeHtml(isoDay(it.deadline) || isoDay(it.nextReviewAt) || isoDay(it.nextContactAt))}</td>
|
|
@@ -58,6 +61,7 @@ export function htmlDoc(title, body) {
|
|
|
58
61
|
h1 { font-size: 18px; margin: 0 0 12px; }
|
|
59
62
|
h2 { font-size: 14px; margin: 16px 0 6px; text-transform: uppercase; letter-spacing: .04em; color: #555; }
|
|
60
63
|
.count { color: #999; font-weight: 400; }
|
|
64
|
+
.assignee { color: #888; font-size: 11px; }
|
|
61
65
|
table { width: 100%; border-collapse: collapse; font-size: 13px; }
|
|
62
66
|
th, td { text-align: left; padding: 6px 8px; border-bottom: 1px solid #eee; }
|
|
63
67
|
th { color: #888; font-weight: 500; }
|
package/dist/tools/render.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/tools/render.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,+EAA+E;AAC/E,+EAA+E;AAC/E,4DAA4D;AAC5D,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,OAAO,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAChC,UAAU,EACV,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CACvE,CAAC,CACQ,CACd,CAAC;AACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/tools/render.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,+EAA+E;AAC/E,+EAA+E;AAC/E,4DAA4D;AAC5D,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,OAAO,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAChC,UAAU,EACV,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CACvE,CAAC,CACQ,CACd,CAAC;AACJ,CAAC;AAqBD,SAAS,MAAM,CAAC,KAAc;IAC5B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACzC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,IAAI,CAAC,KAAa;IACzB,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,2DAA2D,CAAC;IACtF,OAAO,KAAK;SACT,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QACV,MAAM,KAAK,GAAG,UAAU,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,IAAI,YAAY,CAAC,CAAC;QAC9D,MAAM,QAAQ,GACZ,OAAO,EAAE,CAAC,cAAc,KAAK,QAAQ;YACnC,CAAC,CAAC,6BAA6B,UAAU,CAAC,EAAE,CAAC,cAAc,CAAC,SAAS;YACrE,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC;QAClD,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,EAAE,CAAC,QAAQ;YAAE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3C,IAAI,OAAO,EAAE,CAAC,aAAa,KAAK,QAAQ;YACtC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,aAAa,SAAS,CAAC,CAAC;QAC7C,IAAI,EAAE,CAAC,cAAc,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,cAAc,CAAC,QAAQ,IAAI,CAAC,EAAE,CAAC,CAAC;QACpF,CAAC;QACD,OAAO;YACD,KAAK,GAAG,QAAQ;gCACI,UAAU,CAAC,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,KAAK,UAAU,CAAC,MAAM,CAAC;YACtE,UAAU,CAAC,EAAE,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9C,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;UACxF,CAAC;IACP,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,OAAe,EAAE,KAAa;IACpD,OAAO;UACC,UAAU,CAAC,OAAO,CAAC,wBAAwB,KAAK,CAAC,MAAM;;;eAGlD,IAAI,CAAC,KAAK,CAAC;;aAEb,CAAC;AACd,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAa,EAAE,IAAY;IACjD,OAAO;;;;SAIA,UAAU,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;MAoBpB,UAAU,CAAC,KAAK,CAAC;EACrB,IAAI;;QAEE,CAAC;AACT,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// Mind Meld read tools: gardens another user has shared with the caller (guest
|
|
2
|
+
// side), and their tasks. Sharing itself - creating an invite, editing
|
|
3
|
+
// capabilities, revoking a share - is web-only by design; there is no write
|
|
4
|
+
// surface here. Requires the configured key to have includeGrants, otherwise
|
|
5
|
+
// list_shares comes back empty.
|
|
6
|
+
import { z } from "zod";
|
|
7
|
+
import { runTool } from "../result.js";
|
|
8
|
+
import { statusEnum } from "./schemas.js";
|
|
9
|
+
export function listShares(client) {
|
|
10
|
+
return client.get("/v1/shares");
|
|
11
|
+
}
|
|
12
|
+
const listSharedTasksSchema = z.object({
|
|
13
|
+
shareId: z.string(),
|
|
14
|
+
status: z.array(statusEnum).optional(),
|
|
15
|
+
includeCanceled: z.boolean().optional(),
|
|
16
|
+
});
|
|
17
|
+
export function listSharedTasks(client, args) {
|
|
18
|
+
return client.get(`/v1/shares/${args.shareId}/tasks`, {
|
|
19
|
+
status: args.status?.length ? args.status.join(",") : undefined,
|
|
20
|
+
includeCanceled: args.includeCanceled,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
export function registerShareTools(server, client) {
|
|
24
|
+
server.registerTool("list_shares", {
|
|
25
|
+
title: "List shared gardens",
|
|
26
|
+
description: "Gardens another user has shared with the caller: capabilities, owner, and participants. `remote` is set (with the owner deployment's origin and last sync) when the garden lives on another Open Brain deployment; its tasks are still read and edited with the normal task tools. Empty unless the key has includeGrants. Sharing/invites/revoke and joining by code are web-only.",
|
|
27
|
+
inputSchema: {},
|
|
28
|
+
}, () => runTool(() => listShares(client)));
|
|
29
|
+
server.registerTool("list_shared_tasks", {
|
|
30
|
+
title: "List tasks in a shared garden",
|
|
31
|
+
description: "Guest-projection tasks for a garden shared with the caller (from list_shares), capped at 500. Each task carries assigneeUserId and a sharedFrom marker.",
|
|
32
|
+
inputSchema: listSharedTasksSchema.shape,
|
|
33
|
+
}, (args) => runTool(() => listSharedTasks(client, args)));
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=shares.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shares.js","sourceRoot":"","sources":["../../src/tools/shares.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,uEAAuE;AACvE,4EAA4E;AAC5E,6EAA6E;AAC7E,gCAAgC;AAGhC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,UAAU,UAAU,CAAC,MAAuB;IAChD,OAAO,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE;IACtC,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACxC,CAAC,CAAC;AAEH,MAAM,UAAU,eAAe,CAAC,MAAuB,EAAE,IAAyB;IAChF,OAAO,MAAM,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,OAAO,QAAQ,EAAE;QACpD,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;QAC/D,eAAe,EAAE,IAAI,CAAC,eAAe;KACtC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,MAAuB;IAC3E,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;QACE,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EACT,qXAAqX;QACvX,WAAW,EAAE,EAAE;KAChB,EACD,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CACxC,CAAC;IACF,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,KAAK,EAAE,+BAA+B;QACtC,WAAW,EACT,yJAAyJ;QAC3J,WAAW,EAAE,qBAAqB,CAAC,KAAK;KACzC,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CACvD,CAAC;AACJ,CAAC"}
|
package/dist/tools/tasks.js
CHANGED
|
@@ -30,6 +30,11 @@ const taskFields = {
|
|
|
30
30
|
.string()
|
|
31
31
|
.optional()
|
|
32
32
|
.describe("Link to a synced calendar event (id); pass null on update to clear."),
|
|
33
|
+
assigneeUserId: z
|
|
34
|
+
.string()
|
|
35
|
+
.nullable()
|
|
36
|
+
.optional()
|
|
37
|
+
.describe('Assign within a shared garden: a user id, "me" (the caller), or null to leave unassigned. Only valid once the garden has an active share.'),
|
|
33
38
|
};
|
|
34
39
|
const createTaskSchema = z.object({ ...taskFields, idempotencyKey });
|
|
35
40
|
export function createTask(client, args) {
|
|
@@ -54,6 +59,10 @@ const listTasksSchema = z.object({
|
|
|
54
59
|
deadlineAfter: dateField.optional(),
|
|
55
60
|
dueForReview: z.boolean().optional(),
|
|
56
61
|
q: z.string().optional().describe("Substring text filter"),
|
|
62
|
+
assignee: z
|
|
63
|
+
.string()
|
|
64
|
+
.optional()
|
|
65
|
+
.describe('Filter by assignee: "me", "unassigned", or a user id (home vault only)'),
|
|
57
66
|
includeCanceled: z.boolean().optional(),
|
|
58
67
|
sort: z
|
|
59
68
|
.string()
|
|
@@ -78,6 +87,7 @@ export function listTasks(client, args) {
|
|
|
78
87
|
deadlineAfter: args.deadlineAfter,
|
|
79
88
|
dueForReview: args.dueForReview,
|
|
80
89
|
q: args.q,
|
|
90
|
+
assignee: args.assignee,
|
|
81
91
|
includeCanceled: args.includeCanceled,
|
|
82
92
|
sort: args.sort,
|
|
83
93
|
limit: args.limit,
|
|
@@ -120,6 +130,11 @@ const updateTaskSchema = z.object({
|
|
|
120
130
|
.nullable()
|
|
121
131
|
.optional()
|
|
122
132
|
.describe("Link to a synced calendar event (id); pass null on update to clear."),
|
|
133
|
+
assigneeUserId: z
|
|
134
|
+
.string()
|
|
135
|
+
.nullable()
|
|
136
|
+
.optional()
|
|
137
|
+
.describe('Reassign within a shared garden: a user id, "me", or null to unassign.'),
|
|
123
138
|
});
|
|
124
139
|
export function updateTask(client, args) {
|
|
125
140
|
const { id, ...patch } = args;
|
|
@@ -171,12 +186,12 @@ export function registerTaskTools(server, client) {
|
|
|
171
186
|
}, (args) => runTool(() => listTasks(client, args)));
|
|
172
187
|
server.registerTool("get_task", {
|
|
173
188
|
title: "Get task",
|
|
174
|
-
description: "Fetch one task by id (full detail).",
|
|
189
|
+
description: "Fetch one task by id (full detail). If the key has includeGrants, this also resolves tasks in gardens shared with the caller (returned with a sharedFrom field).",
|
|
175
190
|
inputSchema: getTaskSchema.shape,
|
|
176
191
|
}, (args) => runTool(() => getTask(client, args)));
|
|
177
192
|
server.registerTool("update_task", {
|
|
178
193
|
title: "Update task",
|
|
179
|
-
description: "Patch task fields and/or drive its status.",
|
|
194
|
+
description: "Patch task fields and/or drive its status. Also works on a task shared with the caller (includeGrants keys only), subject to the garden owner's capabilities.",
|
|
180
195
|
inputSchema: updateTaskSchema.shape,
|
|
181
196
|
}, (args) => runTool(() => updateTask(client, args)));
|
|
182
197
|
server.registerTool("delete_task", {
|
package/dist/tools/tasks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/tools/tasks.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,4EAA4E;AAC5E,gBAAgB;AAGhB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EACL,mBAAmB,EACnB,SAAS,EACT,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,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,UAAU,GAAG;IACjB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;IAChF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IAC3E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,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,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE;IACjC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE;IAClD,UAAU,EAAE,gBAAgB,CAAC,QAAQ,EAAE;IACvC,cAAc,EAAE,oBAAoB;SACjC,QAAQ,EAAE;SACV,QAAQ,EAAE;SACV,QAAQ,CACP,kFAAkF,CACnF;IACH,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACtC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IAC9E,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,iDAAiD,CAAC;IAC9D,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,qEAAqE,CAAC;
|
|
1
|
+
{"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/tools/tasks.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -73,6 +73,27 @@ pre-guessing constraints.
|
|
|
73
73
|
`create_book`/`refresh_book_metadata` and only fill fields you left empty.
|
|
74
74
|
`archived`/`deleted` are independent reversible booleans, same pattern as
|
|
75
75
|
reading list items.
|
|
76
|
+
- **Mind Meld (shared gardens)** = a garden owner shares one garden with
|
|
77
|
+
another user via the web app (invites, capability edits, revoke, and
|
|
78
|
+
joining by code are web-only - there is no tool for them). The guest can be
|
|
79
|
+
on the same deployment or on their own Open Brain deployment; a garden from
|
|
80
|
+
another deployment is mirrored locally, so the same tools read and edit it
|
|
81
|
+
(edits are forwarded to the owner's deployment, which has the final say and
|
|
82
|
+
may revert a change it rejects). `list_shares` marks such a garden with
|
|
83
|
+
`remote: { origin, lastSyncedAt, lastError }`.
|
|
84
|
+
A guest sees the shared garden's tasks and, per the owner's chosen
|
|
85
|
+
capability preset, can arrange (move/complete), edit fields, create tasks,
|
|
86
|
+
or cancel - never see the owner's people/habit/calendar links, and never
|
|
87
|
+
see other gardens. Status changes for a guest follow the capability, not
|
|
88
|
+
the usual status machine: `complete` only moves an open task to `done`;
|
|
89
|
+
reopening a `done`/`canceled` task, or any other status move, needs `edit`;
|
|
90
|
+
`canceled` needs `cancel`. Tasks in a shared garden can carry
|
|
91
|
+
`assigneeUserId` (a participant's user id, `"me"`, or `null` to unassign) -
|
|
92
|
+
set it via `create_task`/`update_task`. `list_shares` (needs the key's
|
|
93
|
+
`includeGrants`) shows gardens shared with the caller, their capabilities,
|
|
94
|
+
and participants; `list_shared_tasks {shareId}` lists that garden's tasks.
|
|
95
|
+
`create_key`'s `includeGrants` flag is what lets a key see shared data at
|
|
96
|
+
all - a key without it only ever sees the vault's own data, even with `*`.
|
|
76
97
|
- **Strava activity** = a GPS-tracked activity mirrored in from Strava
|
|
77
98
|
(real-time webhook, plus `sync_strava_activities` for backfill/fallback).
|
|
78
99
|
Never created here — every field except `notes`, `archived`, `deleted`, and
|
|
@@ -87,11 +108,18 @@ pre-guessing constraints.
|
|
|
87
108
|
|
|
88
109
|
## Tool catalog
|
|
89
110
|
|
|
90
|
-
- **Tasks**: `create_task`, `list_tasks` (filter or multi-get via `ids
|
|
111
|
+
- **Tasks**: `create_task`, `list_tasks` (filter or multi-get via `ids`;
|
|
112
|
+
`assignee: "me"|"unassigned"|<userId>` filters the home vault by assignee),
|
|
91
113
|
`get_task`, `update_task` (drives status), `delete_task`, batch
|
|
92
114
|
`create_tasks`/`update_tasks`, `add_task_tags`/`remove_task_tags`.
|
|
93
115
|
`create_task`/`update_task` accept `eventId` to link a synced calendar event
|
|
94
116
|
(read-only mirror); `eventId: null` on update unlinks it.
|
|
117
|
+
`create_task`/`create_tasks`/`update_task`/`update_tasks` also accept
|
|
118
|
+
`assigneeUserId` (a user id, `"me"`, or `null` to unassign) - only
|
|
119
|
+
meaningful once the task's garden has an active share (see Mind Meld
|
|
120
|
+
above). `get_task`/`update_task` also resolve a task shared with the
|
|
121
|
+
caller when the key has `includeGrants` (returned/patched with a
|
|
122
|
+
`sharedFrom` marker).
|
|
95
123
|
- **Projects**: `create_project`, `list_projects`, `get_project`,
|
|
96
124
|
`update_project`, `delete_project`, `create_projects`/`update_projects`.
|
|
97
125
|
- **Gardens**: `create_garden`, `list_gardens`, `get_garden`, `update_garden`,
|
|
@@ -170,7 +198,16 @@ pre-guessing constraints.
|
|
|
170
198
|
deadlines/deferDates from integrations like Linear resolve against;
|
|
171
199
|
`yearlyBookGoal`, the reading-challenge target for books finished this
|
|
172
200
|
calendar year - `null` clears it).
|
|
173
|
-
- **
|
|
201
|
+
- **Mind Meld** (shared gardens, guest side; sharing/invites/revoke are
|
|
202
|
+
web-only): `list_shares` (gardens shared with the caller: capabilities,
|
|
203
|
+
owner, participants - empty unless the key has `includeGrants`),
|
|
204
|
+
`list_shared_tasks {shareId, status?, includeCanceled?}` (that garden's
|
|
205
|
+
tasks, capped at 500).
|
|
206
|
+
- **Profile**: `get_profile` (user id, display name, avatar URL),
|
|
207
|
+
`update_profile {displayName}` (1-60 chars; avatar upload is web-only).
|
|
208
|
+
- **Keys**: `create_key` (optional `includeGrants` to let the new key see
|
|
209
|
+
gardens shared with its owner - only settable if the calling key itself
|
|
210
|
+
has it), `list_keys`, `rotate_key`, `revoke_key`.
|
|
174
211
|
|
|
175
212
|
## Workflows
|
|
176
213
|
|
|
@@ -279,6 +316,10 @@ pre-guessing constraints.
|
|
|
279
316
|
key (it clears the review queue's people section).
|
|
280
317
|
- Created secrets (`create_key`/`rotate_key`) are shown ONCE — surface them to
|
|
281
318
|
the user immediately; they are never retrievable again.
|
|
319
|
+
- `list_shares`/`list_shared_tasks` need a key minted with `includeGrants:
|
|
320
|
+
true`; an ordinary key (even `*`) comes back empty for `list_shares`. There
|
|
321
|
+
is no tool to create/edit/revoke a share or invite - point the user at the
|
|
322
|
+
web app's garden sharing settings for that.
|
|
282
323
|
- Prefer batch tools (`create_tasks`, `update_tasks`) over many single calls
|
|
283
324
|
when acting on several items at once.
|
|
284
325
|
- **Tagging is cheapest at creation.** Pass `tagIds` to `create_task(s)`. There
|