@brxce/mcp-server 1.0.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/README.md +220 -0
- package/dist/config/environment.d.ts +8 -0
- package/dist/config/environment.d.ts.map +1 -0
- package/dist/config/environment.js +16 -0
- package/dist/config/environment.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +167 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts/worknode-prompts.d.ts +7 -0
- package/dist/prompts/worknode-prompts.d.ts.map +1 -0
- package/dist/prompts/worknode-prompts.js +369 -0
- package/dist/prompts/worknode-prompts.js.map +1 -0
- package/dist/prompts/workspace-context-prompt.d.ts +4 -0
- package/dist/prompts/workspace-context-prompt.d.ts.map +1 -0
- package/dist/prompts/workspace-context-prompt.js +101 -0
- package/dist/prompts/workspace-context-prompt.js.map +1 -0
- package/dist/resources/user-resource.d.ts +4 -0
- package/dist/resources/user-resource.d.ts.map +1 -0
- package/dist/resources/user-resource.js +40 -0
- package/dist/resources/user-resource.js.map +1 -0
- package/dist/resources/workspace-members-resource.d.ts +4 -0
- package/dist/resources/workspace-members-resource.d.ts.map +1 -0
- package/dist/resources/workspace-members-resource.js +39 -0
- package/dist/resources/workspace-members-resource.js.map +1 -0
- package/dist/resources/workspace-resource.d.ts +4 -0
- package/dist/resources/workspace-resource.d.ts.map +1 -0
- package/dist/resources/workspace-resource.js +27 -0
- package/dist/resources/workspace-resource.js.map +1 -0
- package/dist/services/api-client.d.ts +17 -0
- package/dist/services/api-client.d.ts.map +1 -0
- package/dist/services/api-client.js +118 -0
- package/dist/services/api-client.js.map +1 -0
- package/dist/tools/meeting-agenda-tool.d.ts +7 -0
- package/dist/tools/meeting-agenda-tool.d.ts.map +1 -0
- package/dist/tools/meeting-agenda-tool.js +452 -0
- package/dist/tools/meeting-agenda-tool.js.map +1 -0
- package/dist/tools/meeting-create-tool.d.ts +8 -0
- package/dist/tools/meeting-create-tool.d.ts.map +1 -0
- package/dist/tools/meeting-create-tool.js +309 -0
- package/dist/tools/meeting-create-tool.js.map +1 -0
- package/dist/tools/meeting-decisions-tool.d.ts +7 -0
- package/dist/tools/meeting-decisions-tool.d.ts.map +1 -0
- package/dist/tools/meeting-decisions-tool.js +431 -0
- package/dist/tools/meeting-decisions-tool.js.map +1 -0
- package/dist/tools/meeting-list-tool.d.ts +7 -0
- package/dist/tools/meeting-list-tool.d.ts.map +1 -0
- package/dist/tools/meeting-list-tool.js +305 -0
- package/dist/tools/meeting-list-tool.js.map +1 -0
- package/dist/tools/meeting-notes-tool.d.ts +7 -0
- package/dist/tools/meeting-notes-tool.d.ts.map +1 -0
- package/dist/tools/meeting-notes-tool.js +318 -0
- package/dist/tools/meeting-notes-tool.js.map +1 -0
- package/dist/tools/meeting-update-tool.d.ts +7 -0
- package/dist/tools/meeting-update-tool.d.ts.map +1 -0
- package/dist/tools/meeting-update-tool.js +310 -0
- package/dist/tools/meeting-update-tool.js.map +1 -0
- package/dist/tools/tag-category-tool.d.ts +4 -0
- package/dist/tools/tag-category-tool.d.ts.map +1 -0
- package/dist/tools/tag-category-tool.js +293 -0
- package/dist/tools/tag-category-tool.js.map +1 -0
- package/dist/tools/tag-search-tool.d.ts +4 -0
- package/dist/tools/tag-search-tool.d.ts.map +1 -0
- package/dist/tools/tag-search-tool.js +358 -0
- package/dist/tools/tag-search-tool.js.map +1 -0
- package/dist/tools/tag-tool.d.ts +4 -0
- package/dist/tools/tag-tool.d.ts.map +1 -0
- package/dist/tools/tag-tool.js +450 -0
- package/dist/tools/tag-tool.js.map +1 -0
- package/dist/tools/worknode-archive-tool.d.ts +7 -0
- package/dist/tools/worknode-archive-tool.d.ts.map +1 -0
- package/dist/tools/worknode-archive-tool.js +163 -0
- package/dist/tools/worknode-archive-tool.js.map +1 -0
- package/dist/tools/worknode-create-tool.d.ts +4 -0
- package/dist/tools/worknode-create-tool.d.ts.map +1 -0
- package/dist/tools/worknode-create-tool.js +382 -0
- package/dist/tools/worknode-create-tool.js.map +1 -0
- package/dist/tools/worknode-my-work-tool.d.ts +8 -0
- package/dist/tools/worknode-my-work-tool.d.ts.map +1 -0
- package/dist/tools/worknode-my-work-tool.js +302 -0
- package/dist/tools/worknode-my-work-tool.js.map +1 -0
- package/dist/tools/worknode-search-tool.d.ts +4 -0
- package/dist/tools/worknode-search-tool.d.ts.map +1 -0
- package/dist/tools/worknode-search-tool.js +289 -0
- package/dist/tools/worknode-search-tool.js.map +1 -0
- package/dist/tools/worknode-subtree-tool.d.ts +4 -0
- package/dist/tools/worknode-subtree-tool.d.ts.map +1 -0
- package/dist/tools/worknode-subtree-tool.js +175 -0
- package/dist/tools/worknode-subtree-tool.js.map +1 -0
- package/dist/tools/worknode-tag-tool.d.ts +4 -0
- package/dist/tools/worknode-tag-tool.d.ts.map +1 -0
- package/dist/tools/worknode-tag-tool.js +353 -0
- package/dist/tools/worknode-tag-tool.js.map +1 -0
- package/dist/tools/worknode-update-tool.d.ts +4 -0
- package/dist/tools/worknode-update-tool.d.ts.map +1 -0
- package/dist/tools/worknode-update-tool.js +409 -0
- package/dist/tools/worknode-update-tool.js.map +1 -0
- package/dist/tools/workspace-inbox-tool.d.ts +8 -0
- package/dist/tools/workspace-inbox-tool.d.ts.map +1 -0
- package/dist/tools/workspace-inbox-tool.js +210 -0
- package/dist/tools/workspace-inbox-tool.js.map +1 -0
- package/dist/tools/workspace-tree-tool.d.ts +4 -0
- package/dist/tools/workspace-tree-tool.d.ts.map +1 -0
- package/dist/tools/workspace-tree-tool.js +419 -0
- package/dist/tools/workspace-tree-tool.js.map +1 -0
- package/package.json +61 -0
|
@@ -0,0 +1,431 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
const DecisionStatusSchema = z.enum(['draft', 'proposed', 'agreed', 'implemented', 'archived']);
|
|
3
|
+
const DecisionImpactLevelSchema = z.enum(['low', 'medium', 'high', 'critical']);
|
|
4
|
+
/**
|
|
5
|
+
* Register Meeting Decisions Tools for LLM-invoked operations
|
|
6
|
+
*/
|
|
7
|
+
export function registerMeetingDecisionsTools(server, apiClient) {
|
|
8
|
+
/**
|
|
9
|
+
* brxce_add_meeting_decision - Add a decision to a meeting
|
|
10
|
+
*/
|
|
11
|
+
server.registerTool('brxce_add_meeting_decision', {
|
|
12
|
+
description: `Add a decision to a meeting.
|
|
13
|
+
|
|
14
|
+
**When to use this tool:**
|
|
15
|
+
- During or after a meeting when a decision is made
|
|
16
|
+
- User asks to record a decision from a meeting
|
|
17
|
+
- Need to document agreed-upon actions or choices
|
|
18
|
+
|
|
19
|
+
**Input:**
|
|
20
|
+
- meetingId (required): ID of the meeting
|
|
21
|
+
- title (required): Decision title
|
|
22
|
+
- description (optional): Detailed description of the decision
|
|
23
|
+
- status (optional): 'draft', 'proposed', 'agreed' (default), 'implemented', 'archived'
|
|
24
|
+
- impactLevel (optional): 'low', 'medium', 'high', 'critical'
|
|
25
|
+
- ownerId (optional): User ID of the decision owner
|
|
26
|
+
- dueDate (optional): When the decision should be implemented (ISO 8601)
|
|
27
|
+
- relatedWorkNodeId (optional): Related work item ID
|
|
28
|
+
|
|
29
|
+
**Access Control:**
|
|
30
|
+
- Only workspace members can add decisions
|
|
31
|
+
- Decisions can be assigned to specific owners
|
|
32
|
+
- Impact level helps prioritize implementation
|
|
33
|
+
|
|
34
|
+
**Example:**
|
|
35
|
+
User: "We decided in meeting #24 to use PostgreSQL for the database"
|
|
36
|
+
LLM calls: brxce_add_meeting_decision(
|
|
37
|
+
meetingId: 24,
|
|
38
|
+
title: "Use PostgreSQL for database",
|
|
39
|
+
status: "agreed",
|
|
40
|
+
impactLevel: "high"
|
|
41
|
+
)`,
|
|
42
|
+
inputSchema: {
|
|
43
|
+
meetingId: z.number().describe('Meeting ID'),
|
|
44
|
+
title: z.string().min(1).describe('Decision title'),
|
|
45
|
+
description: z.string().optional().describe('Decision description'),
|
|
46
|
+
status: DecisionStatusSchema.optional().describe('Decision status (default: agreed)'),
|
|
47
|
+
impactLevel: DecisionImpactLevelSchema.optional().describe('Impact level'),
|
|
48
|
+
ownerId: z.string().optional().describe('Decision owner user ID'),
|
|
49
|
+
dueDate: z.string().optional().describe('Due date (ISO 8601)'),
|
|
50
|
+
relatedWorkNodeId: z.number().optional().describe('Related WorkNode ID')
|
|
51
|
+
}
|
|
52
|
+
}, async (args) => {
|
|
53
|
+
const { meetingId, title, description, status = 'agreed', impactLevel, ownerId, dueDate, relatedWorkNodeId } = args;
|
|
54
|
+
try {
|
|
55
|
+
const requestBody = { title, status };
|
|
56
|
+
if (description)
|
|
57
|
+
requestBody.description = description;
|
|
58
|
+
if (impactLevel)
|
|
59
|
+
requestBody.impactLevel = impactLevel;
|
|
60
|
+
if (ownerId)
|
|
61
|
+
requestBody.ownerId = ownerId;
|
|
62
|
+
if (dueDate)
|
|
63
|
+
requestBody.dueDate = dueDate;
|
|
64
|
+
if (relatedWorkNodeId)
|
|
65
|
+
requestBody.relatedWorkNodeId = relatedWorkNodeId;
|
|
66
|
+
const response = await apiClient.post(`/mcp/meetings/${meetingId}/decisions`, requestBody);
|
|
67
|
+
if (!response.success) {
|
|
68
|
+
return {
|
|
69
|
+
content: [
|
|
70
|
+
{
|
|
71
|
+
type: 'text',
|
|
72
|
+
text: `Failed to add meeting decision: ${response.message || 'Unknown error'}`,
|
|
73
|
+
},
|
|
74
|
+
],
|
|
75
|
+
isError: true,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
const decision = response.data;
|
|
79
|
+
let resultText = '## Meeting Decision Added\\n\\n';
|
|
80
|
+
resultText += `✅ **Decision successfully added to Meeting #${meetingId}**\\n\\n`;
|
|
81
|
+
resultText += `**Decision ID:** ${decision.id}\\n`;
|
|
82
|
+
resultText += `**Title:** ${decision.title}\\n`;
|
|
83
|
+
if (decision.description) {
|
|
84
|
+
resultText += `**Description:** ${decision.description}\\n`;
|
|
85
|
+
}
|
|
86
|
+
resultText += `**Status:** ${getStatusEmoji(decision.status)} ${decision.status}\\n`;
|
|
87
|
+
if (decision.impactLevel) {
|
|
88
|
+
resultText += `**Impact Level:** ${getImpactEmoji(decision.impactLevel)} ${decision.impactLevel}\\n`;
|
|
89
|
+
}
|
|
90
|
+
if (decision.ownerId) {
|
|
91
|
+
resultText += `**Owner:** ${decision.ownerId}\\n`;
|
|
92
|
+
}
|
|
93
|
+
resultText += `**Created:** ${new Date(decision.createdAt).toLocaleString()}\\n`;
|
|
94
|
+
return {
|
|
95
|
+
content: [
|
|
96
|
+
{
|
|
97
|
+
type: 'text',
|
|
98
|
+
text: resultText,
|
|
99
|
+
},
|
|
100
|
+
],
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
return {
|
|
105
|
+
content: [
|
|
106
|
+
{
|
|
107
|
+
type: 'text',
|
|
108
|
+
text: `Error adding meeting decision: ${error.message || 'Unknown error'}`,
|
|
109
|
+
},
|
|
110
|
+
],
|
|
111
|
+
isError: true,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
/**
|
|
116
|
+
* brxce_list_meeting_decisions - List all decisions for a meeting
|
|
117
|
+
*/
|
|
118
|
+
server.registerTool('brxce_list_meeting_decisions', {
|
|
119
|
+
description: `List all decisions for a meeting.
|
|
120
|
+
|
|
121
|
+
**When to use this tool:**
|
|
122
|
+
- User asks to see decisions made in a meeting
|
|
123
|
+
- Need to review action items from a meeting
|
|
124
|
+
- Checking implementation status of decisions
|
|
125
|
+
|
|
126
|
+
**Output:**
|
|
127
|
+
- Returns all decisions with status and impact level
|
|
128
|
+
- Includes decision owner information
|
|
129
|
+
- Shows due dates if set
|
|
130
|
+
|
|
131
|
+
**Example:**
|
|
132
|
+
User: "What decisions were made in meeting #24?"
|
|
133
|
+
LLM calls: brxce_list_meeting_decisions(meetingId: 24)`,
|
|
134
|
+
inputSchema: {
|
|
135
|
+
meetingId: z.number().describe('Meeting ID')
|
|
136
|
+
}
|
|
137
|
+
}, async (args) => {
|
|
138
|
+
const { meetingId } = args;
|
|
139
|
+
try {
|
|
140
|
+
const response = await apiClient.get(`/mcp/meetings/${meetingId}/decisions`);
|
|
141
|
+
if (!response.success) {
|
|
142
|
+
return {
|
|
143
|
+
content: [
|
|
144
|
+
{
|
|
145
|
+
type: 'text',
|
|
146
|
+
text: `Failed to list meeting decisions: ${response.message || 'Unknown error'}`,
|
|
147
|
+
},
|
|
148
|
+
],
|
|
149
|
+
isError: true,
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
const { decisions } = response.data;
|
|
153
|
+
if (!decisions || decisions.length === 0) {
|
|
154
|
+
return {
|
|
155
|
+
content: [
|
|
156
|
+
{
|
|
157
|
+
type: 'text',
|
|
158
|
+
text: `## Meeting #${meetingId} Decisions\\n\\nNo decisions found for this meeting.`,
|
|
159
|
+
},
|
|
160
|
+
],
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
let resultText = `## Meeting #${meetingId} Decisions\\n\\n`;
|
|
164
|
+
resultText += `**Total Decisions:** ${decisions.length}\\n\\n`;
|
|
165
|
+
// Group by status
|
|
166
|
+
const byStatus = groupBy(decisions, 'status');
|
|
167
|
+
const statusOrder = ['agreed', 'implemented', 'proposed', 'draft', 'archived'];
|
|
168
|
+
statusOrder.forEach(statusKey => {
|
|
169
|
+
const statusDecisions = byStatus[statusKey];
|
|
170
|
+
if (statusDecisions && statusDecisions.length > 0) {
|
|
171
|
+
resultText += `### ${getStatusEmoji(statusKey)} ${statusKey.toUpperCase()} (${statusDecisions.length})\\n\\n`;
|
|
172
|
+
statusDecisions.forEach((decision) => {
|
|
173
|
+
resultText += `**#${decision.id}** ${decision.title}`;
|
|
174
|
+
if (decision.impactLevel) {
|
|
175
|
+
resultText += ` ${getImpactEmoji(decision.impactLevel)}`;
|
|
176
|
+
}
|
|
177
|
+
resultText += '\\n';
|
|
178
|
+
if (decision.description) {
|
|
179
|
+
resultText += ` ${decision.description}\\n`;
|
|
180
|
+
}
|
|
181
|
+
if (decision.owner) {
|
|
182
|
+
resultText += ` 👤 Owner: ${decision.owner.name || decision.owner.email}\\n`;
|
|
183
|
+
}
|
|
184
|
+
if (decision.dueDate) {
|
|
185
|
+
resultText += ` 📅 Due: ${new Date(decision.dueDate).toLocaleDateString()}\\n`;
|
|
186
|
+
}
|
|
187
|
+
resultText += '\\n';
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
return {
|
|
192
|
+
content: [
|
|
193
|
+
{
|
|
194
|
+
type: 'text',
|
|
195
|
+
text: resultText,
|
|
196
|
+
},
|
|
197
|
+
],
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
catch (error) {
|
|
201
|
+
return {
|
|
202
|
+
content: [
|
|
203
|
+
{
|
|
204
|
+
type: 'text',
|
|
205
|
+
text: `Error listing meeting decisions: ${error.message || 'Unknown error'}`,
|
|
206
|
+
},
|
|
207
|
+
],
|
|
208
|
+
isError: true,
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
});
|
|
212
|
+
/**
|
|
213
|
+
* brxce_update_meeting_decision - Update a meeting decision
|
|
214
|
+
*/
|
|
215
|
+
server.registerTool('brxce_update_meeting_decision', {
|
|
216
|
+
description: `Update a meeting decision.
|
|
217
|
+
|
|
218
|
+
**When to use this tool:**
|
|
219
|
+
- Update decision status (e.g., agreed → implemented)
|
|
220
|
+
- Change impact level or owner
|
|
221
|
+
- Update due date or description
|
|
222
|
+
- Mark decisions as archived
|
|
223
|
+
|
|
224
|
+
**Access Control:**
|
|
225
|
+
- Workspace members can update decisions
|
|
226
|
+
- Cannot update if decision doesn't belong to meeting
|
|
227
|
+
|
|
228
|
+
**Input:**
|
|
229
|
+
- meetingId (required): ID of the meeting
|
|
230
|
+
- decisionId (required): ID of the decision to update
|
|
231
|
+
- title (optional): New title
|
|
232
|
+
- description (optional): New description
|
|
233
|
+
- status (optional): New status
|
|
234
|
+
- impactLevel (optional): New impact level
|
|
235
|
+
- ownerId (optional): New owner ID
|
|
236
|
+
- dueDate (optional): New due date
|
|
237
|
+
|
|
238
|
+
**Example:**
|
|
239
|
+
User: "Mark decision #50 from meeting #24 as implemented"
|
|
240
|
+
LLM calls: brxce_update_meeting_decision(meetingId: 24, decisionId: 50, status: "implemented")`,
|
|
241
|
+
inputSchema: {
|
|
242
|
+
meetingId: z.number().describe('Meeting ID'),
|
|
243
|
+
decisionId: z.number().describe('Decision ID to update'),
|
|
244
|
+
title: z.string().min(1).optional().describe('Updated title'),
|
|
245
|
+
description: z.string().nullable().optional().describe('Updated description'),
|
|
246
|
+
status: DecisionStatusSchema.optional().describe('Updated status'),
|
|
247
|
+
impactLevel: DecisionImpactLevelSchema.optional().describe('Updated impact level'),
|
|
248
|
+
ownerId: z.string().nullable().optional().describe('Updated owner ID'),
|
|
249
|
+
dueDate: z.string().nullable().optional().describe('Updated due date (ISO 8601)')
|
|
250
|
+
}
|
|
251
|
+
}, async (args) => {
|
|
252
|
+
const { meetingId, decisionId, title, description, status, impactLevel, ownerId, dueDate } = args;
|
|
253
|
+
if (!title && description === undefined && !status && !impactLevel && ownerId === undefined && dueDate === undefined) {
|
|
254
|
+
return {
|
|
255
|
+
content: [
|
|
256
|
+
{
|
|
257
|
+
type: 'text',
|
|
258
|
+
text: 'Error: You must provide at least one field to update',
|
|
259
|
+
},
|
|
260
|
+
],
|
|
261
|
+
isError: true,
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
try {
|
|
265
|
+
const updateData = {};
|
|
266
|
+
if (title)
|
|
267
|
+
updateData.title = title;
|
|
268
|
+
if (description !== undefined)
|
|
269
|
+
updateData.description = description;
|
|
270
|
+
if (status)
|
|
271
|
+
updateData.status = status;
|
|
272
|
+
if (impactLevel)
|
|
273
|
+
updateData.impactLevel = impactLevel;
|
|
274
|
+
if (ownerId !== undefined)
|
|
275
|
+
updateData.ownerId = ownerId;
|
|
276
|
+
if (dueDate !== undefined)
|
|
277
|
+
updateData.dueDate = dueDate;
|
|
278
|
+
const response = await apiClient.put(`/mcp/meetings/${meetingId}/decisions/${decisionId}`, updateData);
|
|
279
|
+
if (!response.success) {
|
|
280
|
+
return {
|
|
281
|
+
content: [
|
|
282
|
+
{
|
|
283
|
+
type: 'text',
|
|
284
|
+
text: `Failed to update meeting decision: ${response.message || 'Unknown error'}`,
|
|
285
|
+
},
|
|
286
|
+
],
|
|
287
|
+
isError: true,
|
|
288
|
+
};
|
|
289
|
+
}
|
|
290
|
+
const decision = response.data;
|
|
291
|
+
let resultText = '## Meeting Decision Updated\\n\\n';
|
|
292
|
+
resultText += `✅ **Decision #${decision.id} successfully updated**\\n\\n`;
|
|
293
|
+
if (title) {
|
|
294
|
+
resultText += `**New Title:** ${decision.title}\\n`;
|
|
295
|
+
}
|
|
296
|
+
if (description !== undefined) {
|
|
297
|
+
resultText += `**New Description:** ${decision.description || '(empty)'}\\n`;
|
|
298
|
+
}
|
|
299
|
+
if (status) {
|
|
300
|
+
resultText += `**New Status:** ${getStatusEmoji(decision.status)} ${decision.status}\\n`;
|
|
301
|
+
}
|
|
302
|
+
if (impactLevel) {
|
|
303
|
+
resultText += `**New Impact Level:** ${getImpactEmoji(decision.impactLevel)} ${decision.impactLevel}\\n`;
|
|
304
|
+
}
|
|
305
|
+
resultText += `\\n**Last Updated:** ${new Date(decision.updatedAt).toLocaleString()}\\n`;
|
|
306
|
+
return {
|
|
307
|
+
content: [
|
|
308
|
+
{
|
|
309
|
+
type: 'text',
|
|
310
|
+
text: resultText,
|
|
311
|
+
},
|
|
312
|
+
],
|
|
313
|
+
};
|
|
314
|
+
}
|
|
315
|
+
catch (error) {
|
|
316
|
+
return {
|
|
317
|
+
content: [
|
|
318
|
+
{
|
|
319
|
+
type: 'text',
|
|
320
|
+
text: `Error updating meeting decision: ${error.message || 'Unknown error'}`,
|
|
321
|
+
},
|
|
322
|
+
],
|
|
323
|
+
isError: true,
|
|
324
|
+
};
|
|
325
|
+
}
|
|
326
|
+
});
|
|
327
|
+
/**
|
|
328
|
+
* brxce_delete_meeting_decision - Delete a meeting decision
|
|
329
|
+
*/
|
|
330
|
+
server.registerTool('brxce_delete_meeting_decision', {
|
|
331
|
+
description: `Delete a meeting decision.
|
|
332
|
+
|
|
333
|
+
**When to use this tool:**
|
|
334
|
+
- Decision was recorded incorrectly
|
|
335
|
+
- Decision is no longer valid
|
|
336
|
+
- Duplicate decision entry
|
|
337
|
+
|
|
338
|
+
**Access Control:**
|
|
339
|
+
- Workspace members can delete decisions
|
|
340
|
+
- Deletion is permanent and cannot be undone
|
|
341
|
+
|
|
342
|
+
**Input:**
|
|
343
|
+
- meetingId (required): ID of the meeting
|
|
344
|
+
- decisionId (required): ID of the decision to delete
|
|
345
|
+
|
|
346
|
+
**Example:**
|
|
347
|
+
User: "Delete decision #50 from meeting #24"
|
|
348
|
+
LLM calls: brxce_delete_meeting_decision(meetingId: 24, decisionId: 50)`,
|
|
349
|
+
inputSchema: {
|
|
350
|
+
meetingId: z.number().describe('Meeting ID'),
|
|
351
|
+
decisionId: z.number().describe('Decision ID to delete')
|
|
352
|
+
}
|
|
353
|
+
}, async (args) => {
|
|
354
|
+
const { meetingId, decisionId } = args;
|
|
355
|
+
try {
|
|
356
|
+
const response = await apiClient.delete(`/mcp/meetings/${meetingId}/decisions/${decisionId}`);
|
|
357
|
+
if (!response.success) {
|
|
358
|
+
return {
|
|
359
|
+
content: [
|
|
360
|
+
{
|
|
361
|
+
type: 'text',
|
|
362
|
+
text: `Failed to delete meeting decision: ${response.message || 'Unknown error'}`,
|
|
363
|
+
},
|
|
364
|
+
],
|
|
365
|
+
isError: true,
|
|
366
|
+
};
|
|
367
|
+
}
|
|
368
|
+
let resultText = '## Meeting Decision Deleted\\n\\n';
|
|
369
|
+
resultText += `✅ **Decision #${decisionId} successfully deleted from Meeting #${meetingId}**\\n\\n`;
|
|
370
|
+
resultText += '⚠️ This action cannot be undone.\\n';
|
|
371
|
+
return {
|
|
372
|
+
content: [
|
|
373
|
+
{
|
|
374
|
+
type: 'text',
|
|
375
|
+
text: resultText,
|
|
376
|
+
},
|
|
377
|
+
],
|
|
378
|
+
};
|
|
379
|
+
}
|
|
380
|
+
catch (error) {
|
|
381
|
+
return {
|
|
382
|
+
content: [
|
|
383
|
+
{
|
|
384
|
+
type: 'text',
|
|
385
|
+
text: `Error deleting meeting decision: ${error.message || 'Unknown error'}`,
|
|
386
|
+
},
|
|
387
|
+
],
|
|
388
|
+
isError: true,
|
|
389
|
+
};
|
|
390
|
+
}
|
|
391
|
+
});
|
|
392
|
+
}
|
|
393
|
+
/**
|
|
394
|
+
* Helper function to get status emoji
|
|
395
|
+
*/
|
|
396
|
+
function getStatusEmoji(status) {
|
|
397
|
+
switch (status) {
|
|
398
|
+
case 'draft': return '📝';
|
|
399
|
+
case 'proposed': return '💡';
|
|
400
|
+
case 'agreed': return '✅';
|
|
401
|
+
case 'implemented': return '🎉';
|
|
402
|
+
case 'archived': return '📦';
|
|
403
|
+
default: return '📄';
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
/**
|
|
407
|
+
* Helper function to get impact level emoji
|
|
408
|
+
*/
|
|
409
|
+
function getImpactEmoji(impactLevel) {
|
|
410
|
+
switch (impactLevel) {
|
|
411
|
+
case 'low': return '🟢';
|
|
412
|
+
case 'medium': return '🟡';
|
|
413
|
+
case 'high': return '🟠';
|
|
414
|
+
case 'critical': return '🔴';
|
|
415
|
+
default: return '⚪';
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
/**
|
|
419
|
+
* Helper function to group array by key
|
|
420
|
+
*/
|
|
421
|
+
function groupBy(array, key) {
|
|
422
|
+
return array.reduce((result, item) => {
|
|
423
|
+
const groupKey = item[key];
|
|
424
|
+
if (!result[groupKey]) {
|
|
425
|
+
result[groupKey] = [];
|
|
426
|
+
}
|
|
427
|
+
result[groupKey].push(item);
|
|
428
|
+
return result;
|
|
429
|
+
}, {});
|
|
430
|
+
}
|
|
431
|
+
//# sourceMappingURL=meeting-decisions-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meeting-decisions-tool.js","sourceRoot":"","sources":["../../src/tools/meeting-decisions-tool.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,oBAAoB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC;AAChG,MAAM,yBAAyB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;AAEhF;;GAEG;AACH,MAAM,UAAU,6BAA6B,CAAC,MAAiB,EAAE,SAAoB;IACnF;;OAEG;IACH,MAAM,CAAC,YAAY,CACjB,4BAA4B,EAC5B;QACE,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6BjB;QAEI,WAAW,EAAE;YACX,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC5C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YACnD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YACnE,MAAM,EAAE,oBAAoB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;YACrF,WAAW,EAAE,yBAAyB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;YAC1E,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;YACjE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YAC9D,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;SACzE;KACF,EACD,KAAK,EAAE,IAAyB,EAAE,EAAE;QAClC,MAAM,EACJ,SAAS,EACT,KAAK,EACL,WAAW,EACX,MAAM,GAAG,QAAQ,EACjB,WAAW,EACX,OAAO,EACP,OAAO,EACP,iBAAiB,EAClB,GAAG,IAAI,CAAC;QAET,IAAI,CAAC;YACH,MAAM,WAAW,GAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;YAC3C,IAAI,WAAW;gBAAE,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC;YACvD,IAAI,WAAW;gBAAE,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC;YACvD,IAAI,OAAO;gBAAE,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC;YAC3C,IAAI,OAAO;gBAAE,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC;YAC3C,IAAI,iBAAiB;gBAAE,WAAW,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;YAEzE,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,IAAI,CACnC,iBAAiB,SAAS,YAAY,EACtC,WAAW,CACZ,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACtB,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,mCAAmC,QAAQ,CAAC,OAAO,IAAI,eAAe,EAAE;yBAC/E;qBACF;oBACD,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;YAE/B,IAAI,UAAU,GAAG,iCAAiC,CAAC;YACnD,UAAU,IAAI,+CAA+C,SAAS,UAAU,CAAC;YACjF,UAAU,IAAI,oBAAoB,QAAQ,CAAC,EAAE,KAAK,CAAC;YACnD,UAAU,IAAI,cAAc,QAAQ,CAAC,KAAK,KAAK,CAAC;YAChD,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;gBACzB,UAAU,IAAI,oBAAoB,QAAQ,CAAC,WAAW,KAAK,CAAC;YAC9D,CAAC;YACD,UAAU,IAAI,eAAe,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YACrF,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;gBACzB,UAAU,IAAI,qBAAqB,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAC,WAAW,KAAK,CAAC;YACvG,CAAC;YACD,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACrB,UAAU,IAAI,cAAc,QAAQ,CAAC,OAAO,KAAK,CAAC;YACpD,CAAC;YACD,UAAU,IAAI,gBAAgB,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,KAAK,CAAC;YAEjF,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,UAAU;qBACjB;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,kCAAkC,KAAK,CAAC,OAAO,IAAI,eAAe,EAAE;qBAC3E;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF;;OAEG;IACH,MAAM,CAAC,YAAY,CACjB,8BAA8B,EAC9B;QACE,WAAW,EAAE;;;;;;;;;;;;;;uDAcoC;QAEjD,WAAW,EAAE;YACX,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;SAC7C;KACF,EACD,KAAK,EAAE,IAAyB,EAAE,EAAE;QAClC,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QAE3B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,GAAG,CAAM,iBAAiB,SAAS,YAAY,CAAC,CAAC;YAElF,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACtB,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,qCAAqC,QAAQ,CAAC,OAAO,IAAI,eAAe,EAAE;yBACjF;qBACF;oBACD,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC;YAEpC,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzC,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,eAAe,SAAS,sDAAsD;yBACrF;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,IAAI,UAAU,GAAG,eAAe,SAAS,kBAAkB,CAAC;YAC5D,UAAU,IAAI,wBAAwB,SAAS,CAAC,MAAM,QAAQ,CAAC;YAE/D,kBAAkB;YAClB,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC9C,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;YAE/E,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;gBAC9B,MAAM,eAAe,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAC5C,IAAI,eAAe,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAClD,UAAU,IAAI,OAAO,cAAc,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,WAAW,EAAE,KAAK,eAAe,CAAC,MAAM,SAAS,CAAC;oBAE9G,eAAe,CAAC,OAAO,CAAC,CAAC,QAAa,EAAE,EAAE;wBACxC,UAAU,IAAI,MAAM,QAAQ,CAAC,EAAE,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;wBACtD,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;4BACzB,UAAU,IAAI,IAAI,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;wBAC3D,CAAC;wBACD,UAAU,IAAI,KAAK,CAAC;wBAEpB,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;4BACzB,UAAU,IAAI,KAAK,QAAQ,CAAC,WAAW,KAAK,CAAC;wBAC/C,CAAC;wBACD,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;4BACnB,UAAU,IAAI,eAAe,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC;wBAChF,CAAC;wBACD,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;4BACrB,UAAU,IAAI,aAAa,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,kBAAkB,EAAE,KAAK,CAAC;wBAClF,CAAC;wBACD,UAAU,IAAI,KAAK,CAAC;oBACtB,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,UAAU;qBACjB;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,oCAAoC,KAAK,CAAC,OAAO,IAAI,eAAe,EAAE;qBAC7E;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF;;OAEG;IACH,MAAM,CAAC,YAAY,CACjB,+BAA+B,EAC/B;QACE,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;+FAwB4E;QAEzF,WAAW,EAAE;YACX,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC5C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YACxD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;YAC7D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YAC7E,MAAM,EAAE,oBAAoB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAClE,WAAW,EAAE,yBAAyB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YAClF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YACtE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;SAClF;KACF,EACD,KAAK,EAAE,IAAyB,EAAE,EAAE;QAClC,MAAM,EACJ,SAAS,EACT,UAAU,EACV,KAAK,EACL,WAAW,EACX,MAAM,EACN,WAAW,EACX,OAAO,EACP,OAAO,EACR,GAAG,IAAI,CAAC;QAET,IAAI,CAAC,KAAK,IAAI,WAAW,KAAK,SAAS,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACrH,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,sDAAsD;qBAC7D;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,UAAU,GAAQ,EAAE,CAAC;YAC3B,IAAI,KAAK;gBAAE,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;YACpC,IAAI,WAAW,KAAK,SAAS;gBAAE,UAAU,CAAC,WAAW,GAAG,WAAW,CAAC;YACpE,IAAI,MAAM;gBAAE,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;YACvC,IAAI,WAAW;gBAAE,UAAU,CAAC,WAAW,GAAG,WAAW,CAAC;YACtD,IAAI,OAAO,KAAK,SAAS;gBAAE,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;YACxD,IAAI,OAAO,KAAK,SAAS;gBAAE,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;YAExD,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,GAAG,CAClC,iBAAiB,SAAS,cAAc,UAAU,EAAE,EACpD,UAAU,CACX,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACtB,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,sCAAsC,QAAQ,CAAC,OAAO,IAAI,eAAe,EAAE;yBAClF;qBACF;oBACD,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;YAE/B,IAAI,UAAU,GAAG,mCAAmC,CAAC;YACrD,UAAU,IAAI,iBAAiB,QAAQ,CAAC,EAAE,+BAA+B,CAAC;YAC1E,IAAI,KAAK,EAAE,CAAC;gBACV,UAAU,IAAI,kBAAkB,QAAQ,CAAC,KAAK,KAAK,CAAC;YACtD,CAAC;YACD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC9B,UAAU,IAAI,wBAAwB,QAAQ,CAAC,WAAW,IAAI,SAAS,KAAK,CAAC;YAC/E,CAAC;YACD,IAAI,MAAM,EAAE,CAAC;gBACX,UAAU,IAAI,mBAAmB,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAC3F,CAAC;YACD,IAAI,WAAW,EAAE,CAAC;gBAChB,UAAU,IAAI,yBAAyB,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAC,WAAW,KAAK,CAAC;YAC3G,CAAC;YACD,UAAU,IAAI,wBAAwB,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,KAAK,CAAC;YAEzF,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,UAAU;qBACjB;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,oCAAoC,KAAK,CAAC,OAAO,IAAI,eAAe,EAAE;qBAC7E;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF;;OAEG;IACH,MAAM,CAAC,YAAY,CACjB,+BAA+B,EAC/B;QACE,WAAW,EAAE;;;;;;;;;;;;;;;;;wEAiBqD;QAElE,WAAW,EAAE;YACX,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC5C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;SACzD;KACF,EACD,KAAK,EAAE,IAAyB,EAAE,EAAE;QAClC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QAEvC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,MAAM,CAAM,iBAAiB,SAAS,cAAc,UAAU,EAAE,CAAC,CAAC;YAEnG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACtB,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,sCAAsC,QAAQ,CAAC,OAAO,IAAI,eAAe,EAAE;yBAClF;qBACF;oBACD,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,IAAI,UAAU,GAAG,mCAAmC,CAAC;YACrD,UAAU,IAAI,iBAAiB,UAAU,uCAAuC,SAAS,UAAU,CAAC;YACpG,UAAU,IAAI,qCAAqC,CAAC;YAEpD,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,UAAU;qBACjB;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,oCAAoC,KAAK,CAAC,OAAO,IAAI,eAAe,EAAE;qBAC7E;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,MAAc;IACpC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC;QAC1B,KAAK,UAAU,CAAC,CAAC,OAAO,IAAI,CAAC;QAC7B,KAAK,QAAQ,CAAC,CAAC,OAAO,GAAG,CAAC;QAC1B,KAAK,aAAa,CAAC,CAAC,OAAO,IAAI,CAAC;QAChC,KAAK,UAAU,CAAC,CAAC,OAAO,IAAI,CAAC;QAC7B,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC;IACvB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,WAAmB;IACzC,QAAQ,WAAW,EAAE,CAAC;QACpB,KAAK,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC;QACxB,KAAK,QAAQ,CAAC,CAAC,OAAO,IAAI,CAAC;QAC3B,KAAK,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC;QACzB,KAAK,UAAU,CAAC,CAAC,OAAO,IAAI,CAAC;QAC7B,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC;IACtB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,OAAO,CAAC,KAAY,EAAE,GAAW;IACxC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QACxB,CAAC;QACD,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,OAAO,MAAM,CAAC;IAChB,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import type { ApiClient } from '../services/api-client.js';
|
|
3
|
+
/**
|
|
4
|
+
* Register Meeting List and Detail Tools
|
|
5
|
+
*/
|
|
6
|
+
export declare function registerMeetingListTools(server: McpServer, apiClient: ApiClient): void;
|
|
7
|
+
//# sourceMappingURL=meeting-list-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meeting-list-tool.d.ts","sourceRoot":"","sources":["../../src/tools/meeting-list-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AA6E3D;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,QAoU/E"}
|