@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
@@ -8,8 +8,9 @@
8
8
  * Write tools (create/update/add/remove/publish/delete/import) require role:
9
9
  * owner, admin, or developer (enforced server-side).
10
10
  */
11
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
12
- import { join, resolve } from 'path';
11
+ import { buildExportMeta, parseExportMeta, sortVariantsByOrder } from '@botuyo/contracts';
12
+ import { existsSync, mkdirSync, readdirSync, readFileSync, statSync, writeFileSync } from 'fs';
13
+ import { basename, dirname, join, resolve } from 'path';
13
14
  const BASE = '/api/v1/mcp/agent-families';
14
15
  const PARTIAL_CONFIG_DESC = 'Partial agent config (only the fields that diverge). Same shape as agentConfig: ' +
15
16
  'identity {tone,language,objective,customInstructions}, stages, connections, enabledTools, ' +
@@ -216,14 +217,14 @@ export async function deleteAgentFamilyHandler(client, args) {
216
217
  // ── 10. export_agent_family ─────────────────────────────────────────────────
217
218
  export const EXPORT_AGENT_FAMILY_TOOL = {
218
219
  name: 'export_agent_family',
219
- description: 'Export a portable family JSON (name, slug, entryVariantKey, base, variants — internal fields stripped), ' +
220
- 'ready to edit and re-import. Auto-saves to ./agent-families/{slug}.json (override with savePath). ' +
221
- 'Use import_agent_family to apply edits (full replace).',
220
+ description: 'Export a family to a readable FOLDER: {savePath}/{slug}/family.json (name, slug, entryVariantKey, ' +
221
+ 'base + metadata) plus one variants/{key}.json per variant. Default savePath ./agent-families. ' +
222
+ 'Edit the files and re-import with import_agent_family (point it at the folder).',
222
223
  inputSchema: {
223
224
  type: 'object',
224
225
  properties: {
225
226
  familyId: { type: 'string', description: 'The agent family id.' },
226
- savePath: { type: 'string', description: 'Optional directory for the saved JSON. Default: ./agent-families/' }
227
+ savePath: { type: 'string', description: 'Optional parent directory for the saved family folder. Default: ./agent-families/' }
227
228
  },
228
229
  required: ['familyId']
229
230
  }
@@ -235,21 +236,29 @@ export async function exportAgentFamilyHandler(client, args) {
235
236
  if (result?.success && result?.data?.family) {
236
237
  try {
237
238
  const family = result.data.family;
238
- const sanitized = (family.slug || familyId)
239
- .replace(/[^\w\s-]/g, '')
240
- .replace(/\s+/g, '_')
241
- .toLowerCase()
242
- .substring(0, 50);
243
- const dir = resolve(savePath);
244
- mkdirSync(dir, { recursive: true });
245
- const filePath = join(dir, `${sanitized}.json`);
246
- const payload = { _exportedAt: new Date().toISOString(), _familyId: result.data.familyId, ...family };
247
- writeFileSync(filePath, JSON.stringify(payload, null, 2), 'utf-8');
248
- result.savedTo = filePath;
249
- result.message = `${result.message || ''} File saved to: ${filePath}`;
239
+ const slug = sanitizeName(family.slug || familyId);
240
+ const famDir = join(resolve(savePath), slug);
241
+ const variantsDir = join(famDir, 'variants');
242
+ mkdirSync(variantsDir, { recursive: true });
243
+ const variants = Array.isArray(family.variants) ? family.variants : [];
244
+ const { variants: _variants, ...familyMeta } = family;
245
+ void _variants;
246
+ // family.json: versioned _meta envelope + metadata + base, WITHOUT the (huge) variants array
247
+ const familyJson = {
248
+ _meta: buildExportMeta({ slug: family.slug, familyId: result.data.familyId }),
249
+ ...familyMeta
250
+ };
251
+ writeFileSync(join(famDir, 'family.json'), JSON.stringify(familyJson, null, 2), 'utf-8');
252
+ // one file per variant — small, readable, clean diffs
253
+ for (const variant of variants) {
254
+ const key = sanitizeName(String(variant.key ?? 'variant'));
255
+ writeFileSync(join(variantsDir, `${key}.json`), JSON.stringify(variant, null, 2), 'utf-8');
256
+ }
257
+ result.savedTo = famDir;
258
+ result.message = `${result.message || ''} Saved family.json + ${variants.length} variant file(s) to: ${famDir}`;
250
259
  }
251
260
  catch (err) {
252
- result.fileSaveError = `Could not save file: ${err instanceof Error ? err.message : String(err)}`;
261
+ result.fileSaveError = `Could not save folder: ${err instanceof Error ? err.message : String(err)}`;
253
262
  }
254
263
  }
255
264
  return result;
@@ -257,11 +266,12 @@ export async function exportAgentFamilyHandler(client, args) {
257
266
  // ── 11. import_agent_family ─────────────────────────────────────────────────
258
267
  export const IMPORT_AGENT_FAMILY_TOOL = {
259
268
  name: 'import_agent_family',
260
- description: 'Import/replace a family\'s base + variant set from a local JSON file or an inline object (FULL REPLACE).\n\n' +
269
+ description: 'Import/replace a family\'s base + variant set from a local FOLDER, a single JSON file, or an inline object (FULL REPLACE).\n\n' +
261
270
  'Reconciles members: surviving variant keys keep their materialized agent, new keys are created, ' +
262
271
  'dropped keys are soft-deleted. Subject to the per-plan maxVariantsPerFamily limit.\n\n' +
263
- 'Provide the family via `filePath` (preferred — a file from export_agent_family) or inline `family`. ' +
264
- 'If both are given, filePath wins. Requires role: owner, admin, or developer.',
272
+ 'Provide the family via `filePath` (preferred — a folder from export_agent_family: family.json + variants/*.json; ' +
273
+ 'a single legacy .json also works) or inline `family`. If both are given, filePath wins. ' +
274
+ 'Requires role: owner, admin, or developer.',
265
275
  inputSchema: {
266
276
  type: 'object',
267
277
  properties: {
@@ -269,7 +279,7 @@ export const IMPORT_AGENT_FAMILY_TOOL = {
269
279
  type: 'string',
270
280
  description: 'The family id to overwrite. If omitted and the file contains _familyId, that is used.'
271
281
  },
272
- filePath: { type: 'string', description: 'Path to a local family JSON file (e.g. ./agent-families/ms-ellis.json).' },
282
+ filePath: { type: 'string', description: 'Path to a family folder (e.g. ./agent-families/ms-ellis), its family.json, or a single .json file.' },
273
283
  family: {
274
284
  type: 'object',
275
285
  description: 'Inline family payload (fallback if filePath is omitted).',
@@ -294,20 +304,24 @@ export async function importAgentFamilyHandler(client, args) {
294
304
  if (!existsSync(resolvedPath)) {
295
305
  return {
296
306
  success: false,
297
- error: `File not found: ${resolvedPath}`,
298
- hint: 'Use export_agent_family first to create a local file, or check the path.'
307
+ error: `Path not found: ${resolvedPath}`,
308
+ hint: 'Use export_agent_family first to create a local family folder, or check the path.'
299
309
  };
300
310
  }
301
311
  try {
302
- const parsed = JSON.parse(readFileSync(resolvedPath, 'utf-8'));
303
- const { _exportedAt, _familyId, ...content } = parsed;
312
+ const parsed = readFamilyFromPath(resolvedPath);
313
+ // Resolve provenance via the shared contract (versioned `_meta` or legacy `_familyId`).
314
+ if (!familyId)
315
+ familyId = parseExportMeta(parsed).familyId;
316
+ // Strip provenance fields so only authoring content reaches the API.
317
+ const { _exportedAt, _familyId, _meta, ...content } = parsed;
304
318
  void _exportedAt;
305
- if (!familyId && _familyId)
306
- familyId = _familyId;
319
+ void _familyId;
320
+ void _meta;
307
321
  family = content;
308
322
  }
309
323
  catch (err) {
310
- return { success: false, error: `Failed to read/parse file: ${err instanceof Error ? err.message : String(err)}`, path: resolvedPath };
324
+ return { success: false, error: `Failed to read/parse: ${err instanceof Error ? err.message : String(err)}`, path: resolvedPath };
311
325
  }
312
326
  }
313
327
  if (!familyId) {
@@ -322,4 +336,48 @@ export async function importAgentFamilyHandler(client, args) {
322
336
  const result = await client.put(`${BASE}/${familyId}/import`, family);
323
337
  return { ...result, importedFrom: filePath ? resolve(filePath) : 'inline' };
324
338
  }
339
+ // ── helpers ─────────────────────────────────────────────────────────────────
340
+ /** Make a slug/variant key safe to use as a file/directory name. */
341
+ function sanitizeName(name) {
342
+ const cleaned = String(name)
343
+ .trim()
344
+ .replace(/[^a-zA-Z0-9._-]+/g, '-')
345
+ .replace(/^[-.]+|[-.]+$/g, '');
346
+ return cleaned || 'family';
347
+ }
348
+ /**
349
+ * Read a family payload from a path that may be:
350
+ * - a folder (family.json + variants/*.json) → reassembled with a `variants` array,
351
+ * - a `family.json` file → its parent folder is reassembled,
352
+ * - a single legacy .json file (variants inline) → parsed as-is.
353
+ */
354
+ function readFamilyFromPath(resolvedPath) {
355
+ const stat = statSync(resolvedPath);
356
+ if (stat.isDirectory())
357
+ return readFamilyFromFolder(resolvedPath);
358
+ if (basename(resolvedPath).toLowerCase() === 'family.json')
359
+ return readFamilyFromFolder(dirname(resolvedPath));
360
+ return JSON.parse(readFileSync(resolvedPath, 'utf-8'));
361
+ }
362
+ /** Reassemble a folder (family.json + variants/*.json) into a single family object. */
363
+ function readFamilyFromFolder(dir) {
364
+ const familyJsonPath = join(dir, 'family.json');
365
+ if (!existsSync(familyJsonPath)) {
366
+ throw new Error(`family.json not found in folder: ${dir}`);
367
+ }
368
+ const family = JSON.parse(readFileSync(familyJsonPath, 'utf-8'));
369
+ const variantsDir = join(dir, 'variants');
370
+ const variants = [];
371
+ if (existsSync(variantsDir) && statSync(variantsDir).isDirectory()) {
372
+ const files = readdirSync(variantsDir)
373
+ .filter((f) => f.toLowerCase().endsWith('.json'))
374
+ .sort();
375
+ for (const file of files) {
376
+ variants.push(JSON.parse(readFileSync(join(variantsDir, file), 'utf-8')));
377
+ }
378
+ }
379
+ // Variant filenames are arbitrary; the source of truth for sequence is each variant's
380
+ // `order`. Stable-sort by order (order-less variants sink to the end) via the shared contract.
381
+ return { ...family, variants: sortVariantsByOrder(variants) };
382
+ }
325
383
  //# sourceMappingURL=agent_families.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent_families.js","sourceRoot":"","sources":["../../src/tools/agent_families.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,IAAI,CAAA;AACvE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEpC,MAAM,IAAI,GAAG,4BAA4B,CAAA;AAEzC,MAAM,mBAAmB,GACvB,kFAAkF;IAClF,4FAA4F;IAC5F,0FAA0F;IAC1F,6CAA6C,CAAA;AAE/C,MAAM,YAAY,GAAG;IACnB,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yEAAyE,EAAE;IAC/G,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qDAAqD,EAAE;IAC7F,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAE;IAC/D,cAAc,EAAE;QACd,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzB,WAAW,EAAE,0DAA0D;KACxE;IACD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wBAAwB,EAAE;CACjE,CAAA;AAED,iFAAiF;AACjF,MAAM,CAAC,MAAM,wBAAwB,GAAS;IAC5C,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EACT,qGAAqG;IACvG,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;CAChD,CAAA;AACD,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,MAAuB,EAAE,KAA8B;IACpG,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AAED,+EAA+E;AAC/E,MAAM,CAAC,MAAM,qBAAqB,GAAS;IACzC,IAAI,EAAE,kBAAkB;IACxB,WAAW,EAAE,+DAA+D;IAC5E,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE,EAAE;QACjF,QAAQ,EAAE,CAAC,UAAU,CAAC;KACvB;CACF,CAAA;AACD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,MAAuB,EAAE,IAA6B;IAChG,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,QAAkB,EAAE,CAAC,CAAA;AACzD,CAAC;AAED,+EAA+E;AAC/E,MAAM,CAAC,MAAM,wBAAwB,GAAS;IAC5C,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EACT,sFAAsF;QACtF,kFAAkF;QAClF,wEAAwE;IAC1E,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uDAAuD,EAAE;YAC9F,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wEAAwE,EAAE;YAC/G,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gEAAgE,EAAE;YAClH,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kDAAkD,mBAAmB,EAAE,EAAE;YAC9G,QAAQ,EAAE;gBACR,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,uEAAuE;gBACpF,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;aAChF;SACF;QACD,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,UAAU,CAAC;KAC1D;CACF,CAAA;AACD,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,MAAuB,EAAE,IAA6B;IACnG,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;QACvB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;QACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;KAC9B,CAAC,CAAA;AACJ,CAAC;AAED,+EAA+E;AAC/E,MAAM,CAAC,MAAM,uBAAuB,GAAS;IAC3C,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EACT,yFAAyF;QACzF,0FAA0F;IAC5F,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE;YACjE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,mBAAmB,EAAE,EAAE;SACxF;QACD,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC;KAC/B;CACF,CAAA;AACD,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,MAAuB,EAAE,IAA6B;IAClG,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,QAAkB,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAA;AACzF,CAAC;AAED,+EAA+E;AAC/E,MAAM,CAAC,MAAM,uBAAuB,GAAS;IAC3C,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EACT,gGAAgG;QAChG,wEAAwE;IAC1E,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE,EAAE,GAAG,YAAY,EAAE;QAClG,QAAQ,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC;KACvC;CACF,CAAA;AACD,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,MAAuB,EAAE,IAA6B;IAClG,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,QAAkB,WAAW,EAAE;QAChE,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE;QAC/B,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,KAAK,EAAE,IAAI,CAAC,KAAK;KAClB,CAAC,CAAA;AACJ,CAAC;AAED,+EAA+E;AAC/E,MAAM,CAAC,MAAM,0BAA0B,GAAS;IAC9C,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EACT,oGAAoG;QACpG,uFAAuF;IACzF,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE;YACjE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mCAAmC,EAAE;YAChF,KAAK,EAAE,YAAY,CAAC,KAAK;YACzB,SAAS,EAAE,YAAY,CAAC,SAAS;YACjC,cAAc,EAAE,YAAY,CAAC,cAAc;YAC3C,KAAK,EAAE,YAAY,CAAC,KAAK;SAC1B;QACD,QAAQ,EAAE,CAAC,UAAU,EAAE,YAAY,CAAC;KACrC;CACF,CAAA;AACD,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,MAAuB,EAAE,IAA6B;IACrG,MAAM,KAAK,GAA4B,EAAE,CAAA;IACzC,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;QAAE,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;IACtD,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;QAAE,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;IAClE,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS;QAAE,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAA;IACjF,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;QAAE,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;IACtD,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,QAAkB,aAAa,IAAI,CAAC,UAAoB,EAAE,EAAE,KAAK,CAAC,CAAA;AACtG,CAAC;AAED,+EAA+E;AAC/E,MAAM,CAAC,MAAM,0BAA0B,GAAS;IAC9C,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EACT,gGAAgG;QAChG,oFAAoF;IACtF,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE;YACjE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mCAAmC,EAAE;SACjF;QACD,QAAQ,EAAE,CAAC,UAAU,EAAE,YAAY,CAAC;KACrC;CACF,CAAA;AACD,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,MAAuB,EAAE,IAA6B;IACrG,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,QAAkB,aAAa,IAAI,CAAC,UAAoB,EAAE,CAAC,CAAA;AAClG,CAAC;AAED,+EAA+E;AAC/E,MAAM,CAAC,MAAM,yBAAyB,GAAS;IAC7C,IAAI,EAAE,sBAAsB;IAC5B,WAAW,EACT,uFAAuF;QACvF,4CAA4C;IAC9C,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE,EAAE;QACjF,QAAQ,EAAE,CAAC,UAAU,CAAC;KACvB;CACF,CAAA;AACD,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,MAAuB,EAAE,IAA6B;IACpG,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,QAAkB,UAAU,EAAE,EAAE,CAAC,CAAA;AACrE,CAAC;AAED,+EAA+E;AAC/E,MAAM,CAAC,MAAM,wBAAwB,GAAS;IAC5C,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EACT,4FAA4F;QAC5F,gGAAgG;QAChG,2DAA2D;IAC7D,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE;YACjE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,mCAAmC,EAAE;YAC9E,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8CAA8C,EAAE;SAC7F;QACD,QAAQ,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,aAAa,CAAC;KACjD;CACF,CAAA;AACD,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,MAAuB,EAAE,IAA6B;IACnG,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI,CAAA;IAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,KAAK,EAAE,iGAAiG,EAAE,CAAA;IACrH,CAAC;IACD,IAAI,CAAC,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvF,OAAO,EAAE,KAAK,EAAE,wFAAwF,EAAE,CAAA;IAC5G,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,QAAkB,EAAE,CAAC,CAAiC,CAAA;IAClG,MAAM,UAAU,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,CAAA;IACrC,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,QAAQ,aAAa,EAAE,CAAA;IACxE,IAAI,UAAU,CAAC,IAAI,EAAE,KAAM,WAAsB,CAAC,IAAI,EAAE,EAAE,CAAC;QACzD,OAAO;YACL,KAAK,EAAE,gCAAgC,WAAW,8BAA8B,UAAU,uCAAuC;SAClI,CAAA;IACH,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,QAAkB,EAAE,CAAC,CAAA;IACnE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,UAAU,MAAM,QAAQ,qBAAqB,EAAE,GAAI,MAAiB,EAAE,CAAA;AAC1H,CAAC;AAED,+EAA+E;AAC/E,MAAM,CAAC,MAAM,wBAAwB,GAAS;IAC5C,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EACT,0GAA0G;QAC1G,oGAAoG;QACpG,wDAAwD;IAC1D,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE;YACjE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mEAAmE,EAAE;SAC/G;QACD,QAAQ,EAAE,CAAC,UAAU,CAAC;KACvB;CACF,CAAA;AACD,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,MAAuB,EAAE,IAA6B;IACnG,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAkB,CAAA;IACxC,MAAM,QAAQ,GAAI,IAAI,CAAC,QAAmB,IAAI,kBAAkB,CAAA;IAEhE,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,QAAQ,SAAS,CAAC,CAM7D,CAAA;IAED,IAAI,MAAM,EAAE,OAAO,IAAI,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAA;YACjC,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,QAAQ,CAAC;iBACxC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;iBACxB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;iBACpB,WAAW,EAAE;iBACb,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YACnB,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;YAC7B,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,OAAO,CAAC,CAAA;YAC/C,MAAM,OAAO,GAAG,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAA;YACrG,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;YAClE,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAA;YACzB,MAAM,CAAC,OAAO,GAAG,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,mBAAmB,QAAQ,EAAE,CAAA;QACvE,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,CAAC,aAAa,GAAG,wBAAwB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAA;QACnG,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,+EAA+E;AAC/E,MAAM,CAAC,MAAM,wBAAwB,GAAS;IAC5C,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EACT,8GAA8G;QAC9G,kGAAkG;QAClG,wFAAwF;QACxF,sGAAsG;QACtG,8EAA8E;IAChF,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,uFAAuF;aACrG;YACD,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yEAAyE,EAAE;YACpH,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,0DAA0D;gBACvE,UAAU,EAAE;oBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACxB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACxB,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qCAAqC,EAAE;oBACvF,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAE;oBAC1D,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE;iBAC7G;gBACD,QAAQ,EAAE,CAAC,iBAAiB,EAAE,UAAU,CAAC;aAC1C;SACF;KACF;CACF,CAAA;AACD,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,MAAuB,EAAE,IAA6B;IACnG,IAAI,QAAQ,GAAG,IAAI,CAAC,QAA8B,CAAA;IAClD,IAAI,MAAM,GAAG,IAAI,CAAC,MAA6C,CAAA;IAE/D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAA8B,CAAA;IACpD,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;QACtC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9B,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,mBAAmB,YAAY,EAAE;gBACxC,IAAI,EAAE,0EAA0E;aACjF,CAAA;QACH,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAA;YAC9D,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,OAAO,EAAE,GAAG,MAAM,CAAA;YACrD,KAAK,WAAW,CAAA;YAChB,IAAI,CAAC,QAAQ,IAAI,SAAS;gBAAE,QAAQ,GAAG,SAAS,CAAA;YAChD,MAAM,GAAG,OAAO,CAAA;QAClB,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,8BAA8B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAA;QACxI,CAAC;IACH,CAAC;IAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,mHAAmH;SAC3H,CAAA;IACH,CAAC;IACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,0FAA0F,EAAE,CAAA;IAC9H,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,QAAQ,SAAS,EAAE,MAAM,CAAC,CAAA;IACrE,OAAO,EAAE,GAAI,MAAiB,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;AACzF,CAAC"}
1
+ {"version":3,"file":"agent_families.js","sourceRoot":"","sources":["../../src/tools/agent_families.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * audit_agent_family — READ-ONLY config-quality audit for agent families.
3
+ *
4
+ * For each variant's effective config (base deep-merged with the variant overrides) it
5
+ * reports issues without changing anything:
6
+ * - invalid voice profile (not a known id / display name / Gemini name) [error]
7
+ * - non-canonical voice profile (valid but not stored as the id form) [info]
8
+ * - customInstructions over the 2000-char limit (silently truncated) [warning]
9
+ * - avatar values that are not http(s)/data URLs (won't render) [warning]
10
+ * - deprecated AI model id [warning]
11
+ * - family-of-one with no memoryNamespace (re-materialize → slug) [info]
12
+ *
13
+ * Rules come from @botuyo/contracts (single source of truth shared with the backend).
14
+ */
15
+ import type { Tool } from '@modelcontextprotocol/sdk/types.js';
16
+ import type { BotuyoApiClient } from '../client.js';
17
+ export declare const AUDIT_AGENT_FAMILY_TOOL: Tool;
18
+ export declare function auditAgentFamilyHandler(client: BotuyoApiClient, args: Record<string, unknown>): Promise<unknown>;
@@ -0,0 +1,136 @@
1
+ /**
2
+ * audit_agent_family — READ-ONLY config-quality audit for agent families.
3
+ *
4
+ * For each variant's effective config (base deep-merged with the variant overrides) it
5
+ * reports issues without changing anything:
6
+ * - invalid voice profile (not a known id / display name / Gemini name) [error]
7
+ * - non-canonical voice profile (valid but not stored as the id form) [info]
8
+ * - customInstructions over the 2000-char limit (silently truncated) [warning]
9
+ * - avatar values that are not http(s)/data URLs (won't render) [warning]
10
+ * - deprecated AI model id [warning]
11
+ * - family-of-one with no memoryNamespace (re-materialize → slug) [info]
12
+ *
13
+ * Rules come from @botuyo/contracts (single source of truth shared with the backend).
14
+ */
15
+ import { resolveVoiceProfile, isDeprecatedModel, normalizeModel } from '@botuyo/contracts';
16
+ const BASE = '/api/v1/mcp/agent-families';
17
+ /** PromptComposer.sanitizeCustomInstructions truncates customInstructions beyond this. */
18
+ const MAX_CUSTOM_INSTRUCTIONS = 2000;
19
+ export const AUDIT_AGENT_FAMILY_TOOL = {
20
+ name: 'audit_agent_family',
21
+ description: 'Read-only audit of agent families for config-quality issues (changes NOTHING). For each variant\'s ' +
22
+ 'effective config (base deep-merged with overrides) it reports: invalid or non-canonical voice profiles, ' +
23
+ 'customInstructions over the 2000-char limit (silently truncated at runtime), avatar values that are not ' +
24
+ 'http(s) URLs, deprecated AI models, and family-of-one members whose memoryNamespace will default to the ' +
25
+ 'slug on re-materialize. Pass `familyId` to audit one family, or omit it to audit EVERY family in the ' +
26
+ 'current tenant. Available to any authenticated role.',
27
+ inputSchema: {
28
+ type: 'object',
29
+ properties: {
30
+ familyId: { type: 'string', description: 'Audit one family by id. Omit to audit all families in the tenant.' }
31
+ }
32
+ }
33
+ };
34
+ const asObj = (v) => (v && typeof v === 'object' && !Array.isArray(v) ? v : {});
35
+ const asStr = (v) => (typeof v === 'string' ? v : undefined);
36
+ export async function auditAgentFamilyHandler(client, args) {
37
+ const familyId = asStr(args.familyId);
38
+ const families = familyId ? [await fetchFamily(client, familyId)] : await fetchAll(client);
39
+ const reports = families.filter((f) => !!f).map(auditFamily);
40
+ const totals = reports.reduce((a, r) => ({
41
+ errors: a.errors + r.summary.errors,
42
+ warnings: a.warnings + r.summary.warnings,
43
+ infos: a.infos + r.summary.infos
44
+ }), { errors: 0, warnings: 0, infos: 0 });
45
+ return { success: true, audited: reports.length, totals, reports };
46
+ }
47
+ async function fetchFamily(client, id) {
48
+ const res = (await client.get(`${BASE}/${id}`));
49
+ if (!res)
50
+ return null;
51
+ const data = res.data;
52
+ return data ?? res;
53
+ }
54
+ async function fetchAll(client) {
55
+ const res = (await client.get(BASE));
56
+ const list = Array.isArray(res) ? res : Array.isArray(res?.data) ? res.data : [];
57
+ return Promise.all(list.map((f) => fetchFamily(client, String(f._id))));
58
+ }
59
+ /** Shallow merge with one level of nesting for the audited object fields. */
60
+ function mergeConfig(base, overrides) {
61
+ const out = { ...base, ...overrides };
62
+ for (const k of ['identity', 'voice', 'widgetConfig']) {
63
+ if (base[k] || overrides[k])
64
+ out[k] = { ...asObj(base[k]), ...asObj(overrides[k]) };
65
+ }
66
+ return out;
67
+ }
68
+ function auditFamily(fam) {
69
+ const issues = [];
70
+ const base = asObj(fam.base);
71
+ const variants = Array.isArray(fam.variants) ? fam.variants : [];
72
+ // Family-of-one with no memoryNamespace → re-materialize will set it to the slug.
73
+ if (variants.length === 1) {
74
+ const eff = mergeConfig(base, asObj(variants[0]?.overrides));
75
+ if (!asStr(eff.memoryNamespace)) {
76
+ issues.push({
77
+ scope: `variant:${variants[0]?.key ?? '?'}`,
78
+ severity: 'info',
79
+ code: 'memory_default_slug',
80
+ message: `No memoryNamespace set → re-materialize will default it to the slug "${fam.slug ?? '?'}" (moves the memory bucket off the per-agent default).`
81
+ });
82
+ }
83
+ }
84
+ for (const v of variants) {
85
+ auditConfig(mergeConfig(base, asObj(v.overrides)), `variant:${v.key ?? '?'}`, issues);
86
+ }
87
+ const summary = {
88
+ errors: issues.filter((i) => i.severity === 'error').length,
89
+ warnings: issues.filter((i) => i.severity === 'warning').length,
90
+ infos: issues.filter((i) => i.severity === 'info').length
91
+ };
92
+ return { familyId: fam._id, slug: fam.slug, name: fam.name, variants: variants.length, issues, summary };
93
+ }
94
+ function auditConfig(cfg, scope, issues) {
95
+ // Voice profile
96
+ const profile = asStr(asObj(cfg.voice).profile);
97
+ if (profile) {
98
+ const resolved = resolveVoiceProfile(profile);
99
+ if (!resolved) {
100
+ issues.push({ scope, severity: 'error', code: 'invalid_voice', message: `voice.profile "${profile}" is not a known voice (id / display name / Gemini name).` });
101
+ }
102
+ else if (resolved.id !== profile) {
103
+ issues.push({ scope, severity: 'info', code: 'noncanonical_voice', message: `voice.profile "${profile}" is valid but not canonical → normalize to id "${resolved.id}".` });
104
+ }
105
+ }
106
+ // Custom instructions length
107
+ const ci = asStr(asObj(cfg.identity).customInstructions);
108
+ if (ci && ci.length > MAX_CUSTOM_INSTRUCTIONS) {
109
+ issues.push({
110
+ scope,
111
+ severity: 'warning',
112
+ code: 'prompt_truncated',
113
+ message: `identity.customInstructions is ${ci.length} chars; the runtime truncates at ${MAX_CUSTOM_INSTRUCTIONS} (loses ${ci.length - MAX_CUSTOM_INSTRUCTIONS} chars).`
114
+ });
115
+ }
116
+ // Avatar values must be http(s)/data URLs
117
+ const wc = asObj(cfg.widgetConfig);
118
+ const candidates = [];
119
+ for (const k of ['avatarUrl', 'logoUrl', 'avatar3dUrl'])
120
+ if (wc[k] !== undefined)
121
+ candidates.push([`widgetConfig.${k}`, wc[k]]);
122
+ for (const [emotion, val] of Object.entries(asObj(wc.avatar2dAnimations)))
123
+ candidates.push([`avatar2dAnimations.${emotion}`, val]);
124
+ for (const [path, val] of candidates) {
125
+ const s = asStr(val);
126
+ if (s && !/^(https?:\/\/|data:)/i.test(s)) {
127
+ issues.push({ scope, severity: 'warning', code: 'non_url_avatar', message: `${path} = "${s}" is not an http(s) URL → it will not render on a widget domain.` });
128
+ }
129
+ }
130
+ // Deprecated AI model
131
+ const model = asStr(cfg.model);
132
+ if (model && isDeprecatedModel(model)) {
133
+ issues.push({ scope, severity: 'warning', code: 'deprecated_model', message: `model "${model}" is deprecated → use "${normalizeModel(model)}".` });
134
+ }
135
+ }
136
+ //# sourceMappingURL=audit_agent_family.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit_agent_family.js","sourceRoot":"","sources":["../../src/tools/audit_agent_family.ts"],"names":[],"mappings":"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"}
@@ -104,6 +104,8 @@ export declare function exampleAgentHandler(): Promise<{
104
104
  _enabledTools_doc: string;
105
105
  channels: string[];
106
106
  _channels_doc: string;
107
+ requiresUserIdentity: boolean;
108
+ _requiresUserIdentity_doc: string;
107
109
  toolConfigs: {
108
110
  send_email: {
109
111
  params: {
@@ -163,6 +163,10 @@ export async function exampleAgentHandler() {
163
163
  _channels_doc: 'Array of channels the agent is published on. Valid: "web", "whatsapp", "telegram", "discord", "instagram", "phone". ' +
164
164
  'Runtime filters tools by channel compatibility — text-only tools (e.g. create_pre_reservation) won\'t load on phone. ' +
165
165
  'You can have phone + text-only tools as long as your channelFlows.phone never reaches stages with those tools.',
166
+ requiresUserIdentity: false,
167
+ _requiresUserIdentity_doc: 'Optional. Boolean (default false). SECURITY flag: when true, the agent requires a per-user identity ' +
168
+ 'and is rejected on the anonymous web widget channel — it only runs on identity-bearing channels like Telegram. ' +
169
+ 'Enable it for personal-assistant-style agents that read/write per-user data (Gmail, Calendar, tasks, etc.).',
166
170
  // ─── TOOL CONFIGURATIONS ────────────────────────────────────────
167
171
  toolConfigs: {
168
172
  // Single-instance: configure an existing tool with fixed params
@@ -1 +1 @@
1
- {"version":3,"file":"example_agent.js","sourceRoot":"","sources":["../../src/tools/example_agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"example_agent.js","sourceRoot":"","sources":["../../src/tools/example_agent.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,16 @@
1
1
  import { writeFileSync, mkdirSync } from 'fs';
2
2
  import { join, resolve } from 'path';
3
+ import { exportAgentFamilyHandler } from './agent_families.js';
3
4
  export const EXPORT_AGENT_JSON_TOOL = {
4
5
  name: 'export_agent_json',
5
- description: `Export the full agent configuration as clean, editable JSON.
6
+ description: `Export an agent's configuration as clean, editable JSON.
7
+
8
+ Unified model: if the agent belongs to a family (the normal case — every agent created
9
+ via create_agent is a family-of-one), this exports the WHOLE logical agent as a portable
10
+ FOLDER ({slug}/family.json + variants/<key>.json; a simple agent has exactly one variant
11
+ file) — identical to export_agent_family. Re-import with import_agent_json or import_agent_family.
12
+
13
+ For a legacy standalone agent (e.g. module-managed) it falls back to a single flat JSON file:
6
14
 
7
15
  Returns the complete agentConfig including identity, stages, connections (graph edges),
8
16
  channelFlows, enabledTools, channels, widgetConfig, voice, and all other settings.
@@ -24,6 +32,14 @@ Use import_agent_json to re-import after editing.`,
24
32
  };
25
33
  export async function exportAgentJsonHandler(client, args) {
26
34
  const agentId = args.agentId;
35
+ // Unified model: if this agent belongs to a family (incl. a backfilled family-of-1),
36
+ // export the whole logical agent in the uniform folder layout (simple = 1 variant file).
37
+ const agentRes = (await client.get(`/api/v1/mcp/agents/${agentId}`));
38
+ const familyId = agentRes?.data?.familyId;
39
+ if (familyId) {
40
+ return exportAgentFamilyHandler(client, { familyId, ...(args.savePath ? { savePath: args.savePath } : {}) });
41
+ }
42
+ // Legacy standalone (module-managed / pre-backfill): original single-file export.
27
43
  const savePath = args.savePath || './agents';
28
44
  const result = await client.get(`/api/v1/mcp/agents/${agentId}/export`);
29
45
  // Auto-save to local file
@@ -1 +1 @@
1
- {"version":3,"file":"export_agent_json.js","sourceRoot":"","sources":["../../src/tools/export_agent_json.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,IAAI,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEpC,MAAM,CAAC,MAAM,sBAAsB,GAAS;IAC1C,IAAI,EAAE,mBAAmB;IACzB,WAAW,EAAE;;;;;;;;;;kDAUmC;IAChD,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uCAAuC,EAAE;YACjF,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gFAAgF,EAAE;SAC5H;QACD,QAAQ,EAAE,CAAC,SAAS,CAAC;KACtB;CACF,CAAA;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,MAAuB,EAAE,IAA6B;IACjG,MAAM,OAAO,GAAG,IAAI,CAAC,OAAiB,CAAA;IACtC,MAAM,QAAQ,GAAI,IAAI,CAAC,QAAmB,IAAI,UAAU,CAAA;IAExD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,sBAAsB,OAAO,SAAS,CAAQ,CAAA;IAE9E,0BAA0B;IAC1B,IAAI,MAAM,EAAE,OAAO,IAAI,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;QACjD,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,OAAO,CAAA;YACzD,sDAAsD;YACtD,MAAM,aAAa,GAAG,SAAS;iBAC5B,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;iBACxB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;iBACpB,WAAW,EAAE;iBACb,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YACnB,MAAM,QAAQ,GAAG,GAAG,aAAa,OAAO,CAAA;YAExC,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;YAC7B,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YAEnC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;YACpC,MAAM,aAAa,GAAG;gBACpB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACrC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO;gBAC7B,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;gBAC3B,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW;aAC3B,CAAA;YAED,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;YAExE,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAA;YACzB,MAAM,CAAC,OAAO,GAAG,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,mBAAmB,QAAQ,EAAE,CAAA;QACvE,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,MAAM,CAAC,aAAa,GAAG,wBAAwB,GAAG,CAAC,OAAO,EAAE,CAAA;QAC9D,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"export_agent_json.js","sourceRoot":"","sources":["../../src/tools/export_agent_json.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,16 @@
1
- import { readFileSync, existsSync } from 'fs';
2
- import { resolve } from 'path';
1
+ import { readFileSync, existsSync, statSync } from 'fs';
2
+ import { resolve, basename, join } from 'path';
3
3
  import { voiceProfileHelp } from '../format.js';
4
+ import { importAgentFamilyHandler } from './agent_families.js';
4
5
  export const IMPORT_AGENT_JSON_TOOL = {
5
6
  name: 'import_agent_json',
6
7
  description: `Import/replace an agent's FULL configuration from a local JSON file or from a JSON object.
7
8
 
9
+ Unified model: if filePath points to a FAMILY export (a folder with family.json + variants/,
10
+ a family.json, or a payload carrying \`variants\`/\`_meta\`), this round-trips through the family
11
+ importer (respects base + variants) — identical to import_agent_family. Otherwise it does the
12
+ legacy single-agent member import below.
13
+
8
14
  **This is a FULL REPLACE operation** — the entire agentConfig is overwritten with the provided config.
9
15
  For partial updates (changing just one field), use update_agent instead.
10
16
 
@@ -119,7 +125,8 @@ Requires role: owner, admin, or developer.`,
119
125
  },
120
126
  channelPrompts: { type: 'object', description: 'Per-channel system prompt overrides: { channelName: "prompt text" }' },
121
127
  knowledgeDocumentIds: { type: 'array', items: { type: 'string' }, description: 'Knowledge base document IDs for RAG' },
122
- allowedOrigins: { type: 'array', items: { type: 'string' }, description: 'CORS allowed origins for web widget embedding' }
128
+ allowedOrigins: { type: 'array', items: { type: 'string' }, description: 'CORS allowed origins for web widget embedding' },
129
+ requiresUserIdentity: { type: 'boolean', description: 'SECURITY: when true, the agent is blocked on the anonymous web widget channel and only runs on identity-bearing channels (e.g. Telegram). Default false.' }
123
130
  },
124
131
  required: ['name', 'identity']
125
132
  }
@@ -128,10 +135,18 @@ Requires role: owner, admin, or developer.`,
128
135
  }
129
136
  };
130
137
  export async function importAgentJsonHandler(client, args) {
138
+ const filePath = args.filePath;
139
+ // Unified model: a family export (folder / family.json / payload carrying variants or _meta)
140
+ // round-trips through the family importer (respects base + variants, not the raw member).
141
+ if (filePath && existsSync(resolve(filePath)) && isFamilyExport(resolve(filePath))) {
142
+ return importAgentFamilyHandler(client, {
143
+ ...(args.familyId ? { familyId: args.familyId } : {}),
144
+ filePath
145
+ });
146
+ }
131
147
  let agentId = args.agentId;
132
148
  let agentConfig = args.agentConfig;
133
149
  // If filePath is provided, read the JSON from local filesystem
134
- const filePath = args.filePath;
135
150
  if (filePath) {
136
151
  const resolvedPath = resolve(filePath);
137
152
  if (!existsSync(resolvedPath)) {
@@ -178,4 +193,25 @@ export async function importAgentJsonHandler(client, args) {
178
193
  importedFrom: filePath ? resolve(filePath) : 'inline',
179
194
  };
180
195
  }
196
+ /**
197
+ * Whether `resolvedPath` looks like a family export (vs a legacy single-agent file):
198
+ * - a directory containing family.json,
199
+ * - a family.json file,
200
+ * - a JSON payload carrying a `variants` array or the versioned `_meta` envelope.
201
+ * Family exports round-trip through import_agent_family; everything else stays legacy.
202
+ */
203
+ function isFamilyExport(resolvedPath) {
204
+ const stat = statSync(resolvedPath);
205
+ if (stat.isDirectory())
206
+ return existsSync(join(resolvedPath, 'family.json'));
207
+ if (basename(resolvedPath).toLowerCase() === 'family.json')
208
+ return true;
209
+ try {
210
+ const parsed = JSON.parse(readFileSync(resolvedPath, 'utf-8'));
211
+ return Array.isArray(parsed.variants) || typeof parsed._meta?.schema === 'string';
212
+ }
213
+ catch {
214
+ return false;
215
+ }
216
+ }
181
217
  //# sourceMappingURL=import_agent_json.js.map