loopctl-mcp-server 2.47.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/index.js +33 -0
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -477,6 +477,21 @@ async function channelRecent({ project_id, since, limit }) {
|
|
|
477
477
|
return toContent(result);
|
|
478
478
|
}
|
|
479
479
|
|
|
480
|
+
async function channelDelete({ post_id }) {
|
|
481
|
+
// Repo Coordination Bus (Epic 39, US-39.7): HARD-delete a coordination post in
|
|
482
|
+
// the caller's tenant — the redact path for a leaked/regretted post, before its
|
|
483
|
+
// 30-day TTL. Agent-role, tenant-scoped: any agent in the tenant may delete any
|
|
484
|
+
// post in that tenant; a foreign or nonexistent id returns a 404 (no cross-tenant
|
|
485
|
+
// existence oracle).
|
|
486
|
+
const result = await apiCall(
|
|
487
|
+
"DELETE",
|
|
488
|
+
`/api/v1/channel/posts/${post_id}`,
|
|
489
|
+
null,
|
|
490
|
+
process.env.LOOPCTL_AGENT_KEY,
|
|
491
|
+
);
|
|
492
|
+
return toContent(result);
|
|
493
|
+
}
|
|
494
|
+
|
|
480
495
|
async function deleteProject({ project_id }) {
|
|
481
496
|
const result = await apiCall(
|
|
482
497
|
"DELETE",
|
|
@@ -2303,6 +2318,21 @@ const TOOLS = [
|
|
|
2303
2318
|
required: ["project_id"],
|
|
2304
2319
|
},
|
|
2305
2320
|
},
|
|
2321
|
+
{
|
|
2322
|
+
name: "channel_delete",
|
|
2323
|
+
description:
|
|
2324
|
+
"Delete a post from a repo coordination channel (Epic 39 Repo Coordination Bus) on the agent key — the redact path (US-39.7). Use this to immediately remove a leaked or regretted post (e.g. one that slipped a secret past the denylist) before its 30-day TTL. Agent-role, tenant-scoped: any agent in your tenant may delete any post in that tenant, enabling cleanup by whoever notices the leak. A post that does not exist in your tenant (including one in another tenant) returns a 404 — no cross-tenant existence oracle. The deletion is hard (the row is gone) but audited.",
|
|
2325
|
+
inputSchema: {
|
|
2326
|
+
type: "object",
|
|
2327
|
+
properties: {
|
|
2328
|
+
post_id: {
|
|
2329
|
+
type: "string",
|
|
2330
|
+
description: "UUID of the channel post to delete (must be in your tenant).",
|
|
2331
|
+
},
|
|
2332
|
+
},
|
|
2333
|
+
required: ["post_id"],
|
|
2334
|
+
},
|
|
2335
|
+
},
|
|
2306
2336
|
{
|
|
2307
2337
|
name: "delete_project",
|
|
2308
2338
|
description:
|
|
@@ -5119,6 +5149,9 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
5119
5149
|
case "channel_recent":
|
|
5120
5150
|
return await channelRecent(args);
|
|
5121
5151
|
|
|
5152
|
+
case "channel_delete":
|
|
5153
|
+
return await channelDelete(args);
|
|
5154
|
+
|
|
5122
5155
|
case "delete_project":
|
|
5123
5156
|
return await deleteProject(args);
|
|
5124
5157
|
|