@monnet/mcp 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/rendering/motion.d.ts +2 -8
- package/dist/rendering/motion.js +2 -15
- package/dist/rendering/motion.js.map +1 -1
- package/dist/rendering/plan.d.ts +50 -0
- package/dist/rendering/plan.js +85 -0
- package/dist/rendering/plan.js.map +1 -0
- package/dist/tools/approve.d.ts +1 -2
- package/dist/tools/approve.js +11 -12
- package/dist/tools/approve.js.map +1 -1
- package/dist/tools/reject.d.ts +1 -2
- package/dist/tools/reject.js +13 -12
- package/dist/tools/reject.js.map +1 -1
- package/dist/tools/update-motion.js +17 -2
- package/dist/tools/update-motion.js.map +1 -1
- package/dist/tools/wiki/read.js +17 -7
- package/dist/tools/wiki/read.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,17 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
content: string;
|
|
3
|
-
status: string;
|
|
4
|
-
assignees?: string[];
|
|
5
|
-
approval?: boolean;
|
|
6
|
-
approved_by?: string[];
|
|
7
|
-
}
|
|
1
|
+
import { type PlanItem } from "./plan.js";
|
|
8
2
|
interface MotionDetail {
|
|
9
3
|
id: string;
|
|
10
4
|
summary: string;
|
|
11
5
|
status: string;
|
|
12
6
|
priority: string | null;
|
|
13
7
|
body: string | null;
|
|
14
|
-
plan:
|
|
8
|
+
plan: PlanItem[] | null;
|
|
15
9
|
author: string;
|
|
16
10
|
created_at: string;
|
|
17
11
|
updated_at: string;
|
package/dist/rendering/motion.js
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
pending: "⏳",
|
|
3
|
-
in_progress: "🔄",
|
|
4
|
-
done: "✅",
|
|
5
|
-
};
|
|
1
|
+
import { renderPlanItems } from "./plan.js";
|
|
6
2
|
const PRIORITY_DOTS = {
|
|
7
3
|
critical: "🔴",
|
|
8
4
|
normal: "●",
|
|
@@ -46,16 +42,7 @@ export function renderMotionDetail(data) {
|
|
|
46
42
|
if (data.plan && data.plan.length > 0) {
|
|
47
43
|
lines.push("");
|
|
48
44
|
lines.push("PLAN");
|
|
49
|
-
data.plan
|
|
50
|
-
const icon = STATUS_ICONS[step.status] || "⏳";
|
|
51
|
-
let assigneeStr = "";
|
|
52
|
-
if (step.assignees && step.assignees.length > 0) {
|
|
53
|
-
const names = step.assignees.map((uid) => nameMap.get(uid) || uid);
|
|
54
|
-
assigneeStr = ` → ${names.join(", ")}`;
|
|
55
|
-
}
|
|
56
|
-
const lock = step.approval ? " 🔒" : "";
|
|
57
|
-
lines.push(` ${i + 1}. ${icon} ${step.content}${assigneeStr}${lock}`);
|
|
58
|
-
});
|
|
45
|
+
lines.push(...renderPlanItems(data.plan, nameMap));
|
|
59
46
|
}
|
|
60
47
|
// Members — show motion-level roles (editor/commenter) when available,
|
|
61
48
|
// fall back to workspace role (owner/member) otherwise.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"motion.js","sourceRoot":"","sources":["../../src/rendering/motion.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"motion.js","sourceRoot":"","sources":["../../src/rendering/motion.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plan rendering — the one place that knows the shape of a motion's plan.
|
|
3
|
+
*
|
|
4
|
+
* A plan is a tree (V2) : each item is either a step (one assignee, a
|
|
5
|
+
* step_type) or a group holding children, run in parallel or in sequence.
|
|
6
|
+
* Older motions still hold the flat V1 shape (`assignees[]`, `approval`), so
|
|
7
|
+
* both are read here and rendered the same way — a reader that walked only the
|
|
8
|
+
* top level printed `undefined` for a group and never showed the steps inside
|
|
9
|
+
* it, which is exactly the state the people on those steps needed to see.
|
|
10
|
+
*
|
|
11
|
+
* Numbering is hierarchical and 1-based (`1.`, `1.1.`, `1.2.`) because it is
|
|
12
|
+
* also the address a client passes back to `approve` / `reject`.
|
|
13
|
+
*/
|
|
14
|
+
export type PlanStatus = "pending" | "in_progress" | "done" | "skipped";
|
|
15
|
+
export interface PlanStep {
|
|
16
|
+
kind?: "step";
|
|
17
|
+
content: string;
|
|
18
|
+
status: PlanStatus | string;
|
|
19
|
+
/** V2 : a step has exactly one owner. */
|
|
20
|
+
assignee?: string | null;
|
|
21
|
+
step_type?: "task" | "approval" | "decision" | "interview" | "closing";
|
|
22
|
+
due_date?: string | null;
|
|
23
|
+
/** V1 leftovers, still on motions planned before the tree shipped. */
|
|
24
|
+
assignees?: string[];
|
|
25
|
+
approval?: boolean;
|
|
26
|
+
approved_by?: string | string[] | null;
|
|
27
|
+
}
|
|
28
|
+
export interface PlanGroup {
|
|
29
|
+
kind: "group";
|
|
30
|
+
title: string;
|
|
31
|
+
execution: "parallel" | "sequential";
|
|
32
|
+
children: PlanItem[];
|
|
33
|
+
}
|
|
34
|
+
export type PlanItem = PlanStep | PlanGroup;
|
|
35
|
+
export declare function isGroup(item: PlanItem): item is PlanGroup;
|
|
36
|
+
/** True when the plan uses the tree shape — one `kind` is enough to tell. */
|
|
37
|
+
export declare function isTreePlan(plan: unknown): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* One line per item, children indented under their group. `prefix` carries the
|
|
40
|
+
* parent's number so a child reads `1.2.`; `depth` only drives indentation.
|
|
41
|
+
*/
|
|
42
|
+
export declare function renderPlanItems(items: PlanItem[], nameMap: Map<string, string>, prefix?: string, depth?: number): string[];
|
|
43
|
+
/**
|
|
44
|
+
* The reverse of the numbering above : turn the label a client read in
|
|
45
|
+
* `get_motion` ("1.2") into the 0-based index path the API addresses a step
|
|
46
|
+
* with ([0, 1]). Kept beside the renderer on purpose — the label format and
|
|
47
|
+
* its parser are one convention, and they drift apart the moment they live in
|
|
48
|
+
* two files.
|
|
49
|
+
*/
|
|
50
|
+
export declare function parsePlanPath(label: string): number[];
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plan rendering — the one place that knows the shape of a motion's plan.
|
|
3
|
+
*
|
|
4
|
+
* A plan is a tree (V2) : each item is either a step (one assignee, a
|
|
5
|
+
* step_type) or a group holding children, run in parallel or in sequence.
|
|
6
|
+
* Older motions still hold the flat V1 shape (`assignees[]`, `approval`), so
|
|
7
|
+
* both are read here and rendered the same way — a reader that walked only the
|
|
8
|
+
* top level printed `undefined` for a group and never showed the steps inside
|
|
9
|
+
* it, which is exactly the state the people on those steps needed to see.
|
|
10
|
+
*
|
|
11
|
+
* Numbering is hierarchical and 1-based (`1.`, `1.1.`, `1.2.`) because it is
|
|
12
|
+
* also the address a client passes back to `approve` / `reject`.
|
|
13
|
+
*/
|
|
14
|
+
const STATUS_ICONS = {
|
|
15
|
+
pending: "⏳",
|
|
16
|
+
in_progress: "🔄",
|
|
17
|
+
done: "✅",
|
|
18
|
+
skipped: "⏭️",
|
|
19
|
+
};
|
|
20
|
+
export function isGroup(item) {
|
|
21
|
+
return item.kind === "group" || Array.isArray(item.children);
|
|
22
|
+
}
|
|
23
|
+
/** True when the plan uses the tree shape — one `kind` is enough to tell. */
|
|
24
|
+
export function isTreePlan(plan) {
|
|
25
|
+
return (Array.isArray(plan) &&
|
|
26
|
+
plan.some((item) => item && typeof item === "object" && "kind" in item));
|
|
27
|
+
}
|
|
28
|
+
/** The single assignee of a step, reading both shapes. */
|
|
29
|
+
function assigneeOf(step) {
|
|
30
|
+
if (step.assignee)
|
|
31
|
+
return step.assignee;
|
|
32
|
+
return (step.assignees || []).find((a) => a) || null;
|
|
33
|
+
}
|
|
34
|
+
/** Non-task types worth naming; `approval` keeps its lock, as it always had. */
|
|
35
|
+
function typeSuffix(step) {
|
|
36
|
+
const type = step.step_type || (step.approval ? "approval" : "task");
|
|
37
|
+
if (type === "approval")
|
|
38
|
+
return " 🔒";
|
|
39
|
+
return type === "task" ? "" : ` [${type}]`;
|
|
40
|
+
}
|
|
41
|
+
function renderStep(step, label, indent, nameMap) {
|
|
42
|
+
const icon = STATUS_ICONS[step.status] || "⏳";
|
|
43
|
+
const assignee = assigneeOf(step);
|
|
44
|
+
const assigneeStr = assignee ? ` → ${nameMap.get(assignee) || assignee}` : "";
|
|
45
|
+
const due = step.due_date ? ` (due ${step.due_date})` : "";
|
|
46
|
+
return `${indent}${label}. ${icon} ${step.content}${assigneeStr}${typeSuffix(step)}${due}`;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* One line per item, children indented under their group. `prefix` carries the
|
|
50
|
+
* parent's number so a child reads `1.2.`; `depth` only drives indentation.
|
|
51
|
+
*/
|
|
52
|
+
export function renderPlanItems(items, nameMap, prefix = "", depth = 0) {
|
|
53
|
+
const indent = " ".repeat(depth + 1);
|
|
54
|
+
const lines = [];
|
|
55
|
+
items.forEach((item, i) => {
|
|
56
|
+
const label = `${prefix}${i + 1}`;
|
|
57
|
+
if (isGroup(item)) {
|
|
58
|
+
lines.push(`${indent}${label}. 📂 ${item.title} (${item.execution})`);
|
|
59
|
+
lines.push(...renderPlanItems(item.children || [], nameMap, `${label}.`, depth + 1));
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
lines.push(renderStep(item, label, indent, nameMap));
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
return lines;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* The reverse of the numbering above : turn the label a client read in
|
|
69
|
+
* `get_motion` ("1.2") into the 0-based index path the API addresses a step
|
|
70
|
+
* with ([0, 1]). Kept beside the renderer on purpose — the label format and
|
|
71
|
+
* its parser are one convention, and they drift apart the moment they live in
|
|
72
|
+
* two files.
|
|
73
|
+
*/
|
|
74
|
+
export function parsePlanPath(label) {
|
|
75
|
+
const trimmed = label.trim().replace(/\.$/, "");
|
|
76
|
+
if (!/^\d+(\.\d+)*$/.test(trimmed)) {
|
|
77
|
+
throw new Error(`Invalid step path "${label}". Use the number shown in get_motion, e.g. "2" for a top-level step or "1.2" for the second step of the first group.`);
|
|
78
|
+
}
|
|
79
|
+
const path = trimmed.split(".").map((part) => Number(part) - 1);
|
|
80
|
+
if (path.some((index) => index < 0)) {
|
|
81
|
+
throw new Error(`Invalid step path "${label}". Step numbers start at 1.`);
|
|
82
|
+
}
|
|
83
|
+
return path;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=plan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/rendering/plan.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/approve.d.ts
CHANGED
package/dist/tools/approve.js
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { apiFetch, resolveWorkspaceId } from "../client.js";
|
|
3
|
+
import { parsePlanPath } from "../rendering/plan.js";
|
|
3
4
|
const ApproveArgs = z.object({
|
|
4
5
|
workspace_slug: z.string().min(1),
|
|
5
6
|
motion_short_id: z.string().min(1),
|
|
6
|
-
|
|
7
|
+
step_path: z.string().min(1),
|
|
7
8
|
});
|
|
8
9
|
export async function handleApprove(args) {
|
|
9
|
-
const { workspace_slug, motion_short_id,
|
|
10
|
+
const { workspace_slug, motion_short_id, step_path } = ApproveArgs.parse(args);
|
|
10
11
|
const wsId = await resolveWorkspaceId(workspace_slug);
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
: "Approval failed.";
|
|
12
|
+
const path = parsePlanPath(step_path);
|
|
13
|
+
const result = await apiFetch(`/workspaces/${wsId}/motions/${encodeURIComponent(motion_short_id)}/plan/approve`, { method: "POST", body: JSON.stringify({ path }) });
|
|
14
|
+
return result.ok ? `Step ${step_path} approved.` : "Approval failed.";
|
|
15
15
|
}
|
|
16
16
|
export const APPROVE_TOOL_DEFINITION = {
|
|
17
17
|
name: "approve",
|
|
18
18
|
description: "Approve a plan step on a motion. Requires editor role on the motion. " +
|
|
19
|
-
"Use get_motion first to see the plan and
|
|
19
|
+
"Use get_motion first to see the plan and read the step's number.",
|
|
20
20
|
inputSchema: {
|
|
21
21
|
type: "object",
|
|
22
22
|
properties: {
|
|
@@ -28,13 +28,12 @@ export const APPROVE_TOOL_DEFINITION = {
|
|
|
28
28
|
type: "string",
|
|
29
29
|
description: "The first 8 characters of the motion UUID.",
|
|
30
30
|
},
|
|
31
|
-
|
|
32
|
-
type: "
|
|
33
|
-
description: "
|
|
34
|
-
minimum: 0,
|
|
31
|
+
step_path: {
|
|
32
|
+
type: "string",
|
|
33
|
+
description: "The step's number as get_motion prints it: \"2\" for a top-level step, \"1.2\" for the second step inside the first group.",
|
|
35
34
|
},
|
|
36
35
|
},
|
|
37
|
-
required: ["workspace_slug", "motion_short_id", "
|
|
36
|
+
required: ["workspace_slug", "motion_short_id", "step_path"],
|
|
38
37
|
},
|
|
39
38
|
};
|
|
40
39
|
//# sourceMappingURL=approve.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approve.js","sourceRoot":"","sources":["../../src/tools/approve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"approve.js","sourceRoot":"","sources":["../../src/tools/approve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACjC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAClC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC7B,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAa;IAC/C,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/E,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,cAAc,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAEtC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAC3B,eAAe,IAAI,YAAY,kBAAkB,CAAC,eAAe,CAAC,eAAe,EACjF,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CACnD,CAAC;IAEF,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,SAAS,YAAY,CAAC,CAAC,CAAC,kBAAkB,CAAC;AACxE,CAAC;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,IAAI,EAAE,SAAS;IACf,WAAW,EACT,uEAAuE;QACvE,kEAAkE;IACpE,WAAW,EAAE;QACX,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACV,cAAc,EAAE;gBACd,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,qBAAqB;aACnC;YACD,eAAe,EAAE;gBACf,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,4CAA4C;aAC1D;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,4HAA4H;aAC/H;SACF;QACD,QAAQ,EAAE,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,WAAW,CAAC;KAC7D;CACF,CAAC"}
|
package/dist/tools/reject.d.ts
CHANGED
package/dist/tools/reject.js
CHANGED
|
@@ -1,26 +1,28 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { apiFetch, resolveWorkspaceId } from "../client.js";
|
|
3
|
+
import { parsePlanPath } from "../rendering/plan.js";
|
|
3
4
|
const RejectArgs = z.object({
|
|
4
5
|
workspace_slug: z.string().min(1),
|
|
5
6
|
motion_short_id: z.string().min(1),
|
|
6
|
-
|
|
7
|
+
step_path: z.string().min(1),
|
|
7
8
|
reason: z.string().max(2000).optional(),
|
|
8
9
|
});
|
|
9
10
|
export async function handleReject(args) {
|
|
10
|
-
const { workspace_slug, motion_short_id,
|
|
11
|
+
const { workspace_slug, motion_short_id, step_path, reason } = RejectArgs.parse(args);
|
|
11
12
|
const wsId = await resolveWorkspaceId(workspace_slug);
|
|
12
|
-
const
|
|
13
|
+
const path = parsePlanPath(step_path);
|
|
14
|
+
const result = await apiFetch(`/workspaces/${wsId}/motions/${encodeURIComponent(motion_short_id)}/plan/reject`, {
|
|
13
15
|
method: "POST",
|
|
14
|
-
body: JSON.stringify({ reason: reason || "" }),
|
|
16
|
+
body: JSON.stringify({ path, reason: reason || "" }),
|
|
15
17
|
});
|
|
16
18
|
return result.ok
|
|
17
|
-
? `Step ${
|
|
19
|
+
? `Step ${step_path} rejected${reason ? ` (reason: ${reason})` : ""}.`
|
|
18
20
|
: "Rejection failed.";
|
|
19
21
|
}
|
|
20
22
|
export const REJECT_TOOL_DEFINITION = {
|
|
21
23
|
name: "reject",
|
|
22
24
|
description: "Reject a plan step on a motion, with an optional reason. Requires editor role on the motion. " +
|
|
23
|
-
"Use get_motion first to see the plan and
|
|
25
|
+
"Use get_motion first to see the plan and read the step's number.",
|
|
24
26
|
inputSchema: {
|
|
25
27
|
type: "object",
|
|
26
28
|
properties: {
|
|
@@ -32,17 +34,16 @@ export const REJECT_TOOL_DEFINITION = {
|
|
|
32
34
|
type: "string",
|
|
33
35
|
description: "The first 8 characters of the motion UUID.",
|
|
34
36
|
},
|
|
35
|
-
|
|
36
|
-
type: "
|
|
37
|
-
description: "
|
|
38
|
-
minimum: 0,
|
|
37
|
+
step_path: {
|
|
38
|
+
type: "string",
|
|
39
|
+
description: "The step's number as get_motion prints it: \"2\" for a top-level step, \"1.2\" for the second step inside the first group.",
|
|
39
40
|
},
|
|
40
41
|
reason: {
|
|
41
42
|
type: "string",
|
|
42
|
-
description: "
|
|
43
|
+
description: "Why it is rejected (max 2,000 chars). Left empty, Monnet asks the user for the explanation.",
|
|
43
44
|
},
|
|
44
45
|
},
|
|
45
|
-
required: ["workspace_slug", "motion_short_id", "
|
|
46
|
+
required: ["workspace_slug", "motion_short_id", "step_path"],
|
|
46
47
|
},
|
|
47
48
|
};
|
|
48
49
|
//# sourceMappingURL=reject.js.map
|
package/dist/tools/reject.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reject.js","sourceRoot":"","sources":["../../src/tools/reject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"reject.js","sourceRoot":"","sources":["../../src/tools/reject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACjC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAClC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;CACxC,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAa;IAC9C,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtF,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,cAAc,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAEtC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAC3B,eAAe,IAAI,YAAY,kBAAkB,CAAC,eAAe,CAAC,cAAc,EAChF;QACE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC;KACrD,CACF,CAAC;IAEF,OAAO,MAAM,CAAC,EAAE;QACd,CAAC,CAAC,QAAQ,SAAS,YAAY,MAAM,CAAC,CAAC,CAAC,aAAa,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG;QACtE,CAAC,CAAC,mBAAmB,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,IAAI,EAAE,QAAQ;IACd,WAAW,EACT,+FAA+F;QAC/F,kEAAkE;IACpE,WAAW,EAAE;QACX,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACV,cAAc,EAAE;gBACd,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,qBAAqB;aACnC;YACD,eAAe,EAAE;gBACf,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,4CAA4C;aAC1D;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,4HAA4H;aAC/H;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,6FAA6F;aAChG;SACF;QACD,QAAQ,EAAE,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,WAAW,CAAC;KAC7D;CACF,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { apiFetch, resolveWorkspaceId } from "../client.js";
|
|
3
|
+
import { isTreePlan } from "../rendering/plan.js";
|
|
3
4
|
const PlanStepSchema = z.object({
|
|
4
5
|
content: z.string(),
|
|
5
6
|
status: z.enum(["pending", "in_progress", "done"]),
|
|
@@ -35,8 +36,21 @@ export async function handleUpdateMotion(args) {
|
|
|
35
36
|
});
|
|
36
37
|
results.push(`Updated ${Object.keys(metaFields).join(", ")}.`);
|
|
37
38
|
}
|
|
38
|
-
// Update plan if provided
|
|
39
|
+
// Update plan if provided. This endpoint replaces the plan wholesale with a
|
|
40
|
+
// flat list, which is all it has ever accepted — so it cannot express a plan
|
|
41
|
+
// that has groups, and writing over one would silently drop the grouping,
|
|
42
|
+
// the step ids, and the approvals and dates hanging off them. Refuse instead
|
|
43
|
+
// of destroying it, and point at the two paths that edit such a plan safely.
|
|
39
44
|
if (parsed.plan) {
|
|
45
|
+
const detail = await apiFetch(`${motionPath}/detail`);
|
|
46
|
+
if (isTreePlan(detail.motion.plan)) {
|
|
47
|
+
// Pushed rather than returned: the metadata PATCH above has already
|
|
48
|
+
// happened, and swallowing it would leave the caller thinking nothing did.
|
|
49
|
+
results.push("Plan NOT updated: this motion's plan is a structured tree (groups, step types, ids) " +
|
|
50
|
+
"and this tool can only write a flat list of steps — sending one would drop that " +
|
|
51
|
+
"structure. Ask Monnet to make the change with ask_monnet, or edit the plan in the app.");
|
|
52
|
+
return results.join(" ");
|
|
53
|
+
}
|
|
40
54
|
await apiFetch(`${motionPath}/plan`, {
|
|
41
55
|
method: "PATCH",
|
|
42
56
|
body: JSON.stringify({ steps: parsed.plan }),
|
|
@@ -52,7 +66,8 @@ export const UPDATE_MOTION_TOOL_DEFINITION = {
|
|
|
52
66
|
name: "update_motion",
|
|
53
67
|
description: "Update a motion's summary, body, priority, or plan. All fields are optional — " +
|
|
54
68
|
"only include the ones you want to change. For plan updates, provide the full list " +
|
|
55
|
-
"of steps (use get_motion first to see the current plan, then modify and send it back)."
|
|
69
|
+
"of steps (use get_motion first to see the current plan, then modify and send it back). " +
|
|
70
|
+
"A plan with groups cannot be written here: ask Monnet with ask_monnet instead.",
|
|
56
71
|
inputSchema: {
|
|
57
72
|
type: "object",
|
|
58
73
|
properties: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-motion.js","sourceRoot":"","sources":["../../src/tools/update-motion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"update-motion.js","sourceRoot":"","sources":["../../src/tools/update-motion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IAClD,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACrD,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC/C,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CACxD,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACjC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAClC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAC9C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;IAC7C,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC1D,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE;CACzC,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAa;IACpD,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,eAAe,IAAI,YAAY,kBAAkB,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;IAC/F,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,0DAA0D;IAC1D,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;QAAE,UAAU,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IACtE,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;QAAE,UAAU,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAC7D,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;QAAE,UAAU,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IAEzE,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,QAAQ,CAAC,UAAU,EAAE;YACzB,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;SACjC,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjE,CAAC;IAED,4EAA4E;IAC5E,6EAA6E;IAC7E,0EAA0E;IAC1E,6EAA6E;IAC7E,6EAA6E;IAC7E,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAyC,GAAG,UAAU,SAAS,CAAC,CAAC;QAC9F,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,oEAAoE;YACpE,2EAA2E;YAC3E,OAAO,CAAC,IAAI,CACV,sFAAsF;gBACtF,kFAAkF;gBAClF,wFAAwF,CACzF,CAAC;YACF,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;QACD,MAAM,QAAQ,CAAC,GAAG,UAAU,OAAO,EAAE;YACnC,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;SAC7C,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,IAAI,CAAC,MAAM,YAAY,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,gFAAgF,CAAC;IAC1F,CAAC;IAED,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,IAAI,EAAE,eAAe;IACrB,WAAW,EACT,gFAAgF;QAChF,oFAAoF;QACpF,yFAAyF;QACzF,gFAAgF;IAClF,WAAW,EAAE;QACX,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACV,cAAc,EAAE;gBACd,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,qBAAqB;aACnC;YACD,eAAe,EAAE;gBACf,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,4CAA4C;aAC1D;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,sCAAsC;aACpD;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,kDAAkD;aAChE;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,yBAAyB;gBACtC,IAAI,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC;aACpC;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,OAAO;gBACb,WAAW,EACT,6HAA6H;gBAC/H,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBAC3B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE;wBACpE,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;wBACvD,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;wBAC7B,WAAW,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;qBAC1D;oBACD,QAAQ,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;iBAChC;aACF;SACF;QACD,QAAQ,EAAE,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;KAChD;CACF,CAAC"}
|
package/dist/tools/wiki/read.js
CHANGED
|
@@ -70,12 +70,10 @@ const SearchArgs = z.object({
|
|
|
70
70
|
workspace_slug: z.string().min(1),
|
|
71
71
|
query: z.string().min(1).max(200),
|
|
72
72
|
});
|
|
73
|
-
// The search route is capped server-side
|
|
74
|
-
//
|
|
75
|
-
//
|
|
76
|
-
//
|
|
77
|
-
// "no page mentions this", which is exactly the signal the tool tells the
|
|
78
|
-
// model to read as "create one".
|
|
73
|
+
// The search route is capped server-side and returns every kind of row, so
|
|
74
|
+
// the cap has to be wide enough that a busy workspace's motions cannot fill it
|
|
75
|
+
// and leave zero pages behind — answering "no page mentions this", which is
|
|
76
|
+
// exactly the signal the tool tells the model to read as "create one".
|
|
79
77
|
const SEARCH_FETCH_LIMIT = 50;
|
|
80
78
|
const SEARCH_SHOW_LIMIT = 10;
|
|
81
79
|
export async function handleSearchWiki(args) {
|
|
@@ -84,8 +82,20 @@ export async function handleSearchWiki(args) {
|
|
|
84
82
|
// and it 404s an unknown slug — which otherwise came back as a cheerful
|
|
85
83
|
// "no wiki page mentions that", indistinguishable from a real empty result.
|
|
86
84
|
const wsId = await resolveWorkspaceId(workspace_slug);
|
|
87
|
-
|
|
85
|
+
// `workspace_id` is required by the newer route, and ignored by the older
|
|
86
|
+
// one, so sending it is safe in both directions — which is what lets this
|
|
87
|
+
// version ship before the backend does.
|
|
88
|
+
const { motions } = await apiFetch(`/motions/search?workspace_id=${encodeURIComponent(wsId)}` +
|
|
89
|
+
`&q=${encodeURIComponent(query)}&limit=${SEARCH_FETCH_LIMIT}`);
|
|
88
90
|
// A page is a motion row carrying `kind`, so one index serves both.
|
|
91
|
+
//
|
|
92
|
+
// The workspace comparison is kept even though the route now scopes
|
|
93
|
+
// server-side, because a published client and a deployed backend are not
|
|
94
|
+
// upgraded together: this version has to be correct against the backend that
|
|
95
|
+
// is live TODAY, which still searches every workspace the caller belongs to.
|
|
96
|
+
// Without it, `search_wiki` on one workspace would answer with another's
|
|
97
|
+
// pages until the backend catches up. Once it has, this is belt and braces
|
|
98
|
+
// over a boundary that is enforced server-side.
|
|
89
99
|
const hits = motions.filter((m) => m.kind === "wiki_page" && m.workspace_id === wsId);
|
|
90
100
|
if (!hits.length) {
|
|
91
101
|
const capped = motions.length >= SEARCH_FETCH_LIMIT
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../../src/tools/wiki/read.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../../src/tools/wiki/read.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@monnet/mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "Model Context Protocol server for Monnet — exposes motions, plans, and approvals to MCP-compatible clients like Claude Desktop and Cursor.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"dev": "tsc -p . --watch",
|
|
16
16
|
"start": "node dist/index.js",
|
|
17
17
|
"prepublishOnly": "npm run build",
|
|
18
|
-
"test": "tsc -p tsconfig.test.json && node --test dist-test/**/*.test.js"
|
|
18
|
+
"test": "tsc -p tsconfig.test.json && node --test \"dist-test/**/*.test.js\""
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"@modelcontextprotocol/sdk": "^1.13.0",
|