@bli-cockpit/mcp 0.1.97 → 0.1.98
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/cal-tools.js +9 -2
- package/dist/notes-tools.js +3 -3
- package/package.json +1 -1
package/dist/cal-tools.js
CHANGED
|
@@ -51,8 +51,9 @@ function eventLine(event) {
|
|
|
51
51
|
? `${event.starts_at.slice(0, 10)} (all day${days > 1 ? ` ×${days}d` : ""})`
|
|
52
52
|
: `${event.starts_at.slice(0, 16).replace("T", " ")}–${event.ends_at.slice(11, 16)}`;
|
|
53
53
|
const where = event.location ? ` @ ${event.location}` : "";
|
|
54
|
+
const meeting = meetingLinkText(event);
|
|
54
55
|
const who = event.attendee_count > 0 ? ` (${event.attendee_count} attendees)` : "";
|
|
55
|
-
return `${event.recurring ? "↻" : " "} ${when} ${event.title}${where}${who} [${event.calendar_name}]`;
|
|
56
|
+
return `${event.recurring ? "↻" : " "} ${when} ${event.title}${where}${who}${meeting} [${event.calendar_name}]`;
|
|
56
57
|
}
|
|
57
58
|
/** Every window read, so the three named windows cannot drift from each other. */
|
|
58
59
|
function windowRenderer(label) {
|
|
@@ -151,7 +152,7 @@ export function registerCalTools(server, deps) {
|
|
|
151
152
|
return textResult(matches.length === 0
|
|
152
153
|
? `Nothing in the calendars you may read matched "${String(args.query)}".`
|
|
153
154
|
: `${matches.length} match(es):\n${matches
|
|
154
|
-
.map((match) => `${match.recurring ? "↻" : " "} ${match.next_occurrence ?? match.starts_at} ${match.title} [${match.calendar_name}]`)
|
|
155
|
+
.map((match) => `${match.recurring ? "↻" : " "} ${match.next_occurrence ?? match.starts_at} ${match.title} [${match.calendar_name}]${meetingLinkText(match)}`)
|
|
155
156
|
.join("\n")}`, { matches });
|
|
156
157
|
}));
|
|
157
158
|
register("cal_calendars", {
|
|
@@ -290,3 +291,9 @@ function towerIdLine(event) {
|
|
|
290
291
|
}
|
|
291
292
|
return "";
|
|
292
293
|
}
|
|
294
|
+
function meetingLinkText(event) {
|
|
295
|
+
const label = { meet: "Meet link", zoom: "Zoom link", teams: "Teams link" }[event.meeting_kind ?? ""] ?? "Meeting link";
|
|
296
|
+
const meeting = event.meeting_url ? ` ${label}: ${event.meeting_url}` : "";
|
|
297
|
+
console.error("[cal render] meeting link", JSON.stringify({ reason: event.meeting_url ? "meeting_link_shown" : "no_meeting_link" }));
|
|
298
|
+
return meeting;
|
|
299
|
+
}
|
package/dist/notes-tools.js
CHANGED
|
@@ -104,13 +104,13 @@ export function registerNotesTools(server, deps) {
|
|
|
104
104
|
if (!response.ok)
|
|
105
105
|
return errorResult(doorFailureText("notes_show", response));
|
|
106
106
|
const body = response.body;
|
|
107
|
-
const note = body.note;
|
|
107
|
+
const note = body.note ? { ...body.note, content: body.note.content.replace(/^In the room:/gm, "Invited:") } : null;
|
|
108
108
|
if (!note) {
|
|
109
109
|
return errorResult(`Tower answered notes_show without a note for "${ref}".${narrowingNote(body)}`);
|
|
110
110
|
}
|
|
111
|
-
const
|
|
111
|
+
const invited = note.participants.length > 0 ? `\nInvited: ${note.participants.join(", ")}` : "";
|
|
112
112
|
return textResult(`${note.title}\n${note.meetingDate} · ${note.shelf} · ${note.fileName} · ${note.lineCount} lines`
|
|
113
|
-
+ `${
|
|
113
|
+
+ `${invited}\n${note.visibility}${body.audio ? "\nTranscription: " + body.audio.transcription_status : ""}\n\n${note.content}${narrowingNote(body)}`, { scope: body.scope ?? null, note, audio: body.audio ?? null });
|
|
114
114
|
}));
|
|
115
115
|
register("notes_shelf", {
|
|
116
116
|
title: "Your own Tower notes shelf",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bli-cockpit/mcp",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.98",
|
|
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",
|