@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.
@@ -550,7 +550,12 @@ function registerTeamTools(server, ctx, track) {
550
550
  {
551
551
  title: "Archive Team",
552
552
  description: "Archive (soft-delete) a team by ID. Returns true on success.",
553
- inputSchema: { id: zod.z.string().describe("Team ID") }
553
+ inputSchema: { id: zod.z.string().describe("Team ID") },
554
+ // BOFF-3616/BOFF-3907: the fleet destructiveHint inference (tool-name.ts)
555
+ // only matches a `delete` name segment, so an irreversible `archive` call
556
+ // needs an explicit annotation to be caught by the confirmation gate that
557
+ // atheletebridge-mcp/src/index.ts enables via enforceDestructiveConfirmation.
558
+ annotations: { destructiveHint: true }
554
559
  },
555
560
  async ({ id }) => {
556
561
  try {
@@ -713,7 +718,10 @@ function registerTeamTools(server, ctx, track) {
713
718
  {
714
719
  title: "Remove Team Member",
715
720
  description: "Remove a member from the roster by ID. Returns true on success.",
716
- inputSchema: { id: zod.z.string().describe("Member ID") }
721
+ inputSchema: { id: zod.z.string().describe("Member ID") },
722
+ // BOFF-3616/BOFF-3907: see teams_archive above — `remove` is not caught
723
+ // by the fleet's name-based destructiveHint inference.
724
+ annotations: { destructiveHint: true }
717
725
  },
718
726
  async ({ id }) => {
719
727
  try {
@@ -890,7 +898,12 @@ function registerProgramTools(server, ctx, track) {
890
898
  {
891
899
  title: "Archive Training Program",
892
900
  description: "Archive (soft-delete) a program by ID. Returns true on success.",
893
- inputSchema: { id: zod.z.string().describe("Program ID") }
901
+ inputSchema: { id: zod.z.string().describe("Program ID") },
902
+ // BOFF-3616/BOFF-3907: the fleet destructiveHint inference (tool-name.ts)
903
+ // only matches a `delete` name segment, so an irreversible `archive` call
904
+ // needs an explicit annotation to be caught by the confirmation gate that
905
+ // atheletebridge-mcp/src/index.ts enables via enforceDestructiveConfirmation.
906
+ annotations: { destructiveHint: true }
894
907
  },
895
908
  async ({ id }) => {
896
909
  try {
@@ -965,7 +978,10 @@ function registerProgramTools(server, ctx, track) {
965
978
  {
966
979
  title: "Remove Drill",
967
980
  description: "Remove a drill from its program by ID. Returns true on success.",
968
- inputSchema: { id: zod.z.string().describe("Drill ID") }
981
+ inputSchema: { id: zod.z.string().describe("Drill ID") },
982
+ // BOFF-3616/BOFF-3907: see programs_archive above — `remove` is not
983
+ // caught by the fleet's name-based destructiveHint inference.
984
+ annotations: { destructiveHint: true }
969
985
  },
970
986
  async ({ id }) => {
971
987
  try {
@@ -1137,7 +1153,12 @@ function registerSessionTools(server, ctx, track) {
1137
1153
  {
1138
1154
  title: "Cancel Coaching Session",
1139
1155
  description: "Cancel a coaching session by ID.",
1140
- inputSchema: { id: zod.z.string().describe("Session ID") }
1156
+ inputSchema: { id: zod.z.string().describe("Session ID") },
1157
+ // BOFF-3616/BOFF-3907: the fleet destructiveHint inference (tool-name.ts)
1158
+ // only matches a `delete` name segment, so an irreversible `cancel` call
1159
+ // needs an explicit annotation to be caught by the confirmation gate that
1160
+ // atheletebridge-mcp/src/index.ts enables via enforceDestructiveConfirmation.
1161
+ annotations: { destructiveHint: true }
1141
1162
  },
1142
1163
  async ({ id }) => {
1143
1164
  try {