wolfpack-mcp 1.0.85 → 1.0.87

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.
@@ -701,7 +701,8 @@ export const AGENT_BUILDER_TOOLS = [
701
701
  // ─── Group 6: Secrets ─────────────────────────────────────────────────────
702
702
  {
703
703
  name: 'list_agent_secrets',
704
- description: 'List secret names for an agent. Values are never returned.',
704
+ description: 'List secret names for an agent, with the note recording where each value came from. ' +
705
+ 'Values are never returned.',
705
706
  inputSchema: {
706
707
  type: 'object',
707
708
  properties: {
@@ -715,7 +716,7 @@ export const AGENT_BUILDER_TOOLS = [
715
716
  name: 'set_agent_secret',
716
717
  description: 'Create or update a secret for an agent. ' +
717
718
  'Name must be uppercase letters, digits, and underscores (e.g. MY_API_KEY). ' +
718
- 'Omit value to change only shared_with_aliases on an existing secret.',
719
+ 'Omit value to change only shared_with_aliases or comment on an existing secret.',
719
720
  inputSchema: {
720
721
  type: 'object',
721
722
  properties: {
@@ -726,6 +727,12 @@ export const AGENT_BUILDER_TOOLS = [
726
727
  type: 'boolean',
727
728
  description: 'Share with same-org aliases of this agent (default false)',
728
729
  },
730
+ comment: {
731
+ type: 'string',
732
+ description: 'Note on where the value came from, kept when the value is later rotated. ' +
733
+ 'Readable by anyone who can manage the agent — never put the secret itself here. ' +
734
+ 'Omit to leave an existing note alone; pass an empty string to clear it.',
735
+ },
729
736
  ...ORG_SLUG_PROP,
730
737
  },
731
738
  required: ['agent_id', 'name'],
@@ -1319,10 +1326,11 @@ export async function handleAgentBuilderTool(name, args, client) {
1319
1326
  name: z.string(),
1320
1327
  value: z.string().optional(),
1321
1328
  shared_with_aliases: z.boolean().optional(),
1329
+ comment: z.string().optional(),
1322
1330
  org_slug: orgSlugField,
1323
1331
  })
1324
1332
  .parse(args);
1325
- const secret = await client.setAgentSecret(parsed.agent_id, parsed.name, parsed.value, parsed.shared_with_aliases, resolveOrg(parsed));
1333
+ const secret = await client.setAgentSecret(parsed.agent_id, parsed.name, parsed.value, { sharedWithAliases: parsed.shared_with_aliases, comment: parsed.comment }, resolveOrg(parsed));
1326
1334
  return { content: [{ type: 'text', text: `Set secret "${secret.name}"` }] };
1327
1335
  }
1328
1336
  // ─── Discovery ────────────────────────────────────────────────────────────
package/dist/client.js CHANGED
@@ -780,11 +780,11 @@ export class WolfpackClient {
780
780
  async listAgentSecrets(agentId, orgSlug) {
781
781
  return this.api.get(this.withOrgSlug(`/agents/${agentId}/secrets`, orgSlug));
782
782
  }
783
- async setAgentSecret(agentId, name, value, sharedWithAliases, orgSlug) {
783
+ async setAgentSecret(agentId, name, value, metadata, orgSlug) {
784
784
  return this.api.post(this.withOrgSlug(`/agents/${agentId}/secrets`, orgSlug), {
785
785
  name,
786
786
  value,
787
- sharedWithAliases,
787
+ ...metadata,
788
788
  });
789
789
  }
790
790
  // ─── Agent Builder: Skills (write) ────────────────────────────────────────
@@ -901,8 +901,8 @@ export class WolfpackClient {
901
901
  params.append('status', options.status);
902
902
  return this.fetchAllPages('/cases', params);
903
903
  }
904
- async upgradeCase(caseId, teamSlug) {
905
- return this.api.post(this.withTeamSlug(`/cases/${caseId}/upgrade`, teamSlug), {});
904
+ async upgradeCase(caseId, teamSlug, resumeNodeId) {
905
+ return this.api.post(this.withTeamSlug(`/cases/${caseId}/upgrade`, teamSlug), resumeNodeId ? { resumeNodeId } : {});
906
906
  }
907
907
  async upgradeProcedureCases(procedureId, teamSlug) {
908
908
  return this.api.post(this.withTeamSlug(`/procedures/${procedureId}/upgrade-cases`, teamSlug), {});
@@ -224,8 +224,10 @@ export const PROCEDURE_TOOLS = [
224
224
  description: 'Move a running (or paused) case onto the latest version of its procedure. The case resumes ' +
225
225
  'at the node it is waiting at, keeping its variables and earlier activity outputs; nothing ' +
226
226
  'before that node runs again. Refused — with the reason — when the case is not running, is ' +
227
- 'already on the current version, or its current node id is not in the new version (cancel ' +
228
- 'the case and start the procedure again from the work item instead).',
227
+ 'already on the current version, or its current node id is not in the new version then pass ' +
228
+ 'resume_node_id to choose the node of the new version it should continue from (see ' +
229
+ 'get_procedure for the node ids), or cancel the case and start the procedure again from the ' +
230
+ 'work item.',
229
231
  inputSchema: {
230
232
  type: 'object',
231
233
  properties: {
@@ -233,6 +235,11 @@ export const PROCEDURE_TOOLS = [
233
235
  type: 'string',
234
236
  description: 'Case UUID or refId number',
235
237
  },
238
+ resume_node_id: {
239
+ type: 'string',
240
+ description: 'Node id of the new version to resume at. Defaults to the node the case is waiting at; ' +
241
+ 'required when that node no longer exists in the new version.',
242
+ },
236
243
  project_slug: {
237
244
  type: 'string',
238
245
  description: 'Project slug (required when using refId)',
@@ -398,9 +405,13 @@ export async function handleProcedureTool(name, args, client) {
398
405
  }
399
406
  case 'upgrade_case': {
400
407
  const parsed = z
401
- .object({ case_id: z.string(), project_slug: z.string().optional() })
408
+ .object({
409
+ case_id: z.string(),
410
+ resume_node_id: z.string().optional(),
411
+ project_slug: z.string().optional(),
412
+ })
402
413
  .parse(args);
403
- const result = await client.upgradeCase(parsed.case_id, parsed.project_slug);
414
+ const result = await client.upgradeCase(parsed.case_id, parsed.project_slug, parsed.resume_node_id);
404
415
  return {
405
416
  content: [
406
417
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wolfpack-mcp",
3
- "version": "1.0.85",
3
+ "version": "1.0.87",
4
4
  "description": "MCP server for Wolfpack AI-enhanced software delivery tools",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",