@burdenoff/mcp-libs 2026.720.1 → 2026.720.3

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.
@@ -489,7 +489,12 @@ function registerTeamTools(server, ctx, track) {
489
489
  {
490
490
  title: "Archive Team",
491
491
  description: "Archive (soft-delete) a team by ID. Returns true on success.",
492
- inputSchema: { id: z.string().describe("Team ID") }
492
+ inputSchema: { id: z.string().describe("Team ID") },
493
+ // BOFF-3616/BOFF-3907: the fleet destructiveHint inference (tool-name.ts)
494
+ // only matches a `delete` name segment, so an irreversible `archive` call
495
+ // needs an explicit annotation to be caught by the confirmation gate that
496
+ // atheletebridge-mcp/src/index.ts enables via enforceDestructiveConfirmation.
497
+ annotations: { destructiveHint: true }
493
498
  },
494
499
  async ({ id }) => {
495
500
  try {
@@ -652,7 +657,10 @@ function registerTeamTools(server, ctx, track) {
652
657
  {
653
658
  title: "Remove Team Member",
654
659
  description: "Remove a member from the roster by ID. Returns true on success.",
655
- inputSchema: { id: z.string().describe("Member ID") }
660
+ inputSchema: { id: z.string().describe("Member ID") },
661
+ // BOFF-3616/BOFF-3907: see teams_archive above — `remove` is not caught
662
+ // by the fleet's name-based destructiveHint inference.
663
+ annotations: { destructiveHint: true }
656
664
  },
657
665
  async ({ id }) => {
658
666
  try {
@@ -829,7 +837,12 @@ function registerProgramTools(server, ctx, track) {
829
837
  {
830
838
  title: "Archive Training Program",
831
839
  description: "Archive (soft-delete) a program by ID. Returns true on success.",
832
- inputSchema: { id: z.string().describe("Program ID") }
840
+ inputSchema: { id: z.string().describe("Program ID") },
841
+ // BOFF-3616/BOFF-3907: the fleet destructiveHint inference (tool-name.ts)
842
+ // only matches a `delete` name segment, so an irreversible `archive` call
843
+ // needs an explicit annotation to be caught by the confirmation gate that
844
+ // atheletebridge-mcp/src/index.ts enables via enforceDestructiveConfirmation.
845
+ annotations: { destructiveHint: true }
833
846
  },
834
847
  async ({ id }) => {
835
848
  try {
@@ -904,7 +917,10 @@ function registerProgramTools(server, ctx, track) {
904
917
  {
905
918
  title: "Remove Drill",
906
919
  description: "Remove a drill from its program by ID. Returns true on success.",
907
- inputSchema: { id: z.string().describe("Drill ID") }
920
+ inputSchema: { id: z.string().describe("Drill ID") },
921
+ // BOFF-3616/BOFF-3907: see programs_archive above — `remove` is not
922
+ // caught by the fleet's name-based destructiveHint inference.
923
+ annotations: { destructiveHint: true }
908
924
  },
909
925
  async ({ id }) => {
910
926
  try {
@@ -1076,7 +1092,12 @@ function registerSessionTools(server, ctx, track) {
1076
1092
  {
1077
1093
  title: "Cancel Coaching Session",
1078
1094
  description: "Cancel a coaching session by ID.",
1079
- inputSchema: { id: z.string().describe("Session ID") }
1095
+ inputSchema: { id: z.string().describe("Session ID") },
1096
+ // BOFF-3616/BOFF-3907: the fleet destructiveHint inference (tool-name.ts)
1097
+ // only matches a `delete` name segment, so an irreversible `cancel` call
1098
+ // needs an explicit annotation to be caught by the confirmation gate that
1099
+ // atheletebridge-mcp/src/index.ts enables via enforceDestructiveConfirmation.
1100
+ annotations: { destructiveHint: true }
1080
1101
  },
1081
1102
  async ({ id }) => {
1082
1103
  try {