@memberjunction/ai-agents 2.75.0 → 2.76.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.
@@ -0,0 +1,462 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var FlowAgentType_1;
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.LoadFlowAgentType = exports.FlowAgentType = exports.FlowExecutionState = void 0;
11
+ const global_1 = require("@memberjunction/global");
12
+ const base_agent_type_1 = require("./base-agent-type");
13
+ const core_1 = require("@memberjunction/core");
14
+ const aiengine_1 = require("@memberjunction/aiengine");
15
+ const actions_1 = require("@memberjunction/actions");
16
+ class FlowExecutionState {
17
+ constructor(agentId) {
18
+ this.completedStepIds = new Set();
19
+ this.stepResults = new Map();
20
+ this.executionPath = [];
21
+ this.agentId = agentId;
22
+ }
23
+ }
24
+ exports.FlowExecutionState = FlowExecutionState;
25
+ let FlowAgentType = FlowAgentType_1 = class FlowAgentType extends base_agent_type_1.BaseAgentType {
26
+ constructor() {
27
+ super(...arguments);
28
+ this._evaluator = new global_1.SafeExpressionEvaluator();
29
+ }
30
+ getOrCreateFlowState(agentRunId, agentId) {
31
+ let state = FlowAgentType_1._flowStates.get(agentRunId);
32
+ if (!state) {
33
+ state = new FlowExecutionState(agentId);
34
+ FlowAgentType_1._flowStates.set(agentRunId, state);
35
+ }
36
+ return state;
37
+ }
38
+ async DetermineNextStep(promptResult, params) {
39
+ try {
40
+ const agentRunId = params.parentRun?.ID || `temp-${params.agent.ID}`;
41
+ const flowState = this.getOrCreateFlowState(agentRunId, params.agent.ID);
42
+ const currentPayload = params.payload || {};
43
+ if (!flowState.currentStepId) {
44
+ const startingSteps = await this.getStartingSteps(flowState.agentId);
45
+ if (startingSteps.length === 0) {
46
+ return this.createNextStep('Failed', {
47
+ errorMessage: 'No starting steps defined for flow agent'
48
+ });
49
+ }
50
+ return await this.createStepForFlowNode(startingSteps[0], currentPayload, flowState);
51
+ }
52
+ const currentStep = await this.getStepById(flowState.currentStepId);
53
+ if (currentStep?.StepType === 'Prompt' && promptResult) {
54
+ const promptResponse = this.parseJSONResponse(promptResult);
55
+ if (promptResponse?.terminate) {
56
+ return this.createSuccessStep({
57
+ message: promptResponse.message || 'Flow terminated by prompt decision',
58
+ reasoning: promptResponse.reasoning
59
+ });
60
+ }
61
+ if (promptResponse?.nextStepName) {
62
+ const nextStep = await this.getStepByName(flowState.agentId, promptResponse.nextStepName);
63
+ if (nextStep) {
64
+ if (nextStep.Status !== 'Active') {
65
+ return this.createNextStep('Failed', {
66
+ errorMessage: `Requested step '${nextStep.Name}' is not active. Status: ${nextStep.Status}`
67
+ });
68
+ }
69
+ return await this.createStepForFlowNode(nextStep, currentPayload, flowState);
70
+ }
71
+ }
72
+ }
73
+ const paths = await this.getValidPaths(flowState.currentStepId, currentPayload, flowState);
74
+ if (paths.length === 0) {
75
+ return this.createSuccessStep({
76
+ message: 'Flow completed - no more paths to follow'
77
+ });
78
+ }
79
+ const nextStep = await this.getStepById(paths[0].DestinationStepID);
80
+ if (!nextStep) {
81
+ return this.createNextStep('Failed', {
82
+ errorMessage: `Destination step not found: ${paths[0].DestinationStepID}`
83
+ });
84
+ }
85
+ if (nextStep.Status !== 'Active') {
86
+ for (let i = 1; i < paths.length; i++) {
87
+ const alternateStep = await this.getStepById(paths[i].DestinationStepID);
88
+ if (alternateStep && alternateStep.Status === 'Active') {
89
+ return await this.createStepForFlowNode(alternateStep, currentPayload, flowState);
90
+ }
91
+ }
92
+ return this.createNextStep('Failed', {
93
+ errorMessage: `No active steps found. Step '${nextStep.Name}' has status: ${nextStep.Status}`
94
+ });
95
+ }
96
+ return await this.createStepForFlowNode(nextStep, currentPayload, flowState);
97
+ }
98
+ catch (error) {
99
+ (0, core_1.LogError)(`Error in FlowAgentType.DetermineNextStep: ${error.message}`);
100
+ return this.createNextStep('Failed', {
101
+ errorMessage: `Flow execution error: ${error.message}`
102
+ });
103
+ }
104
+ }
105
+ async InjectPayload(payload, prompt, agentInfo) {
106
+ if (!prompt) {
107
+ throw new Error('Prompt parameters are required for payload injection');
108
+ }
109
+ if (!prompt.data) {
110
+ prompt.data = {};
111
+ }
112
+ prompt.data[base_agent_type_1.BaseAgentType.CURRENT_PAYLOAD_PLACEHOLDER] = payload || {};
113
+ if (agentInfo.agentRunId) {
114
+ const flowState = FlowAgentType_1._flowStates.get(agentInfo.agentRunId);
115
+ if (flowState) {
116
+ prompt.data.flowContext = {
117
+ currentStepId: flowState.currentStepId,
118
+ completedSteps: Array.from(flowState.completedStepIds),
119
+ executionPath: flowState.executionPath,
120
+ stepCount: flowState.completedStepIds.size
121
+ };
122
+ }
123
+ }
124
+ }
125
+ async getStartingSteps(agentId) {
126
+ const steps = aiengine_1.AIEngine.Instance.GetAgentSteps(agentId, 'Active');
127
+ return steps.filter(step => step.StartingStep).sort((a, b) => a.Name.localeCompare(b.Name));
128
+ }
129
+ async getStepById(stepId) {
130
+ return aiengine_1.AIEngine.Instance.GetAgentStepById(stepId);
131
+ }
132
+ async getStepByName(agentId, stepName) {
133
+ const steps = aiengine_1.AIEngine.Instance.GetAgentSteps(agentId);
134
+ return steps.find(step => step.Name === stepName) || null;
135
+ }
136
+ async getValidPaths(stepId, payload, flowState) {
137
+ const allPaths = aiengine_1.AIEngine.Instance.GetPathsFromStep(stepId)
138
+ .sort((a, b) => b.Priority - a.Priority);
139
+ const validPaths = [];
140
+ for (const path of allPaths) {
141
+ if (!path.Condition) {
142
+ validPaths.push(path);
143
+ continue;
144
+ }
145
+ try {
146
+ const context = {
147
+ payload,
148
+ stepResult: this.getLastStepResult(flowState),
149
+ flowContext: {
150
+ currentStepId: flowState.currentStepId,
151
+ completedSteps: Array.from(flowState.completedStepIds),
152
+ executionPath: flowState.executionPath,
153
+ stepCount: flowState.completedStepIds.size
154
+ }
155
+ };
156
+ const evalResult = this._evaluator.evaluate(path.Condition, context);
157
+ if (evalResult.success && evalResult.value) {
158
+ validPaths.push(path);
159
+ }
160
+ }
161
+ catch (error) {
162
+ (0, core_1.LogError)(`Failed to evaluate path condition: ${error.message}`);
163
+ }
164
+ }
165
+ if (validPaths.length === 0) {
166
+ return allPaths.filter(p => p.Priority <= 0 && !p.Condition);
167
+ }
168
+ return validPaths.sort((a, b) => b.Priority - a.Priority);
169
+ }
170
+ getLastStepResult(flowState) {
171
+ if (flowState.executionPath.length === 0)
172
+ return null;
173
+ const lastStepId = flowState.executionPath[flowState.executionPath.length - 1];
174
+ return flowState.stepResults.get(lastStepId) || null;
175
+ }
176
+ applyActionOutputMapping(actionResult, _payload, mappingConfig) {
177
+ try {
178
+ const mapping = JSON.parse(mappingConfig);
179
+ const updateObj = {};
180
+ for (const [outputParam, payloadPath] of Object.entries(mapping)) {
181
+ let value;
182
+ if (outputParam === '*') {
183
+ value = actionResult;
184
+ }
185
+ else {
186
+ const actualKey = Object.keys(actionResult).find(key => key.toLowerCase() === outputParam.toLowerCase());
187
+ value = actualKey ? actionResult[actualKey] : undefined;
188
+ }
189
+ if (value !== undefined) {
190
+ const pathParts = payloadPath.split('.');
191
+ let current = updateObj;
192
+ for (let i = 0; i < pathParts.length - 1; i++) {
193
+ const part = pathParts[i];
194
+ if (!(part in current)) {
195
+ current[part] = {};
196
+ }
197
+ current = current[part];
198
+ }
199
+ current[pathParts[pathParts.length - 1]] = value;
200
+ }
201
+ }
202
+ if (Object.keys(updateObj).length === 0) {
203
+ return null;
204
+ }
205
+ return {
206
+ updateElements: updateObj
207
+ };
208
+ }
209
+ catch (error) {
210
+ (0, core_1.LogError)(`Failed to parse ActionOutputMapping: ${error.message}`);
211
+ return null;
212
+ }
213
+ }
214
+ async createStepForFlowNode(node, payload, flowState) {
215
+ flowState.currentStepId = node.ID;
216
+ switch (node.StepType) {
217
+ case 'Action':
218
+ if (!node.ActionID) {
219
+ return this.createNextStep('Failed', {
220
+ errorMessage: `Action step '${node.Name}' has no ActionID`,
221
+ newPayload: payload,
222
+ previousPayload: payload
223
+ });
224
+ }
225
+ const actionName = await this.getActionName(node.ActionID);
226
+ if (!actionName) {
227
+ return this.createNextStep('Failed', {
228
+ errorMessage: `Action not found for step '${node.Name}'`,
229
+ newPayload: payload,
230
+ previousPayload: payload
231
+ });
232
+ }
233
+ const baseStep = this.createNextStep('Actions', {
234
+ actions: [{
235
+ name: actionName,
236
+ params: {}
237
+ }],
238
+ terminate: false,
239
+ newPayload: payload,
240
+ previousPayload: payload
241
+ });
242
+ if (node.ActionOutputMapping) {
243
+ baseStep.actionOutputMapping = node.ActionOutputMapping;
244
+ baseStep.stepId = node.ID;
245
+ }
246
+ return baseStep;
247
+ case 'Sub-Agent':
248
+ if (!node.SubAgentID) {
249
+ return this.createNextStep('Failed', {
250
+ errorMessage: `Sub-Agent step '${node.Name}' has no SubAgentID`,
251
+ newPayload: payload,
252
+ previousPayload: payload
253
+ });
254
+ }
255
+ const subAgentName = await this.getAgentName(node.SubAgentID);
256
+ if (!subAgentName) {
257
+ return this.createNextStep('Failed', {
258
+ errorMessage: `Sub-Agent not found for step '${node.Name}'`,
259
+ newPayload: payload,
260
+ previousPayload: payload
261
+ });
262
+ }
263
+ return this.createNextStep('Sub-Agent', {
264
+ subAgent: {
265
+ name: subAgentName,
266
+ message: node.Description || `Execute sub-agent: ${subAgentName}`,
267
+ terminateAfter: false
268
+ },
269
+ terminate: false,
270
+ newPayload: payload,
271
+ previousPayload: payload
272
+ });
273
+ case 'Prompt':
274
+ if (!node.PromptID) {
275
+ return this.createNextStep('Failed', {
276
+ errorMessage: `Prompt step '${node.Name}' has no PromptID`,
277
+ newPayload: payload,
278
+ previousPayload: payload
279
+ });
280
+ }
281
+ return this.createNextStep('Retry', {
282
+ message: node.Description || 'Executing prompt step for flow decision',
283
+ terminate: false,
284
+ flowPromptStepId: node.PromptID,
285
+ newPayload: payload,
286
+ previousPayload: payload
287
+ });
288
+ default:
289
+ return this.createNextStep('Failed', {
290
+ errorMessage: `Unknown step type: ${node.StepType}`,
291
+ newPayload: payload,
292
+ previousPayload: payload
293
+ });
294
+ }
295
+ }
296
+ async getActionName(actionId) {
297
+ const action = actions_1.ActionEngineServer.Instance.Actions.find(a => a.ID === actionId);
298
+ return action?.Name || null;
299
+ }
300
+ async getAgentName(agentId) {
301
+ const agent = aiengine_1.AIEngine.Instance.Agents.find(a => a.ID === agentId);
302
+ return agent?.Name || null;
303
+ }
304
+ processActionResult(actionResult, _stepId, outputMapping, currentPayload) {
305
+ if (!outputMapping) {
306
+ return null;
307
+ }
308
+ return this.applyActionOutputMapping(actionResult, currentPayload || {}, outputMapping);
309
+ }
310
+ async PreProcessActionStep(actions, currentPayload, currentStep) {
311
+ const stepMetadata = currentStep;
312
+ const stepId = stepMetadata.stepId;
313
+ if (!stepId || actions.length === 0) {
314
+ return;
315
+ }
316
+ const stepEntity = aiengine_1.AIEngine.Instance.GetAgentStepById(stepId);
317
+ if (!stepEntity) {
318
+ (0, core_1.LogError)(`Failed to find AIAgentStep for input mapping: ${stepId}`);
319
+ return;
320
+ }
321
+ if (!stepEntity.ActionInputMapping) {
322
+ return;
323
+ }
324
+ if (actions.length > 1) {
325
+ (0, core_1.LogError)('Flow agent action input mapping currently only supports single action steps');
326
+ return;
327
+ }
328
+ try {
329
+ const inputMapping = JSON.parse(stepEntity.ActionInputMapping);
330
+ const action = actions[0];
331
+ if (!action.params) {
332
+ action.params = {};
333
+ }
334
+ for (const [paramName, mappingValue] of Object.entries(inputMapping)) {
335
+ let resolvedValue;
336
+ if (typeof mappingValue === 'string') {
337
+ if (mappingValue.startsWith('static:')) {
338
+ resolvedValue = mappingValue.substring(7);
339
+ }
340
+ else if (mappingValue.startsWith('payload.')) {
341
+ const path = mappingValue.substring(8);
342
+ resolvedValue = this.getValueFromPath(currentPayload, path);
343
+ }
344
+ else {
345
+ resolvedValue = mappingValue;
346
+ }
347
+ }
348
+ else {
349
+ resolvedValue = mappingValue;
350
+ }
351
+ action.params[paramName] = resolvedValue;
352
+ }
353
+ if ((0, core_1.IsVerboseLoggingEnabled)()) {
354
+ console.log(`Applied action input mapping for step ${stepEntity.Name}:`, action.params);
355
+ }
356
+ }
357
+ catch (error) {
358
+ (0, core_1.LogError)(`Failed to apply action input mapping: ${error.message}`);
359
+ }
360
+ }
361
+ getValueFromPath(obj, path) {
362
+ const parts = path.split('.');
363
+ let current = obj;
364
+ for (const part of parts) {
365
+ if (current && typeof current === 'object' && part in current) {
366
+ current = current[part];
367
+ }
368
+ else {
369
+ return undefined;
370
+ }
371
+ }
372
+ return current;
373
+ }
374
+ async PostProcessActionStep(actionResults, _actions, currentPayload, currentStep) {
375
+ const stepMetadata = currentStep;
376
+ const outputMapping = stepMetadata.actionOutputMapping;
377
+ const stepId = stepMetadata.stepId;
378
+ if (!outputMapping || !stepId || actionResults.length === 0) {
379
+ return null;
380
+ }
381
+ if (actionResults.length > 1) {
382
+ (0, core_1.LogError)('Flow agent action output mapping currently only supports single action steps');
383
+ return null;
384
+ }
385
+ const actionResult = actionResults[0];
386
+ const outputParams = {};
387
+ if (actionResult.Params) {
388
+ for (const param of actionResult.Params) {
389
+ if (param.Type === 'Output' || param.Type === 'Both') {
390
+ outputParams[param.Name] = param.Value;
391
+ }
392
+ }
393
+ }
394
+ const payloadChange = this.applyActionOutputMapping(outputParams, currentPayload, outputMapping);
395
+ return payloadChange;
396
+ }
397
+ async DetermineInitialStep(params) {
398
+ const agentRunId = params.parentRun?.ID || `temp-${params.agent.ID}`;
399
+ const flowState = this.getOrCreateFlowState(agentRunId, params.agent.ID);
400
+ const payload = params.payload || {};
401
+ const startingSteps = await this.getStartingSteps(flowState.agentId);
402
+ if (startingSteps.length === 0) {
403
+ return this.createNextStep('Failed', {
404
+ errorMessage: 'No starting steps defined for flow agent'
405
+ });
406
+ }
407
+ return await this.createStepForFlowNode(startingSteps[0], payload, flowState);
408
+ }
409
+ async PreProcessRetryStep(params, retryStep) {
410
+ const stepMetadata = retryStep;
411
+ if (stepMetadata.flowPromptStepId) {
412
+ return null;
413
+ }
414
+ const currentPayload = retryStep.newPayload || params.payload || {};
415
+ const agentRunId = params.parentRun?.ID || `temp-${params.agent.ID}`;
416
+ const flowState = this.getOrCreateFlowState(agentRunId, params.agent.ID);
417
+ if (!flowState.currentStepId) {
418
+ return this.createNextStep('Failed', {
419
+ errorMessage: 'No current step in flow state after action execution',
420
+ newPayload: currentPayload,
421
+ previousPayload: currentPayload
422
+ });
423
+ }
424
+ const paths = await this.getValidPaths(flowState.currentStepId, currentPayload, flowState);
425
+ if (paths.length === 0) {
426
+ return this.createSuccessStep({
427
+ message: 'Flow completed - no more paths to follow',
428
+ newPayload: currentPayload,
429
+ previousPayload: currentPayload
430
+ });
431
+ }
432
+ const nextStep = await this.getStepById(paths[0].DestinationStepID);
433
+ if (!nextStep) {
434
+ return this.createNextStep('Failed', {
435
+ errorMessage: `Destination step not found: ${paths[0].DestinationStepID}`
436
+ });
437
+ }
438
+ if (nextStep.Status !== 'Active') {
439
+ for (let i = 1; i < paths.length; i++) {
440
+ const alternateStep = await this.getStepById(paths[i].DestinationStepID);
441
+ if (alternateStep && alternateStep.Status === 'Active') {
442
+ return await this.createStepForFlowNode(alternateStep, currentPayload, flowState);
443
+ }
444
+ }
445
+ return this.createNextStep('Failed', {
446
+ errorMessage: `No active steps found. Step '${nextStep.Name}' has status: ${nextStep.Status}`,
447
+ newPayload: currentPayload,
448
+ previousPayload: currentPayload
449
+ });
450
+ }
451
+ return await this.createStepForFlowNode(nextStep, currentPayload, flowState);
452
+ }
453
+ };
454
+ exports.FlowAgentType = FlowAgentType;
455
+ FlowAgentType._flowStates = new Map();
456
+ exports.FlowAgentType = FlowAgentType = FlowAgentType_1 = __decorate([
457
+ (0, global_1.RegisterClass)(base_agent_type_1.BaseAgentType, "FlowAgentType")
458
+ ], FlowAgentType);
459
+ function LoadFlowAgentType() {
460
+ }
461
+ exports.LoadFlowAgentType = LoadFlowAgentType;
462
+ //# sourceMappingURL=flow-agent-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow-agent-type.js","sourceRoot":"","sources":["../../src/agent-types/flow-agent-type.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  export * from './base-agent-type';
2
2
  export * from './loop-agent-type';
