@burdenoff/mcp-libs 2026.719.2 → 2026.720.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/modules/atheletebridge/index.cjs +26 -5
- package/dist/modules/atheletebridge/index.cjs.map +1 -1
- package/dist/modules/atheletebridge/index.js +26 -5
- package/dist/modules/atheletebridge/index.js.map +1 -1
- package/dist/modules/mybodyshield/index.cjs +19 -3
- package/dist/modules/mybodyshield/index.cjs.map +1 -1
- package/dist/modules/mybodyshield/index.js +19 -3
- package/dist/modules/mybodyshield/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -507,7 +507,13 @@ function registerProgramTools(server, ctx, track) {
|
|
|
507
507
|
{
|
|
508
508
|
title: "Archive Training Program",
|
|
509
509
|
description: "Archive a training program by ID. Returns true on success.",
|
|
510
|
-
inputSchema: { id: z.string().describe("Program ID") }
|
|
510
|
+
inputSchema: { id: z.string().describe("Program ID") },
|
|
511
|
+
// BOFF-3859: ARCHIVED is a terminal lifecycle state (no transition back
|
|
512
|
+
// out per training.service.ts's PROGRAM_TRANSITIONS) and the resolver
|
|
513
|
+
// sets `deletedAt` — this is an irreversible soft-delete, not a naming
|
|
514
|
+
// pattern (`inferDestructiveHint` only matches `delete`), so it must be
|
|
515
|
+
// declared explicitly to be caught by the confirmation gate.
|
|
516
|
+
annotations: { destructiveHint: true }
|
|
511
517
|
},
|
|
512
518
|
async ({ id }) => {
|
|
513
519
|
try {
|
|
@@ -1413,7 +1419,13 @@ function registerCoachingTools(server, ctx, track) {
|
|
|
1413
1419
|
shareWorkouts: z.boolean().optional().describe("Share workout data with the coach"),
|
|
1414
1420
|
shareNutrition: z.boolean().optional().describe("Share nutrition data with the coach"),
|
|
1415
1421
|
shareMetrics: z.boolean().optional().describe("Share body-metric data with the coach")
|
|
1416
|
-
}
|
|
1422
|
+
},
|
|
1423
|
+
// BOFF-3859: grants a third party (the coach) read access to a
|
|
1424
|
+
// member's health data via the share* flags. Not a naming-pattern
|
|
1425
|
+
// match for `inferDestructiveHint` (no "delete"), but it is exactly
|
|
1426
|
+
// the class of health-data-governance mutation the confirmation gate
|
|
1427
|
+
// exists for — declared explicitly rather than left ungated.
|
|
1428
|
+
annotations: { destructiveHint: true }
|
|
1417
1429
|
},
|
|
1418
1430
|
async ({ coachId, memberId, specialty, shareWorkouts, shareNutrition, shareMetrics }) => {
|
|
1419
1431
|
try {
|
|
@@ -1440,7 +1452,11 @@ function registerCoachingTools(server, ctx, track) {
|
|
|
1440
1452
|
inputSchema: {
|
|
1441
1453
|
id: z.string().describe("Coaching relationship ID"),
|
|
1442
1454
|
status: CoachingStatusEnum.describe("Target coaching status")
|
|
1443
|
-
}
|
|
1455
|
+
},
|
|
1456
|
+
// BOFF-3859: activates or revokes a coach's access to shared health
|
|
1457
|
+
// data (ENDED is a terminal state per COACHING_TRANSITIONS) — same
|
|
1458
|
+
// health-data-governance rationale as coaching_create above.
|
|
1459
|
+
annotations: { destructiveHint: true }
|
|
1444
1460
|
},
|
|
1445
1461
|
async ({ id, status }) => {
|
|
1446
1462
|
try {
|