@memberjunction/ai-agents 3.3.0 → 4.0.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 (97) hide show
  1. package/dist/AgentDataPreloader.d.ts +117 -1
  2. package/dist/AgentDataPreloader.d.ts.map +1 -1
  3. package/dist/AgentDataPreloader.js +156 -58
  4. package/dist/AgentDataPreloader.js.map +1 -1
  5. package/dist/AgentRunner.d.ts +212 -0
  6. package/dist/AgentRunner.d.ts.map +1 -1
  7. package/dist/AgentRunner.js +354 -103
  8. package/dist/AgentRunner.js.map +1 -1
  9. package/dist/PayloadChangeAnalyzer.d.ts +68 -0
  10. package/dist/PayloadChangeAnalyzer.d.ts.map +1 -1
  11. package/dist/PayloadChangeAnalyzer.js +68 -32
  12. package/dist/PayloadChangeAnalyzer.js.map +1 -1
  13. package/dist/PayloadFeedbackManager.d.ts +57 -1
  14. package/dist/PayloadFeedbackManager.d.ts.map +1 -1
  15. package/dist/PayloadFeedbackManager.js +66 -21
  16. package/dist/PayloadFeedbackManager.js.map +1 -1
  17. package/dist/PayloadManager.d.ts +286 -1
  18. package/dist/PayloadManager.d.ts.map +1 -1
  19. package/dist/PayloadManager.js +423 -50
  20. package/dist/PayloadManager.js.map +1 -1
  21. package/dist/__tests__/action-changes.test.d.ts +13 -0
  22. package/dist/__tests__/action-changes.test.d.ts.map +1 -1
  23. package/dist/__tests__/action-changes.test.js +57 -4
  24. package/dist/__tests__/action-changes.test.js.map +1 -1
  25. package/dist/__tests__/agent-memory-features.test.d.ts +52 -0
  26. package/dist/__tests__/agent-memory-features.test.d.ts.map +1 -1
  27. package/dist/__tests__/agent-memory-features.test.js +96 -13
  28. package/dist/__tests__/agent-memory-features.test.js.map +1 -1
  29. package/dist/__tests__/agent-type-prompt-params.test.d.ts +12 -0
  30. package/dist/__tests__/agent-type-prompt-params.test.d.ts.map +1 -1
  31. package/dist/__tests__/agent-type-prompt-params.test.js +112 -20
  32. package/dist/__tests__/agent-type-prompt-params.test.js.map +1 -1
  33. package/dist/__tests__/chat-handling-option.test.d.ts +26 -0
  34. package/dist/__tests__/chat-handling-option.test.d.ts.map +1 -1
  35. package/dist/__tests__/chat-handling-option.test.js +41 -2
  36. package/dist/__tests__/chat-handling-option.test.js.map +1 -1
  37. package/dist/agent-context-injector.d.ts +114 -0
  38. package/dist/agent-context-injector.d.ts.map +1 -1
  39. package/dist/agent-context-injector.js +138 -19
  40. package/dist/agent-context-injector.js.map +1 -1
  41. package/dist/agent-types/base-agent-type.d.ts +354 -0
  42. package/dist/agent-types/base-agent-type.d.ts.map +1 -1
  43. package/dist/agent-types/base-agent-type.js +288 -17
  44. package/dist/agent-types/base-agent-type.js.map +1 -1
  45. package/dist/agent-types/flow-agent-type.d.ts +328 -2
  46. package/dist/agent-types/flow-agent-type.d.ts.map +1 -1
  47. package/dist/agent-types/flow-agent-type.js +503 -63
  48. package/dist/agent-types/flow-agent-type.js.map +1 -1
  49. package/dist/agent-types/index.d.ts +14 -3
  50. package/dist/agent-types/index.d.ts.map +1 -1
  51. package/dist/agent-types/index.js +14 -23
  52. package/dist/agent-types/index.js.map +1 -1
  53. package/dist/agent-types/loop-agent-prompt-params.d.ts +190 -0
  54. package/dist/agent-types/loop-agent-prompt-params.d.ts.map +1 -1
  55. package/dist/agent-types/loop-agent-prompt-params.js +23 -6
  56. package/dist/agent-types/loop-agent-prompt-params.js.map +1 -1
  57. package/dist/agent-types/loop-agent-response-type.d.ts +62 -0
  58. package/dist/agent-types/loop-agent-response-type.d.ts.map +1 -1
  59. package/dist/agent-types/loop-agent-response-type.js +3 -2
  60. package/dist/agent-types/loop-agent-response-type.js.map +1 -1
  61. package/dist/agent-types/loop-agent-type.d.ts +139 -2
  62. package/dist/agent-types/loop-agent-type.d.ts.map +1 -1
  63. package/dist/agent-types/loop-agent-type.js +207 -35
  64. package/dist/agent-types/loop-agent-type.js.map +1 -1
  65. package/dist/base-agent.d.ts +1344 -1
  66. package/dist/base-agent.d.ts.map +1 -1
  67. package/dist/base-agent.js +2282 -211
  68. package/dist/base-agent.js.map +1 -1
  69. package/dist/index.d.ts +24 -14
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +25 -35
  72. package/dist/index.js.map +1 -1
  73. package/dist/memory-cleanup-agent.d.ts +53 -1
  74. package/dist/memory-cleanup-agent.d.ts.map +1 -1
  75. package/dist/memory-cleanup-agent.js +89 -21
  76. package/dist/memory-cleanup-agent.js.map +1 -1
  77. package/dist/memory-manager-agent.d.ts +61 -1
  78. package/dist/memory-manager-agent.d.ts.map +1 -1
  79. package/dist/memory-manager-agent.js +260 -116
  80. package/dist/memory-manager-agent.js.map +1 -1
  81. package/dist/services/AgentEmbeddingService.d.ts +16 -0
  82. package/dist/services/AgentEmbeddingService.d.ts.map +1 -0
  83. package/dist/services/AgentEmbeddingService.js +158 -0
  84. package/dist/services/AgentEmbeddingService.js.map +1 -0
  85. package/dist/types/AgentMatchResult.d.ts +18 -0
  86. package/dist/types/AgentMatchResult.d.ts.map +1 -0
  87. package/dist/types/AgentMatchResult.js +3 -0
  88. package/dist/types/AgentMatchResult.js.map +1 -0
  89. package/dist/types/payload-operations.d.ts +51 -0
  90. package/dist/types/payload-operations.d.ts.map +1 -1
  91. package/dist/types/payload-operations.js +54 -15
  92. package/dist/types/payload-operations.js.map +1 -1
  93. package/dist/utils/ConversationMessageResolver.d.ts +79 -1
  94. package/dist/utils/ConversationMessageResolver.d.ts.map +1 -1
  95. package/dist/utils/ConversationMessageResolver.js +99 -9
  96. package/dist/utils/ConversationMessageResolver.js.map +1 -1
  97. package/package.json +20 -19
