@botuyo/mcp 0.4.1 → 0.6.0

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.
Files changed (30) hide show
  1. package/README.md +19 -1
  2. package/dist/tools/__tests__/agent_families.spec.js +84 -8
  3. package/dist/tools/__tests__/agent_families.spec.js.map +1 -1
  4. package/dist/tools/__tests__/audit_agent_family.spec.d.ts +1 -0
  5. package/dist/tools/__tests__/audit_agent_family.spec.js +109 -0
  6. package/dist/tools/__tests__/audit_agent_family.spec.js.map +1 -0
  7. package/dist/tools/__tests__/export_agent_json.spec.js +66 -22
  8. package/dist/tools/__tests__/export_agent_json.spec.js.map +1 -1
  9. package/dist/tools/__tests__/import_agent_json.spec.js +28 -2
  10. package/dist/tools/__tests__/import_agent_json.spec.js.map +1 -1
  11. package/dist/tools/__tests__/update_agent.spec.js +6 -0
  12. package/dist/tools/__tests__/update_agent.spec.js.map +1 -1
  13. package/dist/tools/agent_families.d.ts +2 -1
  14. package/dist/tools/agent_families.js +88 -30
  15. package/dist/tools/agent_families.js.map +1 -1
  16. package/dist/tools/audit_agent_family.d.ts +18 -0
  17. package/dist/tools/audit_agent_family.js +136 -0
  18. package/dist/tools/audit_agent_family.js.map +1 -0
  19. package/dist/tools/example_agent.d.ts +2 -0
  20. package/dist/tools/example_agent.js +4 -0
  21. package/dist/tools/example_agent.js.map +1 -1
  22. package/dist/tools/export_agent_json.js +17 -1
  23. package/dist/tools/export_agent_json.js.map +1 -1
  24. package/dist/tools/import_agent_json.js +40 -4
  25. package/dist/tools/import_agent_json.js.map +1 -1
  26. package/dist/tools/index.js +3 -0
  27. package/dist/tools/index.js.map +1 -1
  28. package/dist/tools/update_agent.js +4 -0
  29. package/dist/tools/update_agent.js.map +1 -1
  30. package/package.json +2 -2
