@agentistics/mcp 2.46.0 → 2.48.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 +22 -3
- package/package.json +1 -1
package/dist/agentistics-mcp.js
CHANGED
|
@@ -723,17 +723,32 @@ var TOOLS = [
|
|
|
723
723
|
},
|
|
724
724
|
{
|
|
725
725
|
name: "agentistics_task_session",
|
|
726
|
-
description: "BETA — the task board is new and still changing; its shapes may move between releases. File a SESSION under a task, which is what makes the task measurable: its cost, tokens, rounds and harness all come from the sessions filed under it. Pass `subtaskId` to file it under one of the task's subtasks (the unit of WORK, for a task broken into steps) — this INCLUDES a subtask GROUP (see agentistics_task_subtask's `isGroup`), which holds a session exactly like any other subtask; omit `subtaskId` to file the session directly on the task itself (the unit of DELIVERY, for a task simple enough not to need subtasks). Both can be used on the same task — some sessions direct, some under subtasks — and each subtask's own rollup plus the directly-filed sessions' own rollup are both readable via agentistics_task's `subtaskRollups` (keyed by subtask id, with `id: null` for the direct ones), so the breakdown never disappears. **Filing on a subtask that is a MEMBER of a group (has a `parentGroupId`) is refused (422, `subtask_in_group`)** — a member can never hold a session, only the group itself can; file on the group's own id instead. Use agentistics_task to read the subtasks, or agentistics_task_subtask to create one, then pass `ref` + `sessionId` (a managed session id
|
|
726
|
+
description: "BETA — the task board is new and still changing; its shapes may move between releases. File a SESSION under a task, which is what makes the task measurable: its cost, tokens, rounds and harness all come from the sessions filed under it. Pass `subtaskId` to file it under one of the task's subtasks (the unit of WORK, for a task broken into steps) — this INCLUDES a subtask GROUP (see agentistics_task_subtask's `isGroup`), which holds a session exactly like any other subtask; omit `subtaskId` to file the session directly on the task itself (the unit of DELIVERY, for a task simple enough not to need subtasks). Both can be used on the same task — some sessions direct, some under subtasks — and each subtask's own rollup plus the directly-filed sessions' own rollup are both readable via agentistics_task's `subtaskRollups` (keyed by subtask id, with `id: null` for the direct ones), so the breakdown never disappears. **Filing on a subtask that is a MEMBER of a group (has a `parentGroupId`) is refused (422, `subtask_in_group`)** — a member can never hold a session, only the group itself can; file on the group's own id instead. Use agentistics_task to read the subtasks, or agentistics_task_subtask to create one, then pass `ref` + `sessionId` (a managed session id) + optionally `subtaskId`. Pass `detach` with a session id to unfile one. The task inherits the session's repository when it has none. **HISTORICAL conversations — pass `conversationId` INSTEAD of `sessionId`** to file a conversation that has NO live/registry row: typically a session that was killed and whose row agentop then purged, leaving its subtask `done` with 0 sessions and its cost missing from every rollup. The conversation must still be in the metrics store (its tokens/cost are what get counted); the link is kept on the board, never in the fleet, so nothing appears in the Sessions workspace and there is nothing to open — the row is marked `historical: true` in agentistics_task's `sessions`. Filing is a MOVE: one link per conversation, so filing it elsewhere replaces the old link and the answer reports `movedFrom: {taskId, subtaskId?}` (a plain `sessionId` filing reports `movedFrom` too when it displaced another filing). It counts everywhere a live session does (rollups, `subtaskRollups`, the board headline, `done_needs_session`, the group-join rule). Refusals: `no_such_conversation` (422 — the store has no record of that id; nothing to price, so nothing is filed), `conversation_in_fleet` (422 — a registry row already exists; the answer carries its `sessionId`, so call again with that as `sessionId`), plus the same target refusals as a session (`no_such_task`, `no_such_subtask`, `wrong_delivery`, `blocked`, `subtask_in_group`). Optional `harness` disambiguates and `note` is kept on the link. To remove a historical link pass `detach` with the conversation id (or the row's `hist:<conversationId>` id).",
|
|
727
727
|
inputSchema: {
|
|
728
728
|
type: "object",
|
|
729
729
|
properties: {
|
|
730
730
|
ref: { type: "string" },
|
|
731
731
|
sessionId: { type: "string" },
|
|
732
|
+
conversationId: {
|
|
733
|
+
type: "string",
|
|
734
|
+
description: "A HISTORICAL conversation id (in the metrics store, no live/registry row) to file instead of a `sessionId`. Refused `conversation_in_fleet` if a row exists for it — use that row's id as `sessionId`."
|
|
735
|
+
},
|
|
736
|
+
harness: {
|
|
737
|
+
type: "string",
|
|
738
|
+
description: "Only with `conversationId`: the conversation's harness, to disambiguate. Optional; it is read from the store."
|
|
739
|
+
},
|
|
740
|
+
note: {
|
|
741
|
+
type: "string",
|
|
742
|
+
description: "Only with `conversationId`: a free-text note kept on the link (why it was filed here)."
|
|
743
|
+
},
|
|
732
744
|
subtaskId: {
|
|
733
745
|
type: "string",
|
|
734
746
|
description: "The subtask to file it under. Optional — omit to file the session directly on the task itself."
|
|
735
747
|
},
|
|
736
|
-
detach: {
|
|
748
|
+
detach: {
|
|
749
|
+
type: "string",
|
|
750
|
+
description: "A session id to unfile — or a historical conversation id (or `hist:<id>`) to drop its link."
|
|
751
|
+
}
|
|
737
752
|
},
|
|
738
753
|
required: []
|
|
739
754
|
}
|
|
@@ -1078,7 +1093,11 @@ server.setRequestHandler(CallToolRequestSchema, async (req) => {
|
|
|
1078
1093
|
}
|
|
1079
1094
|
const ref = encodeURIComponent(String(a?.ref ?? ""));
|
|
1080
1095
|
const body = await apiSend("POST", `/api/tasks/${ref}/sessions`, {
|
|
1081
|
-
|
|
1096
|
+
...a?.conversationId ? {
|
|
1097
|
+
conversationId: a.conversationId,
|
|
1098
|
+
...a?.harness ? { harness: a.harness } : {},
|
|
1099
|
+
...a?.note ? { note: a.note } : {}
|
|
1100
|
+
} : { sessionId: a?.sessionId },
|
|
1082
1101
|
...a?.subtaskId ? { subtaskId: a.subtaskId } : {}
|
|
1083
1102
|
});
|
|
1084
1103
|
return { content: [{ type: "text", text: JSON.stringify(body, null, 2) }] };
|