@memberjunction/ai-agent-manager 6.2.0-edge.1 → 6.2.0-edge.3

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.
@@ -6,8 +6,14 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { BaseAgent, PayloadManager } from '@memberjunction/ai-agents';
8
8
  import { RunView } from '@memberjunction/core';
9
- import { RegisterClass, NormalizeUUID } from '@memberjunction/global';
10
- import { IsLoopStep, ValidateLoopStep } from '../flow-step-validation.js';
9
+ import { RegisterClass, NormalizeUUID, UUIDsEqual } from '@memberjunction/global';
10
+ import { AIEngine } from '@memberjunction/aiengine';
11
+ import { ValidateLoopStep, ValidateFlowGraph } from '../flow-step-validation.js';
12
+ /**
13
+ * The model type a Decision step's prompt runs on: the name of an `MJ: AI Model Types` row, and what
14
+ * the decision runner requires (`AIDecisionRunner.RequiredModelType`).
15
+ */
16
+ const DECISION_MODEL_TYPE = 'Decision';
11
17
  /**
12
18
  * Architect Agent - Transforms technical design into validated AgentSpec JSON
13
19
  *
@@ -136,8 +142,9 @@ let AgentArchitectAgent = class AgentArchitectAgent extends BaseAgent {
136
142
  errors.push(`❌ Status must be "Active", "Disabled", or "Pending", got: "${specWithType.Status}"`);
137
143
  }
138
144
  // 5. Validate agent type-specific requirements
139
- const isLoopAgent = specWithType.TypeID?.includes('Loop');
140
- const isFlowAgent = specWithType.TypeID?.includes('Flow');
145
+ const typeName = this.agentTypeName(specWithType.TypeID);
146
+ const isLoopAgent = typeName.includes('Loop');
147
+ const isFlowAgent = typeName.includes('Flow');
141
148
  if (isLoopAgent) {
142
149
  // Loop agents require at least one prompt
143
150
  if (!correctedSpec.Prompts || correctedSpec.Prompts.length === 0) {
@@ -159,76 +166,7 @@ let AgentArchitectAgent = class AgentArchitectAgent extends BaseAgent {
159
166
  errors.push('❌ Flow agents with multiple steps require at least ONE path in the Paths array');
160
167
  }
161
168
  }
162
- // Validate that at least one step is marked as StartingStep
163
- if (correctedSpec.Steps && correctedSpec.Steps.length > 0) {
164
- const hasStartingStep = correctedSpec.Steps.some(step => step.StartingStep === true);
165
- if (!hasStartingStep) {
166
- errors.push('❌ Flow agents require at least ONE step with StartingStep: true');
167
- }
168
- // Validate each step based on its type
169
- for (let i = 0; i < correctedSpec.Steps.length; i++) {
170
- const step = correctedSpec.Steps[i];
171
- // Validate Action steps
172
- if (step.StepType === 'Action') {
173
- if (!step.ActionID) {
174
- errors.push(`❌ Action step "${step.Name}" (index ${i}) must have ActionID field`);
175
- }
176
- // Validate ActionInputMapping if provided (supports both string and object)
177
- if (step.ActionInputMapping) {
178
- try {
179
- if (typeof step.ActionInputMapping === 'string') {
180
- JSON.parse(step.ActionInputMapping);
181
- }
182
- // else it's already an object, which is valid and will be stringified later
183
- }
184
- catch (e) {
185
- errors.push(`❌ Step "${step.Name}" (index ${i}) has invalid ActionInputMapping JSON: ${e?.message || String(e)}`);
186
- }
187
- }
188
- // Validate ActionOutputMapping if provided (supports both string and object)
189
- if (step.ActionOutputMapping) {
190
- try {
191
- if (typeof step.ActionOutputMapping === 'string') {
192
- JSON.parse(step.ActionOutputMapping);
193
- }
194
- // else it's already an object, which is valid and will be stringified later
195
- }
196
- catch (e) {
197
- errors.push(`❌ Step "${step.Name}" (index ${i}) has invalid ActionOutputMapping JSON: ${e?.message || String(e)}`);
198
- }
199
- }
200
- }
201
- // Validate Prompt steps
202
- if (step.StepType === 'Prompt') {
203
- // If PromptID is empty or not provided, PromptText is required for inline creation
204
- if (!step.PromptID || step.PromptID === '') {
205
- if (!step.PromptText || step.PromptText.trim() === '') {
206
- errors.push(`❌ Prompt step "${step.Name}" (index ${i}) has empty PromptID but missing PromptText. For inline prompt creation, PromptText is required.`);
207
- }
208
- // PromptName and PromptDescription are recommended but not required
209
- if (!step.PromptName) {
210
- console.log(`⚠️ Warning: Prompt step "${step.Name}" (index ${i}) is missing PromptName (will default to "[Step Name] Prompt")`);
211
- }
212
- }
213
- // If PromptID is provided (existing prompt), other fields are optional
214
- }
215
- // Validate Sub-Agent steps
216
- if (step.StepType === 'Sub-Agent') {
217
- // SubAgentID can be empty "" for new sub-agents (will be linked by name matching)
218
- // No validation needed here - linking happens in AgentSpecSync
219
- }
220
- // Validate loop steps (ForEach / While)
221
- //
222
- // A loop is a wrapper, not a leaf: LoopBodyType names which of Action/Prompt/
223
- // Sub-Agent runs each pass, and Configuration carries the bounds. A loop missing
224
- // either is the failure mode worth catching here — it saves cleanly and then
225
- // iterates over nothing at runtime, which looks like the agent doing no work
226
- // rather than like a malformed step.
227
- if (IsLoopStep(step)) {
228
- errors.push(...ValidateLoopStep(step, i));
229
- }
230
- }
231
- }
169
+ errors.push(...this.validateFlowSteps(correctedSpec));
232
170
  }
233
171
  // 6. Validate optional but important fields
234
172
  if (correctedSpec.FinalPayloadValidationMode &&
@@ -330,8 +268,9 @@ let AgentArchitectAgent = class AgentArchitectAgent extends BaseAgent {
330
268
  }
331
269
  else {
332
270
  // Validate Loop/Flow specific requirements for child sub-agents
333
- const isLoopSubAgent = subAgent.SubAgent.TypeID.includes('Loop');
334
- const isFlowSubAgent = subAgent.SubAgent.TypeID.includes('Flow');
271
+ const subAgentTypeName = this.agentTypeName(subAgent.SubAgent.TypeID);
272
+ const isLoopSubAgent = subAgentTypeName.includes('Loop');
273
+ const isFlowSubAgent = subAgentTypeName.includes('Flow');
335
274
  if (isLoopSubAgent) {
336
275
  // Loop sub-agents require at least one prompt
337
276
  if (!subAgent.SubAgent.Prompts || subAgent.SubAgent.Prompts.length === 0) {
@@ -347,6 +286,8 @@ let AgentArchitectAgent = class AgentArchitectAgent extends BaseAgent {
347
286
  if (!subAgent.SubAgent.Steps || subAgent.SubAgent.Steps.length === 0) {
348
287
  errors.push(`❌ Flow SubAgent[${i}] "${subAgent.SubAgent.Name}" requires at least ONE step in Steps array`);
349
288
  }
289
+ // A Flow child runs its steps exactly as a Flow agent does, so they get the same checks.
290
+ errors.push(...this.validateFlowSteps(subAgent.SubAgent).map(err => `Flow SubAgent[${i}] "${subAgent.SubAgent.Name}" -> ${err}`));
350
291
  }
351
292
  }
352
293
  }
@@ -405,6 +346,100 @@ let AgentArchitectAgent = class AgentArchitectAgent extends BaseAgent {
405
346
  }
406
347
  return { errors, corrected };
407
348
  }
349
+ /**
350
+ * Every problem with a Flow agent's steps and paths: a starting step, each step on its own, and
351
+ * then the flow as the runtime compiles and validates it ({@link ValidateFlowGraph}). Used for the
352
+ * agent itself and for each Flow child sub-agent, which runs its steps the same way.
353
+ */
354
+ validateFlowSteps(spec) {
355
+ const steps = spec.Steps ?? [];
356
+ if (steps.length === 0) {
357
+ return [];
358
+ }
359
+ const stepErrors = steps.flatMap((step, i) => this.validateFlowStep(step, i));
360
+ if (!steps.some(step => step.StartingStep === true)) {
361
+ // The compiler would refuse the flow for this alone, so there is nothing more to learn from it.
362
+ return ['❌ Flow agents require at least ONE step with StartingStep: true', ...stepErrors];
363
+ }
364
+ return [...stepErrors, ...ValidateFlowGraph(steps, spec.Paths ?? [], spec.Name)];
365
+ }
366
+ /** The checks one step gets on its own, by type. */
367
+ validateFlowStep(step, index) {
368
+ switch (step.StepType) {
369
+ case 'Action':
370
+ return this.validateActionStep(step, index);
371
+ case 'Prompt':
372
+ return this.validatePromptStep(step, index);
373
+ case 'ForEach':
374
+ case 'While':
375
+ // A loop is a wrapper, not a leaf: LoopBodyType names which of Action/Prompt/Sub-Agent
376
+ // runs each pass, and Configuration carries the bounds. A loop missing either saves
377
+ // cleanly and then iterates over nothing, which looks like the agent doing no work
378
+ // rather than like a malformed step.
379
+ return ValidateLoopStep(step, index);
380
+ case 'Decision':
381
+ return this.validateDecisionPrompt(step, index);
382
+ default:
383
+ // A Sub-Agent step's SubAgentID may be empty for a sub-agent this spec creates.
384
+ return [];
385
+ }
386
+ }
387
+ /** An Action step needs its action, and any mapping written as text must be JSON. */
388
+ validateActionStep(step, index) {
389
+ const errors = [];
390
+ if (!step.ActionID) {
391
+ errors.push(`❌ Action step "${step.Name}" (index ${index}) must have ActionID field`);
392
+ }
393
+ for (const [field, mapping] of [['ActionInputMapping', step.ActionInputMapping], ['ActionOutputMapping', step.ActionOutputMapping]]) {
394
+ // An object is valid as it is, and is stringified when saved.
395
+ if (typeof mapping !== 'string' || !mapping)
396
+ continue;
397
+ try {
398
+ JSON.parse(mapping);
399
+ }
400
+ catch (e) {
401
+ errors.push(`❌ Step "${step.Name}" (index ${index}) has invalid ${field} JSON: ${e instanceof Error ? e.message : String(e)}`);
402
+ }
403
+ }
404
+ return errors;
405
+ }
406
+ /** A Prompt step names an existing prompt, or writes one inline as PromptText for the Builder to create. */
407
+ validatePromptStep(step, index) {
408
+ if (step.PromptID) {
409
+ return [];
410
+ }
411
+ // PromptName and PromptDescription are recommended but not required
412
+ if (!step.PromptName) {
413
+ console.log(`⚠️ Warning: Prompt step "${step.Name}" (index ${index}) is missing PromptName (will default to "[Step Name] Prompt")`);
414
+ }
415
+ return step.PromptText?.trim()
416
+ ? []
417
+ : [`❌ Prompt step "${step.Name}" (index ${index}) has empty PromptID but missing PromptText. For inline prompt creation, PromptText is required.`];
418
+ }
419
+ /**
420
+ * A Decision step's `PromptID`, when it sets one, must be a prompt that can run a decision. Empty
421
+ * means the Default Decision prompt.
422
+ *
423
+ * The runtime runs the step's prompt on Decision-type models only, and refuses a prompt whose model
424
+ * type is set to anything else; it finds that out only when the step runs. A prompt with no model
425
+ * type takes the runner's, so it is not refused here.
426
+ */
427
+ validateDecisionPrompt(step, index) {
428
+ if (!step.PromptID) {
429
+ return [];
430
+ }
431
+ const where = `Decision step "${step.Name}" (index ${index})`;
432
+ const prompt = AIEngine.Instance.Prompts.find(p => UUIDsEqual(p.ID, step.PromptID));
433
+ if (!prompt) {
434
+ return [`❌ ${where} has PromptID "${step.PromptID}", which is not a prompt. Leave PromptID empty to use the Default Decision prompt.`];
435
+ }
436
+ const decisionType = AIEngine.Instance.ModelTypes.find(t => t.Name.trim().toLowerCase() === DECISION_MODEL_TYPE.toLowerCase());
437
+ if (!prompt.AIModelTypeID || !decisionType || UUIDsEqual(prompt.AIModelTypeID, decisionType.ID)) {
438
+ return [];
439
+ }
440
+ const typeName = AIEngine.Instance.ModelTypes.find(t => UUIDsEqual(t.ID, prompt.AIModelTypeID))?.Name ?? prompt.AIModelTypeID;
441
+ return [`❌ ${where} uses the prompt "${prompt.Name}", whose model type is "${typeName}". A Decision step's prompt must run on ${DECISION_MODEL_TYPE} models. Leave PromptID empty to use the Default Decision prompt.`];
442
+ }
408
443
  /**
409
444
  * Deduplicates arrays in AgentSpec to fix common LLM retry issues
410
445
  * Modifies spec in place and returns whether duplicates were found
@@ -516,6 +551,18 @@ let AgentArchitectAgent = class AgentArchitectAgent extends BaseAgent {
516
551
  }
517
552
  return { hadDuplicates };
518
553
  }
554
+ /**
555
+ * The agent type's name for a spec's `TypeID`. The Architect's template has the model write the
556
+ * type's ID (a GUID), which never contains 'Loop' or 'Flow', so the ID is resolved through
557
+ * AIEngine's agent types. Anything that is not a known type's ID (an older spec that wrote the
558
+ * name) is returned as written.
559
+ */
560
+ agentTypeName(typeID) {
561
+ if (!typeID)
562
+ return '';
563
+ const type = AIEngine.Instance.AgentTypes.find(t => UUIDsEqual(t.ID, typeID));
564
+ return type?.Name ?? typeID;
565
+ }
519
566
  /**
520
567
  * Simple hash function for string deduplication
521
568
  */
