wolfpack-mcp 1.0.50 → 1.0.52
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/agentBuilderTools.js +63 -20
- package/dist/client.js +6 -2
- package/package.json +1 -1
|
@@ -290,7 +290,8 @@ export const AGENT_BUILDER_TOOLS = [
|
|
|
290
290
|
// ─── Group 5: Skills (authoring) ─────────────────────────────────────────
|
|
291
291
|
{
|
|
292
292
|
name: 'create_skill',
|
|
293
|
-
description: 'Create a
|
|
293
|
+
description: 'Create a skill. By default creates an org-level skill. ' +
|
|
294
|
+
'Pass agent_id to create an agent-private skill scoped to that agent only.',
|
|
294
295
|
inputSchema: {
|
|
295
296
|
type: 'object',
|
|
296
297
|
properties: {
|
|
@@ -306,6 +307,10 @@ export const AGENT_BUILDER_TOOLS = [
|
|
|
306
307
|
type: 'string',
|
|
307
308
|
description: 'Instruction body in markdown',
|
|
308
309
|
},
|
|
310
|
+
agent_id: {
|
|
311
|
+
type: 'string',
|
|
312
|
+
description: 'Agent profile ID. When provided, creates an agent-private skill instead of org-level.',
|
|
313
|
+
},
|
|
309
314
|
},
|
|
310
315
|
required: ['name', 'description', 'content'],
|
|
311
316
|
},
|
|
@@ -375,18 +380,26 @@ export const AGENT_BUILDER_TOOLS = [
|
|
|
375
380
|
required: ['agent_id', 'skill_ids'],
|
|
376
381
|
},
|
|
377
382
|
},
|
|
378
|
-
// ─── Group 5b: Skills (reading
|
|
383
|
+
// ─── Group 5b: Skills (reading) ─────────────────────────────────────────
|
|
379
384
|
{
|
|
380
|
-
name: '
|
|
381
|
-
description: 'List all skills
|
|
382
|
-
'Returns
|
|
383
|
-
'Use
|
|
384
|
-
inputSchema: {
|
|
385
|
+
name: 'list_agent_skills',
|
|
386
|
+
description: 'List all skills for a specific agent: agent-private skills + linked org skills + built-in skills. ' +
|
|
387
|
+
'Returns full skill objects with IDs. Agent-scoped skills have agentProfileId set. ' +
|
|
388
|
+
'Use this to see what skills an agent has and get IDs for update_skill.',
|
|
389
|
+
inputSchema: {
|
|
390
|
+
type: 'object',
|
|
391
|
+
properties: {
|
|
392
|
+
agent_id: { type: 'string', description: 'Agent profile ID' },
|
|
393
|
+
},
|
|
394
|
+
required: ['agent_id'],
|
|
395
|
+
},
|
|
385
396
|
},
|
|
386
397
|
{
|
|
387
|
-
name: '
|
|
388
|
-
description: 'Get the full content of
|
|
389
|
-
'Returns instructions, metadata, and a list of attached resources.'
|
|
398
|
+
name: 'get_skill_detail',
|
|
399
|
+
description: 'Get the full content of a skill by name. ' +
|
|
400
|
+
'Returns instructions, metadata, and a list of attached resources. ' +
|
|
401
|
+
'With agent_id: resolves agent-private → org → system (use after list_agent_skills). ' +
|
|
402
|
+
'Without agent_id: resolves org → system (use after list_org_skills).',
|
|
390
403
|
inputSchema: {
|
|
391
404
|
type: 'object',
|
|
392
405
|
properties: {
|
|
@@ -394,10 +407,21 @@ export const AGENT_BUILDER_TOOLS = [
|
|
|
394
407
|
type: 'string',
|
|
395
408
|
description: 'The name of the skill to load (e.g. "deploy-app")',
|
|
396
409
|
},
|
|
410
|
+
agent_id: {
|
|
411
|
+
type: 'string',
|
|
412
|
+
description: 'Agent profile ID. When provided, resolves with agent-scoped precedence (agent → org → system).',
|
|
413
|
+
},
|
|
397
414
|
},
|
|
398
415
|
required: ['skill_name'],
|
|
399
416
|
},
|
|
400
417
|
},
|
|
418
|
+
{
|
|
419
|
+
name: 'list_org_skills',
|
|
420
|
+
description: 'List all skills in the org skill library (org-level + system-level). ' +
|
|
421
|
+
'Returns ID, name, description, and whether the skill is built-in. ' +
|
|
422
|
+
'Use skill IDs with set_agent_skills to assign skills to an agent.',
|
|
423
|
+
inputSchema: { type: 'object', properties: {} },
|
|
424
|
+
},
|
|
401
425
|
// ─── Group 6: Secrets ─────────────────────────────────────────────────────
|
|
402
426
|
{
|
|
403
427
|
name: 'list_agent_secrets',
|
|
@@ -681,11 +705,23 @@ export async function handleAgentBuilderTool(name, args, client) {
|
|
|
681
705
|
// ─── Skills ─────────────────────────────────────────────────────────────
|
|
682
706
|
case 'create_skill': {
|
|
683
707
|
const parsed = z
|
|
684
|
-
.object({
|
|
708
|
+
.object({
|
|
709
|
+
name: z.string(),
|
|
710
|
+
description: z.string(),
|
|
711
|
+
content: z.string(),
|
|
712
|
+
agent_id: z.string().optional(),
|
|
713
|
+
})
|
|
685
714
|
.parse(args);
|
|
686
|
-
const
|
|
715
|
+
const { agent_id, ...fields } = parsed;
|
|
716
|
+
const skill = await client.createSkill({
|
|
717
|
+
...fields,
|
|
718
|
+
agentProfileId: agent_id,
|
|
719
|
+
});
|
|
720
|
+
const scope = agent_id ? 'agent-scoped' : 'org-level';
|
|
687
721
|
return {
|
|
688
|
-
content: [
|
|
722
|
+
content: [
|
|
723
|
+
{ type: 'text', text: `Created ${scope} skill "${parsed.name}"\n\n${text(skill)}` },
|
|
724
|
+
],
|
|
689
725
|
};
|
|
690
726
|
}
|
|
691
727
|
case 'update_skill': {
|
|
@@ -746,26 +782,33 @@ export async function handleAgentBuilderTool(name, args, client) {
|
|
|
746
782
|
],
|
|
747
783
|
};
|
|
748
784
|
}
|
|
749
|
-
// ─── Skills (reading
|
|
750
|
-
case '
|
|
751
|
-
const
|
|
785
|
+
// ─── Skills (reading) ─────────────────────────────────────────────────────
|
|
786
|
+
case 'list_agent_skills': {
|
|
787
|
+
const parsed = z.object({ agent_id: z.string() }).parse(args);
|
|
788
|
+
const skills = await client.listAgentSkills(parsed.agent_id);
|
|
752
789
|
return { content: [{ type: 'text', text: text(skills) }] };
|
|
753
790
|
}
|
|
754
|
-
case '
|
|
755
|
-
const parsed = z
|
|
756
|
-
|
|
791
|
+
case 'get_skill_detail': {
|
|
792
|
+
const parsed = z
|
|
793
|
+
.object({ skill_name: z.string(), agent_id: z.string().optional() })
|
|
794
|
+
.parse(args);
|
|
795
|
+
const skill = await client.getSkillDetail(parsed.skill_name, parsed.agent_id);
|
|
757
796
|
if (!skill) {
|
|
758
797
|
return {
|
|
759
798
|
content: [
|
|
760
799
|
{
|
|
761
800
|
type: 'text',
|
|
762
|
-
text: `Skill '${parsed.skill_name}' not found. Use list_org_skills to see available skills.`,
|
|
801
|
+
text: `Skill '${parsed.skill_name}' not found. Use list_agent_skills or list_org_skills to see available skills.`,
|
|
763
802
|
},
|
|
764
803
|
],
|
|
765
804
|
};
|
|
766
805
|
}
|
|
767
806
|
return { content: [{ type: 'text', text: text(skill) }] };
|
|
768
807
|
}
|
|
808
|
+
case 'list_org_skills': {
|
|
809
|
+
const skills = await client.listOrgSkills();
|
|
810
|
+
return { content: [{ type: 'text', text: text(skills) }] };
|
|
811
|
+
}
|
|
769
812
|
// ─── Secrets ─────────────────────────────────────────────────────────────
|
|
770
813
|
case 'list_agent_secrets': {
|
|
771
814
|
const { agent_id } = AgentIdSchema.parse(args);
|
package/dist/client.js
CHANGED
|
@@ -703,12 +703,16 @@ export class WolfpackClient {
|
|
|
703
703
|
});
|
|
704
704
|
}
|
|
705
705
|
// ─── Agent Builder: Skills (read) ──────────────────────────────────────────
|
|
706
|
+
async listAgentSkills(agentId) {
|
|
707
|
+
return this.api.get(`/skills/agent-profiles/${agentId}`);
|
|
708
|
+
}
|
|
706
709
|
async listOrgSkills() {
|
|
707
710
|
return this.api.get('/agents/org-skills');
|
|
708
711
|
}
|
|
709
|
-
async
|
|
712
|
+
async getSkillDetail(name, agentId) {
|
|
710
713
|
try {
|
|
711
|
-
|
|
714
|
+
const query = agentId ? `?agentProfileId=${agentId}` : '';
|
|
715
|
+
return await this.api.get(`/agents/org-skills/${encodeURIComponent(name)}${query}`);
|
|
712
716
|
}
|
|
713
717
|
catch (error) {
|
|
714
718
|
if (error && typeof error === 'object' && 'status' in error && error.status === 404)
|