@@ -2,11 +2,26 @@ import { UserInfo } from "@memberjunction/core";
2
2
  import { AIAgentNoteEntity, AIAgentExampleEntity } from "@memberjunction/core-entities";
3
3
  import { UserScope } from "@memberjunction/ai-core-plus";
4
4
  import { RerankerConfiguration } from "@memberjunction/ai-reranker";
5
+ /**
6
+ * Options for observability integration when retrieving notes.
7
+ */
5
8
  export interface NotesObservabilityOptions {
9
+ /**
10
+ * Current agent run ID for tracing
11
+ */
6
12
  agentRunID: string;
13
+ /**
14
+ * Parent step ID for hierarchical step logging
15
+ */
7
16
  parentStepID?: string;
17
+ /**
18
+ * Step sequence number for the rerank step
19
+ */
8
20
  stepNumber?: number;
9
21
  }
22
+ /**
23
+ * Parameters for retrieving notes in a specific context
24
+ */
10
25
  export interface GetNotesParams {
11
26
  agentId: string;
12
27
  userId?: string;
@@ -15,10 +30,29 @@ export interface GetNotesParams {
15
30
  strategy: 'Relevant' | 'Recent' | 'All';
16
31
  maxNotes: number;
17
32
  contextUser: UserInfo;
33
+ /**
34
+ * Optional user scope for multi-tenant SaaS deployments.
35
+ * When provided, enables hierarchical scope filtering:
36
+ * - Global notes (no scope)
37
+ * - Primary-scope notes (e.g., org-level)
38
+ * - Fully-scoped notes (e.g., contact-level)
39
+ */
18
40
  userScope?: UserScope;
41
+ /**
42
+ * 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
+ */
19
46
  rerankerConfig?: RerankerConfiguration | null;
47
+ /**
48
+ * Optional observability context for tracing reranking operations.
49
+ * When provided, reranking will create an AIAgentRunStep record.
50
+ */
20
51
  observability?: NotesObservabilityOptions;
21
52
  }
53
+ /**
54
+ * Parameters for retrieving examples in a specific context
55
+ */
22
56
  export interface GetExamplesParams {
23
57
  agentId: string;
24
58
  userId?: string;
@@ -27,24 +61,104 @@ export interface GetExamplesParams {
27
61
  strategy: 'Semantic' | 'Recent' | 'Rated';
28
62
  maxExamples: number;
29
63
  contextUser: UserInfo;
64
+ /**
65
+ * Optional user scope for multi-tenant SaaS deployments.
66
+ * When provided, enables hierarchical scope filtering.
67
+ */
30
68
  userScope?: UserScope;
31
69
  }
70
+ /**
71
+ * Central service for retrieving and formatting notes/examples for injection into agent context.
72
+ * Implements multi-dimensional scoping (Agent, User, Company) with 8 priority levels.
73
+ */
32
74
  export declare class AgentContextInjector {
75
+ /**
76
+ * Retrieve notes for a specific agent execution context.
77
+ * Implements multi-dimensional scoping and injection strategy.
78
+ */
33
79
  GetNotesForContext(params: GetNotesParams): Promise<AIAgentNoteEntity[]>;
80
+ /**
81
+ * Retrieve examples for a specific agent execution context.
82
+ * Implements multi-dimensional scoping and injection strategy.
83
+ */
34
84
  GetExamplesForContext(params: GetExamplesParams): Promise<AIAgentExampleEntity[]>;
85
+ /**
86
+ * Get notes using semantic search via AIEngine.
87
+ * Supports optional two-stage retrieval with reranking for improved relevance.
88
+ *
89
+ * When reranking is enabled:
90
+ * 1. Fetch N * retrievalMultiplier candidates via vector search
91
+ * 2. Rerank candidates using configured reranker
92
+ * 3. Return top N reranked results
93
+ *
94
+ * Fallback behavior (controlled by config.fallbackOnError):
95
+ * - If true: On reranking failure, gracefully falls back to vector search results
96
+ * - If false: Propagates reranking errors to caller
97
+ */
35
98
  private getNotesViaSemanticSearch;
99
+ /**
100
+ * Get examples using semantic search via AIEngine
101
+ */
36
102
  private getExamplesViaSemanticSearch;
103
+ /**
104
+ * Query notes using multi-dimensional scoping priority.
105
+ * Implements 8-level scoping hierarchy from most specific to least specific.
106
+ */
37
107
  private queryNotesWithScoping;
108
+ /**
109
+ * Query examples using multi-dimensional scoping priority
110
+ */
38
111
  private queryExamplesWithScoping;
112
+ /**
113
+ * Build filter with 8-level scoping priority for notes.
114
+ * Combines MJ-internal scoping (AgentID, UserID, CompanyID) with
115
+ * multi-tenant SaaS scoping (PrimaryScopeEntityID, PrimaryScopeRecordID, SecondaryScopes).
116
+ */
39
117
  private buildNotesScopingFilter;
118
+ /**
119
+ * Build filter for multi-tenant SaaS scoping with hierarchical inheritance.
120
+ * Returns notes at all applicable scope levels (global → primary → full).
121
+ */
40
122
  private buildSaasScopeFilter;
123
+ /**
124
+ * Filter examples using multi-dimensional scoping priority.
125
+ * Implements 4-level scoping hierarchy for examples (examples are always agent-specific).
126
+ * Also handles multi-tenant SaaS scoping when userScope is provided.
127
+ */
41
128
  private filterExamplesByScoping;
129
+ /**
130
+ * Check if an example matches the SaaS scope criteria (hierarchical).
131
+ * Returns true for: global, primary-only, or fully-scoped matches.
132
+ */
42
133
  private matchesSaasScope;
134
+ /**
135
+ * Sort examples based on the specified strategy
136
+ */
43
137
  private sortExamples;
138
+ /**
139
+ * Sort notes based on the specified strategy.
140
+ * For non-Recent strategies, uses AgentNoteType.Priority from cached note types.
141
+ */
44
142
  private sortNotes;
143
+ /**
144
+ * Format notes for injection into agent prompt.
145
+ * Includes memory policy explaining scope precedence for conflict resolution.
146
+ *
147
+ * @param notes - Array of notes to format
148
+ * @param includeMemoryPolicy - Whether to include the memory policy preamble (default: true)
149
+ */
45
150
  FormatNotesForInjection(notes: AIAgentNoteEntity[], includeMemoryPolicy?: boolean): string;
151
+ /**
152
+ * Determine multi-tenant SaaS scope description for a note
153
+ */
46
154
  private determineSaaSScope;
155
+ /**
156
+ * Format examples for injection into agent prompt
157
+ */
47
158
  FormatExamplesForInjection(examples: AIAgentExampleEntity[]): string;
159
+ /**
160
+ * Determine human-readable scope description for a note
161
+ */
48
162
  private determineNoteScope;
49
163
  }
50
164
  //# sourceMappingURL=agent-context-injector.d.ts.map
@@ -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,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAmB,MAAM,6BAA6B,CAAC;AAKrF,MAAM,WAAW,yBAAyB;IAItC,UAAU,EAAE,MAAM,CAAC;IAInB,YAAY,CAAC,EAAE,MAAM,CAAC;IAItB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAKD,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,UAAU,GAAG,QAAQ,GAAG,KAAK,CAAC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,QAAQ,CAAC;IAQtB,SAAS,CAAC,EAAE,SAAS,CAAC;IAMtB,cAAc,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAK9C,aAAa,CAAC,EAAE,yBAAyB,CAAC;CAC7C;AAKD,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,QAAQ,CAAC;IAKtB,SAAS,CAAC,EAAE,SAAS,CAAC;CACzB;AAMD,qBAAa,oBAAoB;IAKvB,kBAAkB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAcxE,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;YAuBzE,yBAAyB;YA+DzB,4BAA4B;YAiB5B,qBAAqB;YA0BrB,wBAAwB;IAmBtC,OAAO,CAAC,uBAAuB;IA6D/B,OAAO,CAAC,oBAAoB;IAkC5B,OAAO,CAAC,uBAAuB;IA0C/B,OAAO,CAAC,gBAAgB;IA0CxB,OAAO,CAAC,YAAY;IAmCpB,OAAO,CAAC,SAAS;IAsDjB,uBAAuB,CAAC,KAAK,EAAE,iBAAiB,EAAE,EAAE,mBAAmB,GAAE,OAAc,GAAG,MAAM;IA8ChG,OAAO,CAAC,kBAAkB;IAkB1B,0BAA0B,CAAC,QAAQ,EAAE,oBAAoB,EAAE,GAAG,MAAM;IA4BpE,OAAO,CAAC,kBAAkB;CAwB7B"}
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,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAmB,MAAM,6BAA6B,CAAC;AAErF;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACtC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,UAAU,GAAG,QAAQ,GAAG,KAAK,CAAC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,QAAQ,CAAC;IACtB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;OAIG;IACH,cAAc,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAC9C;;;OAGG;IACH,aAAa,CAAC,EAAE,yBAAyB,CAAC;CAC7C;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,QAAQ,CAAC;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;CACzB;AAED;;;GAGG;AACH,qBAAa,oBAAoB;IAC7B;;;OAGG;IACG,kBAAkB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAU9E;;;OAGG;IACG,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAUvF;;;;;;;;;;;;OAYG;YACW,yBAAyB;IA4DvC;;OAEG;YACW,4BAA4B;IAa1C;;;OAGG;YACW,qBAAqB;IAuBnC;;OAEG;YACW,wBAAwB;IActC;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IAyD/B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IA6B5B;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IAsC/B;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAuCxB;;OAEG;IACH,OAAO,CAAC,YAAY;IA+BpB;;;OAGG;IACH,OAAO,CAAC,SAAS;IA+CjB;;;;;;OAMG;IACH,uBAAuB,CAAC,KAAK,EAAE,iBAAiB,EAAE,EAAE,mBAAmB,GAAE,OAAc,GAAG,MAAM;IA2ChG;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAe1B;;OAEG;IACH,0BAA0B,CAAC,QAAQ,EAAE,oBAAoB,EAAE,GAAG,MAAM;IAyBpE;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAwB7B"}
@@ -1,61 +1,103 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AgentContextInjector = void 0;
4
- const core_1 = require("@memberjunction/core");
5
- const aiengine_1 = require("@memberjunction/aiengine");
6
- const ai_reranker_1 = require("@memberjunction/ai-reranker");
7
- class AgentContextInjector {
1
+ import { LogError, LogStatus, RunView } from "@memberjunction/core";
2
+ import { AIEngine } from "@memberjunction/aiengine";
3
+ import { RerankerService } from "@memberjunction/ai-reranker";
4
+ /**
5
+ * Central service for retrieving and formatting notes/examples for injection into agent context.
6
+ * Implements multi-dimensional scoping (Agent, User, Company) with 8 priority levels.
7
+ */
8
+ export class AgentContextInjector {
9
+ /**
10
+ * Retrieve notes for a specific agent execution context.
11
+ * Implements multi-dimensional scoping and injection strategy.
12
+ */
8
13
  async GetNotesForContext(params) {
14
+ // Use semantic search if strategy is 'Relevant'
9
15
  if (params.strategy === 'Relevant' && params.currentInput) {
10
16
  return await this.getNotesViaSemanticSearch(params);
11
17
  }
18
+ // Otherwise use database query with scoping
12
19
  return await this.queryNotesWithScoping(params);
13
20
  }
21
+ /**
22
+ * Retrieve examples for a specific agent execution context.
23
+ * Implements multi-dimensional scoping and injection strategy.
24
+ */
14
25
  async GetExamplesForContext(params) {
26
+ // Use semantic search if strategy is 'Semantic'
15
27
  if (params.strategy === 'Semantic' && params.currentInput) {
16
28
  return await this.getExamplesViaSemanticSearch(params);
17
29
  }
30
+ // Otherwise use database query with scoping
18
31
  return await this.queryExamplesWithScoping(params);
19
32
  }
33
+ /**
34
+ * Get notes using semantic search via AIEngine.
35
+ * Supports optional two-stage retrieval with reranking for improved relevance.
36
+ *
37
+ * When reranking is enabled:
38
+ * 1. Fetch N * retrievalMultiplier candidates via vector search
39
+ * 2. Rerank candidates using configured reranker
40
+ * 3. Return top N reranked results
41
+ *
42
+ * Fallback behavior (controlled by config.fallbackOnError):
43
+ * - If true: On reranking failure, gracefully falls back to vector search results
44
+ * - If false: Propagates reranking errors to caller
45
+ */
20
46
  async getNotesViaSemanticSearch(params) {
21
47
  const config = params.rerankerConfig;
48
+ // Calculate candidates to fetch (more if reranking enabled)
22
49
  const fetchCount = config?.enabled
23
50
  ? params.maxNotes * config.retrievalMultiplier
24
51
  : params.maxNotes;
25
- const matches = await aiengine_1.AIEngine.Instance.FindSimilarAgentNotes(params.currentInput, params.agentId, params.userId, params.companyId, fetchCount);
52
+ // Stage 1: Vector search
53
+ const matches = await AIEngine.Instance.FindSimilarAgentNotes(params.currentInput, params.agentId, params.userId, params.companyId, fetchCount);
54
+ // If no reranker config or disabled, return vector results directly
26
55
  if (!config?.enabled) {
27
56
  return matches.slice(0, params.maxNotes).map(m => m.note);
28
57
  }
29
- (0, core_1.LogStatus)(`AgentContextInjector: Reranking ${matches.length} candidates to top ${params.maxNotes}`);
30
- const rerankerService = ai_reranker_1.RerankerService.Instance;
58
+ // Stage 2: Rerank candidates with fallback handling
59
+ LogStatus(`AgentContextInjector: Reranking ${matches.length} candidates to top ${params.maxNotes}`);
60
+ const rerankerService = RerankerService.Instance;
31
61
  try {
32
62
  const rerankResult = await rerankerService.rerankNotes(matches, params.currentInput, config, params.contextUser, params.observability ? {
33
63
  agentRunID: params.observability.agentRunID,
34
64
  parentStepID: params.observability.parentStepID,
35
65
  stepNumber: params.observability.stepNumber
36
66
  } : undefined);
67
+ // Return top N reranked notes
37
68
  const result = rerankResult.notes.slice(0, params.maxNotes).map(m => m.note);
38
- (0, core_1.LogStatus)(`AgentContextInjector: Returning ${result.length} notes after reranking`);
69
+ LogStatus(`AgentContextInjector: Returning ${result.length} notes after reranking`);
39
70
  return result;
40
71
  }
41
72
  catch (error) {
73
+ // Fallback decision is made HERE in the agent class, not in the service
42
74
  const message = error instanceof Error ? error.message : String(error);
43
75
  if (config.fallbackOnError) {
44
- (0, core_1.LogStatus)(`AgentContextInjector: Reranking failed (${message}), falling back to vector search results`);
76
+ // Graceful fallback to vector search results
77
+ LogStatus(`AgentContextInjector: Reranking failed (${message}), falling back to vector search results`);
45
78
  return matches.slice(0, params.maxNotes).map(m => m.note);
46
79
  }
47
- (0, core_1.LogError)(`AgentContextInjector: Reranking failed and fallbackOnError is false: ${message}`);
80
+ // No fallback - propagate the error
81
+ LogError(`AgentContextInjector: Reranking failed and fallbackOnError is false: ${message}`);
48
82
  throw error;
49
83
  }
50
84
  }
85
+ /**
86
+ * Get examples using semantic search via AIEngine
87
+ */
51
88
  async getExamplesViaSemanticSearch(params) {
52
- const matches = await aiengine_1.AIEngine.Instance.FindSimilarAgentExamples(params.currentInput, params.agentId, params.userId, params.companyId, params.maxExamples);
89
+ const matches = await AIEngine.Instance.FindSimilarAgentExamples(params.currentInput, params.agentId, params.userId, params.companyId, params.maxExamples);
90
+ // Return entities directly from vector service (no database round-trip)
53
91
  return matches.map(m => m.example);
54
92
  }
93
+ /**
94
+ * Query notes using multi-dimensional scoping priority.
95
+ * Implements 8-level scoping hierarchy from most specific to least specific.
96
+ */
55
97
  async queryNotesWithScoping(params) {
56
98
  const filter = this.buildNotesScopingFilter(params);
57
99
  const orderBy = '__mj_CreatedAt DESC';
58
- const rv = new core_1.RunView();
100
+ const rv = new RunView();
59
101
  const result = await rv.RunView({
60
102
  EntityName: 'AI Agent Notes',
61
103
  ExtraFilter: filter,
@@ -68,57 +110,86 @@ class AgentContextInjector {
68
110
  if (notes.length === 0) {
69
111
  return [];
70
112
  }
71
- const sorted = this.sortNotes(notes, params.strategy, aiengine_1.AIEngine.Instance.AgentNoteTypes);
113
+ const sorted = this.sortNotes(notes, params.strategy, AIEngine.Instance.AgentNoteTypes);
72
114
  return sorted.slice(0, params.maxNotes);
73
115
  }
116
+ /**
117
+ * Query examples using multi-dimensional scoping priority
118
+ */
74
119
  async queryExamplesWithScoping(params) {
75
- const allExamples = aiengine_1.AIEngine.Instance.AgentExamples;
120
+ // Use cached data from AIEngine instead of database query
121
+ const allExamples = AIEngine.Instance.AgentExamples;
122
+ // Filter examples matching our scoping criteria
76
123
  const filtered = this.filterExamplesByScoping(allExamples, params);
124
+ // Sort based on strategy
77
125
  const sorted = this.sortExamples(filtered, params.strategy);
126
+ // Return top N results
78
127
  return sorted.slice(0, params.maxExamples);
79
128
  }
129
+ /**
130
+ * Build filter with 8-level scoping priority for notes.
131
+ * Combines MJ-internal scoping (AgentID, UserID, CompanyID) with
132
+ * multi-tenant SaaS scoping (PrimaryScopeEntityID, PrimaryScopeRecordID, SecondaryScopes).
133
+ */
80
134
  buildNotesScopingFilter(params) {
81
135
  const filters = ['Status = \'Active\''];
136
+ // Build MJ-internal scoping filter using OR conditions with priority
82
137
  const scopeConditions = [];
138
+ // Priority 1: AgentID + UserID + CompanyID
83
139
  if (params.agentId && params.userId && params.companyId) {
84
140
  scopeConditions.push(`(AgentID='${params.agentId}' AND UserID='${params.userId}' AND CompanyID='${params.companyId}')`);
85
141
  }
142
+ // Priority 2: AgentID + UserID
86
143
  if (params.agentId && params.userId) {
87
144
  scopeConditions.push(`(AgentID='${params.agentId}' AND UserID='${params.userId}' AND CompanyID IS NULL)`);
88
145
  }
146
+ // Priority 3: AgentID + CompanyID
89
147
  if (params.agentId && params.companyId) {
90
148
  scopeConditions.push(`(AgentID='${params.agentId}' AND UserID IS NULL AND CompanyID='${params.companyId}')`);
91
149
  }
150
+ // Priority 4: UserID + CompanyID
92
151
  if (params.userId && params.companyId) {
93
152
  scopeConditions.push(`(AgentID IS NULL AND UserID='${params.userId}' AND CompanyID='${params.companyId}')`);
94
153
  }
154
+ // Priority 5: AgentID only
95
155
  if (params.agentId) {
96
156
  scopeConditions.push(`(AgentID='${params.agentId}' AND UserID IS NULL AND CompanyID IS NULL)`);
97
157
  }
158
+ // Priority 6: UserID only
98
159
  if (params.userId) {
99
160
  scopeConditions.push(`(AgentID IS NULL AND UserID='${params.userId}' AND CompanyID IS NULL)`);
100
161
  }
162
+ // Priority 7: CompanyID only
101
163
  if (params.companyId) {
102
164
  scopeConditions.push(`(AgentID IS NULL AND UserID IS NULL AND CompanyID='${params.companyId}')`);
103
165
  }
166
+ // Priority 8: Global (all NULL)
104
167
  scopeConditions.push(`(AgentID IS NULL AND UserID IS NULL AND CompanyID IS NULL)`);
105
168
  if (scopeConditions.length > 0) {
106
169
  filters.push(`(${scopeConditions.join(' OR ')})`);
107
170
  }
171
+ // Add multi-tenant SaaS scoping if userScope is provided
108
172
  if (params.userScope) {
109
173
  const saasScopes = this.buildSaasScopeFilter(params.userScope);
110
174
  filters.push(`(${saasScopes})`);
111
175
  }
112
176
  return filters.join(' AND ');
113
177
  }
178
+ /**
179
+ * Build filter for multi-tenant SaaS scoping with hierarchical inheritance.
180
+ * Returns notes at all applicable scope levels (global → primary → full).
181
+ */
114
182
  buildSaasScopeFilter(userScope) {
115
183
  const conditions = [];
184
+ // Always include global notes (no scope set)
116
185
  conditions.push('PrimaryScopeRecordID IS NULL');
117
186
  if (userScope.primaryRecordId) {
187
+ // Include primary-scope-only notes (matches org, no secondary scopes)
118
188
  conditions.push(`(
119
189
  PrimaryScopeRecordID = '${userScope.primaryRecordId}'
120
190
  AND (SecondaryScopes IS NULL OR SecondaryScopes = '{}')
121
191
  )`);
192
+ // Include fully-scoped notes if secondary scopes are provided
122
193
  if (userScope.secondary && Object.keys(userScope.secondary).length > 0) {
123
194
  const secondaryConditions = Object.entries(userScope.secondary)
124
195
  .map(([key, val]) => `JSON_VALUE(SecondaryScopes, '$.${key}') = '${val}'`)
@@ -131,14 +202,22 @@ class AgentContextInjector {
131
202
  }
132
203
  return conditions.join(' OR ');
133
204
  }
205
+ /**
206
+ * Filter examples using multi-dimensional scoping priority.
207
+ * Implements 4-level scoping hierarchy for examples (examples are always agent-specific).
208
+ * Also handles multi-tenant SaaS scoping when userScope is provided.
209
+ */
134
210
  filterExamplesByScoping(examples, params) {
135
211
  return examples.filter(example => {
212
+ // Must be active
136
213
  if (example.Status !== 'Active') {
137
214
  return false;
138
215
  }
216
+ // Must match the agent
139
217
  if (example.AgentID !== params.agentId) {
140
218
  return false;
141
219
  }
220
+ // Check MJ-internal scoping priority (any of these conditions can match)
142
221
  const matchesPriority1 = params.userId && params.companyId &&
143
222
  example.UserID === params.userId && example.CompanyID === params.companyId;
144
223
  const matchesPriority2 = params.userId &&
@@ -150,29 +229,41 @@ class AgentContextInjector {
150
229
  if (!matchesMJScoping) {
151
230
  return false;
152
231
  }
232
+ // Check multi-tenant SaaS scoping if userScope is provided
153
233
  if (params.userScope) {
154
234
  return this.matchesSaasScope(example, params.userScope);
155
235
  }
156
236
  return true;
157
237
  });
158
238
  }
239
+ /**
240
+ * Check if an example matches the SaaS scope criteria (hierarchical).
241
+ * Returns true for: global, primary-only, or fully-scoped matches.
242
+ */
159
243
  matchesSaasScope(example, userScope) {
244
+ // Global examples (no scope) always match
160
245
  if (!example.PrimaryScopeRecordID) {
161
246
  return true;
162
247
  }
248
+ // No primary scope provided - only global examples match
163
249
  if (!userScope.primaryRecordId) {
164
250
  return false;
165
251
  }
252
+ // Primary scope must match
166
253
  if (example.PrimaryScopeRecordID !== userScope.primaryRecordId) {
167
254
  return false;
168
255
  }
256
+ // If example has no secondary scopes, it's an org-level example - matches
169
257
  const exampleSecondary = example.SecondaryScopes;
170
258
  if (!exampleSecondary || exampleSecondary === '{}') {
171
259
  return true;
172
260
  }
261
+ // Example has secondary scopes - check if they match
173
262
  if (!userScope.secondary || Object.keys(userScope.secondary).length === 0) {
263
+ // User has no secondary scope but example does - no match
174
264
  return false;
175
265
  }
266
+ // Parse and match secondary scopes
176
267
  try {
177
268
  const parsedSecondary = JSON.parse(exampleSecondary);
178
269
  return Object.entries(parsedSecondary).every(([key, val]) => userScope.secondary?.[key] === val);
@@ -181,21 +272,28 @@ class AgentContextInjector {
181
272
  return false;
182
273
  }
183
274
  }
275
+ /**
276
+ * Sort examples based on the specified strategy
277
+ */
184
278
  sortExamples(examples, strategy) {
279
+ // Create a copy to avoid mutating the original array
185
280
  const sorted = [...examples];
186
281
  if (strategy === 'Rated') {
282
+ // Sort by SuccessScore DESC, then by creation date DESC
187
283
  sorted.sort((a, b) => {
188
284
  const scoreA = a.SuccessScore ?? 0;
189
285
  const scoreB = b.SuccessScore ?? 0;
190
286
  if (scoreB !== scoreA) {
191
287
  return scoreB - scoreA;
192
288
  }
289
+ // Tie-breaker: most recent first
193
290
  const dateA = a.__mj_CreatedAt?.getTime() ?? 0;
194
291
  const dateB = b.__mj_CreatedAt?.getTime() ?? 0;
195
292
  return dateB - dateA;
196
293
  });
197
294
  }
198
295
  else {
296
+ // 'Recent' strategy (or default): sort by creation date DESC
199
297
  sorted.sort((a, b) => {
200
298
  const dateA = a.__mj_CreatedAt?.getTime() ?? 0;
201
299
  const dateB = b.__mj_CreatedAt?.getTime() ?? 0;
@@ -204,6 +302,10 @@ class AgentContextInjector {
204
302
  }
205
303
  return sorted;
206
304
  }
305
+ /**
306
+ * Sort notes based on the specified strategy.
307
+ * For non-Recent strategies, uses AgentNoteType.Priority from cached note types.
308
+ */
207
309
  sortNotes(notes, strategy, noteTypes) {
208
310
  const sorted = [...notes];
209
311
  const priorityByTypeId = new Map();
@@ -238,10 +340,18 @@ class AgentContextInjector {
238
340
  });
239
341
  return sorted;
240
342
  }
343
+ /**
344
+ * Format notes for injection into agent prompt.
345
+ * Includes memory policy explaining scope precedence for conflict resolution.
346
+ *
347
+ * @param notes - Array of notes to format
348
+ * @param includeMemoryPolicy - Whether to include the memory policy preamble (default: true)
349
+ */
241
350
  FormatNotesForInjection(notes, includeMemoryPolicy = true) {
242
351
  if (notes.length === 0)
243
352
  return '';
244
353
  const lines = [];
354
+ // Add memory policy preamble for LLM understanding of scope precedence
245
355
  if (includeMemoryPolicy) {
246
356
  lines.push('<memory_policy>');
247
357
  lines.push('Precedence (highest to lowest):');
@@ -273,9 +383,13 @@ class AgentContextInjector {
273
383
  lines.push('---');
274
384
  return lines.join('\n');
275
385
  }
386
+ /**
387
+ * Determine multi-tenant SaaS scope description for a note
388
+ */
276
389
  determineSaaSScope(note) {
390
+ // Check for SaaS scoping (takes precedence over MJ scoping)
277
391
  if (!note.PrimaryScopeRecordID) {
278
- return null;
392
+ return null; // No SaaS scope, fall back to MJ scope
279
393
  }
280
394
  const hasSecondary = note.SecondaryScopes && note.SecondaryScopes !== '{}';
281
395
  if (hasSecondary) {
@@ -283,6 +397,9 @@ class AgentContextInjector {
283
397
  }
284
398
  return 'Organization-level';
285
399
  }
400
+ /**
401
+ * Format examples for injection into agent prompt
402
+ */
286
403
  FormatExamplesForInjection(examples) {
287
404
  if (examples.length === 0)
288
405
  return '';
@@ -303,6 +420,9 @@ class AgentContextInjector {
303
420
  lines.push('---');
304
421
  return lines.join('\n');
305
422
  }
423
+ /**
424
+ * Determine human-readable scope description for a note
425
+ */
306
426
  determineNoteScope(note) {
307
427
  if (note.AgentID && note.UserID && note.CompanyID) {
308
428
  return 'Agent + User + Company specific';
@@ -328,5 +448,4 @@ class AgentContextInjector {
328
448
  return 'Global';
329
449
  }
330
450
  }
331
- exports.AgentContextInjector = AgentContextInjector;
332
451
  //# sourceMappingURL=agent-context-injector.js.map
@@ -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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"}