@@ -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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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @fileoverview Validation for the flow step types the Architect authors — specifically loops.
2
+ * @fileoverview Validation for the flow step types the Architect authors, and for a flow as a whole.
3
3
  *
4
4
  * **Why loops needed their own module.** The Architect's spec taught three step types
5
5
  * (`Action`, `Prompt`, `Sub-Agent`) while `AIAgentStep.StepType` has accepted five for releases —
@@ -9,15 +9,23 @@
9
9
  * `ForEach` with no `collectionPath` iterates over nothing, and at runtime that reads as the agent
10
10
  * declining to work rather than as a malformed step.
11
11
  *
12
- * Pure and dependency-free so the rules are unit-testable without an agent run.
12
+ * **A flow as a whole is checked by the runtime's own code.** {@link ValidateFlowGraph} compiles the
13
+ * flow with `CompileFlowToTaskGraph` and validates the result with `ValidateTaskGraphSpec`, as a Flow
14
+ * agent is before it runs, rather than re-implementing any of their rules. A second copy of those
15
+ * rules is a copy that drifts: it passed conditions the runtime refused and refused forks the
16
+ * runtime ran.
17
+ *
18
+ * Pure: no database and no engine, so the rules are unit-testable without an agent run.
13
19
  *
14
20
  * @module @memberjunction/ai-agent-manager
