@burdenoff/mcp-libs 2026.719.2 → 2026.720.1
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.
|
@@ -568,7 +568,13 @@ function registerProgramTools(server, ctx, track) {
|
|
|
568
568
|
{
|
|
569
569
|
title: "Archive Training Program",
|
|
570
570
|
description: "Archive a training program by ID. Returns true on success.",
|
|
571
|
-
inputSchema: { id: zod.z.string().describe("Program ID") }
|
|
571
|
+
inputSchema: { id: zod.z.string().describe("Program ID") },
|
|
572
|
+
// BOFF-3859: ARCHIVED is a terminal lifecycle state (no transition back
|
|
573
|
+
// out per training.service.ts's PROGRAM_TRANSITIONS) and the resolver
|
|
574
|
+
// sets `deletedAt` — this is an irreversible soft-delete, not a naming
|
|
575
|
+
// pattern (`inferDestructiveHint` only matches `delete`), so it must be
|
|
576
|
+
// declared explicitly to be caught by the confirmation gate.
|
|
577
|
+
annotations: { destructiveHint: true }
|
|
572
578
|
},
|
|
573
579
|
async ({ id }) => {
|
|
574
580
|
try {
|
|
@@ -1474,7 +1480,13 @@ function registerCoachingTools(server, ctx, track) {
|
|
|
1474
1480
|
shareWorkouts: zod.z.boolean().optional().describe("Share workout data with the coach"),
|
|
1475
1481
|
shareNutrition: zod.z.boolean().optional().describe("Share nutrition data with the coach"),
|
|
1476
1482
|
shareMetrics: zod.z.boolean().optional().describe("Share body-metric data with the coach")
|
|
1477
|
-
}
|
|
1483
|
+
},
|
|
1484
|
+
// BOFF-3859: grants a third party (the coach) read access to a
|
|
1485
|
+
// member's health data via the share* flags. Not a naming-pattern
|
|
1486
|
+
// match for `inferDestructiveHint` (no "delete"), but it is exactly
|
|
1487
|
+
// the class of health-data-governance mutation the confirmation gate
|
|
1488
|
+
// exists for — declared explicitly rather than left ungated.
|
|
1489
|
+
annotations: { destructiveHint: true }
|
|
1478
1490
|
},
|
|
1479
1491
|
async ({ coachId, memberId, specialty, shareWorkouts, shareNutrition, shareMetrics }) => {
|
|
1480
1492
|
try {
|
|
@@ -1501,7 +1513,11 @@ function registerCoachingTools(server, ctx, track) {
|
|
|
1501
1513
|
inputSchema: {
|
|
1502
1514
|
id: zod.z.string().describe("Coaching relationship ID"),
|
|
1503
1515
|
status: CoachingStatusEnum.describe("Target coaching status")
|
|
1504
|
-
}
|
|
1516
|
+
},
|
|
1517
|
+
// BOFF-3859: activates or revokes a coach's access to shared health
|
|
1518
|
+
// data (ENDED is a terminal state per COACHING_TRANSITIONS) — same
|
|
1519
|
+
// health-data-governance rationale as coaching_create above.
|
|
1520
|
+
annotations: { destructiveHint: true }
|
|
1505
1521
|
},
|
|
1506
1522
|
async ({ id, status }) => {
|
|
1507
1523
|
try {
|