@agentistics/mcp 2.20.0 → 2.21.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/agentistics-mcp.js +9 -3
- package/package.json +1 -1
package/dist/agentistics-mcp.js
CHANGED
|
@@ -576,7 +576,7 @@ var TOOLS = [
|
|
|
576
576
|
},
|
|
577
577
|
{
|
|
578
578
|
name: "agentistics_task_subtask",
|
|
579
|
-
description: "BETA — the task board is new and still changing; its shapes may move between releases. Add a subtask, or change one. Pass `title` to add; pass `id` with `done`, `status`, `assignee`, `dueDate` or `
|
|
579
|
+
description: "BETA — the task board is new and still changing; its shapes may move between releases. Add a subtask, or change one. Pass `title` to add; pass `id` with `done`, `status`, `assignee`, `dueDate`, `startDate` or `blockedBy` to edit one. A subtask carries the same columns its parent does, but no cost of its own: cost is measured per SESSION and rolls up to the task — the PARENT task is only the group the subtasks are delivered under. A subtask CAN be blocked by another subtask of the SAME parent (pass `blockedBy` as the full list of sibling subtask ids that must be `done` first; a sibling outside this task, or the subtask itself, is dropped rather than accepted) — this is separate from agentistics_task_blocked_by, which blocks a whole TASK on other tasks. To put a session ON a subtask use agentistics_task_session with `subtaskId` — a subtask holds ANY NUMBER of sessions, so the link lives on the session, not in a field here.",
|
|
580
580
|
inputSchema: {
|
|
581
581
|
type: "object",
|
|
582
582
|
properties: {
|
|
@@ -590,7 +590,12 @@ var TOOLS = [
|
|
|
590
590
|
},
|
|
591
591
|
assignee: { type: "string" },
|
|
592
592
|
dueDate: { type: "string" },
|
|
593
|
-
startDate: { type: "string" }
|
|
593
|
+
startDate: { type: "string" },
|
|
594
|
+
blockedBy: {
|
|
595
|
+
type: "array",
|
|
596
|
+
items: { type: "string" },
|
|
597
|
+
description: "Full replacement list of SIBLING subtask ids (same parent task) that must be done before this one. Requires `id` — a subtask being created has no siblings to name yet."
|
|
598
|
+
}
|
|
594
599
|
},
|
|
595
600
|
required: ["ref"]
|
|
596
601
|
}
|
|
@@ -943,7 +948,8 @@ server.setRequestHandler(CallToolRequestSchema, async (req) => {
|
|
|
943
948
|
const a = args;
|
|
944
949
|
const cols = ["status", "assignee", "dueDate", "startDate", "title"];
|
|
945
950
|
const named = cols.filter((c) => typeof a?.[c] === "string");
|
|
946
|
-
const
|
|
951
|
+
const blockedBy = Array.isArray(a?.blockedBy) ? { blockedBy: a.blockedBy } : {};
|
|
952
|
+
const payload = a?.id !== undefined ? named.length > 0 || Array.isArray(a?.blockedBy) ? { id: a.id, ...Object.fromEntries(named.map((c) => [c, a[c]])), ...blockedBy } : { id: a.id, done: a?.done === true } : { title: a?.title };
|
|
947
953
|
const body = await apiSend("POST", `/api/tasks/${encodeURIComponent(String(a?.ref))}/subtasks`, payload);
|
|
948
954
|
return { content: [{ type: "text", text: JSON.stringify(body, null, 2) }] };
|
|
949
955
|
}
|