@codegame.dev/careerflow-mcp 1.1.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.
Files changed (47) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +398 -0
  3. package/dist/client.js +110 -0
  4. package/dist/client.js.map +1 -0
  5. package/dist/config.js +37 -0
  6. package/dist/config.js.map +1 -0
  7. package/dist/helpers.js +192 -0
  8. package/dist/helpers.js.map +1 -0
  9. package/dist/index.js +194 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/setup.js +296 -0
  12. package/dist/setup.js.map +1 -0
  13. package/dist/tools/admin.js +232 -0
  14. package/dist/tools/admin.js.map +1 -0
  15. package/dist/tools/benefit-funds.js +243 -0
  16. package/dist/tools/benefit-funds.js.map +1 -0
  17. package/dist/tools/chat-extra.js +172 -0
  18. package/dist/tools/chat-extra.js.map +1 -0
  19. package/dist/tools/chat.js +125 -0
  20. package/dist/tools/chat.js.map +1 -0
  21. package/dist/tools/cms.js +145 -0
  22. package/dist/tools/cms.js.map +1 -0
  23. package/dist/tools/crm-admin.js +269 -0
  24. package/dist/tools/crm-admin.js.map +1 -0
  25. package/dist/tools/crm.js +632 -0
  26. package/dist/tools/crm.js.map +1 -0
  27. package/dist/tools/dev-tickets.js +94 -0
  28. package/dist/tools/dev-tickets.js.map +1 -0
  29. package/dist/tools/forms.js +105 -0
  30. package/dist/tools/forms.js.map +1 -0
  31. package/dist/tools/hr.js +517 -0
  32. package/dist/tools/hr.js.map +1 -0
  33. package/dist/tools/kanban-extra.js +403 -0
  34. package/dist/tools/kanban-extra.js.map +1 -0
  35. package/dist/tools/misc.js +159 -0
  36. package/dist/tools/misc.js.map +1 -0
  37. package/dist/tools/projects.js +138 -0
  38. package/dist/tools/projects.js.map +1 -0
  39. package/dist/tools/tasks.js +342 -0
  40. package/dist/tools/tasks.js.map +1 -0
  41. package/dist/tools/time.js +129 -0
  42. package/dist/tools/time.js.map +1 -0
  43. package/dist/tools/workplace.js +110 -0
  44. package/dist/tools/workplace.js.map +1 -0
  45. package/dist/tools/workspace.js +199 -0
  46. package/dist/tools/workspace.js.map +1 -0
  47. package/package.json +61 -0
