teamflect-mcp-server 1.0.8 → 1.0.10
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feedbacks.d.ts","sourceRoot":"","sources":["../../src/tools/feedbacks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAK9D;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,kBAAkB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"feedbacks.d.ts","sourceRoot":"","sources":["../../src/tools/feedbacks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAK9D;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,kBAAkB,GAAG,IAAI,CA4X5F"}
|
package/dist/tools/feedbacks.js
CHANGED
|
@@ -8,15 +8,16 @@ import { DEFAULT_PAGE_SIZE, MAX_PAGE_SIZE, CHARACTER_LIMIT } from "../constants.
|
|
|
8
8
|
export function registerFeedbackTools(server, apiClient) {
|
|
9
9
|
// Get Feedbacks Schema
|
|
10
10
|
const GetFeedbacksInputSchema = z.object({
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
feedbackAboutUPN: z.string().email().optional().describe("User Principal Name (email) of the user the feedback is about"),
|
|
12
|
+
feedbackSubmittedByUPN: z.string().email().optional().describe("User Principal Name (email) of the user who submitted the feedback"),
|
|
13
|
+
startDate: z.string().optional().describe("Start date for filtering feedbacks (date format)"),
|
|
14
|
+
endDate: z.string().optional().describe("End date for filtering feedbacks (date format)"),
|
|
15
|
+
relatedReviewId: z.string().optional().describe("Review ID to filter feedbacks by"),
|
|
16
|
+
related360DegreeFeedbackId: z.string().optional().describe("360 Feedback ID to filter feedbacks by"),
|
|
16
17
|
limit: z.number().int().min(1).max(MAX_PAGE_SIZE).default(DEFAULT_PAGE_SIZE)
|
|
17
|
-
.describe("Maximum number of
|
|
18
|
-
|
|
19
|
-
.describe("Number of
|
|
18
|
+
.describe("Maximum number of items to return"),
|
|
19
|
+
skip: z.number().int().min(0).default(0)
|
|
20
|
+
.describe("Number of items to skip for pagination"),
|
|
20
21
|
response_format: z.nativeEnum(ResponseFormat).default(ResponseFormat.MARKDOWN)
|
|
21
22
|
.describe("Output format: 'markdown' for human-readable or 'json' for machine-readable"),
|
|
22
23
|
}).strict();
|
|
@@ -24,16 +25,17 @@ export function registerFeedbackTools(server, apiClient) {
|
|
|
24
25
|
title: "Get Feedbacks",
|
|
25
26
|
description: `Retrieve a list of feedbacks from Teamflect based on filters.
|
|
26
27
|
|
|
27
|
-
This tool searches for feedbacks matching the specified criteria. You can filter by
|
|
28
|
+
This tool searches for feedbacks matching the specified criteria. You can filter by the person the feedback is about, who submitted it, date ranges, and related reviews or 360 feedbacks. Results are paginated.
|
|
28
29
|
|
|
29
30
|
Args:
|
|
30
|
-
-
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
-
|
|
34
|
-
-
|
|
35
|
-
-
|
|
36
|
-
-
|
|
31
|
+
- feedbackAboutUPN (string, optional): User Principal Name (email) of the user the feedback is about
|
|
32
|
+
- feedbackSubmittedByUPN (string, optional): User Principal Name (email) of the user who submitted the feedback
|
|
33
|
+
- startDate (string, optional): Start date for filtering feedbacks (date format)
|
|
34
|
+
- endDate (string, optional): End date for filtering feedbacks (date format)
|
|
35
|
+
- relatedReviewId (string, optional): Review ID to filter feedbacks by
|
|
36
|
+
- related360DegreeFeedbackId (string, optional): 360 Feedback ID to filter feedbacks by
|
|
37
|
+
- limit (number, optional): Maximum number of items to return, between 1-500 (default: 200)
|
|
38
|
+
- skip (number, optional): Number of items to skip for pagination (default: 0)
|
|
37
39
|
- response_format ('markdown' | 'json', optional): Output format (default: 'markdown')
|
|
38
40
|
|
|
39
41
|
Returns:
|
|
@@ -80,56 +82,35 @@ Error Handling:
|
|
|
80
82
|
},
|
|
81
83
|
}, async (params) => {
|
|
82
84
|
try {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
+
const queryParams = {
|
|
86
|
+
limit: params.limit,
|
|
87
|
+
skip: params.skip,
|
|
88
|
+
};
|
|
89
|
+
if (params.feedbackAboutUPN)
|
|
90
|
+
queryParams.feedbackAboutUPN = params.feedbackAboutUPN;
|
|
91
|
+
if (params.feedbackSubmittedByUPN)
|
|
92
|
+
queryParams.feedbackSubmittedByUPN = params.feedbackSubmittedByUPN;
|
|
93
|
+
if (params.startDate)
|
|
94
|
+
queryParams.startDate = params.startDate;
|
|
95
|
+
if (params.endDate)
|
|
96
|
+
queryParams.endDate = params.endDate;
|
|
97
|
+
if (params.relatedReviewId)
|
|
98
|
+
queryParams.relatedReviewId = params.relatedReviewId;
|
|
99
|
+
if (params.related360DegreeFeedbackId)
|
|
100
|
+
queryParams.related360DegreeFeedbackId = params.related360DegreeFeedbackId;
|
|
101
|
+
const response = await apiClient.get("/feedback/getFeedbacks", queryParams);
|
|
85
102
|
// Handle both array response and object response formats
|
|
86
|
-
|
|
103
|
+
const allFeedbacks = Array.isArray(response)
|
|
87
104
|
? response
|
|
88
105
|
: response.feedbacks || [];
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
feedbacks = feedbacks.filter((f) => {
|
|
93
|
-
const aboutEmail = f.about?.mail || f.about?.userPrincipalName || "";
|
|
94
|
-
return aboutEmail.toLowerCase() === params.aboutEmail.toLowerCase();
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
if (params.submittedByEmail) {
|
|
98
|
-
feedbacks = feedbacks.filter((f) => {
|
|
99
|
-
const submittedEmail = f.submittedBy?.userPrincipalName || f.submittedBy?.mail || "";
|
|
100
|
-
return submittedEmail.toLowerCase() === params.submittedByEmail.toLowerCase();
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
if (params.status) {
|
|
104
|
-
feedbacks = feedbacks.filter((f) => f.status?.toLowerCase() === params.status.toLowerCase());
|
|
105
|
-
}
|
|
106
|
-
if (params.startDate) {
|
|
107
|
-
const start = new Date(params.startDate);
|
|
108
|
-
feedbacks = feedbacks.filter((f) => {
|
|
109
|
-
const createdAt = f.createdAt ? new Date(f.createdAt) : null;
|
|
110
|
-
return createdAt && createdAt >= start;
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
if (params.endDate) {
|
|
114
|
-
const end = new Date(params.endDate);
|
|
115
|
-
feedbacks = feedbacks.filter((f) => {
|
|
116
|
-
const createdAt = f.createdAt ? new Date(f.createdAt) : null;
|
|
117
|
-
return createdAt && createdAt <= end;
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
// Calculate total before pagination
|
|
121
|
-
const total = feedbacks.length;
|
|
122
|
-
// Apply pagination after filtering
|
|
123
|
-
const startIndex = params.offset;
|
|
124
|
-
const endIndex = startIndex + params.limit;
|
|
125
|
-
feedbacks = feedbacks.slice(startIndex, endIndex);
|
|
126
|
-
const hasMore = total > params.offset + feedbacks.length;
|
|
127
|
-
const nextOffset = hasMore ? params.offset + feedbacks.length : undefined;
|
|
106
|
+
const total = response.total ?? allFeedbacks.length;
|
|
107
|
+
const hasMore = total > params.skip + allFeedbacks.length;
|
|
108
|
+
const nextSkip = hasMore ? params.skip + allFeedbacks.length : undefined;
|
|
128
109
|
const output = {
|
|
129
110
|
total,
|
|
130
|
-
count:
|
|
131
|
-
|
|
132
|
-
feedbacks:
|
|
111
|
+
count: allFeedbacks.length,
|
|
112
|
+
skip: params.skip,
|
|
113
|
+
feedbacks: allFeedbacks.map((feedback) => ({
|
|
133
114
|
feedbackId: feedback.id || feedback.feedbackId || "",
|
|
134
115
|
about: feedback.about ? {
|
|
135
116
|
displayName: feedback.about.displayName || "",
|
|
@@ -144,17 +125,17 @@ Error Handling:
|
|
|
144
125
|
questions: feedback.questions || [],
|
|
145
126
|
})),
|
|
146
127
|
has_more: hasMore,
|
|
147
|
-
...(
|
|
128
|
+
...(nextSkip !== undefined ? { next_skip: nextSkip } : {}),
|
|
148
129
|
};
|
|
149
130
|
let textContent;
|
|
150
131
|
if (params.response_format === ResponseFormat.MARKDOWN) {
|
|
151
132
|
const lines = [`# Feedbacks (${total} total)`, ""];
|
|
152
|
-
if (
|
|
133
|
+
if (allFeedbacks.length === 0) {
|
|
153
134
|
lines.push("No feedbacks found matching the criteria.");
|
|
154
135
|
}
|
|
155
136
|
else {
|
|
156
|
-
lines.push(`Showing ${
|
|
157
|
-
|
|
137
|
+
lines.push(`Showing ${allFeedbacks.length} of ${total} feedbacks\n`);
|
|
138
|
+
allFeedbacks.forEach((feedback) => {
|
|
158
139
|
const feedbackId = feedback.id || feedback.feedbackId || "N/A";
|
|
159
140
|
lines.push(`## Feedback ${feedbackId}`);
|
|
160
141
|
if (feedback.about) {
|
|
@@ -184,7 +165,7 @@ Error Handling:
|
|
|
184
165
|
lines.push("");
|
|
185
166
|
});
|
|
186
167
|
if (hasMore) {
|
|
187
|
-
lines.push(`\n*Use
|
|
168
|
+
lines.push(`\n*Use skip=${nextSkip} to get more results*`);
|
|
188
169
|
}
|
|
189
170
|
}
|
|
190
171
|
textContent = lines.join("\n");
|
|
@@ -216,12 +197,12 @@ Error Handling:
|
|
|
216
197
|
});
|
|
217
198
|
// Send Feedback Request Schema
|
|
218
199
|
const SendFeedbackRequestInputSchema = z.object({
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
200
|
+
feedbackAboutUPNorId: z.string().describe("User Principal Name (email) or ID of the person the feedback is about"),
|
|
201
|
+
feedbackRequestReceiverUPNorId: z.string().describe("User Principal Name (email) or ID of the person who will receive the feedback request"),
|
|
202
|
+
feedbackNote: z.string().optional().describe("Note or message for the feedback request"),
|
|
203
|
+
templateTitle: z.string().optional().describe("Title of the feedback template"),
|
|
204
|
+
dueDateInDays: z.number().int().min(1).describe("Due date in days from now (e.g., 7 for 7 days)"),
|
|
205
|
+
isPrivate: z.boolean().optional().describe("Whether the feedback is private"),
|
|
225
206
|
response_format: z.nativeEnum(ResponseFormat).default(ResponseFormat.MARKDOWN)
|
|
226
207
|
.describe("Output format: 'markdown' for human-readable or 'json' for machine-readable"),
|
|
227
208
|
}).strict();
|
|
@@ -229,14 +210,15 @@ Error Handling:
|
|
|
229
210
|
title: "Send Feedback Request",
|
|
230
211
|
description: `Send a new feedback request in Teamflect.
|
|
231
212
|
|
|
232
|
-
This tool creates and sends a feedback request to collect feedback about a person.
|
|
213
|
+
This tool creates and sends a feedback request to collect feedback about a person.
|
|
233
214
|
|
|
234
215
|
Args:
|
|
235
|
-
-
|
|
236
|
-
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
-
|
|
216
|
+
- feedbackAboutUPNorId (string, required): User Principal Name (email) or ID of the person the feedback is about
|
|
217
|
+
- feedbackRequestReceiverUPNorId (string, required): User Principal Name (email) or ID of the person who will receive the feedback request
|
|
218
|
+
- feedbackNote (string, optional): Note or message for the feedback request
|
|
219
|
+
- templateTitle (string, optional): Title of the feedback template
|
|
220
|
+
- dueDateInDays (number, required): Due date in days from now (e.g., 7 for 7 days)
|
|
221
|
+
- isPrivate (boolean, optional): Whether the feedback is private
|
|
240
222
|
- response_format ('markdown' | 'json', optional): Output format (default: 'markdown')
|
|
241
223
|
|
|
242
224
|
Returns:
|
|
@@ -255,15 +237,24 @@ Error Handling:
|
|
|
255
237
|
}, async (params) => {
|
|
256
238
|
try {
|
|
257
239
|
const requestBody = {
|
|
258
|
-
feedbackAboutUPNorId: params.
|
|
259
|
-
feedbackRequestReceiverUPNorId: params.
|
|
260
|
-
|
|
261
|
-
dueDate: params.dueDate,
|
|
240
|
+
feedbackAboutUPNorId: params.feedbackAboutUPNorId,
|
|
241
|
+
feedbackRequestReceiverUPNorId: params.feedbackRequestReceiverUPNorId,
|
|
242
|
+
dueDateInDays: params.dueDateInDays,
|
|
262
243
|
};
|
|
244
|
+
// Add optional parameters if provided
|
|
245
|
+
if (params.feedbackNote !== undefined) {
|
|
246
|
+
requestBody.feedbackNote = params.feedbackNote;
|
|
247
|
+
}
|
|
248
|
+
if (params.templateTitle !== undefined) {
|
|
249
|
+
requestBody.templateTitle = params.templateTitle;
|
|
250
|
+
}
|
|
251
|
+
if (params.isPrivate !== undefined) {
|
|
252
|
+
requestBody.isPrivate = params.isPrivate;
|
|
253
|
+
}
|
|
263
254
|
const feedback = await apiClient.post("/feedback/sendFeedbackRequest", requestBody);
|
|
264
255
|
let textContent;
|
|
265
256
|
if (params.response_format === ResponseFormat.MARKDOWN) {
|
|
266
|
-
textContent = `# Feedback Request Sent\n\nFeedback request created successfully.\n\n- **Feedback ID**: ${feedback.feedbackId}\n- **Status**: ${feedback.status}\n- **About**: ${feedback.about?.displayName || params.
|
|
257
|
+
textContent = `# Feedback Request Sent\n\nFeedback request created successfully.\n\n- **Feedback ID**: ${feedback.feedbackId}\n- **Status**: ${feedback.status}\n- **About**: ${feedback.about?.displayName || params.feedbackAboutUPNorId}\n- **Receiver**: ${params.feedbackRequestReceiverUPNorId}\n- **Due Date**: ${params.dueDateInDays} days`;
|
|
267
258
|
}
|
|
268
259
|
else {
|
|
269
260
|
textContent = JSON.stringify(feedback, null, 2);
|
|
@@ -284,14 +275,14 @@ Error Handling:
|
|
|
284
275
|
});
|
|
285
276
|
// Send External Feedback Request Schema
|
|
286
277
|
const SendExternalFeedbackRequestInputSchema = z.object({
|
|
287
|
-
|
|
278
|
+
feedbackAboutUPNorId: z.string().describe("User Principal Name (email) or ID of the person the feedback is about"),
|
|
288
279
|
externalEmail: z.string().email().describe("Email address of the external person to request feedback from"),
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
})).min(1).describe("Array of questions to ask"),
|
|
280
|
+
onBehalfName: z.string().optional().describe("Name of the person on whose behalf the feedback is being sent"),
|
|
281
|
+
feedbackNote: z.string().optional().describe("Note or message for the feedback request"),
|
|
282
|
+
templateTitle: z.string().optional().describe("Title of the feedback template"),
|
|
293
283
|
dueDateInDays: z.number().int().min(1).describe("Due date in days from now (e.g., 7 for 7 days)"),
|
|
294
|
-
|
|
284
|
+
isPrivate: z.boolean().optional().describe("Whether the feedback is private"),
|
|
285
|
+
isAnonymous: z.boolean().optional().describe("Whether the feedback should be anonymous"),
|
|
295
286
|
response_format: z.nativeEnum(ResponseFormat).default(ResponseFormat.MARKDOWN)
|
|
296
287
|
.describe("Output format: 'markdown' for human-readable or 'json' for machine-readable"),
|
|
297
288
|
}).strict();
|
|
@@ -302,12 +293,14 @@ Error Handling:
|
|
|
302
293
|
This tool creates and sends a feedback request to an external person (someone outside your organization) to collect feedback about a person.
|
|
303
294
|
|
|
304
295
|
Args:
|
|
305
|
-
-
|
|
296
|
+
- feedbackAboutUPNorId (string, required): User Principal Name (email) or ID of the person the feedback is about
|
|
306
297
|
- externalEmail (string, required): Email address of the external person to request feedback from
|
|
307
|
-
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
-
|
|
298
|
+
- onBehalfName (string, optional): Name of the person on whose behalf the feedback is being sent
|
|
299
|
+
- feedbackNote (string, optional): Note or message for the feedback request
|
|
300
|
+
- templateTitle (string, optional): Title of the feedback template
|
|
301
|
+
- dueDateInDays (number, required): Due date in days from now (e.g., 7 for 7 days)
|
|
302
|
+
- isPrivate (boolean, optional): Whether the feedback is private
|
|
303
|
+
- isAnonymous (boolean, optional): Whether the feedback should be anonymous
|
|
311
304
|
- response_format ('markdown' | 'json', optional): Output format (default: 'markdown')
|
|
312
305
|
|
|
313
306
|
Returns:
|
|
@@ -326,30 +319,30 @@ Error Handling:
|
|
|
326
319
|
}, async (params) => {
|
|
327
320
|
try {
|
|
328
321
|
const requestBody = {
|
|
329
|
-
feedbackAboutUPNorId: params.
|
|
322
|
+
feedbackAboutUPNorId: params.feedbackAboutUPNorId,
|
|
330
323
|
externalEmail: params.externalEmail,
|
|
331
|
-
|
|
324
|
+
dueDateInDays: params.dueDateInDays,
|
|
332
325
|
};
|
|
333
|
-
//
|
|
334
|
-
if (params.
|
|
335
|
-
requestBody.
|
|
326
|
+
// Add optional parameters if provided
|
|
327
|
+
if (params.onBehalfName !== undefined) {
|
|
328
|
+
requestBody.onBehalfName = params.onBehalfName;
|
|
336
329
|
}
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
const dueDate = new Date(params.dueDate);
|
|
340
|
-
const now = new Date();
|
|
341
|
-
const diffTime = dueDate.getTime() - now.getTime();
|
|
342
|
-
const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
|
|
343
|
-
requestBody.dueDateInDays = Math.max(1, diffDays); // Ensure at least 1 day
|
|
330
|
+
if (params.feedbackNote !== undefined) {
|
|
331
|
+
requestBody.feedbackNote = params.feedbackNote;
|
|
344
332
|
}
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
333
|
+
if (params.templateTitle !== undefined) {
|
|
334
|
+
requestBody.templateTitle = params.templateTitle;
|
|
335
|
+
}
|
|
336
|
+
if (params.isPrivate !== undefined) {
|
|
337
|
+
requestBody.isPrivate = params.isPrivate;
|
|
338
|
+
}
|
|
339
|
+
if (params.isAnonymous !== undefined) {
|
|
340
|
+
requestBody.isAnonymous = params.isAnonymous;
|
|
348
341
|
}
|
|
349
342
|
const feedback = await apiClient.post("/feedback/sendExternalFeedbackRequest", requestBody);
|
|
350
343
|
let textContent;
|
|
351
344
|
if (params.response_format === ResponseFormat.MARKDOWN) {
|
|
352
|
-
textContent = `# External Feedback Request Sent\n\nExternal feedback request created successfully.\n\n- **Feedback ID**: ${feedback.feedbackId}\n- **Status**: ${feedback.status}\n- **About**: ${feedback.about?.displayName || params.
|
|
345
|
+
textContent = `# External Feedback Request Sent\n\nExternal feedback request created successfully.\n\n- **Feedback ID**: ${feedback.feedbackId}\n- **Status**: ${feedback.status}\n- **About**: ${feedback.about?.displayName || params.feedbackAboutUPNorId}\n- **External Email**: ${params.externalEmail}\n- **Due Date**: ${params.dueDateInDays} days`;
|
|
353
346
|
}
|
|
354
347
|
else {
|
|
355
348
|
textContent = JSON.stringify(feedback, null, 2);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feedbacks.js","sourceRoot":"","sources":["../../src/tools/feedbacks.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"feedbacks.js","sourceRoot":"","sources":["../../src/tools/feedbacks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reviews.d.ts","sourceRoot":"","sources":["../../src/tools/reviews.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAK9D;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,kBAAkB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"reviews.d.ts","sourceRoot":"","sources":["../../src/tools/reviews.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAK9D;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,kBAAkB,GAAG,IAAI,CA4M1F"}
|
package/dist/tools/reviews.js
CHANGED
|
@@ -8,15 +8,16 @@ import { DEFAULT_PAGE_SIZE, MAX_PAGE_SIZE, CHARACTER_LIMIT } from "../constants.
|
|
|
8
8
|
export function registerReviewTools(server, apiClient) {
|
|
9
9
|
// Get Reviews Schema
|
|
10
10
|
const GetReviewsInputSchema = z.object({
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
revieweeUPN: z.string().email().optional().describe("Filter by reviewee User Principal Name (email)"),
|
|
12
|
+
reviewerUPN: z.string().email().optional().describe("Filter by reviewer User Principal Name (email)"),
|
|
13
|
+
startDate: z.string().optional().describe("Filter by start date"),
|
|
14
|
+
endDate: z.string().optional().describe("Filter by end date (date format)"),
|
|
15
|
+
reviewCycle: z.string().optional().describe("Filter by review cycle"),
|
|
16
|
+
reviewTemplate: z.string().optional().describe("Filter by review template"),
|
|
16
17
|
limit: z.number().int().min(1).max(MAX_PAGE_SIZE).default(DEFAULT_PAGE_SIZE)
|
|
17
|
-
.describe("Maximum number of
|
|
18
|
-
|
|
19
|
-
.describe("Number of
|
|
18
|
+
.describe("Maximum number of items to return"),
|
|
19
|
+
skip: z.number().int().min(0).default(0)
|
|
20
|
+
.describe("Number of items to skip for pagination"),
|
|
20
21
|
response_format: z.nativeEnum(ResponseFormat).default(ResponseFormat.MARKDOWN)
|
|
21
22
|
.describe("Output format: 'markdown' for human-readable or 'json' for machine-readable"),
|
|
22
23
|
}).strict();
|
|
@@ -24,16 +25,17 @@ export function registerReviewTools(server, apiClient) {
|
|
|
24
25
|
title: "Get Reviews",
|
|
25
26
|
description: `Retrieve a list of reviews from Teamflect based on filters.
|
|
26
27
|
|
|
27
|
-
This tool searches for reviews matching the specified criteria. You can filter by reviewee, reviewer,
|
|
28
|
+
This tool searches for reviews matching the specified criteria. You can filter by reviewee, reviewer, date ranges, review cycle, and review template. Results are paginated.
|
|
28
29
|
|
|
29
30
|
Args:
|
|
30
|
-
-
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
-
|
|
34
|
-
-
|
|
35
|
-
-
|
|
36
|
-
-
|
|
31
|
+
- revieweeUPN (string, optional): Filter by reviewee User Principal Name (email)
|
|
32
|
+
- reviewerUPN (string, optional): Filter by reviewer User Principal Name (email)
|
|
33
|
+
- startDate (string, optional): Filter by start date
|
|
34
|
+
- endDate (string, optional): Filter by end date (date format)
|
|
35
|
+
- reviewCycle (string, optional): Filter by review cycle
|
|
36
|
+
- reviewTemplate (string, optional): Filter by review template
|
|
37
|
+
- limit (number, optional): Maximum number of items to return, between 1-500 (default: 200)
|
|
38
|
+
- skip (number, optional): Number of items to skip for pagination (default: 0)
|
|
37
39
|
- response_format ('markdown' | 'json', optional): Output format (default: 'markdown')
|
|
38
40
|
|
|
39
41
|
Returns:
|
|
@@ -76,54 +78,35 @@ Error Handling:
|
|
|
76
78
|
},
|
|
77
79
|
}, async (params) => {
|
|
78
80
|
try {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
if (params.
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
if (params.
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
const periodStart = r.periodStartDate ? new Date(r.periodStartDate) : null;
|
|
104
|
-
return periodStart && periodStart >= start;
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
if (params.endDate) {
|
|
108
|
-
const end = new Date(params.endDate);
|
|
109
|
-
reviews = reviews.filter((r) => {
|
|
110
|
-
const periodEnd = r.periodEndDate ? new Date(r.periodEndDate) : null;
|
|
111
|
-
return periodEnd && periodEnd <= end;
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
// Calculate total before pagination
|
|
115
|
-
const total = reviews.length;
|
|
116
|
-
// Apply pagination after filtering
|
|
117
|
-
const startIndex = params.offset;
|
|
118
|
-
const endIndex = startIndex + params.limit;
|
|
119
|
-
reviews = reviews.slice(startIndex, endIndex);
|
|
120
|
-
const hasMore = total > params.offset + reviews.length;
|
|
121
|
-
const nextOffset = hasMore ? params.offset + reviews.length : undefined;
|
|
81
|
+
const queryParams = {
|
|
82
|
+
limit: params.limit,
|
|
83
|
+
skip: params.skip,
|
|
84
|
+
};
|
|
85
|
+
if (params.revieweeUPN)
|
|
86
|
+
queryParams.revieweeUPN = params.revieweeUPN;
|
|
87
|
+
if (params.reviewerUPN)
|
|
88
|
+
queryParams.reviewerUPN = params.reviewerUPN;
|
|
89
|
+
if (params.startDate)
|
|
90
|
+
queryParams.startDate = params.startDate;
|
|
91
|
+
if (params.endDate)
|
|
92
|
+
queryParams.endDate = params.endDate;
|
|
93
|
+
if (params.reviewCycle)
|
|
94
|
+
queryParams.reviewCycle = params.reviewCycle;
|
|
95
|
+
if (params.reviewTemplate)
|
|
96
|
+
queryParams.reviewTemplate = params.reviewTemplate;
|
|
97
|
+
const response = await apiClient.get("/review/getReviews", queryParams);
|
|
98
|
+
// Handle both array response and object response formats
|
|
99
|
+
const allReviews = Array.isArray(response)
|
|
100
|
+
? response
|
|
101
|
+
: response.reviews || [];
|
|
102
|
+
const total = response.total ?? allReviews.length;
|
|
103
|
+
const hasMore = total > params.skip + allReviews.length;
|
|
104
|
+
const nextSkip = hasMore ? params.skip + allReviews.length : undefined;
|
|
122
105
|
const output = {
|
|
123
106
|
total,
|
|
124
|
-
count:
|
|
125
|
-
|
|
126
|
-
reviews:
|
|
107
|
+
count: allReviews.length,
|
|
108
|
+
skip: params.skip,
|
|
109
|
+
reviews: allReviews.map((review) => ({
|
|
127
110
|
reviewId: review.id || review.reviewId || "",
|
|
128
111
|
reviewee: review.reviewee ? {
|
|
129
112
|
displayName: review.reviewee.displayName || "",
|
|
@@ -146,17 +129,17 @@ Error Handling:
|
|
|
146
129
|
createdBy: review.createdBy || null,
|
|
147
130
|
})),
|
|
148
131
|
has_more: hasMore,
|
|
149
|
-
...(
|
|
132
|
+
...(nextSkip !== undefined ? { next_skip: nextSkip } : {}),
|
|
150
133
|
};
|
|
151
134
|
let textContent;
|
|
152
135
|
if (params.response_format === ResponseFormat.MARKDOWN) {
|
|
153
136
|
const lines = [`# Reviews (${total} total)`, ""];
|
|
154
|
-
if (
|
|
137
|
+
if (allReviews.length === 0) {
|
|
155
138
|
lines.push("No reviews found matching the criteria.");
|
|
156
139
|
}
|
|
157
140
|
else {
|
|
158
|
-
lines.push(`Showing ${
|
|
159
|
-
|
|
141
|
+
lines.push(`Showing ${allReviews.length} of ${total} reviews\n`);
|
|
142
|
+
allReviews.forEach((review) => {
|
|
160
143
|
const reviewId = review.id || review.reviewId || "N/A";
|
|
161
144
|
lines.push(`## Review ${reviewId}`);
|
|
162
145
|
if (review.reviewee) {
|
|
@@ -190,7 +173,7 @@ Error Handling:
|
|
|
190
173
|
lines.push("");
|
|
191
174
|
});
|
|
192
175
|
if (hasMore) {
|
|
193
|
-
lines.push(`\n*Use
|
|
176
|
+
lines.push(`\n*Use skip=${nextSkip} to get more results*`);
|
|
194
177
|
}
|
|
195
178
|
}
|
|
196
179
|
textContent = lines.join("\n");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reviews.js","sourceRoot":"","sources":["../../src/tools/reviews.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAmB,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEpF;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,SAA6B;IAClF,qBAAqB;IACrB,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;QACrC,
|
|
1
|
+
{"version":3,"file":"reviews.js","sourceRoot":"","sources":["../../src/tools/reviews.ts"],"names":[],"mappings":"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"}
|