package/README.md CHANGED
@@ -74,7 +74,7 @@ The server resolves your JWT from `BOTUYO_TOKEN`, falling back to `~/.botuyo/cre
74
74
 
75
75
  ## Available tools
76
76
 
77
- The server exposes **30 tools**. Read tools (`list_*`, `get_*`, `export_*`) need `viewer+`; write/publish tools need `developer+` (see [Roles](#roles)).
77
+ The server exposes **41 tools**. Read tools (`list_*`, `get_*`, `export_*`) need `viewer+`; write/publish tools need `developer+` (see [Roles](#roles)).
78
78
 
79
79
  ### Agents
80
80
 
@@ -89,6 +89,24 @@ The server exposes **30 tools**. Read tools (`list_*`, `get_*`, `export_*`) need
89
89
  | `publish_agent` | Publish or unpublish an agent (live vs draft) |
90
90
  | `example_agent` | Return a fully documented example agent config (read-only reference) |
91
91
 
92
+ ### Agent families
93
+
94
+ A **family** is one logical agent with a shared `base` config plus multiple `variants` (each variant stores only its overrides and is materialized into a real agent) — ideal for a single assistant offered in several levels or flavors.
95
+
96
+ | Tool | Description |
97
+ |---|---|
98
+ | `list_agent_families` | List agent families in the tenant |
99
+ | `get_agent_family` | Get a family's shared base + all its variants |
100
+ | `create_agent_family` | Create a family with a shared base and an initial set of variants |
101
+ | `update_family_base` | Replace the shared base (re-materializes every variant) |
102
+ | `add_family_variant` | Add a new variant (materialized into a draft agent) |
103
+ | `update_family_variant` | Update a variant's label / overrides / handoff targets / order |
104
+ | `remove_family_variant` | Remove a variant (cannot remove the entry variant) |
105
+ | `publish_agent_family` | Publish the family and all its member agents |
106
+ | `delete_agent_family` | Delete a family and all its agents (irreversible; requires confirmation) |
107
+ | `export_agent_family` | Export a portable family JSON (base + variants) to a local file |
108
+ | `import_agent_family` | Replace a family's base + variants from JSON (full replace) |
109
+
92
110
  ### Conversation flow
93
111
 
94
112
  | Tool | Description |
@@ -1,5 +1,5 @@
1
1
  import { describe, it, expect, afterEach } from 'vitest';
2
- import { mkdtempSync, readFileSync, rmSync, writeFileSync } from 'fs';
2
+ import { mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from 'fs';
3
3
  import { tmpdir } from 'os';
4
4
  import { join } from 'path';
5
5
  import { listAgentFamiliesHandler, getAgentFamilyHandler, createAgentFamilyHandler, updateFamilyBaseHandler, addFamilyVariantHandler, updateFamilyVariantHandler, removeFamilyVariantHandler, publishAgentFamilyHandler, deleteAgentFamilyHandler, exportAgentFamilyHandler, importAgentFamilyHandler } from '../agent_families.js';
@@ -150,7 +150,7 @@ describe('agent family tools — publish / delete', () => {
150
150
  });
151
151
  });
152
152
  describe('agent family tools — export / import', () => {
153
- it('export GETs /export and saves a portable file', async () => {
153
+ it('export GETs /export and saves a folder (family.json + variants/*.json)', async () => {
154
154
  const dir = makeTmpDir();
155
155
  const client = new MockClient({
156
156
  [`${BASE}/fam1/export`]: {
@@ -161,18 +161,69 @@ describe('agent family tools — export / import', () => {
161
161
  name: 'Ms. Ellis',
162
162
  slug: 'ms-ellis',
163
163
  entryVariantKey: 'nivelador',
164
- base: {},
165
- variants: [{ key: 'nivelador', label: 'Nivelador', overrides: {} }]
164
+ base: { identity: { language: 'es' } },
165
+ variants: [
166
+ { key: 'nivelador', label: 'Nivelador', overrides: {} },
167
+ { key: 'a1', label: 'A1', overrides: { identity: { tone: 'x' } } }
168
+ ]
166
169
  }
167
170
  }
168
171
  }
169
172
  });
170
173
  const res = (await exportAgentFamilyHandler(client, { familyId: 'fam1', savePath: dir }));
171
174
  expect(client.calls[0]).toEqual({ method: 'get', path: `${BASE}/fam1/export` });
172
- expect(res.savedTo).toBe(join(dir, 'ms-ellis.json'));
173
- const saved = JSON.parse(readFileSync(res.savedTo, 'utf-8'));
174
- expect(saved._familyId).toBe('fam1');
175
- expect(saved.entryVariantKey).toBe('nivelador');
175
+ // saves a per-family FOLDER (named after the slug), not a single giant file
176
+ const famDir = join(dir, 'ms-ellis');
177
+ expect(res.savedTo).toBe(famDir);
178
+ // family.json holds metadata + base, but NOT the variants array
179
+ const familyJson = JSON.parse(readFileSync(join(famDir, 'family.json'), 'utf-8'));
180
+ // versioned _meta envelope (replaces the flat _exportedAt/_familyId fields)
181
+ expect(familyJson._meta).toMatchObject({ schema: 'botuyo.agent/v1', familyId: 'fam1', slug: 'ms-ellis' });
182
+ expect(typeof familyJson._meta.exportedAt).toBe('string');
183
+ expect(familyJson._familyId).toBeUndefined();
184
+ expect(familyJson._exportedAt).toBeUndefined();
185
+ expect(familyJson.entryVariantKey).toBe('nivelador');
186
+ expect(familyJson.base).toEqual({ identity: { language: 'es' } });
187
+ expect(familyJson.variants).toBeUndefined();
188
+ // one readable file per variant under variants/
189
+ const nivelador = JSON.parse(readFileSync(join(famDir, 'variants', 'nivelador.json'), 'utf-8'));
190
+ expect(nivelador).toEqual({ key: 'nivelador', label: 'Nivelador', overrides: {} });
191
+ const a1 = JSON.parse(readFileSync(join(famDir, 'variants', 'a1.json'), 'utf-8'));
192
+ expect(a1.overrides.identity.tone).toBe('x');
193
+ });
194
+ it('import (folder) reassembles variants ordered by `order`, not by filename', async () => {
195
+ const dir = makeTmpDir();
196
+ const famDir = join(dir, 'ordered');
197
+ mkdirSync(join(famDir, 'variants'), { recursive: true });
198
+ writeFileSync(join(famDir, 'family.json'), JSON.stringify({ _meta: { schema: 'botuyo.agent/v1', familyId: 'fam-ord', slug: 'ordered' }, entryVariantKey: 'first', base: {} }), 'utf-8');
199
+ // filenames sort to [entry, first, mid] but `order` is first(0) → mid(1) → entry(2)
200
+ writeFileSync(join(famDir, 'variants', 'entry.json'), JSON.stringify({ key: 'entry', label: 'E', overrides: {}, order: 2 }), 'utf-8');
201
+ writeFileSync(join(famDir, 'variants', 'first.json'), JSON.stringify({ key: 'first', label: 'F', overrides: {}, order: 0 }), 'utf-8');
202
+ writeFileSync(join(famDir, 'variants', 'mid.json'), JSON.stringify({ key: 'mid', label: 'M', overrides: {}, order: 1 }), 'utf-8');
203
+ const client = new MockClient();
204
+ await importAgentFamilyHandler(client, { filePath: famDir });
205
+ const payload = client.calls[0].payload;
206
+ expect(payload.variants.map((v) => v.key)).toEqual(['first', 'mid', 'entry']);
207
+ });
208
+ it('import (folder) derives familyId from the _meta envelope and strips _meta', async () => {
209
+ const dir = makeTmpDir();
210
+ const famDir = join(dir, 'meta-fam');
211
+ mkdirSync(join(famDir, 'variants'), { recursive: true });
212
+ writeFileSync(join(famDir, 'family.json'), JSON.stringify({
213
+ _meta: { schema: 'botuyo.agent/v1', familyId: 'fam-meta', slug: 'meta-fam', exportedAt: '2026-06-21T00:00:00.000Z' },
214
+ name: 'Meta',
215
+ slug: 'meta-fam',
216
+ entryVariantKey: 'k',
217
+ base: {}
218
+ }), 'utf-8');
219
+ writeFileSync(join(famDir, 'variants', 'k.json'), JSON.stringify({ key: 'k', label: 'K', overrides: {}, order: 0 }), 'utf-8');
220
+ const client = new MockClient();
221
+ await importAgentFamilyHandler(client, { filePath: famDir });
222
+ expect(client.calls[0].path).toBe(`${BASE}/fam-meta/import`);
223
+ const payload = client.calls[0].payload;
224
+ expect(payload._meta).toBeUndefined();
225
+ expect(payload.entryVariantKey).toBe('k');
226
+ expect(payload.variants).toHaveLength(1);
176
227
  });
177
228
  it('import (inline) PUTs the family to /import', async () => {
178
229
  const client = new MockClient();
@@ -206,6 +257,31 @@ describe('agent family tools — export / import', () => {
206
257
  expect(client.calls[0].payload.entryVariantKey).toBe('nivelador');
207
258
  expect(res.importedFrom).toBe(file);
208
259
  });
260
+ it('import (folder) reassembles family.json + variants/*.json into one payload', async () => {
261
+ const dir = makeTmpDir();
262
+ const famDir = join(dir, 'ms-ellis');
263
+ mkdirSync(join(famDir, 'variants'), { recursive: true });
264
+ writeFileSync(join(famDir, 'family.json'), JSON.stringify({
265
+ _exportedAt: '2026-06-20T00:00:00.000Z',
266
+ _familyId: 'fam-from-dir',
267
+ name: 'Ms. Ellis',
268
+ slug: 'ms-ellis',
269
+ entryVariantKey: 'nivelador',
270
+ base: {}
271
+ }), 'utf-8');
272
+ writeFileSync(join(famDir, 'variants', 'nivelador.json'), JSON.stringify({ key: 'nivelador', label: 'N', overrides: {} }), 'utf-8');
273
+ writeFileSync(join(famDir, 'variants', 'a1.json'), JSON.stringify({ key: 'a1', label: 'A1', overrides: {} }), 'utf-8');
274
+ const client = new MockClient();
275
+ const res = (await importAgentFamilyHandler(client, { filePath: famDir }));
276
+ expect(client.calls[0].path).toBe(`${BASE}/fam-from-dir/import`);
277
+ const payload = client.calls[0].payload;
278
+ expect(payload._familyId).toBeUndefined();
279
+ expect(payload._exportedAt).toBeUndefined();
280
+ expect(payload.entryVariantKey).toBe('nivelador');
281
+ expect(payload.variants).toHaveLength(2);
282
+ expect(payload.variants.map((v) => v.key).sort()).toEqual(['a1', 'nivelador']);
283
+ expect(res.importedFrom).toBe(famDir);
284
+ });
209
285
  it('import errors when neither familyId nor _familyId is available', async () => {
210
286
  const client = new MockClient();
211
287
  const res = (await importAgentFamilyHandler(client, {
@@ -1 +1 @@
1
- {"version":3,"file":"agent_families.spec.js","sourceRoot":"","sources":["../../../src/tools/__tests__/agent_families.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent_families.spec.js","sourceRoot":"","sources":["../../../src/tools/__tests__/agent_families.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,109 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { auditAgentFamilyHandler } from '../audit_agent_family.js';
3
+ /** MockClient that returns a canned response per path and records the paths hit. */
4
+ class MockClient {
5
+ responses;
6
+ paths = [];
7
+ constructor(responses) {
8
+ this.responses = responses;
9
+ }
10
+ async get(path) {
11
+ this.paths.push(path);
12
+ return this.responses[path] ?? { success: true, data: null };
13
+ }
14
+ async post() {
15
+ return { success: true };
16
+ }
17
+ async put() {
18
+ return { success: true };
19
+ }
20
+ async delete() {
21
+ return { success: true };
22
+ }
23
+ }
24
+ const familyWithIssues = {
25
+ _id: 'fam1',
26
+ slug: 'demo',
27
+ name: 'Demo',
28
+ entryVariantKey: 'default',
29
+ base: {},
30
+ variants: [
31
+ {
32
+ key: 'default',
33
+ label: 'Default',
34
+ overrides: {
35
+ voice: { profile: 'Voz Inexistente' }, // invalid → error
36
+ identity: { customInstructions: 'x'.repeat(2500) }, // > 2000 → warning
37
+ model: 'gemini-2.0-flash', // deprecated → warning
38
+ widgetConfig: {
39
+ avatarUrl: 'https://cdn.example.com/a.png', // ok
40
+ avatar2dAnimations: { happy: 'agents/emotions/x.png' } // not a URL → warning
41
+ }
42
+ // no memoryNamespace + single variant → info
43
+ }
44
+ }
45
+ ]
46
+ };
47
+ describe('audit_agent_family', () => {
48
+ it('flags invalid voice, prompt truncation, deprecated model, non-URL avatar, and memoryNamespace default', async () => {
49
+ const client = new MockClient({ '/api/v1/mcp/agent-families/fam1': { success: true, data: familyWithIssues } });
50
+ const res = (await auditAgentFamilyHandler(client, { familyId: 'fam1' }));
51
+ expect(client.paths).toContain('/api/v1/mcp/agent-families/fam1');
52
+ const codes = res.reports[0].issues.map((i) => i.code);
53
+ expect(codes).toContain('invalid_voice');
54
+ expect(codes).toContain('prompt_truncated');
55
+ expect(codes).toContain('deprecated_model');
56
+ expect(codes).toContain('non_url_avatar');
57
+ expect(codes).toContain('memory_default_slug');
58
+ expect(res.totals.errors).toBeGreaterThanOrEqual(1);
59
+ });
60
+ it('flags a valid-but-non-canonical voice (display name) as info, not error', async () => {
61
+ const fam = {
62
+ _id: 'f3',
63
+ slug: 'hilton',
64
+ name: 'Hilton',
65
+ entryVariantKey: 'default',
66
+ base: { memoryNamespace: 'hilton' },
67
+ variants: [{ key: 'default', label: 'D', overrides: { voice: { profile: 'Profesional Femenina' } } }]
68
+ };
69
+ const client = new MockClient({ '/api/v1/mcp/agent-families/f3': { success: true, data: fam } });
70
+ const res = (await auditAgentFamilyHandler(client, { familyId: 'f3' }));
71
+ const codes = res.reports[0].issues.map((i) => i.code);
72
+ expect(codes).toContain('noncanonical_voice');
73
+ expect(codes).not.toContain('invalid_voice');
74
+ });
75
+ it('reports zero issues for a clean family (canonical voice id, short prompt, URL avatar, memoryNamespace set)', async () => {
76
+ const clean = {
77
+ _id: 'f2',
78
+ slug: 'clean',
79
+ name: 'Clean',
80
+ entryVariantKey: 'default',
81
+ base: { memoryNamespace: 'clean' },
82
+ variants: [
83
+ {
84
+ key: 'default',
85
+ label: 'D',
86
+ overrides: {
87
+ voice: { profile: 'kore' },
88
+ identity: { customInstructions: 'short' },
89
+ widgetConfig: { avatarUrl: 'https://cdn.example.com/a.png' }
90
+ }
91
+ }
92
+ ]
93
+ };
94
+ const client = new MockClient({ '/api/v1/mcp/agent-families/f2': { success: true, data: clean } });
95
+ const res = (await auditAgentFamilyHandler(client, { familyId: 'f2' }));
96
+ expect(res.reports[0].issues).toHaveLength(0);
97
+ });
98
+ it('audits every family in the tenant when familyId is omitted', async () => {
99
+ const client = new MockClient({
100
+ '/api/v1/mcp/agent-families': { success: true, data: [{ _id: 'fam1' }] },
101
+ '/api/v1/mcp/agent-families/fam1': { success: true, data: familyWithIssues }
102
+ });
103
+ const res = (await auditAgentFamilyHandler(client, {}));
104
+ expect(client.paths).toContain('/api/v1/mcp/agent-families');
105
+ expect(client.paths).toContain('/api/v1/mcp/agent-families/fam1');
106
+ expect(res.audited).toBe(1);
107
+ });
108
+ });
109
+ //# sourceMappingURL=audit_agent_family.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit_agent_family.spec.js","sourceRoot":"","sources":["../../../src/tools/__tests__/audit_agent_family.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AAElE,oFAAoF;AACpF,MAAM,UAAU;IAEe;IADtB,KAAK,GAAa,EAAE,CAAA;IAC3B,YAA6B,SAAkC;QAAlC,cAAS,GAAT,SAAS,CAAyB;IAAG,CAAC;IACnE,KAAK,CAAC,GAAG,CAAC,IAAY;QACpB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;IAC9D,CAAC;IACD,KAAK,CAAC,IAAI;QACR,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC1B,CAAC;IACD,KAAK,CAAC,GAAG;QACP,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC1B,CAAC;IACD,KAAK,CAAC,MAAM;QACV,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC1B,CAAC;CACF;AAED,MAAM,gBAAgB,GAAG;IACvB,GAAG,EAAE,MAAM;IACX,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,eAAe,EAAE,SAAS;IAC1B,IAAI,EAAE,EAAE;IACR,QAAQ,EAAE;QACR;YACE,GAAG,EAAE,SAAS;YACd,KAAK,EAAE,SAAS;YAChB,SAAS,EAAE;gBACT,KAAK,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,EAAE,kBAAkB;gBACzD,QAAQ,EAAE,EAAE,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,mBAAmB;gBACvE,KAAK,EAAE,kBAAkB,EAAE,uBAAuB;gBAClD,YAAY,EAAE;oBACZ,SAAS,EAAE,+BAA+B,EAAE,KAAK;oBACjD,kBAAkB,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,sBAAsB;iBAC9E;gBACD,6CAA6C;aAC9C;SACF;KACF;CACF,CAAA;AAED,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,uGAAuG,EAAE,KAAK,IAAI,EAAE;QACrH,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,EAAE,iCAAiC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAA;QAC/G,MAAM,GAAG,GAAG,CAAC,MAAM,uBAAuB,CAAC,MAAe,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAIhF,CAAA;QAED,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAA;QACjE,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACtD,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAA;QACxC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;QAC3C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;QAC3C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAA;QACzC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAA;QAC9C,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAA;IACrD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;QACvF,MAAM,GAAG,GAAG;YACV,GAAG,EAAE,IAAI;YACT,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,QAAQ;YACd,eAAe,EAAE,SAAS;YAC1B,IAAI,EAAE,EAAE,eAAe,EAAE,QAAQ,EAAE;YACnC,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,sBAAsB,EAAE,EAAE,EAAE,CAAC;SACtG,CAAA;QACD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,EAAE,+BAA+B,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAA;QAChG,MAAM,GAAG,GAAG,CAAC,MAAM,uBAAuB,CAAC,MAAe,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAE9E,CAAA;QACD,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACtD,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAA;QAC7C,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,eAAe,CAAC,CAAA;IAC9C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4GAA4G,EAAE,KAAK,IAAI,EAAE;QAC1H,MAAM,KAAK,GAAG;YACZ,GAAG,EAAE,IAAI;YACT,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,OAAO;YACb,eAAe,EAAE,SAAS;YAC1B,IAAI,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE;YAClC,QAAQ,EAAE;gBACR;oBACE,GAAG,EAAE,SAAS;oBACd,KAAK,EAAE,GAAG;oBACV,SAAS,EAAE;wBACT,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;wBAC1B,QAAQ,EAAE,EAAE,kBAAkB,EAAE,OAAO,EAAE;wBACzC,YAAY,EAAE,EAAE,SAAS,EAAE,+BAA+B,EAAE;qBAC7D;iBACF;aACF;SACF,CAAA;QACD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,EAAE,+BAA+B,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAA;QAClG,MAAM,GAAG,GAAG,CAAC,MAAM,uBAAuB,CAAC,MAAe,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAE9E,CAAA;QACD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC1E,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC;YAC5B,4BAA4B,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE;YACxE,iCAAiC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE;SAC7E,CAAC,CAAA;QACF,MAAM,GAAG,GAAG,CAAC,MAAM,uBAAuB,CAAC,MAAe,EAAE,EAAE,CAAC,CAAwB,CAAA;QACvF,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAA;QAC5D,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAA;QACjE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC7B,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -1,30 +1,74 @@
1
- import { vi, describe, it, expect } from 'vitest';
1
+ import { describe, it, expect, afterEach } from 'vitest';
2
+ import { existsSync, mkdtempSync, readFileSync, rmSync } from 'fs';
3
+ import { tmpdir } from 'os';
4
+ import { join } from 'path';
2
5
  import { exportAgentJsonHandler } from '../export_agent_json.js';
3
- import * as fs from 'fs';
4
- vi.mock('fs', () => ({
5
- writeFileSync: vi.fn(),
6
- mkdirSync: vi.fn()
7
- }));
8
- class MockGetClient {
6
+ class MockClient {
7
+ responses;
8
+ paths = [];
9
+ constructor(responses = {}) {
10
+ this.responses = responses;
11
+ }
9
12
  async get(path) {
10
- expect(path).toBe('/api/v1/mcp/agents/a1/export');
11
- return {
12
- success: true,
13
- data: {
14
- agentId: 'a1',
15
- apiKey: 'key',
16
- agentConfig: { name: 'Test Bot' }
17
- }
18
- };
13
+ this.paths.push(path);
14
+ return this.responses[path] ?? { success: true, data: {} };
19
15
  }
20
16
  }
21
- describe('exportAgentJsonHandler', () => {
22
- it('should fetch export data and mock write file correctly', async () => {
23
- const client = new MockGetClient();
24
- const res = await exportAgentJsonHandler(client, { agentId: 'a1', savePath: './tmp_test' });
17
+ const tmpDirs = [];
18
+ function makeTmpDir() {
19
+ const d = mkdtempSync(join(tmpdir(), 'exp-'));
20
+ tmpDirs.push(d);
21
+ return d;
22
+ }
23
+ afterEach(() => {
24
+ while (tmpDirs.length)
25
+ rmSync(tmpDirs.pop(), { recursive: true, force: true });
26
+ });
27
+ describe('exportAgentJsonHandler — unified (everything is a family)', () => {
28
+ it('delegates to the family export (uniform folder) when the agent belongs to a family', async () => {
29
+ const dir = makeTmpDir();
30
+ const client = new MockClient({
31
+ '/api/v1/mcp/agents/a1': { success: true, data: { familyId: 'fam1' } },
32
+ '/api/v1/mcp/agent-families/fam1/export': {
33
+ success: true,
34
+ data: {
35
+ familyId: 'fam1',
36
+ family: {
37
+ name: 'Bot',
38
+ slug: 'bot',
39
+ entryVariantKey: 'default',
40
+ base: {},
41
+ variants: [{ key: 'default', label: 'Bot', overrides: {}, order: 0 }]
42
+ }
43
+ }
44
+ }
45
+ });
46
+ const res = (await exportAgentJsonHandler(client, { agentId: 'a1', savePath: dir }));
47
+ // resolves agentId → familyId, then exports the whole logical agent as a folder
48
+ expect(client.paths).toContain('/api/v1/mcp/agents/a1');
49
+ expect(client.paths).toContain('/api/v1/mcp/agent-families/fam1/export');
50
+ const famDir = join(dir, 'bot');
51
+ expect(res.savedTo).toBe(famDir);
52
+ expect(existsSync(join(famDir, 'family.json'))).toBe(true);
53
+ // simple agent = exactly one variant file
54
+ expect(existsSync(join(famDir, 'variants', 'default.json'))).toBe(true);
55
+ });
56
+ it('falls back to the legacy single-file export for a standalone agent (no familyId)', async () => {
57
+ const dir = makeTmpDir();
58
+ const client = new MockClient({
59
+ '/api/v1/mcp/agents/a1': { success: true, data: { familyId: null } },
60
+ '/api/v1/mcp/agents/a1/export': {
61
+ success: true,
62
+ data: { agentId: 'a1', apiKey: 'key', agentConfig: { name: 'Test Bot' } }
63
+ }
64
+ });
65
+ const res = (await exportAgentJsonHandler(client, { agentId: 'a1', savePath: dir }));
25
66
  expect(res.success).toBe(true);
26
- expect(fs.mkdirSync).toHaveBeenCalled();
27
- expect(fs.writeFileSync).toHaveBeenCalled();
67
+ const file = join(dir, 'test_bot.json');
68
+ expect(existsSync(file)).toBe(true);
69
+ const saved = JSON.parse(readFileSync(file, 'utf-8'));
70
+ expect(saved._agentId).toBe('a1');
71
+ expect(saved.name).toBe('Test Bot');
28
72
  });
29
73
  });
30
74
  //# sourceMappingURL=export_agent_json.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"export_agent_json.spec.js","sourceRoot":"","sources":["../../../src/tools/__tests__/export_agent_json.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AAExB,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;IACnB,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE;IACtB,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE;CACnB,CAAC,CAAC,CAAA;AAEH,MAAM,aAAa;IACjB,KAAK,CAAC,GAAG,CAAC,IAAY;QACpB,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAA;QACjD,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE;gBACJ,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,KAAK;gBACb,WAAW,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;aAClC;SACF,CAAA;IACH,CAAC;CACF;AAED,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,MAAM,GAAG,IAAI,aAAa,EAAS,CAAA;QACzC,MAAM,GAAG,GAAG,MAAM,sBAAsB,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAA;QAE3F,MAAM,CAAE,GAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACvC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,gBAAgB,EAAE,CAAA;QACvC,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,gBAAgB,EAAE,CAAA;IAC7C,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"export_agent_json.spec.js","sourceRoot":"","sources":["../../../src/tools/__tests__/export_agent_json.spec.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,7 @@
1
- import { describe, it, expect } from 'vitest';
1
+ import { describe, it, expect, afterEach } from 'vitest';
2
+ import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from 'fs';
3
+ import { tmpdir } from 'os';
4
+ import { join } from 'path';
2
5
  import { importAgentJsonHandler } from '../import_agent_json.js';
3
6
  class MockPutClient {
4
7
  methodCalls = [];
@@ -7,8 +10,18 @@ class MockPutClient {
7
10
  return { success: true };
8
11
  }
9
12
  }
13
+ const tmpDirs = [];
14
+ function makeTmpDir() {
15
+ const d = mkdtempSync(join(tmpdir(), 'imp-'));
16
+ tmpDirs.push(d);
17
+ return d;
18
+ }
19
+ afterEach(() => {
20
+ while (tmpDirs.length)
21
+ rmSync(tmpDirs.pop(), { recursive: true, force: true });
22
+ });
10
23
  describe('importAgentJsonHandler', () => {
11
- it('should process inline config successfully', async () => {
24
+ it('should process inline config successfully (legacy single-agent member import)', async () => {
12
25
  const client = new MockPutClient();
13
26
  const args = {
14
27
  agentId: 'a1',
@@ -24,5 +37,18 @@ describe('importAgentJsonHandler', () => {
24
37
  expect(res.success).toBe(false);
25
38
  expect(res.error).toContain('agentId is required');
26
39
  });
40
+ it('delegates to the family importer when filePath is a family folder', async () => {
41
+ const dir = makeTmpDir();
42
+ const famDir = join(dir, 'bot');
43
+ mkdirSync(join(famDir, 'variants'), { recursive: true });
44
+ writeFileSync(join(famDir, 'family.json'), JSON.stringify({ _meta: { schema: 'botuyo.agent/v1', familyId: 'fam1', slug: 'bot' }, entryVariantKey: 'default', base: {} }));
45
+ writeFileSync(join(famDir, 'variants', 'default.json'), JSON.stringify({ key: 'default', label: 'Bot', overrides: {}, order: 0 }));
46
+ const client = new MockPutClient();
47
+ await importAgentJsonHandler(client, { filePath: famDir });
48
+ // familyId comes from the _meta envelope → routed to the family importer (not the member import)
49
+ expect(client.methodCalls[0].path).toBe('/api/v1/mcp/agent-families/fam1/import');
50
+ expect(client.methodCalls[0].payload._meta).toBeUndefined();
51
+ expect(client.methodCalls[0].payload.variants).toHaveLength(1);
52
+ });
27
53
  });
28
54
  //# sourceMappingURL=import_agent_json.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"import_agent_json.spec.js","sourceRoot":"","sources":["../../../src/tools/__tests__/import_agent_json.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAEhE,MAAM,aAAa;IACV,WAAW,GAAU,EAAE,CAAA;IAC9B,KAAK,CAAC,GAAG,CAAC,IAAY,EAAE,OAAY;QAClC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;QACxC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC1B,CAAC;CACF;AAED,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,MAAM,GAAG,IAAI,aAAa,EAAS,CAAA;QACzC,MAAM,IAAI,GAAG;YACX,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;SACpE,CAAA;QAED,MAAM,GAAG,GAAG,MAAM,sBAAsB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAEtD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAA;QACvE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAC3E,MAAM,CAAE,GAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,GAAG,GAAG,MAAM,sBAAsB,CAAC,EAAS,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAA;QACxE,MAAM,CAAE,GAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACxC,MAAM,CAAE,GAAW,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAA;IAC7D,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"import_agent_json.spec.js","sourceRoot":"","sources":["../../../src/tools/__tests__/import_agent_json.spec.ts"],"names":[],"mappings":"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"}
@@ -19,5 +19,11 @@ describe('updateAgentHandler', () => {
19
19
  it('should require agentId', async () => {
20
20
  await expect(updateAgentHandler({}, {})).rejects.toThrow();
21
21
  });
22
+ it('forwards requiresUserIdentity in the update payload', async () => {
23
+ const client = new MockClient();
24
+ await updateAgentHandler(client, { agentId: 'a1', requiresUserIdentity: true });
25
+ expect(client.methodCalls[0].path).toBe('/api/v1/mcp/agents/a1');
26
+ expect(client.methodCalls[0].payload.requiresUserIdentity).toBe(true);
27
+ });
22
28
  });
23
29
  //# sourceMappingURL=update_agent.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"update_agent.spec.js","sourceRoot":"","sources":["../../../src/tools/__tests__/update_agent.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAEvD,MAAM,UAAU;IACP,WAAW,GAAU,EAAE,CAAA;IAC9B,KAAK,CAAC,GAAG,CAAC,IAAY,EAAE,OAAY;QAClC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;QACxC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC1B,CAAC;CACF;AAED,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,MAAM,GAAG,IAAI,UAAU,EAAS,CAAA;QACtC,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,CAAA;QAEhF,MAAM,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAEtC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;QAChE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC3D,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACtE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QACtC,MAAM,MAAM,CAAC,kBAAkB,CAAC,EAAS,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA;IACnE,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"update_agent.spec.js","sourceRoot":"","sources":["../../../src/tools/__tests__/update_agent.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAEvD,MAAM,UAAU;IACP,WAAW,GAAU,EAAE,CAAA;IAC9B,KAAK,CAAC,GAAG,CAAC,IAAY,EAAE,OAAY;QAClC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;QACxC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC1B,CAAC;CACF;AAED,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,MAAM,GAAG,IAAI,UAAU,EAAS,CAAA;QACtC,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,CAAA;QAEhF,MAAM,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAEtC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;QAChE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC3D,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACtE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QACtC,MAAM,MAAM,CAAC,kBAAkB,CAAC,EAAS,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA;IACnE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,MAAM,GAAG,IAAI,UAAU,EAAS,CAAA;QACtC,MAAM,kBAAkB,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,CAAA;QAE/E,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;QAChE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACvE,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -39,8 +39,9 @@ export declare function exportAgentFamilyHandler(client: BotuyoApiClient, args:
39
39
  success?: boolean;
40
40
  data?: {
41
41
  familyId?: string;
42
- family?: {
42
+ family?: Record<string, unknown> & {
43
43
  slug?: string;
44
+ variants?: Array<Record<string, unknown>>;
44
45
  };
45
46
  };
46
47
  message?: string;