@botuyo/mcp 0.4.0 → 0.4.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.
|
@@ -32,4 +32,54 @@ describe('listAgentsHandler', () => {
|
|
|
32
32
|
expect(res.text).toContain('published');
|
|
33
33
|
});
|
|
34
34
|
});
|
|
35
|
+
class MockClientFamily {
|
|
36
|
+
async get(path) {
|
|
37
|
+
expect(path).toBe('/api/v1/mcp/agents');
|
|
38
|
+
return {
|
|
39
|
+
success: true,
|
|
40
|
+
data: [
|
|
41
|
+
{
|
|
42
|
+
id: '6a31f42d0bff04d6abbd5d7f',
|
|
43
|
+
name: 'Ms. Ellis — A1 (Beginner)',
|
|
44
|
+
status: 'published',
|
|
45
|
+
enabledToolsCount: 5,
|
|
46
|
+
familyId: '6a344975524b9e2d93406f40',
|
|
47
|
+
variantKey: 'a1'
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
id: '69f20e5d0000000000000000',
|
|
51
|
+
name: 'Hilton Concierge',
|
|
52
|
+
status: 'published',
|
|
53
|
+
enabledToolsCount: 2,
|
|
54
|
+
familyId: null,
|
|
55
|
+
variantKey: null
|
|
56
|
+
}
|
|
57
|
+
]
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
describe('listAgentsHandler — family membership', () => {
|
|
62
|
+
it('tags family members with their variantKey in the text summary', async () => {
|
|
63
|
+
const client = new MockClientFamily();
|
|
64
|
+
const res = (await listAgentsHandler(client, {}));
|
|
65
|
+
const lines = res.text.split('\n');
|
|
66
|
+
expect(lines[0]).toContain('Ms. Ellis — A1 (Beginner)');
|
|
67
|
+
expect(lines[0].toLowerCase()).toContain('family');
|
|
68
|
+
expect(lines[0]).toContain('a1');
|
|
69
|
+
});
|
|
70
|
+
it('does NOT add a family tag to standalone agents', async () => {
|
|
71
|
+
const client = new MockClientFamily();
|
|
72
|
+
const res = (await listAgentsHandler(client, {}));
|
|
73
|
+
const lines = res.text.split('\n');
|
|
74
|
+
expect(lines[1]).toContain('Hilton Concierge');
|
|
75
|
+
expect(lines[1].toLowerCase()).not.toContain('family');
|
|
76
|
+
});
|
|
77
|
+
it('keeps familyId/variantKey in the structured data', async () => {
|
|
78
|
+
const client = new MockClientFamily();
|
|
79
|
+
const res = (await listAgentsHandler(client, {}));
|
|
80
|
+
expect(res.data[0].familyId).toBe('6a344975524b9e2d93406f40');
|
|
81
|
+
expect(res.data[0].variantKey).toBe('a1');
|
|
82
|
+
expect(res.data[1].familyId).toBeNull();
|
|
83
|
+
});
|
|
84
|
+
});
|
|
35
85
|
//# sourceMappingURL=list_agents.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list_agents.spec.js","sourceRoot":"","sources":["../../../src/tools/__tests__/list_agents.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAErD,MAAM,UAAU;IACd,KAAK,CAAC,GAAG,CAAC,IAAY;QACpB,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;QACvC,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE;gBACJ,EAAE,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC,EAAE;aACjG;SACF,CAAA;IACH,CAAC;CACF;AAED,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,MAAM,MAAM,GAAG,IAAI,UAAU,EAAS,CAAA;QACtC,MAAM,GAAG,GAAG,CAAC,MAAM,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAQ,CAAA;QACxD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1C,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC3B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACvE,MAAM,MAAM,GAAG,IAAI,UAAU,EAAS,CAAA;QACtC,MAAM,GAAG,GAAG,CAAC,MAAM,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAQ,CAAA;QACxD,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA;QACvD,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IACnD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,MAAM,GAAG,IAAI,UAAU,EAAS,CAAA;QACtC,MAAM,GAAG,GAAG,CAAC,MAAM,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAQ,CAAA;QACxD,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;QACvC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAA;QAC3C,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;IACzC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"list_agents.spec.js","sourceRoot":"","sources":["../../../src/tools/__tests__/list_agents.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { shortId } from '../format.js';
|
|
2
2
|
export const LIST_AGENTS_TOOL = {
|
|
3
3
|
name: 'list_agents',
|
|
4
|
-
description: 'Lists all agents for the authenticated tenant. Returns a name-first text summary plus structured data (full id, shortId, name, description, status, enabled tools count).',
|
|
4
|
+
description: 'Lists all agents for the authenticated tenant. Returns a name-first text summary (AgentFamily variants are tagged with their variantKey) plus structured data (full id, shortId, name, description, status, enabled tools count, familyId, variantKey).',
|
|
5
5
|
inputSchema: { type: 'object', properties: {}, required: [] }
|
|
6
6
|
};
|
|
7
7
|
export async function listAgentsHandler(client, _args) {
|
|
@@ -10,7 +10,10 @@ export async function listAgentsHandler(client, _args) {
|
|
|
10
10
|
const data = agents.map((a) => ({ ...a, shortId: shortId(a.id) }));
|
|
11
11
|
const text = data.length
|
|
12
12
|
? data
|
|
13
|
-
.map((a, i) =>
|
|
13
|
+
.map((a, i) => {
|
|
14
|
+
const family = a.familyId ? ` · family:${a.variantKey ?? shortId(a.familyId)}` : '';
|
|
15
|
+
return `${i + 1}. ${a.name} (${a.shortId}) [${a.status}]${family} · ${a.enabledToolsCount ?? 0} tools`;
|
|
16
|
+
})
|
|
14
17
|
.join('\n')
|
|
15
18
|
: 'No agents found.';
|
|
16
19
|
return { success: res?.success ?? true, count: data.length, data, text };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list_agents.js","sourceRoot":"","sources":["../../src/tools/list_agents.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,MAAM,CAAC,MAAM,gBAAgB,GAAS;IACpC,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"list_agents.js","sourceRoot":"","sources":["../../src/tools/list_agents.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,MAAM,CAAC,MAAM,gBAAgB,GAAS;IACpC,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,yPAAyP;IACtQ,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;CAC9D,CAAA;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAAuB,EAAE,KAA8B;IAC7F,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAQ,CAAA;IAC3D,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;IACvD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACvE,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM;QACtB,CAAC,CAAC,IAAI;aACD,GAAG,CAAC,CAAC,CAAM,EAAE,CAAS,EAAE,EAAE;YACzB,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;YACpF,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,IAAI,MAAM,OAAO,CAAC,CAAC,iBAAiB,IAAI,CAAC,QAAQ,CAAA;QAC3G,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC;QACf,CAAC,CAAC,kBAAkB,CAAA;IACtB,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,IAAI,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;AAC1E,CAAC"}
|