3
+ export * from './flow-agent-type';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent-types/index.ts"],"names":[],"mappings":"AAYA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent-types/index.ts"],"names":[],"mappings":"AAYA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC"}
@@ -16,6 +16,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./base-agent-type"), exports);
18
18
  __exportStar(require("./loop-agent-type"), exports);
19
+ __exportStar(require("./flow-agent-type"), exports);
19
20
  const loop_agent_type_1 = require("./loop-agent-type");
21
+ const flow_agent_type_1 = require("./flow-agent-type");
20
22
  (0, loop_agent_type_1.LoadLoopAgentType)();
23
+ (0, flow_agent_type_1.LoadFlowAgentType)();
21
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent-types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAYA,oDAAkC;AAClC,oDAAkC;AAGlC,uDAAsD;AACtD,IAAA,mCAAiB,GAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent-types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAYA,oDAAkC;AAClC,oDAAkC;AAClC,oDAAkC;AAGlC,uDAAsD;AACtD,uDAAsD;AAEtD,IAAA,mCAAiB,GAAE,CAAC;AACpB,IAAA,mCAAiB,GAAE,CAAC"}
@@ -1,14 +1,17 @@
1
1
  import { BaseAgentType } from './base-agent-type';
2
- import { AIPromptRunResult, BaseAgentNextStep, AIPromptParams } from '@memberjunction/ai-core-plus';
2
+ import { AIPromptRunResult, BaseAgentNextStep, AIPromptParams, ExecuteAgentParams } from '@memberjunction/ai-core-plus';
3
3
  export declare class LoopAgentType extends BaseAgentType {
4
- private _jsonValidator;
5
- DetermineNextStep<P>(promptResult: AIPromptRunResult): Promise<BaseAgentNextStep<P>>;
4
+ DetermineNextStep<P>(promptResult: AIPromptRunResult | null, params: ExecuteAgentParams<any, P>): Promise<BaseAgentNextStep<P>>;
6
5
  protected isValidLoopResponse(simpleResponse: unknown): {
7
6
  success: boolean;
8
7
  message?: string;
9
8
  };
10
- static CURRENT_PAYLOAD_PLACHOLDER: string;
11
- InjectPayload<T = any>(payload: T, prompt: AIPromptParams): Promise<void>;
9
+ InjectPayload<T = any>(payload: T, prompt: AIPromptParams, agentInfo: {
10
+ agentId: string;
11
+ agentRunId?: string;
12
+ }): Promise<void>;
13
+ DetermineInitialStep<P = any>(params: ExecuteAgentParams<P>): Promise<BaseAgentNextStep<P> | null>;
14
+ PreProcessRetryStep<P = any>(params: ExecuteAgentParams<P>, retryStep: BaseAgentNextStep<P>): Promise<BaseAgentNextStep<P> | null>;
12
15
  }
