@bli-cockpit/mcp 0.1.41 → 0.1.43

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/ops-tools.js CHANGED
@@ -77,7 +77,25 @@ export function registerOpsTools(server, deps) {
77
77
  // verbatim, the same way the CLI prints it. An agent asking "has this
78
78
  // been processed" gets the queue's answer and never computes one.
79
79
  const ladder = asRecord(body.ladder);
80
- const ladderLine = typeof ladder.summary === "string" ? `LADDER ${ladder.summary}` : "";
80
+ // BLI-4343: the deferred count rides its own line under the sentence,
81
+ // the same way the CLI prints it. An agent asked "why is nothing
82
+ // running" must be able to tell a waiting queue from a dead one.
83
+ const deferred = typeof ladder.deferred === "number" ? ladder.deferred : 0;
84
+ const soonest = typeof ladder.soonest_defer_until === "string" ? ladder.soonest_defer_until : null;
85
+ // BLI-4352: the same extra line the CLI prints. A session whose rungs
86
+ // all succeeded can still carry the old task-type label, and an agent
87
+ // asked "is the corpus labelled" must not read the queue as the answer.
88
+ const staleLabels = typeof ladder.labels_v1_remaining === "number" ? ladder.labels_v1_remaining : 0;
89
+ const ladderLine = typeof ladder.summary === "string"
90
+ ? `LADDER ${ladder.summary}`
91
+ + (deferred > 0
92
+ ? `\n ${deferred} row(s) deferred, waiting on another pass`
93
+ + `${soonest ? `, soonest retry ${soonest}` : ""}`
94
+ : "")
95
+ + (staleLabels > 0
96
+ ? `\n ${staleLabels} session label(s) still on the old provenance`
97
+ : "")
98
+ : "";
81
99
  const memory = args.memory
82
100
  ? await callAgentDoor(session, deps.fetchImpl, "GET", "/api/ops/memory-usage") : null;
83
101
  if (memory && !memory.ok)
@@ -20,7 +20,8 @@ export function registerUsageTools(server, deps) {
20
20
  if (!response.ok)
21
21
  return errorResult(doorFailureText("usage_people", response));
22
22
  const coverage = response.body.coverage;
23
- return textResult(`${coverage?.sessions_extracted ?? 0} of ${coverage?.sessions_observed ?? 0} sessions extracted.${args.groupBy === "task_type" ? ` ${coverage?.sessions_labelled ?? 0} of ${coverage?.sessions_observed ?? 0} sessions labelled by topic.` : ""}`, response.body);
23
+ // BLI-4341: the same coverage sentence the CLI prints, same numbers.
24
+ return textResult(`${coverage?.sessions_extracted ?? 0} of ${coverage?.sessions_observed ?? 0} sessions extracted. ${coverage?.sessions_counted_at_upload ?? 0} of ${coverage?.sessions_observed ?? 0} sessions counted at upload, ${coverage?.sessions_counted_by_server ?? 0} by server backfill, ${coverage?.sessions_counted_by_ladder ?? 0} by the ladder.${args.groupBy === "task_type" ? ` ${coverage?.sessions_labelled ?? 0} of ${coverage?.sessions_observed ?? 0} sessions labelled by topic.` : ""}`, response.body);
24
25
  }));
25
26
  registrarFor(server)("usage_sessions", {
26
27
  title: "Read task or subject sessions",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bli-cockpit/mcp",
3
- "version": "0.1.41",
3
+ "version": "0.1.43",
4
4
  "private": false,
5
5
  "description": "bli-tower: an MCP server over BLI Cockpit's agent doors: JARVIS (jarvis_*), documents (docs_*), channels (msg_*), issues (work_*), the daily page (brief_*), meeting notes (notes_*), the ops board (ops_status/slack_*), settings/team/model, Scout and the workbook, plus the legacy event-stream tools (emit_event, get_ticket_timeline, get_active_tickets).",
6
6
  "type": "module",
@@ -30,7 +30,7 @@
30
30
  "readme": "npm run build && node scripts/write-readme-census.mjs"
31
31
  },
32
32
  "dependencies": {
33
- "@bli-cockpit/telemetry-core": "0.1.47",
33
+ "@bli-cockpit/telemetry-core": "0.1.48",
34
34
  "@modelcontextprotocol/sdk": "^1.29.0",
35
35
  "zod": "^4.3.6"
36
36
  },