@memberjunction/ai-agent-manager 2.113.1 → 2.114.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.
@@ -1,4 +1,4 @@
1
1
 
2
- > @memberjunction/ai-agent-manager@2.113.1 build
2
+ > @memberjunction/ai-agent-manager@2.114.0 build
3
3
  > tsc
4
4
 
package/CHANGELOG.md CHANGED
@@ -1,16 +1,32 @@
1
1
  # @memberjunction/ai-agent-manager
2
2
 
3
- ## 2.113.1
3
+ ## 2.114.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 9af02f0: Migration
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [683eaeb]
12
+ - Updated dependencies [7f46575]
13
+ - Updated dependencies [9af02f0]
14
+ - @memberjunction/ai-agents@2.114.0
15
+ - @memberjunction/ai-core-plus@2.114.0
16
+ - @memberjunction/core@2.114.0
17
+ - @memberjunction/core-entities@2.114.0
18
+ - @memberjunction/global@2.114.0
19
+
20
+ ## 2.113.2
4
21
 
5
22
  ### Patch Changes
6
23
 
7
- - Updated dependencies [7f8390e]
8
- - Updated dependencies [4436cd2]
9
- - @memberjunction/ai-agents@2.113.1
10
- - @memberjunction/ai-core-plus@2.113.1
11
- - @memberjunction/core-entities@2.113.1
12
- - @memberjunction/global@2.113.1
13
- - @memberjunction/core@2.113.1
24
+ - Updated dependencies [61d1df4]
25
+ - @memberjunction/core@2.113.2
26
+ - @memberjunction/ai-agents@2.113.2
27
+ - @memberjunction/ai-core-plus@2.113.2
28
+ - @memberjunction/core-entities@2.113.2
29
+ - @memberjunction/global@2.113.2
14
30
 
15
31
  ## 2.112.0
16
32
 
@@ -44,6 +44,17 @@ export declare class AgentArchitectAgent extends BaseAgent {
44
44
  errors: string[];
45
45
  corrected: boolean;
46
46
  };
47
+ /**
48
+ * Deduplicates arrays in AgentSpec to fix common LLM retry issues
49
+ * Modifies spec in place and returns whether duplicates were found
50
+ */
51
+ protected deduplicateAgentSpec(spec: AgentSpec): {
52
+ hadDuplicates: boolean;
53
+ };
54
+ /**
55
+ * Simple hash function for string deduplication
56
+ */
57
+ protected hashString(str: string): string;
47
58
  /**
48
59
  * Formats validation errors into a clear, actionable message
49
60
  */