15
21
  */
16
- import type { AgentStep } from '@memberjunction/ai-core-plus';
22
+ import type { AgentStep, AgentStepPath } from '@memberjunction/ai-core-plus';
17
23
  /** The step types that wrap a body and repeat it. */
18
24
  export type LoopStepType = Extract<AgentStep['StepType'], 'ForEach' | 'While'>;
19
25
  /** True when this step repeats a body rather than being one. */
20
26
  export declare function IsLoopStep(step: Pick<AgentStep, 'StepType'>): boolean;
27
+ /** True when this step is a fast typed decision. */
28
+ export declare function IsDecisionStep(step: Pick<AgentStep, 'StepType'>): boolean;
21
29
  /**
22
30
  * Checks one `ForEach` / `While` step, returning every problem rather than the first.
23
31
  *
@@ -26,4 +34,49 @@ export declare function IsLoopStep(step: Pick<AgentStep, 'StepType'>): boolean;
26
34
  * that surfaces one error per round trip.
27
35
  */
28
36
  export declare function ValidateLoopStep(step: AgentStep, index: number): string[];
37
+ /**
38
+ * Normalizes a Decision step's configuration so the aliases a model tends to write (`text` for a
39
+ * question's `instructions`, and `text` for an option's `description`) read as the fields
40
+ * `ReadFlowDecisionStepConfiguration` expects. Returns a copy; the input is not changed.
41
+ */
42
+ export declare function NormalizeDecisionConfiguration(raw: Record<string, unknown>): Record<string, unknown>;
43
+ /**
44
+ * A Decision step's configuration as JSON text, normalized. A model may write the configuration as
45
+ * an object rather than as JSON text, as it may for a loop; text that is not a JSON object is
46
+ * returned unchanged, so `ReadFlowDecisionStepConfiguration` reports why it cannot be read.
47
+ */
48
+ export declare function DecisionConfigurationText(raw: AgentStep['Configuration'] | null): string | null;
49
+ /**
50
+ * A step's `Configuration` as the JSON text `AIAgentStep.Configuration` stores, which is what the
51
+ * runtime reads. An object is written as text, and a Decision step's is normalized
52
+ * ({@link DecisionConfigurationText}). `AgentSpecSync` saves this and {@link ValidateFlowGraph}
53
+ * compiles it, so what is validated is what is saved.
54
+ */
55
+ export declare function StepConfigurationText(step: Pick<AgentStep, 'StepType' | 'Configuration'>): string | null;
56
+ /**
57
+ * Every problem the runtime would refuse a Flow agent's steps and paths for, as messages that name
58
+ * the steps. Empty when the flow can run.
59
+ *
60
+ * The flow is compiled with `CompileFlowToTaskGraph` and the result validated with
61
+ * `ValidateTaskGraphSpec`, exactly as a Flow agent is before it runs, so a flow this passes is one
62
+ * the runtime runs and a flow it refuses is one the runtime refuses. That covers every Decision step
63
+ * the flow can reach: its configuration, its key, each condition that reads `decisions.<key>` (the
64
+ * key, the question, and whether that question's answer has the field read), and a fork on a Choice
65
+ * question that has no path for one of its options.
66
+ *
67
+ * Two checks come from outside the compiler, because it cannot see what they catch:
68
+ * - a path whose origin or destination names no step, which the compiler drops without a word and
69
+ * `AgentSpecSync` cannot save;
70
+ * - a key two Decision steps share when the flow cannot reach one of them. The compiler checks only
71
+ * the steps it compiles, but the in-run walker checks every step, since it can start at any.
72
+ *
73
+ * Names behind IDs are not resolved here: each ID stands in for its own name. The Architect checks
74
+ * a spec's actions, and a Decision step's prompt, separately. It also accepts a step whose sub-agent
75
+ * or inline prompt has no ID until the spec is saved, so a placeholder stands in for that ID.
76
+ *
77
+ * @param steps the flow's steps
78
+ * @param paths the flow's paths: `AgentSpec.Paths`, which is what `AgentSpecSync` saves
79
+ * @param workflowName the agent's name, which the compiled workflow carries
80
+ */
81
+ export declare function ValidateFlowGraph(steps: readonly AgentStep[], paths: readonly AgentStepPath[], workflowName: string | undefined): string[];
29
82
  //# sourceMappingURL=flow-step-validation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"flow-step-validation.d.ts","sourceRoot":"","sources":["../src/flow-step-validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAE9D,qDAAqD;AACrD,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,CAAC;AAE/E,gEAAgE;AAChE,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,OAAO,CAErE;AAeD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAWzE"}
1
+ {"version":3,"file":"flow-step-validation.d.ts","sourceRoot":"","sources":["../src/flow-step-validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EACR,SAAS,EACT,aAAa,EAOhB,MAAM,8BAA8B,CAAC;AAItC,qDAAqD;AACrD,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,CAAC;AAE/E,gEAAgE;AAChE,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,OAAO,CAErE;AAED,oDAAoD;AACpD,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,OAAO,CAEzE;AAeD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAWzE;AAkFD;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAgBpG;AAaD;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,SAAS,CAAC,eAAe,CAAC,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAa/F;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,GAAG,eAAe,CAAC,GAAG,MAAM,GAAG,IAAI,CAKxG;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,iBAAiB,CAC7B,KAAK,EAAE,SAAS,SAAS,EAAE,EAC3B,KAAK,EAAE,SAAS,aAAa,EAAE,EAC/B,YAAY,EAAE,MAAM,GAAG,SAAS,GACjC,MAAM,EAAE,CAYV"}