13
16
  export declare function LoadLoopAgentType(): void;
14
17
  //# sourceMappingURL=loop-agent-type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loop-agent-type.d.ts","sourceRoot":"","sources":["../../src/agent-types/loop-agent-type.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAsCpG,qBACa,aAAc,SAAQ,aAAa;IAC5C,OAAO,CAAC,cAAc,CAAsC;IAc/C,iBAAiB,CAAC,CAAC,EAAE,YAAY,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IA+IjG,SAAS,CAAC,mBAAmB,CAAC,cAAc,EAAE,OAAO,GAAG;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAC;IAkH5F,OAAc,0BAA0B,SAAsB;IAQjD,aAAa,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAQzF;AAKD,wBAAgB,iBAAiB,SAEhC"}
1
+ {"version":3,"file":"loop-agent-type.d.ts","sourceRoot":"","sources":["../../src/agent-types/loop-agent-type.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAsCxH,qBACa,aAAc,SAAQ,aAAa;IAa/B,iBAAiB,CAAC,CAAC,EAC5B,YAAY,EAAE,iBAAiB,GAAG,IAAI,EACtC,MAAM,EAAE,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,GACnC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IA2GhC,SAAS,CAAC,mBAAmB,CAAC,cAAc,EAAE,OAAO,GAAG;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAC;IAyH/E,aAAa,CAAC,CAAC,GAAG,GAAG,EAC9B,OAAO,EAAE,CAAC,EACV,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GACpD,OAAO,CAAC,IAAI,CAAC;IAoBH,oBAAoB,CAAC,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAiBlG,mBAAmB,CAAC,CAAC,GAAG,GAAG,EACpC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC7B,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAChC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CAI1C;AAKD,wBAAgB,iBAAiB,SAEhC"}