@memberjunction/ai-agents 3.4.0 → 4.1.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 (90) hide show
  1. package/README.md +232 -2584
  2. package/dist/AgentDataPreloader.d.ts +117 -1
  3. package/dist/AgentDataPreloader.d.ts.map +1 -1
  4. package/dist/AgentDataPreloader.js +156 -58
  5. package/dist/AgentDataPreloader.js.map +1 -1
  6. package/dist/AgentRunner.d.ts +212 -0
  7. package/dist/AgentRunner.d.ts.map +1 -1
  8. package/dist/AgentRunner.js +354 -103
  9. package/dist/AgentRunner.js.map +1 -1
  10. package/dist/PayloadChangeAnalyzer.d.ts +68 -0
  11. package/dist/PayloadChangeAnalyzer.d.ts.map +1 -1
  12. package/dist/PayloadChangeAnalyzer.js +68 -32
  13. package/dist/PayloadChangeAnalyzer.js.map +1 -1
  14. package/dist/PayloadFeedbackManager.d.ts +57 -1
  15. package/dist/PayloadFeedbackManager.d.ts.map +1 -1
  16. package/dist/PayloadFeedbackManager.js +66 -21
  17. package/dist/PayloadFeedbackManager.js.map +1 -1
  18. package/dist/PayloadManager.d.ts +286 -1
  19. package/dist/PayloadManager.d.ts.map +1 -1
  20. package/dist/PayloadManager.js +423 -50
  21. package/dist/PayloadManager.js.map +1 -1
  22. package/dist/__tests__/action-changes.test.d.ts +13 -0
  23. package/dist/__tests__/action-changes.test.d.ts.map +1 -1
  24. package/dist/__tests__/action-changes.test.js +57 -4
  25. package/dist/__tests__/action-changes.test.js.map +1 -1
  26. package/dist/__tests__/agent-memory-features.test.d.ts +52 -0
  27. package/dist/__tests__/agent-memory-features.test.d.ts.map +1 -1
  28. package/dist/__tests__/agent-memory-features.test.js +96 -13
  29. package/dist/__tests__/agent-memory-features.test.js.map +1 -1
  30. package/dist/__tests__/agent-type-prompt-params.test.d.ts +12 -0
  31. package/dist/__tests__/agent-type-prompt-params.test.d.ts.map +1 -1
  32. package/dist/__tests__/agent-type-prompt-params.test.js +112 -20
  33. package/dist/__tests__/agent-type-prompt-params.test.js.map +1 -1
  34. package/dist/__tests__/chat-handling-option.test.d.ts +26 -0
  35. package/dist/__tests__/chat-handling-option.test.d.ts.map +1 -1
  36. package/dist/__tests__/chat-handling-option.test.js +41 -2
  37. package/dist/__tests__/chat-handling-option.test.js.map +1 -1
  38. package/dist/agent-context-injector.d.ts +114 -0
  39. package/dist/agent-context-injector.d.ts.map +1 -1
  40. package/dist/agent-context-injector.js +138 -19
  41. package/dist/agent-context-injector.js.map +1 -1
  42. package/dist/agent-types/base-agent-type.d.ts +354 -0
  43. package/dist/agent-types/base-agent-type.d.ts.map +1 -1
  44. package/dist/agent-types/base-agent-type.js +288 -17
  45. package/dist/agent-types/base-agent-type.js.map +1 -1
  46. package/dist/agent-types/flow-agent-type.d.ts +328 -2
  47. package/dist/agent-types/flow-agent-type.d.ts.map +1 -1
  48. package/dist/agent-types/flow-agent-type.js +503 -63
  49. package/dist/agent-types/flow-agent-type.js.map +1 -1
  50. package/dist/agent-types/index.d.ts +14 -3
  51. package/dist/agent-types/index.d.ts.map +1 -1
  52. package/dist/agent-types/index.js +14 -23
  53. package/dist/agent-types/index.js.map +1 -1
  54. package/dist/agent-types/loop-agent-prompt-params.d.ts +190 -0
  55. package/dist/agent-types/loop-agent-prompt-params.d.ts.map +1 -1
  56. package/dist/agent-types/loop-agent-prompt-params.js +23 -6
  57. package/dist/agent-types/loop-agent-prompt-params.js.map +1 -1
  58. package/dist/agent-types/loop-agent-response-type.d.ts +62 -0
  59. package/dist/agent-types/loop-agent-response-type.d.ts.map +1 -1
  60. package/dist/agent-types/loop-agent-response-type.js +3 -2
  61. package/dist/agent-types/loop-agent-response-type.js.map +1 -1
  62. package/dist/agent-types/loop-agent-type.d.ts +139 -2
  63. package/dist/agent-types/loop-agent-type.d.ts.map +1 -1
  64. package/dist/agent-types/loop-agent-type.js +207 -35
  65. package/dist/agent-types/loop-agent-type.js.map +1 -1
  66. package/dist/base-agent.d.ts +1344 -1
  67. package/dist/base-agent.d.ts.map +1 -1
  68. package/dist/base-agent.js +2282 -211
  69. package/dist/base-agent.js.map +1 -1
  70. package/dist/index.d.ts +24 -14
  71. package/dist/index.d.ts.map +1 -1
  72. package/dist/index.js +25 -35
  73. package/dist/index.js.map +1 -1
  74. package/dist/memory-cleanup-agent.d.ts +53 -1
  75. package/dist/memory-cleanup-agent.d.ts.map +1 -1
  76. package/dist/memory-cleanup-agent.js +89 -21
  77. package/dist/memory-cleanup-agent.js.map +1 -1
  78. package/dist/memory-manager-agent.d.ts +61 -1
  79. package/dist/memory-manager-agent.d.ts.map +1 -1
  80. package/dist/memory-manager-agent.js +260 -116
  81. package/dist/memory-manager-agent.js.map +1 -1
  82. package/dist/types/payload-operations.d.ts +51 -0
  83. package/dist/types/payload-operations.d.ts.map +1 -1
  84. package/dist/types/payload-operations.js +54 -15
  85. package/dist/types/payload-operations.js.map +1 -1
  86. package/dist/utils/ConversationMessageResolver.d.ts +79 -1
  87. package/dist/utils/ConversationMessageResolver.d.ts.map +1 -1
  88. package/dist/utils/ConversationMessageResolver.js +99 -9
  89. package/dist/utils/ConversationMessageResolver.js.map +1 -1
  90. package/package.json +20 -19
