@cr8rcho/alkahest 0.1.68 → 0.1.70
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.ko.md +15 -0
- package/README.md +15 -0
- package/dist/commands/comments.js +1 -1
- package/dist/commands/comments.js.map +1 -1
- package/dist/commands/history.js +1 -1
- package/dist/commands/history.js.map +1 -1
- package/dist/commands/issues.js +1 -1
- package/dist/commands/issues.js.map +1 -1
- package/dist/commands/maps.js +1 -1
- package/dist/commands/maps.js.map +1 -1
- package/dist/commands/notes.js +1 -1
- package/dist/commands/notes.js.map +1 -1
- package/dist/commands/publish.js +5 -0
- package/dist/commands/publish.js.map +1 -1
- package/dist/core/comments.js +2 -2
- package/dist/core/comments.js.map +1 -1
- package/dist/core/history.js +1 -1
- package/dist/core/history.js.map +1 -1
- package/dist/core/issues.js +1 -1
- package/dist/core/issues.js.map +1 -1
- package/dist/core/maps.js +1 -1
- package/dist/core/maps.js.map +1 -1
- package/dist/core/notes.js +1 -1
- package/dist/core/notes.js.map +1 -1
- package/dist/core/project.d.ts +8 -1
- package/dist/core/project.js +11 -2
- package/dist/core/project.js.map +1 -1
- package/dist/mcp/server.js +76 -53
- package/dist/mcp/server.js.map +1 -1
- package/package.json +1 -1
package/dist/core/notes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notes.js","sourceRoot":"","sources":["../../src/core/notes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"notes.js","sourceRoot":"","sources":["../../src/core/notes.ts"],"names":[],"mappings":"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"}
|
package/dist/core/project.d.ts
CHANGED
|
@@ -4,7 +4,14 @@ export declare function findProjectRoot(start: string): string;
|
|
|
4
4
|
export declare function localSlug(root: string): string | undefined;
|
|
5
5
|
/** Code map this checkout publishes to, stored alongside the slug in .alkahest/project.json. */
|
|
6
6
|
export declare function localMapSlug(root: string): string | undefined;
|
|
7
|
-
/**
|
|
7
|
+
/**
|
|
8
|
+
* Resolve { root, slug, mapSlug } from any path:
|
|
9
|
+
* explicit → local file → saved creds (by root/path) → ALKAHEST_PROJECT.
|
|
10
|
+
*
|
|
11
|
+
* The env var is the LAST fallback on purpose (same shape as ALKAHEST_TOKEN in
|
|
12
|
+
* credentials.ts): it lets an MCP server be configured for one project — a personal wiki,
|
|
13
|
+
* say — without a checkout to bind, while a real linked checkout still wins over it.
|
|
14
|
+
*/
|
|
8
15
|
export declare function resolveProject(path: string, explicitSlug?: string): {
|
|
9
16
|
root: string;
|
|
10
17
|
slug?: string;
|
package/dist/core/project.js
CHANGED
|
@@ -54,14 +54,23 @@ export function localMapSlug(root) {
|
|
|
54
54
|
catch { /* missing or unparsable */ }
|
|
55
55
|
return undefined;
|
|
56
56
|
}
|
|
57
|
-
/**
|
|
57
|
+
/**
|
|
58
|
+
* Resolve { root, slug, mapSlug } from any path:
|
|
59
|
+
* explicit → local file → saved creds (by root/path) → ALKAHEST_PROJECT.
|
|
60
|
+
*
|
|
61
|
+
* The env var is the LAST fallback on purpose (same shape as ALKAHEST_TOKEN in
|
|
62
|
+
* credentials.ts): it lets an MCP server be configured for one project — a personal wiki,
|
|
63
|
+
* say — without a checkout to bind, while a real linked checkout still wins over it.
|
|
64
|
+
*/
|
|
58
65
|
export function resolveProject(path, explicitSlug) {
|
|
59
66
|
const root = findProjectRoot(path);
|
|
60
67
|
const creds = loadCredentials();
|
|
61
68
|
const slug = explicitSlug ||
|
|
62
69
|
localSlug(root) ||
|
|
63
70
|
creds.projects?.[root]?.slug ||
|
|
64
|
-
creds.projects?.[resolve(path || ".")]?.slug
|
|
71
|
+
creds.projects?.[resolve(path || ".")]?.slug ||
|
|
72
|
+
process.env.ALKAHEST_PROJECT?.trim() ||
|
|
73
|
+
undefined;
|
|
65
74
|
const mapSlug = localMapSlug(root) ||
|
|
66
75
|
creds.projects?.[root]?.mapSlug ||
|
|
67
76
|
creds.projects?.[resolve(path || ".")]?.mapSlug;
|
package/dist/core/project.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/core/project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;;;;;;;;GASG;AAEH,qFAAqF;AACrF,8FAA8F;AAC9F,qEAAqE;AACrE,MAAM,eAAe,GAAG,CAAC,UAAU,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC;AAEtE,SAAS,YAAY,CAAC,GAAW;IAC/B,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,qGAAqG;AACrG,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC;IACnC,IAAI,GAAG,GAAG,IAAI,CAAC;IACf,SAAS,CAAC;QACR,IAAI,YAAY,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC;QAClC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC,CAAC,iDAAiD;QAClF,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;AACH,CAAC;AAED,wGAAwG;AACxG,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,KAAK,MAAM,IAAI,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC,EAAE,CAAC;QACrD,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;YACzE,IAAI,CAAC,EAAE,IAAI;gBAAE,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC,CAAC,0CAA0C,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QACnF,IAAI,CAAC,EAAE,OAAO;YAAE,OAAO,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC,CAAC,2BAA2B,CAAC,CAAC;IACvC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/core/project.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/server.js
CHANGED
|
@@ -148,6 +148,7 @@ export function buildServer() {
|
|
|
148
148
|
plan_limit: "Free plan project limit reached — upgrade to Pro for more.",
|
|
149
149
|
invalid_token: "The API token is invalid or revoked — create a new one at alkahest.app → Account.",
|
|
150
150
|
client_too_old: "This alkahest is too old to publish — run 'alkahest update'.",
|
|
151
|
+
no_workspace: "This account has no workspace yet, and a first publish needs one to hold the new project. Ask the user to create one at alkahest.app/home, then call publish again — there is nothing to retry until they do.",
|
|
151
152
|
ambiguous_map: "List the project's code maps with the maps tool, then call publish again with `map` set to one of them (or a new slug to create one).",
|
|
152
153
|
ambiguous_project: "This checkout has no linked project and an existing one looks like it — do NOT create a duplicate. Pick a candidate's slug below (or use list_projects) and call publish again with `slug` set, or pass a deliberately new `name` to create a fresh project.",
|
|
153
154
|
};
|
|
@@ -213,19 +214,20 @@ export function buildServer() {
|
|
|
213
214
|
"node's source location (screen → sourceFile/route/title, resource → path/label) so you can open the right file " +
|
|
214
215
|
"and address it. Use this to drive development from feedback: read open comments, edit the code, then call " +
|
|
215
216
|
"resolve_comment. Needs an API token (ALKAHEST_TOKEN in this server's config, or a prior 'alkahest login') " +
|
|
216
|
-
"and the project
|
|
217
|
+
"and the project named (see `project`).",
|
|
217
218
|
inputSchema: {
|
|
219
|
+
project: z.string().optional().describe("Which project (slug) — say it explicitly when the folder isn't a linked checkout. List them with list_projects."),
|
|
218
220
|
path: z.string().optional().describe("Project root (default: cwd)"),
|
|
219
221
|
open: z.boolean().optional().describe("Only unresolved comments (default: false = all)"),
|
|
220
222
|
},
|
|
221
|
-
}, async ({ path, open }) => {
|
|
223
|
+
}, async ({ path, open, project }) => {
|
|
222
224
|
const root = rootOf(path);
|
|
223
|
-
const res = await pullComments(root, { open });
|
|
225
|
+
const res = await pullComments(root, { open, slug: project });
|
|
224
226
|
if (!res.ok) {
|
|
225
227
|
const hints = {
|
|
226
228
|
no_token: "Set ALKAHEST_TOKEN in this MCP server's config (token from alkahest.app → Account).",
|
|
227
229
|
no_api: "Set ALKAHEST_API_URL in this MCP server's config.",
|
|
228
|
-
no_slug: "
|
|
230
|
+
no_slug: "Pass `project` — a slug from list_projects — or set ALKAHEST_PROJECT in this MCP server's config.",
|
|
229
231
|
invalid_token: "The API token is invalid or revoked — create a new one at alkahest.app → Account.",
|
|
230
232
|
not_found: "No accessible project for this slug.",
|
|
231
233
|
};
|
|
@@ -266,9 +268,10 @@ export function buildServer() {
|
|
|
266
268
|
inputSchema: {
|
|
267
269
|
node: z.string().describe("screen id/route/title, resource id/path/label, or 'map'"),
|
|
268
270
|
body: z.string().describe("the comment text"),
|
|
271
|
+
project: z.string().optional().describe("Which project (slug) — say it explicitly when the folder isn't a linked checkout. List them with list_projects."),
|
|
269
272
|
path: z.string().optional().describe("Project root (default: cwd)"),
|
|
270
273
|
},
|
|
271
|
-
}, async ({ node, body, path }) => {
|
|
274
|
+
}, async ({ node, body, path, project }) => {
|
|
272
275
|
const root = findProjectRoot(rootOf(path));
|
|
273
276
|
const map = loadOrScan(root);
|
|
274
277
|
if (!map)
|
|
@@ -276,11 +279,11 @@ export function buildServer() {
|
|
|
276
279
|
const n = resolveNode(map, node);
|
|
277
280
|
if (!n)
|
|
278
281
|
return text(`No node matches '${node}'. Use the overview tool to list screens/resources.`);
|
|
279
|
-
const res = await postComment(root, { node_key: n.node_key, anchor_kind: n.anchor_kind, anchor_label: n.anchor_label, body });
|
|
282
|
+
const res = await postComment(root, { node_key: n.node_key, anchor_kind: n.anchor_kind, anchor_label: n.anchor_label, body, slug: project });
|
|
280
283
|
if (!res.ok) {
|
|
281
284
|
const hints = {
|
|
282
285
|
no_token: "Set ALKAHEST_TOKEN in this MCP server's config.",
|
|
283
|
-
no_slug: "
|
|
286
|
+
no_slug: "Pass `project` — a slug from list_projects — or set ALKAHEST_PROJECT in this MCP server's config.",
|
|
284
287
|
forbidden: "Only the project owner or a collaborator can comment.",
|
|
285
288
|
};
|
|
286
289
|
return text(`Add comment failed (${res.code}): ${res.message}.${hints[res.code ?? ""] ? " " + hints[res.code ?? ""] : ""}`);
|
|
@@ -317,17 +320,18 @@ export function buildServer() {
|
|
|
317
320
|
"already linked to an issue (creates a new one).",
|
|
318
321
|
inputSchema: {
|
|
319
322
|
ids: z.array(z.string()).min(1).describe("Comment ids to group into one issue (from the comments tool)"),
|
|
323
|
+
project: z.string().optional().describe("Which project (slug) — say it explicitly when the folder isn't a linked checkout. List them with list_projects."),
|
|
320
324
|
path: z.string().optional().describe("Project root (default: cwd)"),
|
|
321
325
|
title: z.string().optional().describe("Issue title (else derived from the comments)"),
|
|
322
326
|
repo: z.string().optional().describe("Target GitHub repo owner/repo (else gh's default for the repo)"),
|
|
323
327
|
force: z.boolean().optional().describe("File even if some selected comments are already tracked"),
|
|
324
328
|
},
|
|
325
|
-
}, async ({ ids, path, title, repo, force }) => {
|
|
326
|
-
const res = await fileCommentsIssue(rootOf(path), ids, { title, repo, force });
|
|
329
|
+
}, async ({ ids, path, title, repo, force, project }) => {
|
|
330
|
+
const res = await fileCommentsIssue(rootOf(path), ids, { title, repo, force, slug: project });
|
|
327
331
|
if (!res.ok) {
|
|
328
332
|
const hints = {
|
|
329
333
|
no_token: "Set ALKAHEST_TOKEN in this MCP server's config.",
|
|
330
|
-
no_slug: "
|
|
334
|
+
no_slug: "Pass `project` — a slug from list_projects — or set ALKAHEST_PROJECT in this MCP server's config.",
|
|
331
335
|
already_tracked: "Some comments already have an issue — pass force:true to file a new one.",
|
|
332
336
|
gh_failed: "Install and authenticate the GitHub CLI (`gh auth login`) for this repo.",
|
|
333
337
|
forbidden: "Only the project owner or a collaborator can file issues.",
|
|
@@ -341,7 +345,7 @@ export function buildServer() {
|
|
|
341
345
|
const issueHints = {
|
|
342
346
|
no_token: "Set ALKAHEST_TOKEN in this MCP server's config (token from alkahest.app → Account).",
|
|
343
347
|
no_api: "Set ALKAHEST_API_URL in this MCP server's config.",
|
|
344
|
-
no_slug: "
|
|
348
|
+
no_slug: "Pass `project` — a slug from list_projects — or set ALKAHEST_PROJECT in this MCP server's config.",
|
|
345
349
|
invalid_token: "The API token is invalid or revoked — create a new one at alkahest.app → Account.",
|
|
346
350
|
forbidden: "Only the project owner or a collaborator can write issues.",
|
|
347
351
|
not_found: "Not found — list ids with the issues tool, or the project's issue maps with the maps tool.",
|
|
@@ -359,15 +363,16 @@ export function buildServer() {
|
|
|
359
363
|
"question awaits an answer), and awaitingDecision (open_questions > 0) — use actionable issues to decide what " +
|
|
360
364
|
"to work on next. When you hit a decision you need the user to make mid-task, post it with ask_issue (the issue " +
|
|
361
365
|
"stops being actionable until they answer and you resolve_issue_question). Read the thread with issue_comments. " +
|
|
362
|
-
"Needs an API token and a
|
|
366
|
+
"Needs an API token and a named project — pass `project` (a slug from list_projects) unless the folder is a linked checkout or ALKAHEST_PROJECT is set. No publish required.",
|
|
363
367
|
inputSchema: {
|
|
368
|
+
project: z.string().optional().describe("Which project (slug) — say it explicitly when the folder isn't a linked checkout. List them with list_projects."),
|
|
364
369
|
path: z.string().optional().describe("Project root (default: cwd)"),
|
|
365
370
|
open: z.boolean().optional().describe("Only issues that are not done (default: false = all)"),
|
|
366
371
|
map: z.string().optional().describe("Restrict to one issue map (a project can hold several; omit when there's one). List them with the maps tool."),
|
|
367
372
|
q: z.string().optional().describe("Filter issues by title/body substring (server-side). Edges/links stay unfiltered, so blockedBy may name issues outside the filtered list."),
|
|
368
373
|
},
|
|
369
|
-
}, async ({ path, open, map, q }) => {
|
|
370
|
-
const res = await pullIssues(rootOf(path), { mapSlug: map, q });
|
|
374
|
+
}, async ({ path, open, map, q, project }) => {
|
|
375
|
+
const res = await pullIssues(rootOf(path), { mapSlug: map, q, slug: project });
|
|
371
376
|
if (!res.ok || !res.graph)
|
|
372
377
|
return issueFail("Read issues", res.code, res.message, res.maps);
|
|
373
378
|
const states = deriveIssueStates(res.graph);
|
|
@@ -404,16 +409,17 @@ export function buildServer() {
|
|
|
404
409
|
parent_id: z.string().optional().describe("Parent issue id — creates a contains edge (epic → task)"),
|
|
405
410
|
target: z.string().optional().describe("Code-map target: 's:…'/'r:…' node key, '/route' (planned screen), or a resource label"),
|
|
406
411
|
map: z.string().optional().describe("Which issue map to add to (a project can hold several; omit when there's one). List them with the maps tool, or create one with create_map."),
|
|
412
|
+
project: z.string().optional().describe("Which project (slug) — say it explicitly when the folder isn't a linked checkout. List them with list_projects."),
|
|
407
413
|
path: z.string().optional().describe("Project root (default: cwd)"),
|
|
408
414
|
},
|
|
409
|
-
}, async ({ title, type, status, body, priority, due_on, assignee_id, parent_id, target, map, path }) => {
|
|
415
|
+
}, async ({ title, type, status, body, priority, due_on, assignee_id, parent_id, target, map, path, project }) => {
|
|
410
416
|
const targetFields = target
|
|
411
417
|
? {
|
|
412
418
|
target_kind: (target.startsWith("s:") || target.startsWith("r:") ? "node" : target.startsWith("/") ? "route" : "resource"),
|
|
413
419
|
target_key: target,
|
|
414
420
|
}
|
|
415
421
|
: {};
|
|
416
|
-
const res = await createIssue(rootOf(path), { title, type, status, body, priority, due_on, assignee_id, parent_id, mapSlug: map, ...targetFields });
|
|
422
|
+
const res = await createIssue(rootOf(path), { title, type, status, body, priority, due_on, assignee_id, parent_id, mapSlug: map, slug: project, ...targetFields });
|
|
417
423
|
if (!res.ok || !res.issue)
|
|
418
424
|
return issueFail("Add issue", res.code, res.message, res.maps);
|
|
419
425
|
return json({ ok: true, issue: res.issue });
|
|
@@ -693,19 +699,20 @@ export function buildServer() {
|
|
|
693
699
|
"Use it before creating anything (does a note/issue/task on this topic already exist?) and before linking " +
|
|
694
700
|
"(which note should cite this issue?). Matching is a server-side substring over title + full body (and note " +
|
|
695
701
|
"slug); results come back compact — note bodies as 240-char excerpts (read one in full with get_note), issues " +
|
|
696
|
-
"with status/type, tasks with done state. Notes and issues need a
|
|
697
|
-
"reason if there isn't one); tasks are yours and always searchable. For a deeper dive into one kind, use the " +
|
|
702
|
+
"with status/type, tasks with done state. Notes and issues need a named project (they fail soft with a " +
|
|
703
|
+
"reason if there isn't one — pass `project`); tasks are yours and always searchable. For a deeper dive into one kind, use the " +
|
|
698
704
|
"notes / issues / list_tasks tools with their own `q`.",
|
|
699
705
|
inputSchema: {
|
|
700
706
|
q: z.string().describe("Text to find — substring match over titles and full bodies"),
|
|
707
|
+
project: z.string().optional().describe("Which project (slug) — say it explicitly when the folder isn't a linked checkout. List them with list_projects."),
|
|
701
708
|
path: z.string().optional().describe("Project root (default: cwd)"),
|
|
702
709
|
},
|
|
703
|
-
}, async ({ q, path }) => {
|
|
710
|
+
}, async ({ q, path, project }) => {
|
|
704
711
|
const root = rootOf(path);
|
|
705
712
|
const [notesRes, issuesRes, tasksRes] = await Promise.all([
|
|
706
|
-
pullNotes(root, { q, bodies: "excerpt" }),
|
|
707
|
-
pullIssues(root, { q }),
|
|
708
|
-
pullTasks(root, { q, status: "all" }),
|
|
713
|
+
pullNotes(root, { q, bodies: "excerpt", slug: project }),
|
|
714
|
+
pullIssues(root, { q, slug: project }),
|
|
715
|
+
pullTasks(root, { q, status: "all", project }),
|
|
709
716
|
]);
|
|
710
717
|
const notes = notesRes.ok && notesRes.maps
|
|
711
718
|
? notesRes.maps.flatMap((m) => m.notes.map((n) => ({ slug: n.slug, title: n.title, map: m.slug, folder: n.folder ?? null, excerpt: n.body ?? null })))
|
|
@@ -731,15 +738,16 @@ export function buildServer() {
|
|
|
731
738
|
"the notebook's property schema (key/type/options); notes carry their props values (reserved key `tags`). " +
|
|
732
739
|
"ALWAYS check this before add_note when " +
|
|
733
740
|
"recording knowledge: if a note on the topic exists, update_note it instead of adding a near-duplicate. " +
|
|
734
|
-
"`q` searches title/slug/FULL body server-side. Needs an API token and a
|
|
741
|
+
"`q` searches title/slug/FULL body server-side. Needs an API token and a named project — pass `project` (a slug from list_projects) unless the folder is a linked checkout or ALKAHEST_PROJECT is set. No publish required.",
|
|
735
742
|
inputSchema: {
|
|
743
|
+
project: z.string().optional().describe("Which project (slug) — say it explicitly when the folder isn't a linked checkout. List them with list_projects."),
|
|
736
744
|
path: z.string().optional().describe("Project root (default: cwd)"),
|
|
737
745
|
q: z.string().optional().describe("Filter notes by title/slug/body substring (matches the full body)"),
|
|
738
746
|
map: z.string().optional().describe("Restrict to one note map (default: all readable). List them with the maps tool."),
|
|
739
747
|
full_bodies: z.boolean().optional().describe("Return complete bodies instead of 240-char excerpts (heavy on a big wiki)"),
|
|
740
748
|
},
|
|
741
|
-
}, async ({ path, q, map, full_bodies }) => {
|
|
742
|
-
const res = await pullNotes(rootOf(path), { mapSlug: map, q, bodies: full_bodies ? undefined : "excerpt" });
|
|
749
|
+
}, async ({ path, q, map, full_bodies, project }) => {
|
|
750
|
+
const res = await pullNotes(rootOf(path), { mapSlug: map, q, bodies: full_bodies ? undefined : "excerpt", slug: project });
|
|
743
751
|
if (!res.ok || !res.maps)
|
|
744
752
|
return issueFail("Read notes", res.code, res.message, res.mapList);
|
|
745
753
|
return json({ ok: true, project: res.project, count: res.maps.reduce((n, m) => n + m.notes.length, 0), maps: res.maps });
|
|
@@ -751,10 +759,11 @@ export function buildServer() {
|
|
|
751
759
|
inputSchema: {
|
|
752
760
|
note: z.string().describe("Note slug (or id)"),
|
|
753
761
|
map: z.string().optional().describe("Which note map (omit when the slug is unique across maps)"),
|
|
762
|
+
project: z.string().optional().describe("Which project (slug) — say it explicitly when the folder isn't a linked checkout. List them with list_projects."),
|
|
754
763
|
path: z.string().optional().describe("Project root (default: cwd)"),
|
|
755
764
|
},
|
|
756
|
-
}, async ({ note, map, path }) => {
|
|
757
|
-
const res = await getNote(rootOf(path), { note, mapSlug: map });
|
|
765
|
+
}, async ({ note, map, path, project }) => {
|
|
766
|
+
const res = await getNote(rootOf(path), { note, mapSlug: map, slug: project });
|
|
758
767
|
if (!res.ok || !res.note)
|
|
759
768
|
return issueFail("Get note", res.code, res.message, res.mapList);
|
|
760
769
|
const { ok: _ok, code: _code, message: _message, mapList: _ml, ...rest } = res;
|
|
@@ -774,10 +783,11 @@ export function buildServer() {
|
|
|
774
783
|
folder: z.string().optional().describe("Tree-sidebar path like 'raw/articles' (omit = unfiled) — the web viewer's Obsidian-style tree groups by it"),
|
|
775
784
|
props: z.record(z.any()).optional().describe("Notebook properties (flat key→value): reserved key `tags` = string array; other keys should match the map's schema (see prop_defs in the notes tool) — unknown keys are kept but show as unregistered"),
|
|
776
785
|
map: z.string().optional().describe("Which note map to add to (a project can hold several; omit when there's one). List them with the maps tool, or create one with create_map."),
|
|
786
|
+
project: z.string().optional().describe("Which project (slug) — say it explicitly when the folder isn't a linked checkout. List them with list_projects."),
|
|
777
787
|
path: z.string().optional().describe("Project root (default: cwd)"),
|
|
778
788
|
},
|
|
779
|
-
}, async ({ title, body, note_slug, folder, props, map, path }) => {
|
|
780
|
-
const res = await createNote(rootOf(path), { title, body, note_slug, folder, props, mapSlug: map });
|
|
789
|
+
}, async ({ title, body, note_slug, folder, props, map, path, project }) => {
|
|
790
|
+
const res = await createNote(rootOf(path), { title, body, note_slug, folder, props, mapSlug: map, slug: project });
|
|
781
791
|
if (!res.ok || !res.note)
|
|
782
792
|
return issueFail("Add note", res.code, res.message, res.maps);
|
|
783
793
|
return json({ ok: true, note: res.note });
|
|
@@ -794,10 +804,11 @@ export function buildServer() {
|
|
|
794
804
|
from: z.string().describe("Source note slug (or id)"),
|
|
795
805
|
to: z.string().describe("Target: 'issue:<uuid>', or 'code:s:…' / 'code:r:…'"),
|
|
796
806
|
remove: z.boolean().optional().describe("true → disconnect from→to instead"),
|
|
807
|
+
project: z.string().optional().describe("Which project (slug) — say it explicitly when the folder isn't a linked checkout. List them with list_projects."),
|
|
797
808
|
path: z.string().optional().describe("Project root (default: cwd)"),
|
|
798
809
|
},
|
|
799
|
-
}, async ({ from, to, remove, path }) => {
|
|
800
|
-
const res = await linkNotes(rootOf(path), { from, to, remove });
|
|
810
|
+
}, async ({ from, to, remove, path, project }) => {
|
|
811
|
+
const res = await linkNotes(rootOf(path), { from, to, remove, slug: project });
|
|
801
812
|
if (!res.ok)
|
|
802
813
|
return issueFail(remove ? "Unlink notes" : "Link notes", res.code, res.message, res.maps);
|
|
803
814
|
return json({ ok: true, ...(remove ? { removed: `${from} → ${to}` } : { linked: `${from} → ${to}` }) });
|
|
@@ -811,10 +822,11 @@ export function buildServer() {
|
|
|
811
822
|
inputSchema: {
|
|
812
823
|
note: z.string().describe("Note slug (or id)"),
|
|
813
824
|
map: z.string().optional().describe("Target note map (a project can hold several; omit when there's one). List them with the maps tool."),
|
|
825
|
+
project: z.string().optional().describe("Which project (slug) — say it explicitly when the folder isn't a linked checkout. List them with list_projects."),
|
|
814
826
|
path: z.string().optional().describe("Project root (default: cwd)"),
|
|
815
827
|
},
|
|
816
|
-
}, async ({ note, map, path }) => {
|
|
817
|
-
const res = await mapNote(rootOf(path), { noteRef: note, mapSlug: map });
|
|
828
|
+
}, async ({ note, map, path, project }) => {
|
|
829
|
+
const res = await mapNote(rootOf(path), { noteRef: note, mapSlug: map, slug: project });
|
|
818
830
|
if (!res.ok)
|
|
819
831
|
return issueFail("Move note", res.code, res.message, res.maps);
|
|
820
832
|
return json({ ok: true, note: res.note, map: res.map });
|
|
@@ -840,10 +852,11 @@ export function buildServer() {
|
|
|
840
852
|
reason: z.string().optional().describe("REQUIRED with delete (≤200 chars): a one-line reason the user sees in the Trash and the activity journal — say WHY the note should go, not just 'cleanup'"),
|
|
841
853
|
restore: z.boolean().optional().describe("true → restore the note from the Trash (undoes a soft delete)"),
|
|
842
854
|
map: z.string().optional().describe("Which note map (a project can hold several; omit when there's one)"),
|
|
855
|
+
project: z.string().optional().describe("Which project (slug) — say it explicitly when the folder isn't a linked checkout. List them with list_projects."),
|
|
843
856
|
path: z.string().optional().describe("Project root (default: cwd)"),
|
|
844
857
|
},
|
|
845
|
-
}, async ({ note, title, body, new_slug, folder, props, delete: del, reason, restore, map, path }) => {
|
|
846
|
-
const res = await updateNote(rootOf(path), { note, title, body, new_slug, folder, props, delete: del, reason, restore, mapSlug: map });
|
|
858
|
+
}, async ({ note, title, body, new_slug, folder, props, delete: del, reason, restore, map, path, project }) => {
|
|
859
|
+
const res = await updateNote(rootOf(path), { note, title, body, new_slug, folder, props, delete: del, reason, restore, mapSlug: map, slug: project });
|
|
847
860
|
const what = del ? "Delete note" : restore ? "Restore note" : "Update note";
|
|
848
861
|
if (!res.ok)
|
|
849
862
|
return issueFail(what, res.code, res.message, res.maps);
|
|
@@ -876,13 +889,14 @@ export function buildServer() {
|
|
|
876
889
|
})).optional().describe("Definitions to register/merge onto the note map's schema"),
|
|
877
890
|
remove: z.array(z.string()).optional().describe("Property definition key(s) to unregister; note values are kept. Reserved key `tags` is refused."),
|
|
878
891
|
map: z.string().optional().describe("Which note map (a project can hold several; omit when there's one)"),
|
|
892
|
+
project: z.string().optional().describe("Which project (slug) — say it explicitly when the folder isn't a linked checkout. List them with list_projects."),
|
|
879
893
|
path: z.string().optional().describe("Project root (default: cwd)"),
|
|
880
894
|
},
|
|
881
|
-
}, async ({ define, remove, map, path }) => {
|
|
895
|
+
}, async ({ define, remove, map, path, project }) => {
|
|
882
896
|
if (!define?.length && !remove?.length) {
|
|
883
897
|
return json({ ok: false, error: "bad_request", message: "Pass `define` (definitions to register) and/or `remove` (keys to unregister)." });
|
|
884
898
|
}
|
|
885
|
-
const res = await editPropDefs(rootOf(path), { defs: define, remove, mapSlug: map });
|
|
899
|
+
const res = await editPropDefs(rootOf(path), { defs: define, remove, mapSlug: map, slug: project });
|
|
886
900
|
if (!res.ok)
|
|
887
901
|
return issueFail("Edit note props", res.code, res.message, res.maps);
|
|
888
902
|
return json({ ok: true, added: res.added ?? 0, merged: res.merged ?? 0, removed: res.removed ?? 0, skipped: res.skipped ?? 0 });
|
|
@@ -892,21 +906,24 @@ export function buildServer() {
|
|
|
892
906
|
description: "List the maps in this published project. A project is a container of many maps (ADR-011): code maps " +
|
|
893
907
|
"(published from a scan) and issue maps — each with a per-project slug, addressed at /p/:project/:map. Maps " +
|
|
894
908
|
"are equal (no default), so when a project has several of a type the publish / add_issue / issues tools return " +
|
|
895
|
-
"'ambiguous_map' — call this to see the slugs, then pass `map`. Needs an API token and a
|
|
909
|
+
"'ambiguous_map' — call this to see the slugs, then pass `map`. Needs an API token and a named project — pass `project` (a slug from list_projects) unless the folder is a linked checkout or ALKAHEST_PROJECT is set. No publish required.",
|
|
896
910
|
inputSchema: {
|
|
911
|
+
project: z.string().optional().describe("Which project (slug) — say it explicitly when the folder isn't a linked checkout. List them with list_projects."),
|
|
897
912
|
path: z.string().optional().describe("Project root (default: cwd)"),
|
|
898
913
|
type: z.enum(["code", "issue", "note"]).optional().describe("Restrict to one type (default: all)"),
|
|
899
914
|
},
|
|
900
|
-
}, async ({ path, type }) => {
|
|
901
|
-
const res = await listMaps(rootOf(path), { type });
|
|
915
|
+
}, async ({ path, type, project }) => {
|
|
916
|
+
const res = await listMaps(rootOf(path), { type, slug: project });
|
|
902
917
|
if (!res.ok || !res.maps)
|
|
903
918
|
return issueFail("List maps", res.code, res.message);
|
|
904
919
|
return json({ ok: true, slug: res.slug, count: res.maps.length, maps: res.maps });
|
|
905
920
|
});
|
|
906
921
|
server.registerTool("list_projects", {
|
|
907
922
|
title: "List account projects & workspaces",
|
|
908
|
-
description: "List every workspace and project this account's token can reach (ADR-022).
|
|
909
|
-
"
|
|
923
|
+
description: "List every workspace and project this account's token can reach (ADR-022). **This is how you get the `project` " +
|
|
924
|
+
"slug** the notes / issues / maps tools take — call it whenever the user names a project in words ('my wiki') " +
|
|
925
|
+
"and you don't have its slug, or when a tool answers no_slug. Also useful " +
|
|
926
|
+
"to recover the right publish target after the local link was lost (a workspace move, a fresh clone, CI), " +
|
|
910
927
|
"or before publishing to confirm which existing project to update instead of creating a duplicate. Each project " +
|
|
911
928
|
"includes isOwner (only owned projects can be re-published/overwritten) and per-code-map fingerprints " +
|
|
912
929
|
"(screens/resources counts) so you can match a local scan by structure. Needs an API token; no project context.",
|
|
@@ -937,14 +954,16 @@ export function buildServer() {
|
|
|
937
954
|
description: "Show a code map's publish timeline (ADR-023) — when each publish happened, the screen/resource/" +
|
|
938
955
|
"transition counts, and which nodes were added/removed since the previous publish. Use it to answer " +
|
|
939
956
|
"'when did this last publish' and 'what changed' without diffing manually. Needs an API token and a " +
|
|
940
|
-
"
|
|
957
|
+
"named project (see `project`); `map` picks the code map when the project has several (else the oldest). " +
|
|
958
|
+
"This one DOES read published versions — an unpublished project simply has no history yet.",
|
|
941
959
|
inputSchema: {
|
|
960
|
+
project: z.string().optional().describe("Which project (slug) — say it explicitly when the folder isn't a linked checkout. List them with list_projects."),
|
|
942
961
|
path: z.string().optional().describe("Project root (default: cwd)"),
|
|
943
962
|
map: z.string().optional().describe("Which code map (default: this checkout's / the oldest)"),
|
|
944
963
|
limit: z.number().optional().describe("Max versions (default 50)"),
|
|
945
964
|
},
|
|
946
|
-
}, async ({ path, map, limit }) => {
|
|
947
|
-
const res = await listHistory(rootOf(path), { map, limit });
|
|
965
|
+
}, async ({ path, map, limit, project }) => {
|
|
966
|
+
const res = await listHistory(rootOf(path), { map, limit, slug: project });
|
|
948
967
|
if (!res.ok || !res.versions)
|
|
949
968
|
return issueFail("History", res.code, res.message);
|
|
950
969
|
// Newest first; include count deltas vs the previous version so the agent needn't recompute.
|
|
@@ -974,10 +993,11 @@ export function buildServer() {
|
|
|
974
993
|
slug: z.string().describe("The new map's slug (lowercase letters, numbers, dashes; the server slugifies)"),
|
|
975
994
|
type: z.enum(["code", "issue", "note"]).optional().describe("Map type (default: issue)"),
|
|
976
995
|
name: z.string().optional().describe("Display name (defaults to the slug)"),
|
|
996
|
+
project: z.string().optional().describe("Which project (slug) — say it explicitly when the folder isn't a linked checkout. List them with list_projects."),
|
|
977
997
|
path: z.string().optional().describe("Project root (default: cwd)"),
|
|
978
998
|
},
|
|
979
|
-
}, async ({ slug, type, name, path }) => {
|
|
980
|
-
const res = await createMap(rootOf(path), { mapSlug: slug, type, mapName: name });
|
|
999
|
+
}, async ({ slug, type, name, path, project }) => {
|
|
1000
|
+
const res = await createMap(rootOf(path), { mapSlug: slug, type, mapName: name, slug: project });
|
|
981
1001
|
if (!res.ok || !res.map)
|
|
982
1002
|
return issueFail("Create map", res.code, res.message);
|
|
983
1003
|
return json({ ok: true, map: res.map });
|
|
@@ -1058,10 +1078,11 @@ export function buildServer() {
|
|
|
1058
1078
|
issue: z.string().describe("Issue id (from the issues tool)"),
|
|
1059
1079
|
map: z.string().optional().describe("Which issue map (a project can hold several; omit when there's one). List them with the maps tool."),
|
|
1060
1080
|
remove: z.boolean().optional().describe("true → take the issue off the map (the issue itself is never deleted)"),
|
|
1081
|
+
project: z.string().optional().describe("Which project (slug) — say it explicitly when the folder isn't a linked checkout. List them with list_projects."),
|
|
1061
1082
|
path: z.string().optional().describe("Project root (default: cwd)"),
|
|
1062
1083
|
},
|
|
1063
|
-
}, async ({ issue, map, remove, path }) => {
|
|
1064
|
-
const res = await mapIssue(rootOf(path), { issueId: issue, mapSlug: map, remove });
|
|
1084
|
+
}, async ({ issue, map, remove, path, project }) => {
|
|
1085
|
+
const res = await mapIssue(rootOf(path), { issueId: issue, mapSlug: map, remove, slug: project });
|
|
1065
1086
|
if (!res.ok)
|
|
1066
1087
|
return issueFail(remove ? "Unmap issue" : "Map issue", res.code, res.message, res.maps);
|
|
1067
1088
|
return json({ ok: true, issue: res.issue, map: res.map, member: res.member });
|
|
@@ -1077,10 +1098,11 @@ export function buildServer() {
|
|
|
1077
1098
|
inputSchema: {
|
|
1078
1099
|
issue: z.string().optional().describe("Restrict to one issue's thread (issue id from the issues tool)"),
|
|
1079
1100
|
open: z.boolean().optional().describe("Only unresolved comments — the decisions still awaiting an answer (default: false)"),
|
|
1101
|
+
project: z.string().optional().describe("Which project (slug) — say it explicitly when the folder isn't a linked checkout. List them with list_projects."),
|
|
1080
1102
|
path: z.string().optional().describe("Project root (default: cwd)"),
|
|
1081
1103
|
},
|
|
1082
|
-
}, async ({ issue, open, path }) => {
|
|
1083
|
-
const res = await pullIssueComments(rootOf(path), { issue, open });
|
|
1104
|
+
}, async ({ issue, open, path, project }) => {
|
|
1105
|
+
const res = await pullIssueComments(rootOf(path), { issue, open, slug: project });
|
|
1084
1106
|
if (!res.ok || !res.comments)
|
|
1085
1107
|
return issueFail("Read issue comments", res.code, res.message);
|
|
1086
1108
|
return json({ ok: true, count: res.comments.length, comments: res.comments });
|
|
@@ -1153,14 +1175,15 @@ export function buildServer() {
|
|
|
1153
1175
|
id: z.string().describe("Issue id to complete (from the issues tool)"),
|
|
1154
1176
|
result: z.string().describe("What you did / the outcome — recorded as a 'result' comment on the issue"),
|
|
1155
1177
|
status: z.string().optional().describe("Terminal status id from issue_config (default: the first terminal status, usually 'done')"),
|
|
1178
|
+
project: z.string().optional().describe("Which project (slug) — say it explicitly when the folder isn't a linked checkout. List them with list_projects."),
|
|
1156
1179
|
path: z.string().optional().describe("Project root (default: cwd)"),
|
|
1157
1180
|
},
|
|
1158
|
-
}, async ({ id, result, status, path }) => {
|
|
1181
|
+
}, async ({ id, result, status, path, project }) => {
|
|
1159
1182
|
const root = rootOf(path);
|
|
1160
1183
|
// Resolve the terminal status to move to (explicit, else the project's first terminal status).
|
|
1161
1184
|
let target = status;
|
|
1162
1185
|
if (!target) {
|
|
1163
|
-
const g = await pullIssues(root, {});
|
|
1186
|
+
const g = await pullIssues(root, { slug: project });
|
|
1164
1187
|
if (!g.ok || !g.graph)
|
|
1165
1188
|
return issueFail("Complete issue", g.code, g.message, g.maps);
|
|
1166
1189
|
const terminal = [...terminalStatuses(g.graph.issue_config)];
|