@@ -1 +1 @@
1
- {"version":3,"file":"architect-agent.d.ts","sourceRoot":"","sources":["../../src/agents/architect-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAkB,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAChG,OAAO,EAAE,wBAAwB,EAAE,4BAA4B,EAAgC,MAAM,+BAA+B,CAAC;AAIrI;;;;;;;;;;;;;;;GAeG;AACH,qBACa,mBAAoB,SAAQ,SAAS;IAE9C;;OAEG;IACH,SAAS,CAAC,mBAAmB,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC;cAStD,uBAAuB,CAAC,CAAC,EAC9C,MAAM,EAAE,kBAAkB,EAC1B,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAC9B,cAAc,EAAE,CAAC,EACjB,QAAQ,EAAE,wBAAwB,EAClC,WAAW,EAAE,4BAA4B,GAC1C,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IA0ChC;;;OAGG;cACa,iBAAiB,CAC7B,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,kBAAkB,GAC3B,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,aAAa,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC;IA2K3D;;OAEG;cACa,eAAe,CAC3B,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,EAC7B,MAAM,EAAE,kBAAkB,GAC3B,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAoDhC;;OAEG;IACH,SAAS,CAAC,iBAAiB,CACvB,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,GAClC;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE;IAmH3C;;OAEG;IACH,SAAS,CAAC,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM;CAW7D"}
1
+ {"version":3,"file":"architect-agent.d.ts","sourceRoot":"","sources":["../../src/agents/architect-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAkB,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAChG,OAAO,EAAE,wBAAwB,EAAE,4BAA4B,EAAgC,MAAM,+BAA+B,CAAC;AAIrI;;;;;;;;;;;;;;;GAeG;AACH,qBACa,mBAAoB,SAAQ,SAAS;IAE9C;;OAEG;IACH,SAAS,CAAC,mBAAmB,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC;cAStD,uBAAuB,CAAC,CAAC,EAC9C,MAAM,EAAE,kBAAkB,EAC1B,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAC9B,cAAc,EAAE,CAAC,EACjB,QAAQ,EAAE,wBAAwB,EAClC,WAAW,EAAE,4BAA4B,GAC1C,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IA0ChC;;;OAGG;cACa,iBAAiB,CAC7B,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,kBAAkB,GAC3B,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,aAAa,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC;IAkL3D;;OAEG;cACa,eAAe,CAC3B,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,EAC7B,MAAM,EAAE,kBAAkB,GAC3B,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAoDhC;;OAEG;IACH,SAAS,CAAC,iBAAiB,CACvB,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,GAClC;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE;IAoI3C;;;OAGG;IACH,SAAS,CAAC,oBAAoB,CAAC,IAAI,EAAE,SAAS,GAAG;QAAE,aAAa,EAAE,OAAO,CAAA;KAAE;IAsH3E;;OAEG;IACH,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAUzC;;OAEG;IACH,SAAS,CAAC,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM;CAW7D"}
@@ -85,6 +85,12 @@ let AgentArchitectAgent = class AgentArchitectAgent extends ai_agents_1.BaseAgen
85
85
  return { errors };
86
86
  }
87
87
  const correctedSpec = { ...spec };
88
+ // Deduplicate arrays to fix common LLM retry issues
89
+ const dedupeResult = this.deduplicateAgentSpec(correctedSpec);
90
+ if (dedupeResult.hadDuplicates) {
91
+ corrected = true;
92
+ console.log('✓ Auto-corrected: Removed duplicate entries from AgentSpec arrays');
93
+ }
88
94
  // 1. Validate required fields
89
95
  if (!correctedSpec.Name || correctedSpec.Name.trim().length === 0) {
90
96
  errors.push('❌ AgentSpec.Name is required and cannot be empty');
@@ -307,31 +313,49 @@ let AgentArchitectAgent = class AgentArchitectAgent extends ai_agents_1.BaseAgen
307
313
  if (!subAgent.SubAgent.Name || subAgent.SubAgent.Name.trim().length === 0) {
308
314
  errors.push(`❌ SubAgent at index ${i} is missing SubAgent.Name`);
309
315
  }
310
- // Validate TypeID for sub-agent
311
- if (!subAgent.SubAgent.TypeID) {
312
- errors.push(`❌ SubAgent[${i}] "${subAgent.SubAgent.Name}" is missing TypeID field`);
313
- }
314
- else {
315
- // Validate Loop/Flow specific requirements for sub-agents
316
- const isLoopSubAgent = subAgent.SubAgent.TypeID.includes('Loop');
317
- const isFlowSubAgent = subAgent.SubAgent.TypeID.includes('Flow');
318
- if (isLoopSubAgent) {
319
- // Loop sub-agents require at least one prompt
320
- if (!subAgent.SubAgent.Prompts || subAgent.SubAgent.Prompts.length === 0) {
321
- errors.push(`❌ Loop SubAgent[${i}] "${subAgent.SubAgent.Name}" requires at least ONE prompt in Prompts array`);
322
- }
316
+ // Validate TypeID ONLY for child sub-agents (related sub-agents use minimal spec without TypeID)
317
+ if (subAgent.Type === 'child') {
318
+ if (!subAgent.SubAgent.TypeID) {
319
+ errors.push(`❌ Child SubAgent[${i}] "${subAgent.SubAgent.Name}" is missing TypeID field`);
323
320
  }
324
- if (isFlowSubAgent) {
325
- // Flow sub-agents MUST have empty Prompts array
326
- if (subAgent.SubAgent.Prompts && subAgent.SubAgent.Prompts.length > 0) {
327
- errors.push(`❌ Flow SubAgent[${i}] "${subAgent.SubAgent.Name}" MUST have empty Prompts array. Use Prompt steps or Loop sub-agents for LLM functionality.`);
321
+ else {
322
+ // Validate Loop/Flow specific requirements for child sub-agents
323
+ const isLoopSubAgent = subAgent.SubAgent.TypeID.includes('Loop');
324
+ const isFlowSubAgent = subAgent.SubAgent.TypeID.includes('Flow');
325
+ if (isLoopSubAgent) {
326
+ // Loop sub-agents require at least one prompt
327
+ if (!subAgent.SubAgent.Prompts || subAgent.SubAgent.Prompts.length === 0) {
328
+ errors.push(`❌ Loop SubAgent[${i}] "${subAgent.SubAgent.Name}" requires at least ONE prompt in Prompts array`);
329
+ }
328
330
  }
329
- // Flow sub-agents require Steps
330
- if (!subAgent.SubAgent.Steps || subAgent.SubAgent.Steps.length === 0) {
331
- errors.push(`❌ Flow SubAgent[${i}] "${subAgent.SubAgent.Name}" requires at least ONE step in Steps array`);
331
+ if (isFlowSubAgent) {
332
+ // Flow sub-agents MUST have empty Prompts array
333
+ if (subAgent.SubAgent.Prompts && subAgent.SubAgent.Prompts.length > 0) {
334
+ errors.push(`❌ Flow SubAgent[${i}] "${subAgent.SubAgent.Name}" MUST have empty Prompts array. Use Prompt steps or Loop sub-agents for LLM functionality.`);
335
+ }
336
+ // Flow sub-agents require Steps
337
+ if (!subAgent.SubAgent.Steps || subAgent.SubAgent.Steps.length === 0) {
338
+ errors.push(`❌ Flow SubAgent[${i}] "${subAgent.SubAgent.Name}" requires at least ONE step in Steps array`);
339
+ }
332
340
  }
333
341
  }
334
342
  }
343
+ else if (subAgent.Type === 'related') {
344
+ // Related sub-agents should NOT have TypeID, Actions, SubAgents, or Prompts
345
+ // Warn if they do (don't fail, just inform)
346
+ if (subAgent.SubAgent.TypeID) {
347
+ console.log(`⚠️ Warning: Related SubAgent[${i}] "${subAgent.SubAgent.Name}" has TypeID field. Related sub-agents use minimal spec (ID, Name, StartingPayloadValidationMode, Status only).`);
348
+ }
349
+ if (subAgent.SubAgent.Actions && subAgent.SubAgent.Actions.length > 0) {
350
+ console.log(`⚠️ Warning: Related SubAgent[${i}] "${subAgent.SubAgent.Name}" has Actions field. Related sub-agents use minimal spec.`);
351
+ }
352
+ if (subAgent.SubAgent.SubAgents && subAgent.SubAgent.SubAgents.length > 0) {
353
+ console.log(`⚠️ Warning: Related SubAgent[${i}] "${subAgent.SubAgent.Name}" has SubAgents field. Related sub-agents use minimal spec.`);
354
+ }
355
+ if (subAgent.SubAgent.Prompts && subAgent.SubAgent.Prompts.length > 0) {
356
+ console.log(`⚠️ Warning: Related SubAgent[${i}] "${subAgent.SubAgent.Name}" has Prompts field. Related sub-agents use minimal spec.`);
357
+ }
358
+ }
335
359
  // Auto-correct: Add default StartingPayloadValidationMode if missing
336
360
  if (!subAgent.SubAgent.StartingPayloadValidationMode) {
337
361
  subAgent.SubAgent.StartingPayloadValidationMode = 'Fail';
@@ -371,6 +395,129 @@ let AgentArchitectAgent = class AgentArchitectAgent extends ai_agents_1.BaseAgen
371
395
  }
372
396
  return { errors, corrected };
373
397
  }
398
+ /**
399
+ * Deduplicates arrays in AgentSpec to fix common LLM retry issues
400
+ * Modifies spec in place and returns whether duplicates were found
401
+ */
402
+ deduplicateAgentSpec(spec) {
403
+ let hadDuplicates = false;
404
+ // Deduplicate Actions by ActionID
405
+ if (spec.Actions && spec.Actions.length > 0) {
406
+ const uniqueActions = new Map();
407
+ for (const action of spec.Actions) {
408
+ if (action.ActionID && !uniqueActions.has(action.ActionID)) {
409
+ uniqueActions.set(action.ActionID, action);
410
+ }
411
+ }
412
+ if (uniqueActions.size < spec.Actions.length) {
413
+ hadDuplicates = true;
414
+ console.log(`🔧 Deduplicating Actions: ${spec.Actions.length} → ${uniqueActions.size}`);
415
+ spec.Actions = Array.from(uniqueActions.values());
416
+ }
417
+ }
418
+ // Deduplicate PayloadDownstreamPaths
419
+ if (spec.PayloadDownstreamPaths && spec.PayloadDownstreamPaths.length > 0) {
420
+ const uniquePaths = Array.from(new Set(spec.PayloadDownstreamPaths));
421
+ if (uniquePaths.length < spec.PayloadDownstreamPaths.length) {
422
+ hadDuplicates = true;
423
+ console.log(`🔧 Deduplicating PayloadDownstreamPaths: ${spec.PayloadDownstreamPaths.length} → ${uniquePaths.length}`);
424
+ spec.PayloadDownstreamPaths = uniquePaths;
425
+ }
426
+ }
427
+ // Deduplicate PayloadUpstreamPaths
428
+ if (spec.PayloadUpstreamPaths && spec.PayloadUpstreamPaths.length > 0) {
429
+ const uniquePaths = Array.from(new Set(spec.PayloadUpstreamPaths));
430
+ if (uniquePaths.length < spec.PayloadUpstreamPaths.length) {
431
+ hadDuplicates = true;
432
+ console.log(`🔧 Deduplicating PayloadUpstreamPaths: ${spec.PayloadUpstreamPaths.length} → ${uniquePaths.length}`);
433
+ spec.PayloadUpstreamPaths = uniquePaths;
434
+ }
435
+ }
436
+ // Deduplicate SubAgents by SubAgent.ID (for related) or SubAgent.Name (for child)
437
+ if (spec.SubAgents && spec.SubAgents.length > 0) {
438
+ const uniqueSubAgents = new Map();
439
+ for (const subAgent of spec.SubAgents) {
440
+ // Use ID for related agents, Name for child agents as key
441
+ const key = subAgent.Type === 'related' && subAgent.SubAgent.ID
442
+ ? subAgent.SubAgent.ID
443
+ : subAgent.SubAgent.Name;
444
+ if (key && !uniqueSubAgents.has(key)) {
445
+ uniqueSubAgents.set(key, subAgent);
446
+ // Recursively deduplicate nested sub-agents
447
+ if (subAgent.SubAgent.SubAgents && subAgent.SubAgent.SubAgents.length > 0) {
448
+ const nestedResult = this.deduplicateAgentSpec(subAgent.SubAgent);
449
+ if (nestedResult.hadDuplicates) {
450
+ hadDuplicates = true;
451
+ }
452
+ }
453
+ // SubAgentContextPaths is Record<string, string>, no need to deduplicate
454
+ // (object keys are already unique by definition)
455
+ }
456
+ }
457
+ if (uniqueSubAgents.size < spec.SubAgents.length) {
458
+ hadDuplicates = true;
459
+ console.log(`🔧 Deduplicating SubAgents: ${spec.SubAgents.length} → ${uniqueSubAgents.size}`);
460
+ spec.SubAgents = Array.from(uniqueSubAgents.values());
461
+ }
462
+ }
463
+ // Deduplicate Prompts by PromptID (if set) or PromptText hash
464
+ if (spec.Prompts && spec.Prompts.length > 0) {
465
+ const uniquePrompts = new Map();
466
+ for (const prompt of spec.Prompts) {
467
+ const key = prompt.PromptID || this.hashString(prompt.PromptText || '');
468
+ if (key && !uniquePrompts.has(key)) {
469
+ uniquePrompts.set(key, prompt);
470
+ }
471
+ }
472
+ if (uniquePrompts.size < spec.Prompts.length) {
473
+ hadDuplicates = true;
474
+ console.log(`🔧 Deduplicating Prompts: ${spec.Prompts.length} → ${uniquePrompts.size}`);
475
+ spec.Prompts = Array.from(uniquePrompts.values());
476
+ }
477
+ }
478
+ // Deduplicate Steps (for Flow agents) by Name
479
+ if (spec.Steps && spec.Steps.length > 0) {
480
+ const uniqueSteps = new Map();
481
+ for (const step of spec.Steps) {
482
+ if (step.Name && !uniqueSteps.has(step.Name)) {
483
+ uniqueSteps.set(step.Name, step);
484
+ }
485
+ }
486
+ if (uniqueSteps.size < spec.Steps.length) {
487
+ hadDuplicates = true;
488
+ console.log(`🔧 Deduplicating Steps: ${spec.Steps.length} → ${uniqueSteps.size}`);
489
+ spec.Steps = Array.from(uniqueSteps.values());
490
+ }
491
+ }
492
+ // Deduplicate Paths (for Flow agents) by OriginStepID + DestinationStepID
493
+ if (spec.Paths && spec.Paths.length > 0) {
494
+ const uniquePaths = new Map();
495
+ for (const path of spec.Paths) {
496
+ const key = `${path.OriginStepID}→${path.DestinationStepID}`;
497
+ if (!uniquePaths.has(key)) {
498
+ uniquePaths.set(key, path);
499
+ }
500
+ }
501
+ if (uniquePaths.size < spec.Paths.length) {
502
+ hadDuplicates = true;
503
+ console.log(`🔧 Deduplicating Paths: ${spec.Paths.length} → ${uniquePaths.size}`);
504
+ spec.Paths = Array.from(uniquePaths.values());
505
+ }
506
+ }
507
+ return { hadDuplicates };
508
+ }
509
+ /**
510
+ * Simple hash function for string deduplication
511
+ */
512
+ hashString(str) {
513
+ let hash = 0;
514
+ for (let i = 0; i < str.length; i++) {
515
+ const char = str.charCodeAt(i);
516
+ hash = ((hash << 5) - hash) + char;
517
+ hash = hash & hash; // Convert to 32-bit integer
518
+ }
519
+ return hash.toString();
520
+ }
374
521
  /**
375
522
  * Formats validation errors into a clear, actionable message
376
523
  */
@@ -1 +1 @@
1
- {"version":3,"file":"architect-agent.js","sourceRoot":"","sources":["../../src/agents/architect-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"architect-agent.js","sourceRoot":"","sources":["../../src/agents/architect-agent.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberjunction/ai-agent-manager",
3
- "version": "2.113.1",
3
+ "version": "2.114.0",
4
4
  "description": "Core interfaces and types for the MemberJunction Agent Manager system",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -19,11 +19,11 @@
19
19
  "author": "MemberJunction",
20
20
  "license": "ISC",
21
21
  "dependencies": {
22
- "@memberjunction/core": "2.113.1",
23
- "@memberjunction/core-entities": "2.113.1",
24
- "@memberjunction/global": "2.113.1",
25
- "@memberjunction/ai-core-plus": "2.113.1",
26
- "@memberjunction/ai-agents": "2.113.1"
22
+ "@memberjunction/core": "2.114.0",
23
+ "@memberjunction/core-entities": "2.114.0",
24
+ "@memberjunction/global": "2.114.0",
25
+ "@memberjunction/ai-core-plus": "2.114.0",
26
+ "@memberjunction/ai-agents": "2.114.0"
27
27
  },
28
28
  "devDependencies": {
29
29
  "@types/node": "^18.11.0",
@@ -102,6 +102,13 @@ export class AgentArchitectAgent extends BaseAgent {
102
102
 
103
103
  const correctedSpec = { ...spec };
104
104
 
105
+ // Deduplicate arrays to fix common LLM retry issues
106
+ const dedupeResult = this.deduplicateAgentSpec(correctedSpec);
107
+ if (dedupeResult.hadDuplicates) {
108
+ corrected = true;
109
+ console.log('✓ Auto-corrected: Removed duplicate entries from AgentSpec arrays');
110
+ }
111
+
105
112
  // 1. Validate required fields
106
113
  if (!correctedSpec.Name || correctedSpec.Name.trim().length === 0) {
107
114
  errors.push('❌ AgentSpec.Name is required and cannot be empty');
@@ -363,32 +370,49 @@ export class AgentArchitectAgent extends BaseAgent {
363
370
  errors.push(`❌ SubAgent at index ${i} is missing SubAgent.Name`);
364
371
  }
365
372
 
366
- // Validate TypeID for sub-agent
367
- if (!subAgent.SubAgent.TypeID) {
368
- errors.push(`❌ SubAgent[${i}] "${subAgent.SubAgent.Name}" is missing TypeID field`);
369
- } else {
370
- // Validate Loop/Flow specific requirements for sub-agents
371
- const isLoopSubAgent = subAgent.SubAgent.TypeID.includes('Loop');
372
- const isFlowSubAgent = subAgent.SubAgent.TypeID.includes('Flow');
373
-
374
- if (isLoopSubAgent) {
375
- // Loop sub-agents require at least one prompt
376
- if (!subAgent.SubAgent.Prompts || subAgent.SubAgent.Prompts.length === 0) {
377
- errors.push(`❌ Loop SubAgent[${i}] "${subAgent.SubAgent.Name}" requires at least ONE prompt in Prompts array`);
373
+ // Validate TypeID ONLY for child sub-agents (related sub-agents use minimal spec without TypeID)
374
+ if (subAgent.Type === 'child') {
375
+ if (!subAgent.SubAgent.TypeID) {
376
+ errors.push(`❌ Child SubAgent[${i}] "${subAgent.SubAgent.Name}" is missing TypeID field`);
377
+ } else {
378
+ // Validate Loop/Flow specific requirements for child sub-agents
379
+ const isLoopSubAgent = subAgent.SubAgent.TypeID.includes('Loop');
380
+ const isFlowSubAgent = subAgent.SubAgent.TypeID.includes('Flow');
381
+
382
+ if (isLoopSubAgent) {
383
+ // Loop sub-agents require at least one prompt
384
+ if (!subAgent.SubAgent.Prompts || subAgent.SubAgent.Prompts.length === 0) {
385
+ errors.push(`❌ Loop SubAgent[${i}] "${subAgent.SubAgent.Name}" requires at least ONE prompt in Prompts array`);
386
+ }
378
387
  }
379
- }
380
388
 
381
- if (isFlowSubAgent) {
382
- // Flow sub-agents MUST have empty Prompts array
383
- if (subAgent.SubAgent.Prompts && subAgent.SubAgent.Prompts.length > 0) {
384
- errors.push(`❌ Flow SubAgent[${i}] "${subAgent.SubAgent.Name}" MUST have empty Prompts array. Use Prompt steps or Loop sub-agents for LLM functionality.`);
385
- }
389
+ if (isFlowSubAgent) {
390
+ // Flow sub-agents MUST have empty Prompts array
391
+ if (subAgent.SubAgent.Prompts && subAgent.SubAgent.Prompts.length > 0) {
392
+ errors.push(`❌ Flow SubAgent[${i}] "${subAgent.SubAgent.Name}" MUST have empty Prompts array. Use Prompt steps or Loop sub-agents for LLM functionality.`);
393
+ }
386
394
 
387
- // Flow sub-agents require Steps
388
- if (!subAgent.SubAgent.Steps || subAgent.SubAgent.Steps.length === 0) {
389
- errors.push(`❌ Flow SubAgent[${i}] "${subAgent.SubAgent.Name}" requires at least ONE step in Steps array`);
395
+ // Flow sub-agents require Steps
396
+ if (!subAgent.SubAgent.Steps || subAgent.SubAgent.Steps.length === 0) {
397
+ errors.push(`❌ Flow SubAgent[${i}] "${subAgent.SubAgent.Name}" requires at least ONE step in Steps array`);
398
+ }
390
399
  }
391
400
  }
401
+ } else if (subAgent.Type === 'related') {
402
+ // Related sub-agents should NOT have TypeID, Actions, SubAgents, or Prompts
403
+ // Warn if they do (don't fail, just inform)
404
+ if (subAgent.SubAgent.TypeID) {
405
+ console.log(`⚠️ Warning: Related SubAgent[${i}] "${subAgent.SubAgent.Name}" has TypeID field. Related sub-agents use minimal spec (ID, Name, StartingPayloadValidationMode, Status only).`);
406
+ }
407
+ if (subAgent.SubAgent.Actions && subAgent.SubAgent.Actions.length > 0) {
408
+ console.log(`⚠️ Warning: Related SubAgent[${i}] "${subAgent.SubAgent.Name}" has Actions field. Related sub-agents use minimal spec.`);
409
+ }
410
+ if (subAgent.SubAgent.SubAgents && subAgent.SubAgent.SubAgents.length > 0) {
411
+ console.log(`⚠️ Warning: Related SubAgent[${i}] "${subAgent.SubAgent.Name}" has SubAgents field. Related sub-agents use minimal spec.`);
412
+ }
413
+ if (subAgent.SubAgent.Prompts && subAgent.SubAgent.Prompts.length > 0) {
414
+ console.log(`⚠️ Warning: Related SubAgent[${i}] "${subAgent.SubAgent.Name}" has Prompts field. Related sub-agents use minimal spec.`);
415
+ }
392
416
  }
393
417
 
394
418
  // Auto-correct: Add default StartingPayloadValidationMode if missing
@@ -439,6 +463,141 @@ export class AgentArchitectAgent extends BaseAgent {
439
463
  return { errors, corrected };
440
464
  }
441
465
 
466
+ /**
467
+ * Deduplicates arrays in AgentSpec to fix common LLM retry issues
468
+ * Modifies spec in place and returns whether duplicates were found
469
+ */
470
+ protected deduplicateAgentSpec(spec: AgentSpec): { hadDuplicates: boolean } {
471
+ let hadDuplicates = false;
472
+
473
+ // Deduplicate Actions by ActionID
474
+ if (spec.Actions && spec.Actions.length > 0) {
475
+ const uniqueActions = new Map<string, typeof spec.Actions[0]>();
476
+ for (const action of spec.Actions) {
477
+ if (action.ActionID && !uniqueActions.has(action.ActionID)) {
478
+ uniqueActions.set(action.ActionID, action);
479
+ }
480
+ }
481
+ if (uniqueActions.size < spec.Actions.length) {
482
+ hadDuplicates = true;
483
+ console.log(`🔧 Deduplicating Actions: ${spec.Actions.length} → ${uniqueActions.size}`);
484
+ spec.Actions = Array.from(uniqueActions.values());
485
+ }
486
+ }
487
+
488
+ // Deduplicate PayloadDownstreamPaths
489
+ if (spec.PayloadDownstreamPaths && spec.PayloadDownstreamPaths.length > 0) {
490
+ const uniquePaths = Array.from(new Set(spec.PayloadDownstreamPaths));
491
+ if (uniquePaths.length < spec.PayloadDownstreamPaths.length) {
492
+ hadDuplicates = true;
493
+ console.log(`🔧 Deduplicating PayloadDownstreamPaths: ${spec.PayloadDownstreamPaths.length} → ${uniquePaths.length}`);
494
+ spec.PayloadDownstreamPaths = uniquePaths;
495
+ }
496
+ }
497
+
498
+ // Deduplicate PayloadUpstreamPaths
499
+ if (spec.PayloadUpstreamPaths && spec.PayloadUpstreamPaths.length > 0) {
500
+ const uniquePaths = Array.from(new Set(spec.PayloadUpstreamPaths));
501
+ if (uniquePaths.length < spec.PayloadUpstreamPaths.length) {
502
+ hadDuplicates = true;
503
+ console.log(`🔧 Deduplicating PayloadUpstreamPaths: ${spec.PayloadUpstreamPaths.length} → ${uniquePaths.length}`);
504
+ spec.PayloadUpstreamPaths = uniquePaths;
505
+ }
506
+ }
507
+
508
+ // Deduplicate SubAgents by SubAgent.ID (for related) or SubAgent.Name (for child)
509
+ if (spec.SubAgents && spec.SubAgents.length > 0) {
510
+ const uniqueSubAgents = new Map<string, typeof spec.SubAgents[0]>();
511
+ for (const subAgent of spec.SubAgents) {
512
+ // Use ID for related agents, Name for child agents as key
513
+ const key = subAgent.Type === 'related' && subAgent.SubAgent.ID
514
+ ? subAgent.SubAgent.ID
515
+ : subAgent.SubAgent.Name;
516
+ if (key && !uniqueSubAgents.has(key)) {
517
+ uniqueSubAgents.set(key, subAgent);
518
+
519
+ // Recursively deduplicate nested sub-agents
520
+ if (subAgent.SubAgent.SubAgents && subAgent.SubAgent.SubAgents.length > 0) {
521
+ const nestedResult = this.deduplicateAgentSpec(subAgent.SubAgent as AgentSpec);
522
+ if (nestedResult.hadDuplicates) {
523
+ hadDuplicates = true;
524
+ }
525
+ }
526
+
527
+ // SubAgentContextPaths is Record<string, string>, no need to deduplicate
528
+ // (object keys are already unique by definition)
529
+ }
530
+ }
531
+ if (uniqueSubAgents.size < spec.SubAgents.length) {
532
+ hadDuplicates = true;
533
+ console.log(`🔧 Deduplicating SubAgents: ${spec.SubAgents.length} → ${uniqueSubAgents.size}`);
534
+ spec.SubAgents = Array.from(uniqueSubAgents.values());
535
+ }
536
+ }
537
+
538
+ // Deduplicate Prompts by PromptID (if set) or PromptText hash
539
+ if (spec.Prompts && spec.Prompts.length > 0) {
540
+ const uniquePrompts = new Map<string, typeof spec.Prompts[0]>();
541
+ for (const prompt of spec.Prompts) {
542
+ const key = prompt.PromptID || this.hashString(prompt.PromptText || '');
543
+ if (key && !uniquePrompts.has(key)) {
544
+ uniquePrompts.set(key, prompt);
545
+ }
546
+ }
547
+ if (uniquePrompts.size < spec.Prompts.length) {
548
+ hadDuplicates = true;
549
+ console.log(`🔧 Deduplicating Prompts: ${spec.Prompts.length} → ${uniquePrompts.size}`);
550
+ spec.Prompts = Array.from(uniquePrompts.values());
551
+ }
552
+ }
553
+
554
+ // Deduplicate Steps (for Flow agents) by Name
555
+ if (spec.Steps && spec.Steps.length > 0) {
556
+ const uniqueSteps = new Map<string, typeof spec.Steps[0]>();
557
+ for (const step of spec.Steps) {
558
+ if (step.Name && !uniqueSteps.has(step.Name)) {
559
+ uniqueSteps.set(step.Name, step);
560
+ }
561
+ }
562
+ if (uniqueSteps.size < spec.Steps.length) {
563
+ hadDuplicates = true;
564
+ console.log(`🔧 Deduplicating Steps: ${spec.Steps.length} → ${uniqueSteps.size}`);
565
+ spec.Steps = Array.from(uniqueSteps.values());
566
+ }
567
+ }
568
+
569
+ // Deduplicate Paths (for Flow agents) by OriginStepID + DestinationStepID
570
+ if (spec.Paths && spec.Paths.length > 0) {
571
+ const uniquePaths = new Map<string, typeof spec.Paths[0]>();
572
+ for (const path of spec.Paths) {
573
+ const key = `${path.OriginStepID}→${path.DestinationStepID}`;
574
+ if (!uniquePaths.has(key)) {
575
+ uniquePaths.set(key, path);
576
+ }
577
+ }
578
+ if (uniquePaths.size < spec.Paths.length) {
579
+ hadDuplicates = true;
580
+ console.log(`🔧 Deduplicating Paths: ${spec.Paths.length} → ${uniquePaths.size}`);
581
+ spec.Paths = Array.from(uniquePaths.values());
582
+ }
583
+ }
584
+
585
+ return { hadDuplicates };
586
+ }
587
+
588
+ /**
589
+ * Simple hash function for string deduplication
590
+ */
591
+ protected hashString(str: string): string {
592
+ let hash = 0;
593
+ for (let i = 0; i < str.length; i++) {
594
+ const char = str.charCodeAt(i);
595
+ hash = ((hash << 5) - hash) + char;
596
+ hash = hash & hash; // Convert to 32-bit integer
597
+ }
598
+ return hash.toString();
599
+ }
600
+
442
601
  /**
443
602
  * Formats validation errors into a clear, actionable message
444
603
  */