@memberjunction/ai-agents 4.2.0 → 4.3.1
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.
- package/README.md +4 -0
- package/dist/agent-context-injector.d.ts +63 -23
- package/dist/agent-context-injector.d.ts.map +1 -1
- package/dist/agent-context-injector.js +205 -55
- package/dist/agent-context-injector.js.map +1 -1
- package/dist/base-agent.d.ts +36 -2
- package/dist/base-agent.d.ts.map +1 -1
- package/dist/base-agent.js +189 -13
- package/dist/base-agent.js.map +1 -1
- package/dist/memory-manager-agent.d.ts +47 -0
- package/dist/memory-manager-agent.d.ts.map +1 -1
- package/dist/memory-manager-agent.js +389 -51
- package/dist/memory-manager-agent.js.map +1 -1
- package/package.json +16 -18
- package/dist/__tests__/action-changes.test.d.ts +0 -15
- package/dist/__tests__/action-changes.test.d.ts.map +0 -1
- package/dist/__tests__/action-changes.test.js +0 -394
- package/dist/__tests__/action-changes.test.js.map +0 -1
- package/dist/__tests__/agent-memory-features.test.d.ts +0 -123
- package/dist/__tests__/agent-memory-features.test.d.ts.map +0 -1
- package/dist/__tests__/agent-memory-features.test.js +0 -596
- package/dist/__tests__/agent-memory-features.test.js.map +0 -1
- package/dist/__tests__/agent-type-prompt-params.test.d.ts +0 -14
- package/dist/__tests__/agent-type-prompt-params.test.d.ts.map +0 -1
- package/dist/__tests__/agent-type-prompt-params.test.js +0 -583
- package/dist/__tests__/agent-type-prompt-params.test.js.map +0 -1
- package/dist/__tests__/chat-handling-option.test.d.ts +0 -54
- package/dist/__tests__/chat-handling-option.test.d.ts.map +0 -1
- package/dist/__tests__/chat-handling-option.test.js +0 -222
- package/dist/__tests__/chat-handling-option.test.js.map +0 -1
package/README.md
CHANGED
|
@@ -294,6 +294,10 @@ const result = await runner.ExecuteAgent({
|
|
|
294
294
|
});
|
|
295
295
|
```
|
|
296
296
|
|
|
297
|
+
## Architecture Documentation
|
|
298
|
+
|
|
299
|
+
For multi-tenant memory scoping (notes/examples), see [AGENT_MEMORY_SCOPING.md](./AGENT_MEMORY_SCOPING.md).
|
|
300
|
+
|
|
297
301
|
## Re-exports
|
|
298
302
|
|
|
299
303
|
For backward compatibility, this package re-exports the following from `@memberjunction/ai-reranker`:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { UserInfo } from "@memberjunction/core";
|
|
2
2
|
import { AIAgentNoteEntity, AIAgentExampleEntity } from "@memberjunction/core-entities";
|
|
3
|
-
import {
|
|
3
|
+
import { SecondaryScopeConfig, SecondaryScopeValue } from "@memberjunction/ai-core-plus";
|
|
4
4
|
import { RerankerConfiguration } from "@memberjunction/ai-reranker";
|
|
5
5
|
/**
|
|
6
6
|
* Options for observability integration when retrieving notes.
|
|
@@ -30,23 +30,23 @@ export interface GetNotesParams {
|
|
|
30
30
|
strategy: 'Relevant' | 'Recent' | 'All';
|
|
31
31
|
maxNotes: number;
|
|
32
32
|
contextUser: UserInfo;
|
|
33
|
+
/** Primary scope entity ID for multi-tenant filtering (FK to Entity table). */
|
|
34
|
+
primaryScopeEntityId?: string;
|
|
35
|
+
/** Primary scope record ID for multi-tenant filtering. */
|
|
36
|
+
primaryScopeRecordId?: string;
|
|
37
|
+
/** Arbitrary secondary scope dimensions for multi-tenant filtering. */
|
|
38
|
+
secondaryScopes?: Record<string, SecondaryScopeValue>;
|
|
33
39
|
/**
|
|
34
|
-
* Optional
|
|
35
|
-
*
|
|
36
|
-
* - Global notes (no scope)
|
|
37
|
-
* - Primary-scope notes (e.g., org-level)
|
|
38
|
-
* - Fully-scoped notes (e.g., contact-level)
|
|
40
|
+
* Optional secondary scope configuration from the agent.
|
|
41
|
+
* Defines per-dimension inheritance modes and validation rules.
|
|
39
42
|
*/
|
|
40
|
-
|
|
43
|
+
secondaryScopeConfig?: SecondaryScopeConfig | null;
|
|
41
44
|
/**
|
|
42
45
|
* Optional reranker configuration for two-stage retrieval.
|
|
43
|
-
* When enabled, fetches more candidates via vector search,
|
|
44
|
-
* then reranks them using a semantic reranker for better relevance.
|
|
45
46
|
*/
|
|
46
47
|
rerankerConfig?: RerankerConfiguration | null;
|
|
47
48
|
/**
|
|
48
49
|
* Optional observability context for tracing reranking operations.
|
|
49
|
-
* When provided, reranking will create an AIAgentRunStep record.
|
|
50
50
|
*/
|
|
51
51
|
observability?: NotesObservabilityOptions;
|
|
52
52
|
}
|
|
@@ -61,11 +61,17 @@ export interface GetExamplesParams {
|
|
|
61
61
|
strategy: 'Semantic' | 'Recent' | 'Rated';
|
|
62
62
|
maxExamples: number;
|
|
63
63
|
contextUser: UserInfo;
|
|
64
|
+
/** Primary scope entity ID for multi-tenant filtering (FK to Entity table). */
|
|
65
|
+
primaryScopeEntityId?: string;
|
|
66
|
+
/** Primary scope record ID for multi-tenant filtering. */
|
|
67
|
+
primaryScopeRecordId?: string;
|
|
68
|
+
/** Arbitrary secondary scope dimensions for multi-tenant filtering. */
|
|
69
|
+
secondaryScopes?: Record<string, SecondaryScopeValue>;
|
|
64
70
|
/**
|
|
65
|
-
* Optional
|
|
66
|
-
*
|
|
71
|
+
* Optional secondary scope configuration from the agent.
|
|
72
|
+
* Defines per-dimension inheritance modes and validation rules.
|
|
67
73
|
*/
|
|
68
|
-
|
|
74
|
+
secondaryScopeConfig?: SecondaryScopeConfig | null;
|
|
69
75
|
}
|
|
70
76
|
/**
|
|
71
77
|
* Central service for retrieving and formatting notes/examples for injection into agent context.
|
|
@@ -100,6 +106,14 @@ export declare class AgentContextInjector {
|
|
|
100
106
|
* Get examples using semantic search via AIEngine
|
|
101
107
|
*/
|
|
102
108
|
private getExamplesViaSemanticSearch;
|
|
109
|
+
/**
|
|
110
|
+
* Build a pre-filter callback for vector search that enforces secondary scope rules.
|
|
111
|
+
* Returns undefined when no scope params are provided (no filtering needed).
|
|
112
|
+
*
|
|
113
|
+
* @param params - Note or example params containing scope and secondaryScopeConfig
|
|
114
|
+
* @param entityExtractor - Function to extract the scoped entity from the embedding metadata
|
|
115
|
+
*/
|
|
116
|
+
private buildScopePreFilter;
|
|
103
117
|
/**
|
|
104
118
|
* Query notes using multi-dimensional scoping priority.
|
|
105
119
|
* Implements 8-level scoping hierarchy from most specific to least specific.
|
|
@@ -112,25 +126,51 @@ export declare class AgentContextInjector {
|
|
|
112
126
|
/**
|
|
113
127
|
* Build filter with 8-level scoping priority for notes.
|
|
114
128
|
* Combines MJ-internal scoping (AgentID, UserID, CompanyID) with
|
|
115
|
-
* multi-tenant
|
|
129
|
+
* multi-tenant scoping (PrimaryScopeEntityID, PrimaryScopeRecordID, SecondaryScopes).
|
|
116
130
|
*/
|
|
117
131
|
private buildNotesScopingFilter;
|
|
118
132
|
/**
|
|
119
|
-
* Build filter for multi-tenant
|
|
120
|
-
* Returns notes at all applicable scope levels (global
|
|
133
|
+
* Build filter for multi-tenant secondary scoping with per-dimension inheritance.
|
|
134
|
+
* Returns notes at all applicable scope levels (global -> primary -> full).
|
|
135
|
+
*
|
|
136
|
+
* Inheritance modes per dimension:
|
|
137
|
+
* - 'cascading': Notes without this dimension match queries with it (broader retrieval)
|
|
138
|
+
* - 'strict': Notes must exactly match the dimension value
|
|
139
|
+
*/
|
|
140
|
+
private buildSecondaryScopeFilter;
|
|
141
|
+
/**
|
|
142
|
+
* Build SQL filter conditions for secondary dimensions with per-dimension inheritance.
|
|
143
|
+
*
|
|
144
|
+
* For each dimension in the runtime scope:
|
|
145
|
+
* - 'cascading' mode: Match if dimension value matches OR dimension is absent in note
|
|
146
|
+
* - 'strict' mode: Match only if dimension value matches exactly
|
|
121
147
|
*/
|
|
122
|
-
private
|
|
148
|
+
private buildPerDimensionFilter;
|
|
123
149
|
/**
|
|
124
150
|
* Filter examples using multi-dimensional scoping priority.
|
|
125
151
|
* Implements 4-level scoping hierarchy for examples (examples are always agent-specific).
|
|
126
|
-
* Also handles multi-tenant
|
|
152
|
+
* Also handles multi-tenant secondary scoping when scope params are provided.
|
|
127
153
|
*/
|
|
128
154
|
private filterExamplesByScoping;
|
|
129
155
|
/**
|
|
130
|
-
* Check if
|
|
131
|
-
*
|
|
156
|
+
* Check if a scoped entity (note or example) matches the secondary scope criteria
|
|
157
|
+
* with per-dimension inheritance.
|
|
158
|
+
* Returns true for: global, primary-only, secondary-only, or fully-scoped matches.
|
|
159
|
+
*/
|
|
160
|
+
private matchesSecondaryScope;
|
|
161
|
+
/**
|
|
162
|
+
* Match secondary scopes with per-dimension inheritance mode.
|
|
163
|
+
*
|
|
164
|
+
* For each dimension in the example's secondary scopes:
|
|
165
|
+
* - 'cascading': Match if user has the same value OR user doesn't have the dimension
|
|
166
|
+
* - 'strict': Match only if user has the exact same value
|
|
167
|
+
*/
|
|
168
|
+
private matchSecondaryScopes;
|
|
169
|
+
/**
|
|
170
|
+
* Check if a user's dimension value matches an example's value.
|
|
171
|
+
* Compares as strings to handle mixed types (numbers, booleans stored as JSON strings).
|
|
132
172
|
*/
|
|
133
|
-
private
|
|
173
|
+
private userDimensionMatches;
|
|
134
174
|
/**
|
|
135
175
|
* Sort examples based on the specified strategy
|
|
136
176
|
*/
|
|
@@ -149,9 +189,9 @@ export declare class AgentContextInjector {
|
|
|
149
189
|
*/
|
|
150
190
|
FormatNotesForInjection(notes: AIAgentNoteEntity[], includeMemoryPolicy?: boolean): string;
|
|
151
191
|
/**
|
|
152
|
-
* Determine multi-tenant
|
|
192
|
+
* Determine multi-tenant secondary scope description for a note
|
|
153
193
|
*/
|
|
154
|
-
private
|
|
194
|
+
private determineSecondaryScope;
|
|
155
195
|
/**
|
|
156
196
|
* Format examples for injection into agent prompt
|
|
157
197
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-context-injector.d.ts","sourceRoot":"","sources":["../src/agent-context-injector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAyB,MAAM,+BAA+B,CAAC;AAE/G,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"agent-context-injector.d.ts","sourceRoot":"","sources":["../src/agent-context-injector.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,8 +49,12 @@ export class AgentContextInjector {
|
|
|
49
49
|
const fetchCount = config?.enabled
|
|
50
50
|
? params.maxNotes * config.retrievalMultiplier
|
|
51
51
|
: params.maxNotes;
|
|
52
|
-
//
|
|
53
|
-
const
|
|
52
|
+
// Build scope pre-filter so FindNearest only returns scope-valid candidates
|
|
53
|
+
const scopePreFilter = this.buildScopePreFilter(params, m => m.noteEntity);
|
|
54
|
+
LogStatus(`AgentContextInjector: primaryScopeEntityId=${params.primaryScopeEntityId}, primaryScopeRecordId=${params.primaryScopeRecordId}, secondaryScopes=${JSON.stringify(params.secondaryScopes)}, secondaryScopeConfig=${JSON.stringify(params.secondaryScopeConfig)}, hasPreFilter=${!!scopePreFilter}`);
|
|
55
|
+
// Stage 1: Vector search (scope filtering happens inside FindNearest)
|
|
56
|
+
const matches = await AIEngine.Instance.FindSimilarAgentNotes(params.currentInput, params.agentId, params.userId, params.companyId, fetchCount, 0.5, scopePreFilter);
|
|
57
|
+
LogStatus(`AgentContextInjector: FindSimilarAgentNotes returned ${matches.length} matches: ${matches.map(m => m.note.SecondaryScopes || 'GLOBAL').join(', ')}`);
|
|
54
58
|
// If no reranker config or disabled, return vector results directly
|
|
55
59
|
if (!config?.enabled) {
|
|
56
60
|
return matches.slice(0, params.maxNotes).map(m => m.note);
|
|
@@ -73,7 +77,7 @@ export class AgentContextInjector {
|
|
|
73
77
|
// Fallback decision is made HERE in the agent class, not in the service
|
|
74
78
|
const message = error instanceof Error ? error.message : String(error);
|
|
75
79
|
if (config.fallbackOnError) {
|
|
76
|
-
// Graceful fallback to vector search results
|
|
80
|
+
// Graceful fallback to vector search results (already scope-filtered)
|
|
77
81
|
LogStatus(`AgentContextInjector: Reranking failed (${message}), falling back to vector search results`);
|
|
78
82
|
return matches.slice(0, params.maxNotes).map(m => m.note);
|
|
79
83
|
}
|
|
@@ -86,10 +90,24 @@ export class AgentContextInjector {
|
|
|
86
90
|
* Get examples using semantic search via AIEngine
|
|
87
91
|
*/
|
|
88
92
|
async getExamplesViaSemanticSearch(params) {
|
|
89
|
-
|
|
93
|
+
// Build scope pre-filter so FindNearest only returns scope-valid candidates
|
|
94
|
+
const scopePreFilter = this.buildScopePreFilter(params, m => m.exampleEntity);
|
|
95
|
+
const matches = await AIEngine.Instance.FindSimilarAgentExamples(params.currentInput, params.agentId, params.userId, params.companyId, params.maxExamples, 0.5, scopePreFilter);
|
|
90
96
|
// Return entities directly from vector service (no database round-trip)
|
|
91
97
|
return matches.map(m => m.example);
|
|
92
98
|
}
|
|
99
|
+
/**
|
|
100
|
+
* Build a pre-filter callback for vector search that enforces secondary scope rules.
|
|
101
|
+
* Returns undefined when no scope params are provided (no filtering needed).
|
|
102
|
+
*
|
|
103
|
+
* @param params - Note or example params containing scope and secondaryScopeConfig
|
|
104
|
+
* @param entityExtractor - Function to extract the scoped entity from the embedding metadata
|
|
105
|
+
*/
|
|
106
|
+
buildScopePreFilter(params, entityExtractor) {
|
|
107
|
+
if (!params.primaryScopeRecordId && !params.secondaryScopes)
|
|
108
|
+
return undefined;
|
|
109
|
+
return (metadata) => this.matchesSecondaryScope(entityExtractor(metadata), params.primaryScopeEntityId, params.primaryScopeRecordId, params.secondaryScopes, params.secondaryScopeConfig);
|
|
110
|
+
}
|
|
93
111
|
/**
|
|
94
112
|
* Query notes using multi-dimensional scoping priority.
|
|
95
113
|
* Implements 8-level scoping hierarchy from most specific to least specific.
|
|
@@ -129,7 +147,7 @@ export class AgentContextInjector {
|
|
|
129
147
|
/**
|
|
130
148
|
* Build filter with 8-level scoping priority for notes.
|
|
131
149
|
* Combines MJ-internal scoping (AgentID, UserID, CompanyID) with
|
|
132
|
-
* multi-tenant
|
|
150
|
+
* multi-tenant scoping (PrimaryScopeEntityID, PrimaryScopeRecordID, SecondaryScopes).
|
|
133
151
|
*/
|
|
134
152
|
buildNotesScopingFilter(params) {
|
|
135
153
|
const filters = ['Status = \'Active\''];
|
|
@@ -168,44 +186,103 @@ export class AgentContextInjector {
|
|
|
168
186
|
if (scopeConditions.length > 0) {
|
|
169
187
|
filters.push(`(${scopeConditions.join(' OR ')})`);
|
|
170
188
|
}
|
|
171
|
-
// Add multi-tenant
|
|
172
|
-
if (params.
|
|
173
|
-
const
|
|
174
|
-
filters.push(`(${
|
|
189
|
+
// Add multi-tenant secondary scoping if primary or secondary scopes are provided
|
|
190
|
+
if (params.primaryScopeRecordId || params.secondaryScopes) {
|
|
191
|
+
const scopeFilter = this.buildSecondaryScopeFilter(params.primaryScopeEntityId, params.primaryScopeRecordId, params.secondaryScopes, params.secondaryScopeConfig);
|
|
192
|
+
filters.push(`(${scopeFilter})`);
|
|
175
193
|
}
|
|
176
194
|
return filters.join(' AND ');
|
|
177
195
|
}
|
|
178
196
|
/**
|
|
179
|
-
* Build filter for multi-tenant
|
|
180
|
-
* Returns notes at all applicable scope levels (global
|
|
197
|
+
* Build filter for multi-tenant secondary scoping with per-dimension inheritance.
|
|
198
|
+
* Returns notes at all applicable scope levels (global -> primary -> full).
|
|
199
|
+
*
|
|
200
|
+
* Inheritance modes per dimension:
|
|
201
|
+
* - 'cascading': Notes without this dimension match queries with it (broader retrieval)
|
|
202
|
+
* - 'strict': Notes must exactly match the dimension value
|
|
181
203
|
*/
|
|
182
|
-
|
|
204
|
+
buildSecondaryScopeFilter(primaryScopeEntityId, primaryScopeRecordId, secondaryScopes, scopeConfig) {
|
|
183
205
|
const conditions = [];
|
|
184
|
-
// Always include global notes (no scope set)
|
|
185
|
-
conditions.push('PrimaryScopeRecordID IS NULL');
|
|
186
|
-
|
|
206
|
+
// Always include global notes (no scope set at all)
|
|
207
|
+
conditions.push('(PrimaryScopeRecordID IS NULL AND (SecondaryScopes IS NULL OR SecondaryScopes = \'{}\'))');
|
|
208
|
+
const hasSecondary = secondaryScopes && Object.keys(secondaryScopes).length > 0;
|
|
209
|
+
const allowSecondaryOnly = scopeConfig?.allowSecondaryOnly ?? false;
|
|
210
|
+
// Build primary scope match clause: both entity ID and record ID must match
|
|
211
|
+
const primaryMatchClause = primaryScopeEntityId
|
|
212
|
+
? `PrimaryScopeEntityID = '${primaryScopeEntityId}' AND PrimaryScopeRecordID = '${primaryScopeRecordId}'`
|
|
213
|
+
: `PrimaryScopeRecordID = '${primaryScopeRecordId}'`;
|
|
214
|
+
if (primaryScopeRecordId) {
|
|
187
215
|
// Include primary-scope-only notes (matches org, no secondary scopes)
|
|
188
216
|
conditions.push(`(
|
|
189
|
-
|
|
217
|
+
${primaryMatchClause}
|
|
190
218
|
AND (SecondaryScopes IS NULL OR SecondaryScopes = '{}')
|
|
191
219
|
)`);
|
|
192
220
|
// Include fully-scoped notes if secondary scopes are provided
|
|
193
|
-
if (
|
|
194
|
-
const
|
|
195
|
-
.map(([key, val]) => `JSON_VALUE(SecondaryScopes, '$.${key}') = '${val}'`)
|
|
196
|
-
.join(' AND ');
|
|
221
|
+
if (hasSecondary) {
|
|
222
|
+
const secondaryCondition = this.buildPerDimensionFilter(secondaryScopes, scopeConfig);
|
|
197
223
|
conditions.push(`(
|
|
198
|
-
|
|
199
|
-
AND ${
|
|
224
|
+
${primaryMatchClause}
|
|
225
|
+
AND ${secondaryCondition}
|
|
200
226
|
)`);
|
|
201
227
|
}
|
|
202
228
|
}
|
|
229
|
+
else if (allowSecondaryOnly && hasSecondary) {
|
|
230
|
+
// Secondary-only scoping: no primary required
|
|
231
|
+
const secondaryCondition = this.buildPerDimensionFilter(secondaryScopes, scopeConfig);
|
|
232
|
+
conditions.push(`(
|
|
233
|
+
PrimaryScopeRecordID IS NULL
|
|
234
|
+
AND SecondaryScopes IS NOT NULL
|
|
235
|
+
AND SecondaryScopes != '{}'
|
|
236
|
+
AND ${secondaryCondition}
|
|
237
|
+
)`);
|
|
238
|
+
}
|
|
203
239
|
return conditions.join(' OR ');
|
|
204
240
|
}
|
|
241
|
+
/**
|
|
242
|
+
* Build SQL filter conditions for secondary dimensions with per-dimension inheritance.
|
|
243
|
+
*
|
|
244
|
+
* For each dimension in the runtime scope:
|
|
245
|
+
* - 'cascading' mode: Match if dimension value matches OR dimension is absent in note
|
|
246
|
+
* - 'strict' mode: Match only if dimension value matches exactly
|
|
247
|
+
*/
|
|
248
|
+
buildPerDimensionFilter(secondary, scopeConfig) {
|
|
249
|
+
const dimensionConditions = [];
|
|
250
|
+
const defaultMode = scopeConfig?.defaultInheritanceMode ?? 'cascading';
|
|
251
|
+
// Build a map of dimension configs for quick lookup
|
|
252
|
+
const dimConfigMap = new Map();
|
|
253
|
+
if (scopeConfig?.dimensions) {
|
|
254
|
+
for (const dim of scopeConfig.dimensions) {
|
|
255
|
+
dimConfigMap.set(dim.name, dim);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
for (const [key, rawValue] of Object.entries(secondary)) {
|
|
259
|
+
const dimConfig = dimConfigMap.get(key);
|
|
260
|
+
const inheritanceMode = dimConfig?.inheritanceMode ?? defaultMode;
|
|
261
|
+
// Stringify all values (numbers, booleans) for SQL comparison via JSON_VALUE
|
|
262
|
+
const values = Array.isArray(rawValue) ? rawValue.map(String) : [String(rawValue)];
|
|
263
|
+
// Escape single quotes in values to prevent SQL injection
|
|
264
|
+
const escapedValues = values.map(v => v.replace(/'/g, "''"));
|
|
265
|
+
if (inheritanceMode === 'strict') {
|
|
266
|
+
const matchClause = escapedValues.length === 1
|
|
267
|
+
? `JSON_VALUE(SecondaryScopes, '$.${key}') = '${escapedValues[0]}'`
|
|
268
|
+
: `JSON_VALUE(SecondaryScopes, '$.${key}') IN (${escapedValues.map(v => `'${v}'`).join(', ')})`;
|
|
269
|
+
dimensionConditions.push(matchClause);
|
|
270
|
+
}
|
|
271
|
+
else {
|
|
272
|
+
const matchClause = escapedValues.length === 1
|
|
273
|
+
? `JSON_VALUE(SecondaryScopes, '$.${key}') = '${escapedValues[0]}'`
|
|
274
|
+
: `JSON_VALUE(SecondaryScopes, '$.${key}') IN (${escapedValues.map(v => `'${v}'`).join(', ')})`;
|
|
275
|
+
dimensionConditions.push(`(JSON_VALUE(SecondaryScopes, '$.${key}') IS NULL OR ${matchClause})`);
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
return dimensionConditions.length > 0
|
|
279
|
+
? `(${dimensionConditions.join(' AND ')})`
|
|
280
|
+
: '1=1';
|
|
281
|
+
}
|
|
205
282
|
/**
|
|
206
283
|
* Filter examples using multi-dimensional scoping priority.
|
|
207
284
|
* Implements 4-level scoping hierarchy for examples (examples are always agent-specific).
|
|
208
|
-
* Also handles multi-tenant
|
|
285
|
+
* Also handles multi-tenant secondary scoping when scope params are provided.
|
|
209
286
|
*/
|
|
210
287
|
filterExamplesByScoping(examples, params) {
|
|
211
288
|
return examples.filter(example => {
|
|
@@ -229,49 +306,122 @@ export class AgentContextInjector {
|
|
|
229
306
|
if (!matchesMJScoping) {
|
|
230
307
|
return false;
|
|
231
308
|
}
|
|
232
|
-
// Check multi-tenant
|
|
233
|
-
if (params.
|
|
234
|
-
return this.
|
|
309
|
+
// Check multi-tenant secondary scoping if scope params are provided
|
|
310
|
+
if (params.primaryScopeRecordId || params.secondaryScopes) {
|
|
311
|
+
return this.matchesSecondaryScope(example, params.primaryScopeEntityId, params.primaryScopeRecordId, params.secondaryScopes, params.secondaryScopeConfig);
|
|
235
312
|
}
|
|
236
313
|
return true;
|
|
237
314
|
});
|
|
238
315
|
}
|
|
239
316
|
/**
|
|
240
|
-
* Check if
|
|
241
|
-
*
|
|
317
|
+
* Check if a scoped entity (note or example) matches the secondary scope criteria
|
|
318
|
+
* with per-dimension inheritance.
|
|
319
|
+
* Returns true for: global, primary-only, secondary-only, or fully-scoped matches.
|
|
242
320
|
*/
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
321
|
+
matchesSecondaryScope(entity, primaryScopeEntityId, primaryScopeRecordId, secondaryScopes, scopeConfig) {
|
|
322
|
+
const hasSecondary = secondaryScopes && Object.keys(secondaryScopes).length > 0;
|
|
323
|
+
const allowSecondaryOnly = scopeConfig?.allowSecondaryOnly ?? false;
|
|
324
|
+
// Global entities (no scope at all) always match
|
|
325
|
+
const exampleSecondary = entity.SecondaryScopes;
|
|
326
|
+
const hasExampleSecondary = exampleSecondary && exampleSecondary !== '{}';
|
|
327
|
+
if (!entity.PrimaryScopeRecordID && !hasExampleSecondary) {
|
|
246
328
|
return true;
|
|
247
329
|
}
|
|
248
|
-
//
|
|
249
|
-
if (!
|
|
330
|
+
// Handle secondary-only mode
|
|
331
|
+
if (allowSecondaryOnly && !primaryScopeRecordId && hasSecondary) {
|
|
332
|
+
if (!entity.PrimaryScopeRecordID && !hasExampleSecondary) {
|
|
333
|
+
return true;
|
|
334
|
+
}
|
|
335
|
+
if (!entity.PrimaryScopeRecordID && hasExampleSecondary) {
|
|
336
|
+
return this.matchSecondaryScopes(exampleSecondary, secondaryScopes, scopeConfig);
|
|
337
|
+
}
|
|
338
|
+
return false;
|
|
339
|
+
}
|
|
340
|
+
// No primary scope provided - only global entities match
|
|
341
|
+
if (!primaryScopeRecordId) {
|
|
342
|
+
return !entity.PrimaryScopeRecordID && !hasExampleSecondary;
|
|
343
|
+
}
|
|
344
|
+
// Primary scope must match (both entity ID and record ID)
|
|
345
|
+
if (entity.PrimaryScopeRecordID !== primaryScopeRecordId) {
|
|
250
346
|
return false;
|
|
251
347
|
}
|
|
252
|
-
|
|
253
|
-
if (example.PrimaryScopeRecordID !== userScope.primaryRecordId) {
|
|
348
|
+
if (primaryScopeEntityId && entity.PrimaryScopeEntityID && entity.PrimaryScopeEntityID !== primaryScopeEntityId) {
|
|
254
349
|
return false;
|
|
255
350
|
}
|
|
256
|
-
// If
|
|
257
|
-
|
|
258
|
-
if (!exampleSecondary || exampleSecondary === '{}') {
|
|
351
|
+
// If entity has no secondary scopes, it's an org-level entity - matches
|
|
352
|
+
if (!hasExampleSecondary) {
|
|
259
353
|
return true;
|
|
260
354
|
}
|
|
261
|
-
//
|
|
262
|
-
if (!
|
|
263
|
-
// User has no secondary scope but example does - no match
|
|
355
|
+
// Entity has secondary scopes - check with per-dimension inheritance
|
|
356
|
+
if (!hasSecondary) {
|
|
264
357
|
return false;
|
|
265
358
|
}
|
|
266
|
-
|
|
359
|
+
return this.matchSecondaryScopes(exampleSecondary, secondaryScopes, scopeConfig);
|
|
360
|
+
}
|
|
361
|
+
/**
|
|
362
|
+
* Match secondary scopes with per-dimension inheritance mode.
|
|
363
|
+
*
|
|
364
|
+
* For each dimension in the example's secondary scopes:
|
|
365
|
+
* - 'cascading': Match if user has the same value OR user doesn't have the dimension
|
|
366
|
+
* - 'strict': Match only if user has the exact same value
|
|
367
|
+
*/
|
|
368
|
+
matchSecondaryScopes(exampleSecondaryJson, userSecondary, scopeConfig) {
|
|
369
|
+
const defaultMode = scopeConfig?.defaultInheritanceMode ?? 'cascading';
|
|
370
|
+
// Build dimension config map for quick lookup
|
|
371
|
+
const dimConfigMap = new Map();
|
|
372
|
+
if (scopeConfig?.dimensions) {
|
|
373
|
+
for (const dim of scopeConfig.dimensions) {
|
|
374
|
+
dimConfigMap.set(dim.name, dim);
|
|
375
|
+
}
|
|
376
|
+
}
|
|
267
377
|
try {
|
|
268
|
-
const
|
|
269
|
-
|
|
378
|
+
const exampleScopes = JSON.parse(exampleSecondaryJson);
|
|
379
|
+
// Check each dimension in the example
|
|
380
|
+
for (const [key, exampleValue] of Object.entries(exampleScopes)) {
|
|
381
|
+
const dimConfig = dimConfigMap.get(key);
|
|
382
|
+
const inheritanceMode = dimConfig?.inheritanceMode ?? defaultMode;
|
|
383
|
+
if (inheritanceMode === 'strict') {
|
|
384
|
+
if (!this.userDimensionMatches(userSecondary[key], exampleValue)) {
|
|
385
|
+
return false;
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
else {
|
|
389
|
+
// Cascading: match if user doesn't have this dimension, or values match
|
|
390
|
+
const rawValue = userSecondary[key];
|
|
391
|
+
if (rawValue !== undefined && !this.userDimensionMatches(rawValue, exampleValue)) {
|
|
392
|
+
return false;
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
// Also check user dimensions for strict mode requirements
|
|
397
|
+
// (ensures user's strict dimensions are present in example if required)
|
|
398
|
+
for (const [key] of Object.entries(userSecondary)) {
|
|
399
|
+
const dimConfig = dimConfigMap.get(key);
|
|
400
|
+
const inheritanceMode = dimConfig?.inheritanceMode ?? defaultMode;
|
|
401
|
+
if (inheritanceMode === 'strict') {
|
|
402
|
+
const exampleValue = exampleScopes[key];
|
|
403
|
+
if (exampleValue === undefined) {
|
|
404
|
+
return false;
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
return true;
|
|
270
409
|
}
|
|
271
410
|
catch {
|
|
272
411
|
return false;
|
|
273
412
|
}
|
|
274
413
|
}
|
|
414
|
+
/**
|
|
415
|
+
* Check if a user's dimension value matches an example's value.
|
|
416
|
+
* Compares as strings to handle mixed types (numbers, booleans stored as JSON strings).
|
|
417
|
+
*/
|
|
418
|
+
userDimensionMatches(userValue, exampleValue) {
|
|
419
|
+
if (userValue === undefined)
|
|
420
|
+
return false;
|
|
421
|
+
if (Array.isArray(userValue))
|
|
422
|
+
return userValue.map(String).includes(exampleValue);
|
|
423
|
+
return String(userValue) === exampleValue;
|
|
424
|
+
}
|
|
275
425
|
/**
|
|
276
426
|
* Sort examples based on the specified strategy
|
|
277
427
|
*/
|
|
@@ -356,8 +506,8 @@ export class AgentContextInjector {
|
|
|
356
506
|
lines.push('<memory_policy>');
|
|
357
507
|
lines.push('Precedence (highest to lowest):');
|
|
358
508
|
lines.push('1) Current user message overrides all stored memory');
|
|
359
|
-
lines.push('2)
|
|
360
|
-
lines.push('3)
|
|
509
|
+
lines.push('2) User-specific notes override company-level');
|
|
510
|
+
lines.push('3) Company notes override global defaults');
|
|
361
511
|
lines.push('4) When same scope, prefer most recent by date');
|
|
362
512
|
lines.push('');
|
|
363
513
|
lines.push('Conflict resolution:');
|
|
@@ -371,9 +521,9 @@ export class AgentContextInjector {
|
|
|
371
521
|
for (const note of notes) {
|
|
372
522
|
lines.push(`[${note.Type}] ${note.Note}`);
|
|
373
523
|
const scope = this.determineNoteScope(note);
|
|
374
|
-
const
|
|
375
|
-
if (
|
|
376
|
-
lines.push(` Scope: ${
|
|
524
|
+
const secondaryScope = this.determineSecondaryScope(note);
|
|
525
|
+
if (secondaryScope) {
|
|
526
|
+
lines.push(` Scope: ${secondaryScope}`);
|
|
377
527
|
}
|
|
378
528
|
else if (scope) {
|
|
379
529
|
lines.push(` Scope: ${scope}`);
|
|
@@ -384,18 +534,18 @@ export class AgentContextInjector {
|
|
|
384
534
|
return lines.join('\n');
|
|
385
535
|
}
|
|
386
536
|
/**
|
|
387
|
-
* Determine multi-tenant
|
|
537
|
+
* Determine multi-tenant secondary scope description for a note
|
|
388
538
|
*/
|
|
389
|
-
|
|
390
|
-
// Check for
|
|
539
|
+
determineSecondaryScope(note) {
|
|
540
|
+
// Check for secondary scoping (takes precedence over MJ scoping)
|
|
391
541
|
if (!note.PrimaryScopeRecordID) {
|
|
392
|
-
return null; // No
|
|
542
|
+
return null; // No secondary scope, fall back to MJ scope
|
|
393
543
|
}
|
|
394
544
|
const hasSecondary = note.SecondaryScopes && note.SecondaryScopes !== '{}';
|
|
395
545
|
if (hasSecondary) {
|
|
396
|
-
return '
|
|
546
|
+
return 'User-specific (most specific)';
|
|
397
547
|
}
|
|
398
|
-
return '
|
|
548
|
+
return 'Company-level';
|
|
399
549
|
}
|
|
400
550
|
/**
|
|
401
551
|
* Format examples for injection into agent prompt
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-context-injector.js","sourceRoot":"","sources":["../src/agent-context-injector.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-context-injector.js","sourceRoot":"","sources":["../src/agent-context-injector.ts"],"names":[],"mappings":"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"}
|