@@ -1,11 +1,21 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PayloadFeedbackManager = void 0;
4
- const core_1 = require("@memberjunction/core");
5
- const aiengine_1 = require("@memberjunction/aiengine");
6
- const ai_prompts_1 = require("@memberjunction/ai-prompts");
7
- const ai_core_plus_1 = require("@memberjunction/ai-core-plus");
8
- class PayloadFeedbackManager {
1
+ /**
2
+ * @fileoverview Feedback mechanism for validating suspicious payload changes with LLMs
3
+ *
4
+ * This module provides a standardized way to query AI agents about potentially
5
+ * unintended changes and receive structured yes/no confirmations.
6
+ *
7
+ * @module @memberjunction/ai-agents
8
+ * @author MemberJunction.com
9
+ * @since 3.1.0
10
+ */
11
+ import { LogStatus, LogError } from '@memberjunction/core';
12
+ import { AIEngine } from '@memberjunction/aiengine';
13
+ import { AIPromptRunner } from '@memberjunction/ai-prompts';
14
+ import { AIPromptParams } from '@memberjunction/ai-core-plus';
15
+ /**
16
+ * Manages feedback collection for suspicious payload changes
17
+ */
18
+ export class PayloadFeedbackManager {
9
19
  constructor(config) {
10
20
  this.config = {
11
21
  maxQuestionsPerBatch: 10,
@@ -13,6 +23,9 @@ class PayloadFeedbackManager {
13
23
  ...config
14
24
  };
15
25
  }
26
+ /**
27
+ * Generate feedback questions from warnings
28
+ */
16
29
  generateQuestions(warnings) {
17
30
  const questions = [];
18
31
  const feedbackWarnings = warnings.filter(w => w.requiresFeedback);
@@ -23,6 +36,9 @@ class PayloadFeedbackManager {
23
36
  }
24
37
  return questions;
25
38
  }
39
+ /**
40
+ * Create a structured question from a warning
41
+ */
26
42
  createQuestionFromWarning(warning, index) {
27
43
  let question = '';
28
44
  switch (warning.type) {
@@ -55,15 +71,25 @@ class PayloadFeedbackManager {
55
71
  }
56
72
  };
57
73
  }
74
+ /**
75
+ * Query the AI agent about suspicious changes using MemberJunction AI Prompts system.
76
+ *
77
+ * @param questions - Array of feedback questions to ask about payload changes
78
+ * @param conversationContext - Context from the conversation (for reference)
79
+ * @param contextUser - User context for the prompt execution
80
+ * @returns Array of responses indicating whether each change was intended
81
+ */
58
82
  async queryAgent(questions, conversationContext, contextUser) {
59
83
  if (questions.length === 0) {
60
84
  return [];
61
85
  }
86
+ // Find the payload feedback prompt
62
87
  const promptName = 'Payload Change Feedback Query';
63
- const prompt = aiengine_1.AIEngine.Instance.Prompts.find(p => p.Name.trim().toLowerCase() === promptName.toLowerCase() &&
88
+ const prompt = AIEngine.Instance.Prompts.find(p => p.Name.trim().toLowerCase() === promptName.toLowerCase() &&
64
89
  p.Category?.trim().toLowerCase() === 'mj: system');
65
90
  if (!prompt) {
66
- (0, core_1.LogStatus)(`PayloadFeedbackManager: Prompt "${promptName}" not found in MJ: System category. Accepting all changes by default.`);
91
+ // Fallback: accept all changes if prompt not configured
92
+ LogStatus(`PayloadFeedbackManager: Prompt "${promptName}" not found in MJ: System category. Accepting all changes by default.`);
67
93
  return questions.map(q => ({
68
94
  questionId: q.id,
69
95
  intended: true,
@@ -71,9 +97,11 @@ class PayloadFeedbackManager {
71
97
  }));
72
98
  }
73
99
  try {
100
+ // Build template parameters
74
101
  const templateData = this.buildFeedbackTemplateParams(questions);
75
- const runner = new ai_prompts_1.AIPromptRunner();
76
- const promptParams = new ai_core_plus_1.AIPromptParams();
102
+ // Execute the prompt
103
+ const runner = new AIPromptRunner();
104
+ const promptParams = new AIPromptParams();
77
105
  promptParams.prompt = prompt;
78
106
  promptParams.data = templateData;
79
107
  if (contextUser) {
@@ -81,17 +109,20 @@ class PayloadFeedbackManager {
81
109
  }
82
110
  const result = await runner.ExecutePrompt(promptParams);
83
111
  if (!result.success || !result.result?.responses) {
84
- (0, core_1.LogError)('PayloadFeedbackManager: Failed to get valid response from feedback prompt', undefined, result.errorMessage);
112
+ LogError('PayloadFeedbackManager: Failed to get valid response from feedback prompt', undefined, result.errorMessage);
113
+ // Fallback to accepting all changes
85
114
  return questions.map(q => ({
86
115
  questionId: q.id,
87
116
  intended: true,
88
117
  explanation: 'Accepted by default (prompt execution failed)'
89
118
  }));
90
119
  }
120
+ // Map LLM responses back to our format
91
121
  return this.mapLLMResponsesToFeedback(questions, result.result.responses);
92
122
  }
93
123
  catch (error) {
94
- (0, core_1.LogError)('PayloadFeedbackManager: Error querying agent for feedback', undefined, error);
124
+ LogError('PayloadFeedbackManager: Error querying agent for feedback', undefined, error);
125
+ // Fallback to accepting all changes
95
126
  return questions.map(q => ({
96
127
  questionId: q.id,
97
128
  intended: true,
@@ -99,6 +130,9 @@ class PayloadFeedbackManager {
99
130
  }));
100
131
  }
101
132
  }
133
+ /**
134
+ * Map LLM responses back to PayloadFeedbackResponse format
135
+ */
102
136
  mapLLMResponsesToFeedback(questions, llmResponses) {
103
137
  return questions.map((q, index) => {
104
138
  const questionNumber = index + 1;
@@ -110,6 +144,7 @@ class PayloadFeedbackManager {
110
144
  explanation: llmResponse.explanation
111
145
  };
112
146
  }
147
+ // Default to intended if no matching response found
113
148
  return {
114
149
  questionId: q.id,
115
150
  intended: true,
@@ -117,6 +152,11 @@ class PayloadFeedbackManager {
117
152
  };
118
153
  });
119
154
  }
155
+ /**
156
+ * Build template parameters for the feedback prompt
157
+ *
158
+ * @todo This should prepare the data structure to pass to the stored prompt template
159
+ */
120
160
  buildFeedbackTemplateParams(questions) {
121
161
  return {
122
162
  questions: questions.map((q, i) => ({
@@ -130,6 +170,9 @@ class PayloadFeedbackManager {
130
170
  timestamp: new Date().toISOString()
131
171
  };
132
172
  }
173
+ /**
174
+ * Process feedback responses and determine final result
175
+ */
133
176
  processFeedback(questions, responses) {
134
177
  const acceptedChanges = [];
135
178
  const rejectedChanges = [];
@@ -152,23 +195,25 @@ class PayloadFeedbackManager {
152
195
  requiresRevision: rejectedChanges.length > 0
153
196
  };
154
197
  }
198
+ /**
199
+ * Log feedback results
200
+ */
155
201
  logFeedbackResults(result) {
156
202
  if (result.responses.length === 0) {
157
203
  return;
158
204
  }
159
- (0, core_1.LogStatus)(`\n📋 Payload Change Feedback Results:`);
160
- (0, core_1.LogStatus)(` ✅ Accepted changes: ${result.acceptedChanges.length}`);
161
- (0, core_1.LogStatus)(` ❌ Rejected changes: ${result.rejectedChanges.length}`);
205
+ LogStatus(`\n📋 Payload Change Feedback Results:`);
206
+ LogStatus(` ✅ Accepted changes: ${result.acceptedChanges.length}`);
207
+ LogStatus(` ❌ Rejected changes: ${result.rejectedChanges.length}`);
162
208
  if (result.rejectedChanges.length > 0) {
163
- (0, core_1.LogStatus)(`\n Rejected change paths:`);
209
+ LogStatus(`\n Rejected change paths:`);
164
210
  for (const path of result.rejectedChanges) {
165
- (0, core_1.LogStatus)(` - ${path}`);
211
+ LogStatus(` - ${path}`);
166
212
  }
167
213
  }
168
214
  if (result.requiresRevision) {
169
- (0, core_1.LogStatus)(`\n ⚠️ Agent needs to revise the payload`);
215
+ LogStatus(`\n ⚠️ Agent needs to revise the payload`);
170
216
  }
171
217
  }
172
218
  }
173
- exports.PayloadFeedbackManager = PayloadFeedbackManager;
174
219
  //# sourceMappingURL=PayloadFeedbackManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PayloadFeedbackManager.js","sourceRoot":"","sources":["../src/PayloadFeedbackManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PayloadFeedbackManager.js","sourceRoot":"","sources":["../src/PayloadFeedbackManager.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,59 @@
1
+ /**
2
+ * @fileoverview Payload management for hierarchical agent execution.
3
+ *
4
+ * This module provides functionality to control which parts of a payload
5
+ * are accessible to sub-agents (downstream) and which parts they can
6
+ * modify (upstream). It supports JSON path-based access control with
7
+ * wildcards and nested path support.
8
+ *
9
+ * ## Key Features:
10
+ * - Path-based access control for sub-agent data isolation
11
+ * - Operation-level permissions (add, update, delete) per path
12
+ * - Automatic detection of suspicious payload changes
13
+ * - Human-readable diff generation for audit trails
14
+ * - Configurable warning thresholds for content changes
15
+ *
16
+ * ## Path Syntax:
17
+ * - Exact paths: "customer.name"
18
+ * - Wildcards: "customer.*" (all properties under customer)
19
+ * - Array indices: "items[0].price" or "items[*].price"
20
+ * - Deep wildcards: "**.id" (all id fields at any depth)
21
+ * - Root wildcard: "*" (entire payload)
22
+ * - Operation control: "path:add,update" (specific operations only)
23
+ *
24
+ * ## Change Detection Rules:
25
+ * - Content truncation: Warns when text reduced by >70%
26
+ * - Key removal: Flags when non-empty keys are removed
27
+ * - Type changes: Detects object→primitive conversions
28
+ * - Pattern anomalies: Identifies placeholder replacements
29
+ *
30
+ * @module @memberjunction/ai-agents
31
+ * @author MemberJunction.com
32
+ * @since 3.0.0
33
+ */
1
34
  import { AgentPayloadChangeRequest } from '@memberjunction/ai-core-plus';
2
35
  import { DeepDiffResult } from '@memberjunction/global';
3
- import { PayloadAnalysisResult } from './PayloadChangeAnalyzer';
36
+ import { PayloadAnalysisResult } from './PayloadChangeAnalyzer.js';
37
+ /**
38
+ * Result of applying a payload change request with enhanced tracking
39
+ */
40
+ /**
41
+ * Summary of payload change operations for audit trail storage
42
+ */
4
43
  export interface PayloadChangeResultSummary {
44
+ /** Operation counts */
5
45
  applied: {
6
46
  additions: number;
7
47
  updates: number;
8
48
  deletions: number;
9
49
  };
50
+ /** Warning messages */
10
51
  warnings: string[];
52
+ /** Whether feedback is required */
11
53
  requiresFeedback: boolean;
54
+ /** Timestamp of the operation */
12
55
  timestamp: Date | string;
56
+ /** Payload validation tracking */
13
57
  payloadValidation?: {
14
58
  selfWriteViolations?: {
15
59
  deniedOperations: Array<{
@@ -36,6 +80,7 @@ export interface PayloadChangeResultSummary {
36
80
  timestamp: string;
37
81
  };
38
82
  };
83
+ /** Analysis summary */
39
84
  analysis?: {
40
85
  totalWarnings: number;
41
86
  warningsByType: Record<string, number>;
@@ -47,6 +92,7 @@ export interface PayloadChangeResultSummary {
47
92
  message: string;
48
93
  }>;
49
94
  };
95
+ /** Diff summary */
50
96
  diffSummary?: {
51
97
  added: number;
52
98
  removed: number;
@@ -55,17 +101,25 @@ export interface PayloadChangeResultSummary {
55
101
  };
56
102
  }
57
103
  export interface PayloadManagerResult<P = any> {
104
+ /** The resulting payload after changes */
58
105
  result: P;
106
+ /** Counts of applied operations */
59
107
  applied: {
60
108
  additions: number;
61
109
  updates: number;
62
110
  deletions: number;
63
111
  };
112
+ /** Basic warnings from the change process */
64
113
  warnings: string[];
114
+ /** Detailed analysis of suspicious changes */
65
115
  analysis?: PayloadAnalysisResult;
116
+ /** Diff between original and result payload */
66
117
  diff?: DeepDiffResult;
118
+ /** Whether feedback is required from the agent */
67
119
  requiresFeedback?: boolean;
120
+ /** Timestamp of the operation */
68
121
  timestamp: Date;
122
+ /** Blocked operations with detailed tracking */
69
123
  blockedOperations?: Array<{
70
124
  path: string;
71
125
  operation: 'add' | 'update' | 'delete';
@@ -75,23 +129,167 @@ export interface PayloadManagerResult<P = any> {
75
129
  timestamp: string;
76
130
  }>;
77
131
  }
132
+ /**
133
+ * Manages payload access control for agent hierarchies.
134
+ *
135
+ * This class handles extracting specific paths from payloads when sending
136
+ * data downstream to sub-agents, and merging results back upstream while
137
+ * respecting write permissions.
138
+ *
139
+ * Path syntax supports:
140
+ * - Exact paths: "customer.name"
141
+ * - Wildcards: "customer.*" (all properties under customer)
142
+ * - Array indices: "items[0].price" or "items[*].price"
143
+ * - Deep wildcards: "**.id" (all id fields at any depth)
144
+ * - Root wildcard: "*" (entire payload)
145
+ */
78
146
  export declare class PayloadManager {
147
+ /**
148
+ * Extracts only the allowed paths from a payload for downstream transmission.
149
+ *
150
+ * @param fullPayload The complete payload object
151
+ * @param downstreamPaths Array of path patterns defining what to extract
152
+ * @returns A new object containing only the allowed paths
153
+ *
154
+ * @example
155
+ * ```typescript
156
+ * const payload = { customer: { id: 1, name: 'John', secret: 'xxx' }, order: { id: 2 } };
157
+ * const paths = ['customer.id', 'customer.name', 'order.*'];
158
+ * const result = extractDownstreamPayload(payload, paths);
159
+ * // Returns: { customer: { id: 1, name: 'John' }, order: { id: 2 } }
160
+ * ```
161
+ */
79
162
  extractDownstreamPayload<P = any>(subAgentName: string, fullPayload: P | null | undefined, downstreamPaths: string[]): Partial<P> | null;
163
+ /**
164
+ * Merges sub-agent results back into the parent payload, respecting write permissions.
165
+ *
166
+ * @param parentPayload The original parent payload
167
+ * @param subAgentPayload The payload returned by the sub-agent
168
+ * @param upstreamPaths Array of path patterns the sub-agent is allowed to write
169
+ * @returns A new merged payload object
170
+ *
171
+ * @example
172
+ * ```typescript
173
+ * const parent = { customer: { id: 1 }, analysis: { sentiment: null } };
174
+ * const subResult = { customer: { id: 2 }, analysis: { sentiment: 'positive', score: 0.9 } };
175
+ * const writePaths = ['analysis.*'];
176
+ * const merged = mergeUpstreamPayload(parent, subResult, writePaths);
177
+ * // Returns: { customer: { id: 1 }, analysis: { sentiment: 'positive', score: 0.9 } }
178
+ * ```
179
+ */
80
180
  mergeUpstreamPayload<P = any>(subAgentName: string, parentPayload: P | null | undefined, subAgentPayload: Partial<P> | null | undefined, upstreamPaths: string[], verbose?: boolean): PayloadManagerResult<P>;
181
+ /**
182
+ * Extracts a path pattern from source object into destination.
183
+ *
184
+ * @private
185
+ */
81
186
  private extractPathPattern;
187
+ /**
188
+ * Recursively extracts paths based on parsed path parts.
189
+ *
190
+ * @private
191
+ */
82
192
  private extractPath;
193
+ /**
194
+ * Handles array path extraction (e.g., items[0] or items[*]).
195
+ *
196
+ * @private
197
+ */
83
198
  private extractArrayPath;
199
+ /**
200
+ * Handles deep wildcard extraction (e.g., **.id).
201
+ *
202
+ * @private
203
+ */
84
204
  private extractDeepWildcard;
205
+ /**
206
+ * Merges allowed paths from sub-agent payload into result.
207
+ *
208
+ * @private
209
+ */
85
210
  private mergeAllowedPaths;
211
+ /**
212
+ * Count changes between two payloads for tracking operations
213
+ *
214
+ * @private
215
+ */
86
216
  private countChanges;
217
+ /**
218
+ * Groups unauthorized changes by their root path for cleaner display.
219
+ *
220
+ * @private
221
+ */
87
222
  private groupUnauthorizedChanges;
223
+ /**
224
+ * Formats a value for display in warning messages.
225
+ *
226
+ * @private
227
+ */
88
228
  private formatValue;
229
+ /**
230
+ * Gets all leaf paths from an object.
231
+ *
232
+ * @private
233
+ */
89
234
  private getAllPaths;
235
+ /**
236
+ * Recursively cleans up empty objects from arrays after merge operations.
237
+ * This is necessary because property-level deletions can leave empty object shells in arrays.
238
+ *
239
+ * @private
240
+ */
90
241
  private cleanupEmptyArrayElements;
242
+ /**
243
+ * Checks if a path matches any of the allowed patterns.
244
+ *
245
+ * @private
246
+ */
91
247
  private isPathAllowed;
248
+ /**
249
+ * Checks if a specific operation is allowed for a path.
250
+ *
251
+ * @param actualPath The actual path to check
252
+ * @param operation The operation to check
253
+ * @param allowedPatterns Array of allowed patterns with optional operations
254
+ * @returns True if the operation is allowed on this path
255
+ */
92
256
  private isOperationAllowedForPath;
257
+ /**
258
+ * Parses a path string into parts, handling array notation.
259
+ *
260
+ * @private
261
+ */
93
262
  private parsePathParts;
263
+ /**
264
+ * Deep merges two objects, with source overriding destination.
265
+ *
266
+ * This method preserves existing nested properties in the destination while
267
+ * adding or updating properties from the source. It handles nested objects
268
+ * recursively, ensuring that partial updates don't wipe out existing data.
269
+ *
270
+ * @example
271
+ * ```typescript
272
+ * const dest = { decision: { Y: 4, Z: 2 } };
273
+ * const src = { decision: { x: "string" } };
274
+ * const result = deepMerge(dest, src);
275
+ * // Returns: { decision: { x: "string", Y: 4, Z: 2 } }
276
+ * ```
277
+ *
278
+ * @param destination The target object to merge into
279
+ * @param source The source object to merge from
280
+ * @returns A new merged object with all properties from both objects
281
+ *
282
+ * @public
283
+ */
94
284
  deepMerge<T = any>(destination: T | null | undefined, source: Partial<T> | null | undefined): T;
285
+ /**
286
+ * Applies an AgentPayloadChangeRequest to a payload
287
+ *
288
+ * @param originalPayload The original payload to apply changes to
289
+ * @param changeRequest The change request from the AI agent
290
+ * @param options Configuration options for the operation
291
+ * @returns Result object with the modified payload, operation counts, and any warnings
292
+ */
95
293
  applyAgentChangeRequest<P = any>(originalPayload: P, changeRequest: AgentPayloadChangeRequest<any>, options?: {
96
294
  validateChanges?: boolean;
97
295
  logChanges?: boolean;
@@ -101,20 +299,107 @@ export declare class PayloadManager {
101
299
  allowedPaths?: string[];
102
300
  verbose?: boolean;
103
301
  }): PayloadManagerResult<P>;
302
+ /**
303
+ * Process a change request recursively through the payload structure
304
+ */
104
305
  private processChangeRequest;
306
+ /**
307
+ * Process changes for array elements with support for deep merging object elements.
308
+ *
309
+ * For arrays containing objects, updates are merged deeply rather than replacing
310
+ * the entire element. This preserves existing properties while updating only the
311
+ * specified fields.
312
+ *
313
+ * Example:
314
+ * Original: [{id: 1, name: "Test", value: 100}]
315
+ * Update: [{value: 200}]
316
+ * Result: [{id: 1, name: "Test", value: 200}]
317
+ *
318
+ * Arrays of primitives still use replacement behavior for backwards compatibility.
319
+ */
105
320
  private processArrayChanges;
321
+ /**
322
+ * Process changes for object properties
323
+ */
106
324
  private processObjectChanges;
325
+ /**
326
+ * Process a single key change (add, update, or delete)
327
+ */
107
328
  private processKeyChange;
329
+ /**
330
+ * Get all unique keys from change request for a given path
331
+ */
108
332
  private getChangeKeys;
333
+ /**
334
+ * Check if a value is significant (not empty object or undefined)
335
+ */
109
336
  private isSignificantValue;
337
+ /**
338
+ * Log a summary of changes applied
339
+ */
110
340
  private logChangesSummary;
341
+ /**
342
+ * Apply a change request to a sub-agent payload with upstream guardrails
343
+ *
344
+ * This method first applies the change request, then enforces upstream path restrictions
345
+ * to ensure the sub-agent only modifies allowed paths.
346
+ */
111
347
  applySubAgentChangeRequest<P = any>(parentPayload: P, changeRequest: AgentPayloadChangeRequest<P>, upstreamPaths: string[], subAgentName: string): PayloadManagerResult<P> & {
112
348
  blocked: number;
113
349
  };
350
+ /**
351
+ * Count how many changes were blocked by guardrails
352
+ */
114
353
  private countBlockedChanges;
354
+ /**
355
+ * Applies a payload scope transformation to extract only the scoped portion.
356
+ *
357
+ * @param payload The full payload to scope
358
+ * @param scopePath The scope path (e.g., "/functionalRequirements" or "/PropA/SubProp1")
359
+ * @returns The scoped portion of the payload
360
+ *
361
+ * @example
362
+ * ```typescript
363
+ * const payload = { functionalRequirements: { feature1: "..." }, technicalDesign: { ... } };
364
+ * const scoped = applyPayloadScope(payload, "/functionalRequirements");
365
+ * // Returns: { feature1: "..." }
366
+ * ```
367
+ */
115
368
  applyPayloadScope<P = any>(payload: P, scopePath: string): any | null;
369
+ /**
370
+ * Reverses a payload scope transformation by wrapping the scoped content back into the full structure.
371
+ *
372
+ * @param scopedPayload The scoped payload to wrap
373
+ * @param scopePath The scope path used for extraction
374
+ * @returns A full payload structure with the scoped content at the correct path
375
+ *
376
+ * @example
377
+ * ```typescript
378
+ * const scoped = { feature1: "updated" };
379
+ * const full = reversePayloadScope(scoped, "/functionalRequirements");
380
+ * // Returns: { functionalRequirements: { feature1: "updated" } }
381
+ * ```
382
+ */
116
383
  reversePayloadScope<P = any>(scopedPayload: unknown, scopePath: string): P;
384
+ /**
385
+ * Transforms paths in a change request to account for payload scoping.
386
+ * Prepends the scope path to all paths in the change request.
387
+ *
388
+ * @param changeRequest The change request with paths relative to the scoped view
389
+ * @param scopePath The scope path to prepend
390
+ * @returns A new change request with transformed paths
391
+ *
392
+ * @example
393
+ * ```typescript
394
+ * const request = { updateElements: { "field1": "value" } };
395
+ * const transformed = transformChangeRequestPaths(request, "/functionalRequirements");
396
+ * // Returns: { updateElements: { "functionalRequirements.field1": "value" } }
397
+ * ```
398
+ */
117
399
  transformChangeRequestPaths<P = any>(changeRequest: AgentPayloadChangeRequest<P>, scopePath: string): AgentPayloadChangeRequest<P>;
400
+ /**
401
+ * Helper to determine if a value is a leaf value (not a path structure)
402
+ */
118
403
  private isLeafValue;
119
404
  }
120
405
  //# sourceMappingURL=PayloadManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PayloadManager.d.ts","sourceRoot":"","sources":["../src/PayloadManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PayloadManager.d.ts","sourceRoot":"","sources":["../src/PayloadManager.ts"],"names":[],"mappings":"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"}