@agentistics/mcp 2.95.1 → 2.96.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 +16 -16
- package/package.json +1 -1
package/dist/agentistics-mcp.js
CHANGED
|
@@ -1200,12 +1200,12 @@ var server = new Server({ name: "agentistics", version: "1.0.0" }, { capabilitie
|
|
|
1200
1200
|
var TOOLS = [
|
|
1201
1201
|
{
|
|
1202
1202
|
name: "agentistics_tasks",
|
|
1203
|
-
description: "BETA — the task board is new and still changing; its shapes may move between releases. List every task on the ALM board with its rollup (cost, rounds, sessions used, tokens) plus a board-wide overview: tasks in flight, delivered, average cost per task and per
|
|
1203
|
+
description: "BETA — Agentask (the task board) is new and still changing; its shapes may move between releases. List every task on the ALM board with its rollup (cost, rounds, sessions used, tokens) plus a board-wide overview: tasks in flight, delivered, average cost per task and per task, top models and harnesses. START HERE to see what work exists and what the other assistants are on.",
|
|
1204
1204
|
inputSchema: { type: "object", properties: {}, required: [] }
|
|
1205
1205
|
},
|
|
1206
1206
|
{
|
|
1207
1207
|
name: "agentistics_task",
|
|
1208
|
-
description: "BETA — the task board is new and still changing; its shapes may move between releases. Open ONE task: its attempts (one per configuration tried), the sessions filed under it with their live state, its comments, subtasks, files, links and full metrics (models, harnesses, agent runs, tokens, delivery time). `ref` is the task id or its exact title.",
|
|
1208
|
+
description: "BETA — Agentask (the task board) is new and still changing; its shapes may move between releases. Open ONE task: its attempts (one per configuration tried), the sessions filed under it with their live state, its comments, subtasks, files, links and full metrics (models, harnesses, agent runs, tokens, delivery time). `ref` is the task id or its exact title.",
|
|
1209
1209
|
inputSchema: {
|
|
1210
1210
|
type: "object",
|
|
1211
1211
|
properties: { ref: { type: "string", description: "Task id or exact title." } },
|
|
@@ -1214,7 +1214,7 @@ var TOOLS = [
|
|
|
1214
1214
|
},
|
|
1215
1215
|
{
|
|
1216
1216
|
name: "agentistics_task_create",
|
|
1217
|
-
description: "BETA — the task board is new and still changing; its shapes may move between releases. Create a task. A title is required; a description is optional. Creating a title that already exists returns the existing task rather than a duplicate, so this is safe to call before filing work under a name you are not sure exists.",
|
|
1217
|
+
description: "BETA — Agentask (the task board) is new and still changing; its shapes may move between releases. Create a task. A title is required; a description is optional. Creating a title that already exists returns the existing task rather than a duplicate, so this is safe to call before filing work under a name you are not sure exists.",
|
|
1218
1218
|
inputSchema: {
|
|
1219
1219
|
type: "object",
|
|
1220
1220
|
properties: { title: { type: "string" }, detail: { type: "string" } },
|
|
@@ -1223,7 +1223,7 @@ var TOOLS = [
|
|
|
1223
1223
|
},
|
|
1224
1224
|
{
|
|
1225
1225
|
name: "agentistics_task_status",
|
|
1226
|
-
description: "BETA — the task board is new and still changing; its shapes may move between releases. Move a task to a status. The status VOCABULARY is an editable list now, not a fixed set — call agentistics_task_statuses first if you are unsure what this board currently has; a fresh board starts with exactly `todo`, `in_progress`, `blocked` and `done`. Only `done` stamps a
|
|
1226
|
+
description: "BETA — Agentask (the task board) is new and still changing; its shapes may move between releases. Move a task to a status. The status VOCABULARY is an editable list now, not a fixed set — call agentistics_task_statuses first if you are unsure what this board currently has; a fresh board starts with exactly `todo`, `in_progress`, `blocked` and `done`. Only `done` stamps a task and closes rounds-to-delivery; `abandoned` (when the board has it) records that the work was given up on, which is a real outcome and not a failure to report — but it is NOT created by default, so use agentistics_task_status_edit to add it (or any other status) first if it is missing. **`blocked` REQUIRES a `reason` or a `blockedBy` list** and is refused (422) without one: it is the status that names a problem somebody has to go and solve, and a blocked card that does not say what it is waiting on cannot be unblocked by anyone but you. **`done` REQUIRES the task to have at least one session filed under it** and is refused (422, `done_needs_session`) without one. A `status` naming nothing this board currently has is refused (400, `unknown_status`). Pass `actor` (who you are) so the move is recorded against you in the activity log.",
|
|
1227
1227
|
inputSchema: {
|
|
1228
1228
|
type: "object",
|
|
1229
1229
|
properties: {
|
|
@@ -1248,12 +1248,12 @@ var TOOLS = [
|
|
|
1248
1248
|
},
|
|
1249
1249
|
{
|
|
1250
1250
|
name: "agentistics_task_statuses",
|
|
1251
|
-
description: "BETA — the task board is new and still changing; its shapes may move between releases. List every status this board currently has (id, label, color, and whether it is protected — todo/in_progress/blocked/done can never be deleted or have their id changed, but their label and color can). Call this before agentistics_task_status if you are not sure a status you want to move a task to actually exists.",
|
|
1251
|
+
description: "BETA — Agentask (the task board) is new and still changing; its shapes may move between releases. List every status this board currently has (id, label, color, and whether it is protected — todo/in_progress/blocked/done can never be deleted or have their id changed, but their label and color can). Call this before agentistics_task_status if you are not sure a status you want to move a task to actually exists.",
|
|
1252
1252
|
inputSchema: { type: "object", properties: {} }
|
|
1253
1253
|
},
|
|
1254
1254
|
{
|
|
1255
1255
|
name: "agentistics_task_status_edit",
|
|
1256
|
-
description: "BETA — the task board is new and still changing; its shapes may move between releases. Add, rename/recolor, or delete a status. Pass `label` (and optional `color`, a `#rrggbb` hex string) alone to CREATE a new, non-protected status — its id is derived from the label and returned. Pass `id` with `label` and/or `color` to EDIT an existing status's label/color — works on a protected one too, only its id can never change. Pass `id` with `remove: true` to DELETE it: refused (422, `protected`) for todo/in_progress/blocked/done regardless of usage, and refused (422, `in_use`, with `usageCount`) for any other status still referenced by at least one task or subtask.",
|
|
1256
|
+
description: "BETA — Agentask (the task board) is new and still changing; its shapes may move between releases. Add, rename/recolor, or delete a status. Pass `label` (and optional `color`, a `#rrggbb` hex string) alone to CREATE a new, non-protected status — its id is derived from the label and returned. Pass `id` with `label` and/or `color` to EDIT an existing status's label/color — works on a protected one too, only its id can never change. Pass `id` with `remove: true` to DELETE it: refused (422, `protected`) for todo/in_progress/blocked/done regardless of usage, and refused (422, `in_use`, with `usageCount`) for any other status still referenced by at least one task or subtask.",
|
|
1257
1257
|
inputSchema: {
|
|
1258
1258
|
type: "object",
|
|
1259
1259
|
properties: {
|
|
@@ -1266,7 +1266,7 @@ var TOOLS = [
|
|
|
1266
1266
|
},
|
|
1267
1267
|
{
|
|
1268
1268
|
name: "agentistics_task_comment",
|
|
1269
|
-
description: "BETA — the task board is new and still changing; its shapes may move between releases. Leave a comment on a task. Use it to tell the person and the other assistants what you did, what you found, or what you are blocked on. `author` is free text — say who you are (e.g. 'claude:3f5f').",
|
|
1269
|
+
description: "BETA — Agentask (the task board) is new and still changing; its shapes may move between releases. Leave a comment on a task. Use it to tell the person and the other assistants what you did, what you found, or what you are blocked on. `author` is free text — say who you are (e.g. 'claude:3f5f').",
|
|
1270
1270
|
inputSchema: {
|
|
1271
1271
|
type: "object",
|
|
1272
1272
|
properties: { ref: { type: "string" }, body: { type: "string" }, author: { type: "string" } },
|
|
@@ -1275,7 +1275,7 @@ var TOOLS = [
|
|
|
1275
1275
|
},
|
|
1276
1276
|
{
|
|
1277
1277
|
name: "agentistics_task_subtask",
|
|
1278
|
-
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`, `dueDate`, `startDate`, `blockedBy` or `parentGroupId` to edit one. `startedAt`/`deliveredAt` are system-stamped facts (when real work began / when this piece reached `done`) and are never set through this tool — they are read back on the subtask record. A subtask carries the same columns its parent does; its own cost, tokens, rounds and harness are rolled up from the sessions filed under it — the PARENT task's rollup is the sum of all its subtasks' sessions. 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. **`done` REQUIRES the subtask to have at least one session filed under it** and is refused (422, `done_needs_session`) without one — EXCEPT for a group MEMBER (`parentGroupId` set), which can never hold a session of its own (see below) and therefore reaches `done` through this same edit with no session required; a GROUP itself (`isGroup: true`) and an ordinary loose subtask both still need one. **The moment every one of a task's top-level subtasks (loose subtasks and groups — a group's own members never count separately) reaches `done`, the parent task auto-delivers too.** 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. **SUBTASK GROUPS are a real hierarchy level, not a label**: pass `isGroup: true` with `title` to create a GROUP — a peer row that CAN hold a session, exactly like a loose subtask. Pass `id` (a subtask) with `parentGroupId` (a group's own subtask id, from the SAME parent task) to make it a MEMBER of that group — join with the group's id, leave with `parentGroupId: ''`. A refused reference (the id names no subtask, names one that is not `isGroup: true`, names a different task, or the subtask being patched is itself a group) is refused as `invalid_group` (422). **Joining a group is ALSO refused (422, `subtask_has_sessions`) when the subtask already has a session filed on it** — a member gets no rollup bucket of its own, so that session's cost would silently drop out of every visible breakdown while the task's own total kept counting it; detach the session first. **A MEMBER can never hold a session of its own** — filing on one is refused by agentistics_task_session with `subtask_in_group` (422); only the group itself accounts for a session, and a member's own status/dates/comments still exist and feed the group's progress percentage.",
|
|
1278
|
+
description: "BETA — Agentask (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`, `dueDate`, `startDate`, `blockedBy` or `parentGroupId` to edit one. `startedAt`/`deliveredAt` are system-stamped facts (when real work began / when this piece reached `done`) and are never set through this tool — they are read back on the subtask record. A subtask carries the same columns its parent does; its own cost, tokens, rounds and harness are rolled up from the sessions filed under it — the PARENT task's rollup is the sum of all its subtasks' sessions. 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. **`done` REQUIRES the subtask to have at least one session filed under it** and is refused (422, `done_needs_session`) without one — EXCEPT for a group MEMBER (`parentGroupId` set), which can never hold a session of its own (see below) and therefore reaches `done` through this same edit with no session required; a GROUP itself (`isGroup: true`) and an ordinary loose subtask both still need one. **The moment every one of a task's top-level subtasks (loose subtasks and groups — a group's own members never count separately) reaches `done`, the parent task auto-delivers too.** 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. **SUBTASK GROUPS are a real hierarchy level, not a label**: pass `isGroup: true` with `title` to create a GROUP — a peer row that CAN hold a session, exactly like a loose subtask. Pass `id` (a subtask) with `parentGroupId` (a group's own subtask id, from the SAME parent task) to make it a MEMBER of that group — join with the group's id, leave with `parentGroupId: ''`. A refused reference (the id names no subtask, names one that is not `isGroup: true`, names a different task, or the subtask being patched is itself a group) is refused as `invalid_group` (422). **Joining a group is ALSO refused (422, `subtask_has_sessions`) when the subtask already has a session filed on it** — a member gets no rollup bucket of its own, so that session's cost would silently drop out of every visible breakdown while the task's own total kept counting it; detach the session first. **A MEMBER can never hold a session of its own** — filing on one is refused by agentistics_task_session with `subtask_in_group` (422); only the group itself accounts for a session, and a member's own status/dates/comments still exist and feed the group's progress percentage.",
|
|
1279
1279
|
inputSchema: {
|
|
1280
1280
|
type: "object",
|
|
1281
1281
|
properties: {
|
|
@@ -1311,7 +1311,7 @@ var TOOLS = [
|
|
|
1311
1311
|
},
|
|
1312
1312
|
{
|
|
1313
1313
|
name: "agentistics_task_link",
|
|
1314
|
-
description: "BETA — the task board is new and still changing; its shapes may move between releases. Attach a link to a task — a pull request, an issue, a document. Pass `url` (http/https only) with an optional `label` and `kind` ('pr', 'issue', …). Pass `remove` with a link id to detach one.",
|
|
1314
|
+
description: "BETA — Agentask (the task board) is new and still changing; its shapes may move between releases. Attach a link to a task — a pull request, an issue, a document. Pass `url` (http/https only) with an optional `label` and `kind` ('pr', 'issue', …). Pass `remove` with a link id to detach one.",
|
|
1315
1315
|
inputSchema: {
|
|
1316
1316
|
type: "object",
|
|
1317
1317
|
properties: {
|
|
@@ -1326,7 +1326,7 @@ var TOOLS = [
|
|
|
1326
1326
|
},
|
|
1327
1327
|
{
|
|
1328
1328
|
name: "agentistics_task_blocked_by",
|
|
1329
|
-
description: "BETA — the task board is new and still changing; its shapes may move between releases. Set which tasks must finish before this one can proceed. Pass the full list of blocker task ids (it replaces, it does not append). A task cannot block itself.",
|
|
1329
|
+
description: "BETA — Agentask (the task board) is new and still changing; its shapes may move between releases. Set which tasks must finish before this one can proceed. Pass the full list of blocker task ids (it replaces, it does not append). A task cannot block itself.",
|
|
1330
1330
|
inputSchema: {
|
|
1331
1331
|
type: "object",
|
|
1332
1332
|
properties: { ref: { type: "string" }, blockedBy: { type: "array", items: { type: "string" } } },
|
|
@@ -1335,7 +1335,7 @@ var TOOLS = [
|
|
|
1335
1335
|
},
|
|
1336
1336
|
{
|
|
1337
1337
|
name: "agentistics_task_next",
|
|
1338
|
-
description: "BETA — the task board is new and still changing; its shapes may move between releases. THE ORCHESTRATION CALL: what you can pick up right now. Returns the tasks that are open, not blocked by unfinished work, and not in another agent's hands — most urgent first, numbered from 1. It also returns `withheld`, every task that is NOT available with the reason (closed / blocked / claimed / status), because an agent told 'nothing' learns nothing; and `progress`, which separates 'it is all done' from 'everything is in somebody's hands right now'. Pass `actor` (who you are) so a task you already hold comes back as available to you rather than as taken.",
|
|
1338
|
+
description: "BETA — Agentask (the task board) is new and still changing; its shapes may move between releases. THE ORCHESTRATION CALL: what you can pick up right now. Returns the tasks that are open, not blocked by unfinished work, and not in another agent's hands — most urgent first, numbered from 1. It also returns `withheld`, every task that is NOT available with the reason (closed / blocked / claimed / status), because an agent told 'nothing' learns nothing; and `progress`, which separates 'it is all done' from 'everything is in somebody's hands right now'. Pass `actor` (who you are) so a task you already hold comes back as available to you rather than as taken.",
|
|
1339
1339
|
inputSchema: {
|
|
1340
1340
|
type: "object",
|
|
1341
1341
|
properties: {
|
|
@@ -1347,7 +1347,7 @@ var TOOLS = [
|
|
|
1347
1347
|
},
|
|
1348
1348
|
{
|
|
1349
1349
|
name: "agentistics_task_claim",
|
|
1350
|
-
description: "BETA — the task board is new and still changing; its shapes may move between releases. TAKE a task before working on it, so two agents cannot do the same one twice. This is a LEASE, not a lock: it expires (default 30 minutes) and the task returns to the board on its own, so an agent that dies does not hold work forever. Re-claiming as the same `by` REFRESHES the lease — do that while you are still working. Pass `release: true` to give it back when you finish or stop. A refusal names who holds it and until when; `takeover` is for a person overriding a live claim on purpose and an agent should not send it.",
|
|
1350
|
+
description: "BETA — Agentask (the task board) is new and still changing; its shapes may move between releases. TAKE a task before working on it, so two agents cannot do the same one twice. This is a LEASE, not a lock: it expires (default 30 minutes) and the task returns to the board on its own, so an agent that dies does not hold work forever. Re-claiming as the same `by` REFRESHES the lease — do that while you are still working. Pass `release: true` to give it back when you finish or stop. A refusal names who holds it and until when; `takeover` is for a person overriding a live claim on purpose and an agent should not send it.",
|
|
1351
1351
|
inputSchema: {
|
|
1352
1352
|
type: "object",
|
|
1353
1353
|
properties: {
|
|
@@ -1365,7 +1365,7 @@ var TOOLS = [
|
|
|
1365
1365
|
},
|
|
1366
1366
|
{
|
|
1367
1367
|
name: "agentistics_task_activity",
|
|
1368
|
-
description: "BETA — the task board is new and still changing; its shapes may move between releases. What has been HAPPENING, newest first — status moves, claims, releases, priority changes, sessions filed. Pass `ref` for one task, or nothing for the whole board. On a board several agents drive this is how you find out what the others did without asking them.",
|
|
1368
|
+
description: "BETA — Agentask (the task board) is new and still changing; its shapes may move between releases. What has been HAPPENING, newest first — status moves, claims, releases, priority changes, sessions filed. Pass `ref` for one task, or nothing for the whole board. On a board several agents drive this is how you find out what the others did without asking them.",
|
|
1369
1369
|
inputSchema: {
|
|
1370
1370
|
type: "object",
|
|
1371
1371
|
properties: { ref: { type: "string" }, limit: { type: "number" } },
|
|
@@ -1374,7 +1374,7 @@ var TOOLS = [
|
|
|
1374
1374
|
},
|
|
1375
1375
|
{
|
|
1376
1376
|
name: "agentistics_task_edit",
|
|
1377
|
-
description: "BETA — the task board is new and still changing; its shapes may move between releases. Set a task's fields: `title`, `detail`, `priority` (urgent | high | medium | low | none), `dueDate` / `startDate` (yyyy-mm-dd), `labels`. An absent field is left alone; an EMPTY STRING clears it. `priority` defaults to `none`, which means 'nobody has said' and is not the same as `low`. `startedAt`/`deliveredAt` are system-stamped facts and are never set through this tool. Pass `actor` so the change is recorded against you in the activity log.",
|
|
1377
|
+
description: "BETA — Agentask (the task board) is new and still changing; its shapes may move between releases. Set a task's fields: `title`, `detail`, `priority` (urgent | high | medium | low | none), `dueDate` / `startDate` (yyyy-mm-dd), `labels`. An absent field is left alone; an EMPTY STRING clears it. `priority` defaults to `none`, which means 'nobody has said' and is not the same as `low`. `startedAt`/`deliveredAt` are system-stamped facts and are never set through this tool. Pass `actor` so the change is recorded against you in the activity log.",
|
|
1378
1378
|
inputSchema: {
|
|
1379
1379
|
type: "object",
|
|
1380
1380
|
properties: {
|
|
@@ -1392,7 +1392,7 @@ var TOOLS = [
|
|
|
1392
1392
|
},
|
|
1393
1393
|
{
|
|
1394
1394
|
name: "agentistics_task_session",
|
|
1395
|
-
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).",
|
|
1395
|
+
description: "BETA — Agentask (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).",
|
|
1396
1396
|
inputSchema: {
|
|
1397
1397
|
type: "object",
|
|
1398
1398
|
properties: {
|
|
@@ -1424,7 +1424,7 @@ var TOOLS = [
|
|
|
1424
1424
|
},
|
|
1425
1425
|
{
|
|
1426
1426
|
name: "agentistics_task_delete",
|
|
1427
|
-
description: "BETA — the task board is new and still changing; its shapes may move between releases. Delete a task and its comments, subtasks, files and links. The SESSIONS filed under it are kept — deleting a board entry never deletes work.",
|
|
1427
|
+
description: "BETA — Agentask (the task board) is new and still changing; its shapes may move between releases. Delete a task and its comments, subtasks, files and links. The SESSIONS filed under it are kept — deleting a board entry never deletes work.",
|
|
1428
1428
|
inputSchema: { type: "object", properties: { ref: { type: "string" } }, required: ["ref"] }
|
|
1429
1429
|
},
|
|
1430
1430
|
{
|