@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,309 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Register Meeting Creation Tool for conversational workflow
|
|
4
|
+
* Supports preview and actual creation modes
|
|
5
|
+
*/
|
|
6
|
+
export function registerMeetingCreateTool(server, apiClient) {
|
|
7
|
+
server.registerTool('brxce_create_meeting', {
|
|
8
|
+
description: `Create a meeting with auto-generated review and conversational workflow.
|
|
9
|
+
|
|
10
|
+
⚠️ **CRITICAL: Workspace Verification Required**
|
|
11
|
+
Before calling this tool, you MUST:
|
|
12
|
+
1. Read the \`user://me\` resource to get available workspaces
|
|
13
|
+
2. Identify the correct workspaceId from the resource data
|
|
14
|
+
3. If user doesn't specify workspace, use their default workspace
|
|
15
|
+
4. NEVER assume or guess workspaceId values
|
|
16
|
+
|
|
17
|
+
**Example Workflow:**
|
|
18
|
+
\`\`\`
|
|
19
|
+
User: "주간 회의 만들어줘"
|
|
20
|
+
LLM:
|
|
21
|
+
1. Reads user://me resource
|
|
22
|
+
2. Finds default workspace: {id: 138, name: "BRXCE Development"}
|
|
23
|
+
3. Calls brxce_create_meeting with workspaceId: 138, preview: true
|
|
24
|
+
4. Shows preview and asks for confirmation
|
|
25
|
+
\`\`\`
|
|
26
|
+
|
|
27
|
+
**CONVERSATIONAL WORKFLOW:**
|
|
28
|
+
This tool is designed for step-by-step meeting creation:
|
|
29
|
+
1. Preview meeting with auto-review
|
|
30
|
+
2. Ask user about review period if needed
|
|
31
|
+
3. Ask about agenda items
|
|
32
|
+
4. Suggest workspace members for participants
|
|
33
|
+
5. Confirm and create
|
|
34
|
+
|
|
35
|
+
**TWO MODES:**
|
|
36
|
+
1. **Preview Mode** (preview: true, default):
|
|
37
|
+
- Validates inputs
|
|
38
|
+
- Auto-generates review of completed WorkNodes
|
|
39
|
+
- Shows preview data for user confirmation
|
|
40
|
+
- DOES NOT create the meeting
|
|
41
|
+
|
|
42
|
+
2. **Create Mode** (preview: false):
|
|
43
|
+
- Actually creates the meeting
|
|
44
|
+
- Requires all validated data
|
|
45
|
+
- Returns created meeting with ID
|
|
46
|
+
|
|
47
|
+
**Review Period Modes:**
|
|
48
|
+
- since_last_review: From last meeting with review to scheduledAt (default)
|
|
49
|
+
- last_week: Last 7 days from scheduledAt
|
|
50
|
+
- last_days: Custom days back (specify reviewDays)
|
|
51
|
+
- custom: Specify exact reviewFrom and reviewTo dates
|
|
52
|
+
|
|
53
|
+
**Workflow Example:**
|
|
54
|
+
|
|
55
|
+
Step 1: User asks "주간 회의 만들어줘"
|
|
56
|
+
→ LLM calls preview with title="주간 회의", scheduledAt=<next Monday>
|
|
57
|
+
|
|
58
|
+
Step 2: Tool returns preview with auto-review
|
|
59
|
+
→ LLM shows: "지난 리뷰 이후 완료된 작업 15개가 있습니다. 이 기간으로 할까요?"
|
|
60
|
+
|
|
61
|
+
Step 3: User confirms or adjusts
|
|
62
|
+
→ If adjust: LLM calls preview again with reviewMode=last_days, reviewDays=14
|
|
63
|
+
|
|
64
|
+
Step 4: LLM asks about agenda
|
|
65
|
+
→ User: "신규 기능 개발 현황, 버그 수정 내역"
|
|
66
|
+
→ LLM adds agendaItems
|
|
67
|
+
|
|
68
|
+
Step 5: LLM fetches workspace members (via workspace-members resource)
|
|
69
|
+
→ Shows member list: "누구를 초대할까요?"
|
|
70
|
+
|
|
71
|
+
Step 6: User selects participants
|
|
72
|
+
→ LLM calls with preview: false to create
|
|
73
|
+
|
|
74
|
+
**Best Practices:**
|
|
75
|
+
1. ALWAYS preview first
|
|
76
|
+
2. Show review period and completed work count to user
|
|
77
|
+
3. Ask about agenda items explicitly
|
|
78
|
+
4. Use workspace-members resource to show participant options
|
|
79
|
+
5. Confirm before creating
|
|
80
|
+
|
|
81
|
+
**Use Cases:**
|
|
82
|
+
- "주간 회의 만들어줘" → Auto-schedule for next Monday
|
|
83
|
+
- "오늘 스탠드업 미팅 생성" → Schedule for today
|
|
84
|
+
- "지난 2주간 완료한 작업 리뷰하는 회의" → Custom review period
|
|
85
|
+
- "다음주 sprint planning 미팅" → Schedule with custom agenda
|
|
86
|
+
|
|
87
|
+
⏰ **TIMEZONE HANDLING:**
|
|
88
|
+
When specifying scheduledAt, provide in ISO 8601 format with timezone information.
|
|
89
|
+
The API will store dates in UTC, but the LLM should help users specify dates in their local timezone.
|
|
90
|
+
|
|
91
|
+
Example for Korea Time (UTC+9):
|
|
92
|
+
- User says: "Schedule for tomorrow at 2pm" → LLM converts to: "2025-10-21T05:00:00.000Z" (2pm KST)
|
|
93
|
+
- User says: "Next Monday 10am" → LLM converts to: "2025-10-27T01:00:00.000Z" (10am KST)
|
|
94
|
+
|
|
95
|
+
When creating meetings with dates:
|
|
96
|
+
1. Check the current date/time from the <env> tag in the system prompt
|
|
97
|
+
2. Identify the user's timezone (e.g., Asia/Seoul = UTC+9)
|
|
98
|
+
3. Convert user's local dates to UTC for the API
|
|
99
|
+
4. For review period dates (reviewFrom, reviewTo), also convert to UTC`,
|
|
100
|
+
inputSchema: {
|
|
101
|
+
workspaceId: z.number().describe('Workspace ID (required)'),
|
|
102
|
+
title: z.string().describe('Meeting title (e.g., "Weekly Review Meeting")'),
|
|
103
|
+
scheduledAt: z
|
|
104
|
+
.string()
|
|
105
|
+
.describe('Scheduled date/time in ISO 8601 format (e.g., "2025-01-20T10:00:00Z")'),
|
|
106
|
+
duration: z
|
|
107
|
+
.number()
|
|
108
|
+
.optional()
|
|
109
|
+
.describe('Meeting duration in minutes (default: 60)'),
|
|
110
|
+
reviewMode: z
|
|
111
|
+
.enum(['since_last_review', 'last_week', 'last_days', 'custom'])
|
|
112
|
+
.optional()
|
|
113
|
+
.describe('Review period mode (default: since_last_review)'),
|
|
114
|
+
reviewDays: z
|
|
115
|
+
.number()
|
|
116
|
+
.optional()
|
|
117
|
+
.describe('Days to look back (for last_days mode)'),
|
|
118
|
+
reviewFrom: z
|
|
119
|
+
.string()
|
|
120
|
+
.optional()
|
|
121
|
+
.describe('Review start date in ISO 8601 (for custom mode)'),
|
|
122
|
+
reviewTo: z
|
|
123
|
+
.string()
|
|
124
|
+
.optional()
|
|
125
|
+
.describe('Review end date in ISO 8601 (for custom mode)'),
|
|
126
|
+
agendaItems: z
|
|
127
|
+
.array(z.object({
|
|
128
|
+
title: z.string().describe('Agenda item title'),
|
|
129
|
+
description: z.string().optional().describe('Agenda item description'),
|
|
130
|
+
workNodeIds: z
|
|
131
|
+
.array(z.number())
|
|
132
|
+
.optional()
|
|
133
|
+
.describe('Related WorkNode IDs'),
|
|
134
|
+
}))
|
|
135
|
+
.optional()
|
|
136
|
+
.describe('Agenda items for the meeting'),
|
|
137
|
+
participantUserIds: z
|
|
138
|
+
.array(z.string())
|
|
139
|
+
.optional()
|
|
140
|
+
.describe('Participant user IDs (fetch from workspace-members resource)'),
|
|
141
|
+
preview: z
|
|
142
|
+
.boolean()
|
|
143
|
+
.optional()
|
|
144
|
+
.describe('If true, preview only (does not create). Default: true'),
|
|
145
|
+
},
|
|
146
|
+
}, async (args) => {
|
|
147
|
+
const { workspaceId, title, scheduledAt, duration = 60, reviewMode = 'since_last_review', reviewDays, reviewFrom, reviewTo, agendaItems, participantUserIds, preview = true, } = args;
|
|
148
|
+
try {
|
|
149
|
+
const requestBody = {
|
|
150
|
+
workspaceId,
|
|
151
|
+
title,
|
|
152
|
+
scheduledAt,
|
|
153
|
+
duration,
|
|
154
|
+
reviewMode,
|
|
155
|
+
reviewDays,
|
|
156
|
+
reviewFrom,
|
|
157
|
+
reviewTo,
|
|
158
|
+
agendaItems,
|
|
159
|
+
participantUserIds,
|
|
160
|
+
};
|
|
161
|
+
if (preview) {
|
|
162
|
+
// Preview mode
|
|
163
|
+
const response = await apiClient.post('/mcp/meetings/preview', requestBody);
|
|
164
|
+
if (!response.success) {
|
|
165
|
+
return {
|
|
166
|
+
content: [
|
|
167
|
+
{
|
|
168
|
+
type: 'text',
|
|
169
|
+
text: JSON.stringify({
|
|
170
|
+
error: 'Failed to preview meeting',
|
|
171
|
+
message: response.message || 'Unknown error',
|
|
172
|
+
}),
|
|
173
|
+
},
|
|
174
|
+
],
|
|
175
|
+
isError: true,
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
const { meeting, review, agenda, participants } = response.data;
|
|
179
|
+
// Format completed WorkNodes for token efficiency
|
|
180
|
+
const completedSummary = review.completedWorkNodes.map(node => ({
|
|
181
|
+
id: node.id,
|
|
182
|
+
title: node.title,
|
|
183
|
+
type: node.nodeType,
|
|
184
|
+
status: node.status,
|
|
185
|
+
priority: node.priority,
|
|
186
|
+
completed: node.completedAt
|
|
187
|
+
? new Date(node.completedAt).toLocaleDateString()
|
|
188
|
+
: 'N/A',
|
|
189
|
+
}));
|
|
190
|
+
return {
|
|
191
|
+
content: [
|
|
192
|
+
{
|
|
193
|
+
type: 'text',
|
|
194
|
+
text: JSON.stringify({
|
|
195
|
+
preview: true,
|
|
196
|
+
meeting: {
|
|
197
|
+
title: meeting.title,
|
|
198
|
+
scheduledAt: new Date(meeting.scheduledAt).toLocaleString(),
|
|
199
|
+
duration: `${meeting.duration} minutes`,
|
|
200
|
+
workspaceId: meeting.workspaceId,
|
|
201
|
+
},
|
|
202
|
+
review: {
|
|
203
|
+
mode: review.mode,
|
|
204
|
+
period: {
|
|
205
|
+
from: new Date(review.period.from).toLocaleDateString(),
|
|
206
|
+
to: new Date(review.period.to).toLocaleDateString(),
|
|
207
|
+
},
|
|
208
|
+
totalCompleted: review.totalCompleted,
|
|
209
|
+
completedWorkNodes: completedSummary,
|
|
210
|
+
},
|
|
211
|
+
agenda: agenda.map((item, i) => ({
|
|
212
|
+
order: i + 1,
|
|
213
|
+
title: item.title,
|
|
214
|
+
description: item.description,
|
|
215
|
+
relatedWorkNodes: item.workNodeIds?.length || 0,
|
|
216
|
+
})),
|
|
217
|
+
participants: participants.map(p => ({
|
|
218
|
+
name: p.name || p.email,
|
|
219
|
+
email: p.email,
|
|
220
|
+
userId: p.userId,
|
|
221
|
+
})),
|
|
222
|
+
nextSteps: [
|
|
223
|
+
'1. Review the completed WorkNodes and confirm the review period',
|
|
224
|
+
'2. Add or modify agenda items if needed',
|
|
225
|
+
'3. Select participants from workspace members',
|
|
226
|
+
'4. Call this tool again with preview: false to create',
|
|
227
|
+
],
|
|
228
|
+
}, null, 2),
|
|
229
|
+
},
|
|
230
|
+
],
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
// Create mode
|
|
235
|
+
const response = await apiClient.post('/mcp/meetings', requestBody);
|
|
236
|
+
if (!response.success) {
|
|
237
|
+
return {
|
|
238
|
+
content: [
|
|
239
|
+
{
|
|
240
|
+
type: 'text',
|
|
241
|
+
text: JSON.stringify({
|
|
242
|
+
error: 'Failed to create meeting',
|
|
243
|
+
message: response.message || 'Unknown error',
|
|
244
|
+
}),
|
|
245
|
+
},
|
|
246
|
+
],
|
|
247
|
+
isError: true,
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
const { meeting, review, agenda, participants } = response.data;
|
|
251
|
+
return {
|
|
252
|
+
content: [
|
|
253
|
+
{
|
|
254
|
+
type: 'text',
|
|
255
|
+
text: JSON.stringify({
|
|
256
|
+
success: true,
|
|
257
|
+
meeting: {
|
|
258
|
+
id: meeting.id,
|
|
259
|
+
title: meeting.title,
|
|
260
|
+
scheduledAt: new Date(meeting.scheduledAt).toLocaleString(),
|
|
261
|
+
duration: `${meeting.duration} minutes`,
|
|
262
|
+
status: meeting.status,
|
|
263
|
+
workspaceId: meeting.workspaceId,
|
|
264
|
+
},
|
|
265
|
+
review: {
|
|
266
|
+
id: review.id,
|
|
267
|
+
period: {
|
|
268
|
+
from: new Date(review.period.from).toLocaleDateString(),
|
|
269
|
+
to: new Date(review.period.to).toLocaleDateString(),
|
|
270
|
+
},
|
|
271
|
+
totalCompleted: review.totalCompleted,
|
|
272
|
+
},
|
|
273
|
+
agenda: agenda.map((item, i) => ({
|
|
274
|
+
id: item.id,
|
|
275
|
+
order: i + 1,
|
|
276
|
+
title: item.title,
|
|
277
|
+
description: item.description,
|
|
278
|
+
})),
|
|
279
|
+
participants: participants.map(p => ({
|
|
280
|
+
name: p.name || p.email,
|
|
281
|
+
email: p.email,
|
|
282
|
+
userId: p.userId,
|
|
283
|
+
invitedAt: new Date(p.invitedAt).toLocaleString(),
|
|
284
|
+
})),
|
|
285
|
+
message: `Meeting created successfully! ID: ${meeting.id}`,
|
|
286
|
+
}, null, 2),
|
|
287
|
+
},
|
|
288
|
+
],
|
|
289
|
+
};
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
catch (error) {
|
|
293
|
+
return {
|
|
294
|
+
content: [
|
|
295
|
+
{
|
|
296
|
+
type: 'text',
|
|
297
|
+
text: JSON.stringify({
|
|
298
|
+
error: preview ? 'Failed to preview meeting' : 'Failed to create meeting',
|
|
299
|
+
message: error.message,
|
|
300
|
+
details: error.response?.data || error,
|
|
301
|
+
}),
|
|
302
|
+
},
|
|
303
|
+
],
|
|
304
|
+
isError: true,
|
|
305
|
+
};
|
|
306
|
+
}
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
//# sourceMappingURL=meeting-create-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meeting-create-tool.js","sourceRoot":"","sources":["../../src/tools/meeting-create-tool.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA0ExB;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAiB,EAAE,SAAoB;IAC/E,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uEA2FoD;QACjE,WAAW,EAAE;YACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;YAC3D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;YAC3E,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,QAAQ,CAAC,uEAAuE,CAAC;YACpF,QAAQ,EAAE,CAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,2CAA2C,CAAC;YACxD,UAAU,EAAE,CAAC;iBACV,IAAI,CAAC,CAAC,mBAAmB,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;iBAC/D,QAAQ,EAAE;iBACV,QAAQ,CAAC,iDAAiD,CAAC;YAC9D,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,wCAAwC,CAAC;YACrD,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,iDAAiD,CAAC;YAC9D,QAAQ,EAAE,CAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,+CAA+C,CAAC;YAC5D,WAAW,EAAE,CAAC;iBACX,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;gBACP,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;gBAC/C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;gBACtE,WAAW,EAAE,CAAC;qBACX,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;qBACjB,QAAQ,EAAE;qBACV,QAAQ,CAAC,sBAAsB,CAAC;aACpC,CAAC,CACH;iBACA,QAAQ,EAAE;iBACV,QAAQ,CAAC,8BAA8B,CAAC;YAC3C,kBAAkB,EAAE,CAAC;iBAClB,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,EAAE;iBACV,QAAQ,CAAC,8DAA8D,CAAC;YAC3E,OAAO,EAAE,CAAC;iBACP,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,wDAAwD,CAAC;SACtE;KACF,EACD,KAAK,EAAE,IAAyB,EAAE,EAAE;QAClC,MAAM,EACJ,WAAW,EACX,KAAK,EACL,WAAW,EACX,QAAQ,GAAG,EAAE,EACb,UAAU,GAAG,mBAAmB,EAChC,UAAU,EACV,UAAU,EACV,QAAQ,EACR,WAAW,EACX,kBAAkB,EAClB,OAAO,GAAG,IAAI,GACf,GAAG,IAAI,CAAC;QAET,IAAI,CAAC;YACH,MAAM,WAAW,GAAG;gBAClB,WAAW;gBACX,KAAK;gBACL,WAAW;gBACX,QAAQ;gBACR,UAAU;gBACV,UAAU;gBACV,UAAU;gBACV,QAAQ;gBACR,WAAW;gBACX,kBAAkB;aACnB,CAAC;YAEF,IAAI,OAAO,EAAE,CAAC;gBACZ,eAAe;gBACf,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,IAAI,CACnC,uBAAuB,EACvB,WAAW,CACZ,CAAC;gBAEF,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;oBACtB,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oCACnB,KAAK,EAAE,2BAA2B;oCAClC,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,eAAe;iCAC7C,CAAC;6BACH;yBACF;wBACD,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;gBAED,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC;gBAEhE,kDAAkD;gBAClD,MAAM,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC9D,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,IAAI,EAAE,IAAI,CAAC,QAAQ;oBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,SAAS,EAAE,IAAI,CAAC,WAAW;wBACzB,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,kBAAkB,EAAE;wBACjD,CAAC,CAAC,KAAK;iBACV,CAAC,CAAC,CAAC;gBAEJ,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;gCACE,OAAO,EAAE,IAAI;gCACb,OAAO,EAAE;oCACP,KAAK,EAAE,OAAO,CAAC,KAAK;oCACpB,WAAW,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,cAAc,EAAE;oCAC3D,QAAQ,EAAE,GAAG,OAAO,CAAC,QAAQ,UAAU;oCACvC,WAAW,EAAE,OAAO,CAAC,WAAW;iCACjC;gCACD,MAAM,EAAE;oCACN,IAAI,EAAE,MAAM,CAAC,IAAI;oCACjB,MAAM,EAAE;wCACN,IAAI,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE;wCACvD,EAAE,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,kBAAkB,EAAE;qCACpD;oCACD,cAAc,EAAE,MAAM,CAAC,cAAc;oCACrC,kBAAkB,EAAE,gBAAgB;iCACrC;gCACD,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;oCAC/B,KAAK,EAAE,CAAC,GAAG,CAAC;oCACZ,KAAK,EAAE,IAAI,CAAC,KAAK;oCACjB,WAAW,EAAE,IAAI,CAAC,WAAW;oCAC7B,gBAAgB,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC;iCAChD,CAAC,CAAC;gCACH,YAAY,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oCACnC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK;oCACvB,KAAK,EAAE,CAAC,CAAC,KAAK;oCACd,MAAM,EAAE,CAAC,CAAC,MAAM;iCACjB,CAAC,CAAC;gCACH,SAAS,EAAE;oCACT,iEAAiE;oCACjE,yCAAyC;oCACzC,+CAA+C;oCAC/C,uDAAuD;iCACxD;6BACF,EACD,IAAI,EACJ,CAAC,CACF;yBACF;qBACF;iBACF,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,cAAc;gBACd,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,IAAI,CACnC,eAAe,EACf,WAAW,CACZ,CAAC;gBAEF,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;oBACtB,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oCACnB,KAAK,EAAE,0BAA0B;oCACjC,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,eAAe;iCAC7C,CAAC;6BACH;yBACF;wBACD,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;gBAED,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC;gBAEhE,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;gCACE,OAAO,EAAE,IAAI;gCACb,OAAO,EAAE;oCACP,EAAE,EAAE,OAAO,CAAC,EAAE;oCACd,KAAK,EAAE,OAAO,CAAC,KAAK;oCACpB,WAAW,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,cAAc,EAAE;oCAC3D,QAAQ,EAAE,GAAG,OAAO,CAAC,QAAQ,UAAU;oCACvC,MAAM,EAAE,OAAO,CAAC,MAAM;oCACtB,WAAW,EAAE,OAAO,CAAC,WAAW;iCACjC;gCACD,MAAM,EAAE;oCACN,EAAE,EAAE,MAAM,CAAC,EAAE;oCACb,MAAM,EAAE;wCACN,IAAI,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE;wCACvD,EAAE,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,kBAAkB,EAAE;qCACpD;oCACD,cAAc,EAAE,MAAM,CAAC,cAAc;iCACtC;gCACD,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;oCAC/B,EAAE,EAAE,IAAI,CAAC,EAAE;oCACX,KAAK,EAAE,CAAC,GAAG,CAAC;oCACZ,KAAK,EAAE,IAAI,CAAC,KAAK;oCACjB,WAAW,EAAE,IAAI,CAAC,WAAW;iCAC9B,CAAC,CAAC;gCACH,YAAY,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oCACnC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK;oCACvB,KAAK,EAAE,CAAC,CAAC,KAAK;oCACd,MAAM,EAAE,CAAC,CAAC,MAAM;oCAChB,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE;iCAClD,CAAC,CAAC;gCACH,OAAO,EAAE,qCAAqC,OAAO,CAAC,EAAE,EAAE;6BAC3D,EACD,IAAI,EACJ,CAAC,CACF;yBACF;qBACF;iBACF,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,0BAA0B;4BACzE,OAAO,EAAE,KAAK,CAAC,OAAO;4BACtB,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,IAAI,KAAK;yBACvC,CAAC;qBACH;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,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 Decisions Tools for LLM-invoked operations
|
|
5
|
+
*/
|
|
6
|
+
export declare function registerMeetingDecisionsTools(server: McpServer, apiClient: ApiClient): void;
|
|
7
|
+
//# sourceMappingURL=meeting-decisions-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meeting-decisions-tool.d.ts","sourceRoot":"","sources":["../../src/tools/meeting-decisions-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAM3D;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,QA4bpF"}
|