@@ -0,0 +1,517 @@
1
+ import { z } from "zod";
2
+ import { boolParam, companyIdSchema, currentUserId, extractList, resolveCompanyId, safeHandler, textResult } from "../helpers.js";
3
+ /**
4
+ * Disciplinary notes are flat rows with no nested sub-objects, but repeat a
5
+ * name/staff-number/last_activity block twice per row (once for the issuer,
6
+ * once for the subject user) alongside ~15 penalty-escalation bookkeeping
7
+ * columns an assistant doesn't need to reason about.
8
+ */
9
+ function summariseDisciplinaryNote(n) {
10
+ return {
11
+ id: n.id,
12
+ type: n.type,
13
+ status: n.status,
14
+ content: n.content,
15
+ penalty_type: n.penalty_type ?? undefined,
16
+ penalty_point: n.penalty_point ?? undefined,
17
+ penalty_message: n.penalty_message || undefined,
18
+ is_applied: Boolean(n.is_applied),
19
+ is_done: Boolean(n.is_done),
20
+ user_id: n.user_id,
21
+ user_name: [n.user_firstname, n.user_lastname].filter(Boolean).join(" ") || undefined,
22
+ user_staff_number: n.user_staff_number_with_prefix || n.user_staff_number || undefined,
23
+ issuer_id: n.issuer_id ?? undefined,
24
+ issuer_name: [n.issuer_firstname, n.issuer_lastname].filter(Boolean).join(" ") || undefined,
25
+ accepted_at: n.accepted_at || undefined,
26
+ created: n.created,
27
+ updated: n.updated
28
+ };
29
+ }
30
+ /**
31
+ * Administrative notes carry a creator contact block on the note itself and
32
+ * another sender/recipient contact block (name/staff-number/last_activity +
33
+ * 2 image sizes each) per referral, plus a referral-scoped attachments array.
34
+ * A list result only needs enough to identify the note and who it's between —
35
+ * get_administrative_note fetches the full referral/attachment detail.
36
+ */
37
+ function summariseAdministrativeNote(n) {
38
+ return {
39
+ id: n.id,
40
+ subject: n.subject,
41
+ priority: n.priority,
42
+ status: n.status,
43
+ is_archived: Boolean(n.is_archived),
44
+ creator_id: n.creator_id,
45
+ creator_name: [n.creator_firstname, n.creator_lastname].filter(Boolean).join(" ") || undefined,
46
+ recipients: Array.isArray(n.referrals)
47
+ ? n.referrals.map((r) => ({
48
+ recipient_id: r.recipient_id,
49
+ recipient_name: [r.recipient_firstname, r.recipient_lastname].filter(Boolean).join(" ") || undefined
50
+ }))
51
+ : undefined,
52
+ released_at: n.released_at || undefined,
53
+ created: n.created,
54
+ updated: n.updated
55
+ };
56
+ }
57
+ /** Trims a cafeteria meal-schedule row to what a caller needs to reserve or report on it. */
58
+ function summariseFoodSchedule(s) {
59
+ return {
60
+ id: s.id,
61
+ food_id: s.food_id,
62
+ food_date: s.food_date,
63
+ meal_type: s.meal_type,
64
+ max_capacity: s.max_capacity ?? undefined,
65
+ reservation_count: s.reservation_count ?? undefined,
66
+ price: s.price ?? undefined,
67
+ is_active: Boolean(s.is_active),
68
+ my_reservation: s.my_reservation ?? undefined
69
+ };
70
+ }
71
+ /**
72
+ * HR and people-ops tools: payroll and performance-review reading, disciplinary
73
+ * and administrative notes, careers/recruiting, onboarding, cafeteria
74
+ * reservations, and mood check-ins.
75
+ *
76
+ * Payroll and performance-review rows are created only from an HR-uploaded
77
+ * spreadsheet on the web app, and carry penalty/escalation logic that is easy
78
+ * to get wrong from the outside — this module intentionally reads them and
79
+ * lets a user respond to their own (accept/reject), but does not expose
80
+ * bulk-creation, column configuration, or penalty apply/undo.
81
+ */
82
+ export function registerHrTools(server, client) {
83
+ // -------------------------------------------------------------- payroll
84
+ server.registerTool("list_my_payrolls", {
85
+ title: "List my payroll and reward slips",
86
+ description: "List the authenticated user's payroll (salary) and reward slips.",
87
+ inputSchema: {
88
+ company_id: companyIdSchema,
89
+ pay_date: z.string().optional().describe("YYYY-MM, filter to one month."),
90
+ status: z.enum(["pending", "accepted", "rejected"]).optional(),
91
+ limit: z.number().int().min(1).max(50).optional().default(10),
92
+ page: z.number().int().min(1).optional().default(1)
93
+ }
94
+ }, safeHandler(async (args) => {
95
+ const companyId = resolveCompanyId(client, args.company_id);
96
+ const myId = await currentUserId(client);
97
+ const response = await client.get("payrolls/search", {
98
+ company_id: companyId,
99
+ user_id: myId,
100
+ pay_date: args.pay_date,
101
+ status: args.status,
102
+ limit: args.limit,
103
+ page: args.page
104
+ });
105
+ const { items, total } = extractList(response.data, "payrolls");
106
+ return textResult({
107
+ count: total ?? items.length,
108
+ payrolls: items.map((p) => ({
109
+ id: p.id,
110
+ pay_date: p.pay_date,
111
+ status: p.status,
112
+ group_type: p.group_type,
113
+ content: p.content,
114
+ reject_reason: p.reject_reason || undefined,
115
+ admin_answer: p.admin_answer || undefined
116
+ }))
117
+ });
118
+ }));
119
+ server.registerTool("respond_to_payroll", {
120
+ title: "Accept or reject a payroll slip",
121
+ description: "Accept or reject one of your own pending/rejected payroll or reward slips.",
122
+ inputSchema: {
123
+ company_id: companyIdSchema,
124
+ payroll_id: z.number().int(),
125
+ status: z.enum(["accepted", "rejected"]),
126
+ reject_reason: z.string().optional(),
127
+ reject_options: z.array(z.string()).optional()
128
+ }
129
+ }, safeHandler(async (args) => {
130
+ const companyId = resolveCompanyId(client, args.company_id);
131
+ const response = await client.post("payrolls/update", {
132
+ company_id: companyId,
133
+ id: args.payroll_id,
134
+ status: args.status,
135
+ reject_reason: args.reject_reason,
136
+ reject_options: args.reject_options ? JSON.stringify(args.reject_options) : undefined
137
+ });
138
+ return textResult({ payroll_id: args.payroll_id, status: args.status, payroll: response.data });
139
+ }));
140
+ server.registerTool("list_my_performance_reviews", {
141
+ title: "List my performance reviews",
142
+ description: "List the authenticated user's performance review slips.",
143
+ inputSchema: {
144
+ company_id: companyIdSchema,
145
+ sent_date: z.string().optional().describe("YYYY-MM, filter to one month."),
146
+ status: z.enum(["pending", "accepted", "rejected"]).optional(),
147
+ limit: z.number().int().min(1).max(50).optional().default(10),
148
+ page: z.number().int().min(1).optional().default(1)
149
+ }
150
+ }, safeHandler(async (args) => {
151
+ const companyId = resolveCompanyId(client, args.company_id);
152
+ const myId = await currentUserId(client);
153
+ const response = await client.get("performance-reviews/search", {
154
+ company_id: companyId,
155
+ user_id: myId,
156
+ sent_date: args.sent_date,
157
+ status: args.status,
158
+ limit: args.limit,
159
+ page: args.page
160
+ });
161
+ const { items, total } = extractList(response.data, "performance_reviews");
162
+ return textResult({
163
+ count: total ?? items.length,
164
+ performance_reviews: items.map((p) => ({
165
+ id: p.id,
166
+ sent_date: p.sent_date,
167
+ status: p.status,
168
+ content: p.content,
169
+ reject_reason: p.reject_reason || undefined,
170
+ admin_answer: p.admin_answer || undefined
171
+ }))
172
+ });
173
+ }));
174
+ server.registerTool("respond_to_performance_review", {
175
+ title: "Accept or reject a performance review",
176
+ description: "Accept or reject one of your own pending/rejected performance reviews.",
177
+ inputSchema: {
178
+ company_id: companyIdSchema,
179
+ review_id: z.number().int(),
180
+ status: z.enum(["accepted", "rejected"]),
181
+ reject_reason: z.string().optional(),
182
+ reject_options: z.array(z.string()).optional()
183
+ }
184
+ }, safeHandler(async (args) => {
185
+ const companyId = resolveCompanyId(client, args.company_id);
186
+ const response = await client.post("performance-reviews/update", {
187
+ company_id: companyId,
188
+ id: args.review_id,
189
+ status: args.status,
190
+ reject_reason: args.reject_reason,
191
+ reject_options: args.reject_options ? JSON.stringify(args.reject_options) : undefined
192
+ });
193
+ return textResult({ review_id: args.review_id, status: args.status, review: response.data });
194
+ }));
195
+ // ------------------------------------------------------- disciplinary notes
196
+ server.registerTool("list_disciplinary_notes", {
197
+ title: "List disciplinary notes",
198
+ description: "List disciplinary notes. A regular user sees only their own visible notes; a supervisor " +
199
+ "with the right permission can see a company's notes by type.",
200
+ inputSchema: {
201
+ company_id: companyIdSchema,
202
+ user_id: z.number().int().optional(),
203
+ type: z.number().int().optional().describe("Penalty category id."),
204
+ status: z.enum(["pending", "accepted", "rejected"]).optional(),
205
+ limit: z.number().int().min(1).max(50).optional().default(10),
206
+ page: z.number().int().min(1).optional().default(1)
207
+ }
208
+ }, safeHandler(async (args) => {
209
+ const companyId = resolveCompanyId(client, args.company_id);
210
+ const response = await client.get("disciplinary-notes/search", {
211
+ company_id: companyId,
212
+ user_id: args.user_id,
213
+ type: args.type,
214
+ status: args.status,
215
+ limit: args.limit,
216
+ page: args.page
217
+ });
218
+ const { items, total } = extractList(response.data, "disciplinary_notes");
219
+ return textResult({ count: total ?? items.length, notes: items.map(summariseDisciplinaryNote) });
220
+ }));
221
+ server.registerTool("estimate_disciplinary_penalty", {
222
+ title: "Preview a disciplinary note's penalty",
223
+ description: "Preview what penalty tier a new disciplinary note would land on for a user, without " +
224
+ "creating it. The tier (verbal warning, written warning, penalty points, disciplinary " +
225
+ "committee) escalates automatically based on the user's history — it is not something " +
226
+ "you choose directly.",
227
+ inputSchema: {
228
+ company_id: companyIdSchema,
229
+ user_id: z.number().int(),
230
+ type: z.number().int().describe("Top-level penalty category id."),
231
+ penalty_type: z.number().int().optional().describe("Specific penalty category id, if known.")
232
+ }
233
+ }, safeHandler(async (args) => {
234
+ const companyId = resolveCompanyId(client, args.company_id);
235
+ const response = await client.post("disciplinary-notes/estimate-user-penalty", {
236
+ company_id: companyId,
237
+ user_id: args.user_id,
238
+ type: args.type,
239
+ penalty_type: args.penalty_type
240
+ });
241
+ return textResult(response.data);
242
+ }));
243
+ server.registerTool("create_disciplinary_note", {
244
+ title: "Create a disciplinary note",
245
+ description: "Record a disciplinary note against a user. The resulting penalty tier and approval status " +
246
+ "are computed automatically from the user's history — use estimate_disciplinary_penalty " +
247
+ "first to preview the outcome.",
248
+ inputSchema: {
249
+ company_id: companyIdSchema,
250
+ user_id: z.number().int(),
251
+ content: z.string().min(1),
252
+ type: z.number().int().describe("Top-level penalty category id."),
253
+ penalty_type: z.number().int().optional().describe("Specific penalty category id."),
254
+ is_visible_to_user: z.boolean().default(true)
255
+ }
256
+ }, safeHandler(async (args) => {
257
+ const companyId = resolveCompanyId(client, args.company_id);
258
+ const response = await client.post("disciplinary-notes/create", {
259
+ company_id: companyId,
260
+ user_id: args.user_id,
261
+ content: args.content,
262
+ type: args.type,
263
+ penalty_type: args.penalty_type,
264
+ is_visible_to_user: boolParam(args.is_visible_to_user)
265
+ });
266
+ return textResult({ created: true, note: response.data });
267
+ }));
268
+ // ----------------------------------------------------- administrative notes
269
+ server.registerTool("list_administrative_notes", {
270
+ title: "List administrative notes (internal mail)",
271
+ description: "List internal memos/mail sent or received. Non-admins see only their own participation.",
272
+ inputSchema: {
273
+ company_id: companyIdSchema,
274
+ status: z.enum(["draft", "pending-approval", "released", "cancelled"]).optional(),
275
+ search: z.string().optional(),
276
+ limit: z.number().int().min(1).max(50).optional().default(10),
277
+ page: z.number().int().min(1).optional().default(1)
278
+ }
279
+ }, safeHandler(async (args) => {
280
+ const companyId = resolveCompanyId(client, args.company_id);
281
+ const response = await client.get("administrative-notes/search", {
282
+ company_id: companyId,
283
+ status: args.status,
284
+ search: args.search,
285
+ limit: args.limit,
286
+ page: args.page
287
+ });
288
+ const { items, total } = extractList(response.data, "notes");
289
+ return textResult({ count: total ?? items.length, notes: items.map(summariseAdministrativeNote) });
290
+ }));
291
+ server.registerTool("get_administrative_note", {
292
+ title: "Get an administrative note",
293
+ description: "Fetch one internal memo/mail thread, with its referrals.",
294
+ inputSchema: { company_id: companyIdSchema, note_id: z.number().int() }
295
+ }, safeHandler(async (args) => {
296
+ const companyId = resolveCompanyId(client, args.company_id);
297
+ const response = await client.get("administrative-notes/get", {
298
+ company_id: companyId,
299
+ note_id: args.note_id
300
+ });
301
+ return textResult(response.data);
302
+ }));
303
+ server.registerTool("create_administrative_note", {
304
+ title: "Create an administrative note (internal mail)",
305
+ description: "Send an internal memo to one or more colleagues. Each referral names a recipient, whether " +
306
+ "they're a to/cc/bcc target, and what's expected of them.",
307
+ inputSchema: {
308
+ company_id: companyIdSchema,
309
+ subject: z.string().min(1),
310
+ content: z.string().min(1),
311
+ status: z.enum(["draft", "released"]),
312
+ priority: z.enum(["low", "normal", "high", "urgent"]).optional().default("normal"),
313
+ referrals: z
314
+ .array(z.object({
315
+ recipient_id: z.number().int(),
316
+ type: z.enum(["to", "cc", "bcc"]),
317
+ action: z.enum(["action", "information", "signature", "follow-up", "review"]),
318
+ instructions: z.string().optional(),
319
+ deadline: z.string().optional()
320
+ }))
321
+ .min(1)
322
+ }
323
+ }, safeHandler(async (args) => {
324
+ const companyId = resolveCompanyId(client, args.company_id);
325
+ const response = await client.post("administrative-notes/create", {
326
+ company_id: companyId,
327
+ subject: args.subject,
328
+ content: args.content,
329
+ status: args.status,
330
+ priority: args.priority,
331
+ referrals: JSON.stringify(args.referrals)
332
+ });
333
+ return textResult({ created: true, note: response.data });
334
+ }));
335
+ // --------------------------------------------------------------- careers
336
+ server.registerTool("list_careers", {
337
+ title: "List job postings",
338
+ description: "List a company's open job postings.",
339
+ inputSchema: { company_id: companyIdSchema }
340
+ }, safeHandler(async (args) => {
341
+ const companyId = resolveCompanyId(client, args.company_id);
342
+ const response = await client.get("careers/all", { company_id: companyId });
343
+ return textResult(response.data);
344
+ }));
345
+ server.registerTool("list_career_requests", {
346
+ title: "List job applications",
347
+ description: "List applications submitted against a company's job postings. The API requires a status " +
348
+ "filter — there is no 'all statuses' option, so call this once per status you care about.",
349
+ inputSchema: {
350
+ company_id: companyIdSchema,
351
+ status: z.enum([
352
+ "not-checked",
353
+ "pending",
354
+ "screening",
355
+ "interview",
356
+ "offer",
357
+ "hired",
358
+ "checked",
359
+ "rejected"
360
+ ]),
361
+ search: z.string().optional(),
362
+ limit: z.number().int().min(1).max(50).optional().default(10),
363
+ page: z.number().int().min(1).optional().default(1)
364
+ }
365
+ }, safeHandler(async (args) => {
366
+ const companyId = resolveCompanyId(client, args.company_id);
367
+ const response = await client.get("careers/requests/search", {
368
+ company_id: companyId,
369
+ status: args.status,
370
+ search: args.search,
371
+ limit: args.limit,
372
+ page: args.page
373
+ });
374
+ const { items, total } = extractList(response.data, "requests");
375
+ return textResult({ count: total ?? items.length, requests: items });
376
+ }));
377
+ server.registerTool("update_career_request_status", {
378
+ title: "Update a job application's status",
379
+ description: "Move a job application to another stage of the hiring pipeline.",
380
+ inputSchema: {
381
+ company_id: companyIdSchema,
382
+ request_id: z.number().int(),
383
+ status: z.enum([
384
+ "not-checked",
385
+ "pending",
386
+ "screening",
387
+ "interview",
388
+ "offer",
389
+ "hired",
390
+ "checked",
391
+ "rejected"
392
+ ])
393
+ }
394
+ }, safeHandler(async (args) => {
395
+ const companyId = resolveCompanyId(client, args.company_id);
396
+ const response = await client.post("careers/requests/edit-status", {
397
+ company_id: companyId,
398
+ id: args.request_id,
399
+ status: args.status
400
+ });
401
+ return textResult({ updated: true, request: response.data });
402
+ }));
403
+ // ------------------------------------------------------------ onboarding
404
+ server.registerTool("get_onboarding_checklist", {
405
+ title: "Get an onboarding checklist",
406
+ description: "Get the company's onboarding checklist, or one user's if user_id is given.",
407
+ inputSchema: { company_id: companyIdSchema, user_id: z.number().int().optional() }
408
+ }, safeHandler(async (args) => {
409
+ const companyId = resolveCompanyId(client, args.company_id);
410
+ const response = await client.get("onboarding/checklists", {
411
+ company_id: companyId,
412
+ user_id: args.user_id
413
+ });
414
+ return textResult(response.data);
415
+ }));
416
+ server.registerTool("set_onboarding_stage", {
417
+ title: "Set a user's onboarding stage",
418
+ description: "Advance a user's onboarding stage.",
419
+ inputSchema: {
420
+ company_id: companyIdSchema,
421
+ user_id: z.number().int(),
422
+ stage: z.enum(["pre-boarding", "day-1", "first-week", "first-month", "completed"]).nullable()
423
+ }
424
+ }, safeHandler(async (args) => {
425
+ const companyId = resolveCompanyId(client, args.company_id);
426
+ await client.post("onboarding/stage/edit", {
427
+ company_id: companyId,
428
+ user_id: args.user_id,
429
+ stage: args.stage
430
+ });
431
+ return textResult({ user_id: args.user_id, stage: args.stage });
432
+ }));
433
+ // ------------------------------------------------------------- cafeteria
434
+ server.registerTool("list_food_schedules", {
435
+ title: "List cafeteria meal schedules",
436
+ description: "List upcoming (or past) meal slots and their capacity.",
437
+ inputSchema: {
438
+ company_id: companyIdSchema,
439
+ from_food_date: z.string().optional(),
440
+ to_food_date: z.string().optional(),
441
+ is_active: z.boolean().optional()
442
+ }
443
+ }, safeHandler(async (args) => {
444
+ const companyId = resolveCompanyId(client, args.company_id);
445
+ const response = await client.get("foods/schedule", {
446
+ company_id: companyId,
447
+ from_food_date: args.from_food_date,
448
+ to_food_date: args.to_food_date,
449
+ is_active: args.is_active === undefined ? undefined : boolParam(args.is_active)
450
+ });
451
+ const { items } = extractList(response.data, "schedules");
452
+ return textResult({ count: items.length, food_schedules: items.map(summariseFoodSchedule) });
453
+ }));
454
+ server.registerTool("reserve_food", {
455
+ title: "Reserve or cancel a meal",
456
+ description: "Reserve or cancel meals for the authenticated user. Changes within 2 days of the meal " +
457
+ "date are silently ignored by the API.",
458
+ inputSchema: {
459
+ company_id: companyIdSchema,
460
+ reservations: z
461
+ .array(z.object({
462
+ food_date: z.string(),
463
+ schedule_id: z.number().int(),
464
+ status: z.enum(["reserved", "cancelled"]),
465
+ cancel_reason: z.string().optional()
466
+ }))
467
+ .min(1)
468
+ }
469
+ }, safeHandler(async (args) => {
470
+ const companyId = resolveCompanyId(client, args.company_id);
471
+ const myId = await currentUserId(client);
472
+ const response = await client.post("foods/reserve", {
473
+ company_id: companyId,
474
+ user_id: myId,
475
+ reservations: JSON.stringify(args.reservations)
476
+ });
477
+ return textResult({ reservations: response.data });
478
+ }));
479
+ server.registerTool("list_my_food_reservations", {
480
+ title: "List my meal reservations",
481
+ description: "List the authenticated user's cafeteria reservations.",
482
+ inputSchema: {
483
+ company_id: companyIdSchema,
484
+ from_food_date: z.string().optional(),
485
+ to_food_date: z.string().optional()
486
+ }
487
+ }, safeHandler(async (args) => {
488
+ const companyId = resolveCompanyId(client, args.company_id);
489
+ const myId = await currentUserId(client);
490
+ const response = await client.get("foods/schedule", {
491
+ company_id: companyId,
492
+ user_id: myId,
493
+ from_food_date: args.from_food_date,
494
+ to_food_date: args.to_food_date
495
+ });
496
+ return textResult(response.data);
497
+ }));
498
+ // ---------------------------------------------------------- mood check-in
499
+ server.registerTool("mood_checkin", {
500
+ title: "Log a mood check-in",
501
+ description: "Record the authenticated user's mood for today, 1 (worst) to 5 (best). Overwrites today's entry if called again.",
502
+ inputSchema: {
503
+ company_id: companyIdSchema,
504
+ mood_score: z.number().int().min(1).max(5),
505
+ note: z.string().optional()
506
+ }
507
+ }, safeHandler(async (args) => {
508
+ const companyId = resolveCompanyId(client, args.company_id);
509
+ const response = await client.post("mood-checkins/checkin", {
510
+ company_id: companyId,
511
+ mood_score: args.mood_score,
512
+ note: args.note
513
+ });
514
+ return textResult(response.data);
515
+ }));
516
+ }
517
+ //# sourceMappingURL=hr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hr.js","sourceRoot":"","sources":["../../src/tools/hr.ts"],"names":[],"mappings":"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"}